1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/datastore/v1beta3/query.proto
6 import proto "github.com/golang/protobuf/proto"
9 import _ "google.golang.org/genproto/googleapis/api/annotations"
10 import google_protobuf3 "github.com/golang/protobuf/ptypes/wrappers"
11 import _ "google.golang.org/genproto/googleapis/type/latlng"
13 // Reference imports to suppress errors if they are not otherwise used.
18 // Specifies what data the 'entity' field contains.
19 // A `ResultType` is either implied (for example, in `LookupResponse.missing`
20 // from `datastore.proto`, it is always `KEY_ONLY`) or specified by context
21 // (for example, in message `QueryResultBatch`, field `entity_result_type`
22 // specifies a `ResultType` for all the values in field `entity_results`).
23 type EntityResult_ResultType int32
26 // Unspecified. This value is never used.
27 EntityResult_RESULT_TYPE_UNSPECIFIED EntityResult_ResultType = 0
28 // The key and properties.
29 EntityResult_FULL EntityResult_ResultType = 1
30 // A projected subset of properties. The entity may have no key.
31 EntityResult_PROJECTION EntityResult_ResultType = 2
33 EntityResult_KEY_ONLY EntityResult_ResultType = 3
36 var EntityResult_ResultType_name = map[int32]string{
37 0: "RESULT_TYPE_UNSPECIFIED",
42 var EntityResult_ResultType_value = map[string]int32{
43 "RESULT_TYPE_UNSPECIFIED": 0,
49 func (x EntityResult_ResultType) String() string {
50 return proto.EnumName(EntityResult_ResultType_name, int32(x))
52 func (EntityResult_ResultType) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{0, 0} }
54 // The sort direction.
55 type PropertyOrder_Direction int32
58 // Unspecified. This value must not be used.
59 PropertyOrder_DIRECTION_UNSPECIFIED PropertyOrder_Direction = 0
61 PropertyOrder_ASCENDING PropertyOrder_Direction = 1
63 PropertyOrder_DESCENDING PropertyOrder_Direction = 2
66 var PropertyOrder_Direction_name = map[int32]string{
67 0: "DIRECTION_UNSPECIFIED",
71 var PropertyOrder_Direction_value = map[string]int32{
72 "DIRECTION_UNSPECIFIED": 0,
77 func (x PropertyOrder_Direction) String() string {
78 return proto.EnumName(PropertyOrder_Direction_name, int32(x))
80 func (PropertyOrder_Direction) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{5, 0} }
82 // A composite filter operator.
83 type CompositeFilter_Operator int32
86 // Unspecified. This value must not be used.
87 CompositeFilter_OPERATOR_UNSPECIFIED CompositeFilter_Operator = 0
88 // The results are required to satisfy each of the combined filters.
89 CompositeFilter_AND CompositeFilter_Operator = 1
92 var CompositeFilter_Operator_name = map[int32]string{
93 0: "OPERATOR_UNSPECIFIED",
96 var CompositeFilter_Operator_value = map[string]int32{
97 "OPERATOR_UNSPECIFIED": 0,
101 func (x CompositeFilter_Operator) String() string {
102 return proto.EnumName(CompositeFilter_Operator_name, int32(x))
104 func (CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{7, 0} }
106 // A property filter operator.
107 type PropertyFilter_Operator int32
110 // Unspecified. This value must not be used.
111 PropertyFilter_OPERATOR_UNSPECIFIED PropertyFilter_Operator = 0
113 PropertyFilter_LESS_THAN PropertyFilter_Operator = 1
114 // Less than or equal.
115 PropertyFilter_LESS_THAN_OR_EQUAL PropertyFilter_Operator = 2
117 PropertyFilter_GREATER_THAN PropertyFilter_Operator = 3
118 // Greater than or equal.
119 PropertyFilter_GREATER_THAN_OR_EQUAL PropertyFilter_Operator = 4
121 PropertyFilter_EQUAL PropertyFilter_Operator = 5
123 PropertyFilter_HAS_ANCESTOR PropertyFilter_Operator = 11
126 var PropertyFilter_Operator_name = map[int32]string{
127 0: "OPERATOR_UNSPECIFIED",
129 2: "LESS_THAN_OR_EQUAL",
131 4: "GREATER_THAN_OR_EQUAL",
135 var PropertyFilter_Operator_value = map[string]int32{
136 "OPERATOR_UNSPECIFIED": 0,
138 "LESS_THAN_OR_EQUAL": 2,
140 "GREATER_THAN_OR_EQUAL": 4,
145 func (x PropertyFilter_Operator) String() string {
146 return proto.EnumName(PropertyFilter_Operator_name, int32(x))
148 func (PropertyFilter_Operator) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{8, 0} }
150 // The possible values for the `more_results` field.
151 type QueryResultBatch_MoreResultsType int32
154 // Unspecified. This value is never used.
155 QueryResultBatch_MORE_RESULTS_TYPE_UNSPECIFIED QueryResultBatch_MoreResultsType = 0
156 // There may be additional batches to fetch from this query.
157 QueryResultBatch_NOT_FINISHED QueryResultBatch_MoreResultsType = 1
158 // The query is finished, but there may be more results after the limit.
159 QueryResultBatch_MORE_RESULTS_AFTER_LIMIT QueryResultBatch_MoreResultsType = 2
160 // The query is finished, but there may be more results after the end
162 QueryResultBatch_MORE_RESULTS_AFTER_CURSOR QueryResultBatch_MoreResultsType = 4
163 // The query is finished, and there are no more results.
164 QueryResultBatch_NO_MORE_RESULTS QueryResultBatch_MoreResultsType = 3
167 var QueryResultBatch_MoreResultsType_name = map[int32]string{
168 0: "MORE_RESULTS_TYPE_UNSPECIFIED",
170 2: "MORE_RESULTS_AFTER_LIMIT",
171 4: "MORE_RESULTS_AFTER_CURSOR",
172 3: "NO_MORE_RESULTS",
174 var QueryResultBatch_MoreResultsType_value = map[string]int32{
175 "MORE_RESULTS_TYPE_UNSPECIFIED": 0,
177 "MORE_RESULTS_AFTER_LIMIT": 2,
178 "MORE_RESULTS_AFTER_CURSOR": 4,
179 "NO_MORE_RESULTS": 3,
182 func (x QueryResultBatch_MoreResultsType) String() string {
183 return proto.EnumName(QueryResultBatch_MoreResultsType_name, int32(x))
185 func (QueryResultBatch_MoreResultsType) EnumDescriptor() ([]byte, []int) {
186 return fileDescriptor2, []int{11, 0}
189 // The result of fetching an entity from Datastore.
190 type EntityResult struct {
191 // The resulting entity.
192 Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
193 // The version of the entity, a strictly positive number that monotonically
194 // increases with changes to the entity.
196 // This field is set for [`FULL`][google.datastore.v1beta3.EntityResult.ResultType.FULL] entity
199 // For [missing][google.datastore.v1beta3.LookupResponse.missing] entities in `LookupResponse`, this
200 // is the version of the snapshot that was used to look up the entity, and it
201 // is always set except for eventually consistent reads.
202 Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
203 // A cursor that points to the position after the result entity.
204 // Set only when the `EntityResult` is part of a `QueryResultBatch` message.
205 Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
208 func (m *EntityResult) Reset() { *m = EntityResult{} }
209 func (m *EntityResult) String() string { return proto.CompactTextString(m) }
210 func (*EntityResult) ProtoMessage() {}
211 func (*EntityResult) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
213 func (m *EntityResult) GetEntity() *Entity {
220 func (m *EntityResult) GetVersion() int64 {
227 func (m *EntityResult) GetCursor() []byte {
234 // A query for entities.
236 // The projection to return. Defaults to returning all properties.
237 Projection []*Projection `protobuf:"bytes,2,rep,name=projection" json:"projection,omitempty"`
238 // The kinds to query (if empty, returns entities of all kinds).
239 // Currently at most 1 kind may be specified.
240 Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind" json:"kind,omitempty"`
241 // The filter to apply.
242 Filter *Filter `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
243 // The order to apply to the query results (if empty, order is unspecified).
244 Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order" json:"order,omitempty"`
245 // The properties to make distinct. The query results will contain the first
246 // result for each distinct combination of values for the given properties
247 // (if empty, all results are returned).
248 DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn" json:"distinct_on,omitempty"`
249 // A starting point for the query results. Query cursors are
250 // returned in query result batches and
251 // [can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
252 StartCursor []byte `protobuf:"bytes,7,opt,name=start_cursor,json=startCursor,proto3" json:"start_cursor,omitempty"`
253 // An ending point for the query results. Query cursors are
254 // returned in query result batches and
255 // [can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
256 EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
257 // The number of results to skip. Applies before limit, but after all other
258 // constraints. Optional. Must be >= 0 if specified.
259 Offset int32 `protobuf:"varint,10,opt,name=offset" json:"offset,omitempty"`
260 // The maximum number of results to return. Applies after all other
261 // constraints. Optional.
262 // Unspecified is interpreted as no limit.
263 // Must be >= 0 if specified.
264 Limit *google_protobuf3.Int32Value `protobuf:"bytes,12,opt,name=limit" json:"limit,omitempty"`
267 func (m *Query) Reset() { *m = Query{} }
268 func (m *Query) String() string { return proto.CompactTextString(m) }
269 func (*Query) ProtoMessage() {}
270 func (*Query) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} }
272 func (m *Query) GetProjection() []*Projection {
279 func (m *Query) GetKind() []*KindExpression {
286 func (m *Query) GetFilter() *Filter {
293 func (m *Query) GetOrder() []*PropertyOrder {
300 func (m *Query) GetDistinctOn() []*PropertyReference {
307 func (m *Query) GetStartCursor() []byte {
314 func (m *Query) GetEndCursor() []byte {
321 func (m *Query) GetOffset() int32 {
328 func (m *Query) GetLimit() *google_protobuf3.Int32Value {
335 // A representation of a kind.
336 type KindExpression struct {
337 // The name of the kind.
338 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
341 func (m *KindExpression) Reset() { *m = KindExpression{} }
342 func (m *KindExpression) String() string { return proto.CompactTextString(m) }
343 func (*KindExpression) ProtoMessage() {}
344 func (*KindExpression) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} }
346 func (m *KindExpression) GetName() string {
353 // A reference to a property relative to the kind expressions.
354 type PropertyReference struct {
355 // The name of the property.
356 // If name includes "."s, it may be interpreted as a property name path.
357 Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
360 func (m *PropertyReference) Reset() { *m = PropertyReference{} }
361 func (m *PropertyReference) String() string { return proto.CompactTextString(m) }
362 func (*PropertyReference) ProtoMessage() {}
363 func (*PropertyReference) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} }
365 func (m *PropertyReference) GetName() string {
372 // A representation of a property in a projection.
373 type Projection struct {
374 // The property to project.
375 Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
378 func (m *Projection) Reset() { *m = Projection{} }
379 func (m *Projection) String() string { return proto.CompactTextString(m) }
380 func (*Projection) ProtoMessage() {}
381 func (*Projection) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{4} }
383 func (m *Projection) GetProperty() *PropertyReference {
390 // The desired order for a specific property.
391 type PropertyOrder struct {
392 // The property to order by.
393 Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
394 // The direction to order by. Defaults to `ASCENDING`.
395 Direction PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,enum=google.datastore.v1beta3.PropertyOrder_Direction" json:"direction,omitempty"`
398 func (m *PropertyOrder) Reset() { *m = PropertyOrder{} }
399 func (m *PropertyOrder) String() string { return proto.CompactTextString(m) }
400 func (*PropertyOrder) ProtoMessage() {}
401 func (*PropertyOrder) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{5} }
403 func (m *PropertyOrder) GetProperty() *PropertyReference {
410 func (m *PropertyOrder) GetDirection() PropertyOrder_Direction {
414 return PropertyOrder_DIRECTION_UNSPECIFIED
417 // A holder for any type of filter.
419 // The type of filter.
421 // Types that are valid to be assigned to FilterType:
422 // *Filter_CompositeFilter
423 // *Filter_PropertyFilter
424 FilterType isFilter_FilterType `protobuf_oneof:"filter_type"`
427 func (m *Filter) Reset() { *m = Filter{} }
428 func (m *Filter) String() string { return proto.CompactTextString(m) }
429 func (*Filter) ProtoMessage() {}
430 func (*Filter) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{6} }
432 type isFilter_FilterType interface {
433 isFilter_FilterType()
436 type Filter_CompositeFilter struct {
437 CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,oneof"`
439 type Filter_PropertyFilter struct {
440 PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,oneof"`
443 func (*Filter_CompositeFilter) isFilter_FilterType() {}
444 func (*Filter_PropertyFilter) isFilter_FilterType() {}
446 func (m *Filter) GetFilterType() isFilter_FilterType {
453 func (m *Filter) GetCompositeFilter() *CompositeFilter {
454 if x, ok := m.GetFilterType().(*Filter_CompositeFilter); ok {
455 return x.CompositeFilter
460 func (m *Filter) GetPropertyFilter() *PropertyFilter {
461 if x, ok := m.GetFilterType().(*Filter_PropertyFilter); ok {
462 return x.PropertyFilter
467 // XXX_OneofFuncs is for the internal use of the proto package.
468 func (*Filter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
469 return _Filter_OneofMarshaler, _Filter_OneofUnmarshaler, _Filter_OneofSizer, []interface{}{
470 (*Filter_CompositeFilter)(nil),
471 (*Filter_PropertyFilter)(nil),
475 func _Filter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
478 switch x := m.FilterType.(type) {
479 case *Filter_CompositeFilter:
480 b.EncodeVarint(1<<3 | proto.WireBytes)
481 if err := b.EncodeMessage(x.CompositeFilter); err != nil {
484 case *Filter_PropertyFilter:
485 b.EncodeVarint(2<<3 | proto.WireBytes)
486 if err := b.EncodeMessage(x.PropertyFilter); err != nil {
491 return fmt.Errorf("Filter.FilterType has unexpected type %T", x)
496 func _Filter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
499 case 1: // filter_type.composite_filter
500 if wire != proto.WireBytes {
501 return true, proto.ErrInternalBadWireType
503 msg := new(CompositeFilter)
504 err := b.DecodeMessage(msg)
505 m.FilterType = &Filter_CompositeFilter{msg}
507 case 2: // filter_type.property_filter
508 if wire != proto.WireBytes {
509 return true, proto.ErrInternalBadWireType
511 msg := new(PropertyFilter)
512 err := b.DecodeMessage(msg)
513 m.FilterType = &Filter_PropertyFilter{msg}
520 func _Filter_OneofSizer(msg proto.Message) (n int) {
523 switch x := m.FilterType.(type) {
524 case *Filter_CompositeFilter:
525 s := proto.Size(x.CompositeFilter)
526 n += proto.SizeVarint(1<<3 | proto.WireBytes)
527 n += proto.SizeVarint(uint64(s))
529 case *Filter_PropertyFilter:
530 s := proto.Size(x.PropertyFilter)
531 n += proto.SizeVarint(2<<3 | proto.WireBytes)
532 n += proto.SizeVarint(uint64(s))
536 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
541 // A filter that merges multiple other filters using the given operator.
542 type CompositeFilter struct {
543 // The operator for combining multiple filters.
544 Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,enum=google.datastore.v1beta3.CompositeFilter_Operator" json:"op,omitempty"`
545 // The list of filters to combine.
546 // Must contain at least one filter.
547 Filters []*Filter `protobuf:"bytes,2,rep,name=filters" json:"filters,omitempty"`
550 func (m *CompositeFilter) Reset() { *m = CompositeFilter{} }
551 func (m *CompositeFilter) String() string { return proto.CompactTextString(m) }
552 func (*CompositeFilter) ProtoMessage() {}
553 func (*CompositeFilter) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{7} }
555 func (m *CompositeFilter) GetOp() CompositeFilter_Operator {
559 return CompositeFilter_OPERATOR_UNSPECIFIED
562 func (m *CompositeFilter) GetFilters() []*Filter {
569 // A filter on a specific property.
570 type PropertyFilter struct {
571 // The property to filter by.
572 Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
573 // The operator to filter by.
574 Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,enum=google.datastore.v1beta3.PropertyFilter_Operator" json:"op,omitempty"`
575 // The value to compare the property to.
576 Value *Value `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
579 func (m *PropertyFilter) Reset() { *m = PropertyFilter{} }
580 func (m *PropertyFilter) String() string { return proto.CompactTextString(m) }
581 func (*PropertyFilter) ProtoMessage() {}
582 func (*PropertyFilter) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{8} }
584 func (m *PropertyFilter) GetProperty() *PropertyReference {
591 func (m *PropertyFilter) GetOp() PropertyFilter_Operator {
595 return PropertyFilter_OPERATOR_UNSPECIFIED
598 func (m *PropertyFilter) GetValue() *Value {
605 // A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
606 type GqlQuery struct {
607 // A string of the format described
608 // [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
609 QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString" json:"query_string,omitempty"`
610 // When false, the query string must not contain any literals and instead must
611 // bind all values. For example,
612 // `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
613 // `SELECT * FROM Kind WHERE a = @value` is.
614 AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals" json:"allow_literals,omitempty"`
615 // For each non-reserved named binding site in the query string, there must be
616 // a named parameter with that name, but not necessarily the inverse.
618 // Key must match regex `[A-Za-z_$][A-Za-z_$0-9]*`, must not match regex
619 // `__.*__`, and must not be `""`.
620 NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
621 // Numbered binding site @1 references the first numbered parameter,
622 // effectively using 1-based indexing, rather than the usual 0.
624 // For each binding site numbered i in `query_string`, there must be an i-th
625 // numbered parameter. The inverse must also be true.
626 PositionalBindings []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings" json:"positional_bindings,omitempty"`
629 func (m *GqlQuery) Reset() { *m = GqlQuery{} }
630 func (m *GqlQuery) String() string { return proto.CompactTextString(m) }
631 func (*GqlQuery) ProtoMessage() {}
632 func (*GqlQuery) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{9} }
634 func (m *GqlQuery) GetQueryString() string {
641 func (m *GqlQuery) GetAllowLiterals() bool {
643 return m.AllowLiterals
648 func (m *GqlQuery) GetNamedBindings() map[string]*GqlQueryParameter {
650 return m.NamedBindings
655 func (m *GqlQuery) GetPositionalBindings() []*GqlQueryParameter {
657 return m.PositionalBindings
662 // A binding parameter for a GQL query.
663 type GqlQueryParameter struct {
664 // The type of parameter.
666 // Types that are valid to be assigned to ParameterType:
667 // *GqlQueryParameter_Value
668 // *GqlQueryParameter_Cursor
669 ParameterType isGqlQueryParameter_ParameterType `protobuf_oneof:"parameter_type"`
672 func (m *GqlQueryParameter) Reset() { *m = GqlQueryParameter{} }
673 func (m *GqlQueryParameter) String() string { return proto.CompactTextString(m) }
674 func (*GqlQueryParameter) ProtoMessage() {}
675 func (*GqlQueryParameter) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{10} }
677 type isGqlQueryParameter_ParameterType interface {
678 isGqlQueryParameter_ParameterType()
681 type GqlQueryParameter_Value struct {
682 Value *Value `protobuf:"bytes,2,opt,name=value,oneof"`
684 type GqlQueryParameter_Cursor struct {
685 Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3,oneof"`
688 func (*GqlQueryParameter_Value) isGqlQueryParameter_ParameterType() {}
689 func (*GqlQueryParameter_Cursor) isGqlQueryParameter_ParameterType() {}
691 func (m *GqlQueryParameter) GetParameterType() isGqlQueryParameter_ParameterType {
693 return m.ParameterType
698 func (m *GqlQueryParameter) GetValue() *Value {
699 if x, ok := m.GetParameterType().(*GqlQueryParameter_Value); ok {
705 func (m *GqlQueryParameter) GetCursor() []byte {
706 if x, ok := m.GetParameterType().(*GqlQueryParameter_Cursor); ok {
712 // XXX_OneofFuncs is for the internal use of the proto package.
713 func (*GqlQueryParameter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
714 return _GqlQueryParameter_OneofMarshaler, _GqlQueryParameter_OneofUnmarshaler, _GqlQueryParameter_OneofSizer, []interface{}{
715 (*GqlQueryParameter_Value)(nil),
716 (*GqlQueryParameter_Cursor)(nil),
720 func _GqlQueryParameter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
721 m := msg.(*GqlQueryParameter)
723 switch x := m.ParameterType.(type) {
724 case *GqlQueryParameter_Value:
725 b.EncodeVarint(2<<3 | proto.WireBytes)
726 if err := b.EncodeMessage(x.Value); err != nil {
729 case *GqlQueryParameter_Cursor:
730 b.EncodeVarint(3<<3 | proto.WireBytes)
731 b.EncodeRawBytes(x.Cursor)
734 return fmt.Errorf("GqlQueryParameter.ParameterType has unexpected type %T", x)
739 func _GqlQueryParameter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
740 m := msg.(*GqlQueryParameter)
742 case 2: // parameter_type.value
743 if wire != proto.WireBytes {
744 return true, proto.ErrInternalBadWireType
747 err := b.DecodeMessage(msg)
748 m.ParameterType = &GqlQueryParameter_Value{msg}
750 case 3: // parameter_type.cursor
751 if wire != proto.WireBytes {
752 return true, proto.ErrInternalBadWireType
754 x, err := b.DecodeRawBytes(true)
755 m.ParameterType = &GqlQueryParameter_Cursor{x}
762 func _GqlQueryParameter_OneofSizer(msg proto.Message) (n int) {
763 m := msg.(*GqlQueryParameter)
765 switch x := m.ParameterType.(type) {
766 case *GqlQueryParameter_Value:
767 s := proto.Size(x.Value)
768 n += proto.SizeVarint(2<<3 | proto.WireBytes)
769 n += proto.SizeVarint(uint64(s))
771 case *GqlQueryParameter_Cursor:
772 n += proto.SizeVarint(3<<3 | proto.WireBytes)
773 n += proto.SizeVarint(uint64(len(x.Cursor)))
777 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
782 // A batch of results produced by a query.
783 type QueryResultBatch struct {
784 // The number of results skipped, typically because of an offset.
785 SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"`
786 // A cursor that points to the position after the last skipped result.
787 // Will be set when `skipped_results` != 0.
788 SkippedCursor []byte `protobuf:"bytes,3,opt,name=skipped_cursor,json=skippedCursor,proto3" json:"skipped_cursor,omitempty"`
789 // The result type for every entity in `entity_results`.
790 EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,enum=google.datastore.v1beta3.EntityResult_ResultType" json:"entity_result_type,omitempty"`
791 // The results for this batch.
792 EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults" json:"entity_results,omitempty"`
793 // A cursor that points to the position after the last result in the batch.
794 EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
795 // The state of the query after the current batch.
796 MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,enum=google.datastore.v1beta3.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
797 // The version number of the snapshot this batch was returned from.
798 // This applies to the range of results from the query's `start_cursor` (or
799 // the beginning of the query if no cursor was given) to this batch's
800 // `end_cursor` (not the query's `end_cursor`).
802 // In a single transaction, subsequent query result batches for the same query
803 // can have a greater snapshot version number. Each batch's snapshot version
804 // is valid for all preceding batches.
805 // The value will be zero for eventually consistent queries.
806 SnapshotVersion int64 `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion" json:"snapshot_version,omitempty"`
809 func (m *QueryResultBatch) Reset() { *m = QueryResultBatch{} }
810 func (m *QueryResultBatch) String() string { return proto.CompactTextString(m) }
811 func (*QueryResultBatch) ProtoMessage() {}
812 func (*QueryResultBatch) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{11} }
814 func (m *QueryResultBatch) GetSkippedResults() int32 {
816 return m.SkippedResults
821 func (m *QueryResultBatch) GetSkippedCursor() []byte {
823 return m.SkippedCursor
828 func (m *QueryResultBatch) GetEntityResultType() EntityResult_ResultType {
830 return m.EntityResultType
832 return EntityResult_RESULT_TYPE_UNSPECIFIED
835 func (m *QueryResultBatch) GetEntityResults() []*EntityResult {
837 return m.EntityResults
842 func (m *QueryResultBatch) GetEndCursor() []byte {
849 func (m *QueryResultBatch) GetMoreResults() QueryResultBatch_MoreResultsType {
853 return QueryResultBatch_MORE_RESULTS_TYPE_UNSPECIFIED
856 func (m *QueryResultBatch) GetSnapshotVersion() int64 {
858 return m.SnapshotVersion
864 proto.RegisterType((*EntityResult)(nil), "google.datastore.v1beta3.EntityResult")
865 proto.RegisterType((*Query)(nil), "google.datastore.v1beta3.Query")
866 proto.RegisterType((*KindExpression)(nil), "google.datastore.v1beta3.KindExpression")
867 proto.RegisterType((*PropertyReference)(nil), "google.datastore.v1beta3.PropertyReference")
868 proto.RegisterType((*Projection)(nil), "google.datastore.v1beta3.Projection")
869 proto.RegisterType((*PropertyOrder)(nil), "google.datastore.v1beta3.PropertyOrder")
870 proto.RegisterType((*Filter)(nil), "google.datastore.v1beta3.Filter")
871 proto.RegisterType((*CompositeFilter)(nil), "google.datastore.v1beta3.CompositeFilter")
872 proto.RegisterType((*PropertyFilter)(nil), "google.datastore.v1beta3.PropertyFilter")
873 proto.RegisterType((*GqlQuery)(nil), "google.datastore.v1beta3.GqlQuery")
874 proto.RegisterType((*GqlQueryParameter)(nil), "google.datastore.v1beta3.GqlQueryParameter")
875 proto.RegisterType((*QueryResultBatch)(nil), "google.datastore.v1beta3.QueryResultBatch")
876 proto.RegisterEnum("google.datastore.v1beta3.EntityResult_ResultType", EntityResult_ResultType_name, EntityResult_ResultType_value)
877 proto.RegisterEnum("google.datastore.v1beta3.PropertyOrder_Direction", PropertyOrder_Direction_name, PropertyOrder_Direction_value)
878 proto.RegisterEnum("google.datastore.v1beta3.CompositeFilter_Operator", CompositeFilter_Operator_name, CompositeFilter_Operator_value)
879 proto.RegisterEnum("google.datastore.v1beta3.PropertyFilter_Operator", PropertyFilter_Operator_name, PropertyFilter_Operator_value)
880 proto.RegisterEnum("google.datastore.v1beta3.QueryResultBatch_MoreResultsType", QueryResultBatch_MoreResultsType_name, QueryResultBatch_MoreResultsType_value)
883 func init() { proto.RegisterFile("google/datastore/v1beta3/query.proto", fileDescriptor2) }
885 var fileDescriptor2 = []byte{
886 // 1312 bytes of a gzipped FileDescriptorProto
887 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcb, 0x6e, 0xdb, 0x46,
888 0x17, 0x36, 0x29, 0xc9, 0x97, 0xa3, 0x1b, 0x33, 0xf9, 0xff, 0x94, 0x71, 0x2e, 0x75, 0x88, 0xa4,
889 0x51, 0x50, 0x54, 0x82, 0x15, 0x04, 0x0d, 0xd2, 0x76, 0xa1, 0x0b, 0x6d, 0xab, 0x91, 0x45, 0x65,
890 0x24, 0x1b, 0x48, 0x91, 0x82, 0xa0, 0xa5, 0xb1, 0xc2, 0x86, 0x22, 0x99, 0xe1, 0x38, 0x89, 0xdf,
891 0xa2, 0x9b, 0x02, 0x7d, 0x86, 0x3e, 0x45, 0x17, 0xdd, 0x76, 0xdb, 0x6d, 0x1f, 0xa0, 0x9b, 0xbe,
892 0x41, 0x0b, 0xce, 0x0c, 0x75, 0x73, 0x14, 0xb9, 0x40, 0x76, 0x9a, 0x33, 0xdf, 0xf7, 0x9d, 0x99,
893 0x8f, 0x67, 0x66, 0x8e, 0xe0, 0xee, 0x28, 0x08, 0x46, 0x1e, 0xa9, 0x0c, 0x1d, 0xe6, 0x44, 0x2c,
894 0xa0, 0xa4, 0xf2, 0x66, 0xf7, 0x84, 0x30, 0xe7, 0x61, 0xe5, 0xf5, 0x19, 0xa1, 0xe7, 0xe5, 0x90,
895 0x06, 0x2c, 0x40, 0xba, 0x40, 0x95, 0x27, 0xa8, 0xb2, 0x44, 0x6d, 0xdf, 0x94, 0x7c, 0x27, 0x74,
896 0x2b, 0x8e, 0xef, 0x07, 0xcc, 0x61, 0x6e, 0xe0, 0x47, 0x82, 0xb7, 0x7d, 0x6f, 0xa9, 0x3a, 0xf1,
897 0x99, 0xcb, 0xa4, 0xfc, 0xf6, 0x6d, 0x09, 0xe3, 0xa3, 0x93, 0xb3, 0xd3, 0xca, 0x5b, 0xea, 0x84,
898 0x21, 0xa1, 0x89, 0x8c, 0x4c, 0x5f, 0x61, 0xe7, 0x21, 0xa9, 0x78, 0x0e, 0xf3, 0xfc, 0x91, 0x98,
899 0x31, 0x7e, 0x57, 0x20, 0x67, 0x72, 0x29, 0x4c, 0xa2, 0x33, 0x8f, 0xa1, 0xc7, 0xb0, 0x2e, 0xa4,
900 0x75, 0x65, 0x47, 0x29, 0x65, 0xab, 0x3b, 0xe5, 0x65, 0x4b, 0x2f, 0x4b, 0x9e, 0xc4, 0x23, 0x1d,
901 0x36, 0xde, 0x10, 0x1a, 0xb9, 0x81, 0xaf, 0xa7, 0x77, 0x94, 0x52, 0x0a, 0x27, 0x43, 0x74, 0x0d,
902 0xd6, 0x07, 0x67, 0x34, 0x0a, 0xa8, 0x9e, 0xda, 0x51, 0x4a, 0x39, 0x2c, 0x47, 0xc6, 0x33, 0x00,
903 0x91, 0xb5, 0x7f, 0x1e, 0x12, 0x74, 0x03, 0x3e, 0xc1, 0x66, 0xef, 0xa8, 0xdd, 0xb7, 0xfb, 0xcf,
904 0xbb, 0xa6, 0x7d, 0xd4, 0xe9, 0x75, 0xcd, 0x46, 0x6b, 0xaf, 0x65, 0x36, 0xb5, 0x35, 0xb4, 0x09,
905 0xe9, 0xbd, 0xa3, 0x76, 0x5b, 0x53, 0x50, 0x01, 0xa0, 0x8b, 0xad, 0x6f, 0xcd, 0x46, 0xbf, 0x65,
906 0x75, 0x34, 0x15, 0xe5, 0x60, 0xf3, 0xa9, 0xf9, 0xdc, 0xb6, 0x3a, 0xed, 0xe7, 0x5a, 0xca, 0xf8,
907 0x33, 0x05, 0x99, 0x67, 0xb1, 0xf1, 0xa8, 0x09, 0x10, 0xd2, 0xe0, 0x07, 0x32, 0x88, 0xfd, 0xd4,
908 0xd5, 0x9d, 0x54, 0x29, 0x5b, 0xbd, 0xbb, 0x7c, 0x33, 0xdd, 0x09, 0x16, 0xcf, 0xf0, 0xd0, 0xd7,
909 0x90, 0x7e, 0xe5, 0xfa, 0x43, 0x3d, 0xc5, 0xf9, 0xa5, 0xe5, 0xfc, 0xa7, 0xae, 0x3f, 0x34, 0xdf,
910 0x85, 0x94, 0x44, 0xf1, 0x96, 0x31, 0x67, 0xc5, 0x66, 0x9e, 0xba, 0x1e, 0x23, 0x94, 0x3b, 0xf2,
911 0x41, 0x33, 0xf7, 0x38, 0x0e, 0x4b, 0x3c, 0xfa, 0x06, 0x32, 0x01, 0x1d, 0x12, 0xaa, 0x67, 0x78,
912 0xe2, 0xfb, 0x1f, 0x5c, 0x78, 0x48, 0x28, 0x3b, 0xb7, 0x62, 0x38, 0x16, 0x2c, 0xd4, 0x86, 0xec,
913 0xd0, 0x8d, 0x98, 0xeb, 0x0f, 0x98, 0x1d, 0xf8, 0xfa, 0x3a, 0x17, 0xf9, 0x7c, 0xb5, 0x08, 0x26,
914 0xa7, 0x84, 0x12, 0x7f, 0x40, 0x30, 0x24, 0x7c, 0xcb, 0x47, 0x77, 0x20, 0x17, 0x31, 0x87, 0x32,
915 0x5b, 0x7e, 0xc5, 0x0d, 0xfe, 0x15, 0xb3, 0x3c, 0xd6, 0xe0, 0x21, 0x74, 0x0b, 0x80, 0xf8, 0xc3,
916 0x04, 0xb0, 0xc9, 0x01, 0x5b, 0xc4, 0x1f, 0xca, 0xe9, 0x6b, 0xb0, 0x1e, 0x9c, 0x9e, 0x46, 0x84,
917 0xe9, 0xb0, 0xa3, 0x94, 0x32, 0x58, 0x8e, 0xd0, 0x2e, 0x64, 0x3c, 0x77, 0xec, 0x32, 0x3d, 0xc7,
918 0xfd, 0xb9, 0x91, 0xac, 0x30, 0x29, 0xe4, 0x72, 0xcb, 0x67, 0x0f, 0xab, 0xc7, 0x8e, 0x77, 0x46,
919 0xb0, 0x40, 0x1a, 0x77, 0xa1, 0x30, 0xef, 0x35, 0x42, 0x90, 0xf6, 0x9d, 0x31, 0xe1, 0x05, 0xbb,
920 0x85, 0xf9, 0x6f, 0xe3, 0x3e, 0x5c, 0xb9, 0xb0, 0xa7, 0x09, 0x50, 0x9d, 0x01, 0x1e, 0x01, 0x4c,
921 0x3f, 0x3d, 0xda, 0x87, 0xcd, 0x50, 0xd2, 0x64, 0xfd, 0xff, 0x27, 0xd3, 0x26, 0x64, 0xe3, 0x6f,
922 0x05, 0xf2, 0x73, 0x5f, 0xe6, 0xa3, 0x49, 0x23, 0x0b, 0xb6, 0x86, 0x2e, 0x9d, 0xd4, 0xb5, 0x52,
923 0x2a, 0x54, 0x77, 0x2f, 0x59, 0x1e, 0xe5, 0x66, 0x42, 0xc4, 0x53, 0x0d, 0xc3, 0x84, 0xad, 0x49,
924 0x1c, 0x5d, 0x87, 0xff, 0x37, 0x5b, 0x58, 0x9c, 0xae, 0x85, 0x33, 0x98, 0x87, 0xad, 0x5a, 0xaf,
925 0x61, 0x76, 0x9a, 0xad, 0xce, 0xbe, 0x38, 0x88, 0x4d, 0x73, 0x32, 0x56, 0x8d, 0xdf, 0x14, 0x58,
926 0x17, 0x55, 0x8c, 0x8e, 0x41, 0x1b, 0x04, 0xe3, 0x30, 0x88, 0x5c, 0x46, 0x6c, 0x79, 0x02, 0xc4,
927 0x9e, 0x1f, 0x2c, 0x5f, 0x69, 0x23, 0x61, 0x08, 0x91, 0x83, 0x35, 0x5c, 0x1c, 0xcc, 0x87, 0x50,
928 0x0f, 0x8a, 0x89, 0x0d, 0x89, 0xac, 0xca, 0x65, 0x4b, 0xab, 0x0d, 0x98, 0xa8, 0x16, 0xc2, 0xb9,
929 0x48, 0x3d, 0x0f, 0x59, 0xa1, 0x65, 0xc7, 0xd7, 0xa3, 0xf1, 0xab, 0x02, 0xc5, 0x85, 0xa5, 0xa0,
930 0x3a, 0xa8, 0x41, 0xc8, 0x77, 0x50, 0xa8, 0x56, 0x2f, 0xbd, 0x83, 0xb2, 0x15, 0x12, 0xea, 0xb0,
931 0x80, 0x62, 0x35, 0x08, 0xd1, 0x13, 0xd8, 0x10, 0x69, 0x22, 0x79, 0x19, 0xad, 0xbe, 0x0c, 0x12,
932 0x82, 0xf1, 0x05, 0x6c, 0x26, 0x5a, 0x48, 0x87, 0xff, 0x59, 0x5d, 0x13, 0xd7, 0xfa, 0x16, 0x5e,
933 0xf8, 0x3e, 0x1b, 0x90, 0xaa, 0x75, 0x9a, 0x9a, 0x62, 0xfc, 0xa5, 0x42, 0x61, 0x7e, 0xdb, 0x1f,
934 0xaf, 0xfa, 0x6a, 0xdc, 0x8a, 0x4b, 0x97, 0xdd, 0xfb, 0x9c, 0x78, 0x04, 0x99, 0x37, 0xf1, 0x89,
935 0xe6, 0xaf, 0x41, 0xb6, 0xfa, 0xe9, 0x72, 0x15, 0x79, 0xf0, 0x39, 0xda, 0xf8, 0x49, 0xb9, 0x94,
936 0x0b, 0x79, 0xd8, 0x6a, 0x9b, 0xbd, 0x9e, 0xdd, 0x3f, 0xa8, 0x75, 0x34, 0x05, 0x5d, 0x03, 0x34,
937 0x19, 0xda, 0x16, 0xb6, 0xcd, 0x67, 0x47, 0xb5, 0xb6, 0xa6, 0x22, 0x0d, 0x72, 0xfb, 0xd8, 0xac,
938 0xf5, 0x4d, 0x2c, 0x90, 0xa9, 0xb8, 0xf2, 0x67, 0x23, 0x53, 0x70, 0x1a, 0x6d, 0x41, 0x46, 0xfc,
939 0xcc, 0xc4, 0xbc, 0x83, 0x5a, 0xcf, 0xae, 0x75, 0x1a, 0x66, 0xaf, 0x6f, 0x61, 0x2d, 0x6b, 0xfc,
940 0xa3, 0xc2, 0xe6, 0xfe, 0x6b, 0x4f, 0xbc, 0x3a, 0x77, 0x20, 0xc7, 0xdf, 0x7d, 0x3b, 0x62, 0xd4,
941 0xf5, 0x47, 0xf2, 0x4e, 0xca, 0xf2, 0x58, 0x8f, 0x87, 0xd0, 0x3d, 0x28, 0x38, 0x9e, 0x17, 0xbc,
942 0xb5, 0x3d, 0x97, 0x11, 0xea, 0x78, 0x11, 0x77, 0x73, 0x13, 0xe7, 0x79, 0xb4, 0x2d, 0x83, 0xe8,
943 0x05, 0x14, 0xe2, 0x0b, 0x6a, 0x68, 0x9f, 0xb8, 0xfe, 0xd0, 0xf5, 0x47, 0x91, 0x7c, 0x0a, 0x1e,
944 0x2d, 0xb7, 0x2b, 0x59, 0x45, 0xb9, 0x13, 0x13, 0xeb, 0x92, 0x67, 0xfa, 0x8c, 0x9e, 0xe3, 0xbc,
945 0x3f, 0x1b, 0x43, 0x2f, 0xe0, 0x2a, 0x2f, 0x55, 0x37, 0xf0, 0x1d, 0x6f, 0x9a, 0x22, 0xbd, 0xea,
946 0xa1, 0x48, 0x52, 0x74, 0x1d, 0xea, 0x8c, 0x49, 0x5c, 0xa4, 0x68, 0xaa, 0x93, 0xa8, 0x6f, 0x8f,
947 0x01, 0x5d, 0x5c, 0x02, 0xd2, 0x20, 0xf5, 0x8a, 0x9c, 0x4b, 0x4b, 0xe2, 0x9f, 0xa8, 0x96, 0x54,
948 0x82, 0xba, 0xaa, 0x24, 0x2f, 0xe6, 0x15, 0xcc, 0x27, 0xea, 0x63, 0xc5, 0x78, 0x07, 0x57, 0x2e,
949 0xcc, 0xa3, 0x2f, 0xe7, 0xb5, 0x57, 0x55, 0xd9, 0xc1, 0x9a, 0x54, 0x44, 0xfa, 0x7c, 0xb7, 0x72,
950 0xb0, 0x96, 0xf4, 0x2b, 0x75, 0x0d, 0x0a, 0x61, 0xa2, 0x2f, 0x2e, 0x8b, 0x3f, 0xd2, 0xa0, 0xf1,
951 0xbc, 0xa2, 0x8f, 0xa9, 0x3b, 0x6c, 0xf0, 0x12, 0xdd, 0x87, 0x62, 0xf4, 0xca, 0x0d, 0x43, 0x32,
952 0xb4, 0x29, 0x0f, 0x47, 0xfa, 0x3a, 0x7f, 0xf5, 0x0a, 0x32, 0x2c, 0xc0, 0x51, 0x5c, 0x09, 0x09,
953 0x70, 0xae, 0x3f, 0xca, 0xcb, 0xa8, 0x7c, 0x3c, 0x6d, 0x40, 0xa2, 0xc5, 0x92, 0x72, 0x3c, 0xb5,
954 0xbc, 0x8d, 0x76, 0x57, 0xb6, 0x67, 0x9c, 0x52, 0x9e, 0xf6, 0x59, 0x58, 0x23, 0x33, 0x13, 0xbc,
955 0xf3, 0x3a, 0x84, 0xc2, 0x5c, 0x82, 0xe4, 0x86, 0xfa, 0xec, 0x72, 0xe2, 0x38, 0x3f, 0xab, 0x18,
956 0x2d, 0xf4, 0x02, 0xe9, 0xc5, 0x5e, 0xe0, 0x7b, 0xc8, 0x8d, 0x03, 0x4a, 0x26, 0xb9, 0x32, 0x7c,
957 0x23, 0x4f, 0x96, 0xe7, 0x5a, 0x34, 0xb8, 0x7c, 0x18, 0x50, 0x22, 0x93, 0xf1, 0x1d, 0x65, 0xc7,
958 0xd3, 0x00, 0x7a, 0x00, 0x5a, 0xe4, 0x3b, 0x61, 0xf4, 0x32, 0x60, 0x76, 0xd2, 0x8f, 0x6e, 0xf0,
959 0x7e, 0xb4, 0x98, 0xc4, 0x8f, 0x45, 0xd8, 0xf8, 0x59, 0x81, 0xe2, 0x82, 0x16, 0xba, 0x03, 0xb7,
960 0x0e, 0x2d, 0x6c, 0xda, 0xa2, 0x15, 0xed, 0xbd, 0xaf, 0x17, 0xd5, 0x20, 0xd7, 0xb1, 0xfa, 0xf6,
961 0x5e, 0xab, 0xd3, 0xea, 0x1d, 0x98, 0x4d, 0x4d, 0x41, 0x37, 0x41, 0x9f, 0x23, 0xd5, 0xf6, 0xe2,
962 0x5b, 0xa4, 0xdd, 0x3a, 0x6c, 0xf5, 0x35, 0x15, 0xdd, 0x82, 0xeb, 0xef, 0x99, 0x6d, 0x1c, 0xe1,
963 0x9e, 0x85, 0xb5, 0x34, 0xba, 0x0a, 0xc5, 0x8e, 0x65, 0xcf, 0x22, 0xb4, 0x54, 0xfd, 0x47, 0x05,
964 0x6e, 0x0e, 0x82, 0xf1, 0x52, 0x53, 0xea, 0x20, 0xca, 0x3d, 0xee, 0x93, 0xba, 0xca, 0x77, 0x35,
965 0x89, 0x1b, 0x05, 0x9e, 0xe3, 0x8f, 0xca, 0x01, 0x1d, 0x55, 0x46, 0xc4, 0xe7, 0x5d, 0x54, 0x45,
966 0x4c, 0x39, 0xa1, 0x1b, 0x5d, 0xfc, 0x1b, 0xf1, 0xd5, 0x24, 0xf2, 0x8b, 0x7a, 0x7b, 0x5f, 0x68,
967 0x34, 0xbc, 0xe0, 0x6c, 0x58, 0x6e, 0x4e, 0x32, 0x1e, 0xef, 0xd6, 0x63, 0xe8, 0xc9, 0x3a, 0x97,
968 0x7b, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4a, 0xc8, 0xc3, 0x34, 0xf2, 0x0c, 0x00, 0x00,