diff --git a/doc.go b/doc.go index 41ac9a3..5b8a696 100644 --- a/doc.go +++ b/doc.go @@ -3,7 +3,7 @@ // Package substraitgo contains the experimental go bindings for substrait // (https://substrait.io). // -// Current generated proto substrait version: v0.53.0 +// Current generated proto substrait version: v0.55.0 package substraitgo -//go:generate buf generate https://github.com/substrait-io/substrait.git#tag=v0.53.0 +//go:generate buf generate https://github.com/substrait-io/substrait.git#tag=v0.55.0 diff --git a/plan/plan_builder_test.go b/plan/plan_builder_test.go index 56e132b..b76e76d 100644 --- a/plan/plan_builder_test.go +++ b/plan/plan_builder_test.go @@ -619,12 +619,12 @@ func TestJoinRelOutputRecordTypes(t *testing.T) { recordString string }{ {"JOIN_TYPE_INNER", plan.JoinTypeInner, []string{"a", "b", "c", "d"}, "NSTRUCT"}, - {"JOIN_TYPE_SEMI", plan.JoinTypeSemi, []string{"a", "b"}, "NSTRUCT"}, + {"JOIN_TYPE_LEFT_SEMI", plan.JoinTypeLeftSemi, []string{"a", "b"}, "NSTRUCT"}, {"JOIN_TYPE_OUTER", plan.JoinTypeOuter, []string{"a", "b", "c", "d"}, "NSTRUCT"}, {"JOIN_TYPE_LEFT", plan.JoinTypeLeft, []string{"a", "b", "c", "d"}, "NSTRUCT"}, {"JOIN_TYPE_RIGHT", plan.JoinTypeRight, []string{"a", "b", "c", "d"}, "NSTRUCT"}, - {"JOIN_TYPE_ANTI", plan.JoinTypeAnti, []string{"a", "b"}, "NSTRUCT"}, - {"JOIN_TYPE_SINGLE", plan.JoinTypeSingle, []string{"a", "b", "c", "d"}, "NSTRUCT"}, + {"JOIN_TYPE_LEFT_ANTI", plan.JoinTypeLeftAnti, []string{"a", "b"}, "NSTRUCT"}, + {"JOIN_TYPE_LEFT_SINGLE", plan.JoinTypeLeftSingle, []string{"a", "b", "c", "d"}, "NSTRUCT"}, } for _, tt := range tests { @@ -764,7 +764,7 @@ func TestJoinRelationError(t *testing.T) { assert.ErrorIs(t, err, substraitgo.ErrInvalidRel) assert.ErrorContains(t, err, "output mapping index out of range") - _, err = b.JoinRemap(left, right, goodcond, plan.JoinTypeAnti, []int32{2}) + _, err = b.JoinRemap(left, right, goodcond, plan.JoinTypeLeftAnti, []int32{2}) assert.ErrorIs(t, err, substraitgo.ErrInvalidRel) assert.ErrorContains(t, err, "output mapping index out of range") diff --git a/plan/relations.go b/plan/relations.go index 35d7a1b..2b3b94d 100644 --- a/plan/relations.go +++ b/plan/relations.go @@ -3,6 +3,8 @@ package plan import ( + "fmt" + substraitgo "github.com/substrait-io/substrait-go" "github.com/substrait-io/substrait-go/expr" "github.com/substrait-io/substrait-go/extensions" @@ -585,9 +587,12 @@ const ( JoinTypeOuter = proto.JoinRel_JOIN_TYPE_OUTER JoinTypeLeft = proto.JoinRel_JOIN_TYPE_LEFT JoinTypeRight = proto.JoinRel_JOIN_TYPE_RIGHT - JoinTypeSemi = proto.JoinRel_JOIN_TYPE_SEMI - JoinTypeAnti = proto.JoinRel_JOIN_TYPE_ANTI - JoinTypeSingle = proto.JoinRel_JOIN_TYPE_SINGLE + JoinTypeLeftSemi = proto.JoinRel_JOIN_TYPE_LEFT_SEMI + JoinTypeLeftAnti = proto.JoinRel_JOIN_TYPE_LEFT_ANTI + JoinTypeLeftSingle = proto.JoinRel_JOIN_TYPE_LEFT_SINGLE + JoinTypeRightSemi = proto.JoinRel_JOIN_TYPE_RIGHT_SEMI + JoinTypeRightAnti = proto.JoinRel_JOIN_TYPE_RIGHT_ANTI + JoinTypeRightSingle = proto.JoinRel_JOIN_TYPE_RIGHT_SINGLE ) // JoinRel is a binary Join relational operator representing left-join-right, @@ -607,14 +612,14 @@ func (j *JoinRel) RecordType() types.StructType { switch j.joinType { case JoinTypeInner: return j.JoinedRecordType() - case JoinTypeSemi: + case JoinTypeLeftSemi: return j.left.Remap(j.left.RecordType()) case JoinTypeOuter: typeList = j.JoinedRecordType().Types for i, t := range typeList { typeList[i] = t.WithNullability(types.NullabilityNullable) } - case JoinTypeLeft, JoinTypeSingle: + case JoinTypeLeft, JoinTypeLeftSingle: left := j.left.Remap(j.left.RecordType()) right := j.right.Remap(j.right.RecordType()) typeList = make([]types.Type, 0, len(left.Types)+len(right.Types)) @@ -630,8 +635,10 @@ func (j *JoinRel) RecordType() types.StructType { typeList = append(typeList, l.WithNullability(types.NullabilityNullable)) } typeList = append(typeList, right.Types...) - case JoinTypeAnti: + case JoinTypeLeftAnti: typeList = j.left.RecordType().Types + case JoinTypeRightSemi, JoinTypeRightAnti, JoinTypeRightSingle: + panic(fmt.Sprintf("join type: %v not supported", j.joinType)) } return types.StructType{ diff --git a/proto/algebra.pb.go b/proto/algebra.pb.go index e08ae78..c499cd1 100644 --- a/proto/algebra.pb.go +++ b/proto/algebra.pb.go @@ -100,39 +100,46 @@ func (AggregationPhase) EnumDescriptor() ([]byte, []int) { type JoinRel_JoinType int32 const ( - JoinRel_JOIN_TYPE_UNSPECIFIED JoinRel_JoinType = 0 - JoinRel_JOIN_TYPE_INNER JoinRel_JoinType = 1 - JoinRel_JOIN_TYPE_OUTER JoinRel_JoinType = 2 - JoinRel_JOIN_TYPE_LEFT JoinRel_JoinType = 3 - JoinRel_JOIN_TYPE_RIGHT JoinRel_JoinType = 4 - JoinRel_JOIN_TYPE_SEMI JoinRel_JoinType = 5 - JoinRel_JOIN_TYPE_ANTI JoinRel_JoinType = 6 - // This join is useful for nested sub-queries where we need exactly one record in output (or throw exception) - // See Section 3.2 of https://15721.courses.cs.cmu.edu/spring2018/papers/16-optimizer2/hyperjoins-btw2017.pdf - JoinRel_JOIN_TYPE_SINGLE JoinRel_JoinType = 7 + JoinRel_JOIN_TYPE_UNSPECIFIED JoinRel_JoinType = 0 + JoinRel_JOIN_TYPE_INNER JoinRel_JoinType = 1 + JoinRel_JOIN_TYPE_OUTER JoinRel_JoinType = 2 + JoinRel_JOIN_TYPE_LEFT JoinRel_JoinType = 3 + JoinRel_JOIN_TYPE_RIGHT JoinRel_JoinType = 4 + JoinRel_JOIN_TYPE_LEFT_SEMI JoinRel_JoinType = 5 + JoinRel_JOIN_TYPE_LEFT_ANTI JoinRel_JoinType = 6 + JoinRel_JOIN_TYPE_LEFT_SINGLE JoinRel_JoinType = 7 + JoinRel_JOIN_TYPE_RIGHT_SEMI JoinRel_JoinType = 8 + JoinRel_JOIN_TYPE_RIGHT_ANTI JoinRel_JoinType = 9 + JoinRel_JOIN_TYPE_RIGHT_SINGLE JoinRel_JoinType = 10 ) // Enum value maps for JoinRel_JoinType. var ( JoinRel_JoinType_name = map[int32]string{ - 0: "JOIN_TYPE_UNSPECIFIED", - 1: "JOIN_TYPE_INNER", - 2: "JOIN_TYPE_OUTER", - 3: "JOIN_TYPE_LEFT", - 4: "JOIN_TYPE_RIGHT", - 5: "JOIN_TYPE_SEMI", - 6: "JOIN_TYPE_ANTI", - 7: "JOIN_TYPE_SINGLE", + 0: "JOIN_TYPE_UNSPECIFIED", + 1: "JOIN_TYPE_INNER", + 2: "JOIN_TYPE_OUTER", + 3: "JOIN_TYPE_LEFT", + 4: "JOIN_TYPE_RIGHT", + 5: "JOIN_TYPE_LEFT_SEMI", + 6: "JOIN_TYPE_LEFT_ANTI", + 7: "JOIN_TYPE_LEFT_SINGLE", + 8: "JOIN_TYPE_RIGHT_SEMI", + 9: "JOIN_TYPE_RIGHT_ANTI", + 10: "JOIN_TYPE_RIGHT_SINGLE", } JoinRel_JoinType_value = map[string]int32{ - "JOIN_TYPE_UNSPECIFIED": 0, - "JOIN_TYPE_INNER": 1, - "JOIN_TYPE_OUTER": 2, - "JOIN_TYPE_LEFT": 3, - "JOIN_TYPE_RIGHT": 4, - "JOIN_TYPE_SEMI": 5, - "JOIN_TYPE_ANTI": 6, - "JOIN_TYPE_SINGLE": 7, + "JOIN_TYPE_UNSPECIFIED": 0, + "JOIN_TYPE_INNER": 1, + "JOIN_TYPE_OUTER": 2, + "JOIN_TYPE_LEFT": 3, + "JOIN_TYPE_RIGHT": 4, + "JOIN_TYPE_LEFT_SEMI": 5, + "JOIN_TYPE_LEFT_ANTI": 6, + "JOIN_TYPE_LEFT_SINGLE": 7, + "JOIN_TYPE_RIGHT_SEMI": 8, + "JOIN_TYPE_RIGHT_ANTI": 9, + "JOIN_TYPE_RIGHT_SINGLE": 10, } ) @@ -519,40 +526,46 @@ func (ComparisonJoinKey_SimpleComparisonType) EnumDescriptor() ([]byte, []int) { type HashJoinRel_JoinType int32 const ( - HashJoinRel_JOIN_TYPE_UNSPECIFIED HashJoinRel_JoinType = 0 - HashJoinRel_JOIN_TYPE_INNER HashJoinRel_JoinType = 1 - HashJoinRel_JOIN_TYPE_OUTER HashJoinRel_JoinType = 2 - HashJoinRel_JOIN_TYPE_LEFT HashJoinRel_JoinType = 3 - HashJoinRel_JOIN_TYPE_RIGHT HashJoinRel_JoinType = 4 - HashJoinRel_JOIN_TYPE_LEFT_SEMI HashJoinRel_JoinType = 5 - HashJoinRel_JOIN_TYPE_RIGHT_SEMI HashJoinRel_JoinType = 6 - HashJoinRel_JOIN_TYPE_LEFT_ANTI HashJoinRel_JoinType = 7 - HashJoinRel_JOIN_TYPE_RIGHT_ANTI HashJoinRel_JoinType = 8 + HashJoinRel_JOIN_TYPE_UNSPECIFIED HashJoinRel_JoinType = 0 + HashJoinRel_JOIN_TYPE_INNER HashJoinRel_JoinType = 1 + HashJoinRel_JOIN_TYPE_OUTER HashJoinRel_JoinType = 2 + HashJoinRel_JOIN_TYPE_LEFT HashJoinRel_JoinType = 3 + HashJoinRel_JOIN_TYPE_RIGHT HashJoinRel_JoinType = 4 + HashJoinRel_JOIN_TYPE_LEFT_SEMI HashJoinRel_JoinType = 5 + HashJoinRel_JOIN_TYPE_RIGHT_SEMI HashJoinRel_JoinType = 6 + HashJoinRel_JOIN_TYPE_LEFT_ANTI HashJoinRel_JoinType = 7 + HashJoinRel_JOIN_TYPE_RIGHT_ANTI HashJoinRel_JoinType = 8 + HashJoinRel_JOIN_TYPE_LEFT_SINGLE HashJoinRel_JoinType = 9 + HashJoinRel_JOIN_TYPE_RIGHT_SINGLE HashJoinRel_JoinType = 10 ) // Enum value maps for HashJoinRel_JoinType. var ( HashJoinRel_JoinType_name = map[int32]string{ - 0: "JOIN_TYPE_UNSPECIFIED", - 1: "JOIN_TYPE_INNER", - 2: "JOIN_TYPE_OUTER", - 3: "JOIN_TYPE_LEFT", - 4: "JOIN_TYPE_RIGHT", - 5: "JOIN_TYPE_LEFT_SEMI", - 6: "JOIN_TYPE_RIGHT_SEMI", - 7: "JOIN_TYPE_LEFT_ANTI", - 8: "JOIN_TYPE_RIGHT_ANTI", + 0: "JOIN_TYPE_UNSPECIFIED", + 1: "JOIN_TYPE_INNER", + 2: "JOIN_TYPE_OUTER", + 3: "JOIN_TYPE_LEFT", + 4: "JOIN_TYPE_RIGHT", + 5: "JOIN_TYPE_LEFT_SEMI", + 6: "JOIN_TYPE_RIGHT_SEMI", + 7: "JOIN_TYPE_LEFT_ANTI", + 8: "JOIN_TYPE_RIGHT_ANTI", + 9: "JOIN_TYPE_LEFT_SINGLE", + 10: "JOIN_TYPE_RIGHT_SINGLE", } HashJoinRel_JoinType_value = map[string]int32{ - "JOIN_TYPE_UNSPECIFIED": 0, - "JOIN_TYPE_INNER": 1, - "JOIN_TYPE_OUTER": 2, - "JOIN_TYPE_LEFT": 3, - "JOIN_TYPE_RIGHT": 4, - "JOIN_TYPE_LEFT_SEMI": 5, - "JOIN_TYPE_RIGHT_SEMI": 6, - "JOIN_TYPE_LEFT_ANTI": 7, - "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_UNSPECIFIED": 0, + "JOIN_TYPE_INNER": 1, + "JOIN_TYPE_OUTER": 2, + "JOIN_TYPE_LEFT": 3, + "JOIN_TYPE_RIGHT": 4, + "JOIN_TYPE_LEFT_SEMI": 5, + "JOIN_TYPE_RIGHT_SEMI": 6, + "JOIN_TYPE_LEFT_ANTI": 7, + "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_LEFT_SINGLE": 9, + "JOIN_TYPE_RIGHT_SINGLE": 10, } ) @@ -586,40 +599,46 @@ func (HashJoinRel_JoinType) EnumDescriptor() ([]byte, []int) { type MergeJoinRel_JoinType int32 const ( - MergeJoinRel_JOIN_TYPE_UNSPECIFIED MergeJoinRel_JoinType = 0 - MergeJoinRel_JOIN_TYPE_INNER MergeJoinRel_JoinType = 1 - MergeJoinRel_JOIN_TYPE_OUTER MergeJoinRel_JoinType = 2 - MergeJoinRel_JOIN_TYPE_LEFT MergeJoinRel_JoinType = 3 - MergeJoinRel_JOIN_TYPE_RIGHT MergeJoinRel_JoinType = 4 - MergeJoinRel_JOIN_TYPE_LEFT_SEMI MergeJoinRel_JoinType = 5 - MergeJoinRel_JOIN_TYPE_RIGHT_SEMI MergeJoinRel_JoinType = 6 - MergeJoinRel_JOIN_TYPE_LEFT_ANTI MergeJoinRel_JoinType = 7 - MergeJoinRel_JOIN_TYPE_RIGHT_ANTI MergeJoinRel_JoinType = 8 + MergeJoinRel_JOIN_TYPE_UNSPECIFIED MergeJoinRel_JoinType = 0 + MergeJoinRel_JOIN_TYPE_INNER MergeJoinRel_JoinType = 1 + MergeJoinRel_JOIN_TYPE_OUTER MergeJoinRel_JoinType = 2 + MergeJoinRel_JOIN_TYPE_LEFT MergeJoinRel_JoinType = 3 + MergeJoinRel_JOIN_TYPE_RIGHT MergeJoinRel_JoinType = 4 + MergeJoinRel_JOIN_TYPE_LEFT_SEMI MergeJoinRel_JoinType = 5 + MergeJoinRel_JOIN_TYPE_RIGHT_SEMI MergeJoinRel_JoinType = 6 + MergeJoinRel_JOIN_TYPE_LEFT_ANTI MergeJoinRel_JoinType = 7 + MergeJoinRel_JOIN_TYPE_RIGHT_ANTI MergeJoinRel_JoinType = 8 + MergeJoinRel_JOIN_TYPE_LEFT_SINGLE MergeJoinRel_JoinType = 9 + MergeJoinRel_JOIN_TYPE_RIGHT_SINGLE MergeJoinRel_JoinType = 10 ) // Enum value maps for MergeJoinRel_JoinType. var ( MergeJoinRel_JoinType_name = map[int32]string{ - 0: "JOIN_TYPE_UNSPECIFIED", - 1: "JOIN_TYPE_INNER", - 2: "JOIN_TYPE_OUTER", - 3: "JOIN_TYPE_LEFT", - 4: "JOIN_TYPE_RIGHT", - 5: "JOIN_TYPE_LEFT_SEMI", - 6: "JOIN_TYPE_RIGHT_SEMI", - 7: "JOIN_TYPE_LEFT_ANTI", - 8: "JOIN_TYPE_RIGHT_ANTI", + 0: "JOIN_TYPE_UNSPECIFIED", + 1: "JOIN_TYPE_INNER", + 2: "JOIN_TYPE_OUTER", + 3: "JOIN_TYPE_LEFT", + 4: "JOIN_TYPE_RIGHT", + 5: "JOIN_TYPE_LEFT_SEMI", + 6: "JOIN_TYPE_RIGHT_SEMI", + 7: "JOIN_TYPE_LEFT_ANTI", + 8: "JOIN_TYPE_RIGHT_ANTI", + 9: "JOIN_TYPE_LEFT_SINGLE", + 10: "JOIN_TYPE_RIGHT_SINGLE", } MergeJoinRel_JoinType_value = map[string]int32{ - "JOIN_TYPE_UNSPECIFIED": 0, - "JOIN_TYPE_INNER": 1, - "JOIN_TYPE_OUTER": 2, - "JOIN_TYPE_LEFT": 3, - "JOIN_TYPE_RIGHT": 4, - "JOIN_TYPE_LEFT_SEMI": 5, - "JOIN_TYPE_RIGHT_SEMI": 6, - "JOIN_TYPE_LEFT_ANTI": 7, - "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_UNSPECIFIED": 0, + "JOIN_TYPE_INNER": 1, + "JOIN_TYPE_OUTER": 2, + "JOIN_TYPE_LEFT": 3, + "JOIN_TYPE_RIGHT": 4, + "JOIN_TYPE_LEFT_SEMI": 5, + "JOIN_TYPE_RIGHT_SEMI": 6, + "JOIN_TYPE_LEFT_ANTI": 7, + "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_LEFT_SINGLE": 9, + "JOIN_TYPE_RIGHT_SINGLE": 10, } ) @@ -653,40 +672,46 @@ func (MergeJoinRel_JoinType) EnumDescriptor() ([]byte, []int) { type NestedLoopJoinRel_JoinType int32 const ( - NestedLoopJoinRel_JOIN_TYPE_UNSPECIFIED NestedLoopJoinRel_JoinType = 0 - NestedLoopJoinRel_JOIN_TYPE_INNER NestedLoopJoinRel_JoinType = 1 - NestedLoopJoinRel_JOIN_TYPE_OUTER NestedLoopJoinRel_JoinType = 2 - NestedLoopJoinRel_JOIN_TYPE_LEFT NestedLoopJoinRel_JoinType = 3 - NestedLoopJoinRel_JOIN_TYPE_RIGHT NestedLoopJoinRel_JoinType = 4 - NestedLoopJoinRel_JOIN_TYPE_LEFT_SEMI NestedLoopJoinRel_JoinType = 5 - NestedLoopJoinRel_JOIN_TYPE_RIGHT_SEMI NestedLoopJoinRel_JoinType = 6 - NestedLoopJoinRel_JOIN_TYPE_LEFT_ANTI NestedLoopJoinRel_JoinType = 7 - NestedLoopJoinRel_JOIN_TYPE_RIGHT_ANTI NestedLoopJoinRel_JoinType = 8 + NestedLoopJoinRel_JOIN_TYPE_UNSPECIFIED NestedLoopJoinRel_JoinType = 0 + NestedLoopJoinRel_JOIN_TYPE_INNER NestedLoopJoinRel_JoinType = 1 + NestedLoopJoinRel_JOIN_TYPE_OUTER NestedLoopJoinRel_JoinType = 2 + NestedLoopJoinRel_JOIN_TYPE_LEFT NestedLoopJoinRel_JoinType = 3 + NestedLoopJoinRel_JOIN_TYPE_RIGHT NestedLoopJoinRel_JoinType = 4 + NestedLoopJoinRel_JOIN_TYPE_LEFT_SEMI NestedLoopJoinRel_JoinType = 5 + NestedLoopJoinRel_JOIN_TYPE_RIGHT_SEMI NestedLoopJoinRel_JoinType = 6 + NestedLoopJoinRel_JOIN_TYPE_LEFT_ANTI NestedLoopJoinRel_JoinType = 7 + NestedLoopJoinRel_JOIN_TYPE_RIGHT_ANTI NestedLoopJoinRel_JoinType = 8 + NestedLoopJoinRel_JOIN_TYPE_LEFT_SINGLE NestedLoopJoinRel_JoinType = 9 + NestedLoopJoinRel_JOIN_TYPE_RIGHT_SINGLE NestedLoopJoinRel_JoinType = 10 ) // Enum value maps for NestedLoopJoinRel_JoinType. var ( NestedLoopJoinRel_JoinType_name = map[int32]string{ - 0: "JOIN_TYPE_UNSPECIFIED", - 1: "JOIN_TYPE_INNER", - 2: "JOIN_TYPE_OUTER", - 3: "JOIN_TYPE_LEFT", - 4: "JOIN_TYPE_RIGHT", - 5: "JOIN_TYPE_LEFT_SEMI", - 6: "JOIN_TYPE_RIGHT_SEMI", - 7: "JOIN_TYPE_LEFT_ANTI", - 8: "JOIN_TYPE_RIGHT_ANTI", + 0: "JOIN_TYPE_UNSPECIFIED", + 1: "JOIN_TYPE_INNER", + 2: "JOIN_TYPE_OUTER", + 3: "JOIN_TYPE_LEFT", + 4: "JOIN_TYPE_RIGHT", + 5: "JOIN_TYPE_LEFT_SEMI", + 6: "JOIN_TYPE_RIGHT_SEMI", + 7: "JOIN_TYPE_LEFT_ANTI", + 8: "JOIN_TYPE_RIGHT_ANTI", + 9: "JOIN_TYPE_LEFT_SINGLE", + 10: "JOIN_TYPE_RIGHT_SINGLE", } NestedLoopJoinRel_JoinType_value = map[string]int32{ - "JOIN_TYPE_UNSPECIFIED": 0, - "JOIN_TYPE_INNER": 1, - "JOIN_TYPE_OUTER": 2, - "JOIN_TYPE_LEFT": 3, - "JOIN_TYPE_RIGHT": 4, - "JOIN_TYPE_LEFT_SEMI": 5, - "JOIN_TYPE_RIGHT_SEMI": 6, - "JOIN_TYPE_LEFT_ANTI": 7, - "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_UNSPECIFIED": 0, + "JOIN_TYPE_INNER": 1, + "JOIN_TYPE_OUTER": 2, + "JOIN_TYPE_LEFT": 3, + "JOIN_TYPE_RIGHT": 4, + "JOIN_TYPE_LEFT_SEMI": 5, + "JOIN_TYPE_RIGHT_SEMI": 6, + "JOIN_TYPE_LEFT_ANTI": 7, + "JOIN_TYPE_RIGHT_ANTI": 8, + "JOIN_TYPE_LEFT_SINGLE": 9, + "JOIN_TYPE_RIGHT_SINGLE": 10, } ) @@ -4880,7 +4905,7 @@ type ReadRel_LocalFiles_FileOrFiles struct { Start uint64 `protobuf:"varint,7,opt,name=start,proto3" json:"start,omitempty"` // The length in byte to read from this item Length uint64 `protobuf:"varint,8,opt,name=length,proto3" json:"length,omitempty"` - // The format of the files. + // The format of the files along with options for reading those files. // // Types that are assignable to FileFormat: // @@ -4889,6 +4914,7 @@ type ReadRel_LocalFiles_FileOrFiles struct { // *ReadRel_LocalFiles_FileOrFiles_Orc // *ReadRel_LocalFiles_FileOrFiles_Extension // *ReadRel_LocalFiles_FileOrFiles_Dwrf + // *ReadRel_LocalFiles_FileOrFiles_Text FileFormat isReadRel_LocalFiles_FileOrFiles_FileFormat `protobuf_oneof:"file_format"` } @@ -5022,6 +5048,13 @@ func (x *ReadRel_LocalFiles_FileOrFiles) GetDwrf() *ReadRel_LocalFiles_FileOrFil return nil } +func (x *ReadRel_LocalFiles_FileOrFiles) GetText() *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions { + if x, ok := x.GetFileFormat().(*ReadRel_LocalFiles_FileOrFiles_Text); ok { + return x.Text + } + return nil +} + type isReadRel_LocalFiles_FileOrFiles_PathType interface { isReadRel_LocalFiles_FileOrFiles_PathType() } @@ -5081,6 +5114,10 @@ type ReadRel_LocalFiles_FileOrFiles_Dwrf struct { Dwrf *ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions `protobuf:"bytes,13,opt,name=dwrf,proto3,oneof"` } +type ReadRel_LocalFiles_FileOrFiles_Text struct { + Text *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions `protobuf:"bytes,14,opt,name=text,proto3,oneof"` +} + func (*ReadRel_LocalFiles_FileOrFiles_Parquet) isReadRel_LocalFiles_FileOrFiles_FileFormat() {} func (*ReadRel_LocalFiles_FileOrFiles_Arrow) isReadRel_LocalFiles_FileOrFiles_FileFormat() {} @@ -5091,6 +5128,8 @@ func (*ReadRel_LocalFiles_FileOrFiles_Extension) isReadRel_LocalFiles_FileOrFile func (*ReadRel_LocalFiles_FileOrFiles_Dwrf) isReadRel_LocalFiles_FileOrFiles_FileFormat() {} +func (*ReadRel_LocalFiles_FileOrFiles_Text) isReadRel_LocalFiles_FileOrFiles_FileFormat() {} + type ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5243,6 +5282,108 @@ func (*ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions) Descriptor() ([]byte, []i return file_substrait_algebra_proto_rawDescGZIP(), []int{1, 3, 0, 3} } +type ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The character(s) used to separate fields. Common values are comma, + // tab, and pipe. Multiple characters are allowed. + FieldDelimiter string `protobuf:"bytes,1,opt,name=field_delimiter,json=fieldDelimiter,proto3" json:"field_delimiter,omitempty"` + // The maximum number of bytes to read from a single line. If a line + // exceeds this limit the resulting behavior is undefined. + MaxLineSize uint64 `protobuf:"varint,2,opt,name=max_line_size,json=maxLineSize,proto3" json:"max_line_size,omitempty"` + // The character(s) used to quote strings. Common values are single + // and double quotation marks. + Quote string `protobuf:"bytes,3,opt,name=quote,proto3" json:"quote,omitempty"` + // The number of lines to skip at the beginning of the file. + HeaderLinesToSkip uint64 `protobuf:"varint,4,opt,name=header_lines_to_skip,json=headerLinesToSkip,proto3" json:"header_lines_to_skip,omitempty"` + // The character used to escape characters in strings. Backslash is + // a common value. Note that a double quote mark can also be used as an + // escape character but the external quotes should be removed first. + Escape string `protobuf:"bytes,5,opt,name=escape,proto3" json:"escape,omitempty"` + // If this value is encountered (including empty string), the resulting + // value is null instead. Leave unset to disable. If this value is + // provided, the effective schema of this file is comprised entirely of + // nullable strings. If not provided, the effective schema is instead + // made up of non-nullable strings. + ValueTreatedAsNull *string `protobuf:"bytes,6,opt,name=value_treated_as_null,json=valueTreatedAsNull,proto3,oneof" json:"value_treated_as_null,omitempty"` +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) Reset() { + *x = ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_algebra_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) ProtoMessage() {} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) ProtoReflect() protoreflect.Message { + mi := &file_substrait_algebra_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions.ProtoReflect.Descriptor instead. +func (*ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) Descriptor() ([]byte, []int) { + return file_substrait_algebra_proto_rawDescGZIP(), []int{1, 3, 0, 4} +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetFieldDelimiter() string { + if x != nil { + return x.FieldDelimiter + } + return "" +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetMaxLineSize() uint64 { + if x != nil { + return x.MaxLineSize + } + return 0 +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetQuote() string { + if x != nil { + return x.Quote + } + return "" +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetHeaderLinesToSkip() uint64 { + if x != nil { + return x.HeaderLinesToSkip + } + return 0 +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetEscape() string { + if x != nil { + return x.Escape + } + return "" +} + +func (x *ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions) GetValueTreatedAsNull() string { + if x != nil && x.ValueTreatedAsNull != nil { + return *x.ValueTreatedAsNull + } + return "" +} + type AggregateRel_Grouping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5254,7 +5395,7 @@ type AggregateRel_Grouping struct { func (x *AggregateRel_Grouping) Reset() { *x = AggregateRel_Grouping{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[46] + mi := &file_substrait_algebra_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5267,7 +5408,7 @@ func (x *AggregateRel_Grouping) String() string { func (*AggregateRel_Grouping) ProtoMessage() {} func (x *AggregateRel_Grouping) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[46] + mi := &file_substrait_algebra_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5306,7 +5447,7 @@ type AggregateRel_Measure struct { func (x *AggregateRel_Measure) Reset() { *x = AggregateRel_Measure{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[47] + mi := &file_substrait_algebra_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5319,7 +5460,7 @@ func (x *AggregateRel_Measure) String() string { func (*AggregateRel_Measure) ProtoMessage() {} func (x *AggregateRel_Measure) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[47] + mi := &file_substrait_algebra_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5371,7 +5512,7 @@ type ConsistentPartitionWindowRel_WindowRelFunction struct { func (x *ConsistentPartitionWindowRel_WindowRelFunction) Reset() { *x = ConsistentPartitionWindowRel_WindowRelFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[48] + mi := &file_substrait_algebra_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5384,7 +5525,7 @@ func (x *ConsistentPartitionWindowRel_WindowRelFunction) String() string { func (*ConsistentPartitionWindowRel_WindowRelFunction) ProtoMessage() {} func (x *ConsistentPartitionWindowRel_WindowRelFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[48] + mi := &file_substrait_algebra_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5474,7 +5615,7 @@ type ExchangeRel_ScatterFields struct { func (x *ExchangeRel_ScatterFields) Reset() { *x = ExchangeRel_ScatterFields{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[49] + mi := &file_substrait_algebra_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5487,7 +5628,7 @@ func (x *ExchangeRel_ScatterFields) String() string { func (*ExchangeRel_ScatterFields) ProtoMessage() {} func (x *ExchangeRel_ScatterFields) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[49] + mi := &file_substrait_algebra_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5522,7 +5663,7 @@ type ExchangeRel_SingleBucketExpression struct { func (x *ExchangeRel_SingleBucketExpression) Reset() { *x = ExchangeRel_SingleBucketExpression{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[50] + mi := &file_substrait_algebra_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5535,7 +5676,7 @@ func (x *ExchangeRel_SingleBucketExpression) String() string { func (*ExchangeRel_SingleBucketExpression) ProtoMessage() {} func (x *ExchangeRel_SingleBucketExpression) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[50] + mi := &file_substrait_algebra_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5571,7 +5712,7 @@ type ExchangeRel_MultiBucketExpression struct { func (x *ExchangeRel_MultiBucketExpression) Reset() { *x = ExchangeRel_MultiBucketExpression{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[51] + mi := &file_substrait_algebra_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5584,7 +5725,7 @@ func (x *ExchangeRel_MultiBucketExpression) String() string { func (*ExchangeRel_MultiBucketExpression) ProtoMessage() {} func (x *ExchangeRel_MultiBucketExpression) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[51] + mi := &file_substrait_algebra_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5624,7 +5765,7 @@ type ExchangeRel_Broadcast struct { func (x *ExchangeRel_Broadcast) Reset() { *x = ExchangeRel_Broadcast{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[52] + mi := &file_substrait_algebra_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5637,7 +5778,7 @@ func (x *ExchangeRel_Broadcast) String() string { func (*ExchangeRel_Broadcast) ProtoMessage() {} func (x *ExchangeRel_Broadcast) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[52] + mi := &file_substrait_algebra_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5667,7 +5808,7 @@ type ExchangeRel_RoundRobin struct { func (x *ExchangeRel_RoundRobin) Reset() { *x = ExchangeRel_RoundRobin{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[53] + mi := &file_substrait_algebra_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5680,7 +5821,7 @@ func (x *ExchangeRel_RoundRobin) String() string { func (*ExchangeRel_RoundRobin) ProtoMessage() {} func (x *ExchangeRel_RoundRobin) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[53] + mi := &file_substrait_algebra_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5722,7 +5863,7 @@ type ExchangeRel_ExchangeTarget struct { func (x *ExchangeRel_ExchangeTarget) Reset() { *x = ExchangeRel_ExchangeTarget{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[54] + mi := &file_substrait_algebra_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5735,7 +5876,7 @@ func (x *ExchangeRel_ExchangeTarget) String() string { func (*ExchangeRel_ExchangeTarget) ProtoMessage() {} func (x *ExchangeRel_ExchangeTarget) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[54] + mi := &file_substrait_algebra_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5810,7 +5951,7 @@ type ExpandRel_ExpandField struct { func (x *ExpandRel_ExpandField) Reset() { *x = ExpandRel_ExpandField{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[55] + mi := &file_substrait_algebra_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5823,7 +5964,7 @@ func (x *ExpandRel_ExpandField) String() string { func (*ExpandRel_ExpandField) ProtoMessage() {} func (x *ExpandRel_ExpandField) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[55] + mi := &file_substrait_algebra_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5895,7 +6036,7 @@ type ExpandRel_SwitchingField struct { func (x *ExpandRel_SwitchingField) Reset() { *x = ExpandRel_SwitchingField{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[56] + mi := &file_substrait_algebra_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5908,7 +6049,7 @@ func (x *ExpandRel_SwitchingField) String() string { func (*ExpandRel_SwitchingField) ProtoMessage() {} func (x *ExpandRel_SwitchingField) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[56] + mi := &file_substrait_algebra_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5947,7 +6088,7 @@ type ComparisonJoinKey_ComparisonType struct { func (x *ComparisonJoinKey_ComparisonType) Reset() { *x = ComparisonJoinKey_ComparisonType{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[57] + mi := &file_substrait_algebra_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5960,7 +6101,7 @@ func (x *ComparisonJoinKey_ComparisonType) String() string { func (*ComparisonJoinKey_ComparisonType) ProtoMessage() {} func (x *ComparisonJoinKey_ComparisonType) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[57] + mi := &file_substrait_algebra_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6035,7 +6176,7 @@ type Expression_Enum struct { func (x *Expression_Enum) Reset() { *x = Expression_Enum{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[58] + mi := &file_substrait_algebra_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6048,7 +6189,7 @@ func (x *Expression_Enum) String() string { func (*Expression_Enum) ProtoMessage() {} func (x *Expression_Enum) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[58] + mi := &file_substrait_algebra_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6122,6 +6263,7 @@ type Expression_Literal struct { // *Expression_Literal_Time // *Expression_Literal_IntervalYearToMonth_ // *Expression_Literal_IntervalDayToSecond_ + // *Expression_Literal_IntervalCompound_ // *Expression_Literal_FixedChar // *Expression_Literal_VarChar_ // *Expression_Literal_FixedBinary @@ -6153,7 +6295,7 @@ type Expression_Literal struct { func (x *Expression_Literal) Reset() { *x = Expression_Literal{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[59] + mi := &file_substrait_algebra_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6166,7 +6308,7 @@ func (x *Expression_Literal) String() string { func (*Expression_Literal) ProtoMessage() {} func (x *Expression_Literal) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[59] + mi := &file_substrait_algebra_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6288,6 +6430,13 @@ func (x *Expression_Literal) GetIntervalDayToSecond() *Expression_Literal_Interv return nil } +func (x *Expression_Literal) GetIntervalCompound() *Expression_Literal_IntervalCompound { + if x, ok := x.GetLiteralType().(*Expression_Literal_IntervalCompound_); ok { + return x.IntervalCompound + } + return nil +} + func (x *Expression_Literal) GetFixedChar() string { if x, ok := x.GetLiteralType().(*Expression_Literal_FixedChar); ok { return x.FixedChar @@ -6474,6 +6623,10 @@ type Expression_Literal_IntervalDayToSecond_ struct { IntervalDayToSecond *Expression_Literal_IntervalDayToSecond `protobuf:"bytes,20,opt,name=interval_day_to_second,json=intervalDayToSecond,proto3,oneof"` } +type Expression_Literal_IntervalCompound_ struct { + IntervalCompound *Expression_Literal_IntervalCompound `protobuf:"bytes,36,opt,name=interval_compound,json=intervalCompound,proto3,oneof"` +} + type Expression_Literal_FixedChar struct { FixedChar string `protobuf:"bytes,21,opt,name=fixed_char,json=fixedChar,proto3,oneof"` } @@ -6566,6 +6719,8 @@ func (*Expression_Literal_IntervalYearToMonth_) isExpression_Literal_LiteralType func (*Expression_Literal_IntervalDayToSecond_) isExpression_Literal_LiteralType() {} +func (*Expression_Literal_IntervalCompound_) isExpression_Literal_LiteralType() {} + func (*Expression_Literal_FixedChar) isExpression_Literal_LiteralType() {} func (*Expression_Literal_VarChar_) isExpression_Literal_LiteralType() {} @@ -6618,7 +6773,7 @@ type Expression_Nested struct { func (x *Expression_Nested) Reset() { *x = Expression_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[60] + mi := &file_substrait_algebra_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6631,7 +6786,7 @@ func (x *Expression_Nested) String() string { func (*Expression_Nested) ProtoMessage() {} func (x *Expression_Nested) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[60] + mi := &file_substrait_algebra_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6749,7 +6904,7 @@ type Expression_ScalarFunction struct { func (x *Expression_ScalarFunction) Reset() { *x = Expression_ScalarFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[61] + mi := &file_substrait_algebra_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6762,7 +6917,7 @@ func (x *Expression_ScalarFunction) String() string { func (*Expression_ScalarFunction) ProtoMessage() {} func (x *Expression_ScalarFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[61] + mi := &file_substrait_algebra_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6892,7 +7047,7 @@ type Expression_WindowFunction struct { func (x *Expression_WindowFunction) Reset() { *x = Expression_WindowFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[62] + mi := &file_substrait_algebra_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6905,7 +7060,7 @@ func (x *Expression_WindowFunction) String() string { func (*Expression_WindowFunction) ProtoMessage() {} func (x *Expression_WindowFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[62] + mi := &file_substrait_algebra_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7020,7 +7175,7 @@ type Expression_IfThen struct { func (x *Expression_IfThen) Reset() { *x = Expression_IfThen{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[63] + mi := &file_substrait_algebra_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7033,7 +7188,7 @@ func (x *Expression_IfThen) String() string { func (*Expression_IfThen) ProtoMessage() {} func (x *Expression_IfThen) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[63] + mi := &file_substrait_algebra_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7076,7 +7231,7 @@ type Expression_Cast struct { func (x *Expression_Cast) Reset() { *x = Expression_Cast{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[64] + mi := &file_substrait_algebra_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7089,7 +7244,7 @@ func (x *Expression_Cast) String() string { func (*Expression_Cast) ProtoMessage() {} func (x *Expression_Cast) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[64] + mi := &file_substrait_algebra_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7139,7 +7294,7 @@ type Expression_SwitchExpression struct { func (x *Expression_SwitchExpression) Reset() { *x = Expression_SwitchExpression{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[65] + mi := &file_substrait_algebra_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7152,7 +7307,7 @@ func (x *Expression_SwitchExpression) String() string { func (*Expression_SwitchExpression) ProtoMessage() {} func (x *Expression_SwitchExpression) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[65] + mi := &file_substrait_algebra_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7201,7 +7356,7 @@ type Expression_SingularOrList struct { func (x *Expression_SingularOrList) Reset() { *x = Expression_SingularOrList{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[66] + mi := &file_substrait_algebra_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7214,7 +7369,7 @@ func (x *Expression_SingularOrList) String() string { func (*Expression_SingularOrList) ProtoMessage() {} func (x *Expression_SingularOrList) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[66] + mi := &file_substrait_algebra_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7256,7 +7411,7 @@ type Expression_MultiOrList struct { func (x *Expression_MultiOrList) Reset() { *x = Expression_MultiOrList{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[67] + mi := &file_substrait_algebra_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7269,7 +7424,7 @@ func (x *Expression_MultiOrList) String() string { func (*Expression_MultiOrList) ProtoMessage() {} func (x *Expression_MultiOrList) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[67] + mi := &file_substrait_algebra_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7316,7 +7471,7 @@ type Expression_EmbeddedFunction struct { func (x *Expression_EmbeddedFunction) Reset() { *x = Expression_EmbeddedFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[68] + mi := &file_substrait_algebra_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7329,7 +7484,7 @@ func (x *Expression_EmbeddedFunction) String() string { func (*Expression_EmbeddedFunction) ProtoMessage() {} func (x *Expression_EmbeddedFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[68] + mi := &file_substrait_algebra_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7419,7 +7574,7 @@ type Expression_ReferenceSegment struct { func (x *Expression_ReferenceSegment) Reset() { *x = Expression_ReferenceSegment{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[69] + mi := &file_substrait_algebra_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7432,7 +7587,7 @@ func (x *Expression_ReferenceSegment) String() string { func (*Expression_ReferenceSegment) ProtoMessage() {} func (x *Expression_ReferenceSegment) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[69] + mi := &file_substrait_algebra_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7519,7 +7674,7 @@ type Expression_MaskExpression struct { func (x *Expression_MaskExpression) Reset() { *x = Expression_MaskExpression{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[70] + mi := &file_substrait_algebra_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7532,7 +7687,7 @@ func (x *Expression_MaskExpression) String() string { func (*Expression_MaskExpression) ProtoMessage() {} func (x *Expression_MaskExpression) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[70] + mi := &file_substrait_algebra_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7592,7 +7747,7 @@ type Expression_FieldReference struct { func (x *Expression_FieldReference) Reset() { *x = Expression_FieldReference{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[71] + mi := &file_substrait_algebra_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7605,7 +7760,7 @@ func (x *Expression_FieldReference) String() string { func (*Expression_FieldReference) ProtoMessage() {} func (x *Expression_FieldReference) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[71] + mi := &file_substrait_algebra_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7726,7 +7881,7 @@ type Expression_Subquery struct { func (x *Expression_Subquery) Reset() { *x = Expression_Subquery{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[72] + mi := &file_substrait_algebra_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7739,7 +7894,7 @@ func (x *Expression_Subquery) String() string { func (*Expression_Subquery) ProtoMessage() {} func (x *Expression_Subquery) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[72] + mi := &file_substrait_algebra_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7832,7 +7987,7 @@ type Expression_Enum_Empty struct { func (x *Expression_Enum_Empty) Reset() { *x = Expression_Enum_Empty{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[73] + mi := &file_substrait_algebra_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7845,7 +8000,7 @@ func (x *Expression_Enum_Empty) String() string { func (*Expression_Enum_Empty) ProtoMessage() {} func (x *Expression_Enum_Empty) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[73] + mi := &file_substrait_algebra_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7873,7 +8028,7 @@ type Expression_Literal_VarChar struct { func (x *Expression_Literal_VarChar) Reset() { *x = Expression_Literal_VarChar{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[74] + mi := &file_substrait_algebra_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7886,7 +8041,7 @@ func (x *Expression_Literal_VarChar) String() string { func (*Expression_Literal_VarChar) ProtoMessage() {} func (x *Expression_Literal_VarChar) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[74] + mi := &file_substrait_algebra_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7934,7 +8089,7 @@ type Expression_Literal_Decimal struct { func (x *Expression_Literal_Decimal) Reset() { *x = Expression_Literal_Decimal{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[75] + mi := &file_substrait_algebra_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7947,7 +8102,7 @@ func (x *Expression_Literal_Decimal) String() string { func (*Expression_Literal_Decimal) ProtoMessage() {} func (x *Expression_Literal_Decimal) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[75] + mi := &file_substrait_algebra_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7998,7 +8153,7 @@ type Expression_Literal_PrecisionTimestamp struct { func (x *Expression_Literal_PrecisionTimestamp) Reset() { *x = Expression_Literal_PrecisionTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[76] + mi := &file_substrait_algebra_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8011,7 +8166,7 @@ func (x *Expression_Literal_PrecisionTimestamp) String() string { func (*Expression_Literal_PrecisionTimestamp) ProtoMessage() {} func (x *Expression_Literal_PrecisionTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[76] + mi := &file_substrait_algebra_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8052,7 +8207,7 @@ type Expression_Literal_Map struct { func (x *Expression_Literal_Map) Reset() { *x = Expression_Literal_Map{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[77] + mi := &file_substrait_algebra_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8065,7 +8220,7 @@ func (x *Expression_Literal_Map) String() string { func (*Expression_Literal_Map) ProtoMessage() {} func (x *Expression_Literal_Map) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[77] + mi := &file_substrait_algebra_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8100,7 +8255,7 @@ type Expression_Literal_IntervalYearToMonth struct { func (x *Expression_Literal_IntervalYearToMonth) Reset() { *x = Expression_Literal_IntervalYearToMonth{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[78] + mi := &file_substrait_algebra_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8113,7 +8268,7 @@ func (x *Expression_Literal_IntervalYearToMonth) String() string { func (*Expression_Literal_IntervalYearToMonth) ProtoMessage() {} func (x *Expression_Literal_IntervalYearToMonth) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[78] + mi := &file_substrait_algebra_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8148,15 +8303,23 @@ type Expression_Literal_IntervalDayToSecond struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Days int32 `protobuf:"varint,1,opt,name=days,proto3" json:"days,omitempty"` - Seconds int32 `protobuf:"varint,2,opt,name=seconds,proto3" json:"seconds,omitempty"` - Microseconds int32 `protobuf:"varint,3,opt,name=microseconds,proto3" json:"microseconds,omitempty"` + Days int32 `protobuf:"varint,1,opt,name=days,proto3" json:"days,omitempty"` + Seconds int32 `protobuf:"varint,2,opt,name=seconds,proto3" json:"seconds,omitempty"` + // Consumers should expect either (miroseconds) to be set or (precision and subseconds) to be set + // + // Types that are assignable to PrecisionMode: + // + // *Expression_Literal_IntervalDayToSecond_Microseconds + // *Expression_Literal_IntervalDayToSecond_Precision + PrecisionMode isExpression_Literal_IntervalDayToSecond_PrecisionMode `protobuf_oneof:"precision_mode"` + // the number of fractional seconds using 1e(-precision) units. Should only be used with precision field, not microseconds. + Subseconds int64 `protobuf:"varint,5,opt,name=subseconds,proto3" json:"subseconds,omitempty"` } func (x *Expression_Literal_IntervalDayToSecond) Reset() { *x = Expression_Literal_IntervalDayToSecond{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[79] + mi := &file_substrait_algebra_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8169,7 +8332,7 @@ func (x *Expression_Literal_IntervalDayToSecond) String() string { func (*Expression_Literal_IntervalDayToSecond) ProtoMessage() {} func (x *Expression_Literal_IntervalDayToSecond) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[79] + mi := &file_substrait_algebra_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8199,39 +8362,81 @@ func (x *Expression_Literal_IntervalDayToSecond) GetSeconds() int32 { return 0 } +func (m *Expression_Literal_IntervalDayToSecond) GetPrecisionMode() isExpression_Literal_IntervalDayToSecond_PrecisionMode { + if m != nil { + return m.PrecisionMode + } + return nil +} + +// Deprecated: Marked as deprecated in substrait/algebra.proto. func (x *Expression_Literal_IntervalDayToSecond) GetMicroseconds() int32 { - if x != nil { + if x, ok := x.GetPrecisionMode().(*Expression_Literal_IntervalDayToSecond_Microseconds); ok { return x.Microseconds } return 0 } -type Expression_Literal_Struct struct { +func (x *Expression_Literal_IntervalDayToSecond) GetPrecision() int32 { + if x, ok := x.GetPrecisionMode().(*Expression_Literal_IntervalDayToSecond_Precision); ok { + return x.Precision + } + return 0 +} + +func (x *Expression_Literal_IntervalDayToSecond) GetSubseconds() int64 { + if x != nil { + return x.Subseconds + } + return 0 +} + +type isExpression_Literal_IntervalDayToSecond_PrecisionMode interface { + isExpression_Literal_IntervalDayToSecond_PrecisionMode() +} + +type Expression_Literal_IntervalDayToSecond_Microseconds struct { + // Deprecated: Marked as deprecated in substrait/algebra.proto. + Microseconds int32 `protobuf:"varint,3,opt,name=microseconds,proto3,oneof"` // use precision and subseconds below, they cover and replace microseconds. +} + +type Expression_Literal_IntervalDayToSecond_Precision struct { + // Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds. Should be used with subseconds below. + Precision int32 `protobuf:"varint,4,opt,name=precision,proto3,oneof"` +} + +func (*Expression_Literal_IntervalDayToSecond_Microseconds) isExpression_Literal_IntervalDayToSecond_PrecisionMode() { +} + +func (*Expression_Literal_IntervalDayToSecond_Precision) isExpression_Literal_IntervalDayToSecond_PrecisionMode() { +} + +type Expression_Literal_IntervalCompound struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A possibly heterogeneously typed list of literals - Fields []*Expression_Literal `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` + IntervalYearToMonth *Expression_Literal_IntervalYearToMonth `protobuf:"bytes,1,opt,name=interval_year_to_month,json=intervalYearToMonth,proto3" json:"interval_year_to_month,omitempty"` + IntervalDayToSecond *Expression_Literal_IntervalDayToSecond `protobuf:"bytes,2,opt,name=interval_day_to_second,json=intervalDayToSecond,proto3" json:"interval_day_to_second,omitempty"` } -func (x *Expression_Literal_Struct) Reset() { - *x = Expression_Literal_Struct{} +func (x *Expression_Literal_IntervalCompound) Reset() { + *x = Expression_Literal_IntervalCompound{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[80] + mi := &file_substrait_algebra_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Expression_Literal_Struct) String() string { +func (x *Expression_Literal_IntervalCompound) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Expression_Literal_Struct) ProtoMessage() {} +func (*Expression_Literal_IntervalCompound) ProtoMessage() {} -func (x *Expression_Literal_Struct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[80] +func (x *Expression_Literal_IntervalCompound) ProtoReflect() protoreflect.Message { + mi := &file_substrait_algebra_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8242,20 +8447,75 @@ func (x *Expression_Literal_Struct) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Expression_Literal_Struct.ProtoReflect.Descriptor instead. -func (*Expression_Literal_Struct) Descriptor() ([]byte, []int) { +// Deprecated: Use Expression_Literal_IntervalCompound.ProtoReflect.Descriptor instead. +func (*Expression_Literal_IntervalCompound) Descriptor() ([]byte, []int) { return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 6} } -func (x *Expression_Literal_Struct) GetFields() []*Expression_Literal { +func (x *Expression_Literal_IntervalCompound) GetIntervalYearToMonth() *Expression_Literal_IntervalYearToMonth { if x != nil { - return x.Fields + return x.IntervalYearToMonth } return nil } -type Expression_Literal_List struct { - state protoimpl.MessageState +func (x *Expression_Literal_IntervalCompound) GetIntervalDayToSecond() *Expression_Literal_IntervalDayToSecond { + if x != nil { + return x.IntervalDayToSecond + } + return nil +} + +type Expression_Literal_Struct struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A possibly heterogeneously typed list of literals + Fields []*Expression_Literal `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` +} + +func (x *Expression_Literal_Struct) Reset() { + *x = Expression_Literal_Struct{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_algebra_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_Struct) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_Struct) ProtoMessage() {} + +func (x *Expression_Literal_Struct) ProtoReflect() protoreflect.Message { + mi := &file_substrait_algebra_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Expression_Literal_Struct.ProtoReflect.Descriptor instead. +func (*Expression_Literal_Struct) Descriptor() ([]byte, []int) { + return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 7} +} + +func (x *Expression_Literal_Struct) GetFields() []*Expression_Literal { + if x != nil { + return x.Fields + } + return nil +} + +type Expression_Literal_List struct { + state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -8266,7 +8526,7 @@ type Expression_Literal_List struct { func (x *Expression_Literal_List) Reset() { *x = Expression_Literal_List{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[81] + mi := &file_substrait_algebra_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8279,7 +8539,7 @@ func (x *Expression_Literal_List) String() string { func (*Expression_Literal_List) ProtoMessage() {} func (x *Expression_Literal_List) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[81] + mi := &file_substrait_algebra_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8292,7 +8552,7 @@ func (x *Expression_Literal_List) ProtoReflect() protoreflect.Message { // Deprecated: Use Expression_Literal_List.ProtoReflect.Descriptor instead. func (*Expression_Literal_List) Descriptor() ([]byte, []int) { - return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 7} + return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 8} } func (x *Expression_Literal_List) GetValues() []*Expression_Literal { @@ -8324,7 +8584,7 @@ type Expression_Literal_UserDefined struct { func (x *Expression_Literal_UserDefined) Reset() { *x = Expression_Literal_UserDefined{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[82] + mi := &file_substrait_algebra_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8337,7 +8597,7 @@ func (x *Expression_Literal_UserDefined) String() string { func (*Expression_Literal_UserDefined) ProtoMessage() {} func (x *Expression_Literal_UserDefined) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[82] + mi := &file_substrait_algebra_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8350,7 +8610,7 @@ func (x *Expression_Literal_UserDefined) ProtoReflect() protoreflect.Message { // Deprecated: Use Expression_Literal_UserDefined.ProtoReflect.Descriptor instead. func (*Expression_Literal_UserDefined) Descriptor() ([]byte, []int) { - return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 8} + return file_substrait_algebra_proto_rawDescGZIP(), []int{28, 1, 9} } func (x *Expression_Literal_UserDefined) GetTypeReference() uint32 { @@ -8418,7 +8678,7 @@ type Expression_Literal_Map_KeyValue struct { func (x *Expression_Literal_Map_KeyValue) Reset() { *x = Expression_Literal_Map_KeyValue{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[83] + mi := &file_substrait_algebra_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8431,7 +8691,7 @@ func (x *Expression_Literal_Map_KeyValue) String() string { func (*Expression_Literal_Map_KeyValue) ProtoMessage() {} func (x *Expression_Literal_Map_KeyValue) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[83] + mi := &file_substrait_algebra_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8474,7 +8734,7 @@ type Expression_Nested_Map struct { func (x *Expression_Nested_Map) Reset() { *x = Expression_Nested_Map{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[84] + mi := &file_substrait_algebra_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8487,7 +8747,7 @@ func (x *Expression_Nested_Map) String() string { func (*Expression_Nested_Map) ProtoMessage() {} func (x *Expression_Nested_Map) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[84] + mi := &file_substrait_algebra_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8523,7 +8783,7 @@ type Expression_Nested_Struct struct { func (x *Expression_Nested_Struct) Reset() { *x = Expression_Nested_Struct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[85] + mi := &file_substrait_algebra_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8536,7 +8796,7 @@ func (x *Expression_Nested_Struct) String() string { func (*Expression_Nested_Struct) ProtoMessage() {} func (x *Expression_Nested_Struct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[85] + mi := &file_substrait_algebra_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8573,7 +8833,7 @@ type Expression_Nested_List struct { func (x *Expression_Nested_List) Reset() { *x = Expression_Nested_List{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[86] + mi := &file_substrait_algebra_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8586,7 +8846,7 @@ func (x *Expression_Nested_List) String() string { func (*Expression_Nested_List) ProtoMessage() {} func (x *Expression_Nested_List) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[86] + mi := &file_substrait_algebra_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8622,7 +8882,7 @@ type Expression_Nested_Map_KeyValue struct { func (x *Expression_Nested_Map_KeyValue) Reset() { *x = Expression_Nested_Map_KeyValue{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[87] + mi := &file_substrait_algebra_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8635,7 +8895,7 @@ func (x *Expression_Nested_Map_KeyValue) String() string { func (*Expression_Nested_Map_KeyValue) ProtoMessage() {} func (x *Expression_Nested_Map_KeyValue) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[87] + mi := &file_substrait_algebra_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8683,7 +8943,7 @@ type Expression_WindowFunction_Bound struct { func (x *Expression_WindowFunction_Bound) Reset() { *x = Expression_WindowFunction_Bound{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[88] + mi := &file_substrait_algebra_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8696,7 +8956,7 @@ func (x *Expression_WindowFunction_Bound) String() string { func (*Expression_WindowFunction_Bound) ProtoMessage() {} func (x *Expression_WindowFunction_Bound) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[88] + mi := &file_substrait_algebra_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8797,7 +9057,7 @@ type Expression_WindowFunction_Bound_Preceding struct { func (x *Expression_WindowFunction_Bound_Preceding) Reset() { *x = Expression_WindowFunction_Bound_Preceding{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[89] + mi := &file_substrait_algebra_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8810,7 +9070,7 @@ func (x *Expression_WindowFunction_Bound_Preceding) String() string { func (*Expression_WindowFunction_Bound_Preceding) ProtoMessage() {} func (x *Expression_WindowFunction_Bound_Preceding) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[89] + mi := &file_substrait_algebra_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8848,7 +9108,7 @@ type Expression_WindowFunction_Bound_Following struct { func (x *Expression_WindowFunction_Bound_Following) Reset() { *x = Expression_WindowFunction_Bound_Following{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[90] + mi := &file_substrait_algebra_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8861,7 +9121,7 @@ func (x *Expression_WindowFunction_Bound_Following) String() string { func (*Expression_WindowFunction_Bound_Following) ProtoMessage() {} func (x *Expression_WindowFunction_Bound_Following) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[90] + mi := &file_substrait_algebra_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8894,7 +9154,7 @@ type Expression_WindowFunction_Bound_CurrentRow struct { func (x *Expression_WindowFunction_Bound_CurrentRow) Reset() { *x = Expression_WindowFunction_Bound_CurrentRow{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[91] + mi := &file_substrait_algebra_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8907,7 +9167,7 @@ func (x *Expression_WindowFunction_Bound_CurrentRow) String() string { func (*Expression_WindowFunction_Bound_CurrentRow) ProtoMessage() {} func (x *Expression_WindowFunction_Bound_CurrentRow) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[91] + mi := &file_substrait_algebra_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8935,7 +9195,7 @@ type Expression_WindowFunction_Bound_Unbounded struct { func (x *Expression_WindowFunction_Bound_Unbounded) Reset() { *x = Expression_WindowFunction_Bound_Unbounded{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[92] + mi := &file_substrait_algebra_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8948,7 +9208,7 @@ func (x *Expression_WindowFunction_Bound_Unbounded) String() string { func (*Expression_WindowFunction_Bound_Unbounded) ProtoMessage() {} func (x *Expression_WindowFunction_Bound_Unbounded) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[92] + mi := &file_substrait_algebra_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8976,7 +9236,7 @@ type Expression_IfThen_IfClause struct { func (x *Expression_IfThen_IfClause) Reset() { *x = Expression_IfThen_IfClause{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[93] + mi := &file_substrait_algebra_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8989,7 +9249,7 @@ func (x *Expression_IfThen_IfClause) String() string { func (*Expression_IfThen_IfClause) ProtoMessage() {} func (x *Expression_IfThen_IfClause) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[93] + mi := &file_substrait_algebra_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9031,7 +9291,7 @@ type Expression_SwitchExpression_IfValue struct { func (x *Expression_SwitchExpression_IfValue) Reset() { *x = Expression_SwitchExpression_IfValue{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[94] + mi := &file_substrait_algebra_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9044,7 +9304,7 @@ func (x *Expression_SwitchExpression_IfValue) String() string { func (*Expression_SwitchExpression_IfValue) ProtoMessage() {} func (x *Expression_SwitchExpression_IfValue) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[94] + mi := &file_substrait_algebra_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9085,7 +9345,7 @@ type Expression_MultiOrList_Record struct { func (x *Expression_MultiOrList_Record) Reset() { *x = Expression_MultiOrList_Record{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[95] + mi := &file_substrait_algebra_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9098,7 +9358,7 @@ func (x *Expression_MultiOrList_Record) String() string { func (*Expression_MultiOrList_Record) ProtoMessage() {} func (x *Expression_MultiOrList_Record) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[95] + mi := &file_substrait_algebra_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9133,7 +9393,7 @@ type Expression_EmbeddedFunction_PythonPickleFunction struct { func (x *Expression_EmbeddedFunction_PythonPickleFunction) Reset() { *x = Expression_EmbeddedFunction_PythonPickleFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[96] + mi := &file_substrait_algebra_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9146,7 +9406,7 @@ func (x *Expression_EmbeddedFunction_PythonPickleFunction) String() string { func (*Expression_EmbeddedFunction_PythonPickleFunction) ProtoMessage() {} func (x *Expression_EmbeddedFunction_PythonPickleFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[96] + mi := &file_substrait_algebra_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9188,7 +9448,7 @@ type Expression_EmbeddedFunction_WebAssemblyFunction struct { func (x *Expression_EmbeddedFunction_WebAssemblyFunction) Reset() { *x = Expression_EmbeddedFunction_WebAssemblyFunction{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[97] + mi := &file_substrait_algebra_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9201,7 +9461,7 @@ func (x *Expression_EmbeddedFunction_WebAssemblyFunction) String() string { func (*Expression_EmbeddedFunction_WebAssemblyFunction) ProtoMessage() {} func (x *Expression_EmbeddedFunction_WebAssemblyFunction) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[97] + mi := &file_substrait_algebra_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9245,7 +9505,7 @@ type Expression_ReferenceSegment_MapKey struct { func (x *Expression_ReferenceSegment_MapKey) Reset() { *x = Expression_ReferenceSegment_MapKey{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[98] + mi := &file_substrait_algebra_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9258,7 +9518,7 @@ func (x *Expression_ReferenceSegment_MapKey) String() string { func (*Expression_ReferenceSegment_MapKey) ProtoMessage() {} func (x *Expression_ReferenceSegment_MapKey) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[98] + mi := &file_substrait_algebra_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9302,7 +9562,7 @@ type Expression_ReferenceSegment_StructField struct { func (x *Expression_ReferenceSegment_StructField) Reset() { *x = Expression_ReferenceSegment_StructField{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[99] + mi := &file_substrait_algebra_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9315,7 +9575,7 @@ func (x *Expression_ReferenceSegment_StructField) String() string { func (*Expression_ReferenceSegment_StructField) ProtoMessage() {} func (x *Expression_ReferenceSegment_StructField) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[99] + mi := &file_substrait_algebra_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9359,7 +9619,7 @@ type Expression_ReferenceSegment_ListElement struct { func (x *Expression_ReferenceSegment_ListElement) Reset() { *x = Expression_ReferenceSegment_ListElement{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[100] + mi := &file_substrait_algebra_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9372,7 +9632,7 @@ func (x *Expression_ReferenceSegment_ListElement) String() string { func (*Expression_ReferenceSegment_ListElement) ProtoMessage() {} func (x *Expression_ReferenceSegment_ListElement) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[100] + mi := &file_substrait_algebra_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9418,7 +9678,7 @@ type Expression_MaskExpression_Select struct { func (x *Expression_MaskExpression_Select) Reset() { *x = Expression_MaskExpression_Select{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[101] + mi := &file_substrait_algebra_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9431,7 +9691,7 @@ func (x *Expression_MaskExpression_Select) String() string { func (*Expression_MaskExpression_Select) ProtoMessage() {} func (x *Expression_MaskExpression_Select) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[101] + mi := &file_substrait_algebra_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9508,7 +9768,7 @@ type Expression_MaskExpression_StructSelect struct { func (x *Expression_MaskExpression_StructSelect) Reset() { *x = Expression_MaskExpression_StructSelect{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[102] + mi := &file_substrait_algebra_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9521,7 +9781,7 @@ func (x *Expression_MaskExpression_StructSelect) String() string { func (*Expression_MaskExpression_StructSelect) ProtoMessage() {} func (x *Expression_MaskExpression_StructSelect) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[102] + mi := &file_substrait_algebra_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9556,7 +9816,7 @@ type Expression_MaskExpression_StructItem struct { func (x *Expression_MaskExpression_StructItem) Reset() { *x = Expression_MaskExpression_StructItem{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[103] + mi := &file_substrait_algebra_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9569,7 +9829,7 @@ func (x *Expression_MaskExpression_StructItem) String() string { func (*Expression_MaskExpression_StructItem) ProtoMessage() {} func (x *Expression_MaskExpression_StructItem) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[103] + mi := &file_substrait_algebra_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9611,7 +9871,7 @@ type Expression_MaskExpression_ListSelect struct { func (x *Expression_MaskExpression_ListSelect) Reset() { *x = Expression_MaskExpression_ListSelect{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[104] + mi := &file_substrait_algebra_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9624,7 +9884,7 @@ func (x *Expression_MaskExpression_ListSelect) String() string { func (*Expression_MaskExpression_ListSelect) ProtoMessage() {} func (x *Expression_MaskExpression_ListSelect) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[104] + mi := &file_substrait_algebra_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9670,7 +9930,7 @@ type Expression_MaskExpression_MapSelect struct { func (x *Expression_MaskExpression_MapSelect) Reset() { *x = Expression_MaskExpression_MapSelect{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[105] + mi := &file_substrait_algebra_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9683,7 +9943,7 @@ func (x *Expression_MaskExpression_MapSelect) String() string { func (*Expression_MaskExpression_MapSelect) ProtoMessage() {} func (x *Expression_MaskExpression_MapSelect) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[105] + mi := &file_substrait_algebra_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9759,7 +10019,7 @@ type Expression_MaskExpression_ListSelect_ListSelectItem struct { func (x *Expression_MaskExpression_ListSelect_ListSelectItem) Reset() { *x = Expression_MaskExpression_ListSelect_ListSelectItem{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[106] + mi := &file_substrait_algebra_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9772,7 +10032,7 @@ func (x *Expression_MaskExpression_ListSelect_ListSelectItem) String() string { func (*Expression_MaskExpression_ListSelect_ListSelectItem) ProtoMessage() {} func (x *Expression_MaskExpression_ListSelect_ListSelectItem) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[106] + mi := &file_substrait_algebra_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9838,7 +10098,7 @@ type Expression_MaskExpression_ListSelect_ListSelectItem_ListElement struct { func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListElement) Reset() { *x = Expression_MaskExpression_ListSelect_ListSelectItem_ListElement{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[107] + mi := &file_substrait_algebra_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9851,7 +10111,7 @@ func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListElement) String func (*Expression_MaskExpression_ListSelect_ListSelectItem_ListElement) ProtoMessage() {} func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListElement) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[107] + mi := &file_substrait_algebra_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9886,7 +10146,7 @@ type Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice struct { func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice) Reset() { *x = Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[108] + mi := &file_substrait_algebra_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9899,7 +10159,7 @@ func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice) String() func (*Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice) ProtoMessage() {} func (x *Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[108] + mi := &file_substrait_algebra_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9940,7 +10200,7 @@ type Expression_MaskExpression_MapSelect_MapKey struct { func (x *Expression_MaskExpression_MapSelect_MapKey) Reset() { *x = Expression_MaskExpression_MapSelect_MapKey{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[109] + mi := &file_substrait_algebra_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9953,7 +10213,7 @@ func (x *Expression_MaskExpression_MapSelect_MapKey) String() string { func (*Expression_MaskExpression_MapSelect_MapKey) ProtoMessage() {} func (x *Expression_MaskExpression_MapSelect_MapKey) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[109] + mi := &file_substrait_algebra_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9987,7 +10247,7 @@ type Expression_MaskExpression_MapSelect_MapKeyExpression struct { func (x *Expression_MaskExpression_MapSelect_MapKeyExpression) Reset() { *x = Expression_MaskExpression_MapSelect_MapKeyExpression{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[110] + mi := &file_substrait_algebra_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10000,7 +10260,7 @@ func (x *Expression_MaskExpression_MapSelect_MapKeyExpression) String() string { func (*Expression_MaskExpression_MapSelect_MapKeyExpression) ProtoMessage() {} func (x *Expression_MaskExpression_MapSelect_MapKeyExpression) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[110] + mi := &file_substrait_algebra_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10034,7 +10294,7 @@ type Expression_FieldReference_RootReference struct { func (x *Expression_FieldReference_RootReference) Reset() { *x = Expression_FieldReference_RootReference{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[111] + mi := &file_substrait_algebra_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10047,7 +10307,7 @@ func (x *Expression_FieldReference_RootReference) String() string { func (*Expression_FieldReference_RootReference) ProtoMessage() {} func (x *Expression_FieldReference_RootReference) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[111] + mi := &file_substrait_algebra_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10078,7 +10338,7 @@ type Expression_FieldReference_OuterReference struct { func (x *Expression_FieldReference_OuterReference) Reset() { *x = Expression_FieldReference_OuterReference{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[112] + mi := &file_substrait_algebra_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10091,7 +10351,7 @@ func (x *Expression_FieldReference_OuterReference) String() string { func (*Expression_FieldReference_OuterReference) ProtoMessage() {} func (x *Expression_FieldReference_OuterReference) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[112] + mi := &file_substrait_algebra_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10127,7 +10387,7 @@ type Expression_Subquery_Scalar struct { func (x *Expression_Subquery_Scalar) Reset() { *x = Expression_Subquery_Scalar{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[113] + mi := &file_substrait_algebra_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10140,7 +10400,7 @@ func (x *Expression_Subquery_Scalar) String() string { func (*Expression_Subquery_Scalar) ProtoMessage() {} func (x *Expression_Subquery_Scalar) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[113] + mi := &file_substrait_algebra_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10182,7 +10442,7 @@ type Expression_Subquery_InPredicate struct { func (x *Expression_Subquery_InPredicate) Reset() { *x = Expression_Subquery_InPredicate{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[114] + mi := &file_substrait_algebra_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10195,7 +10455,7 @@ func (x *Expression_Subquery_InPredicate) String() string { func (*Expression_Subquery_InPredicate) ProtoMessage() {} func (x *Expression_Subquery_InPredicate) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[114] + mi := &file_substrait_algebra_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10240,7 +10500,7 @@ type Expression_Subquery_SetPredicate struct { func (x *Expression_Subquery_SetPredicate) Reset() { *x = Expression_Subquery_SetPredicate{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[115] + mi := &file_substrait_algebra_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10253,7 +10513,7 @@ func (x *Expression_Subquery_SetPredicate) String() string { func (*Expression_Subquery_SetPredicate) ProtoMessage() {} func (x *Expression_Subquery_SetPredicate) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[115] + mi := &file_substrait_algebra_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10307,7 +10567,7 @@ type Expression_Subquery_SetComparison struct { func (x *Expression_Subquery_SetComparison) Reset() { *x = Expression_Subquery_SetComparison{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_algebra_proto_msgTypes[116] + mi := &file_substrait_algebra_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10320,7 +10580,7 @@ func (x *Expression_Subquery_SetComparison) String() string { func (*Expression_Subquery_SetComparison) ProtoMessage() {} func (x *Expression_Subquery_SetComparison) ProtoReflect() protoreflect.Message { - mi := &file_substrait_algebra_proto_msgTypes[116] + mi := &file_substrait_algebra_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10427,7 +10687,7 @@ var file_substrait_algebra_proto_rawDesc = []byte{ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x6d, - 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xbf, 0x0e, 0x0a, 0x07, 0x52, 0x65, 0x61, 0x64, + 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc6, 0x11, 0x0a, 0x07, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, @@ -10486,7 +10746,7 @@ var file_substrait_algebra_proto_rawDesc = []byte{ 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x1a, 0x89, 0x07, 0x0a, 0x0a, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x1a, 0x90, 0x0a, 0x0a, 0x0a, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, @@ -10496,7 +10756,7 @@ var file_substrait_algebra_proto_rawDesc = []byte{ 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xe1, 0x05, 0x0a, 0x0b, 0x46, 0x69, 0x6c, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xe8, 0x08, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x75, 0x72, 0x69, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x61, 0x74, @@ -10535,1507 +10795,1573 @@ var file_substrait_algebra_proto_rawDesc = []byte{ 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x77, 0x72, 0x66, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x04, 0x64, - 0x77, 0x72, 0x66, 0x1a, 0x14, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x52, 0x65, - 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x12, 0x0a, 0x10, 0x41, 0x72, 0x72, - 0x6f, 0x77, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x10, 0x0a, - 0x0e, 0x4f, 0x72, 0x63, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, - 0x11, 0x0a, 0x0f, 0x44, 0x77, 0x72, 0x66, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4a, 0x04, - 0x08, 0x05, 0x10, 0x06, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x0b, 0x0a, 0x09, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x0a, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x77, 0x72, 0x66, 0x12, 0x61, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x4b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, + 0x65, 0x78, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x14, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x12, 0x0a, 0x10, + 0x41, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0x10, 0x0a, 0x0e, 0x4f, 0x72, 0x63, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x11, 0x0a, 0x0f, 0x44, 0x77, 0x72, 0x66, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xa1, 0x02, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x65, 0x72, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, + 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x2f, + 0x0a, 0x14, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x74, + 0x6f, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x54, 0x6f, 0x53, 0x6b, 0x69, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x74, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x52, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xf1, 0x01, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x12, + 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x12, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x05, 0x0a, 0x07, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, + 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, + 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x3f, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, + 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x02, 0x0a, 0x08, 0x4a, 0x6f, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, + 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, 0x17, 0x0a, + 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, + 0x41, 0x4e, 0x54, 0x49, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, + 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, + 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, + 0x4e, 0x54, 0x49, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, + 0x0a, 0x22, 0xda, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x6c, 0x12, 0x2c, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, + 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, + 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, + 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe4, + 0x01, 0x0a, 0x08, 0x46, 0x65, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, + 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xff, 0x03, 0x0a, 0x0c, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x08, 0x6d, + 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x54, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x14, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x70, 0x0a, 0x07, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, + 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x82, 0x08, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0b, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x64, 0x0a, 0x10, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x2e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbb, 0x04, - 0x0a, 0x07, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, - 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, + 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0xb6, 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, - 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, - 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, - 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x12, 0x0a, - 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, - 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, - 0x4e, 0x54, 0x49, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x07, 0x22, 0xda, 0x01, 0x0a, 0x08, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x1a, 0xd7, 0x04, 0x0a, 0x11, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x68, 0x61, + 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0a, + 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, 0x0a, + 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0a, + 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0a, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe1, 0x01, 0x0a, + 0x07, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe4, 0x01, 0x0a, 0x08, 0x46, 0x65, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, - 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x05, + 0x73, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xec, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x12, 0x2c, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xff, 0x03, 0x0a, 0x0c, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, - 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, - 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, - 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, - 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x54, 0x0a, 0x08, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, - 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, - 0x70, 0x0a, 0x07, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, - 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x22, 0x82, 0x08, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, - 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, - 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, - 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x39, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x52, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x15, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xd7, 0x04, 0x0a, - 0x11, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, - 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x6f, - 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0a, 0x6c, 0x6f, 0x77, - 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, - 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x07, 0x53, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, - 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, - 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, + 0xaa, 0x03, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x12, 0x27, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x12, 0x53, + 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x4d, 0x49, + 0x4e, 0x55, 0x53, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x19, 0x0a, + 0x15, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x5f, 0x4d, 0x55, + 0x4c, 0x54, 0x49, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x45, 0x54, 0x5f, + 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x45, 0x54, + 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x53, + 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x54, + 0x49, 0x4e, 0x43, 0x54, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, + 0x5f, 0x55, 0x4e, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x06, 0x22, 0x96, 0x01, 0x0a, + 0x12, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6e, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, + 0x9a, 0x09, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x12, + 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x07, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x52, 0x0a, + 0x11, 0x73, 0x63, 0x61, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, + 0x2e, 0x53, 0x63, 0x61, 0x74, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x48, 0x00, + 0x52, 0x0f, 0x73, 0x63, 0x61, 0x74, 0x74, 0x65, 0x72, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, + 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x6f, 0x62, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, + 0x69, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, + 0x12, 0x40, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xec, 0x01, 0x0a, 0x09, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x4d, 0x0a, 0x0d, 0x53, 0x63, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x4f, 0x0a, 0x16, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x80, 0x01, 0x0a, 0x15, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x0b, 0x0a, + 0x09, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x1a, 0x22, 0x0a, 0x0a, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x1a, 0x8a, + 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x94, 0x03, 0x0a, + 0x09, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x38, + 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0xaf, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x42, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x47, 0x0a, 0x0e, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x0a, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x24, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xf8, 0x08, 0x0a, 0x03, 0x52, + 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x61, + 0x64, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x05, + 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6c, + 0x48, 0x00, 0x52, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x04, + 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, + 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x48, 0x00, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, + 0x12, 0x4a, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0f, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x44, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x2b, 0x0a, 0x05, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x6c, 0x48, + 0x00, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x25, + 0x0a, 0x03, 0x64, 0x64, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x48, 0x00, + 0x52, 0x03, 0x64, 0x64, 0x6c, 0x12, 0x35, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6a, 0x6f, + 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, + 0x48, 0x00, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x0a, + 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, + 0x67, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x48, 0x0a, 0x10, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, + 0x52, 0x0e, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x69, 0x6e, + 0x12, 0x41, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, + 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xd2, 0x05, 0x0a, 0x06, 0x44, 0x64, + 0x6c, 0x52, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x64, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0f, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x39, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0b, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4b, 0x0a, 0x0e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x44, 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x2e, 0x44, 0x64, 0x6c, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x02, + 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x2e, 0x44, 0x64, 0x6c, 0x4f, + 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x37, 0x0a, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x0e, + 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x09, + 0x44, 0x64, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x44, 0x4c, + 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, + 0x44, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x02, + 0x22, 0x8d, 0x01, 0x0a, 0x05, 0x44, 0x64, 0x6c, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x44, + 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, + 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x41, 0x4c, + 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, + 0x44, 0x52, 0x4f, 0x50, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x49, 0x46, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x05, + 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf2, + 0x04, 0x0a, 0x08, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x0b, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2b, 0x0a, + 0x02, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x09, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x07, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, + 0x70, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, + 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x43, 0x54, 0x41, 0x53, 0x10, 0x04, 0x22, 0x66, 0x0a, + 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4f, + 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x55, 0x54, 0x50, + 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, + 0x54, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x4f, + 0x52, 0x44, 0x53, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xbb, 0x04, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, + 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x65, 0x66, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6c, + 0x65, 0x66, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x4b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, + 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x1a, 0xa9, 0x01, 0x0a, + 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x4b, 0x0a, 0x06, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x2e, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x19, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x53, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x49, 0x4d, + 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x51, 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x53, 0x49, 0x4d, 0x50, + 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x49, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, + 0x43, 0x54, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x49, 0x4d, + 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, + 0x03, 0x22, 0xad, 0x06, 0x0a, 0x0b, 0x48, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, + 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, + 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x47, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, + 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x70, + 0x6f, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x6f, + 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, + 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x03, 0x0a, 0x06, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, - 0x65, 0x6c, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x02, 0x6f, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x52, - 0x02, 0x6f, 0x70, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x02, 0x0a, 0x08, 0x4a, 0x6f, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, + 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, 0x18, 0x0a, + 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, + 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x07, + 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, + 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, + 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x49, 0x4e, + 0x47, 0x4c, 0x45, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, + 0x0a, 0x22, 0xaf, 0x06, 0x0a, 0x0c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, + 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, + 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, + 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x10, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, + 0x6f, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4a, 0x6f, 0x69, + 0x6e, 0x52, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x05, - 0x53, 0x65, 0x74, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, - 0x14, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x5f, 0x50, 0x52, - 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x54, 0x5f, 0x4f, - 0x50, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x53, 0x45, 0x54, - 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, - 0x59, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, - 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, - 0x53, 0x45, 0x54, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, - 0x55, 0x4e, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54, 0x10, 0x05, - 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x06, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, - 0x6e, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x66, - 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, - 0x97, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x52, 0x65, 0x6c, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, - 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x9a, 0x09, 0x0a, 0x0b, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x02, 0x0a, 0x08, + 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, + 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, + 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, + 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, + 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, + 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, + 0x45, 0x10, 0x0a, 0x22, 0xed, 0x04, 0x0a, 0x11, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, + 0x6f, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x73, 0x63, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x53, 0x63, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x63, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x6f, - 0x62, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x0a, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x09, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x12, - 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x4d, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x74, 0x74, 0x65, 0x72, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x1a, 0x4f, 0x0a, 0x16, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x80, 0x01, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, - 0x54, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x0b, 0x0a, 0x09, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x1a, 0x22, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, - 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x1a, 0x8a, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, - 0x72, 0x69, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x94, 0x03, 0x0a, 0x09, 0x45, 0x78, 0x70, 0x61, 0x6e, - 0x64, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, - 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x2e, 0x45, - 0x78, 0x70, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x1a, 0xaf, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, - 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x48, 0x00, 0x52, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x42, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x1a, 0x47, 0x0a, 0x0e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x22, 0x45, 0x0a, - 0x07, 0x52, 0x65, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0xf8, 0x08, 0x0a, 0x03, 0x52, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x04, - 0x72, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6c, 0x48, 0x00, - 0x52, 0x04, 0x72, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x66, 0x65, - 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x48, - 0x00, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x04, - 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x48, 0x00, - 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, - 0x12, 0x31, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x10, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, - 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, - 0x44, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x61, - 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, - 0x66, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x2b, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x63, 0x72, 0x6f, - 0x73, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, - 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x48, - 0x00, 0x52, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x03, 0x64, 0x64, 0x6c, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x44, 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x64, 0x64, 0x6c, 0x12, - 0x35, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x48, - 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x68, 0x61, - 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, - 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4a, 0x6f, 0x69, 0x6e, - 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x4a, 0x6f, 0x69, 0x6e, - 0x12, 0x48, 0x0a, 0x10, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, - 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, - 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0e, 0x6e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x06, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x34, 0x0a, - 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x65, 0x78, 0x70, - 0x61, 0x6e, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x3f, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x22, 0xd2, 0x05, 0x0a, 0x06, 0x44, 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x12, 0x40, - 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x47, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4b, 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x64, - 0x6c, 0x52, 0x65, 0x6c, 0x2e, 0x44, 0x64, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, - 0x64, 0x6c, 0x52, 0x65, 0x6c, 0x2e, 0x44, 0x64, 0x6c, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, - 0x37, 0x0a, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x09, 0x44, 0x64, 0x6c, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x14, 0x0a, 0x10, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x41, - 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x42, 0x4a, - 0x45, 0x43, 0x54, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x02, 0x22, 0x8d, 0x01, 0x0a, 0x05, 0x44, - 0x64, 0x6c, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, - 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, - 0x1c, 0x0a, 0x18, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x5f, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, - 0x0c, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x41, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, - 0x0f, 0x0a, 0x0b, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x04, - 0x12, 0x18, 0x0a, 0x14, 0x44, 0x44, 0x4c, 0x5f, 0x4f, 0x50, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, - 0x49, 0x46, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x05, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf2, 0x04, 0x0a, 0x08, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x64, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0c, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, - 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2b, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, - 0x52, 0x02, 0x6f, 0x70, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x2e, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, - 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0x75, 0x0a, 0x07, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x12, 0x18, 0x0a, 0x14, 0x57, - 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, - 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, - 0x13, 0x0a, 0x0f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x50, - 0x5f, 0x43, 0x54, 0x41, 0x53, 0x10, 0x04, 0x22, 0x66, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x20, 0x0a, - 0x1c, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x44, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x53, 0x10, 0x02, 0x42, - 0x0c, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbb, 0x04, - 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, - 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x3a, 0x0a, - 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, - 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x1a, 0xa9, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x61, - 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, - 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x17, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x53, - 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x69, + 0x6e, 0x52, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x02, 0x0a, 0x08, + 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x51, - 0x10, 0x01, 0x12, 0x2f, 0x0a, 0x2b, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4d, - 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54, 0x5f, 0x46, 0x52, 0x4f, - 0x4d, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, - 0x47, 0x48, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x03, 0x22, 0xf6, 0x05, 0x0a, 0x0b, - 0x48, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, - 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x52, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6a, 0x6f, - 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x48, 0x61, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, - 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, - 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, - 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, - 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, - 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, - 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, - 0x54, 0x49, 0x10, 0x08, 0x22, 0xf8, 0x05, 0x0a, 0x0c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4a, 0x6f, - 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, - 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, - 0x09, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, + 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, + 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, + 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, + 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, + 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, + 0x45, 0x10, 0x0a, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x25, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x44, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xe8, 0x59, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x12, 0x44, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x09, 0x72, 0x69, 0x67, 0x68, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x30, 0x0a, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, - 0x6f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, - 0x3f, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x69, 0x66, 0x5f, 0x74, + 0x68, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, - 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xde, - 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, - 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, - 0x46, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, - 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, - 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, - 0x4e, 0x54, 0x49, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x08, 0x22, - 0xb6, 0x04, 0x0a, 0x11, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, - 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, - 0x6c, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x6c, - 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x56, 0x0a, 0x12, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, - 0x45, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x4f, 0x49, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, - 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, - 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x4a, - 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, - 0x45, 0x4d, 0x49, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x07, 0x12, 0x18, - 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x08, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, - 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x65, - 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x61, 0x72, 0x67, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x44, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xcb, 0x56, 0x0a, 0x0a, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, - 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0f, 0x73, - 0x63, 0x61, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x61, 0x6c, - 0x61, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, - 0x61, 0x6c, 0x61, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0f, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, - 0x07, 0x69, 0x66, 0x5f, 0x74, 0x68, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x66, 0x54, 0x68, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x06, - 0x69, 0x66, 0x54, 0x68, 0x65, 0x6e, 0x12, 0x55, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, - 0x10, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, - 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x47, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x61, 0x73, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x75, - 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, + 0x2e, 0x49, 0x66, 0x54, 0x68, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x69, 0x66, 0x54, 0x68, 0x65, + 0x6e, 0x12, 0x55, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x08, - 0x73, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x12, 0x34, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x10, 0x73, 0x69, 0x6e, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x61, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x04, 0x63, 0x61, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, + 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x75, 0x62, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x04, 0x65, + 0x6e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, + 0x6d, 0x1a, 0x8a, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x09, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x1a, 0x0b, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x02, 0x18, 0x01, 0x3a, 0x02, 0x18, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xa3, + 0x16, 0x0a, 0x07, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, + 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, + 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x38, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x02, 0x69, 0x38, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x31, 0x36, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x69, 0x31, 0x36, 0x12, 0x12, 0x0a, 0x03, + 0x69, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x69, 0x33, 0x32, + 0x12, 0x12, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x03, 0x69, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x66, 0x70, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x00, 0x52, 0x04, 0x66, 0x70, 0x33, 0x32, 0x12, 0x14, 0x0a, 0x04, 0x66, 0x70, + 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x04, 0x66, 0x70, 0x36, 0x34, + 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x06, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x5f, 0x79, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x68, + 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x74, + 0x6f, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x1a, 0x8a, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, - 0x44, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x1a, 0x0b, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x02, - 0x18, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x6b, - 0x69, 0x6e, 0x64, 0x1a, 0x86, 0x13, 0x0a, 0x07, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, - 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, - 0x38, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x02, 0x69, 0x38, 0x12, 0x12, 0x0a, - 0x03, 0x69, 0x31, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x69, 0x31, - 0x36, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x66, 0x70, 0x33, - 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x04, 0x66, 0x70, 0x33, 0x32, 0x12, - 0x14, 0x0a, 0x04, 0x66, 0x70, 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, - 0x04, 0x66, 0x70, 0x36, 0x34, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x18, 0x0a, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, - 0x00, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, - 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x16, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, + 0x54, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x24, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, + 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, + 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, + 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x23, 0x0a, 0x0c, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, + 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x63, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x68, 0x0a, 0x16, 0x70, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x5f, 0x74, 0x7a, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x48, 0x00, 0x52, 0x13, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, 0x4d, 0x6f, - 0x6e, 0x74, 0x68, 0x12, 0x68, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, - 0x64, 0x61, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x14, 0x70, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x54, 0x7a, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, - 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x1f, 0x0a, - 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x42, - 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, - 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x43, 0x68, - 0x61, 0x72, 0x12, 0x23, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, - 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x48, - 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x63, 0x0a, 0x13, 0x70, 0x72, - 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, + 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x27, 0x0a, 0x0c, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, + 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x54, 0x7a, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x6e, 0x75, 0x6c, + 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, + 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x32, 0x0a, 0x09, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x4d, 0x61, 0x70, 0x12, 0x4e, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x33, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x07, 0x56, + 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x53, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x68, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x50, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, - 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x6d, 0x61, 0x70, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, - 0x12, 0x27, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x25, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x1a, 0xc2, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0a, 0x6b, + 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x4d, + 0x61, 0x70, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x70, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x43, 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x79, 0x65, 0x61, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x1a, 0xbf, 0x01, + 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1e, 0x0a, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x75, 0x62, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x10, 0x0a, + 0x0e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x1a, + 0xe2, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x66, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x5f, 0x79, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x48, - 0x00, 0x52, 0x08, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x61, 0x70, 0x12, 0x4e, 0x0a, 0x0c, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, - 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x1a, 0x37, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x53, 0x0a, 0x07, 0x44, 0x65, - 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x1a, - 0x48, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc2, 0x01, 0x0a, 0x03, 0x4d, 0x61, - 0x70, 0x12, 0x49, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x70, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x70, 0x0a, 0x08, - 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x43, - 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, - 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x73, 0x1a, 0x67, 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, - 0x61, 0x79, 0x54, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, 0x3f, 0x0a, 0x06, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x3d, 0x0a, - 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0xed, 0x01, 0x0a, - 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xbf, 0x04, 0x0a, - 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, - 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x72, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x54, 0x6f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x66, 0x0a, 0x16, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x52, + 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x54, 0x6f, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x1a, 0x3f, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, + 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x04, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x1a, 0xed, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, + 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x05, 0x0a, + 0x03, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x1a, 0xbf, 0x04, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x1a, 0xb1, 0x01, 0x0a, 0x03, - 0x4d, 0x61, 0x70, 0x12, 0x48, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x4d, 0x61, 0x70, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x60, 0x0a, - 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, - 0x37, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x03, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x61, 0x70, 0x1a, 0xb1, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x48, 0x0a, 0x0a, 0x6b, + 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x4d, 0x61, + 0x70, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x27, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x35, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x2d, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, - 0x0d, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x90, - 0x02, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, - 0x73, 0x1a, 0x91, 0x0a, 0x0a, 0x0e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, - 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, - 0x6f, 0x72, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, - 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x1a, 0x35, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x90, 0x02, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x61, + 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x72, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x91, 0x0a, 0x0a, 0x0e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, + 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, + 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, + 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x35, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x50, 0x0a, 0x0b, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, - 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, - 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x61, - 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0xd0, 0x03, 0x0a, 0x05, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, - 0x09, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x54, 0x0a, 0x09, 0x66, 0x6f, - 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, + 0x67, 0x73, 0x1a, 0xd0, 0x03, 0x0a, 0x05, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x09, + 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x65, 0x63, + 0x65, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x54, 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x2e, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x09, 0x66, + 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x12, 0x58, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, - 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x12, 0x58, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x52, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x77, 0x12, 0x54, 0x0a, 0x09, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, - 0x64, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x0a, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x12, 0x54, 0x0a, 0x09, 0x75, 0x6e, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x64, 0x2e, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x75, + 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x63, + 0x65, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0x23, 0x0a, + 0x09, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x1a, 0x0c, 0x0a, 0x0a, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, + 0x1a, 0x0b, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x06, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x56, 0x0a, 0x0a, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x53, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x4f, 0x57, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x53, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x1a, 0xca, 0x01, + 0x0a, 0x06, 0x49, 0x66, 0x54, 0x68, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x03, 0x69, 0x66, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x66, 0x54, + 0x68, 0x65, 0x6e, 0x2e, 0x49, 0x66, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x52, 0x03, 0x69, 0x66, + 0x73, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x6c, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x6c, 0x73, 0x65, 0x1a, 0x5c, 0x0a, 0x08, + 0x49, 0x66, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x66, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x66, 0x12, + 0x29, 0x0a, 0x04, 0x74, 0x68, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x1a, 0x23, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0x23, 0x0a, 0x09, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, - 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0x0c, 0x0a, 0x0a, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x1a, 0x0b, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x56, 0x0a, - 0x0a, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x42, - 0x4f, 0x55, 0x4e, 0x44, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4f, 0x55, 0x4e, - 0x44, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x57, 0x53, 0x10, 0x01, 0x12, 0x15, - 0x0a, 0x11, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, - 0x4e, 0x47, 0x45, 0x10, 0x02, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x49, 0x66, 0x54, 0x68, 0x65, 0x6e, - 0x12, 0x37, 0x0a, 0x03, 0x69, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x68, 0x65, 0x6e, 0x1a, 0xac, 0x02, 0x0a, 0x04, 0x43, + 0x61, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x46, 0x61, 0x69, 0x6c, + 0x75, 0x72, 0x65, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x0f, 0x66, 0x61, 0x69, + 0x6c, 0x75, 0x72, 0x65, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0x7b, 0x0a, 0x0f, + 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, + 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, + 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x45, 0x48, + 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, + 0x4c, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, + 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x57, 0x5f, 0x45, 0x58, + 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x1a, 0x91, 0x02, 0x0a, 0x10, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, + 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x66, 0x54, 0x68, 0x65, 0x6e, 0x2e, 0x49, 0x66, 0x43, 0x6c, - 0x61, 0x75, 0x73, 0x65, 0x52, 0x03, 0x69, 0x66, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x6c, 0x73, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, - 0x65, 0x6c, 0x73, 0x65, 0x1a, 0x5c, 0x0a, 0x08, 0x49, 0x66, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, - 0x12, 0x25, 0x0a, 0x02, 0x69, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x66, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x68, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x68, - 0x65, 0x6e, 0x1a, 0xac, 0x02, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x55, 0x0a, - 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x52, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x22, 0x7b, 0x0a, 0x0f, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x49, 0x4c, 0x55, - 0x52, 0x45, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x41, 0x49, - 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x52, 0x45, - 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x46, - 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, - 0x54, 0x48, 0x52, 0x4f, 0x57, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x02, 0x1a, 0x91, 0x02, 0x0a, 0x10, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x03, 0x69, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x03, 0x69, 0x66, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x6c, 0x73, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x6c, 0x73, 0x65, - 0x1a, 0x63, 0x0a, 0x07, 0x49, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, 0x02, 0x69, - 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, - 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x02, 0x69, 0x66, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x68, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x04, 0x74, 0x68, 0x65, 0x6e, 0x1a, 0x6e, 0x0a, 0x0e, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, - 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb7, 0x01, 0x0a, 0x0b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x03, 0x69, + 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x49, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x69, 0x66, 0x73, 0x12, 0x29, 0x0a, + 0x04, 0x65, 0x6c, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x6c, 0x73, 0x65, 0x1a, 0x63, 0x0a, 0x07, 0x49, 0x66, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, 0x02, 0x69, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x02, + 0x69, 0x66, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x68, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, - 0x93, 0x04, 0x0a, 0x10, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x16, 0x70, - 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x75, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x68, 0x65, 0x6e, 0x1a, 0x6e, 0x0a, + 0x0e, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb7, 0x01, + 0x0a, 0x0b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x6b, 0x6c, 0x65, - 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, + 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x93, 0x04, 0x0a, 0x10, 0x45, 0x6d, 0x62, 0x65, + 0x64, 0x64, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x09, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x16, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x69, + 0x63, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x70, 0x0a, 0x15, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, - 0x62, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x77, - 0x65, 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x56, 0x0a, 0x14, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x6b, - 0x6c, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, - 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x1a, 0x51, 0x0a, 0x13, 0x57, 0x65, - 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xe8, 0x04, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x6d, 0x61, - 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, + 0x48, 0x00, 0x52, 0x14, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x6b, 0x6c, 0x65, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x15, 0x77, 0x65, 0x62, 0x5f, + 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, + 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x57, 0x65, 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x77, 0x65, 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, + 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x56, 0x0a, 0x14, 0x50, 0x79, + 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, + 0x74, 0x65, 0x1a, 0x51, 0x0a, 0x13, 0x57, 0x65, 0x62, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, + 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x73, 0x69, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xe8, 0x04, + 0x0a, 0x10, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x70, 0x4b, + 0x65, 0x79, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x57, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x57, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, - 0x70, 0x4b, 0x65, 0x79, 0x12, 0x57, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, - 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x57, 0x0a, - 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x7e, 0x0a, 0x06, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, - 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, + 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x7e, + 0x0a, 0x06, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, + 0x12, 0x3c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x61, + 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x1a, 0x63, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x61, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, + 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xa2, 0x0b, 0x0a, 0x0e, 0x4d, 0x61, 0x73, + 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x06, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x06, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x1a, 0xe8, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, + 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, + 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x42, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x61, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x62, 0x0a, 0x0c, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x65, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, + 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0xe6, 0x03, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x5c, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, + 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0xb6, 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x60, 0x0a, 0x04, 0x69, 0x74, 0x65, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, + 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x60, 0x0a, 0x05, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x63, 0x0a, 0x0b, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x3c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x42, 0x10, - 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x1a, 0xa2, 0x0b, 0x0a, 0x0e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x38, - 0x0a, 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x75, - 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, - 0x61, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0xe8, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x12, 0x45, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, - 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x1a, 0x62, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x65, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x05, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, + 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x1a, 0x23, 0x0a, + 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x1a, 0x33, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, + 0xeb, 0x02, 0x0a, 0x09, 0x4d, 0x61, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x49, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0xe6, - 0x03, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x5c, 0x0a, - 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x3e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, + 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x61, 0x70, 0x4b, 0x65, + 0x79, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x61, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x61, 0x70, + 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0xb6, - 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x60, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x4a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x21, + 0x0a, 0x06, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, + 0x79, 0x1a, 0x40, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x1a, 0x8d, 0x04, + 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x53, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, - 0x74, 0x65, 0x6d, 0x12, 0x60, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x6c, 0x69, 0x63, 0x65, 0x1a, 0x23, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x33, 0x0a, 0x09, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x42, - 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xeb, 0x02, 0x0a, 0x09, 0x4d, 0x61, 0x70, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x49, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x2e, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x61, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x73, 0x6b, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, - 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x21, 0x0a, 0x06, 0x4d, 0x61, 0x70, 0x4b, 0x65, 0x79, - 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x1a, 0x40, 0x0a, 0x10, 0x4d, 0x61, 0x70, - 0x4b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x4b, 0x65, - 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x1a, 0x8d, 0x04, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x51, 0x0a, - 0x10, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, - 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x0f, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x37, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, - 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x0f, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x2d, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, - 0x70, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, - 0x65, 0x70, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x95, 0x0a, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x61, - 0x6c, 0x61, 0x72, 0x12, 0x4f, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x0d, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x1a, - 0x2e, 0x0a, 0x06, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, - 0x6a, 0x0a, 0x0b, 0x49, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2f, - 0x0a, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x6c, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x08, 0x68, 0x61, 0x79, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, - 0x6c, 0x52, 0x08, 0x68, 0x61, 0x79, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x1a, 0xf1, 0x01, 0x0a, 0x0c, - 0x53, 0x65, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0c, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, - 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x52, 0x0b, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, - 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x12, - 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, - 0x13, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x58, - 0x49, 0x53, 0x54, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, - 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x10, 0x02, 0x1a, - 0xaa, 0x04, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, - 0x6e, 0x12, 0x5b, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, - 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, - 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x70, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x5e, - 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, - 0x73, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, - 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x29, - 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, - 0xb1, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, - 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, - 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x5b, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x01, 0x52, + 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5e, + 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x4f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x01, 0x52, 0x0e, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x0f, + 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, + 0x2d, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x65, 0x70, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x10, + 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x95, 0x0a, + 0x0a, 0x08, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x63, + 0x61, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, + 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x12, 0x4f, 0x0a, 0x0c, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x49, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0b, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x0d, + 0x73, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x55, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x1a, 0x2e, 0x0a, 0x06, 0x53, 0x63, 0x61, 0x6c, 0x61, + 0x72, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x6a, 0x0a, 0x0b, 0x49, 0x6e, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6e, 0x65, 0x65, 0x64, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x6e, 0x65, 0x65, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x08, 0x68, 0x61, 0x79, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x52, 0x08, 0x68, 0x61, 0x79, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x1a, 0xf1, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x4f, 0x70, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4f, 0x70, + 0x12, 0x26, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x52, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x45, 0x44, 0x49, + 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x41, + 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x01, 0x12, 0x17, + 0x0a, 0x13, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x5f, 0x55, + 0x4e, 0x49, 0x51, 0x55, 0x45, 0x10, 0x02, 0x1a, 0xaa, 0x04, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0c, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x38, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x52, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, + 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, + 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6c, 0x65, 0x66, + 0x74, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, + 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, + 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x45, 0x51, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x4e, + 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, + 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, + 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x47, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, - 0x5f, 0x45, 0x51, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, - 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x43, - 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x4c, 0x54, 0x10, - 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, - 0x4f, 0x50, 0x5f, 0x47, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, - 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x14, 0x0a, - 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x47, - 0x45, 0x10, 0x06, 0x22, 0x57, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x44, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x44, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, - 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x44, 0x55, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, - 0x73, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x72, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x6f, - 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x78, - 0x70, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x53, 0x6f, 0x72, 0x74, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, - 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xdd, 0x01, 0x0a, - 0x0d, 0x53, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x1a, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, - 0x0a, 0x1e, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, - 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x4c, - 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, - 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, - 0x4c, 0x53, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x4f, - 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x53, - 0x43, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1c, - 0x0a, 0x18, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x42, 0x0b, 0x0a, 0x09, - 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xcd, 0x04, 0x0a, 0x11, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, - 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, - 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x31, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, - 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, - 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x52, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, - 0x67, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x15, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, + 0x5f, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, + 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x47, 0x45, 0x10, 0x06, 0x22, 0x57, 0x0a, 0x0b, 0x52, + 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, + 0x44, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x44, 0x55, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x52, 0x45, 0x44, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x5f, 0x41, + 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x29, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, + 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, + 0x73, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x0d, 0x53, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, + 0x4c, 0x53, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, + 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x53, 0x43, + 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x23, 0x0a, + 0x1f, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x44, 0x45, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, + 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, + 0x4c, 0x41, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x44, + 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, + 0x45, 0x44, 0x10, 0x05, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6b, 0x69, 0x6e, + 0x64, 0x22, 0xcd, 0x04, 0x0a, 0x11, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x73, + 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x05, 0x73, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x61, + 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x15, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, - 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54, 0x10, 0x02, 0x22, 0x37, 0x0a, 0x0c, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, - 0x74, 0x72, 0x65, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x74, 0x72, 0x65, 0x65, 0x4f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x6c, 0x2a, 0xef, 0x01, 0x0a, 0x10, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x47, 0x47, 0x52, 0x45, - 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x47, - 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, - 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, - 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x47, 0x47, - 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, - 0x23, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, - 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, - 0x53, 0x55, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, - 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x55, - 0x4c, 0x54, 0x10, 0x04, 0x42, 0x57, 0x0a, 0x12, 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, - 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, + 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54, 0x10, + 0x02, 0x22, 0x37, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x74, + 0x72, 0x65, 0x65, 0x4f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x2a, 0xef, 0x01, 0x0a, 0x10, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, + 0x21, 0x0a, 0x1d, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x48, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, + 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, + 0x01, 0x12, 0x32, 0x0a, 0x2e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, + 0x41, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, + 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, + 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x2c, + 0x0a, 0x28, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x48, + 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, + 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x04, 0x42, 0x57, 0x0a, 0x12, + 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12051,162 +12377,164 @@ func file_substrait_algebra_proto_rawDescGZIP() []byte { } var file_substrait_algebra_proto_enumTypes = make([]protoimpl.EnumInfo, 18) -var file_substrait_algebra_proto_msgTypes = make([]protoimpl.MessageInfo, 117) +var file_substrait_algebra_proto_msgTypes = make([]protoimpl.MessageInfo, 119) var file_substrait_algebra_proto_goTypes = []interface{}{ - (AggregationPhase)(0), // 0: substrait.AggregationPhase - (JoinRel_JoinType)(0), // 1: substrait.JoinRel.JoinType - (SetRel_SetOp)(0), // 2: substrait.SetRel.SetOp - (DdlRel_DdlObject)(0), // 3: substrait.DdlRel.DdlObject - (DdlRel_DdlOp)(0), // 4: substrait.DdlRel.DdlOp - (WriteRel_WriteOp)(0), // 5: substrait.WriteRel.WriteOp - (WriteRel_OutputMode)(0), // 6: substrait.WriteRel.OutputMode - (ComparisonJoinKey_SimpleComparisonType)(0), // 7: substrait.ComparisonJoinKey.SimpleComparisonType - (HashJoinRel_JoinType)(0), // 8: substrait.HashJoinRel.JoinType - (MergeJoinRel_JoinType)(0), // 9: substrait.MergeJoinRel.JoinType - (NestedLoopJoinRel_JoinType)(0), // 10: substrait.NestedLoopJoinRel.JoinType - (Expression_WindowFunction_BoundsType)(0), // 11: substrait.Expression.WindowFunction.BoundsType - (Expression_Cast_FailureBehavior)(0), // 12: substrait.Expression.Cast.FailureBehavior - (Expression_Subquery_SetPredicate_PredicateOp)(0), // 13: substrait.Expression.Subquery.SetPredicate.PredicateOp - (Expression_Subquery_SetComparison_ComparisonOp)(0), // 14: substrait.Expression.Subquery.SetComparison.ComparisonOp - (Expression_Subquery_SetComparison_ReductionOp)(0), // 15: substrait.Expression.Subquery.SetComparison.ReductionOp - (SortField_SortDirection)(0), // 16: substrait.SortField.SortDirection - (AggregateFunction_AggregationInvocation)(0), // 17: substrait.AggregateFunction.AggregationInvocation - (*RelCommon)(nil), // 18: substrait.RelCommon - (*ReadRel)(nil), // 19: substrait.ReadRel - (*ProjectRel)(nil), // 20: substrait.ProjectRel - (*JoinRel)(nil), // 21: substrait.JoinRel - (*CrossRel)(nil), // 22: substrait.CrossRel - (*FetchRel)(nil), // 23: substrait.FetchRel - (*AggregateRel)(nil), // 24: substrait.AggregateRel - (*ConsistentPartitionWindowRel)(nil), // 25: substrait.ConsistentPartitionWindowRel - (*SortRel)(nil), // 26: substrait.SortRel - (*FilterRel)(nil), // 27: substrait.FilterRel - (*SetRel)(nil), // 28: substrait.SetRel - (*ExtensionSingleRel)(nil), // 29: substrait.ExtensionSingleRel - (*ExtensionLeafRel)(nil), // 30: substrait.ExtensionLeafRel - (*ExtensionMultiRel)(nil), // 31: substrait.ExtensionMultiRel - (*ExchangeRel)(nil), // 32: substrait.ExchangeRel - (*ExpandRel)(nil), // 33: substrait.ExpandRel - (*RelRoot)(nil), // 34: substrait.RelRoot - (*Rel)(nil), // 35: substrait.Rel - (*NamedObjectWrite)(nil), // 36: substrait.NamedObjectWrite - (*ExtensionObject)(nil), // 37: substrait.ExtensionObject - (*DdlRel)(nil), // 38: substrait.DdlRel - (*WriteRel)(nil), // 39: substrait.WriteRel - (*ComparisonJoinKey)(nil), // 40: substrait.ComparisonJoinKey - (*HashJoinRel)(nil), // 41: substrait.HashJoinRel - (*MergeJoinRel)(nil), // 42: substrait.MergeJoinRel - (*NestedLoopJoinRel)(nil), // 43: substrait.NestedLoopJoinRel - (*FunctionArgument)(nil), // 44: substrait.FunctionArgument - (*FunctionOption)(nil), // 45: substrait.FunctionOption - (*Expression)(nil), // 46: substrait.Expression - (*SortField)(nil), // 47: substrait.SortField - (*AggregateFunction)(nil), // 48: substrait.AggregateFunction - (*ReferenceRel)(nil), // 49: substrait.ReferenceRel - (*RelCommon_Direct)(nil), // 50: substrait.RelCommon.Direct - (*RelCommon_Emit)(nil), // 51: substrait.RelCommon.Emit - (*RelCommon_Hint)(nil), // 52: substrait.RelCommon.Hint - (*RelCommon_Hint_Stats)(nil), // 53: substrait.RelCommon.Hint.Stats - (*RelCommon_Hint_RuntimeConstraint)(nil), // 54: substrait.RelCommon.Hint.RuntimeConstraint - (*ReadRel_NamedTable)(nil), // 55: substrait.ReadRel.NamedTable - (*ReadRel_VirtualTable)(nil), // 56: substrait.ReadRel.VirtualTable - (*ReadRel_ExtensionTable)(nil), // 57: substrait.ReadRel.ExtensionTable - (*ReadRel_LocalFiles)(nil), // 58: substrait.ReadRel.LocalFiles - (*ReadRel_LocalFiles_FileOrFiles)(nil), // 59: substrait.ReadRel.LocalFiles.FileOrFiles - (*ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions)(nil), // 60: substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions - (*ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions)(nil), // 61: substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions - (*ReadRel_LocalFiles_FileOrFiles_OrcReadOptions)(nil), // 62: substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions - (*ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions)(nil), // 63: substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions - (*AggregateRel_Grouping)(nil), // 64: substrait.AggregateRel.Grouping - (*AggregateRel_Measure)(nil), // 65: substrait.AggregateRel.Measure - (*ConsistentPartitionWindowRel_WindowRelFunction)(nil), // 66: substrait.ConsistentPartitionWindowRel.WindowRelFunction - (*ExchangeRel_ScatterFields)(nil), // 67: substrait.ExchangeRel.ScatterFields - (*ExchangeRel_SingleBucketExpression)(nil), // 68: substrait.ExchangeRel.SingleBucketExpression - (*ExchangeRel_MultiBucketExpression)(nil), // 69: substrait.ExchangeRel.MultiBucketExpression - (*ExchangeRel_Broadcast)(nil), // 70: substrait.ExchangeRel.Broadcast - (*ExchangeRel_RoundRobin)(nil), // 71: substrait.ExchangeRel.RoundRobin - (*ExchangeRel_ExchangeTarget)(nil), // 72: substrait.ExchangeRel.ExchangeTarget - (*ExpandRel_ExpandField)(nil), // 73: substrait.ExpandRel.ExpandField - (*ExpandRel_SwitchingField)(nil), // 74: substrait.ExpandRel.SwitchingField - (*ComparisonJoinKey_ComparisonType)(nil), // 75: substrait.ComparisonJoinKey.ComparisonType - (*Expression_Enum)(nil), // 76: substrait.Expression.Enum - (*Expression_Literal)(nil), // 77: substrait.Expression.Literal - (*Expression_Nested)(nil), // 78: substrait.Expression.Nested - (*Expression_ScalarFunction)(nil), // 79: substrait.Expression.ScalarFunction - (*Expression_WindowFunction)(nil), // 80: substrait.Expression.WindowFunction - (*Expression_IfThen)(nil), // 81: substrait.Expression.IfThen - (*Expression_Cast)(nil), // 82: substrait.Expression.Cast - (*Expression_SwitchExpression)(nil), // 83: substrait.Expression.SwitchExpression - (*Expression_SingularOrList)(nil), // 84: substrait.Expression.SingularOrList - (*Expression_MultiOrList)(nil), // 85: substrait.Expression.MultiOrList - (*Expression_EmbeddedFunction)(nil), // 86: substrait.Expression.EmbeddedFunction - (*Expression_ReferenceSegment)(nil), // 87: substrait.Expression.ReferenceSegment - (*Expression_MaskExpression)(nil), // 88: substrait.Expression.MaskExpression - (*Expression_FieldReference)(nil), // 89: substrait.Expression.FieldReference - (*Expression_Subquery)(nil), // 90: substrait.Expression.Subquery - (*Expression_Enum_Empty)(nil), // 91: substrait.Expression.Enum.Empty - (*Expression_Literal_VarChar)(nil), // 92: substrait.Expression.Literal.VarChar - (*Expression_Literal_Decimal)(nil), // 93: substrait.Expression.Literal.Decimal - (*Expression_Literal_PrecisionTimestamp)(nil), // 94: substrait.Expression.Literal.PrecisionTimestamp - (*Expression_Literal_Map)(nil), // 95: substrait.Expression.Literal.Map - (*Expression_Literal_IntervalYearToMonth)(nil), // 96: substrait.Expression.Literal.IntervalYearToMonth - (*Expression_Literal_IntervalDayToSecond)(nil), // 97: substrait.Expression.Literal.IntervalDayToSecond - (*Expression_Literal_Struct)(nil), // 98: substrait.Expression.Literal.Struct - (*Expression_Literal_List)(nil), // 99: substrait.Expression.Literal.List - (*Expression_Literal_UserDefined)(nil), // 100: substrait.Expression.Literal.UserDefined - (*Expression_Literal_Map_KeyValue)(nil), // 101: substrait.Expression.Literal.Map.KeyValue - (*Expression_Nested_Map)(nil), // 102: substrait.Expression.Nested.Map - (*Expression_Nested_Struct)(nil), // 103: substrait.Expression.Nested.Struct - (*Expression_Nested_List)(nil), // 104: substrait.Expression.Nested.List - (*Expression_Nested_Map_KeyValue)(nil), // 105: substrait.Expression.Nested.Map.KeyValue - (*Expression_WindowFunction_Bound)(nil), // 106: substrait.Expression.WindowFunction.Bound - (*Expression_WindowFunction_Bound_Preceding)(nil), // 107: substrait.Expression.WindowFunction.Bound.Preceding - (*Expression_WindowFunction_Bound_Following)(nil), // 108: substrait.Expression.WindowFunction.Bound.Following - (*Expression_WindowFunction_Bound_CurrentRow)(nil), // 109: substrait.Expression.WindowFunction.Bound.CurrentRow - (*Expression_WindowFunction_Bound_Unbounded)(nil), // 110: substrait.Expression.WindowFunction.Bound.Unbounded - (*Expression_IfThen_IfClause)(nil), // 111: substrait.Expression.IfThen.IfClause - (*Expression_SwitchExpression_IfValue)(nil), // 112: substrait.Expression.SwitchExpression.IfValue - (*Expression_MultiOrList_Record)(nil), // 113: substrait.Expression.MultiOrList.Record - (*Expression_EmbeddedFunction_PythonPickleFunction)(nil), // 114: substrait.Expression.EmbeddedFunction.PythonPickleFunction - (*Expression_EmbeddedFunction_WebAssemblyFunction)(nil), // 115: substrait.Expression.EmbeddedFunction.WebAssemblyFunction - (*Expression_ReferenceSegment_MapKey)(nil), // 116: substrait.Expression.ReferenceSegment.MapKey - (*Expression_ReferenceSegment_StructField)(nil), // 117: substrait.Expression.ReferenceSegment.StructField - (*Expression_ReferenceSegment_ListElement)(nil), // 118: substrait.Expression.ReferenceSegment.ListElement - (*Expression_MaskExpression_Select)(nil), // 119: substrait.Expression.MaskExpression.Select - (*Expression_MaskExpression_StructSelect)(nil), // 120: substrait.Expression.MaskExpression.StructSelect - (*Expression_MaskExpression_StructItem)(nil), // 121: substrait.Expression.MaskExpression.StructItem - (*Expression_MaskExpression_ListSelect)(nil), // 122: substrait.Expression.MaskExpression.ListSelect - (*Expression_MaskExpression_MapSelect)(nil), // 123: substrait.Expression.MaskExpression.MapSelect - (*Expression_MaskExpression_ListSelect_ListSelectItem)(nil), // 124: substrait.Expression.MaskExpression.ListSelect.ListSelectItem - (*Expression_MaskExpression_ListSelect_ListSelectItem_ListElement)(nil), // 125: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement - (*Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice)(nil), // 126: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice - (*Expression_MaskExpression_MapSelect_MapKey)(nil), // 127: substrait.Expression.MaskExpression.MapSelect.MapKey - (*Expression_MaskExpression_MapSelect_MapKeyExpression)(nil), // 128: substrait.Expression.MaskExpression.MapSelect.MapKeyExpression - (*Expression_FieldReference_RootReference)(nil), // 129: substrait.Expression.FieldReference.RootReference - (*Expression_FieldReference_OuterReference)(nil), // 130: substrait.Expression.FieldReference.OuterReference - (*Expression_Subquery_Scalar)(nil), // 131: substrait.Expression.Subquery.Scalar - (*Expression_Subquery_InPredicate)(nil), // 132: substrait.Expression.Subquery.InPredicate - (*Expression_Subquery_SetPredicate)(nil), // 133: substrait.Expression.Subquery.SetPredicate - (*Expression_Subquery_SetComparison)(nil), // 134: substrait.Expression.Subquery.SetComparison - (*extensions.AdvancedExtension)(nil), // 135: substrait.extensions.AdvancedExtension - (*NamedStruct)(nil), // 136: substrait.NamedStruct - (*anypb.Any)(nil), // 137: google.protobuf.Any - (*Type)(nil), // 138: substrait.Type - (*Type_List)(nil), // 139: substrait.Type.List - (*Type_Map)(nil), // 140: substrait.Type.Map - (*Type_Parameter)(nil), // 141: substrait.Type.Parameter + (AggregationPhase)(0), // 0: substrait.AggregationPhase + (JoinRel_JoinType)(0), // 1: substrait.JoinRel.JoinType + (SetRel_SetOp)(0), // 2: substrait.SetRel.SetOp + (DdlRel_DdlObject)(0), // 3: substrait.DdlRel.DdlObject + (DdlRel_DdlOp)(0), // 4: substrait.DdlRel.DdlOp + (WriteRel_WriteOp)(0), // 5: substrait.WriteRel.WriteOp + (WriteRel_OutputMode)(0), // 6: substrait.WriteRel.OutputMode + (ComparisonJoinKey_SimpleComparisonType)(0), // 7: substrait.ComparisonJoinKey.SimpleComparisonType + (HashJoinRel_JoinType)(0), // 8: substrait.HashJoinRel.JoinType + (MergeJoinRel_JoinType)(0), // 9: substrait.MergeJoinRel.JoinType + (NestedLoopJoinRel_JoinType)(0), // 10: substrait.NestedLoopJoinRel.JoinType + (Expression_WindowFunction_BoundsType)(0), // 11: substrait.Expression.WindowFunction.BoundsType + (Expression_Cast_FailureBehavior)(0), // 12: substrait.Expression.Cast.FailureBehavior + (Expression_Subquery_SetPredicate_PredicateOp)(0), // 13: substrait.Expression.Subquery.SetPredicate.PredicateOp + (Expression_Subquery_SetComparison_ComparisonOp)(0), // 14: substrait.Expression.Subquery.SetComparison.ComparisonOp + (Expression_Subquery_SetComparison_ReductionOp)(0), // 15: substrait.Expression.Subquery.SetComparison.ReductionOp + (SortField_SortDirection)(0), // 16: substrait.SortField.SortDirection + (AggregateFunction_AggregationInvocation)(0), // 17: substrait.AggregateFunction.AggregationInvocation + (*RelCommon)(nil), // 18: substrait.RelCommon + (*ReadRel)(nil), // 19: substrait.ReadRel + (*ProjectRel)(nil), // 20: substrait.ProjectRel + (*JoinRel)(nil), // 21: substrait.JoinRel + (*CrossRel)(nil), // 22: substrait.CrossRel + (*FetchRel)(nil), // 23: substrait.FetchRel + (*AggregateRel)(nil), // 24: substrait.AggregateRel + (*ConsistentPartitionWindowRel)(nil), // 25: substrait.ConsistentPartitionWindowRel + (*SortRel)(nil), // 26: substrait.SortRel + (*FilterRel)(nil), // 27: substrait.FilterRel + (*SetRel)(nil), // 28: substrait.SetRel + (*ExtensionSingleRel)(nil), // 29: substrait.ExtensionSingleRel + (*ExtensionLeafRel)(nil), // 30: substrait.ExtensionLeafRel + (*ExtensionMultiRel)(nil), // 31: substrait.ExtensionMultiRel + (*ExchangeRel)(nil), // 32: substrait.ExchangeRel + (*ExpandRel)(nil), // 33: substrait.ExpandRel + (*RelRoot)(nil), // 34: substrait.RelRoot + (*Rel)(nil), // 35: substrait.Rel + (*NamedObjectWrite)(nil), // 36: substrait.NamedObjectWrite + (*ExtensionObject)(nil), // 37: substrait.ExtensionObject + (*DdlRel)(nil), // 38: substrait.DdlRel + (*WriteRel)(nil), // 39: substrait.WriteRel + (*ComparisonJoinKey)(nil), // 40: substrait.ComparisonJoinKey + (*HashJoinRel)(nil), // 41: substrait.HashJoinRel + (*MergeJoinRel)(nil), // 42: substrait.MergeJoinRel + (*NestedLoopJoinRel)(nil), // 43: substrait.NestedLoopJoinRel + (*FunctionArgument)(nil), // 44: substrait.FunctionArgument + (*FunctionOption)(nil), // 45: substrait.FunctionOption + (*Expression)(nil), // 46: substrait.Expression + (*SortField)(nil), // 47: substrait.SortField + (*AggregateFunction)(nil), // 48: substrait.AggregateFunction + (*ReferenceRel)(nil), // 49: substrait.ReferenceRel + (*RelCommon_Direct)(nil), // 50: substrait.RelCommon.Direct + (*RelCommon_Emit)(nil), // 51: substrait.RelCommon.Emit + (*RelCommon_Hint)(nil), // 52: substrait.RelCommon.Hint + (*RelCommon_Hint_Stats)(nil), // 53: substrait.RelCommon.Hint.Stats + (*RelCommon_Hint_RuntimeConstraint)(nil), // 54: substrait.RelCommon.Hint.RuntimeConstraint + (*ReadRel_NamedTable)(nil), // 55: substrait.ReadRel.NamedTable + (*ReadRel_VirtualTable)(nil), // 56: substrait.ReadRel.VirtualTable + (*ReadRel_ExtensionTable)(nil), // 57: substrait.ReadRel.ExtensionTable + (*ReadRel_LocalFiles)(nil), // 58: substrait.ReadRel.LocalFiles + (*ReadRel_LocalFiles_FileOrFiles)(nil), // 59: substrait.ReadRel.LocalFiles.FileOrFiles + (*ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions)(nil), // 60: substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions + (*ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions)(nil), // 61: substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions + (*ReadRel_LocalFiles_FileOrFiles_OrcReadOptions)(nil), // 62: substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions + (*ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions)(nil), // 63: substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions + (*ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions)(nil), // 64: substrait.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions + (*AggregateRel_Grouping)(nil), // 65: substrait.AggregateRel.Grouping + (*AggregateRel_Measure)(nil), // 66: substrait.AggregateRel.Measure + (*ConsistentPartitionWindowRel_WindowRelFunction)(nil), // 67: substrait.ConsistentPartitionWindowRel.WindowRelFunction + (*ExchangeRel_ScatterFields)(nil), // 68: substrait.ExchangeRel.ScatterFields + (*ExchangeRel_SingleBucketExpression)(nil), // 69: substrait.ExchangeRel.SingleBucketExpression + (*ExchangeRel_MultiBucketExpression)(nil), // 70: substrait.ExchangeRel.MultiBucketExpression + (*ExchangeRel_Broadcast)(nil), // 71: substrait.ExchangeRel.Broadcast + (*ExchangeRel_RoundRobin)(nil), // 72: substrait.ExchangeRel.RoundRobin + (*ExchangeRel_ExchangeTarget)(nil), // 73: substrait.ExchangeRel.ExchangeTarget + (*ExpandRel_ExpandField)(nil), // 74: substrait.ExpandRel.ExpandField + (*ExpandRel_SwitchingField)(nil), // 75: substrait.ExpandRel.SwitchingField + (*ComparisonJoinKey_ComparisonType)(nil), // 76: substrait.ComparisonJoinKey.ComparisonType + (*Expression_Enum)(nil), // 77: substrait.Expression.Enum + (*Expression_Literal)(nil), // 78: substrait.Expression.Literal + (*Expression_Nested)(nil), // 79: substrait.Expression.Nested + (*Expression_ScalarFunction)(nil), // 80: substrait.Expression.ScalarFunction + (*Expression_WindowFunction)(nil), // 81: substrait.Expression.WindowFunction + (*Expression_IfThen)(nil), // 82: substrait.Expression.IfThen + (*Expression_Cast)(nil), // 83: substrait.Expression.Cast + (*Expression_SwitchExpression)(nil), // 84: substrait.Expression.SwitchExpression + (*Expression_SingularOrList)(nil), // 85: substrait.Expression.SingularOrList + (*Expression_MultiOrList)(nil), // 86: substrait.Expression.MultiOrList + (*Expression_EmbeddedFunction)(nil), // 87: substrait.Expression.EmbeddedFunction + (*Expression_ReferenceSegment)(nil), // 88: substrait.Expression.ReferenceSegment + (*Expression_MaskExpression)(nil), // 89: substrait.Expression.MaskExpression + (*Expression_FieldReference)(nil), // 90: substrait.Expression.FieldReference + (*Expression_Subquery)(nil), // 91: substrait.Expression.Subquery + (*Expression_Enum_Empty)(nil), // 92: substrait.Expression.Enum.Empty + (*Expression_Literal_VarChar)(nil), // 93: substrait.Expression.Literal.VarChar + (*Expression_Literal_Decimal)(nil), // 94: substrait.Expression.Literal.Decimal + (*Expression_Literal_PrecisionTimestamp)(nil), // 95: substrait.Expression.Literal.PrecisionTimestamp + (*Expression_Literal_Map)(nil), // 96: substrait.Expression.Literal.Map + (*Expression_Literal_IntervalYearToMonth)(nil), // 97: substrait.Expression.Literal.IntervalYearToMonth + (*Expression_Literal_IntervalDayToSecond)(nil), // 98: substrait.Expression.Literal.IntervalDayToSecond + (*Expression_Literal_IntervalCompound)(nil), // 99: substrait.Expression.Literal.IntervalCompound + (*Expression_Literal_Struct)(nil), // 100: substrait.Expression.Literal.Struct + (*Expression_Literal_List)(nil), // 101: substrait.Expression.Literal.List + (*Expression_Literal_UserDefined)(nil), // 102: substrait.Expression.Literal.UserDefined + (*Expression_Literal_Map_KeyValue)(nil), // 103: substrait.Expression.Literal.Map.KeyValue + (*Expression_Nested_Map)(nil), // 104: substrait.Expression.Nested.Map + (*Expression_Nested_Struct)(nil), // 105: substrait.Expression.Nested.Struct + (*Expression_Nested_List)(nil), // 106: substrait.Expression.Nested.List + (*Expression_Nested_Map_KeyValue)(nil), // 107: substrait.Expression.Nested.Map.KeyValue + (*Expression_WindowFunction_Bound)(nil), // 108: substrait.Expression.WindowFunction.Bound + (*Expression_WindowFunction_Bound_Preceding)(nil), // 109: substrait.Expression.WindowFunction.Bound.Preceding + (*Expression_WindowFunction_Bound_Following)(nil), // 110: substrait.Expression.WindowFunction.Bound.Following + (*Expression_WindowFunction_Bound_CurrentRow)(nil), // 111: substrait.Expression.WindowFunction.Bound.CurrentRow + (*Expression_WindowFunction_Bound_Unbounded)(nil), // 112: substrait.Expression.WindowFunction.Bound.Unbounded + (*Expression_IfThen_IfClause)(nil), // 113: substrait.Expression.IfThen.IfClause + (*Expression_SwitchExpression_IfValue)(nil), // 114: substrait.Expression.SwitchExpression.IfValue + (*Expression_MultiOrList_Record)(nil), // 115: substrait.Expression.MultiOrList.Record + (*Expression_EmbeddedFunction_PythonPickleFunction)(nil), // 116: substrait.Expression.EmbeddedFunction.PythonPickleFunction + (*Expression_EmbeddedFunction_WebAssemblyFunction)(nil), // 117: substrait.Expression.EmbeddedFunction.WebAssemblyFunction + (*Expression_ReferenceSegment_MapKey)(nil), // 118: substrait.Expression.ReferenceSegment.MapKey + (*Expression_ReferenceSegment_StructField)(nil), // 119: substrait.Expression.ReferenceSegment.StructField + (*Expression_ReferenceSegment_ListElement)(nil), // 120: substrait.Expression.ReferenceSegment.ListElement + (*Expression_MaskExpression_Select)(nil), // 121: substrait.Expression.MaskExpression.Select + (*Expression_MaskExpression_StructSelect)(nil), // 122: substrait.Expression.MaskExpression.StructSelect + (*Expression_MaskExpression_StructItem)(nil), // 123: substrait.Expression.MaskExpression.StructItem + (*Expression_MaskExpression_ListSelect)(nil), // 124: substrait.Expression.MaskExpression.ListSelect + (*Expression_MaskExpression_MapSelect)(nil), // 125: substrait.Expression.MaskExpression.MapSelect + (*Expression_MaskExpression_ListSelect_ListSelectItem)(nil), // 126: substrait.Expression.MaskExpression.ListSelect.ListSelectItem + (*Expression_MaskExpression_ListSelect_ListSelectItem_ListElement)(nil), // 127: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement + (*Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice)(nil), // 128: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice + (*Expression_MaskExpression_MapSelect_MapKey)(nil), // 129: substrait.Expression.MaskExpression.MapSelect.MapKey + (*Expression_MaskExpression_MapSelect_MapKeyExpression)(nil), // 130: substrait.Expression.MaskExpression.MapSelect.MapKeyExpression + (*Expression_FieldReference_RootReference)(nil), // 131: substrait.Expression.FieldReference.RootReference + (*Expression_FieldReference_OuterReference)(nil), // 132: substrait.Expression.FieldReference.OuterReference + (*Expression_Subquery_Scalar)(nil), // 133: substrait.Expression.Subquery.Scalar + (*Expression_Subquery_InPredicate)(nil), // 134: substrait.Expression.Subquery.InPredicate + (*Expression_Subquery_SetPredicate)(nil), // 135: substrait.Expression.Subquery.SetPredicate + (*Expression_Subquery_SetComparison)(nil), // 136: substrait.Expression.Subquery.SetComparison + (*extensions.AdvancedExtension)(nil), // 137: substrait.extensions.AdvancedExtension + (*NamedStruct)(nil), // 138: substrait.NamedStruct + (*anypb.Any)(nil), // 139: google.protobuf.Any + (*Type)(nil), // 140: substrait.Type + (*Type_List)(nil), // 141: substrait.Type.List + (*Type_Map)(nil), // 142: substrait.Type.Map + (*Type_Parameter)(nil), // 143: substrait.Type.Parameter } var file_substrait_algebra_proto_depIdxs = []int32{ 50, // 0: substrait.RelCommon.direct:type_name -> substrait.RelCommon.Direct 51, // 1: substrait.RelCommon.emit:type_name -> substrait.RelCommon.Emit 52, // 2: substrait.RelCommon.hint:type_name -> substrait.RelCommon.Hint - 135, // 3: substrait.RelCommon.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 3: substrait.RelCommon.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 4: substrait.ReadRel.common:type_name -> substrait.RelCommon - 136, // 5: substrait.ReadRel.base_schema:type_name -> substrait.NamedStruct + 138, // 5: substrait.ReadRel.base_schema:type_name -> substrait.NamedStruct 46, // 6: substrait.ReadRel.filter:type_name -> substrait.Expression 46, // 7: substrait.ReadRel.best_effort_filter:type_name -> substrait.Expression - 88, // 8: substrait.ReadRel.projection:type_name -> substrait.Expression.MaskExpression - 135, // 9: substrait.ReadRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 89, // 8: substrait.ReadRel.projection:type_name -> substrait.Expression.MaskExpression + 137, // 9: substrait.ReadRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 56, // 10: substrait.ReadRel.virtual_table:type_name -> substrait.ReadRel.VirtualTable 58, // 11: substrait.ReadRel.local_files:type_name -> substrait.ReadRel.LocalFiles 55, // 12: substrait.ReadRel.named_table:type_name -> substrait.ReadRel.NamedTable @@ -12214,64 +12542,64 @@ var file_substrait_algebra_proto_depIdxs = []int32{ 18, // 14: substrait.ProjectRel.common:type_name -> substrait.RelCommon 35, // 15: substrait.ProjectRel.input:type_name -> substrait.Rel 46, // 16: substrait.ProjectRel.expressions:type_name -> substrait.Expression - 135, // 17: substrait.ProjectRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 17: substrait.ProjectRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 18: substrait.JoinRel.common:type_name -> substrait.RelCommon 35, // 19: substrait.JoinRel.left:type_name -> substrait.Rel 35, // 20: substrait.JoinRel.right:type_name -> substrait.Rel 46, // 21: substrait.JoinRel.expression:type_name -> substrait.Expression 46, // 22: substrait.JoinRel.post_join_filter:type_name -> substrait.Expression 1, // 23: substrait.JoinRel.type:type_name -> substrait.JoinRel.JoinType - 135, // 24: substrait.JoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 24: substrait.JoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 25: substrait.CrossRel.common:type_name -> substrait.RelCommon 35, // 26: substrait.CrossRel.left:type_name -> substrait.Rel 35, // 27: substrait.CrossRel.right:type_name -> substrait.Rel - 135, // 28: substrait.CrossRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 28: substrait.CrossRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 29: substrait.FetchRel.common:type_name -> substrait.RelCommon 35, // 30: substrait.FetchRel.input:type_name -> substrait.Rel - 135, // 31: substrait.FetchRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 31: substrait.FetchRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 32: substrait.AggregateRel.common:type_name -> substrait.RelCommon 35, // 33: substrait.AggregateRel.input:type_name -> substrait.Rel - 64, // 34: substrait.AggregateRel.groupings:type_name -> substrait.AggregateRel.Grouping - 65, // 35: substrait.AggregateRel.measures:type_name -> substrait.AggregateRel.Measure - 135, // 36: substrait.AggregateRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 65, // 34: substrait.AggregateRel.groupings:type_name -> substrait.AggregateRel.Grouping + 66, // 35: substrait.AggregateRel.measures:type_name -> substrait.AggregateRel.Measure + 137, // 36: substrait.AggregateRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 37: substrait.ConsistentPartitionWindowRel.common:type_name -> substrait.RelCommon 35, // 38: substrait.ConsistentPartitionWindowRel.input:type_name -> substrait.Rel - 66, // 39: substrait.ConsistentPartitionWindowRel.window_functions:type_name -> substrait.ConsistentPartitionWindowRel.WindowRelFunction + 67, // 39: substrait.ConsistentPartitionWindowRel.window_functions:type_name -> substrait.ConsistentPartitionWindowRel.WindowRelFunction 46, // 40: substrait.ConsistentPartitionWindowRel.partition_expressions:type_name -> substrait.Expression 47, // 41: substrait.ConsistentPartitionWindowRel.sorts:type_name -> substrait.SortField - 135, // 42: substrait.ConsistentPartitionWindowRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 42: substrait.ConsistentPartitionWindowRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 43: substrait.SortRel.common:type_name -> substrait.RelCommon 35, // 44: substrait.SortRel.input:type_name -> substrait.Rel 47, // 45: substrait.SortRel.sorts:type_name -> substrait.SortField - 135, // 46: substrait.SortRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 46: substrait.SortRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 47: substrait.FilterRel.common:type_name -> substrait.RelCommon 35, // 48: substrait.FilterRel.input:type_name -> substrait.Rel 46, // 49: substrait.FilterRel.condition:type_name -> substrait.Expression - 135, // 50: substrait.FilterRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 50: substrait.FilterRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 51: substrait.SetRel.common:type_name -> substrait.RelCommon 35, // 52: substrait.SetRel.inputs:type_name -> substrait.Rel 2, // 53: substrait.SetRel.op:type_name -> substrait.SetRel.SetOp - 135, // 54: substrait.SetRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 54: substrait.SetRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 55: substrait.ExtensionSingleRel.common:type_name -> substrait.RelCommon 35, // 56: substrait.ExtensionSingleRel.input:type_name -> substrait.Rel - 137, // 57: substrait.ExtensionSingleRel.detail:type_name -> google.protobuf.Any + 139, // 57: substrait.ExtensionSingleRel.detail:type_name -> google.protobuf.Any 18, // 58: substrait.ExtensionLeafRel.common:type_name -> substrait.RelCommon - 137, // 59: substrait.ExtensionLeafRel.detail:type_name -> google.protobuf.Any + 139, // 59: substrait.ExtensionLeafRel.detail:type_name -> google.protobuf.Any 18, // 60: substrait.ExtensionMultiRel.common:type_name -> substrait.RelCommon 35, // 61: substrait.ExtensionMultiRel.inputs:type_name -> substrait.Rel - 137, // 62: substrait.ExtensionMultiRel.detail:type_name -> google.protobuf.Any + 139, // 62: substrait.ExtensionMultiRel.detail:type_name -> google.protobuf.Any 18, // 63: substrait.ExchangeRel.common:type_name -> substrait.RelCommon 35, // 64: substrait.ExchangeRel.input:type_name -> substrait.Rel - 72, // 65: substrait.ExchangeRel.targets:type_name -> substrait.ExchangeRel.ExchangeTarget - 67, // 66: substrait.ExchangeRel.scatter_by_fields:type_name -> substrait.ExchangeRel.ScatterFields - 68, // 67: substrait.ExchangeRel.single_target:type_name -> substrait.ExchangeRel.SingleBucketExpression - 69, // 68: substrait.ExchangeRel.multi_target:type_name -> substrait.ExchangeRel.MultiBucketExpression - 71, // 69: substrait.ExchangeRel.round_robin:type_name -> substrait.ExchangeRel.RoundRobin - 70, // 70: substrait.ExchangeRel.broadcast:type_name -> substrait.ExchangeRel.Broadcast - 135, // 71: substrait.ExchangeRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 73, // 65: substrait.ExchangeRel.targets:type_name -> substrait.ExchangeRel.ExchangeTarget + 68, // 66: substrait.ExchangeRel.scatter_by_fields:type_name -> substrait.ExchangeRel.ScatterFields + 69, // 67: substrait.ExchangeRel.single_target:type_name -> substrait.ExchangeRel.SingleBucketExpression + 70, // 68: substrait.ExchangeRel.multi_target:type_name -> substrait.ExchangeRel.MultiBucketExpression + 72, // 69: substrait.ExchangeRel.round_robin:type_name -> substrait.ExchangeRel.RoundRobin + 71, // 70: substrait.ExchangeRel.broadcast:type_name -> substrait.ExchangeRel.Broadcast + 137, // 71: substrait.ExchangeRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 72: substrait.ExpandRel.common:type_name -> substrait.RelCommon 35, // 73: substrait.ExpandRel.input:type_name -> substrait.Rel - 73, // 74: substrait.ExpandRel.fields:type_name -> substrait.ExpandRel.ExpandField + 74, // 74: substrait.ExpandRel.fields:type_name -> substrait.ExpandRel.ExpandField 35, // 75: substrait.RelRoot.input:type_name -> substrait.Rel 19, // 76: substrait.Rel.read:type_name -> substrait.ReadRel 27, // 77: substrait.Rel.filter:type_name -> substrait.FilterRel @@ -12294,220 +12622,224 @@ var file_substrait_algebra_proto_depIdxs = []int32{ 25, // 94: substrait.Rel.window:type_name -> substrait.ConsistentPartitionWindowRel 32, // 95: substrait.Rel.exchange:type_name -> substrait.ExchangeRel 33, // 96: substrait.Rel.expand:type_name -> substrait.ExpandRel - 135, // 97: substrait.NamedObjectWrite.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 137, // 98: substrait.ExtensionObject.detail:type_name -> google.protobuf.Any + 137, // 97: substrait.NamedObjectWrite.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 139, // 98: substrait.ExtensionObject.detail:type_name -> google.protobuf.Any 36, // 99: substrait.DdlRel.named_object:type_name -> substrait.NamedObjectWrite 37, // 100: substrait.DdlRel.extension_object:type_name -> substrait.ExtensionObject - 136, // 101: substrait.DdlRel.table_schema:type_name -> substrait.NamedStruct - 98, // 102: substrait.DdlRel.table_defaults:type_name -> substrait.Expression.Literal.Struct + 138, // 101: substrait.DdlRel.table_schema:type_name -> substrait.NamedStruct + 100, // 102: substrait.DdlRel.table_defaults:type_name -> substrait.Expression.Literal.Struct 3, // 103: substrait.DdlRel.object:type_name -> substrait.DdlRel.DdlObject 4, // 104: substrait.DdlRel.op:type_name -> substrait.DdlRel.DdlOp 35, // 105: substrait.DdlRel.view_definition:type_name -> substrait.Rel 18, // 106: substrait.DdlRel.common:type_name -> substrait.RelCommon 36, // 107: substrait.WriteRel.named_table:type_name -> substrait.NamedObjectWrite 37, // 108: substrait.WriteRel.extension_table:type_name -> substrait.ExtensionObject - 136, // 109: substrait.WriteRel.table_schema:type_name -> substrait.NamedStruct + 138, // 109: substrait.WriteRel.table_schema:type_name -> substrait.NamedStruct 5, // 110: substrait.WriteRel.op:type_name -> substrait.WriteRel.WriteOp 35, // 111: substrait.WriteRel.input:type_name -> substrait.Rel 6, // 112: substrait.WriteRel.output:type_name -> substrait.WriteRel.OutputMode 18, // 113: substrait.WriteRel.common:type_name -> substrait.RelCommon - 89, // 114: substrait.ComparisonJoinKey.left:type_name -> substrait.Expression.FieldReference - 89, // 115: substrait.ComparisonJoinKey.right:type_name -> substrait.Expression.FieldReference - 75, // 116: substrait.ComparisonJoinKey.comparison:type_name -> substrait.ComparisonJoinKey.ComparisonType + 90, // 114: substrait.ComparisonJoinKey.left:type_name -> substrait.Expression.FieldReference + 90, // 115: substrait.ComparisonJoinKey.right:type_name -> substrait.Expression.FieldReference + 76, // 116: substrait.ComparisonJoinKey.comparison:type_name -> substrait.ComparisonJoinKey.ComparisonType 18, // 117: substrait.HashJoinRel.common:type_name -> substrait.RelCommon 35, // 118: substrait.HashJoinRel.left:type_name -> substrait.Rel 35, // 119: substrait.HashJoinRel.right:type_name -> substrait.Rel - 89, // 120: substrait.HashJoinRel.left_keys:type_name -> substrait.Expression.FieldReference - 89, // 121: substrait.HashJoinRel.right_keys:type_name -> substrait.Expression.FieldReference + 90, // 120: substrait.HashJoinRel.left_keys:type_name -> substrait.Expression.FieldReference + 90, // 121: substrait.HashJoinRel.right_keys:type_name -> substrait.Expression.FieldReference 40, // 122: substrait.HashJoinRel.keys:type_name -> substrait.ComparisonJoinKey 46, // 123: substrait.HashJoinRel.post_join_filter:type_name -> substrait.Expression 8, // 124: substrait.HashJoinRel.type:type_name -> substrait.HashJoinRel.JoinType - 135, // 125: substrait.HashJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 125: substrait.HashJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 126: substrait.MergeJoinRel.common:type_name -> substrait.RelCommon 35, // 127: substrait.MergeJoinRel.left:type_name -> substrait.Rel 35, // 128: substrait.MergeJoinRel.right:type_name -> substrait.Rel - 89, // 129: substrait.MergeJoinRel.left_keys:type_name -> substrait.Expression.FieldReference - 89, // 130: substrait.MergeJoinRel.right_keys:type_name -> substrait.Expression.FieldReference + 90, // 129: substrait.MergeJoinRel.left_keys:type_name -> substrait.Expression.FieldReference + 90, // 130: substrait.MergeJoinRel.right_keys:type_name -> substrait.Expression.FieldReference 40, // 131: substrait.MergeJoinRel.keys:type_name -> substrait.ComparisonJoinKey 46, // 132: substrait.MergeJoinRel.post_join_filter:type_name -> substrait.Expression 9, // 133: substrait.MergeJoinRel.type:type_name -> substrait.MergeJoinRel.JoinType - 135, // 134: substrait.MergeJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 134: substrait.MergeJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 18, // 135: substrait.NestedLoopJoinRel.common:type_name -> substrait.RelCommon 35, // 136: substrait.NestedLoopJoinRel.left:type_name -> substrait.Rel 35, // 137: substrait.NestedLoopJoinRel.right:type_name -> substrait.Rel 46, // 138: substrait.NestedLoopJoinRel.expression:type_name -> substrait.Expression 10, // 139: substrait.NestedLoopJoinRel.type:type_name -> substrait.NestedLoopJoinRel.JoinType - 135, // 140: substrait.NestedLoopJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 138, // 141: substrait.FunctionArgument.type:type_name -> substrait.Type + 137, // 140: substrait.NestedLoopJoinRel.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 140, // 141: substrait.FunctionArgument.type:type_name -> substrait.Type 46, // 142: substrait.FunctionArgument.value:type_name -> substrait.Expression - 77, // 143: substrait.Expression.literal:type_name -> substrait.Expression.Literal - 89, // 144: substrait.Expression.selection:type_name -> substrait.Expression.FieldReference - 79, // 145: substrait.Expression.scalar_function:type_name -> substrait.Expression.ScalarFunction - 80, // 146: substrait.Expression.window_function:type_name -> substrait.Expression.WindowFunction - 81, // 147: substrait.Expression.if_then:type_name -> substrait.Expression.IfThen - 83, // 148: substrait.Expression.switch_expression:type_name -> substrait.Expression.SwitchExpression - 84, // 149: substrait.Expression.singular_or_list:type_name -> substrait.Expression.SingularOrList - 85, // 150: substrait.Expression.multi_or_list:type_name -> substrait.Expression.MultiOrList - 82, // 151: substrait.Expression.cast:type_name -> substrait.Expression.Cast - 90, // 152: substrait.Expression.subquery:type_name -> substrait.Expression.Subquery - 78, // 153: substrait.Expression.nested:type_name -> substrait.Expression.Nested - 76, // 154: substrait.Expression.enum:type_name -> substrait.Expression.Enum + 78, // 143: substrait.Expression.literal:type_name -> substrait.Expression.Literal + 90, // 144: substrait.Expression.selection:type_name -> substrait.Expression.FieldReference + 80, // 145: substrait.Expression.scalar_function:type_name -> substrait.Expression.ScalarFunction + 81, // 146: substrait.Expression.window_function:type_name -> substrait.Expression.WindowFunction + 82, // 147: substrait.Expression.if_then:type_name -> substrait.Expression.IfThen + 84, // 148: substrait.Expression.switch_expression:type_name -> substrait.Expression.SwitchExpression + 85, // 149: substrait.Expression.singular_or_list:type_name -> substrait.Expression.SingularOrList + 86, // 150: substrait.Expression.multi_or_list:type_name -> substrait.Expression.MultiOrList + 83, // 151: substrait.Expression.cast:type_name -> substrait.Expression.Cast + 91, // 152: substrait.Expression.subquery:type_name -> substrait.Expression.Subquery + 79, // 153: substrait.Expression.nested:type_name -> substrait.Expression.Nested + 77, // 154: substrait.Expression.enum:type_name -> substrait.Expression.Enum 46, // 155: substrait.SortField.expr:type_name -> substrait.Expression 16, // 156: substrait.SortField.direction:type_name -> substrait.SortField.SortDirection 44, // 157: substrait.AggregateFunction.arguments:type_name -> substrait.FunctionArgument 45, // 158: substrait.AggregateFunction.options:type_name -> substrait.FunctionOption - 138, // 159: substrait.AggregateFunction.output_type:type_name -> substrait.Type + 140, // 159: substrait.AggregateFunction.output_type:type_name -> substrait.Type 0, // 160: substrait.AggregateFunction.phase:type_name -> substrait.AggregationPhase 47, // 161: substrait.AggregateFunction.sorts:type_name -> substrait.SortField 17, // 162: substrait.AggregateFunction.invocation:type_name -> substrait.AggregateFunction.AggregationInvocation 46, // 163: substrait.AggregateFunction.args:type_name -> substrait.Expression 53, // 164: substrait.RelCommon.Hint.stats:type_name -> substrait.RelCommon.Hint.Stats 54, // 165: substrait.RelCommon.Hint.constraint:type_name -> substrait.RelCommon.Hint.RuntimeConstraint - 135, // 166: substrait.RelCommon.Hint.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 135, // 167: substrait.RelCommon.Hint.Stats.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 135, // 168: substrait.RelCommon.Hint.RuntimeConstraint.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 135, // 169: substrait.ReadRel.NamedTable.advanced_extension:type_name -> substrait.extensions.AdvancedExtension - 98, // 170: substrait.ReadRel.VirtualTable.values:type_name -> substrait.Expression.Literal.Struct - 137, // 171: substrait.ReadRel.ExtensionTable.detail:type_name -> google.protobuf.Any + 137, // 166: substrait.RelCommon.Hint.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 167: substrait.RelCommon.Hint.Stats.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 168: substrait.RelCommon.Hint.RuntimeConstraint.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 169: substrait.ReadRel.NamedTable.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 100, // 170: substrait.ReadRel.VirtualTable.values:type_name -> substrait.Expression.Literal.Struct + 139, // 171: substrait.ReadRel.ExtensionTable.detail:type_name -> google.protobuf.Any 59, // 172: substrait.ReadRel.LocalFiles.items:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles - 135, // 173: substrait.ReadRel.LocalFiles.advanced_extension:type_name -> substrait.extensions.AdvancedExtension + 137, // 173: substrait.ReadRel.LocalFiles.advanced_extension:type_name -> substrait.extensions.AdvancedExtension 60, // 174: substrait.ReadRel.LocalFiles.FileOrFiles.parquet:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions 61, // 175: substrait.ReadRel.LocalFiles.FileOrFiles.arrow:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions 62, // 176: substrait.ReadRel.LocalFiles.FileOrFiles.orc:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions - 137, // 177: substrait.ReadRel.LocalFiles.FileOrFiles.extension:type_name -> google.protobuf.Any + 139, // 177: substrait.ReadRel.LocalFiles.FileOrFiles.extension:type_name -> google.protobuf.Any 63, // 178: substrait.ReadRel.LocalFiles.FileOrFiles.dwrf:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions - 46, // 179: substrait.AggregateRel.Grouping.grouping_expressions:type_name -> substrait.Expression - 48, // 180: substrait.AggregateRel.Measure.measure:type_name -> substrait.AggregateFunction - 46, // 181: substrait.AggregateRel.Measure.filter:type_name -> substrait.Expression - 44, // 182: substrait.ConsistentPartitionWindowRel.WindowRelFunction.arguments:type_name -> substrait.FunctionArgument - 45, // 183: substrait.ConsistentPartitionWindowRel.WindowRelFunction.options:type_name -> substrait.FunctionOption - 138, // 184: substrait.ConsistentPartitionWindowRel.WindowRelFunction.output_type:type_name -> substrait.Type - 0, // 185: substrait.ConsistentPartitionWindowRel.WindowRelFunction.phase:type_name -> substrait.AggregationPhase - 17, // 186: substrait.ConsistentPartitionWindowRel.WindowRelFunction.invocation:type_name -> substrait.AggregateFunction.AggregationInvocation - 106, // 187: substrait.ConsistentPartitionWindowRel.WindowRelFunction.lower_bound:type_name -> substrait.Expression.WindowFunction.Bound - 106, // 188: substrait.ConsistentPartitionWindowRel.WindowRelFunction.upper_bound:type_name -> substrait.Expression.WindowFunction.Bound - 11, // 189: substrait.ConsistentPartitionWindowRel.WindowRelFunction.bounds_type:type_name -> substrait.Expression.WindowFunction.BoundsType - 89, // 190: substrait.ExchangeRel.ScatterFields.fields:type_name -> substrait.Expression.FieldReference - 46, // 191: substrait.ExchangeRel.SingleBucketExpression.expression:type_name -> substrait.Expression - 46, // 192: substrait.ExchangeRel.MultiBucketExpression.expression:type_name -> substrait.Expression - 137, // 193: substrait.ExchangeRel.ExchangeTarget.extended:type_name -> google.protobuf.Any - 74, // 194: substrait.ExpandRel.ExpandField.switching_field:type_name -> substrait.ExpandRel.SwitchingField - 46, // 195: substrait.ExpandRel.ExpandField.consistent_field:type_name -> substrait.Expression - 46, // 196: substrait.ExpandRel.SwitchingField.duplicates:type_name -> substrait.Expression - 7, // 197: substrait.ComparisonJoinKey.ComparisonType.simple:type_name -> substrait.ComparisonJoinKey.SimpleComparisonType - 91, // 198: substrait.Expression.Enum.unspecified:type_name -> substrait.Expression.Enum.Empty - 96, // 199: substrait.Expression.Literal.interval_year_to_month:type_name -> substrait.Expression.Literal.IntervalYearToMonth - 97, // 200: substrait.Expression.Literal.interval_day_to_second:type_name -> substrait.Expression.Literal.IntervalDayToSecond - 92, // 201: substrait.Expression.Literal.var_char:type_name -> substrait.Expression.Literal.VarChar - 93, // 202: substrait.Expression.Literal.decimal:type_name -> substrait.Expression.Literal.Decimal - 94, // 203: substrait.Expression.Literal.precision_timestamp:type_name -> substrait.Expression.Literal.PrecisionTimestamp - 94, // 204: substrait.Expression.Literal.precision_timestamp_tz:type_name -> substrait.Expression.Literal.PrecisionTimestamp - 98, // 205: substrait.Expression.Literal.struct:type_name -> substrait.Expression.Literal.Struct - 95, // 206: substrait.Expression.Literal.map:type_name -> substrait.Expression.Literal.Map - 138, // 207: substrait.Expression.Literal.null:type_name -> substrait.Type - 99, // 208: substrait.Expression.Literal.list:type_name -> substrait.Expression.Literal.List - 139, // 209: substrait.Expression.Literal.empty_list:type_name -> substrait.Type.List - 140, // 210: substrait.Expression.Literal.empty_map:type_name -> substrait.Type.Map - 100, // 211: substrait.Expression.Literal.user_defined:type_name -> substrait.Expression.Literal.UserDefined - 103, // 212: substrait.Expression.Nested.struct:type_name -> substrait.Expression.Nested.Struct - 104, // 213: substrait.Expression.Nested.list:type_name -> substrait.Expression.Nested.List - 102, // 214: substrait.Expression.Nested.map:type_name -> substrait.Expression.Nested.Map - 44, // 215: substrait.Expression.ScalarFunction.arguments:type_name -> substrait.FunctionArgument - 45, // 216: substrait.Expression.ScalarFunction.options:type_name -> substrait.FunctionOption - 138, // 217: substrait.Expression.ScalarFunction.output_type:type_name -> substrait.Type - 46, // 218: substrait.Expression.ScalarFunction.args:type_name -> substrait.Expression - 44, // 219: substrait.Expression.WindowFunction.arguments:type_name -> substrait.FunctionArgument - 45, // 220: substrait.Expression.WindowFunction.options:type_name -> substrait.FunctionOption - 138, // 221: substrait.Expression.WindowFunction.output_type:type_name -> substrait.Type - 0, // 222: substrait.Expression.WindowFunction.phase:type_name -> substrait.AggregationPhase - 47, // 223: substrait.Expression.WindowFunction.sorts:type_name -> substrait.SortField - 17, // 224: substrait.Expression.WindowFunction.invocation:type_name -> substrait.AggregateFunction.AggregationInvocation - 46, // 225: substrait.Expression.WindowFunction.partitions:type_name -> substrait.Expression - 11, // 226: substrait.Expression.WindowFunction.bounds_type:type_name -> substrait.Expression.WindowFunction.BoundsType - 106, // 227: substrait.Expression.WindowFunction.lower_bound:type_name -> substrait.Expression.WindowFunction.Bound - 106, // 228: substrait.Expression.WindowFunction.upper_bound:type_name -> substrait.Expression.WindowFunction.Bound - 46, // 229: substrait.Expression.WindowFunction.args:type_name -> substrait.Expression - 111, // 230: substrait.Expression.IfThen.ifs:type_name -> substrait.Expression.IfThen.IfClause - 46, // 231: substrait.Expression.IfThen.else:type_name -> substrait.Expression - 138, // 232: substrait.Expression.Cast.type:type_name -> substrait.Type - 46, // 233: substrait.Expression.Cast.input:type_name -> substrait.Expression - 12, // 234: substrait.Expression.Cast.failure_behavior:type_name -> substrait.Expression.Cast.FailureBehavior - 46, // 235: substrait.Expression.SwitchExpression.match:type_name -> substrait.Expression - 112, // 236: substrait.Expression.SwitchExpression.ifs:type_name -> substrait.Expression.SwitchExpression.IfValue - 46, // 237: substrait.Expression.SwitchExpression.else:type_name -> substrait.Expression - 46, // 238: substrait.Expression.SingularOrList.value:type_name -> substrait.Expression - 46, // 239: substrait.Expression.SingularOrList.options:type_name -> substrait.Expression - 46, // 240: substrait.Expression.MultiOrList.value:type_name -> substrait.Expression - 113, // 241: substrait.Expression.MultiOrList.options:type_name -> substrait.Expression.MultiOrList.Record - 46, // 242: substrait.Expression.EmbeddedFunction.arguments:type_name -> substrait.Expression - 138, // 243: substrait.Expression.EmbeddedFunction.output_type:type_name -> substrait.Type - 114, // 244: substrait.Expression.EmbeddedFunction.python_pickle_function:type_name -> substrait.Expression.EmbeddedFunction.PythonPickleFunction - 115, // 245: substrait.Expression.EmbeddedFunction.web_assembly_function:type_name -> substrait.Expression.EmbeddedFunction.WebAssemblyFunction - 116, // 246: substrait.Expression.ReferenceSegment.map_key:type_name -> substrait.Expression.ReferenceSegment.MapKey - 117, // 247: substrait.Expression.ReferenceSegment.struct_field:type_name -> substrait.Expression.ReferenceSegment.StructField - 118, // 248: substrait.Expression.ReferenceSegment.list_element:type_name -> substrait.Expression.ReferenceSegment.ListElement - 120, // 249: substrait.Expression.MaskExpression.select:type_name -> substrait.Expression.MaskExpression.StructSelect - 87, // 250: substrait.Expression.FieldReference.direct_reference:type_name -> substrait.Expression.ReferenceSegment - 88, // 251: substrait.Expression.FieldReference.masked_reference:type_name -> substrait.Expression.MaskExpression - 46, // 252: substrait.Expression.FieldReference.expression:type_name -> substrait.Expression - 129, // 253: substrait.Expression.FieldReference.root_reference:type_name -> substrait.Expression.FieldReference.RootReference - 130, // 254: substrait.Expression.FieldReference.outer_reference:type_name -> substrait.Expression.FieldReference.OuterReference - 131, // 255: substrait.Expression.Subquery.scalar:type_name -> substrait.Expression.Subquery.Scalar - 132, // 256: substrait.Expression.Subquery.in_predicate:type_name -> substrait.Expression.Subquery.InPredicate - 133, // 257: substrait.Expression.Subquery.set_predicate:type_name -> substrait.Expression.Subquery.SetPredicate - 134, // 258: substrait.Expression.Subquery.set_comparison:type_name -> substrait.Expression.Subquery.SetComparison - 101, // 259: substrait.Expression.Literal.Map.key_values:type_name -> substrait.Expression.Literal.Map.KeyValue - 77, // 260: substrait.Expression.Literal.Struct.fields:type_name -> substrait.Expression.Literal - 77, // 261: substrait.Expression.Literal.List.values:type_name -> substrait.Expression.Literal - 141, // 262: substrait.Expression.Literal.UserDefined.type_parameters:type_name -> substrait.Type.Parameter - 137, // 263: substrait.Expression.Literal.UserDefined.value:type_name -> google.protobuf.Any - 98, // 264: substrait.Expression.Literal.UserDefined.struct:type_name -> substrait.Expression.Literal.Struct - 77, // 265: substrait.Expression.Literal.Map.KeyValue.key:type_name -> substrait.Expression.Literal - 77, // 266: substrait.Expression.Literal.Map.KeyValue.value:type_name -> substrait.Expression.Literal - 105, // 267: substrait.Expression.Nested.Map.key_values:type_name -> substrait.Expression.Nested.Map.KeyValue - 46, // 268: substrait.Expression.Nested.Struct.fields:type_name -> substrait.Expression - 46, // 269: substrait.Expression.Nested.List.values:type_name -> substrait.Expression - 46, // 270: substrait.Expression.Nested.Map.KeyValue.key:type_name -> substrait.Expression - 46, // 271: substrait.Expression.Nested.Map.KeyValue.value:type_name -> substrait.Expression - 107, // 272: substrait.Expression.WindowFunction.Bound.preceding:type_name -> substrait.Expression.WindowFunction.Bound.Preceding - 108, // 273: substrait.Expression.WindowFunction.Bound.following:type_name -> substrait.Expression.WindowFunction.Bound.Following - 109, // 274: substrait.Expression.WindowFunction.Bound.current_row:type_name -> substrait.Expression.WindowFunction.Bound.CurrentRow - 110, // 275: substrait.Expression.WindowFunction.Bound.unbounded:type_name -> substrait.Expression.WindowFunction.Bound.Unbounded - 46, // 276: substrait.Expression.IfThen.IfClause.if:type_name -> substrait.Expression - 46, // 277: substrait.Expression.IfThen.IfClause.then:type_name -> substrait.Expression - 77, // 278: substrait.Expression.SwitchExpression.IfValue.if:type_name -> substrait.Expression.Literal - 46, // 279: substrait.Expression.SwitchExpression.IfValue.then:type_name -> substrait.Expression - 46, // 280: substrait.Expression.MultiOrList.Record.fields:type_name -> substrait.Expression - 77, // 281: substrait.Expression.ReferenceSegment.MapKey.map_key:type_name -> substrait.Expression.Literal - 87, // 282: substrait.Expression.ReferenceSegment.MapKey.child:type_name -> substrait.Expression.ReferenceSegment - 87, // 283: substrait.Expression.ReferenceSegment.StructField.child:type_name -> substrait.Expression.ReferenceSegment - 87, // 284: substrait.Expression.ReferenceSegment.ListElement.child:type_name -> substrait.Expression.ReferenceSegment - 120, // 285: substrait.Expression.MaskExpression.Select.struct:type_name -> substrait.Expression.MaskExpression.StructSelect - 122, // 286: substrait.Expression.MaskExpression.Select.list:type_name -> substrait.Expression.MaskExpression.ListSelect - 123, // 287: substrait.Expression.MaskExpression.Select.map:type_name -> substrait.Expression.MaskExpression.MapSelect - 121, // 288: substrait.Expression.MaskExpression.StructSelect.struct_items:type_name -> substrait.Expression.MaskExpression.StructItem - 119, // 289: substrait.Expression.MaskExpression.StructItem.child:type_name -> substrait.Expression.MaskExpression.Select - 124, // 290: substrait.Expression.MaskExpression.ListSelect.selection:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem - 119, // 291: substrait.Expression.MaskExpression.ListSelect.child:type_name -> substrait.Expression.MaskExpression.Select - 127, // 292: substrait.Expression.MaskExpression.MapSelect.key:type_name -> substrait.Expression.MaskExpression.MapSelect.MapKey - 128, // 293: substrait.Expression.MaskExpression.MapSelect.expression:type_name -> substrait.Expression.MaskExpression.MapSelect.MapKeyExpression - 119, // 294: substrait.Expression.MaskExpression.MapSelect.child:type_name -> substrait.Expression.MaskExpression.Select - 125, // 295: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.item:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement - 126, // 296: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.slice:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice - 35, // 297: substrait.Expression.Subquery.Scalar.input:type_name -> substrait.Rel - 46, // 298: substrait.Expression.Subquery.InPredicate.needles:type_name -> substrait.Expression - 35, // 299: substrait.Expression.Subquery.InPredicate.haystack:type_name -> substrait.Rel - 13, // 300: substrait.Expression.Subquery.SetPredicate.predicate_op:type_name -> substrait.Expression.Subquery.SetPredicate.PredicateOp - 35, // 301: substrait.Expression.Subquery.SetPredicate.tuples:type_name -> substrait.Rel - 15, // 302: substrait.Expression.Subquery.SetComparison.reduction_op:type_name -> substrait.Expression.Subquery.SetComparison.ReductionOp - 14, // 303: substrait.Expression.Subquery.SetComparison.comparison_op:type_name -> substrait.Expression.Subquery.SetComparison.ComparisonOp - 46, // 304: substrait.Expression.Subquery.SetComparison.left:type_name -> substrait.Expression - 35, // 305: substrait.Expression.Subquery.SetComparison.right:type_name -> substrait.Rel - 306, // [306:306] is the sub-list for method output_type - 306, // [306:306] is the sub-list for method input_type - 306, // [306:306] is the sub-list for extension type_name - 306, // [306:306] is the sub-list for extension extendee - 0, // [0:306] is the sub-list for field type_name + 64, // 179: substrait.ReadRel.LocalFiles.FileOrFiles.text:type_name -> substrait.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions + 46, // 180: substrait.AggregateRel.Grouping.grouping_expressions:type_name -> substrait.Expression + 48, // 181: substrait.AggregateRel.Measure.measure:type_name -> substrait.AggregateFunction + 46, // 182: substrait.AggregateRel.Measure.filter:type_name -> substrait.Expression + 44, // 183: substrait.ConsistentPartitionWindowRel.WindowRelFunction.arguments:type_name -> substrait.FunctionArgument + 45, // 184: substrait.ConsistentPartitionWindowRel.WindowRelFunction.options:type_name -> substrait.FunctionOption + 140, // 185: substrait.ConsistentPartitionWindowRel.WindowRelFunction.output_type:type_name -> substrait.Type + 0, // 186: substrait.ConsistentPartitionWindowRel.WindowRelFunction.phase:type_name -> substrait.AggregationPhase + 17, // 187: substrait.ConsistentPartitionWindowRel.WindowRelFunction.invocation:type_name -> substrait.AggregateFunction.AggregationInvocation + 108, // 188: substrait.ConsistentPartitionWindowRel.WindowRelFunction.lower_bound:type_name -> substrait.Expression.WindowFunction.Bound + 108, // 189: substrait.ConsistentPartitionWindowRel.WindowRelFunction.upper_bound:type_name -> substrait.Expression.WindowFunction.Bound + 11, // 190: substrait.ConsistentPartitionWindowRel.WindowRelFunction.bounds_type:type_name -> substrait.Expression.WindowFunction.BoundsType + 90, // 191: substrait.ExchangeRel.ScatterFields.fields:type_name -> substrait.Expression.FieldReference + 46, // 192: substrait.ExchangeRel.SingleBucketExpression.expression:type_name -> substrait.Expression + 46, // 193: substrait.ExchangeRel.MultiBucketExpression.expression:type_name -> substrait.Expression + 139, // 194: substrait.ExchangeRel.ExchangeTarget.extended:type_name -> google.protobuf.Any + 75, // 195: substrait.ExpandRel.ExpandField.switching_field:type_name -> substrait.ExpandRel.SwitchingField + 46, // 196: substrait.ExpandRel.ExpandField.consistent_field:type_name -> substrait.Expression + 46, // 197: substrait.ExpandRel.SwitchingField.duplicates:type_name -> substrait.Expression + 7, // 198: substrait.ComparisonJoinKey.ComparisonType.simple:type_name -> substrait.ComparisonJoinKey.SimpleComparisonType + 92, // 199: substrait.Expression.Enum.unspecified:type_name -> substrait.Expression.Enum.Empty + 97, // 200: substrait.Expression.Literal.interval_year_to_month:type_name -> substrait.Expression.Literal.IntervalYearToMonth + 98, // 201: substrait.Expression.Literal.interval_day_to_second:type_name -> substrait.Expression.Literal.IntervalDayToSecond + 99, // 202: substrait.Expression.Literal.interval_compound:type_name -> substrait.Expression.Literal.IntervalCompound + 93, // 203: substrait.Expression.Literal.var_char:type_name -> substrait.Expression.Literal.VarChar + 94, // 204: substrait.Expression.Literal.decimal:type_name -> substrait.Expression.Literal.Decimal + 95, // 205: substrait.Expression.Literal.precision_timestamp:type_name -> substrait.Expression.Literal.PrecisionTimestamp + 95, // 206: substrait.Expression.Literal.precision_timestamp_tz:type_name -> substrait.Expression.Literal.PrecisionTimestamp + 100, // 207: substrait.Expression.Literal.struct:type_name -> substrait.Expression.Literal.Struct + 96, // 208: substrait.Expression.Literal.map:type_name -> substrait.Expression.Literal.Map + 140, // 209: substrait.Expression.Literal.null:type_name -> substrait.Type + 101, // 210: substrait.Expression.Literal.list:type_name -> substrait.Expression.Literal.List + 141, // 211: substrait.Expression.Literal.empty_list:type_name -> substrait.Type.List + 142, // 212: substrait.Expression.Literal.empty_map:type_name -> substrait.Type.Map + 102, // 213: substrait.Expression.Literal.user_defined:type_name -> substrait.Expression.Literal.UserDefined + 105, // 214: substrait.Expression.Nested.struct:type_name -> substrait.Expression.Nested.Struct + 106, // 215: substrait.Expression.Nested.list:type_name -> substrait.Expression.Nested.List + 104, // 216: substrait.Expression.Nested.map:type_name -> substrait.Expression.Nested.Map + 44, // 217: substrait.Expression.ScalarFunction.arguments:type_name -> substrait.FunctionArgument + 45, // 218: substrait.Expression.ScalarFunction.options:type_name -> substrait.FunctionOption + 140, // 219: substrait.Expression.ScalarFunction.output_type:type_name -> substrait.Type + 46, // 220: substrait.Expression.ScalarFunction.args:type_name -> substrait.Expression + 44, // 221: substrait.Expression.WindowFunction.arguments:type_name -> substrait.FunctionArgument + 45, // 222: substrait.Expression.WindowFunction.options:type_name -> substrait.FunctionOption + 140, // 223: substrait.Expression.WindowFunction.output_type:type_name -> substrait.Type + 0, // 224: substrait.Expression.WindowFunction.phase:type_name -> substrait.AggregationPhase + 47, // 225: substrait.Expression.WindowFunction.sorts:type_name -> substrait.SortField + 17, // 226: substrait.Expression.WindowFunction.invocation:type_name -> substrait.AggregateFunction.AggregationInvocation + 46, // 227: substrait.Expression.WindowFunction.partitions:type_name -> substrait.Expression + 11, // 228: substrait.Expression.WindowFunction.bounds_type:type_name -> substrait.Expression.WindowFunction.BoundsType + 108, // 229: substrait.Expression.WindowFunction.lower_bound:type_name -> substrait.Expression.WindowFunction.Bound + 108, // 230: substrait.Expression.WindowFunction.upper_bound:type_name -> substrait.Expression.WindowFunction.Bound + 46, // 231: substrait.Expression.WindowFunction.args:type_name -> substrait.Expression + 113, // 232: substrait.Expression.IfThen.ifs:type_name -> substrait.Expression.IfThen.IfClause + 46, // 233: substrait.Expression.IfThen.else:type_name -> substrait.Expression + 140, // 234: substrait.Expression.Cast.type:type_name -> substrait.Type + 46, // 235: substrait.Expression.Cast.input:type_name -> substrait.Expression + 12, // 236: substrait.Expression.Cast.failure_behavior:type_name -> substrait.Expression.Cast.FailureBehavior + 46, // 237: substrait.Expression.SwitchExpression.match:type_name -> substrait.Expression + 114, // 238: substrait.Expression.SwitchExpression.ifs:type_name -> substrait.Expression.SwitchExpression.IfValue + 46, // 239: substrait.Expression.SwitchExpression.else:type_name -> substrait.Expression + 46, // 240: substrait.Expression.SingularOrList.value:type_name -> substrait.Expression + 46, // 241: substrait.Expression.SingularOrList.options:type_name -> substrait.Expression + 46, // 242: substrait.Expression.MultiOrList.value:type_name -> substrait.Expression + 115, // 243: substrait.Expression.MultiOrList.options:type_name -> substrait.Expression.MultiOrList.Record + 46, // 244: substrait.Expression.EmbeddedFunction.arguments:type_name -> substrait.Expression + 140, // 245: substrait.Expression.EmbeddedFunction.output_type:type_name -> substrait.Type + 116, // 246: substrait.Expression.EmbeddedFunction.python_pickle_function:type_name -> substrait.Expression.EmbeddedFunction.PythonPickleFunction + 117, // 247: substrait.Expression.EmbeddedFunction.web_assembly_function:type_name -> substrait.Expression.EmbeddedFunction.WebAssemblyFunction + 118, // 248: substrait.Expression.ReferenceSegment.map_key:type_name -> substrait.Expression.ReferenceSegment.MapKey + 119, // 249: substrait.Expression.ReferenceSegment.struct_field:type_name -> substrait.Expression.ReferenceSegment.StructField + 120, // 250: substrait.Expression.ReferenceSegment.list_element:type_name -> substrait.Expression.ReferenceSegment.ListElement + 122, // 251: substrait.Expression.MaskExpression.select:type_name -> substrait.Expression.MaskExpression.StructSelect + 88, // 252: substrait.Expression.FieldReference.direct_reference:type_name -> substrait.Expression.ReferenceSegment + 89, // 253: substrait.Expression.FieldReference.masked_reference:type_name -> substrait.Expression.MaskExpression + 46, // 254: substrait.Expression.FieldReference.expression:type_name -> substrait.Expression + 131, // 255: substrait.Expression.FieldReference.root_reference:type_name -> substrait.Expression.FieldReference.RootReference + 132, // 256: substrait.Expression.FieldReference.outer_reference:type_name -> substrait.Expression.FieldReference.OuterReference + 133, // 257: substrait.Expression.Subquery.scalar:type_name -> substrait.Expression.Subquery.Scalar + 134, // 258: substrait.Expression.Subquery.in_predicate:type_name -> substrait.Expression.Subquery.InPredicate + 135, // 259: substrait.Expression.Subquery.set_predicate:type_name -> substrait.Expression.Subquery.SetPredicate + 136, // 260: substrait.Expression.Subquery.set_comparison:type_name -> substrait.Expression.Subquery.SetComparison + 103, // 261: substrait.Expression.Literal.Map.key_values:type_name -> substrait.Expression.Literal.Map.KeyValue + 97, // 262: substrait.Expression.Literal.IntervalCompound.interval_year_to_month:type_name -> substrait.Expression.Literal.IntervalYearToMonth + 98, // 263: substrait.Expression.Literal.IntervalCompound.interval_day_to_second:type_name -> substrait.Expression.Literal.IntervalDayToSecond + 78, // 264: substrait.Expression.Literal.Struct.fields:type_name -> substrait.Expression.Literal + 78, // 265: substrait.Expression.Literal.List.values:type_name -> substrait.Expression.Literal + 143, // 266: substrait.Expression.Literal.UserDefined.type_parameters:type_name -> substrait.Type.Parameter + 139, // 267: substrait.Expression.Literal.UserDefined.value:type_name -> google.protobuf.Any + 100, // 268: substrait.Expression.Literal.UserDefined.struct:type_name -> substrait.Expression.Literal.Struct + 78, // 269: substrait.Expression.Literal.Map.KeyValue.key:type_name -> substrait.Expression.Literal + 78, // 270: substrait.Expression.Literal.Map.KeyValue.value:type_name -> substrait.Expression.Literal + 107, // 271: substrait.Expression.Nested.Map.key_values:type_name -> substrait.Expression.Nested.Map.KeyValue + 46, // 272: substrait.Expression.Nested.Struct.fields:type_name -> substrait.Expression + 46, // 273: substrait.Expression.Nested.List.values:type_name -> substrait.Expression + 46, // 274: substrait.Expression.Nested.Map.KeyValue.key:type_name -> substrait.Expression + 46, // 275: substrait.Expression.Nested.Map.KeyValue.value:type_name -> substrait.Expression + 109, // 276: substrait.Expression.WindowFunction.Bound.preceding:type_name -> substrait.Expression.WindowFunction.Bound.Preceding + 110, // 277: substrait.Expression.WindowFunction.Bound.following:type_name -> substrait.Expression.WindowFunction.Bound.Following + 111, // 278: substrait.Expression.WindowFunction.Bound.current_row:type_name -> substrait.Expression.WindowFunction.Bound.CurrentRow + 112, // 279: substrait.Expression.WindowFunction.Bound.unbounded:type_name -> substrait.Expression.WindowFunction.Bound.Unbounded + 46, // 280: substrait.Expression.IfThen.IfClause.if:type_name -> substrait.Expression + 46, // 281: substrait.Expression.IfThen.IfClause.then:type_name -> substrait.Expression + 78, // 282: substrait.Expression.SwitchExpression.IfValue.if:type_name -> substrait.Expression.Literal + 46, // 283: substrait.Expression.SwitchExpression.IfValue.then:type_name -> substrait.Expression + 46, // 284: substrait.Expression.MultiOrList.Record.fields:type_name -> substrait.Expression + 78, // 285: substrait.Expression.ReferenceSegment.MapKey.map_key:type_name -> substrait.Expression.Literal + 88, // 286: substrait.Expression.ReferenceSegment.MapKey.child:type_name -> substrait.Expression.ReferenceSegment + 88, // 287: substrait.Expression.ReferenceSegment.StructField.child:type_name -> substrait.Expression.ReferenceSegment + 88, // 288: substrait.Expression.ReferenceSegment.ListElement.child:type_name -> substrait.Expression.ReferenceSegment + 122, // 289: substrait.Expression.MaskExpression.Select.struct:type_name -> substrait.Expression.MaskExpression.StructSelect + 124, // 290: substrait.Expression.MaskExpression.Select.list:type_name -> substrait.Expression.MaskExpression.ListSelect + 125, // 291: substrait.Expression.MaskExpression.Select.map:type_name -> substrait.Expression.MaskExpression.MapSelect + 123, // 292: substrait.Expression.MaskExpression.StructSelect.struct_items:type_name -> substrait.Expression.MaskExpression.StructItem + 121, // 293: substrait.Expression.MaskExpression.StructItem.child:type_name -> substrait.Expression.MaskExpression.Select + 126, // 294: substrait.Expression.MaskExpression.ListSelect.selection:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem + 121, // 295: substrait.Expression.MaskExpression.ListSelect.child:type_name -> substrait.Expression.MaskExpression.Select + 129, // 296: substrait.Expression.MaskExpression.MapSelect.key:type_name -> substrait.Expression.MaskExpression.MapSelect.MapKey + 130, // 297: substrait.Expression.MaskExpression.MapSelect.expression:type_name -> substrait.Expression.MaskExpression.MapSelect.MapKeyExpression + 121, // 298: substrait.Expression.MaskExpression.MapSelect.child:type_name -> substrait.Expression.MaskExpression.Select + 127, // 299: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.item:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement + 128, // 300: substrait.Expression.MaskExpression.ListSelect.ListSelectItem.slice:type_name -> substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice + 35, // 301: substrait.Expression.Subquery.Scalar.input:type_name -> substrait.Rel + 46, // 302: substrait.Expression.Subquery.InPredicate.needles:type_name -> substrait.Expression + 35, // 303: substrait.Expression.Subquery.InPredicate.haystack:type_name -> substrait.Rel + 13, // 304: substrait.Expression.Subquery.SetPredicate.predicate_op:type_name -> substrait.Expression.Subquery.SetPredicate.PredicateOp + 35, // 305: substrait.Expression.Subquery.SetPredicate.tuples:type_name -> substrait.Rel + 15, // 306: substrait.Expression.Subquery.SetComparison.reduction_op:type_name -> substrait.Expression.Subquery.SetComparison.ReductionOp + 14, // 307: substrait.Expression.Subquery.SetComparison.comparison_op:type_name -> substrait.Expression.Subquery.SetComparison.ComparisonOp + 46, // 308: substrait.Expression.Subquery.SetComparison.left:type_name -> substrait.Expression + 35, // 309: substrait.Expression.Subquery.SetComparison.right:type_name -> substrait.Rel + 310, // [310:310] is the sub-list for method output_type + 310, // [310:310] is the sub-list for method input_type + 310, // [310:310] is the sub-list for extension type_name + 310, // [310:310] is the sub-list for extension extendee + 0, // [0:310] is the sub-list for field type_name } func init() { file_substrait_algebra_proto_init() } @@ -13070,7 +13402,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AggregateRel_Grouping); i { + switch v := v.(*ReadRel_LocalFiles_FileOrFiles_DelimiterSeparatedTextReadOptions); i { case 0: return &v.state case 1: @@ -13082,7 +13414,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AggregateRel_Measure); i { + switch v := v.(*AggregateRel_Grouping); i { case 0: return &v.state case 1: @@ -13094,7 +13426,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConsistentPartitionWindowRel_WindowRelFunction); i { + switch v := v.(*AggregateRel_Measure); i { case 0: return &v.state case 1: @@ -13106,7 +13438,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_ScatterFields); i { + switch v := v.(*ConsistentPartitionWindowRel_WindowRelFunction); i { case 0: return &v.state case 1: @@ -13118,7 +13450,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_SingleBucketExpression); i { + switch v := v.(*ExchangeRel_ScatterFields); i { case 0: return &v.state case 1: @@ -13130,7 +13462,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_MultiBucketExpression); i { + switch v := v.(*ExchangeRel_SingleBucketExpression); i { case 0: return &v.state case 1: @@ -13142,7 +13474,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_Broadcast); i { + switch v := v.(*ExchangeRel_MultiBucketExpression); i { case 0: return &v.state case 1: @@ -13154,7 +13486,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_RoundRobin); i { + switch v := v.(*ExchangeRel_Broadcast); i { case 0: return &v.state case 1: @@ -13166,7 +13498,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeRel_ExchangeTarget); i { + switch v := v.(*ExchangeRel_RoundRobin); i { case 0: return &v.state case 1: @@ -13178,7 +13510,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpandRel_ExpandField); i { + switch v := v.(*ExchangeRel_ExchangeTarget); i { case 0: return &v.state case 1: @@ -13190,7 +13522,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpandRel_SwitchingField); i { + switch v := v.(*ExpandRel_ExpandField); i { case 0: return &v.state case 1: @@ -13202,7 +13534,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ComparisonJoinKey_ComparisonType); i { + switch v := v.(*ExpandRel_SwitchingField); i { case 0: return &v.state case 1: @@ -13214,7 +13546,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Enum); i { + switch v := v.(*ComparisonJoinKey_ComparisonType); i { case 0: return &v.state case 1: @@ -13226,7 +13558,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal); i { + switch v := v.(*Expression_Enum); i { case 0: return &v.state case 1: @@ -13238,7 +13570,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Nested); i { + switch v := v.(*Expression_Literal); i { case 0: return &v.state case 1: @@ -13250,7 +13582,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_ScalarFunction); i { + switch v := v.(*Expression_Nested); i { case 0: return &v.state case 1: @@ -13262,7 +13594,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction); i { + switch v := v.(*Expression_ScalarFunction); i { case 0: return &v.state case 1: @@ -13274,7 +13606,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_IfThen); i { + switch v := v.(*Expression_WindowFunction); i { case 0: return &v.state case 1: @@ -13286,7 +13618,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Cast); i { + switch v := v.(*Expression_IfThen); i { case 0: return &v.state case 1: @@ -13298,7 +13630,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_SwitchExpression); i { + switch v := v.(*Expression_Cast); i { case 0: return &v.state case 1: @@ -13310,7 +13642,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_SingularOrList); i { + switch v := v.(*Expression_SwitchExpression); i { case 0: return &v.state case 1: @@ -13322,7 +13654,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MultiOrList); i { + switch v := v.(*Expression_SingularOrList); i { case 0: return &v.state case 1: @@ -13334,7 +13666,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_EmbeddedFunction); i { + switch v := v.(*Expression_MultiOrList); i { case 0: return &v.state case 1: @@ -13346,7 +13678,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_ReferenceSegment); i { + switch v := v.(*Expression_EmbeddedFunction); i { case 0: return &v.state case 1: @@ -13358,7 +13690,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression); i { + switch v := v.(*Expression_ReferenceSegment); i { case 0: return &v.state case 1: @@ -13370,7 +13702,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_FieldReference); i { + switch v := v.(*Expression_MaskExpression); i { case 0: return &v.state case 1: @@ -13382,7 +13714,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Subquery); i { + switch v := v.(*Expression_FieldReference); i { case 0: return &v.state case 1: @@ -13394,7 +13726,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Enum_Empty); i { + switch v := v.(*Expression_Subquery); i { case 0: return &v.state case 1: @@ -13406,7 +13738,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_VarChar); i { + switch v := v.(*Expression_Enum_Empty); i { case 0: return &v.state case 1: @@ -13418,7 +13750,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_Decimal); i { + switch v := v.(*Expression_Literal_VarChar); i { case 0: return &v.state case 1: @@ -13430,7 +13762,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_PrecisionTimestamp); i { + switch v := v.(*Expression_Literal_Decimal); i { case 0: return &v.state case 1: @@ -13442,7 +13774,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_Map); i { + switch v := v.(*Expression_Literal_PrecisionTimestamp); i { case 0: return &v.state case 1: @@ -13454,7 +13786,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_IntervalYearToMonth); i { + switch v := v.(*Expression_Literal_Map); i { case 0: return &v.state case 1: @@ -13466,7 +13798,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_IntervalDayToSecond); i { + switch v := v.(*Expression_Literal_IntervalYearToMonth); i { case 0: return &v.state case 1: @@ -13478,7 +13810,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_Struct); i { + switch v := v.(*Expression_Literal_IntervalDayToSecond); i { case 0: return &v.state case 1: @@ -13490,7 +13822,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_List); i { + switch v := v.(*Expression_Literal_IntervalCompound); i { case 0: return &v.state case 1: @@ -13502,7 +13834,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_UserDefined); i { + switch v := v.(*Expression_Literal_Struct); i { case 0: return &v.state case 1: @@ -13514,7 +13846,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Literal_Map_KeyValue); i { + switch v := v.(*Expression_Literal_List); i { case 0: return &v.state case 1: @@ -13526,7 +13858,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Nested_Map); i { + switch v := v.(*Expression_Literal_UserDefined); i { case 0: return &v.state case 1: @@ -13538,7 +13870,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Nested_Struct); i { + switch v := v.(*Expression_Literal_Map_KeyValue); i { case 0: return &v.state case 1: @@ -13550,7 +13882,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Nested_List); i { + switch v := v.(*Expression_Nested_Map); i { case 0: return &v.state case 1: @@ -13562,7 +13894,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Nested_Map_KeyValue); i { + switch v := v.(*Expression_Nested_Struct); i { case 0: return &v.state case 1: @@ -13574,7 +13906,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction_Bound); i { + switch v := v.(*Expression_Nested_List); i { case 0: return &v.state case 1: @@ -13586,7 +13918,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction_Bound_Preceding); i { + switch v := v.(*Expression_Nested_Map_KeyValue); i { case 0: return &v.state case 1: @@ -13598,7 +13930,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction_Bound_Following); i { + switch v := v.(*Expression_WindowFunction_Bound); i { case 0: return &v.state case 1: @@ -13610,7 +13942,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction_Bound_CurrentRow); i { + switch v := v.(*Expression_WindowFunction_Bound_Preceding); i { case 0: return &v.state case 1: @@ -13622,7 +13954,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_WindowFunction_Bound_Unbounded); i { + switch v := v.(*Expression_WindowFunction_Bound_Following); i { case 0: return &v.state case 1: @@ -13634,7 +13966,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_IfThen_IfClause); i { + switch v := v.(*Expression_WindowFunction_Bound_CurrentRow); i { case 0: return &v.state case 1: @@ -13646,7 +13978,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_SwitchExpression_IfValue); i { + switch v := v.(*Expression_WindowFunction_Bound_Unbounded); i { case 0: return &v.state case 1: @@ -13658,7 +13990,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MultiOrList_Record); i { + switch v := v.(*Expression_IfThen_IfClause); i { case 0: return &v.state case 1: @@ -13670,7 +14002,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_EmbeddedFunction_PythonPickleFunction); i { + switch v := v.(*Expression_SwitchExpression_IfValue); i { case 0: return &v.state case 1: @@ -13682,7 +14014,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_EmbeddedFunction_WebAssemblyFunction); i { + switch v := v.(*Expression_MultiOrList_Record); i { case 0: return &v.state case 1: @@ -13694,7 +14026,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_ReferenceSegment_MapKey); i { + switch v := v.(*Expression_EmbeddedFunction_PythonPickleFunction); i { case 0: return &v.state case 1: @@ -13706,7 +14038,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_ReferenceSegment_StructField); i { + switch v := v.(*Expression_EmbeddedFunction_WebAssemblyFunction); i { case 0: return &v.state case 1: @@ -13718,7 +14050,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_ReferenceSegment_ListElement); i { + switch v := v.(*Expression_ReferenceSegment_MapKey); i { case 0: return &v.state case 1: @@ -13730,7 +14062,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_Select); i { + switch v := v.(*Expression_ReferenceSegment_StructField); i { case 0: return &v.state case 1: @@ -13742,7 +14074,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_StructSelect); i { + switch v := v.(*Expression_ReferenceSegment_ListElement); i { case 0: return &v.state case 1: @@ -13754,7 +14086,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_StructItem); i { + switch v := v.(*Expression_MaskExpression_Select); i { case 0: return &v.state case 1: @@ -13766,7 +14098,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_ListSelect); i { + switch v := v.(*Expression_MaskExpression_StructSelect); i { case 0: return &v.state case 1: @@ -13778,7 +14110,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_MapSelect); i { + switch v := v.(*Expression_MaskExpression_StructItem); i { case 0: return &v.state case 1: @@ -13790,7 +14122,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem); i { + switch v := v.(*Expression_MaskExpression_ListSelect); i { case 0: return &v.state case 1: @@ -13802,7 +14134,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem_ListElement); i { + switch v := v.(*Expression_MaskExpression_MapSelect); i { case 0: return &v.state case 1: @@ -13814,7 +14146,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice); i { + switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem); i { case 0: return &v.state case 1: @@ -13826,7 +14158,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_MapSelect_MapKey); i { + switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem_ListElement); i { case 0: return &v.state case 1: @@ -13838,7 +14170,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_MaskExpression_MapSelect_MapKeyExpression); i { + switch v := v.(*Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice); i { case 0: return &v.state case 1: @@ -13850,7 +14182,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_FieldReference_RootReference); i { + switch v := v.(*Expression_MaskExpression_MapSelect_MapKey); i { case 0: return &v.state case 1: @@ -13862,7 +14194,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_FieldReference_OuterReference); i { + switch v := v.(*Expression_MaskExpression_MapSelect_MapKeyExpression); i { case 0: return &v.state case 1: @@ -13874,7 +14206,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Subquery_Scalar); i { + switch v := v.(*Expression_FieldReference_RootReference); i { case 0: return &v.state case 1: @@ -13886,7 +14218,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Subquery_InPredicate); i { + switch v := v.(*Expression_FieldReference_OuterReference); i { case 0: return &v.state case 1: @@ -13898,7 +14230,7 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Expression_Subquery_SetPredicate); i { + switch v := v.(*Expression_Subquery_Scalar); i { case 0: return &v.state case 1: @@ -13910,6 +14242,30 @@ func file_substrait_algebra_proto_init() { } } file_substrait_algebra_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Subquery_InPredicate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_algebra_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Subquery_SetPredicate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_algebra_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Expression_Subquery_SetComparison); i { case 0: return &v.state @@ -14003,24 +14359,26 @@ func file_substrait_algebra_proto_init() { (*ReadRel_LocalFiles_FileOrFiles_Orc)(nil), (*ReadRel_LocalFiles_FileOrFiles_Extension)(nil), (*ReadRel_LocalFiles_FileOrFiles_Dwrf)(nil), + (*ReadRel_LocalFiles_FileOrFiles_Text)(nil), } - file_substrait_algebra_proto_msgTypes[54].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_substrait_algebra_proto_msgTypes[55].OneofWrappers = []interface{}{ (*ExchangeRel_ExchangeTarget_Uri)(nil), (*ExchangeRel_ExchangeTarget_Extended)(nil), } - file_substrait_algebra_proto_msgTypes[55].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[56].OneofWrappers = []interface{}{ (*ExpandRel_ExpandField_SwitchingField)(nil), (*ExpandRel_ExpandField_ConsistentField)(nil), } - file_substrait_algebra_proto_msgTypes[57].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[58].OneofWrappers = []interface{}{ (*ComparisonJoinKey_ComparisonType_Simple)(nil), (*ComparisonJoinKey_ComparisonType_CustomFunctionReference)(nil), } - file_substrait_algebra_proto_msgTypes[58].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[59].OneofWrappers = []interface{}{ (*Expression_Enum_Specified)(nil), (*Expression_Enum_Unspecified)(nil), } - file_substrait_algebra_proto_msgTypes[59].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[60].OneofWrappers = []interface{}{ (*Expression_Literal_Boolean)(nil), (*Expression_Literal_I8)(nil), (*Expression_Literal_I16)(nil), @@ -14035,6 +14393,7 @@ func file_substrait_algebra_proto_init() { (*Expression_Literal_Time)(nil), (*Expression_Literal_IntervalYearToMonth_)(nil), (*Expression_Literal_IntervalDayToSecond_)(nil), + (*Expression_Literal_IntervalCompound_)(nil), (*Expression_Literal_FixedChar)(nil), (*Expression_Literal_VarChar_)(nil), (*Expression_Literal_FixedBinary)(nil), @@ -14051,53 +14410,57 @@ func file_substrait_algebra_proto_init() { (*Expression_Literal_EmptyMap)(nil), (*Expression_Literal_UserDefined_)(nil), } - file_substrait_algebra_proto_msgTypes[60].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[61].OneofWrappers = []interface{}{ (*Expression_Nested_Struct_)(nil), (*Expression_Nested_List_)(nil), (*Expression_Nested_Map_)(nil), } - file_substrait_algebra_proto_msgTypes[68].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[69].OneofWrappers = []interface{}{ (*Expression_EmbeddedFunction_PythonPickleFunction_)(nil), (*Expression_EmbeddedFunction_WebAssemblyFunction_)(nil), } - file_substrait_algebra_proto_msgTypes[69].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[70].OneofWrappers = []interface{}{ (*Expression_ReferenceSegment_MapKey_)(nil), (*Expression_ReferenceSegment_StructField_)(nil), (*Expression_ReferenceSegment_ListElement_)(nil), } - file_substrait_algebra_proto_msgTypes[71].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[72].OneofWrappers = []interface{}{ (*Expression_FieldReference_DirectReference)(nil), (*Expression_FieldReference_MaskedReference)(nil), (*Expression_FieldReference_Expression)(nil), (*Expression_FieldReference_RootReference_)(nil), (*Expression_FieldReference_OuterReference_)(nil), } - file_substrait_algebra_proto_msgTypes[72].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[73].OneofWrappers = []interface{}{ (*Expression_Subquery_Scalar_)(nil), (*Expression_Subquery_InPredicate_)(nil), (*Expression_Subquery_SetPredicate_)(nil), (*Expression_Subquery_SetComparison_)(nil), } - file_substrait_algebra_proto_msgTypes[82].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[80].OneofWrappers = []interface{}{ + (*Expression_Literal_IntervalDayToSecond_Microseconds)(nil), + (*Expression_Literal_IntervalDayToSecond_Precision)(nil), + } + file_substrait_algebra_proto_msgTypes[84].OneofWrappers = []interface{}{ (*Expression_Literal_UserDefined_Value)(nil), (*Expression_Literal_UserDefined_Struct)(nil), } - file_substrait_algebra_proto_msgTypes[88].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[90].OneofWrappers = []interface{}{ (*Expression_WindowFunction_Bound_Preceding_)(nil), (*Expression_WindowFunction_Bound_Following_)(nil), (*Expression_WindowFunction_Bound_CurrentRow_)(nil), (*Expression_WindowFunction_Bound_Unbounded_)(nil), } - file_substrait_algebra_proto_msgTypes[101].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[103].OneofWrappers = []interface{}{ (*Expression_MaskExpression_Select_Struct)(nil), (*Expression_MaskExpression_Select_List)(nil), (*Expression_MaskExpression_Select_Map)(nil), } - file_substrait_algebra_proto_msgTypes[105].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[107].OneofWrappers = []interface{}{ (*Expression_MaskExpression_MapSelect_Key)(nil), (*Expression_MaskExpression_MapSelect_Expression)(nil), } - file_substrait_algebra_proto_msgTypes[106].OneofWrappers = []interface{}{ + file_substrait_algebra_proto_msgTypes[108].OneofWrappers = []interface{}{ (*Expression_MaskExpression_ListSelect_ListSelectItem_Item)(nil), (*Expression_MaskExpression_ListSelect_ListSelectItem_Slice)(nil), } @@ -14107,7 +14470,7 @@ func file_substrait_algebra_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_substrait_algebra_proto_rawDesc, NumEnums: 18, - NumMessages: 117, + NumMessages: 119, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/parameterized_types.pb.go b/proto/parameterized_types.pb.go index 1d12a41..0c79ea8 100644 --- a/proto/parameterized_types.pb.go +++ b/proto/parameterized_types.pb.go @@ -43,6 +43,7 @@ type ParameterizedType struct { // *ParameterizedType_Time // *ParameterizedType_IntervalYear // *ParameterizedType_IntervalDay + // *ParameterizedType_IntervalCompound // *ParameterizedType_TimestampTz // *ParameterizedType_Uuid // *ParameterizedType_FixedChar @@ -191,13 +192,20 @@ func (x *ParameterizedType) GetIntervalYear() *Type_IntervalYear { return nil } -func (x *ParameterizedType) GetIntervalDay() *Type_IntervalDay { +func (x *ParameterizedType) GetIntervalDay() *ParameterizedType_ParameterizedIntervalDay { if x, ok := x.GetKind().(*ParameterizedType_IntervalDay); ok { return x.IntervalDay } return nil } +func (x *ParameterizedType) GetIntervalCompound() *ParameterizedType_ParameterizedIntervalCompound { + if x, ok := x.GetKind().(*ParameterizedType_IntervalCompound); ok { + return x.IntervalCompound + } + return nil +} + // Deprecated: Marked as deprecated in substrait/parameterized_types.proto. func (x *ParameterizedType) GetTimestampTz() *Type_TimestampTZ { if x, ok := x.GetKind().(*ParameterizedType_TimestampTz); ok { @@ -358,7 +366,11 @@ type ParameterizedType_IntervalYear struct { } type ParameterizedType_IntervalDay struct { - IntervalDay *Type_IntervalDay `protobuf:"bytes,20,opt,name=interval_day,json=intervalDay,proto3,oneof"` + IntervalDay *ParameterizedType_ParameterizedIntervalDay `protobuf:"bytes,20,opt,name=interval_day,json=intervalDay,proto3,oneof"` +} + +type ParameterizedType_IntervalCompound struct { + IntervalCompound *ParameterizedType_ParameterizedIntervalCompound `protobuf:"bytes,36,opt,name=interval_compound,json=intervalCompound,proto3,oneof"` } type ParameterizedType_TimestampTz struct { @@ -453,6 +465,8 @@ func (*ParameterizedType_IntervalYear) isParameterizedType_Kind() {} func (*ParameterizedType_IntervalDay) isParameterizedType_Kind() {} +func (*ParameterizedType_IntervalCompound) isParameterizedType_Kind() {} + func (*ParameterizedType_TimestampTz) isParameterizedType_Kind() {} func (*ParameterizedType_Uuid) isParameterizedType_Kind() {} @@ -906,6 +920,132 @@ func (x *ParameterizedType_ParameterizedDecimal) GetNullability() Type_Nullabili return Type_NULLABILITY_UNSPECIFIED } +type ParameterizedType_ParameterizedIntervalDay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Precision *ParameterizedType_IntegerOption `protobuf:"bytes,1,opt,name=precision,proto3" json:"precision,omitempty"` + VariationPointer uint32 `protobuf:"varint,2,opt,name=variation_pointer,json=variationPointer,proto3" json:"variation_pointer,omitempty"` + Nullability Type_Nullability `protobuf:"varint,3,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` +} + +func (x *ParameterizedType_ParameterizedIntervalDay) Reset() { + *x = ParameterizedType_ParameterizedIntervalDay{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_parameterized_types_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParameterizedType_ParameterizedIntervalDay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParameterizedType_ParameterizedIntervalDay) ProtoMessage() {} + +func (x *ParameterizedType_ParameterizedIntervalDay) ProtoReflect() protoreflect.Message { + mi := &file_substrait_parameterized_types_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParameterizedType_ParameterizedIntervalDay.ProtoReflect.Descriptor instead. +func (*ParameterizedType_ParameterizedIntervalDay) Descriptor() ([]byte, []int) { + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 7} +} + +func (x *ParameterizedType_ParameterizedIntervalDay) GetPrecision() *ParameterizedType_IntegerOption { + if x != nil { + return x.Precision + } + return nil +} + +func (x *ParameterizedType_ParameterizedIntervalDay) GetVariationPointer() uint32 { + if x != nil { + return x.VariationPointer + } + return 0 +} + +func (x *ParameterizedType_ParameterizedIntervalDay) GetNullability() Type_Nullability { + if x != nil { + return x.Nullability + } + return Type_NULLABILITY_UNSPECIFIED +} + +type ParameterizedType_ParameterizedIntervalCompound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Precision *ParameterizedType_IntegerOption `protobuf:"bytes,1,opt,name=precision,proto3" json:"precision,omitempty"` + VariationPointer uint32 `protobuf:"varint,2,opt,name=variation_pointer,json=variationPointer,proto3" json:"variation_pointer,omitempty"` + Nullability Type_Nullability `protobuf:"varint,3,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` +} + +func (x *ParameterizedType_ParameterizedIntervalCompound) Reset() { + *x = ParameterizedType_ParameterizedIntervalCompound{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_parameterized_types_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParameterizedType_ParameterizedIntervalCompound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParameterizedType_ParameterizedIntervalCompound) ProtoMessage() {} + +func (x *ParameterizedType_ParameterizedIntervalCompound) ProtoReflect() protoreflect.Message { + mi := &file_substrait_parameterized_types_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParameterizedType_ParameterizedIntervalCompound.ProtoReflect.Descriptor instead. +func (*ParameterizedType_ParameterizedIntervalCompound) Descriptor() ([]byte, []int) { + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 8} +} + +func (x *ParameterizedType_ParameterizedIntervalCompound) GetPrecision() *ParameterizedType_IntegerOption { + if x != nil { + return x.Precision + } + return nil +} + +func (x *ParameterizedType_ParameterizedIntervalCompound) GetVariationPointer() uint32 { + if x != nil { + return x.VariationPointer + } + return 0 +} + +func (x *ParameterizedType_ParameterizedIntervalCompound) GetNullability() Type_Nullability { + if x != nil { + return x.Nullability + } + return Type_NULLABILITY_UNSPECIFIED +} + type ParameterizedType_ParameterizedPrecisionTimestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -919,7 +1059,7 @@ type ParameterizedType_ParameterizedPrecisionTimestamp struct { func (x *ParameterizedType_ParameterizedPrecisionTimestamp) Reset() { *x = ParameterizedType_ParameterizedPrecisionTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[8] + mi := &file_substrait_parameterized_types_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -932,7 +1072,7 @@ func (x *ParameterizedType_ParameterizedPrecisionTimestamp) String() string { func (*ParameterizedType_ParameterizedPrecisionTimestamp) ProtoMessage() {} func (x *ParameterizedType_ParameterizedPrecisionTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[8] + mi := &file_substrait_parameterized_types_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -945,7 +1085,7 @@ func (x *ParameterizedType_ParameterizedPrecisionTimestamp) ProtoReflect() proto // Deprecated: Use ParameterizedType_ParameterizedPrecisionTimestamp.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedPrecisionTimestamp) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 7} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 9} } func (x *ParameterizedType_ParameterizedPrecisionTimestamp) GetPrecision() *ParameterizedType_IntegerOption { @@ -982,7 +1122,7 @@ type ParameterizedType_ParameterizedPrecisionTimestampTZ struct { func (x *ParameterizedType_ParameterizedPrecisionTimestampTZ) Reset() { *x = ParameterizedType_ParameterizedPrecisionTimestampTZ{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[9] + mi := &file_substrait_parameterized_types_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -995,7 +1135,7 @@ func (x *ParameterizedType_ParameterizedPrecisionTimestampTZ) String() string { func (*ParameterizedType_ParameterizedPrecisionTimestampTZ) ProtoMessage() {} func (x *ParameterizedType_ParameterizedPrecisionTimestampTZ) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[9] + mi := &file_substrait_parameterized_types_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1008,7 +1148,7 @@ func (x *ParameterizedType_ParameterizedPrecisionTimestampTZ) ProtoReflect() pro // Deprecated: Use ParameterizedType_ParameterizedPrecisionTimestampTZ.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedPrecisionTimestampTZ) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 8} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 10} } func (x *ParameterizedType_ParameterizedPrecisionTimestampTZ) GetPrecision() *ParameterizedType_IntegerOption { @@ -1045,7 +1185,7 @@ type ParameterizedType_ParameterizedStruct struct { func (x *ParameterizedType_ParameterizedStruct) Reset() { *x = ParameterizedType_ParameterizedStruct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[10] + mi := &file_substrait_parameterized_types_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1058,7 +1198,7 @@ func (x *ParameterizedType_ParameterizedStruct) String() string { func (*ParameterizedType_ParameterizedStruct) ProtoMessage() {} func (x *ParameterizedType_ParameterizedStruct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[10] + mi := &file_substrait_parameterized_types_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1071,7 +1211,7 @@ func (x *ParameterizedType_ParameterizedStruct) ProtoReflect() protoreflect.Mess // Deprecated: Use ParameterizedType_ParameterizedStruct.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedStruct) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 9} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 11} } func (x *ParameterizedType_ParameterizedStruct) GetTypes() []*ParameterizedType { @@ -1108,7 +1248,7 @@ type ParameterizedType_ParameterizedNamedStruct struct { func (x *ParameterizedType_ParameterizedNamedStruct) Reset() { *x = ParameterizedType_ParameterizedNamedStruct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[11] + mi := &file_substrait_parameterized_types_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1121,7 +1261,7 @@ func (x *ParameterizedType_ParameterizedNamedStruct) String() string { func (*ParameterizedType_ParameterizedNamedStruct) ProtoMessage() {} func (x *ParameterizedType_ParameterizedNamedStruct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[11] + mi := &file_substrait_parameterized_types_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1134,7 +1274,7 @@ func (x *ParameterizedType_ParameterizedNamedStruct) ProtoReflect() protoreflect // Deprecated: Use ParameterizedType_ParameterizedNamedStruct.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedNamedStruct) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 10} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 12} } func (x *ParameterizedType_ParameterizedNamedStruct) GetNames() []string { @@ -1164,7 +1304,7 @@ type ParameterizedType_ParameterizedList struct { func (x *ParameterizedType_ParameterizedList) Reset() { *x = ParameterizedType_ParameterizedList{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[12] + mi := &file_substrait_parameterized_types_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1177,7 +1317,7 @@ func (x *ParameterizedType_ParameterizedList) String() string { func (*ParameterizedType_ParameterizedList) ProtoMessage() {} func (x *ParameterizedType_ParameterizedList) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[12] + mi := &file_substrait_parameterized_types_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1190,7 +1330,7 @@ func (x *ParameterizedType_ParameterizedList) ProtoReflect() protoreflect.Messag // Deprecated: Use ParameterizedType_ParameterizedList.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedList) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 11} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 13} } func (x *ParameterizedType_ParameterizedList) GetType() *ParameterizedType { @@ -1228,7 +1368,7 @@ type ParameterizedType_ParameterizedMap struct { func (x *ParameterizedType_ParameterizedMap) Reset() { *x = ParameterizedType_ParameterizedMap{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[13] + mi := &file_substrait_parameterized_types_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1241,7 +1381,7 @@ func (x *ParameterizedType_ParameterizedMap) String() string { func (*ParameterizedType_ParameterizedMap) ProtoMessage() {} func (x *ParameterizedType_ParameterizedMap) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[13] + mi := &file_substrait_parameterized_types_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1254,7 +1394,7 @@ func (x *ParameterizedType_ParameterizedMap) ProtoReflect() protoreflect.Message // Deprecated: Use ParameterizedType_ParameterizedMap.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedMap) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 12} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 14} } func (x *ParameterizedType_ParameterizedMap) GetKey() *ParameterizedType { @@ -1298,7 +1438,7 @@ type ParameterizedType_ParameterizedUserDefined struct { func (x *ParameterizedType_ParameterizedUserDefined) Reset() { *x = ParameterizedType_ParameterizedUserDefined{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[14] + mi := &file_substrait_parameterized_types_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1311,7 +1451,7 @@ func (x *ParameterizedType_ParameterizedUserDefined) String() string { func (*ParameterizedType_ParameterizedUserDefined) ProtoMessage() {} func (x *ParameterizedType_ParameterizedUserDefined) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[14] + mi := &file_substrait_parameterized_types_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1324,7 +1464,7 @@ func (x *ParameterizedType_ParameterizedUserDefined) ProtoReflect() protoreflect // Deprecated: Use ParameterizedType_ParameterizedUserDefined.ProtoReflect.Descriptor instead. func (*ParameterizedType_ParameterizedUserDefined) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 13} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 15} } func (x *ParameterizedType_ParameterizedUserDefined) GetTypePointer() uint32 { @@ -1363,7 +1503,7 @@ type ParameterizedType_IntegerOption struct { func (x *ParameterizedType_IntegerOption) Reset() { *x = ParameterizedType_IntegerOption{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_parameterized_types_proto_msgTypes[15] + mi := &file_substrait_parameterized_types_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1376,7 +1516,7 @@ func (x *ParameterizedType_IntegerOption) String() string { func (*ParameterizedType_IntegerOption) ProtoMessage() {} func (x *ParameterizedType_IntegerOption) ProtoReflect() protoreflect.Message { - mi := &file_substrait_parameterized_types_proto_msgTypes[15] + mi := &file_substrait_parameterized_types_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1389,7 +1529,7 @@ func (x *ParameterizedType_IntegerOption) ProtoReflect() protoreflect.Message { // Deprecated: Use ParameterizedType_IntegerOption.ProtoReflect.Descriptor instead. func (*ParameterizedType_IntegerOption) Descriptor() ([]byte, []int) { - return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 14} + return file_substrait_parameterized_types_proto_rawDescGZIP(), []int{0, 16} } func (m *ParameterizedType_IntegerOption) GetIntegerType() isParameterizedType_IntegerOption_IntegerType { @@ -1436,7 +1576,7 @@ var file_substrait_parameterized_types_proto_rawDesc = []byte{ 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x1a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x23, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x27, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, @@ -1476,156 +1616,191 @@ var file_substrait_parameterized_types_proto_rawDesc = []byte{ 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x40, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, - 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x2a, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x55, 0x49, 0x44, - 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x4d, - 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x5a, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x5f, 0x64, 0x61, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, + 0x79, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, + 0x12, 0x69, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0c, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, + 0x7a, 0x12, 0x2a, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x55, 0x55, 0x49, 0x44, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, + 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x72, 0x12, 0x4d, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, + 0x61, 0x72, 0x12, 0x5a, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, + 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4d, + 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x72, 0x43, 0x68, - 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x12, 0x5a, 0x0a, - 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x07, 0x64, 0x65, 0x63, - 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x44, 0x65, 0x63, 0x69, 0x6d, + 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x6f, 0x0a, + 0x13, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x48, 0x00, 0x52, - 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x6f, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x76, + 0x0a, 0x16, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, + 0x52, 0x14, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, - 0x64, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x76, 0x0a, 0x16, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x74, 0x7a, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, - 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, - 0x7a, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, + 0x64, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x5a, 0x0a, 0x0c, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x44, 0x0a, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x48, - 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x5a, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x53, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x1a, 0x59, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, + 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, + 0xe6, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x15, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x52, 0x13, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x5c, 0x0a, 0x13, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x52, 0x11, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x64, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x1a, 0x27, 0x0a, 0x0f, 0x4e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0xc8, 0x01, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, + 0x7a, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x12, 0x36, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, + 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc6, 0x01, 0x0a, + 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, + 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xca, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x0d, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x1a, - 0x59, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x10, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x15, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x52, 0x13, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x5c, 0x0a, 0x13, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, - 0x6e, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x52, 0x11, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, - 0x69, 0x76, 0x65, 0x1a, 0x27, 0x0a, 0x0f, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc8, 0x01, 0x0a, - 0x16, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc6, 0x01, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, - 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x1a, 0x8e, 0x02, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x48, 0x0a, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x1a, 0xca, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x42, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, - 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x8e, 0x02, - 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x44, - 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x1a, 0xd0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x69, 0x7a, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, + 0x12, 0x48, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xd5, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, + 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xd7, @@ -1742,7 +1917,7 @@ func file_substrait_parameterized_types_proto_rawDescGZIP() []byte { return file_substrait_parameterized_types_proto_rawDescData } -var file_substrait_parameterized_types_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_substrait_parameterized_types_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_substrait_parameterized_types_proto_goTypes = []interface{}{ (*ParameterizedType)(nil), // 0: substrait.ParameterizedType (*ParameterizedType_TypeParameter)(nil), // 1: substrait.ParameterizedType.TypeParameter @@ -1752,91 +1927,97 @@ var file_substrait_parameterized_types_proto_goTypes = []interface{}{ (*ParameterizedType_ParameterizedVarChar)(nil), // 5: substrait.ParameterizedType.ParameterizedVarChar (*ParameterizedType_ParameterizedFixedBinary)(nil), // 6: substrait.ParameterizedType.ParameterizedFixedBinary (*ParameterizedType_ParameterizedDecimal)(nil), // 7: substrait.ParameterizedType.ParameterizedDecimal - (*ParameterizedType_ParameterizedPrecisionTimestamp)(nil), // 8: substrait.ParameterizedType.ParameterizedPrecisionTimestamp - (*ParameterizedType_ParameterizedPrecisionTimestampTZ)(nil), // 9: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ - (*ParameterizedType_ParameterizedStruct)(nil), // 10: substrait.ParameterizedType.ParameterizedStruct - (*ParameterizedType_ParameterizedNamedStruct)(nil), // 11: substrait.ParameterizedType.ParameterizedNamedStruct - (*ParameterizedType_ParameterizedList)(nil), // 12: substrait.ParameterizedType.ParameterizedList - (*ParameterizedType_ParameterizedMap)(nil), // 13: substrait.ParameterizedType.ParameterizedMap - (*ParameterizedType_ParameterizedUserDefined)(nil), // 14: substrait.ParameterizedType.ParameterizedUserDefined - (*ParameterizedType_IntegerOption)(nil), // 15: substrait.ParameterizedType.IntegerOption - (*Type_Boolean)(nil), // 16: substrait.Type.Boolean - (*Type_I8)(nil), // 17: substrait.Type.I8 - (*Type_I16)(nil), // 18: substrait.Type.I16 - (*Type_I32)(nil), // 19: substrait.Type.I32 - (*Type_I64)(nil), // 20: substrait.Type.I64 - (*Type_FP32)(nil), // 21: substrait.Type.FP32 - (*Type_FP64)(nil), // 22: substrait.Type.FP64 - (*Type_String)(nil), // 23: substrait.Type.String - (*Type_Binary)(nil), // 24: substrait.Type.Binary - (*Type_Timestamp)(nil), // 25: substrait.Type.Timestamp - (*Type_Date)(nil), // 26: substrait.Type.Date - (*Type_Time)(nil), // 27: substrait.Type.Time - (*Type_IntervalYear)(nil), // 28: substrait.Type.IntervalYear - (*Type_IntervalDay)(nil), // 29: substrait.Type.IntervalDay - (*Type_TimestampTZ)(nil), // 30: substrait.Type.TimestampTZ - (*Type_UUID)(nil), // 31: substrait.Type.UUID - (Type_Nullability)(0), // 32: substrait.Type.Nullability + (*ParameterizedType_ParameterizedIntervalDay)(nil), // 8: substrait.ParameterizedType.ParameterizedIntervalDay + (*ParameterizedType_ParameterizedIntervalCompound)(nil), // 9: substrait.ParameterizedType.ParameterizedIntervalCompound + (*ParameterizedType_ParameterizedPrecisionTimestamp)(nil), // 10: substrait.ParameterizedType.ParameterizedPrecisionTimestamp + (*ParameterizedType_ParameterizedPrecisionTimestampTZ)(nil), // 11: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ + (*ParameterizedType_ParameterizedStruct)(nil), // 12: substrait.ParameterizedType.ParameterizedStruct + (*ParameterizedType_ParameterizedNamedStruct)(nil), // 13: substrait.ParameterizedType.ParameterizedNamedStruct + (*ParameterizedType_ParameterizedList)(nil), // 14: substrait.ParameterizedType.ParameterizedList + (*ParameterizedType_ParameterizedMap)(nil), // 15: substrait.ParameterizedType.ParameterizedMap + (*ParameterizedType_ParameterizedUserDefined)(nil), // 16: substrait.ParameterizedType.ParameterizedUserDefined + (*ParameterizedType_IntegerOption)(nil), // 17: substrait.ParameterizedType.IntegerOption + (*Type_Boolean)(nil), // 18: substrait.Type.Boolean + (*Type_I8)(nil), // 19: substrait.Type.I8 + (*Type_I16)(nil), // 20: substrait.Type.I16 + (*Type_I32)(nil), // 21: substrait.Type.I32 + (*Type_I64)(nil), // 22: substrait.Type.I64 + (*Type_FP32)(nil), // 23: substrait.Type.FP32 + (*Type_FP64)(nil), // 24: substrait.Type.FP64 + (*Type_String)(nil), // 25: substrait.Type.String + (*Type_Binary)(nil), // 26: substrait.Type.Binary + (*Type_Timestamp)(nil), // 27: substrait.Type.Timestamp + (*Type_Date)(nil), // 28: substrait.Type.Date + (*Type_Time)(nil), // 29: substrait.Type.Time + (*Type_IntervalYear)(nil), // 30: substrait.Type.IntervalYear + (*Type_TimestampTZ)(nil), // 31: substrait.Type.TimestampTZ + (*Type_UUID)(nil), // 32: substrait.Type.UUID + (Type_Nullability)(0), // 33: substrait.Type.Nullability } var file_substrait_parameterized_types_proto_depIdxs = []int32{ - 16, // 0: substrait.ParameterizedType.bool:type_name -> substrait.Type.Boolean - 17, // 1: substrait.ParameterizedType.i8:type_name -> substrait.Type.I8 - 18, // 2: substrait.ParameterizedType.i16:type_name -> substrait.Type.I16 - 19, // 3: substrait.ParameterizedType.i32:type_name -> substrait.Type.I32 - 20, // 4: substrait.ParameterizedType.i64:type_name -> substrait.Type.I64 - 21, // 5: substrait.ParameterizedType.fp32:type_name -> substrait.Type.FP32 - 22, // 6: substrait.ParameterizedType.fp64:type_name -> substrait.Type.FP64 - 23, // 7: substrait.ParameterizedType.string:type_name -> substrait.Type.String - 24, // 8: substrait.ParameterizedType.binary:type_name -> substrait.Type.Binary - 25, // 9: substrait.ParameterizedType.timestamp:type_name -> substrait.Type.Timestamp - 26, // 10: substrait.ParameterizedType.date:type_name -> substrait.Type.Date - 27, // 11: substrait.ParameterizedType.time:type_name -> substrait.Type.Time - 28, // 12: substrait.ParameterizedType.interval_year:type_name -> substrait.Type.IntervalYear - 29, // 13: substrait.ParameterizedType.interval_day:type_name -> substrait.Type.IntervalDay - 30, // 14: substrait.ParameterizedType.timestamp_tz:type_name -> substrait.Type.TimestampTZ - 31, // 15: substrait.ParameterizedType.uuid:type_name -> substrait.Type.UUID - 4, // 16: substrait.ParameterizedType.fixed_char:type_name -> substrait.ParameterizedType.ParameterizedFixedChar - 5, // 17: substrait.ParameterizedType.varchar:type_name -> substrait.ParameterizedType.ParameterizedVarChar - 6, // 18: substrait.ParameterizedType.fixed_binary:type_name -> substrait.ParameterizedType.ParameterizedFixedBinary - 7, // 19: substrait.ParameterizedType.decimal:type_name -> substrait.ParameterizedType.ParameterizedDecimal - 8, // 20: substrait.ParameterizedType.precision_timestamp:type_name -> substrait.ParameterizedType.ParameterizedPrecisionTimestamp - 9, // 21: substrait.ParameterizedType.precision_timestamp_tz:type_name -> substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ - 10, // 22: substrait.ParameterizedType.struct:type_name -> substrait.ParameterizedType.ParameterizedStruct - 12, // 23: substrait.ParameterizedType.list:type_name -> substrait.ParameterizedType.ParameterizedList - 13, // 24: substrait.ParameterizedType.map:type_name -> substrait.ParameterizedType.ParameterizedMap - 14, // 25: substrait.ParameterizedType.user_defined:type_name -> substrait.ParameterizedType.ParameterizedUserDefined - 1, // 26: substrait.ParameterizedType.type_parameter:type_name -> substrait.ParameterizedType.TypeParameter - 0, // 27: substrait.ParameterizedType.TypeParameter.bounds:type_name -> substrait.ParameterizedType - 3, // 28: substrait.ParameterizedType.IntegerParameter.range_start_inclusive:type_name -> substrait.ParameterizedType.NullableInteger - 3, // 29: substrait.ParameterizedType.IntegerParameter.range_end_exclusive:type_name -> substrait.ParameterizedType.NullableInteger - 15, // 30: substrait.ParameterizedType.ParameterizedFixedChar.length:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 31: substrait.ParameterizedType.ParameterizedFixedChar.nullability:type_name -> substrait.Type.Nullability - 15, // 32: substrait.ParameterizedType.ParameterizedVarChar.length:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 33: substrait.ParameterizedType.ParameterizedVarChar.nullability:type_name -> substrait.Type.Nullability - 15, // 34: substrait.ParameterizedType.ParameterizedFixedBinary.length:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 35: substrait.ParameterizedType.ParameterizedFixedBinary.nullability:type_name -> substrait.Type.Nullability - 15, // 36: substrait.ParameterizedType.ParameterizedDecimal.scale:type_name -> substrait.ParameterizedType.IntegerOption - 15, // 37: substrait.ParameterizedType.ParameterizedDecimal.precision:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 38: substrait.ParameterizedType.ParameterizedDecimal.nullability:type_name -> substrait.Type.Nullability - 15, // 39: substrait.ParameterizedType.ParameterizedPrecisionTimestamp.precision:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 40: substrait.ParameterizedType.ParameterizedPrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability - 15, // 41: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ.precision:type_name -> substrait.ParameterizedType.IntegerOption - 32, // 42: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability - 0, // 43: substrait.ParameterizedType.ParameterizedStruct.types:type_name -> substrait.ParameterizedType - 32, // 44: substrait.ParameterizedType.ParameterizedStruct.nullability:type_name -> substrait.Type.Nullability - 10, // 45: substrait.ParameterizedType.ParameterizedNamedStruct.struct:type_name -> substrait.ParameterizedType.ParameterizedStruct - 0, // 46: substrait.ParameterizedType.ParameterizedList.type:type_name -> substrait.ParameterizedType - 32, // 47: substrait.ParameterizedType.ParameterizedList.nullability:type_name -> substrait.Type.Nullability - 0, // 48: substrait.ParameterizedType.ParameterizedMap.key:type_name -> substrait.ParameterizedType - 0, // 49: substrait.ParameterizedType.ParameterizedMap.value:type_name -> substrait.ParameterizedType - 32, // 50: substrait.ParameterizedType.ParameterizedMap.nullability:type_name -> substrait.Type.Nullability - 32, // 51: substrait.ParameterizedType.ParameterizedUserDefined.nullability:type_name -> substrait.Type.Nullability - 2, // 52: substrait.ParameterizedType.IntegerOption.parameter:type_name -> substrait.ParameterizedType.IntegerParameter - 53, // [53:53] is the sub-list for method output_type - 53, // [53:53] is the sub-list for method input_type - 53, // [53:53] is the sub-list for extension type_name - 53, // [53:53] is the sub-list for extension extendee - 0, // [0:53] is the sub-list for field type_name + 18, // 0: substrait.ParameterizedType.bool:type_name -> substrait.Type.Boolean + 19, // 1: substrait.ParameterizedType.i8:type_name -> substrait.Type.I8 + 20, // 2: substrait.ParameterizedType.i16:type_name -> substrait.Type.I16 + 21, // 3: substrait.ParameterizedType.i32:type_name -> substrait.Type.I32 + 22, // 4: substrait.ParameterizedType.i64:type_name -> substrait.Type.I64 + 23, // 5: substrait.ParameterizedType.fp32:type_name -> substrait.Type.FP32 + 24, // 6: substrait.ParameterizedType.fp64:type_name -> substrait.Type.FP64 + 25, // 7: substrait.ParameterizedType.string:type_name -> substrait.Type.String + 26, // 8: substrait.ParameterizedType.binary:type_name -> substrait.Type.Binary + 27, // 9: substrait.ParameterizedType.timestamp:type_name -> substrait.Type.Timestamp + 28, // 10: substrait.ParameterizedType.date:type_name -> substrait.Type.Date + 29, // 11: substrait.ParameterizedType.time:type_name -> substrait.Type.Time + 30, // 12: substrait.ParameterizedType.interval_year:type_name -> substrait.Type.IntervalYear + 8, // 13: substrait.ParameterizedType.interval_day:type_name -> substrait.ParameterizedType.ParameterizedIntervalDay + 9, // 14: substrait.ParameterizedType.interval_compound:type_name -> substrait.ParameterizedType.ParameterizedIntervalCompound + 31, // 15: substrait.ParameterizedType.timestamp_tz:type_name -> substrait.Type.TimestampTZ + 32, // 16: substrait.ParameterizedType.uuid:type_name -> substrait.Type.UUID + 4, // 17: substrait.ParameterizedType.fixed_char:type_name -> substrait.ParameterizedType.ParameterizedFixedChar + 5, // 18: substrait.ParameterizedType.varchar:type_name -> substrait.ParameterizedType.ParameterizedVarChar + 6, // 19: substrait.ParameterizedType.fixed_binary:type_name -> substrait.ParameterizedType.ParameterizedFixedBinary + 7, // 20: substrait.ParameterizedType.decimal:type_name -> substrait.ParameterizedType.ParameterizedDecimal + 10, // 21: substrait.ParameterizedType.precision_timestamp:type_name -> substrait.ParameterizedType.ParameterizedPrecisionTimestamp + 11, // 22: substrait.ParameterizedType.precision_timestamp_tz:type_name -> substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ + 12, // 23: substrait.ParameterizedType.struct:type_name -> substrait.ParameterizedType.ParameterizedStruct + 14, // 24: substrait.ParameterizedType.list:type_name -> substrait.ParameterizedType.ParameterizedList + 15, // 25: substrait.ParameterizedType.map:type_name -> substrait.ParameterizedType.ParameterizedMap + 16, // 26: substrait.ParameterizedType.user_defined:type_name -> substrait.ParameterizedType.ParameterizedUserDefined + 1, // 27: substrait.ParameterizedType.type_parameter:type_name -> substrait.ParameterizedType.TypeParameter + 0, // 28: substrait.ParameterizedType.TypeParameter.bounds:type_name -> substrait.ParameterizedType + 3, // 29: substrait.ParameterizedType.IntegerParameter.range_start_inclusive:type_name -> substrait.ParameterizedType.NullableInteger + 3, // 30: substrait.ParameterizedType.IntegerParameter.range_end_exclusive:type_name -> substrait.ParameterizedType.NullableInteger + 17, // 31: substrait.ParameterizedType.ParameterizedFixedChar.length:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 32: substrait.ParameterizedType.ParameterizedFixedChar.nullability:type_name -> substrait.Type.Nullability + 17, // 33: substrait.ParameterizedType.ParameterizedVarChar.length:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 34: substrait.ParameterizedType.ParameterizedVarChar.nullability:type_name -> substrait.Type.Nullability + 17, // 35: substrait.ParameterizedType.ParameterizedFixedBinary.length:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 36: substrait.ParameterizedType.ParameterizedFixedBinary.nullability:type_name -> substrait.Type.Nullability + 17, // 37: substrait.ParameterizedType.ParameterizedDecimal.scale:type_name -> substrait.ParameterizedType.IntegerOption + 17, // 38: substrait.ParameterizedType.ParameterizedDecimal.precision:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 39: substrait.ParameterizedType.ParameterizedDecimal.nullability:type_name -> substrait.Type.Nullability + 17, // 40: substrait.ParameterizedType.ParameterizedIntervalDay.precision:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 41: substrait.ParameterizedType.ParameterizedIntervalDay.nullability:type_name -> substrait.Type.Nullability + 17, // 42: substrait.ParameterizedType.ParameterizedIntervalCompound.precision:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 43: substrait.ParameterizedType.ParameterizedIntervalCompound.nullability:type_name -> substrait.Type.Nullability + 17, // 44: substrait.ParameterizedType.ParameterizedPrecisionTimestamp.precision:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 45: substrait.ParameterizedType.ParameterizedPrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability + 17, // 46: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ.precision:type_name -> substrait.ParameterizedType.IntegerOption + 33, // 47: substrait.ParameterizedType.ParameterizedPrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability + 0, // 48: substrait.ParameterizedType.ParameterizedStruct.types:type_name -> substrait.ParameterizedType + 33, // 49: substrait.ParameterizedType.ParameterizedStruct.nullability:type_name -> substrait.Type.Nullability + 12, // 50: substrait.ParameterizedType.ParameterizedNamedStruct.struct:type_name -> substrait.ParameterizedType.ParameterizedStruct + 0, // 51: substrait.ParameterizedType.ParameterizedList.type:type_name -> substrait.ParameterizedType + 33, // 52: substrait.ParameterizedType.ParameterizedList.nullability:type_name -> substrait.Type.Nullability + 0, // 53: substrait.ParameterizedType.ParameterizedMap.key:type_name -> substrait.ParameterizedType + 0, // 54: substrait.ParameterizedType.ParameterizedMap.value:type_name -> substrait.ParameterizedType + 33, // 55: substrait.ParameterizedType.ParameterizedMap.nullability:type_name -> substrait.Type.Nullability + 33, // 56: substrait.ParameterizedType.ParameterizedUserDefined.nullability:type_name -> substrait.Type.Nullability + 2, // 57: substrait.ParameterizedType.IntegerOption.parameter:type_name -> substrait.ParameterizedType.IntegerParameter + 58, // [58:58] is the sub-list for method output_type + 58, // [58:58] is the sub-list for method input_type + 58, // [58:58] is the sub-list for extension type_name + 58, // [58:58] is the sub-list for extension extendee + 0, // [0:58] is the sub-list for field type_name } func init() { file_substrait_parameterized_types_proto_init() } @@ -1943,7 +2124,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedPrecisionTimestamp); i { + switch v := v.(*ParameterizedType_ParameterizedIntervalDay); i { case 0: return &v.state case 1: @@ -1955,7 +2136,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedPrecisionTimestampTZ); i { + switch v := v.(*ParameterizedType_ParameterizedIntervalCompound); i { case 0: return &v.state case 1: @@ -1967,7 +2148,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedStruct); i { + switch v := v.(*ParameterizedType_ParameterizedPrecisionTimestamp); i { case 0: return &v.state case 1: @@ -1979,7 +2160,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedNamedStruct); i { + switch v := v.(*ParameterizedType_ParameterizedPrecisionTimestampTZ); i { case 0: return &v.state case 1: @@ -1991,7 +2172,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedList); i { + switch v := v.(*ParameterizedType_ParameterizedStruct); i { case 0: return &v.state case 1: @@ -2003,7 +2184,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedMap); i { + switch v := v.(*ParameterizedType_ParameterizedNamedStruct); i { case 0: return &v.state case 1: @@ -2015,7 +2196,7 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParameterizedType_ParameterizedUserDefined); i { + switch v := v.(*ParameterizedType_ParameterizedList); i { case 0: return &v.state case 1: @@ -2027,6 +2208,30 @@ func file_substrait_parameterized_types_proto_init() { } } file_substrait_parameterized_types_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParameterizedType_ParameterizedMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_parameterized_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParameterizedType_ParameterizedUserDefined); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_parameterized_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParameterizedType_IntegerOption); i { case 0: return &v.state @@ -2054,6 +2259,7 @@ func file_substrait_parameterized_types_proto_init() { (*ParameterizedType_Time)(nil), (*ParameterizedType_IntervalYear)(nil), (*ParameterizedType_IntervalDay)(nil), + (*ParameterizedType_IntervalCompound)(nil), (*ParameterizedType_TimestampTz)(nil), (*ParameterizedType_Uuid)(nil), (*ParameterizedType_FixedChar)(nil), @@ -2069,7 +2275,7 @@ func file_substrait_parameterized_types_proto_init() { (*ParameterizedType_UserDefinedPointer)(nil), (*ParameterizedType_TypeParameter_)(nil), } - file_substrait_parameterized_types_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_substrait_parameterized_types_proto_msgTypes[17].OneofWrappers = []interface{}{ (*ParameterizedType_IntegerOption_Literal)(nil), (*ParameterizedType_IntegerOption_Parameter)(nil), } @@ -2079,7 +2285,7 @@ func file_substrait_parameterized_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_substrait_parameterized_types_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/type.pb.go b/proto/type.pb.go index 01e2f0e..584da6f 100644 --- a/proto/type.pb.go +++ b/proto/type.pb.go @@ -93,6 +93,7 @@ type Type struct { // *Type_Time_ // *Type_IntervalYear_ // *Type_IntervalDay_ + // *Type_IntervalCompound_ // *Type_TimestampTz // *Type_Uuid // *Type_FixedChar_ @@ -247,6 +248,13 @@ func (x *Type) GetIntervalDay() *Type_IntervalDay { return nil } +func (x *Type) GetIntervalCompound() *Type_IntervalCompound { + if x, ok := x.GetKind().(*Type_IntervalCompound_); ok { + return x.IntervalCompound + } + return nil +} + // Deprecated: Marked as deprecated in substrait/type.proto. func (x *Type) GetTimestampTz() *Type_TimestampTZ { if x, ok := x.GetKind().(*Type_TimestampTz); ok { @@ -403,6 +411,10 @@ type Type_IntervalDay_ struct { IntervalDay *Type_IntervalDay `protobuf:"bytes,20,opt,name=interval_day,json=intervalDay,proto3,oneof"` } +type Type_IntervalCompound_ struct { + IntervalCompound *Type_IntervalCompound `protobuf:"bytes,35,opt,name=interval_compound,json=intervalCompound,proto3,oneof"` +} + type Type_TimestampTz struct { // Deprecated in favor of `PrecisionTimestampTZ precision_timestamp_tz` // @@ -492,6 +504,8 @@ func (*Type_IntervalYear_) isType_Kind() {} func (*Type_IntervalDay_) isType_Kind() {} +func (*Type_IntervalCompound_) isType_Kind() {} + func (*Type_TimestampTz) isType_Kind() {} func (*Type_Uuid) isType_Kind() {} @@ -1308,6 +1322,7 @@ func (x *Type_TimestampTZ) GetNullability() Type_Nullability { return Type_NULLABILITY_UNSPECIFIED } +// An interval consisting of years and months type Type_IntervalYear struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1363,6 +1378,7 @@ func (x *Type_IntervalYear) GetNullability() Type_Nullability { return Type_NULLABILITY_UNSPECIFIED } +// An interval consisting of days, seconds, and microseconds type Type_IntervalDay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1370,6 +1386,9 @@ type Type_IntervalDay struct { TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` Nullability Type_Nullability `protobuf:"varint,2,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` + // Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc. + // if unset, treat as 6. + Precision *int32 `protobuf:"varint,3,opt,name=precision,proto3,oneof" json:"precision,omitempty"` } func (x *Type_IntervalDay) Reset() { @@ -1418,6 +1437,78 @@ func (x *Type_IntervalDay) GetNullability() Type_Nullability { return Type_NULLABILITY_UNSPECIFIED } +func (x *Type_IntervalDay) GetPrecision() int32 { + if x != nil && x.Precision != nil { + return *x.Precision + } + return 0 +} + +// An interval consisting of the components of both IntervalMonth and IntervalDay +type Type_IntervalCompound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` + Nullability Type_Nullability `protobuf:"varint,2,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` + // Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc. + Precision int32 `protobuf:"varint,3,opt,name=precision,proto3" json:"precision,omitempty"` +} + +func (x *Type_IntervalCompound) Reset() { + *x = Type_IntervalCompound{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_type_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Type_IntervalCompound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Type_IntervalCompound) ProtoMessage() {} + +func (x *Type_IntervalCompound) ProtoReflect() protoreflect.Message { + mi := &file_substrait_type_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Type_IntervalCompound.ProtoReflect.Descriptor instead. +func (*Type_IntervalCompound) Descriptor() ([]byte, []int) { + return file_substrait_type_proto_rawDescGZIP(), []int{0, 15} +} + +func (x *Type_IntervalCompound) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +func (x *Type_IntervalCompound) GetNullability() Type_Nullability { + if x != nil { + return x.Nullability + } + return Type_NULLABILITY_UNSPECIFIED +} + +func (x *Type_IntervalCompound) GetPrecision() int32 { + if x != nil { + return x.Precision + } + return 0 +} + type Type_UUID struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1430,7 +1521,7 @@ type Type_UUID struct { func (x *Type_UUID) Reset() { *x = Type_UUID{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[17] + mi := &file_substrait_type_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1443,7 +1534,7 @@ func (x *Type_UUID) String() string { func (*Type_UUID) ProtoMessage() {} func (x *Type_UUID) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[17] + mi := &file_substrait_type_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1456,7 +1547,7 @@ func (x *Type_UUID) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_UUID.ProtoReflect.Descriptor instead. func (*Type_UUID) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 15} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 16} } func (x *Type_UUID) GetTypeVariationReference() uint32 { @@ -1487,7 +1578,7 @@ type Type_FixedChar struct { func (x *Type_FixedChar) Reset() { *x = Type_FixedChar{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[18] + mi := &file_substrait_type_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1591,7 @@ func (x *Type_FixedChar) String() string { func (*Type_FixedChar) ProtoMessage() {} func (x *Type_FixedChar) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[18] + mi := &file_substrait_type_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1604,7 @@ func (x *Type_FixedChar) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_FixedChar.ProtoReflect.Descriptor instead. func (*Type_FixedChar) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 16} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 17} } func (x *Type_FixedChar) GetLength() int32 { @@ -1550,7 +1641,7 @@ type Type_VarChar struct { func (x *Type_VarChar) Reset() { *x = Type_VarChar{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[19] + mi := &file_substrait_type_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1563,7 +1654,7 @@ func (x *Type_VarChar) String() string { func (*Type_VarChar) ProtoMessage() {} func (x *Type_VarChar) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[19] + mi := &file_substrait_type_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1576,7 +1667,7 @@ func (x *Type_VarChar) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_VarChar.ProtoReflect.Descriptor instead. func (*Type_VarChar) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 17} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 18} } func (x *Type_VarChar) GetLength() int32 { @@ -1613,7 +1704,7 @@ type Type_FixedBinary struct { func (x *Type_FixedBinary) Reset() { *x = Type_FixedBinary{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[20] + mi := &file_substrait_type_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1626,7 +1717,7 @@ func (x *Type_FixedBinary) String() string { func (*Type_FixedBinary) ProtoMessage() {} func (x *Type_FixedBinary) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[20] + mi := &file_substrait_type_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1639,7 +1730,7 @@ func (x *Type_FixedBinary) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_FixedBinary.ProtoReflect.Descriptor instead. func (*Type_FixedBinary) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 18} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 19} } func (x *Type_FixedBinary) GetLength() int32 { @@ -1677,7 +1768,7 @@ type Type_Decimal struct { func (x *Type_Decimal) Reset() { *x = Type_Decimal{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[21] + mi := &file_substrait_type_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1690,7 +1781,7 @@ func (x *Type_Decimal) String() string { func (*Type_Decimal) ProtoMessage() {} func (x *Type_Decimal) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[21] + mi := &file_substrait_type_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1703,7 +1794,7 @@ func (x *Type_Decimal) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_Decimal.ProtoReflect.Descriptor instead. func (*Type_Decimal) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 19} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 20} } func (x *Type_Decimal) GetScale() int32 { @@ -1748,7 +1839,7 @@ type Type_PrecisionTimestamp struct { func (x *Type_PrecisionTimestamp) Reset() { *x = Type_PrecisionTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[22] + mi := &file_substrait_type_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1761,7 +1852,7 @@ func (x *Type_PrecisionTimestamp) String() string { func (*Type_PrecisionTimestamp) ProtoMessage() {} func (x *Type_PrecisionTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[22] + mi := &file_substrait_type_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1774,7 +1865,7 @@ func (x *Type_PrecisionTimestamp) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_PrecisionTimestamp.ProtoReflect.Descriptor instead. func (*Type_PrecisionTimestamp) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 20} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 21} } func (x *Type_PrecisionTimestamp) GetPrecision() int32 { @@ -1812,7 +1903,7 @@ type Type_PrecisionTimestampTZ struct { func (x *Type_PrecisionTimestampTZ) Reset() { *x = Type_PrecisionTimestampTZ{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[23] + mi := &file_substrait_type_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1825,7 +1916,7 @@ func (x *Type_PrecisionTimestampTZ) String() string { func (*Type_PrecisionTimestampTZ) ProtoMessage() {} func (x *Type_PrecisionTimestampTZ) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[23] + mi := &file_substrait_type_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1838,7 +1929,7 @@ func (x *Type_PrecisionTimestampTZ) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_PrecisionTimestampTZ.ProtoReflect.Descriptor instead. func (*Type_PrecisionTimestampTZ) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 21} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 22} } func (x *Type_PrecisionTimestampTZ) GetPrecision() int32 { @@ -1875,7 +1966,7 @@ type Type_Struct struct { func (x *Type_Struct) Reset() { *x = Type_Struct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[24] + mi := &file_substrait_type_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +1979,7 @@ func (x *Type_Struct) String() string { func (*Type_Struct) ProtoMessage() {} func (x *Type_Struct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[24] + mi := &file_substrait_type_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1901,7 +1992,7 @@ func (x *Type_Struct) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_Struct.ProtoReflect.Descriptor instead. func (*Type_Struct) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 22} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 23} } func (x *Type_Struct) GetTypes() []*Type { @@ -1938,7 +2029,7 @@ type Type_List struct { func (x *Type_List) Reset() { *x = Type_List{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[25] + mi := &file_substrait_type_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1951,7 +2042,7 @@ func (x *Type_List) String() string { func (*Type_List) ProtoMessage() {} func (x *Type_List) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[25] + mi := &file_substrait_type_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1964,7 +2055,7 @@ func (x *Type_List) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_List.ProtoReflect.Descriptor instead. func (*Type_List) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 23} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 24} } func (x *Type_List) GetType() *Type { @@ -2002,7 +2093,7 @@ type Type_Map struct { func (x *Type_Map) Reset() { *x = Type_Map{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[26] + mi := &file_substrait_type_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2015,7 +2106,7 @@ func (x *Type_Map) String() string { func (*Type_Map) ProtoMessage() {} func (x *Type_Map) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[26] + mi := &file_substrait_type_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2028,7 +2119,7 @@ func (x *Type_Map) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_Map.ProtoReflect.Descriptor instead. func (*Type_Map) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 24} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 25} } func (x *Type_Map) GetKey() *Type { @@ -2073,7 +2164,7 @@ type Type_UserDefined struct { func (x *Type_UserDefined) Reset() { *x = Type_UserDefined{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[27] + mi := &file_substrait_type_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2086,7 +2177,7 @@ func (x *Type_UserDefined) String() string { func (*Type_UserDefined) ProtoMessage() {} func (x *Type_UserDefined) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[27] + mi := &file_substrait_type_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2099,7 +2190,7 @@ func (x *Type_UserDefined) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_UserDefined.ProtoReflect.Descriptor instead. func (*Type_UserDefined) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 25} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 26} } func (x *Type_UserDefined) GetTypeReference() uint32 { @@ -2149,7 +2240,7 @@ type Type_Parameter struct { func (x *Type_Parameter) Reset() { *x = Type_Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_proto_msgTypes[28] + mi := &file_substrait_type_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2162,7 +2253,7 @@ func (x *Type_Parameter) String() string { func (*Type_Parameter) ProtoMessage() {} func (x *Type_Parameter) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_proto_msgTypes[28] + mi := &file_substrait_type_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2175,7 +2266,7 @@ func (x *Type_Parameter) ProtoReflect() protoreflect.Message { // Deprecated: Use Type_Parameter.ProtoReflect.Descriptor instead. func (*Type_Parameter) Descriptor() ([]byte, []int) { - return file_substrait_type_proto_rawDescGZIP(), []int{0, 26} + return file_substrait_type_proto_rawDescGZIP(), []int{0, 27} } func (m *Type_Parameter) GetParameter() isType_Parameter_Parameter { @@ -2277,8 +2368,8 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x0a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcf, - 0x2c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, + 0x2e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x02, 0x69, 0x38, 0x18, 0x02, 0x20, 0x01, @@ -2321,57 +2412,70 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, - 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, - 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x2a, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, - 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x55, 0x49, 0x44, 0x48, 0x00, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, - 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, - 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, - 0x63, 0x68, 0x61, 0x72, 0x12, 0x40, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, - 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, - 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, - 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x13, 0x70, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, - 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x5c, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x22, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, - 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, 0x70, - 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x1b, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, - 0x18, 0x01, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x82, - 0x01, 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x79, 0x12, 0x4f, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, + 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, + 0x74, 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x2a, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x55, 0x49, 0x44, 0x48, 0x00, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, + 0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, + 0x72, 0x63, 0x68, 0x61, 0x72, 0x12, 0x40, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, + 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x13, + 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, + 0x12, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x5c, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x22, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, + 0x7a, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x27, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, + 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x1b, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, + 0x82, 0x01, 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x7d, 0x0a, 0x02, 0x49, 0x38, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, @@ -2379,39 +2483,7 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x1a, 0x7d, 0x0a, 0x02, 0x49, 0x38, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, - 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x31, 0x36, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, - 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x33, 0x32, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, - 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x36, 0x34, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, - 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x46, 0x50, 0x33, 0x32, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x69, 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x31, 0x36, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, @@ -2419,32 +2491,7 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x46, 0x50, 0x36, 0x34, 0x12, 0x38, 0x0a, 0x18, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, - 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x81, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x81, 0x01, 0x0a, 0x06, 0x42, 0x69, 0x6e, - 0x61, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, - 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x84, 0x01, 0x0a, - 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x69, 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x33, 0x32, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, @@ -2452,7 +2499,15 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x69, 0x74, 0x79, 0x1a, 0x7e, 0x0a, 0x03, 0x49, 0x36, 0x34, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, + 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x46, 0x50, 0x33, 0x32, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, @@ -2460,7 +2515,7 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, + 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x46, 0x50, 0x36, 0x34, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, @@ -2468,33 +2523,66 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x86, 0x01, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x87, - 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, - 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x86, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x81, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x81, 0x01, 0x0a, 0x06, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, + 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x84, 0x01, + 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x18, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, + 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x7f, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, + 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x86, 0x01, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, + 0x87, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xb7, 0x01, 0x0a, 0x0b, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, @@ -2502,27 +2590,29 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0x9c, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, + 0x74, 0x79, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x1a, 0xa9, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x1a, 0x9a, 0x01, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x9e, - 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x16, + 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x7f, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x1a, 0x9c, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, @@ -2532,32 +2622,73 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, - 0xb6, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xab, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x9a, 0x01, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x9e, 0x01, 0x0a, + 0x0b, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, + 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xb6, 0x01, + 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xad, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xab, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xad, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xa8, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, + 0x25, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, + 0xa4, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, @@ -2565,10 +2696,23 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xa8, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc8, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x21, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x1a, 0xf1, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, @@ -2576,77 +2720,43 @@ var file_substrait_type_proto_rawDesc = []byte{ 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x1a, 0xa4, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc8, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, - 0x12, 0x21, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, - 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x1a, 0xf1, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, - 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0xde, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x75, 0x6c, 0x6c, 0x12, 0x2e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, - 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x65, - 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, - 0x6d, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0x5e, 0x0a, 0x0b, 0x4e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x55, 0x4c, 0x4c, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x49, 0x4c, - 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, - 0x0a, 0x14, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, - 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x22, 0x53, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x57, 0x0a, 0x12, 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0xde, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, + 0x6c, 0x12, 0x2e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x1a, 0x0a, + 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, + 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x65, 0x6e, 0x75, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, + 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0x5e, 0x0a, 0x0b, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, + 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x53, + 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x42, 0x57, 0x0a, 0x12, 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x67, + 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2662,7 +2772,7 @@ func file_substrait_type_proto_rawDescGZIP() []byte { } var file_substrait_type_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_substrait_type_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_substrait_type_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_substrait_type_proto_goTypes = []interface{}{ (Type_Nullability)(0), // 0: substrait.Type.Nullability (*Type)(nil), // 1: substrait.Type @@ -2682,19 +2792,20 @@ var file_substrait_type_proto_goTypes = []interface{}{ (*Type_TimestampTZ)(nil), // 15: substrait.Type.TimestampTZ (*Type_IntervalYear)(nil), // 16: substrait.Type.IntervalYear (*Type_IntervalDay)(nil), // 17: substrait.Type.IntervalDay - (*Type_UUID)(nil), // 18: substrait.Type.UUID - (*Type_FixedChar)(nil), // 19: substrait.Type.FixedChar - (*Type_VarChar)(nil), // 20: substrait.Type.VarChar - (*Type_FixedBinary)(nil), // 21: substrait.Type.FixedBinary - (*Type_Decimal)(nil), // 22: substrait.Type.Decimal - (*Type_PrecisionTimestamp)(nil), // 23: substrait.Type.PrecisionTimestamp - (*Type_PrecisionTimestampTZ)(nil), // 24: substrait.Type.PrecisionTimestampTZ - (*Type_Struct)(nil), // 25: substrait.Type.Struct - (*Type_List)(nil), // 26: substrait.Type.List - (*Type_Map)(nil), // 27: substrait.Type.Map - (*Type_UserDefined)(nil), // 28: substrait.Type.UserDefined - (*Type_Parameter)(nil), // 29: substrait.Type.Parameter - (*emptypb.Empty)(nil), // 30: google.protobuf.Empty + (*Type_IntervalCompound)(nil), // 18: substrait.Type.IntervalCompound + (*Type_UUID)(nil), // 19: substrait.Type.UUID + (*Type_FixedChar)(nil), // 20: substrait.Type.FixedChar + (*Type_VarChar)(nil), // 21: substrait.Type.VarChar + (*Type_FixedBinary)(nil), // 22: substrait.Type.FixedBinary + (*Type_Decimal)(nil), // 23: substrait.Type.Decimal + (*Type_PrecisionTimestamp)(nil), // 24: substrait.Type.PrecisionTimestamp + (*Type_PrecisionTimestampTZ)(nil), // 25: substrait.Type.PrecisionTimestampTZ + (*Type_Struct)(nil), // 26: substrait.Type.Struct + (*Type_List)(nil), // 27: substrait.Type.List + (*Type_Map)(nil), // 28: substrait.Type.Map + (*Type_UserDefined)(nil), // 29: substrait.Type.UserDefined + (*Type_Parameter)(nil), // 30: substrait.Type.Parameter + (*emptypb.Empty)(nil), // 31: google.protobuf.Empty } var file_substrait_type_proto_depIdxs = []int32{ 3, // 0: substrait.Type.bool:type_name -> substrait.Type.Boolean @@ -2711,57 +2822,59 @@ var file_substrait_type_proto_depIdxs = []int32{ 14, // 11: substrait.Type.time:type_name -> substrait.Type.Time 16, // 12: substrait.Type.interval_year:type_name -> substrait.Type.IntervalYear 17, // 13: substrait.Type.interval_day:type_name -> substrait.Type.IntervalDay - 15, // 14: substrait.Type.timestamp_tz:type_name -> substrait.Type.TimestampTZ - 18, // 15: substrait.Type.uuid:type_name -> substrait.Type.UUID - 19, // 16: substrait.Type.fixed_char:type_name -> substrait.Type.FixedChar - 20, // 17: substrait.Type.varchar:type_name -> substrait.Type.VarChar - 21, // 18: substrait.Type.fixed_binary:type_name -> substrait.Type.FixedBinary - 22, // 19: substrait.Type.decimal:type_name -> substrait.Type.Decimal - 23, // 20: substrait.Type.precision_timestamp:type_name -> substrait.Type.PrecisionTimestamp - 24, // 21: substrait.Type.precision_timestamp_tz:type_name -> substrait.Type.PrecisionTimestampTZ - 25, // 22: substrait.Type.struct:type_name -> substrait.Type.Struct - 26, // 23: substrait.Type.list:type_name -> substrait.Type.List - 27, // 24: substrait.Type.map:type_name -> substrait.Type.Map - 28, // 25: substrait.Type.user_defined:type_name -> substrait.Type.UserDefined - 25, // 26: substrait.NamedStruct.struct:type_name -> substrait.Type.Struct - 0, // 27: substrait.Type.Boolean.nullability:type_name -> substrait.Type.Nullability - 0, // 28: substrait.Type.I8.nullability:type_name -> substrait.Type.Nullability - 0, // 29: substrait.Type.I16.nullability:type_name -> substrait.Type.Nullability - 0, // 30: substrait.Type.I32.nullability:type_name -> substrait.Type.Nullability - 0, // 31: substrait.Type.I64.nullability:type_name -> substrait.Type.Nullability - 0, // 32: substrait.Type.FP32.nullability:type_name -> substrait.Type.Nullability - 0, // 33: substrait.Type.FP64.nullability:type_name -> substrait.Type.Nullability - 0, // 34: substrait.Type.String.nullability:type_name -> substrait.Type.Nullability - 0, // 35: substrait.Type.Binary.nullability:type_name -> substrait.Type.Nullability - 0, // 36: substrait.Type.Timestamp.nullability:type_name -> substrait.Type.Nullability - 0, // 37: substrait.Type.Date.nullability:type_name -> substrait.Type.Nullability - 0, // 38: substrait.Type.Time.nullability:type_name -> substrait.Type.Nullability - 0, // 39: substrait.Type.TimestampTZ.nullability:type_name -> substrait.Type.Nullability - 0, // 40: substrait.Type.IntervalYear.nullability:type_name -> substrait.Type.Nullability - 0, // 41: substrait.Type.IntervalDay.nullability:type_name -> substrait.Type.Nullability - 0, // 42: substrait.Type.UUID.nullability:type_name -> substrait.Type.Nullability - 0, // 43: substrait.Type.FixedChar.nullability:type_name -> substrait.Type.Nullability - 0, // 44: substrait.Type.VarChar.nullability:type_name -> substrait.Type.Nullability - 0, // 45: substrait.Type.FixedBinary.nullability:type_name -> substrait.Type.Nullability - 0, // 46: substrait.Type.Decimal.nullability:type_name -> substrait.Type.Nullability - 0, // 47: substrait.Type.PrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability - 0, // 48: substrait.Type.PrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability - 1, // 49: substrait.Type.Struct.types:type_name -> substrait.Type - 0, // 50: substrait.Type.Struct.nullability:type_name -> substrait.Type.Nullability - 1, // 51: substrait.Type.List.type:type_name -> substrait.Type - 0, // 52: substrait.Type.List.nullability:type_name -> substrait.Type.Nullability - 1, // 53: substrait.Type.Map.key:type_name -> substrait.Type - 1, // 54: substrait.Type.Map.value:type_name -> substrait.Type - 0, // 55: substrait.Type.Map.nullability:type_name -> substrait.Type.Nullability - 0, // 56: substrait.Type.UserDefined.nullability:type_name -> substrait.Type.Nullability - 29, // 57: substrait.Type.UserDefined.type_parameters:type_name -> substrait.Type.Parameter - 30, // 58: substrait.Type.Parameter.null:type_name -> google.protobuf.Empty - 1, // 59: substrait.Type.Parameter.data_type:type_name -> substrait.Type - 60, // [60:60] is the sub-list for method output_type - 60, // [60:60] is the sub-list for method input_type - 60, // [60:60] is the sub-list for extension type_name - 60, // [60:60] is the sub-list for extension extendee - 0, // [0:60] is the sub-list for field type_name + 18, // 14: substrait.Type.interval_compound:type_name -> substrait.Type.IntervalCompound + 15, // 15: substrait.Type.timestamp_tz:type_name -> substrait.Type.TimestampTZ + 19, // 16: substrait.Type.uuid:type_name -> substrait.Type.UUID + 20, // 17: substrait.Type.fixed_char:type_name -> substrait.Type.FixedChar + 21, // 18: substrait.Type.varchar:type_name -> substrait.Type.VarChar + 22, // 19: substrait.Type.fixed_binary:type_name -> substrait.Type.FixedBinary + 23, // 20: substrait.Type.decimal:type_name -> substrait.Type.Decimal + 24, // 21: substrait.Type.precision_timestamp:type_name -> substrait.Type.PrecisionTimestamp + 25, // 22: substrait.Type.precision_timestamp_tz:type_name -> substrait.Type.PrecisionTimestampTZ + 26, // 23: substrait.Type.struct:type_name -> substrait.Type.Struct + 27, // 24: substrait.Type.list:type_name -> substrait.Type.List + 28, // 25: substrait.Type.map:type_name -> substrait.Type.Map + 29, // 26: substrait.Type.user_defined:type_name -> substrait.Type.UserDefined + 26, // 27: substrait.NamedStruct.struct:type_name -> substrait.Type.Struct + 0, // 28: substrait.Type.Boolean.nullability:type_name -> substrait.Type.Nullability + 0, // 29: substrait.Type.I8.nullability:type_name -> substrait.Type.Nullability + 0, // 30: substrait.Type.I16.nullability:type_name -> substrait.Type.Nullability + 0, // 31: substrait.Type.I32.nullability:type_name -> substrait.Type.Nullability + 0, // 32: substrait.Type.I64.nullability:type_name -> substrait.Type.Nullability + 0, // 33: substrait.Type.FP32.nullability:type_name -> substrait.Type.Nullability + 0, // 34: substrait.Type.FP64.nullability:type_name -> substrait.Type.Nullability + 0, // 35: substrait.Type.String.nullability:type_name -> substrait.Type.Nullability + 0, // 36: substrait.Type.Binary.nullability:type_name -> substrait.Type.Nullability + 0, // 37: substrait.Type.Timestamp.nullability:type_name -> substrait.Type.Nullability + 0, // 38: substrait.Type.Date.nullability:type_name -> substrait.Type.Nullability + 0, // 39: substrait.Type.Time.nullability:type_name -> substrait.Type.Nullability + 0, // 40: substrait.Type.TimestampTZ.nullability:type_name -> substrait.Type.Nullability + 0, // 41: substrait.Type.IntervalYear.nullability:type_name -> substrait.Type.Nullability + 0, // 42: substrait.Type.IntervalDay.nullability:type_name -> substrait.Type.Nullability + 0, // 43: substrait.Type.IntervalCompound.nullability:type_name -> substrait.Type.Nullability + 0, // 44: substrait.Type.UUID.nullability:type_name -> substrait.Type.Nullability + 0, // 45: substrait.Type.FixedChar.nullability:type_name -> substrait.Type.Nullability + 0, // 46: substrait.Type.VarChar.nullability:type_name -> substrait.Type.Nullability + 0, // 47: substrait.Type.FixedBinary.nullability:type_name -> substrait.Type.Nullability + 0, // 48: substrait.Type.Decimal.nullability:type_name -> substrait.Type.Nullability + 0, // 49: substrait.Type.PrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability + 0, // 50: substrait.Type.PrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability + 1, // 51: substrait.Type.Struct.types:type_name -> substrait.Type + 0, // 52: substrait.Type.Struct.nullability:type_name -> substrait.Type.Nullability + 1, // 53: substrait.Type.List.type:type_name -> substrait.Type + 0, // 54: substrait.Type.List.nullability:type_name -> substrait.Type.Nullability + 1, // 55: substrait.Type.Map.key:type_name -> substrait.Type + 1, // 56: substrait.Type.Map.value:type_name -> substrait.Type + 0, // 57: substrait.Type.Map.nullability:type_name -> substrait.Type.Nullability + 0, // 58: substrait.Type.UserDefined.nullability:type_name -> substrait.Type.Nullability + 30, // 59: substrait.Type.UserDefined.type_parameters:type_name -> substrait.Type.Parameter + 31, // 60: substrait.Type.Parameter.null:type_name -> google.protobuf.Empty + 1, // 61: substrait.Type.Parameter.data_type:type_name -> substrait.Type + 62, // [62:62] is the sub-list for method output_type + 62, // [62:62] is the sub-list for method input_type + 62, // [62:62] is the sub-list for extension type_name + 62, // [62:62] is the sub-list for extension extendee + 0, // [0:62] is the sub-list for field type_name } func init() { file_substrait_type_proto_init() } @@ -2975,7 +3088,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_UUID); i { + switch v := v.(*Type_IntervalCompound); i { case 0: return &v.state case 1: @@ -2987,7 +3100,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_FixedChar); i { + switch v := v.(*Type_UUID); i { case 0: return &v.state case 1: @@ -2999,7 +3112,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_VarChar); i { + switch v := v.(*Type_FixedChar); i { case 0: return &v.state case 1: @@ -3011,7 +3124,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_FixedBinary); i { + switch v := v.(*Type_VarChar); i { case 0: return &v.state case 1: @@ -3023,7 +3136,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_Decimal); i { + switch v := v.(*Type_FixedBinary); i { case 0: return &v.state case 1: @@ -3035,7 +3148,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_PrecisionTimestamp); i { + switch v := v.(*Type_Decimal); i { case 0: return &v.state case 1: @@ -3047,7 +3160,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_PrecisionTimestampTZ); i { + switch v := v.(*Type_PrecisionTimestamp); i { case 0: return &v.state case 1: @@ -3059,7 +3172,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_Struct); i { + switch v := v.(*Type_PrecisionTimestampTZ); i { case 0: return &v.state case 1: @@ -3071,7 +3184,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_List); i { + switch v := v.(*Type_Struct); i { case 0: return &v.state case 1: @@ -3083,7 +3196,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_Map); i { + switch v := v.(*Type_List); i { case 0: return &v.state case 1: @@ -3095,7 +3208,7 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Type_UserDefined); i { + switch v := v.(*Type_Map); i { case 0: return &v.state case 1: @@ -3107,6 +3220,18 @@ func file_substrait_type_proto_init() { } } file_substrait_type_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Type_UserDefined); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_type_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Type_Parameter); i { case 0: return &v.state @@ -3134,6 +3259,7 @@ func file_substrait_type_proto_init() { (*Type_Time_)(nil), (*Type_IntervalYear_)(nil), (*Type_IntervalDay_)(nil), + (*Type_IntervalCompound_)(nil), (*Type_TimestampTz)(nil), (*Type_Uuid)(nil), (*Type_FixedChar_)(nil), @@ -3148,7 +3274,8 @@ func file_substrait_type_proto_init() { (*Type_UserDefined_)(nil), (*Type_UserDefinedTypeReference)(nil), } - file_substrait_type_proto_msgTypes[28].OneofWrappers = []interface{}{ + file_substrait_type_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_substrait_type_proto_msgTypes[29].OneofWrappers = []interface{}{ (*Type_Parameter_Null)(nil), (*Type_Parameter_DataType)(nil), (*Type_Parameter_Boolean)(nil), @@ -3162,7 +3289,7 @@ func file_substrait_type_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_substrait_type_proto_rawDesc, NumEnums: 1, - NumMessages: 29, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/type_expressions.pb.go b/proto/type_expressions.pb.go index cc691b3..1673ae9 100644 --- a/proto/type_expressions.pb.go +++ b/proto/type_expressions.pb.go @@ -65,7 +65,7 @@ func (x DerivationExpression_UnaryOp_UnaryOpType) Number() protoreflect.EnumNumb // Deprecated: Use DerivationExpression_UnaryOp_UnaryOpType.Descriptor instead. func (DerivationExpression_UnaryOp_UnaryOpType) EnumDescriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 12, 0} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 14, 0} } type DerivationExpression_BinaryOp_BinaryOpType int32 @@ -144,7 +144,7 @@ func (x DerivationExpression_BinaryOp_BinaryOpType) Number() protoreflect.EnumNu // Deprecated: Use DerivationExpression_BinaryOp_BinaryOpType.Descriptor instead. func (DerivationExpression_BinaryOp_BinaryOpType) EnumDescriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 13, 0} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 15, 0} } type DerivationExpression struct { @@ -167,9 +167,10 @@ type DerivationExpression struct { // *DerivationExpression_Date // *DerivationExpression_Time // *DerivationExpression_IntervalYear - // *DerivationExpression_IntervalDay // *DerivationExpression_TimestampTz // *DerivationExpression_Uuid + // *DerivationExpression_IntervalDay + // *DerivationExpression_IntervalCompound // *DerivationExpression_FixedChar // *DerivationExpression_Varchar // *DerivationExpression_FixedBinary @@ -322,13 +323,6 @@ func (x *DerivationExpression) GetIntervalYear() *Type_IntervalYear { return nil } -func (x *DerivationExpression) GetIntervalDay() *Type_IntervalDay { - if x, ok := x.GetKind().(*DerivationExpression_IntervalDay); ok { - return x.IntervalDay - } - return nil -} - // Deprecated: Marked as deprecated in substrait/type_expressions.proto. func (x *DerivationExpression) GetTimestampTz() *Type_TimestampTZ { if x, ok := x.GetKind().(*DerivationExpression_TimestampTz); ok { @@ -344,6 +338,20 @@ func (x *DerivationExpression) GetUuid() *Type_UUID { return nil } +func (x *DerivationExpression) GetIntervalDay() *DerivationExpression_ExpressionIntervalDay { + if x, ok := x.GetKind().(*DerivationExpression_IntervalDay); ok { + return x.IntervalDay + } + return nil +} + +func (x *DerivationExpression) GetIntervalCompound() *DerivationExpression_ExpressionIntervalCompound { + if x, ok := x.GetKind().(*DerivationExpression_IntervalCompound); ok { + return x.IntervalCompound + } + return nil +} + func (x *DerivationExpression) GetFixedChar() *DerivationExpression_ExpressionFixedChar { if x, ok := x.GetKind().(*DerivationExpression_FixedChar); ok { return x.FixedChar @@ -530,10 +538,6 @@ type DerivationExpression_IntervalYear struct { IntervalYear *Type_IntervalYear `protobuf:"bytes,19,opt,name=interval_year,json=intervalYear,proto3,oneof"` } -type DerivationExpression_IntervalDay struct { - IntervalDay *Type_IntervalDay `protobuf:"bytes,20,opt,name=interval_day,json=intervalDay,proto3,oneof"` -} - type DerivationExpression_TimestampTz struct { // Deprecated in favor of `ExpressionPrecisionTimestampTZ precision_timestamp_tz` // @@ -545,6 +549,14 @@ type DerivationExpression_Uuid struct { Uuid *Type_UUID `protobuf:"bytes,32,opt,name=uuid,proto3,oneof"` } +type DerivationExpression_IntervalDay struct { + IntervalDay *DerivationExpression_ExpressionIntervalDay `protobuf:"bytes,20,opt,name=interval_day,json=intervalDay,proto3,oneof"` +} + +type DerivationExpression_IntervalCompound struct { + IntervalCompound *DerivationExpression_ExpressionIntervalCompound `protobuf:"bytes,42,opt,name=interval_compound,json=intervalCompound,proto3,oneof"` +} + type DerivationExpression_FixedChar struct { FixedChar *DerivationExpression_ExpressionFixedChar `protobuf:"bytes,21,opt,name=fixed_char,json=fixedChar,proto3,oneof"` } @@ -648,12 +660,14 @@ func (*DerivationExpression_Time) isDerivationExpression_Kind() {} func (*DerivationExpression_IntervalYear) isDerivationExpression_Kind() {} -func (*DerivationExpression_IntervalDay) isDerivationExpression_Kind() {} - func (*DerivationExpression_TimestampTz) isDerivationExpression_Kind() {} func (*DerivationExpression_Uuid) isDerivationExpression_Kind() {} +func (*DerivationExpression_IntervalDay) isDerivationExpression_Kind() {} + +func (*DerivationExpression_IntervalCompound) isDerivationExpression_Kind() {} + func (*DerivationExpression_FixedChar) isDerivationExpression_Kind() {} func (*DerivationExpression_Varchar) isDerivationExpression_Kind() {} @@ -1013,6 +1027,132 @@ func (x *DerivationExpression_ExpressionPrecisionTimestamp) GetNullability() Typ return Type_NULLABILITY_UNSPECIFIED } +type DerivationExpression_ExpressionIntervalDay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Precision *DerivationExpression `protobuf:"bytes,1,opt,name=precision,proto3" json:"precision,omitempty"` + VariationPointer uint32 `protobuf:"varint,2,opt,name=variation_pointer,json=variationPointer,proto3" json:"variation_pointer,omitempty"` + Nullability Type_Nullability `protobuf:"varint,3,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` +} + +func (x *DerivationExpression_ExpressionIntervalDay) Reset() { + *x = DerivationExpression_ExpressionIntervalDay{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_type_expressions_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivationExpression_ExpressionIntervalDay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivationExpression_ExpressionIntervalDay) ProtoMessage() {} + +func (x *DerivationExpression_ExpressionIntervalDay) ProtoReflect() protoreflect.Message { + mi := &file_substrait_type_expressions_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DerivationExpression_ExpressionIntervalDay.ProtoReflect.Descriptor instead. +func (*DerivationExpression_ExpressionIntervalDay) Descriptor() ([]byte, []int) { + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *DerivationExpression_ExpressionIntervalDay) GetPrecision() *DerivationExpression { + if x != nil { + return x.Precision + } + return nil +} + +func (x *DerivationExpression_ExpressionIntervalDay) GetVariationPointer() uint32 { + if x != nil { + return x.VariationPointer + } + return 0 +} + +func (x *DerivationExpression_ExpressionIntervalDay) GetNullability() Type_Nullability { + if x != nil { + return x.Nullability + } + return Type_NULLABILITY_UNSPECIFIED +} + +type DerivationExpression_ExpressionIntervalCompound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Precision *DerivationExpression `protobuf:"bytes,1,opt,name=precision,proto3" json:"precision,omitempty"` + VariationPointer uint32 `protobuf:"varint,2,opt,name=variation_pointer,json=variationPointer,proto3" json:"variation_pointer,omitempty"` + Nullability Type_Nullability `protobuf:"varint,3,opt,name=nullability,proto3,enum=substrait.Type_Nullability" json:"nullability,omitempty"` +} + +func (x *DerivationExpression_ExpressionIntervalCompound) Reset() { + *x = DerivationExpression_ExpressionIntervalCompound{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_type_expressions_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivationExpression_ExpressionIntervalCompound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivationExpression_ExpressionIntervalCompound) ProtoMessage() {} + +func (x *DerivationExpression_ExpressionIntervalCompound) ProtoReflect() protoreflect.Message { + mi := &file_substrait_type_expressions_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DerivationExpression_ExpressionIntervalCompound.ProtoReflect.Descriptor instead. +func (*DerivationExpression_ExpressionIntervalCompound) Descriptor() ([]byte, []int) { + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 6} +} + +func (x *DerivationExpression_ExpressionIntervalCompound) GetPrecision() *DerivationExpression { + if x != nil { + return x.Precision + } + return nil +} + +func (x *DerivationExpression_ExpressionIntervalCompound) GetVariationPointer() uint32 { + if x != nil { + return x.VariationPointer + } + return 0 +} + +func (x *DerivationExpression_ExpressionIntervalCompound) GetNullability() Type_Nullability { + if x != nil { + return x.Nullability + } + return Type_NULLABILITY_UNSPECIFIED +} + type DerivationExpression_ExpressionPrecisionTimestampTZ struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1026,7 +1166,7 @@ type DerivationExpression_ExpressionPrecisionTimestampTZ struct { func (x *DerivationExpression_ExpressionPrecisionTimestampTZ) Reset() { *x = DerivationExpression_ExpressionPrecisionTimestampTZ{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[6] + mi := &file_substrait_type_expressions_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +1179,7 @@ func (x *DerivationExpression_ExpressionPrecisionTimestampTZ) String() string { func (*DerivationExpression_ExpressionPrecisionTimestampTZ) ProtoMessage() {} func (x *DerivationExpression_ExpressionPrecisionTimestampTZ) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[6] + mi := &file_substrait_type_expressions_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +1192,7 @@ func (x *DerivationExpression_ExpressionPrecisionTimestampTZ) ProtoReflect() pro // Deprecated: Use DerivationExpression_ExpressionPrecisionTimestampTZ.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionPrecisionTimestampTZ) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 5} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 7} } func (x *DerivationExpression_ExpressionPrecisionTimestampTZ) GetPrecision() *DerivationExpression { @@ -1089,7 +1229,7 @@ type DerivationExpression_ExpressionStruct struct { func (x *DerivationExpression_ExpressionStruct) Reset() { *x = DerivationExpression_ExpressionStruct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[7] + mi := &file_substrait_type_expressions_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1102,7 +1242,7 @@ func (x *DerivationExpression_ExpressionStruct) String() string { func (*DerivationExpression_ExpressionStruct) ProtoMessage() {} func (x *DerivationExpression_ExpressionStruct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[7] + mi := &file_substrait_type_expressions_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1115,7 +1255,7 @@ func (x *DerivationExpression_ExpressionStruct) ProtoReflect() protoreflect.Mess // Deprecated: Use DerivationExpression_ExpressionStruct.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionStruct) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 6} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 8} } func (x *DerivationExpression_ExpressionStruct) GetTypes() []*DerivationExpression { @@ -1151,7 +1291,7 @@ type DerivationExpression_ExpressionNamedStruct struct { func (x *DerivationExpression_ExpressionNamedStruct) Reset() { *x = DerivationExpression_ExpressionNamedStruct{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[8] + mi := &file_substrait_type_expressions_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1164,7 +1304,7 @@ func (x *DerivationExpression_ExpressionNamedStruct) String() string { func (*DerivationExpression_ExpressionNamedStruct) ProtoMessage() {} func (x *DerivationExpression_ExpressionNamedStruct) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[8] + mi := &file_substrait_type_expressions_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1177,7 +1317,7 @@ func (x *DerivationExpression_ExpressionNamedStruct) ProtoReflect() protoreflect // Deprecated: Use DerivationExpression_ExpressionNamedStruct.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionNamedStruct) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 7} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 9} } func (x *DerivationExpression_ExpressionNamedStruct) GetNames() []string { @@ -1207,7 +1347,7 @@ type DerivationExpression_ExpressionList struct { func (x *DerivationExpression_ExpressionList) Reset() { *x = DerivationExpression_ExpressionList{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[9] + mi := &file_substrait_type_expressions_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1220,7 +1360,7 @@ func (x *DerivationExpression_ExpressionList) String() string { func (*DerivationExpression_ExpressionList) ProtoMessage() {} func (x *DerivationExpression_ExpressionList) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[9] + mi := &file_substrait_type_expressions_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1233,7 +1373,7 @@ func (x *DerivationExpression_ExpressionList) ProtoReflect() protoreflect.Messag // Deprecated: Use DerivationExpression_ExpressionList.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionList) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 8} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 10} } func (x *DerivationExpression_ExpressionList) GetType() *DerivationExpression { @@ -1271,7 +1411,7 @@ type DerivationExpression_ExpressionMap struct { func (x *DerivationExpression_ExpressionMap) Reset() { *x = DerivationExpression_ExpressionMap{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[10] + mi := &file_substrait_type_expressions_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1284,7 +1424,7 @@ func (x *DerivationExpression_ExpressionMap) String() string { func (*DerivationExpression_ExpressionMap) ProtoMessage() {} func (x *DerivationExpression_ExpressionMap) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[10] + mi := &file_substrait_type_expressions_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1297,7 +1437,7 @@ func (x *DerivationExpression_ExpressionMap) ProtoReflect() protoreflect.Message // Deprecated: Use DerivationExpression_ExpressionMap.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionMap) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 9} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 11} } func (x *DerivationExpression_ExpressionMap) GetKey() *DerivationExpression { @@ -1341,7 +1481,7 @@ type DerivationExpression_ExpressionUserDefined struct { func (x *DerivationExpression_ExpressionUserDefined) Reset() { *x = DerivationExpression_ExpressionUserDefined{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[11] + mi := &file_substrait_type_expressions_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1494,7 @@ func (x *DerivationExpression_ExpressionUserDefined) String() string { func (*DerivationExpression_ExpressionUserDefined) ProtoMessage() {} func (x *DerivationExpression_ExpressionUserDefined) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[11] + mi := &file_substrait_type_expressions_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1507,7 @@ func (x *DerivationExpression_ExpressionUserDefined) ProtoReflect() protoreflect // Deprecated: Use DerivationExpression_ExpressionUserDefined.ProtoReflect.Descriptor instead. func (*DerivationExpression_ExpressionUserDefined) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 10} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 12} } func (x *DerivationExpression_ExpressionUserDefined) GetTypePointer() uint32 { @@ -1404,7 +1544,7 @@ type DerivationExpression_IfElse struct { func (x *DerivationExpression_IfElse) Reset() { *x = DerivationExpression_IfElse{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[12] + mi := &file_substrait_type_expressions_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1417,7 +1557,7 @@ func (x *DerivationExpression_IfElse) String() string { func (*DerivationExpression_IfElse) ProtoMessage() {} func (x *DerivationExpression_IfElse) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[12] + mi := &file_substrait_type_expressions_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1430,7 +1570,7 @@ func (x *DerivationExpression_IfElse) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivationExpression_IfElse.ProtoReflect.Descriptor instead. func (*DerivationExpression_IfElse) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 11} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 13} } func (x *DerivationExpression_IfElse) GetIfCondition() *DerivationExpression { @@ -1466,7 +1606,7 @@ type DerivationExpression_UnaryOp struct { func (x *DerivationExpression_UnaryOp) Reset() { *x = DerivationExpression_UnaryOp{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[13] + mi := &file_substrait_type_expressions_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1479,7 +1619,7 @@ func (x *DerivationExpression_UnaryOp) String() string { func (*DerivationExpression_UnaryOp) ProtoMessage() {} func (x *DerivationExpression_UnaryOp) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[13] + mi := &file_substrait_type_expressions_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1492,7 +1632,7 @@ func (x *DerivationExpression_UnaryOp) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivationExpression_UnaryOp.ProtoReflect.Descriptor instead. func (*DerivationExpression_UnaryOp) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 12} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 14} } func (x *DerivationExpression_UnaryOp) GetOpType() DerivationExpression_UnaryOp_UnaryOpType { @@ -1522,7 +1662,7 @@ type DerivationExpression_BinaryOp struct { func (x *DerivationExpression_BinaryOp) Reset() { *x = DerivationExpression_BinaryOp{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[14] + mi := &file_substrait_type_expressions_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1535,7 +1675,7 @@ func (x *DerivationExpression_BinaryOp) String() string { func (*DerivationExpression_BinaryOp) ProtoMessage() {} func (x *DerivationExpression_BinaryOp) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[14] + mi := &file_substrait_type_expressions_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1548,7 +1688,7 @@ func (x *DerivationExpression_BinaryOp) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivationExpression_BinaryOp.ProtoReflect.Descriptor instead. func (*DerivationExpression_BinaryOp) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 13} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 15} } func (x *DerivationExpression_BinaryOp) GetOpType() DerivationExpression_BinaryOp_BinaryOpType { @@ -1584,7 +1724,7 @@ type DerivationExpression_ReturnProgram struct { func (x *DerivationExpression_ReturnProgram) Reset() { *x = DerivationExpression_ReturnProgram{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[15] + mi := &file_substrait_type_expressions_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1737,7 @@ func (x *DerivationExpression_ReturnProgram) String() string { func (*DerivationExpression_ReturnProgram) ProtoMessage() {} func (x *DerivationExpression_ReturnProgram) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[15] + mi := &file_substrait_type_expressions_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1750,7 @@ func (x *DerivationExpression_ReturnProgram) ProtoReflect() protoreflect.Message // Deprecated: Use DerivationExpression_ReturnProgram.ProtoReflect.Descriptor instead. func (*DerivationExpression_ReturnProgram) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 14} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 16} } func (x *DerivationExpression_ReturnProgram) GetAssignments() []*DerivationExpression_ReturnProgram_Assignment { @@ -1639,7 +1779,7 @@ type DerivationExpression_ReturnProgram_Assignment struct { func (x *DerivationExpression_ReturnProgram_Assignment) Reset() { *x = DerivationExpression_ReturnProgram_Assignment{} if protoimpl.UnsafeEnabled { - mi := &file_substrait_type_expressions_proto_msgTypes[16] + mi := &file_substrait_type_expressions_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1652,7 +1792,7 @@ func (x *DerivationExpression_ReturnProgram_Assignment) String() string { func (*DerivationExpression_ReturnProgram_Assignment) ProtoMessage() {} func (x *DerivationExpression_ReturnProgram_Assignment) ProtoReflect() protoreflect.Message { - mi := &file_substrait_type_expressions_proto_msgTypes[16] + mi := &file_substrait_type_expressions_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1665,7 +1805,7 @@ func (x *DerivationExpression_ReturnProgram_Assignment) ProtoReflect() protorefl // Deprecated: Use DerivationExpression_ReturnProgram_Assignment.ProtoReflect.Descriptor instead. func (*DerivationExpression_ReturnProgram_Assignment) Descriptor() ([]byte, []int) { - return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 14, 0} + return file_substrait_type_expressions_proto_rawDescGZIP(), []int{0, 16, 0} } func (x *DerivationExpression_ReturnProgram_Assignment) GetName() string { @@ -1689,7 +1829,7 @@ var file_substrait_type_expressions_proto_rawDesc = []byte{ 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x1a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xd7, 0x2b, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x2f, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, @@ -1729,105 +1869,125 @@ var file_substrait_type_expressions_proto_rawDesc = []byte{ 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x40, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, - 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x2a, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x55, 0x49, 0x44, - 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x44, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x2a, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x55, 0x49, 0x44, 0x48, 0x00, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x4d, - 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x44, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, + 0x61, 0x79, 0x12, 0x69, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x54, 0x0a, + 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x72, 0x12, 0x4d, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, + 0x61, 0x72, 0x12, 0x5a, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, + 0x00, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4d, + 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x43, 0x68, - 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x76, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x12, 0x5a, 0x0a, - 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, - 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x07, 0x64, 0x65, 0x63, - 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x75, 0x62, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, + 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x6f, 0x0a, + 0x13, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x48, 0x00, 0x52, - 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x6f, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x76, + 0x0a, 0x16, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x7a, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, + 0x52, 0x14, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x54, 0x7a, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x76, 0x0a, 0x16, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x74, 0x7a, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, - 0x7a, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, + 0x6e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x5a, 0x0a, 0x0c, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x44, 0x0a, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x48, - 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x5a, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x12, 0x36, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x74, 0x79, 0x70, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, - 0x44, 0x0a, 0x08, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6f, 0x70, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, - 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x47, 0x0a, 0x09, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, - 0x6f, 0x70, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, - 0x4f, 0x70, 0x48, 0x00, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x41, - 0x0a, 0x07, 0x69, 0x66, 0x5f, 0x65, 0x6c, 0x73, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x49, 0x66, 0x45, 0x6c, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x69, 0x66, 0x45, 0x6c, 0x73, - 0x65, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x1a, 0xba, 0x01, 0x0a, 0x13, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x30, 0x0a, 0x13, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, + 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x23, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x08, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6f, 0x70, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x48, + 0x00, 0x52, 0x07, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x47, 0x0a, 0x09, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6f, 0x70, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x4f, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x69, 0x66, 0x5f, 0x65, 0x6c, 0x73, 0x65, 0x18, 0x26, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x66, 0x45, 0x6c, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, + 0x69, 0x66, 0x45, 0x6c, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x48, 0x00, 0x52, + 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x1a, 0xba, + 0x01, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x12, 0x37, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, + 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xb8, 0x01, 0x0a, 0x11, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x37, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, @@ -1838,213 +1998,227 @@ var file_substrait_type_expressions_proto_rawDesc = []byte{ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xb8, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x37, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x1a, 0xbc, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x1a, 0xf5, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x3d, 0x0a, - 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xbc, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x12, 0x37, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc9, 0x01, 0x0a, 0x1c, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xcb, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, + 0x6e, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xf5, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, - 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x1a, 0xb5, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, - 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x77, 0x0a, 0x15, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x1a, 0xb1, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xe5, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x12, 0x31, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, + 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc9, 0x01, + 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3d, + 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, + 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc2, 0x01, 0x0a, 0x15, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x44, 0x61, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, - 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, - 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, - 0xa6, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x74, 0x79, 0x70, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xc7, + 0x01, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3d, 0x0a, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xcc, 0x01, 0x0a, 0x06, 0x49, 0x66, 0x45, - 0x6c, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x69, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x66, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x66, 0x5f, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xcb, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x5a, 0x12, 0x3d, 0x0a, 0x09, 0x70, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xb5, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x66, 0x52, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x6c, 0x73, 0x65, 0x5f, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, + 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x77, + 0x0a, 0x15, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x48, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0xb1, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, + 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xe5, 0x01, 0x0a, 0x0d, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x12, 0x31, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x6c, 0x73, - 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x1a, 0xd7, 0x01, 0x0a, 0x07, 0x55, 0x6e, 0x61, 0x72, - 0x79, 0x4f, 0x70, 0x12, 0x4c, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, - 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x2e, 0x55, 0x6e, - 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x31, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x1a, 0xa6, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0xcc, 0x01, 0x0a, + 0x06, 0x49, 0x66, 0x45, 0x6c, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x69, 0x66, 0x5f, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, + 0x69, 0x66, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x09, 0x69, + 0x66, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x03, 0x61, 0x72, 0x67, 0x22, 0x4b, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x10, - 0x01, 0x1a, 0xb4, 0x04, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x4e, - 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, - 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, - 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x61, - 0x72, 0x67, 0x31, 0x12, 0x33, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x22, 0xed, 0x02, 0x0a, 0x0c, 0x42, 0x69, 0x6e, - 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x49, 0x4e, - 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x49, 0x4e, - 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x55, 0x53, - 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, - 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, - 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4e, - 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x56, 0x49, - 0x44, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, - 0x41, 0x58, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, - 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, - 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, - 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, - 0x4e, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x42, - 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x52, - 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x0b, 0x12, 0x19, 0x0a, - 0x15, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x4f, 0x56, 0x45, 0x52, 0x53, 0x10, 0x0c, 0x1a, 0x9a, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x2e, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x08, 0x69, 0x66, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x6c, 0x73, + 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x1a, 0xd7, 0x01, 0x0a, 0x07, + 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x4c, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, + 0x70, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x61, 0x72, 0x67, 0x22, 0x4b, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x72, + 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x41, 0x52, 0x59, + 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, + 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x5f, + 0x4e, 0x4f, 0x54, 0x10, 0x01, 0x1a, 0xb4, 0x04, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x4f, 0x70, 0x12, 0x4e, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x2e, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x1a, 0x61, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x42, 0x57, 0x0a, - 0x12, 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x69, 0x6f, 0x2f, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31, 0x12, 0x33, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x22, 0xed, 0x02, 0x0a, + 0x0c, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x1a, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, + 0x13, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4c, 0x55, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, + 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x10, 0x02, + 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x19, 0x0a, + 0x15, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x44, 0x49, 0x56, 0x49, 0x44, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x49, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x05, + 0x12, 0x16, 0x0a, 0x12, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x4e, + 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x53, 0x53, + 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x49, 0x4e, 0x41, 0x52, + 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x10, 0x09, 0x12, + 0x15, 0x0a, 0x11, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, + 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, + 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x53, 0x10, 0x0c, 0x1a, 0x9a, 0x02, 0x0a, + 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x5a, + 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x10, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x61, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x42, 0x57, 0x0a, 0x12, 0x69, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, + 0x69, 0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x2d, 0x67, 0x6f, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -2060,7 +2234,7 @@ func file_substrait_type_expressions_proto_rawDescGZIP() []byte { } var file_substrait_type_expressions_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_substrait_type_expressions_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_substrait_type_expressions_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_substrait_type_expressions_proto_goTypes = []interface{}{ (DerivationExpression_UnaryOp_UnaryOpType)(0), // 0: substrait.DerivationExpression.UnaryOp.UnaryOpType (DerivationExpression_BinaryOp_BinaryOpType)(0), // 1: substrait.DerivationExpression.BinaryOp.BinaryOpType @@ -2070,104 +2244,110 @@ var file_substrait_type_expressions_proto_goTypes = []interface{}{ (*DerivationExpression_ExpressionFixedBinary)(nil), // 5: substrait.DerivationExpression.ExpressionFixedBinary (*DerivationExpression_ExpressionDecimal)(nil), // 6: substrait.DerivationExpression.ExpressionDecimal (*DerivationExpression_ExpressionPrecisionTimestamp)(nil), // 7: substrait.DerivationExpression.ExpressionPrecisionTimestamp - (*DerivationExpression_ExpressionPrecisionTimestampTZ)(nil), // 8: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ - (*DerivationExpression_ExpressionStruct)(nil), // 9: substrait.DerivationExpression.ExpressionStruct - (*DerivationExpression_ExpressionNamedStruct)(nil), // 10: substrait.DerivationExpression.ExpressionNamedStruct - (*DerivationExpression_ExpressionList)(nil), // 11: substrait.DerivationExpression.ExpressionList - (*DerivationExpression_ExpressionMap)(nil), // 12: substrait.DerivationExpression.ExpressionMap - (*DerivationExpression_ExpressionUserDefined)(nil), // 13: substrait.DerivationExpression.ExpressionUserDefined - (*DerivationExpression_IfElse)(nil), // 14: substrait.DerivationExpression.IfElse - (*DerivationExpression_UnaryOp)(nil), // 15: substrait.DerivationExpression.UnaryOp - (*DerivationExpression_BinaryOp)(nil), // 16: substrait.DerivationExpression.BinaryOp - (*DerivationExpression_ReturnProgram)(nil), // 17: substrait.DerivationExpression.ReturnProgram - (*DerivationExpression_ReturnProgram_Assignment)(nil), // 18: substrait.DerivationExpression.ReturnProgram.Assignment - (*Type_Boolean)(nil), // 19: substrait.Type.Boolean - (*Type_I8)(nil), // 20: substrait.Type.I8 - (*Type_I16)(nil), // 21: substrait.Type.I16 - (*Type_I32)(nil), // 22: substrait.Type.I32 - (*Type_I64)(nil), // 23: substrait.Type.I64 - (*Type_FP32)(nil), // 24: substrait.Type.FP32 - (*Type_FP64)(nil), // 25: substrait.Type.FP64 - (*Type_String)(nil), // 26: substrait.Type.String - (*Type_Binary)(nil), // 27: substrait.Type.Binary - (*Type_Timestamp)(nil), // 28: substrait.Type.Timestamp - (*Type_Date)(nil), // 29: substrait.Type.Date - (*Type_Time)(nil), // 30: substrait.Type.Time - (*Type_IntervalYear)(nil), // 31: substrait.Type.IntervalYear - (*Type_IntervalDay)(nil), // 32: substrait.Type.IntervalDay - (*Type_TimestampTZ)(nil), // 33: substrait.Type.TimestampTZ - (*Type_UUID)(nil), // 34: substrait.Type.UUID - (Type_Nullability)(0), // 35: substrait.Type.Nullability + (*DerivationExpression_ExpressionIntervalDay)(nil), // 8: substrait.DerivationExpression.ExpressionIntervalDay + (*DerivationExpression_ExpressionIntervalCompound)(nil), // 9: substrait.DerivationExpression.ExpressionIntervalCompound + (*DerivationExpression_ExpressionPrecisionTimestampTZ)(nil), // 10: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ + (*DerivationExpression_ExpressionStruct)(nil), // 11: substrait.DerivationExpression.ExpressionStruct + (*DerivationExpression_ExpressionNamedStruct)(nil), // 12: substrait.DerivationExpression.ExpressionNamedStruct + (*DerivationExpression_ExpressionList)(nil), // 13: substrait.DerivationExpression.ExpressionList + (*DerivationExpression_ExpressionMap)(nil), // 14: substrait.DerivationExpression.ExpressionMap + (*DerivationExpression_ExpressionUserDefined)(nil), // 15: substrait.DerivationExpression.ExpressionUserDefined + (*DerivationExpression_IfElse)(nil), // 16: substrait.DerivationExpression.IfElse + (*DerivationExpression_UnaryOp)(nil), // 17: substrait.DerivationExpression.UnaryOp + (*DerivationExpression_BinaryOp)(nil), // 18: substrait.DerivationExpression.BinaryOp + (*DerivationExpression_ReturnProgram)(nil), // 19: substrait.DerivationExpression.ReturnProgram + (*DerivationExpression_ReturnProgram_Assignment)(nil), // 20: substrait.DerivationExpression.ReturnProgram.Assignment + (*Type_Boolean)(nil), // 21: substrait.Type.Boolean + (*Type_I8)(nil), // 22: substrait.Type.I8 + (*Type_I16)(nil), // 23: substrait.Type.I16 + (*Type_I32)(nil), // 24: substrait.Type.I32 + (*Type_I64)(nil), // 25: substrait.Type.I64 + (*Type_FP32)(nil), // 26: substrait.Type.FP32 + (*Type_FP64)(nil), // 27: substrait.Type.FP64 + (*Type_String)(nil), // 28: substrait.Type.String + (*Type_Binary)(nil), // 29: substrait.Type.Binary + (*Type_Timestamp)(nil), // 30: substrait.Type.Timestamp + (*Type_Date)(nil), // 31: substrait.Type.Date + (*Type_Time)(nil), // 32: substrait.Type.Time + (*Type_IntervalYear)(nil), // 33: substrait.Type.IntervalYear + (*Type_TimestampTZ)(nil), // 34: substrait.Type.TimestampTZ + (*Type_UUID)(nil), // 35: substrait.Type.UUID + (Type_Nullability)(0), // 36: substrait.Type.Nullability } var file_substrait_type_expressions_proto_depIdxs = []int32{ - 19, // 0: substrait.DerivationExpression.bool:type_name -> substrait.Type.Boolean - 20, // 1: substrait.DerivationExpression.i8:type_name -> substrait.Type.I8 - 21, // 2: substrait.DerivationExpression.i16:type_name -> substrait.Type.I16 - 22, // 3: substrait.DerivationExpression.i32:type_name -> substrait.Type.I32 - 23, // 4: substrait.DerivationExpression.i64:type_name -> substrait.Type.I64 - 24, // 5: substrait.DerivationExpression.fp32:type_name -> substrait.Type.FP32 - 25, // 6: substrait.DerivationExpression.fp64:type_name -> substrait.Type.FP64 - 26, // 7: substrait.DerivationExpression.string:type_name -> substrait.Type.String - 27, // 8: substrait.DerivationExpression.binary:type_name -> substrait.Type.Binary - 28, // 9: substrait.DerivationExpression.timestamp:type_name -> substrait.Type.Timestamp - 29, // 10: substrait.DerivationExpression.date:type_name -> substrait.Type.Date - 30, // 11: substrait.DerivationExpression.time:type_name -> substrait.Type.Time - 31, // 12: substrait.DerivationExpression.interval_year:type_name -> substrait.Type.IntervalYear - 32, // 13: substrait.DerivationExpression.interval_day:type_name -> substrait.Type.IntervalDay - 33, // 14: substrait.DerivationExpression.timestamp_tz:type_name -> substrait.Type.TimestampTZ - 34, // 15: substrait.DerivationExpression.uuid:type_name -> substrait.Type.UUID - 3, // 16: substrait.DerivationExpression.fixed_char:type_name -> substrait.DerivationExpression.ExpressionFixedChar - 4, // 17: substrait.DerivationExpression.varchar:type_name -> substrait.DerivationExpression.ExpressionVarChar - 5, // 18: substrait.DerivationExpression.fixed_binary:type_name -> substrait.DerivationExpression.ExpressionFixedBinary - 6, // 19: substrait.DerivationExpression.decimal:type_name -> substrait.DerivationExpression.ExpressionDecimal - 7, // 20: substrait.DerivationExpression.precision_timestamp:type_name -> substrait.DerivationExpression.ExpressionPrecisionTimestamp - 8, // 21: substrait.DerivationExpression.precision_timestamp_tz:type_name -> substrait.DerivationExpression.ExpressionPrecisionTimestampTZ - 9, // 22: substrait.DerivationExpression.struct:type_name -> substrait.DerivationExpression.ExpressionStruct - 11, // 23: substrait.DerivationExpression.list:type_name -> substrait.DerivationExpression.ExpressionList - 12, // 24: substrait.DerivationExpression.map:type_name -> substrait.DerivationExpression.ExpressionMap - 13, // 25: substrait.DerivationExpression.user_defined:type_name -> substrait.DerivationExpression.ExpressionUserDefined - 15, // 26: substrait.DerivationExpression.unary_op:type_name -> substrait.DerivationExpression.UnaryOp - 16, // 27: substrait.DerivationExpression.binary_op:type_name -> substrait.DerivationExpression.BinaryOp - 14, // 28: substrait.DerivationExpression.if_else:type_name -> substrait.DerivationExpression.IfElse - 17, // 29: substrait.DerivationExpression.return_program:type_name -> substrait.DerivationExpression.ReturnProgram - 2, // 30: substrait.DerivationExpression.ExpressionFixedChar.length:type_name -> substrait.DerivationExpression - 35, // 31: substrait.DerivationExpression.ExpressionFixedChar.nullability:type_name -> substrait.Type.Nullability - 2, // 32: substrait.DerivationExpression.ExpressionVarChar.length:type_name -> substrait.DerivationExpression - 35, // 33: substrait.DerivationExpression.ExpressionVarChar.nullability:type_name -> substrait.Type.Nullability - 2, // 34: substrait.DerivationExpression.ExpressionFixedBinary.length:type_name -> substrait.DerivationExpression - 35, // 35: substrait.DerivationExpression.ExpressionFixedBinary.nullability:type_name -> substrait.Type.Nullability - 2, // 36: substrait.DerivationExpression.ExpressionDecimal.scale:type_name -> substrait.DerivationExpression - 2, // 37: substrait.DerivationExpression.ExpressionDecimal.precision:type_name -> substrait.DerivationExpression - 35, // 38: substrait.DerivationExpression.ExpressionDecimal.nullability:type_name -> substrait.Type.Nullability - 2, // 39: substrait.DerivationExpression.ExpressionPrecisionTimestamp.precision:type_name -> substrait.DerivationExpression - 35, // 40: substrait.DerivationExpression.ExpressionPrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability - 2, // 41: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ.precision:type_name -> substrait.DerivationExpression - 35, // 42: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability - 2, // 43: substrait.DerivationExpression.ExpressionStruct.types:type_name -> substrait.DerivationExpression - 35, // 44: substrait.DerivationExpression.ExpressionStruct.nullability:type_name -> substrait.Type.Nullability - 9, // 45: substrait.DerivationExpression.ExpressionNamedStruct.struct:type_name -> substrait.DerivationExpression.ExpressionStruct - 2, // 46: substrait.DerivationExpression.ExpressionList.type:type_name -> substrait.DerivationExpression - 35, // 47: substrait.DerivationExpression.ExpressionList.nullability:type_name -> substrait.Type.Nullability - 2, // 48: substrait.DerivationExpression.ExpressionMap.key:type_name -> substrait.DerivationExpression - 2, // 49: substrait.DerivationExpression.ExpressionMap.value:type_name -> substrait.DerivationExpression - 35, // 50: substrait.DerivationExpression.ExpressionMap.nullability:type_name -> substrait.Type.Nullability - 35, // 51: substrait.DerivationExpression.ExpressionUserDefined.nullability:type_name -> substrait.Type.Nullability - 2, // 52: substrait.DerivationExpression.IfElse.if_condition:type_name -> substrait.DerivationExpression - 2, // 53: substrait.DerivationExpression.IfElse.if_return:type_name -> substrait.DerivationExpression - 2, // 54: substrait.DerivationExpression.IfElse.else_return:type_name -> substrait.DerivationExpression - 0, // 55: substrait.DerivationExpression.UnaryOp.op_type:type_name -> substrait.DerivationExpression.UnaryOp.UnaryOpType - 2, // 56: substrait.DerivationExpression.UnaryOp.arg:type_name -> substrait.DerivationExpression - 1, // 57: substrait.DerivationExpression.BinaryOp.op_type:type_name -> substrait.DerivationExpression.BinaryOp.BinaryOpType - 2, // 58: substrait.DerivationExpression.BinaryOp.arg1:type_name -> substrait.DerivationExpression - 2, // 59: substrait.DerivationExpression.BinaryOp.arg2:type_name -> substrait.DerivationExpression - 18, // 60: substrait.DerivationExpression.ReturnProgram.assignments:type_name -> substrait.DerivationExpression.ReturnProgram.Assignment - 2, // 61: substrait.DerivationExpression.ReturnProgram.final_expression:type_name -> substrait.DerivationExpression - 2, // 62: substrait.DerivationExpression.ReturnProgram.Assignment.expression:type_name -> substrait.DerivationExpression - 63, // [63:63] is the sub-list for method output_type - 63, // [63:63] is the sub-list for method input_type - 63, // [63:63] is the sub-list for extension type_name - 63, // [63:63] is the sub-list for extension extendee - 0, // [0:63] is the sub-list for field type_name + 21, // 0: substrait.DerivationExpression.bool:type_name -> substrait.Type.Boolean + 22, // 1: substrait.DerivationExpression.i8:type_name -> substrait.Type.I8 + 23, // 2: substrait.DerivationExpression.i16:type_name -> substrait.Type.I16 + 24, // 3: substrait.DerivationExpression.i32:type_name -> substrait.Type.I32 + 25, // 4: substrait.DerivationExpression.i64:type_name -> substrait.Type.I64 + 26, // 5: substrait.DerivationExpression.fp32:type_name -> substrait.Type.FP32 + 27, // 6: substrait.DerivationExpression.fp64:type_name -> substrait.Type.FP64 + 28, // 7: substrait.DerivationExpression.string:type_name -> substrait.Type.String + 29, // 8: substrait.DerivationExpression.binary:type_name -> substrait.Type.Binary + 30, // 9: substrait.DerivationExpression.timestamp:type_name -> substrait.Type.Timestamp + 31, // 10: substrait.DerivationExpression.date:type_name -> substrait.Type.Date + 32, // 11: substrait.DerivationExpression.time:type_name -> substrait.Type.Time + 33, // 12: substrait.DerivationExpression.interval_year:type_name -> substrait.Type.IntervalYear + 34, // 13: substrait.DerivationExpression.timestamp_tz:type_name -> substrait.Type.TimestampTZ + 35, // 14: substrait.DerivationExpression.uuid:type_name -> substrait.Type.UUID + 8, // 15: substrait.DerivationExpression.interval_day:type_name -> substrait.DerivationExpression.ExpressionIntervalDay + 9, // 16: substrait.DerivationExpression.interval_compound:type_name -> substrait.DerivationExpression.ExpressionIntervalCompound + 3, // 17: substrait.DerivationExpression.fixed_char:type_name -> substrait.DerivationExpression.ExpressionFixedChar + 4, // 18: substrait.DerivationExpression.varchar:type_name -> substrait.DerivationExpression.ExpressionVarChar + 5, // 19: substrait.DerivationExpression.fixed_binary:type_name -> substrait.DerivationExpression.ExpressionFixedBinary + 6, // 20: substrait.DerivationExpression.decimal:type_name -> substrait.DerivationExpression.ExpressionDecimal + 7, // 21: substrait.DerivationExpression.precision_timestamp:type_name -> substrait.DerivationExpression.ExpressionPrecisionTimestamp + 10, // 22: substrait.DerivationExpression.precision_timestamp_tz:type_name -> substrait.DerivationExpression.ExpressionPrecisionTimestampTZ + 11, // 23: substrait.DerivationExpression.struct:type_name -> substrait.DerivationExpression.ExpressionStruct + 13, // 24: substrait.DerivationExpression.list:type_name -> substrait.DerivationExpression.ExpressionList + 14, // 25: substrait.DerivationExpression.map:type_name -> substrait.DerivationExpression.ExpressionMap + 15, // 26: substrait.DerivationExpression.user_defined:type_name -> substrait.DerivationExpression.ExpressionUserDefined + 17, // 27: substrait.DerivationExpression.unary_op:type_name -> substrait.DerivationExpression.UnaryOp + 18, // 28: substrait.DerivationExpression.binary_op:type_name -> substrait.DerivationExpression.BinaryOp + 16, // 29: substrait.DerivationExpression.if_else:type_name -> substrait.DerivationExpression.IfElse + 19, // 30: substrait.DerivationExpression.return_program:type_name -> substrait.DerivationExpression.ReturnProgram + 2, // 31: substrait.DerivationExpression.ExpressionFixedChar.length:type_name -> substrait.DerivationExpression + 36, // 32: substrait.DerivationExpression.ExpressionFixedChar.nullability:type_name -> substrait.Type.Nullability + 2, // 33: substrait.DerivationExpression.ExpressionVarChar.length:type_name -> substrait.DerivationExpression + 36, // 34: substrait.DerivationExpression.ExpressionVarChar.nullability:type_name -> substrait.Type.Nullability + 2, // 35: substrait.DerivationExpression.ExpressionFixedBinary.length:type_name -> substrait.DerivationExpression + 36, // 36: substrait.DerivationExpression.ExpressionFixedBinary.nullability:type_name -> substrait.Type.Nullability + 2, // 37: substrait.DerivationExpression.ExpressionDecimal.scale:type_name -> substrait.DerivationExpression + 2, // 38: substrait.DerivationExpression.ExpressionDecimal.precision:type_name -> substrait.DerivationExpression + 36, // 39: substrait.DerivationExpression.ExpressionDecimal.nullability:type_name -> substrait.Type.Nullability + 2, // 40: substrait.DerivationExpression.ExpressionPrecisionTimestamp.precision:type_name -> substrait.DerivationExpression + 36, // 41: substrait.DerivationExpression.ExpressionPrecisionTimestamp.nullability:type_name -> substrait.Type.Nullability + 2, // 42: substrait.DerivationExpression.ExpressionIntervalDay.precision:type_name -> substrait.DerivationExpression + 36, // 43: substrait.DerivationExpression.ExpressionIntervalDay.nullability:type_name -> substrait.Type.Nullability + 2, // 44: substrait.DerivationExpression.ExpressionIntervalCompound.precision:type_name -> substrait.DerivationExpression + 36, // 45: substrait.DerivationExpression.ExpressionIntervalCompound.nullability:type_name -> substrait.Type.Nullability + 2, // 46: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ.precision:type_name -> substrait.DerivationExpression + 36, // 47: substrait.DerivationExpression.ExpressionPrecisionTimestampTZ.nullability:type_name -> substrait.Type.Nullability + 2, // 48: substrait.DerivationExpression.ExpressionStruct.types:type_name -> substrait.DerivationExpression + 36, // 49: substrait.DerivationExpression.ExpressionStruct.nullability:type_name -> substrait.Type.Nullability + 11, // 50: substrait.DerivationExpression.ExpressionNamedStruct.struct:type_name -> substrait.DerivationExpression.ExpressionStruct + 2, // 51: substrait.DerivationExpression.ExpressionList.type:type_name -> substrait.DerivationExpression + 36, // 52: substrait.DerivationExpression.ExpressionList.nullability:type_name -> substrait.Type.Nullability + 2, // 53: substrait.DerivationExpression.ExpressionMap.key:type_name -> substrait.DerivationExpression + 2, // 54: substrait.DerivationExpression.ExpressionMap.value:type_name -> substrait.DerivationExpression + 36, // 55: substrait.DerivationExpression.ExpressionMap.nullability:type_name -> substrait.Type.Nullability + 36, // 56: substrait.DerivationExpression.ExpressionUserDefined.nullability:type_name -> substrait.Type.Nullability + 2, // 57: substrait.DerivationExpression.IfElse.if_condition:type_name -> substrait.DerivationExpression + 2, // 58: substrait.DerivationExpression.IfElse.if_return:type_name -> substrait.DerivationExpression + 2, // 59: substrait.DerivationExpression.IfElse.else_return:type_name -> substrait.DerivationExpression + 0, // 60: substrait.DerivationExpression.UnaryOp.op_type:type_name -> substrait.DerivationExpression.UnaryOp.UnaryOpType + 2, // 61: substrait.DerivationExpression.UnaryOp.arg:type_name -> substrait.DerivationExpression + 1, // 62: substrait.DerivationExpression.BinaryOp.op_type:type_name -> substrait.DerivationExpression.BinaryOp.BinaryOpType + 2, // 63: substrait.DerivationExpression.BinaryOp.arg1:type_name -> substrait.DerivationExpression + 2, // 64: substrait.DerivationExpression.BinaryOp.arg2:type_name -> substrait.DerivationExpression + 20, // 65: substrait.DerivationExpression.ReturnProgram.assignments:type_name -> substrait.DerivationExpression.ReturnProgram.Assignment + 2, // 66: substrait.DerivationExpression.ReturnProgram.final_expression:type_name -> substrait.DerivationExpression + 2, // 67: substrait.DerivationExpression.ReturnProgram.Assignment.expression:type_name -> substrait.DerivationExpression + 68, // [68:68] is the sub-list for method output_type + 68, // [68:68] is the sub-list for method input_type + 68, // [68:68] is the sub-list for extension type_name + 68, // [68:68] is the sub-list for extension extendee + 0, // [0:68] is the sub-list for field type_name } func init() { file_substrait_type_expressions_proto_init() } @@ -2250,7 +2430,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionPrecisionTimestampTZ); i { + switch v := v.(*DerivationExpression_ExpressionIntervalDay); i { case 0: return &v.state case 1: @@ -2262,7 +2442,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionStruct); i { + switch v := v.(*DerivationExpression_ExpressionIntervalCompound); i { case 0: return &v.state case 1: @@ -2274,7 +2454,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionNamedStruct); i { + switch v := v.(*DerivationExpression_ExpressionPrecisionTimestampTZ); i { case 0: return &v.state case 1: @@ -2286,7 +2466,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionList); i { + switch v := v.(*DerivationExpression_ExpressionStruct); i { case 0: return &v.state case 1: @@ -2298,7 +2478,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionMap); i { + switch v := v.(*DerivationExpression_ExpressionNamedStruct); i { case 0: return &v.state case 1: @@ -2310,7 +2490,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ExpressionUserDefined); i { + switch v := v.(*DerivationExpression_ExpressionList); i { case 0: return &v.state case 1: @@ -2322,7 +2502,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_IfElse); i { + switch v := v.(*DerivationExpression_ExpressionMap); i { case 0: return &v.state case 1: @@ -2334,7 +2514,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_UnaryOp); i { + switch v := v.(*DerivationExpression_ExpressionUserDefined); i { case 0: return &v.state case 1: @@ -2346,7 +2526,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_BinaryOp); i { + switch v := v.(*DerivationExpression_IfElse); i { case 0: return &v.state case 1: @@ -2358,7 +2538,7 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivationExpression_ReturnProgram); i { + switch v := v.(*DerivationExpression_UnaryOp); i { case 0: return &v.state case 1: @@ -2370,6 +2550,30 @@ func file_substrait_type_expressions_proto_init() { } } file_substrait_type_expressions_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivationExpression_BinaryOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_type_expressions_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivationExpression_ReturnProgram); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_substrait_type_expressions_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivationExpression_ReturnProgram_Assignment); i { case 0: return &v.state @@ -2396,9 +2600,10 @@ func file_substrait_type_expressions_proto_init() { (*DerivationExpression_Date)(nil), (*DerivationExpression_Time)(nil), (*DerivationExpression_IntervalYear)(nil), - (*DerivationExpression_IntervalDay)(nil), (*DerivationExpression_TimestampTz)(nil), (*DerivationExpression_Uuid)(nil), + (*DerivationExpression_IntervalDay)(nil), + (*DerivationExpression_IntervalCompound)(nil), (*DerivationExpression_FixedChar)(nil), (*DerivationExpression_Varchar)(nil), (*DerivationExpression_FixedBinary)(nil), @@ -2424,7 +2629,7 @@ func file_substrait_type_expressions_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_substrait_type_expressions_proto_rawDesc, NumEnums: 2, - NumMessages: 17, + NumMessages: 19, NumExtensions: 0, NumServices: 0, },