transfer.sh/vendor/cloud.google.com/go/firestore/genproto/test.pb.go
Andrea Spacca 82493d6dcb add GDrive provider support (#118)
* GDrive provider support
* More reliable basedir ownership
* Fix mimetype
2018-06-19 15:30:26 +02:00

1443 lines
46 KiB
Go

// Code generated by protoc-gen-go.
// source: test.proto
// DO NOT EDIT!
/*
Package tests is a generated protocol buffer package.
It is generated from these files:
test.proto
It has these top-level messages:
TestSuite
Test
GetTest
CreateTest
SetTest
UpdateTest
UpdatePathsTest
DeleteTest
SetOption
QueryTest
Clause
Select
Where
OrderBy
Cursor
DocSnapshot
FieldPath
ListenTest
Snapshot
DocChange
*/
package tests
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_firestore_v1beta1 "google.golang.org/genproto/googleapis/firestore/v1beta1"
import google_firestore_v1beta11 "google.golang.org/genproto/googleapis/firestore/v1beta1"
import google_firestore_v1beta14 "google.golang.org/genproto/googleapis/firestore/v1beta1"
import google_firestore_v1beta12 "google.golang.org/genproto/googleapis/firestore/v1beta1"
import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
type DocChange_Kind int32
const (
DocChange_KIND_UNSPECIFIED DocChange_Kind = 0
DocChange_ADDED DocChange_Kind = 1
DocChange_REMOVED DocChange_Kind = 2
DocChange_MODIFIED DocChange_Kind = 3
)
var DocChange_Kind_name = map[int32]string{
0: "KIND_UNSPECIFIED",
1: "ADDED",
2: "REMOVED",
3: "MODIFIED",
}
var DocChange_Kind_value = map[string]int32{
"KIND_UNSPECIFIED": 0,
"ADDED": 1,
"REMOVED": 2,
"MODIFIED": 3,
}
func (x DocChange_Kind) String() string {
return proto.EnumName(DocChange_Kind_name, int32(x))
}
func (DocChange_Kind) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
// A collection of tests.
type TestSuite struct {
Tests []*Test `protobuf:"bytes,1,rep,name=tests" json:"tests,omitempty"`
}
func (m *TestSuite) Reset() { *m = TestSuite{} }
func (m *TestSuite) String() string { return proto.CompactTextString(m) }
func (*TestSuite) ProtoMessage() {}
func (*TestSuite) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *TestSuite) GetTests() []*Test {
if m != nil {
return m.Tests
}
return nil
}
// A Test describes a single client method call and its expected result.
type Test struct {
Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
// Types that are valid to be assigned to Test:
// *Test_Get
// *Test_Create
// *Test_Set
// *Test_Update
// *Test_UpdatePaths
// *Test_Delete
// *Test_Query
// *Test_Listen
Test isTest_Test `protobuf_oneof:"test"`
}
func (m *Test) Reset() { *m = Test{} }
func (m *Test) String() string { return proto.CompactTextString(m) }
func (*Test) ProtoMessage() {}
func (*Test) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type isTest_Test interface {
isTest_Test()
}
type Test_Get struct {
Get *GetTest `protobuf:"bytes,2,opt,name=get,oneof"`
}
type Test_Create struct {
Create *CreateTest `protobuf:"bytes,3,opt,name=create,oneof"`
}
type Test_Set struct {
Set *SetTest `protobuf:"bytes,4,opt,name=set,oneof"`
}
type Test_Update struct {
Update *UpdateTest `protobuf:"bytes,5,opt,name=update,oneof"`
}
type Test_UpdatePaths struct {
UpdatePaths *UpdatePathsTest `protobuf:"bytes,6,opt,name=update_paths,json=updatePaths,oneof"`
}
type Test_Delete struct {
Delete *DeleteTest `protobuf:"bytes,7,opt,name=delete,oneof"`
}
type Test_Query struct {
Query *QueryTest `protobuf:"bytes,8,opt,name=query,oneof"`
}
type Test_Listen struct {
Listen *ListenTest `protobuf:"bytes,9,opt,name=listen,oneof"`
}
func (*Test_Get) isTest_Test() {}
func (*Test_Create) isTest_Test() {}
func (*Test_Set) isTest_Test() {}
func (*Test_Update) isTest_Test() {}
func (*Test_UpdatePaths) isTest_Test() {}
func (*Test_Delete) isTest_Test() {}
func (*Test_Query) isTest_Test() {}
func (*Test_Listen) isTest_Test() {}
func (m *Test) GetTest() isTest_Test {
if m != nil {
return m.Test
}
return nil
}
func (m *Test) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *Test) GetGet() *GetTest {
if x, ok := m.GetTest().(*Test_Get); ok {
return x.Get
}
return nil
}
func (m *Test) GetCreate() *CreateTest {
if x, ok := m.GetTest().(*Test_Create); ok {
return x.Create
}
return nil
}
func (m *Test) GetSet() *SetTest {
if x, ok := m.GetTest().(*Test_Set); ok {
return x.Set
}
return nil
}
func (m *Test) GetUpdate() *UpdateTest {
if x, ok := m.GetTest().(*Test_Update); ok {
return x.Update
}
return nil
}
func (m *Test) GetUpdatePaths() *UpdatePathsTest {
if x, ok := m.GetTest().(*Test_UpdatePaths); ok {
return x.UpdatePaths
}
return nil
}
func (m *Test) GetDelete() *DeleteTest {
if x, ok := m.GetTest().(*Test_Delete); ok {
return x.Delete
}
return nil
}
func (m *Test) GetQuery() *QueryTest {
if x, ok := m.GetTest().(*Test_Query); ok {
return x.Query
}
return nil
}
func (m *Test) GetListen() *ListenTest {
if x, ok := m.GetTest().(*Test_Listen); ok {
return x.Listen
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*Test) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _Test_OneofMarshaler, _Test_OneofUnmarshaler, _Test_OneofSizer, []interface{}{
(*Test_Get)(nil),
(*Test_Create)(nil),
(*Test_Set)(nil),
(*Test_Update)(nil),
(*Test_UpdatePaths)(nil),
(*Test_Delete)(nil),
(*Test_Query)(nil),
(*Test_Listen)(nil),
}
}
func _Test_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*Test)
// test
switch x := m.Test.(type) {
case *Test_Get:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Get); err != nil {
return err
}
case *Test_Create:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Create); err != nil {
return err
}
case *Test_Set:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Set); err != nil {
return err
}
case *Test_Update:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Update); err != nil {
return err
}
case *Test_UpdatePaths:
b.EncodeVarint(6<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.UpdatePaths); err != nil {
return err
}
case *Test_Delete:
b.EncodeVarint(7<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Delete); err != nil {
return err
}
case *Test_Query:
b.EncodeVarint(8<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Query); err != nil {
return err
}
case *Test_Listen:
b.EncodeVarint(9<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Listen); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("Test.Test has unexpected type %T", x)
}
return nil
}
func _Test_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*Test)
switch tag {
case 2: // test.get
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(GetTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Get{msg}
return true, err
case 3: // test.create
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CreateTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Create{msg}
return true, err
case 4: // test.set
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(SetTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Set{msg}
return true, err
case 5: // test.update
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(UpdateTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Update{msg}
return true, err
case 6: // test.update_paths
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(UpdatePathsTest)
err := b.DecodeMessage(msg)
m.Test = &Test_UpdatePaths{msg}
return true, err
case 7: // test.delete
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(DeleteTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Delete{msg}
return true, err
case 8: // test.query
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(QueryTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Query{msg}
return true, err
case 9: // test.listen
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ListenTest)
err := b.DecodeMessage(msg)
m.Test = &Test_Listen{msg}
return true, err
default:
return false, nil
}
}
func _Test_OneofSizer(msg proto.Message) (n int) {
m := msg.(*Test)
// test
switch x := m.Test.(type) {
case *Test_Get:
s := proto.Size(x.Get)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Create:
s := proto.Size(x.Create)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Set:
s := proto.Size(x.Set)
n += proto.SizeVarint(4<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Update:
s := proto.Size(x.Update)
n += proto.SizeVarint(5<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_UpdatePaths:
s := proto.Size(x.UpdatePaths)
n += proto.SizeVarint(6<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Delete:
s := proto.Size(x.Delete)
n += proto.SizeVarint(7<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Query:
s := proto.Size(x.Query)
n += proto.SizeVarint(8<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Test_Listen:
s := proto.Size(x.Listen)
n += proto.SizeVarint(9<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// Call to the DocumentRef.Get method.
type GetTest struct {
// The path of the doc, e.g. "projects/projectID/databases/(default)/documents/C/d"
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
// The request that the call should send to the Firestore service.
Request *google_firestore_v1beta14.GetDocumentRequest `protobuf:"bytes,2,opt,name=request" json:"request,omitempty"`
}
func (m *GetTest) Reset() { *m = GetTest{} }
func (m *GetTest) String() string { return proto.CompactTextString(m) }
func (*GetTest) ProtoMessage() {}
func (*GetTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *GetTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *GetTest) GetRequest() *google_firestore_v1beta14.GetDocumentRequest {
if m != nil {
return m.Request
}
return nil
}
// Call to DocumentRef.Create.
type CreateTest struct {
// The path of the doc, e.g. "projects/projectID/databases/(default)/documents/C/d"
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
// The data passed to Create, as JSON. The strings "Delete" and "ServerTimestamp"
// denote the two special sentinel values. Values that could be interpreted as integers
// (i.e. digit strings) should be treated as integers.
JsonData string `protobuf:"bytes,2,opt,name=json_data,json=jsonData" json:"json_data,omitempty"`
// The request that the call should generate.
Request *google_firestore_v1beta14.CommitRequest `protobuf:"bytes,3,opt,name=request" json:"request,omitempty"`
// If true, the call should result in an error without generating a request.
// If this is true, request should not be set.
IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *CreateTest) Reset() { *m = CreateTest{} }
func (m *CreateTest) String() string { return proto.CompactTextString(m) }
func (*CreateTest) ProtoMessage() {}
func (*CreateTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *CreateTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *CreateTest) GetJsonData() string {
if m != nil {
return m.JsonData
}
return ""
}
func (m *CreateTest) GetRequest() *google_firestore_v1beta14.CommitRequest {
if m != nil {
return m.Request
}
return nil
}
func (m *CreateTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
// A call to DocumentRef.Set.
type SetTest struct {
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
Option *SetOption `protobuf:"bytes,2,opt,name=option" json:"option,omitempty"`
JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData" json:"json_data,omitempty"`
Request *google_firestore_v1beta14.CommitRequest `protobuf:"bytes,4,opt,name=request" json:"request,omitempty"`
IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *SetTest) Reset() { *m = SetTest{} }
func (m *SetTest) String() string { return proto.CompactTextString(m) }
func (*SetTest) ProtoMessage() {}
func (*SetTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *SetTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *SetTest) GetOption() *SetOption {
if m != nil {
return m.Option
}
return nil
}
func (m *SetTest) GetJsonData() string {
if m != nil {
return m.JsonData
}
return ""
}
func (m *SetTest) GetRequest() *google_firestore_v1beta14.CommitRequest {
if m != nil {
return m.Request
}
return nil
}
func (m *SetTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
// A call to the form of DocumentRef.Update that represents the data as a map
// or dictionary.
type UpdateTest struct {
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
Precondition *google_firestore_v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition" json:"precondition,omitempty"`
JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData" json:"json_data,omitempty"`
Request *google_firestore_v1beta14.CommitRequest `protobuf:"bytes,4,opt,name=request" json:"request,omitempty"`
IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *UpdateTest) Reset() { *m = UpdateTest{} }
func (m *UpdateTest) String() string { return proto.CompactTextString(m) }
func (*UpdateTest) ProtoMessage() {}
func (*UpdateTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *UpdateTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *UpdateTest) GetPrecondition() *google_firestore_v1beta1.Precondition {
if m != nil {
return m.Precondition
}
return nil
}
func (m *UpdateTest) GetJsonData() string {
if m != nil {
return m.JsonData
}
return ""
}
func (m *UpdateTest) GetRequest() *google_firestore_v1beta14.CommitRequest {
if m != nil {
return m.Request
}
return nil
}
func (m *UpdateTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
// A call to the form of DocumentRef.Update that represents the data as a list
// of field paths and their values.
type UpdatePathsTest struct {
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
Precondition *google_firestore_v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition" json:"precondition,omitempty"`
// parallel sequences: field_paths[i] corresponds to json_values[i]
FieldPaths []*FieldPath `protobuf:"bytes,3,rep,name=field_paths,json=fieldPaths" json:"field_paths,omitempty"`
JsonValues []string `protobuf:"bytes,4,rep,name=json_values,json=jsonValues" json:"json_values,omitempty"`
Request *google_firestore_v1beta14.CommitRequest `protobuf:"bytes,5,opt,name=request" json:"request,omitempty"`
IsError bool `protobuf:"varint,6,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *UpdatePathsTest) Reset() { *m = UpdatePathsTest{} }
func (m *UpdatePathsTest) String() string { return proto.CompactTextString(m) }
func (*UpdatePathsTest) ProtoMessage() {}
func (*UpdatePathsTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *UpdatePathsTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *UpdatePathsTest) GetPrecondition() *google_firestore_v1beta1.Precondition {
if m != nil {
return m.Precondition
}
return nil
}
func (m *UpdatePathsTest) GetFieldPaths() []*FieldPath {
if m != nil {
return m.FieldPaths
}
return nil
}
func (m *UpdatePathsTest) GetJsonValues() []string {
if m != nil {
return m.JsonValues
}
return nil
}
func (m *UpdatePathsTest) GetRequest() *google_firestore_v1beta14.CommitRequest {
if m != nil {
return m.Request
}
return nil
}
func (m *UpdatePathsTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
// A call to DocmentRef.Delete
type DeleteTest struct {
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath" json:"doc_ref_path,omitempty"`
Precondition *google_firestore_v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition" json:"precondition,omitempty"`
Request *google_firestore_v1beta14.CommitRequest `protobuf:"bytes,3,opt,name=request" json:"request,omitempty"`
IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *DeleteTest) Reset() { *m = DeleteTest{} }
func (m *DeleteTest) String() string { return proto.CompactTextString(m) }
func (*DeleteTest) ProtoMessage() {}
func (*DeleteTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *DeleteTest) GetDocRefPath() string {
if m != nil {
return m.DocRefPath
}
return ""
}
func (m *DeleteTest) GetPrecondition() *google_firestore_v1beta1.Precondition {
if m != nil {
return m.Precondition
}
return nil
}
func (m *DeleteTest) GetRequest() *google_firestore_v1beta14.CommitRequest {
if m != nil {
return m.Request
}
return nil
}
func (m *DeleteTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
// An option to the DocumentRef.Set call.
type SetOption struct {
All bool `protobuf:"varint,1,opt,name=all" json:"all,omitempty"`
Fields []*FieldPath `protobuf:"bytes,2,rep,name=fields" json:"fields,omitempty"`
}
func (m *SetOption) Reset() { *m = SetOption{} }
func (m *SetOption) String() string { return proto.CompactTextString(m) }
func (*SetOption) ProtoMessage() {}
func (*SetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *SetOption) GetAll() bool {
if m != nil {
return m.All
}
return false
}
func (m *SetOption) GetFields() []*FieldPath {
if m != nil {
return m.Fields
}
return nil
}
type QueryTest struct {
CollPath string `protobuf:"bytes,1,opt,name=coll_path,json=collPath" json:"coll_path,omitempty"`
Clauses []*Clause `protobuf:"bytes,2,rep,name=clauses" json:"clauses,omitempty"`
Query *google_firestore_v1beta12.StructuredQuery `protobuf:"bytes,3,opt,name=query" json:"query,omitempty"`
IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *QueryTest) Reset() { *m = QueryTest{} }
func (m *QueryTest) String() string { return proto.CompactTextString(m) }
func (*QueryTest) ProtoMessage() {}
func (*QueryTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *QueryTest) GetCollPath() string {
if m != nil {
return m.CollPath
}
return ""
}
func (m *QueryTest) GetClauses() []*Clause {
if m != nil {
return m.Clauses
}
return nil
}
func (m *QueryTest) GetQuery() *google_firestore_v1beta12.StructuredQuery {
if m != nil {
return m.Query
}
return nil
}
func (m *QueryTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
type Clause struct {
// Types that are valid to be assigned to Clause:
// *Clause_Select
// *Clause_Where
// *Clause_OrderBy
// *Clause_Offset
// *Clause_Limit
// *Clause_StartAt
// *Clause_StartAfter
// *Clause_EndAt
// *Clause_EndBefore
Clause isClause_Clause `protobuf_oneof:"clause"`
}
func (m *Clause) Reset() { *m = Clause{} }
func (m *Clause) String() string { return proto.CompactTextString(m) }
func (*Clause) ProtoMessage() {}
func (*Clause) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
type isClause_Clause interface {
isClause_Clause()
}
type Clause_Select struct {
Select *Select `protobuf:"bytes,1,opt,name=select,oneof"`
}
type Clause_Where struct {
Where *Where `protobuf:"bytes,2,opt,name=where,oneof"`
}
type Clause_OrderBy struct {
OrderBy *OrderBy `protobuf:"bytes,3,opt,name=order_by,json=orderBy,oneof"`
}
type Clause_Offset struct {
Offset int32 `protobuf:"varint,4,opt,name=offset,oneof"`
}
type Clause_Limit struct {
Limit int32 `protobuf:"varint,5,opt,name=limit,oneof"`
}
type Clause_StartAt struct {
StartAt *Cursor `protobuf:"bytes,6,opt,name=start_at,json=startAt,oneof"`
}
type Clause_StartAfter struct {
StartAfter *Cursor `protobuf:"bytes,7,opt,name=start_after,json=startAfter,oneof"`
}
type Clause_EndAt struct {
EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,oneof"`
}
type Clause_EndBefore struct {
EndBefore *Cursor `protobuf:"bytes,9,opt,name=end_before,json=endBefore,oneof"`
}
func (*Clause_Select) isClause_Clause() {}
func (*Clause_Where) isClause_Clause() {}
func (*Clause_OrderBy) isClause_Clause() {}
func (*Clause_Offset) isClause_Clause() {}
func (*Clause_Limit) isClause_Clause() {}
func (*Clause_StartAt) isClause_Clause() {}
func (*Clause_StartAfter) isClause_Clause() {}
func (*Clause_EndAt) isClause_Clause() {}
func (*Clause_EndBefore) isClause_Clause() {}
func (m *Clause) GetClause() isClause_Clause {
if m != nil {
return m.Clause
}
return nil
}
func (m *Clause) GetSelect() *Select {
if x, ok := m.GetClause().(*Clause_Select); ok {
return x.Select
}
return nil
}
func (m *Clause) GetWhere() *Where {
if x, ok := m.GetClause().(*Clause_Where); ok {
return x.Where
}
return nil
}
func (m *Clause) GetOrderBy() *OrderBy {
if x, ok := m.GetClause().(*Clause_OrderBy); ok {
return x.OrderBy
}
return nil
}
func (m *Clause) GetOffset() int32 {
if x, ok := m.GetClause().(*Clause_Offset); ok {
return x.Offset
}
return 0
}
func (m *Clause) GetLimit() int32 {
if x, ok := m.GetClause().(*Clause_Limit); ok {
return x.Limit
}
return 0
}
func (m *Clause) GetStartAt() *Cursor {
if x, ok := m.GetClause().(*Clause_StartAt); ok {
return x.StartAt
}
return nil
}
func (m *Clause) GetStartAfter() *Cursor {
if x, ok := m.GetClause().(*Clause_StartAfter); ok {
return x.StartAfter
}
return nil
}
func (m *Clause) GetEndAt() *Cursor {
if x, ok := m.GetClause().(*Clause_EndAt); ok {
return x.EndAt
}
return nil
}
func (m *Clause) GetEndBefore() *Cursor {
if x, ok := m.GetClause().(*Clause_EndBefore); ok {
return x.EndBefore
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*Clause) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _Clause_OneofMarshaler, _Clause_OneofUnmarshaler, _Clause_OneofSizer, []interface{}{
(*Clause_Select)(nil),
(*Clause_Where)(nil),
(*Clause_OrderBy)(nil),
(*Clause_Offset)(nil),
(*Clause_Limit)(nil),
(*Clause_StartAt)(nil),
(*Clause_StartAfter)(nil),
(*Clause_EndAt)(nil),
(*Clause_EndBefore)(nil),
}
}
func _Clause_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*Clause)
// clause
switch x := m.Clause.(type) {
case *Clause_Select:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Select); err != nil {
return err
}
case *Clause_Where:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Where); err != nil {
return err
}
case *Clause_OrderBy:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.OrderBy); err != nil {
return err
}
case *Clause_Offset:
b.EncodeVarint(4<<3 | proto.WireVarint)
b.EncodeVarint(uint64(x.Offset))
case *Clause_Limit:
b.EncodeVarint(5<<3 | proto.WireVarint)
b.EncodeVarint(uint64(x.Limit))
case *Clause_StartAt:
b.EncodeVarint(6<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.StartAt); err != nil {
return err
}
case *Clause_StartAfter:
b.EncodeVarint(7<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.StartAfter); err != nil {
return err
}
case *Clause_EndAt:
b.EncodeVarint(8<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.EndAt); err != nil {
return err
}
case *Clause_EndBefore:
b.EncodeVarint(9<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.EndBefore); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("Clause.Clause has unexpected type %T", x)
}
return nil
}
func _Clause_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*Clause)
switch tag {
case 1: // clause.select
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Select)
err := b.DecodeMessage(msg)
m.Clause = &Clause_Select{msg}
return true, err
case 2: // clause.where
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Where)
err := b.DecodeMessage(msg)
m.Clause = &Clause_Where{msg}
return true, err
case 3: // clause.order_by
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(OrderBy)
err := b.DecodeMessage(msg)
m.Clause = &Clause_OrderBy{msg}
return true, err
case 4: // clause.offset
if wire != proto.WireVarint {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeVarint()
m.Clause = &Clause_Offset{int32(x)}
return true, err
case 5: // clause.limit
if wire != proto.WireVarint {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeVarint()
m.Clause = &Clause_Limit{int32(x)}
return true, err
case 6: // clause.start_at
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Cursor)
err := b.DecodeMessage(msg)
m.Clause = &Clause_StartAt{msg}
return true, err
case 7: // clause.start_after
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Cursor)
err := b.DecodeMessage(msg)
m.Clause = &Clause_StartAfter{msg}
return true, err
case 8: // clause.end_at
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Cursor)
err := b.DecodeMessage(msg)
m.Clause = &Clause_EndAt{msg}
return true, err
case 9: // clause.end_before
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Cursor)
err := b.DecodeMessage(msg)
m.Clause = &Clause_EndBefore{msg}
return true, err
default:
return false, nil
}
}
func _Clause_OneofSizer(msg proto.Message) (n int) {
m := msg.(*Clause)
// clause
switch x := m.Clause.(type) {
case *Clause_Select:
s := proto.Size(x.Select)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_Where:
s := proto.Size(x.Where)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_OrderBy:
s := proto.Size(x.OrderBy)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_Offset:
n += proto.SizeVarint(4<<3 | proto.WireVarint)
n += proto.SizeVarint(uint64(x.Offset))
case *Clause_Limit:
n += proto.SizeVarint(5<<3 | proto.WireVarint)
n += proto.SizeVarint(uint64(x.Limit))
case *Clause_StartAt:
s := proto.Size(x.StartAt)
n += proto.SizeVarint(6<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_StartAfter:
s := proto.Size(x.StartAfter)
n += proto.SizeVarint(7<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_EndAt:
s := proto.Size(x.EndAt)
n += proto.SizeVarint(8<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Clause_EndBefore:
s := proto.Size(x.EndBefore)
n += proto.SizeVarint(9<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type Select struct {
Fields []*FieldPath `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty"`
}
func (m *Select) Reset() { *m = Select{} }
func (m *Select) String() string { return proto.CompactTextString(m) }
func (*Select) ProtoMessage() {}
func (*Select) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *Select) GetFields() []*FieldPath {
if m != nil {
return m.Fields
}
return nil
}
type Where struct {
Path *FieldPath `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
Op string `protobuf:"bytes,2,opt,name=op" json:"op,omitempty"`
JsonValue string `protobuf:"bytes,3,opt,name=json_value,json=jsonValue" json:"json_value,omitempty"`
}
func (m *Where) Reset() { *m = Where{} }
func (m *Where) String() string { return proto.CompactTextString(m) }
func (*Where) ProtoMessage() {}
func (*Where) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *Where) GetPath() *FieldPath {
if m != nil {
return m.Path
}
return nil
}
func (m *Where) GetOp() string {
if m != nil {
return m.Op
}
return ""
}
func (m *Where) GetJsonValue() string {
if m != nil {
return m.JsonValue
}
return ""
}
type OrderBy struct {
Path *FieldPath `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
Direction string `protobuf:"bytes,2,opt,name=direction" json:"direction,omitempty"`
}
func (m *OrderBy) Reset() { *m = OrderBy{} }
func (m *OrderBy) String() string { return proto.CompactTextString(m) }
func (*OrderBy) ProtoMessage() {}
func (*OrderBy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *OrderBy) GetPath() *FieldPath {
if m != nil {
return m.Path
}
return nil
}
func (m *OrderBy) GetDirection() string {
if m != nil {
return m.Direction
}
return ""
}
type Cursor struct {
// one of:
DocSnapshot *DocSnapshot `protobuf:"bytes,1,opt,name=doc_snapshot,json=docSnapshot" json:"doc_snapshot,omitempty"`
JsonValues []string `protobuf:"bytes,2,rep,name=json_values,json=jsonValues" json:"json_values,omitempty"`
}
func (m *Cursor) Reset() { *m = Cursor{} }
func (m *Cursor) String() string { return proto.CompactTextString(m) }
func (*Cursor) ProtoMessage() {}
func (*Cursor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *Cursor) GetDocSnapshot() *DocSnapshot {
if m != nil {
return m.DocSnapshot
}
return nil
}
func (m *Cursor) GetJsonValues() []string {
if m != nil {
return m.JsonValues
}
return nil
}
type DocSnapshot struct {
Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
JsonData string `protobuf:"bytes,2,opt,name=json_data,json=jsonData" json:"json_data,omitempty"`
}
func (m *DocSnapshot) Reset() { *m = DocSnapshot{} }
func (m *DocSnapshot) String() string { return proto.CompactTextString(m) }
func (*DocSnapshot) ProtoMessage() {}
func (*DocSnapshot) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *DocSnapshot) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *DocSnapshot) GetJsonData() string {
if m != nil {
return m.JsonData
}
return ""
}
type FieldPath struct {
Field []string `protobuf:"bytes,1,rep,name=field" json:"field,omitempty"`
}
func (m *FieldPath) Reset() { *m = FieldPath{} }
func (m *FieldPath) String() string { return proto.CompactTextString(m) }
func (*FieldPath) ProtoMessage() {}
func (*FieldPath) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *FieldPath) GetField() []string {
if m != nil {
return m.Field
}
return nil
}
// A test of the Listen streaming RPC (a.k.a. FireStore watch).
// If the sequence of responses is provided to the implementation,
// it should produce the sequence of snapshots.
// If is_error is true, an error should occur after the snapshots.
//
// The tests assume that the query is
// Collection("projects/projectID/databases/(default)/documents/C").OrderBy("a", Ascending)
//
// The watch target ID used in these tests is 1. Test interpreters
// should either change their client's ID for testing,
// or change the ID in the tests before running them.
type ListenTest struct {
Responses []*google_firestore_v1beta14.ListenResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
Snapshots []*Snapshot `protobuf:"bytes,2,rep,name=snapshots" json:"snapshots,omitempty"`
IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError" json:"is_error,omitempty"`
}
func (m *ListenTest) Reset() { *m = ListenTest{} }
func (m *ListenTest) String() string { return proto.CompactTextString(m) }
func (*ListenTest) ProtoMessage() {}
func (*ListenTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *ListenTest) GetResponses() []*google_firestore_v1beta14.ListenResponse {
if m != nil {
return m.Responses
}
return nil
}
func (m *ListenTest) GetSnapshots() []*Snapshot {
if m != nil {
return m.Snapshots
}
return nil
}
func (m *ListenTest) GetIsError() bool {
if m != nil {
return m.IsError
}
return false
}
type Snapshot struct {
Docs []*google_firestore_v1beta11.Document `protobuf:"bytes,1,rep,name=docs" json:"docs,omitempty"`
Changes []*DocChange `protobuf:"bytes,2,rep,name=changes" json:"changes,omitempty"`
ReadTime *google_protobuf1.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
}
func (m *Snapshot) Reset() { *m = Snapshot{} }
func (m *Snapshot) String() string { return proto.CompactTextString(m) }
func (*Snapshot) ProtoMessage() {}
func (*Snapshot) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *Snapshot) GetDocs() []*google_firestore_v1beta11.Document {
if m != nil {
return m.Docs
}
return nil
}
func (m *Snapshot) GetChanges() []*DocChange {
if m != nil {
return m.Changes
}
return nil
}
func (m *Snapshot) GetReadTime() *google_protobuf1.Timestamp {
if m != nil {
return m.ReadTime
}
return nil
}
type DocChange struct {
Kind DocChange_Kind `protobuf:"varint,1,opt,name=kind,enum=tests.DocChange_Kind" json:"kind,omitempty"`
Doc *google_firestore_v1beta11.Document `protobuf:"bytes,2,opt,name=doc" json:"doc,omitempty"`
OldIndex int32 `protobuf:"varint,3,opt,name=old_index,json=oldIndex" json:"old_index,omitempty"`
NewIndex int32 `protobuf:"varint,4,opt,name=new_index,json=newIndex" json:"new_index,omitempty"`
}
func (m *DocChange) Reset() { *m = DocChange{} }
func (m *DocChange) String() string { return proto.CompactTextString(m) }
func (*DocChange) ProtoMessage() {}
func (*DocChange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *DocChange) GetKind() DocChange_Kind {
if m != nil {
return m.Kind
}
return DocChange_KIND_UNSPECIFIED
}
func (m *DocChange) GetDoc() *google_firestore_v1beta11.Document {
if m != nil {
return m.Doc
}
return nil
}
func (m *DocChange) GetOldIndex() int32 {
if m != nil {
return m.OldIndex
}
return 0
}
func (m *DocChange) GetNewIndex() int32 {
if m != nil {
return m.NewIndex
}
return 0
}
func init() {
proto.RegisterType((*TestSuite)(nil), "tests.TestSuite")
proto.RegisterType((*Test)(nil), "tests.Test")
proto.RegisterType((*GetTest)(nil), "tests.GetTest")
proto.RegisterType((*CreateTest)(nil), "tests.CreateTest")
proto.RegisterType((*SetTest)(nil), "tests.SetTest")
proto.RegisterType((*UpdateTest)(nil), "tests.UpdateTest")
proto.RegisterType((*UpdatePathsTest)(nil), "tests.UpdatePathsTest")
proto.RegisterType((*DeleteTest)(nil), "tests.DeleteTest")
proto.RegisterType((*SetOption)(nil), "tests.SetOption")
proto.RegisterType((*QueryTest)(nil), "tests.QueryTest")
proto.RegisterType((*Clause)(nil), "tests.Clause")
proto.RegisterType((*Select)(nil), "tests.Select")
proto.RegisterType((*Where)(nil), "tests.Where")
proto.RegisterType((*OrderBy)(nil), "tests.OrderBy")
proto.RegisterType((*Cursor)(nil), "tests.Cursor")
proto.RegisterType((*DocSnapshot)(nil), "tests.DocSnapshot")
proto.RegisterType((*FieldPath)(nil), "tests.FieldPath")
proto.RegisterType((*ListenTest)(nil), "tests.ListenTest")
proto.RegisterType((*Snapshot)(nil), "tests.Snapshot")
proto.RegisterType((*DocChange)(nil), "tests.DocChange")
proto.RegisterEnum("tests.DocChange_Kind", DocChange_Kind_name, DocChange_Kind_value)
}
func init() { proto.RegisterFile("test.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1292 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x57, 0x4d, 0x73, 0xdb, 0xc4,
0x1b, 0xaf, 0x6c, 0x4b, 0x96, 0x1e, 0xe7, 0xdf, 0xe6, 0xbf, 0x53, 0x3a, 0x26, 0xc0, 0x34, 0xd5,
0x94, 0xc6, 0x6d, 0xc1, 0xa1, 0xe1, 0xed, 0xc0, 0x0c, 0x4c, 0x12, 0x3b, 0x6d, 0x28, 0x6d, 0x82,
0xdc, 0x96, 0x4b, 0x66, 0x8c, 0xa2, 0x5d, 0x27, 0x02, 0x59, 0xeb, 0xee, 0xae, 0xfa, 0xf2, 0x39,
0xb8, 0x73, 0x65, 0x60, 0x86, 0x03, 0x5f, 0x83, 0x13, 0x47, 0x3e, 0x03, 0x77, 0x38, 0x33, 0xfb,
0x26, 0x59, 0x69, 0x5d, 0x72, 0x28, 0xe5, 0xb6, 0xfb, 0x3c, 0xbf, 0xe7, 0xfd, 0x65, 0x25, 0x00,
0x41, 0xb8, 0xe8, 0xcf, 0x18, 0x15, 0x14, 0xb9, 0xf2, 0xcc, 0x57, 0xde, 0x3e, 0xa2, 0xf4, 0x28,
0x23, 0xeb, 0x93, 0x94, 0x11, 0x2e, 0x28, 0x23, 0xeb, 0x8f, 0x6e, 0x1c, 0x12, 0x11, 0xdf, 0x58,
0x4f, 0xe8, 0x74, 0x4a, 0x73, 0x8d, 0x5e, 0x59, 0x5b, 0x08, 0xc3, 0x34, 0x29, 0xa6, 0x24, 0x37,
0x6a, 0x57, 0x7a, 0x0b, 0x81, 0x25, 0xc5, 0x20, 0x2f, 0x2f, 0x44, 0x3e, 0x2c, 0x08, 0x7b, 0x6a,
0x50, 0x17, 0x0d, 0x4a, 0xdd, 0x0e, 0x8b, 0xc9, 0xba, 0x48, 0xa7, 0x84, 0x8b, 0x78, 0x3a, 0xd3,
0x80, 0xb0, 0x0f, 0xc1, 0x3d, 0xc2, 0xc5, 0xa8, 0x48, 0x05, 0x41, 0x97, 0x40, 0x87, 0xd5, 0x75,
0x56, 0x9b, 0xbd, 0xce, 0x46, 0xa7, 0xaf, 0x6e, 0x7d, 0x09, 0x88, 0x34, 0x27, 0xfc, 0xae, 0x09,
0x2d, 0x79, 0x47, 0xab, 0xd0, 0xc1, 0x84, 0x27, 0x2c, 0x9d, 0x89, 0x94, 0xe6, 0x5d, 0x67, 0xd5,
0xe9, 0x05, 0xd1, 0x3c, 0x09, 0x85, 0xd0, 0x3c, 0x22, 0xa2, 0xdb, 0x58, 0x75, 0x7a, 0x9d, 0x8d,
0xb3, 0x46, 0xd7, 0x4d, 0x22, 0xa4, 0xf8, 0xad, 0x33, 0x91, 0x64, 0xa2, 0xeb, 0xe0, 0x25, 0x8c,
0xc4, 0x82, 0x74, 0x9b, 0x0a, 0xf6, 0x7f, 0x03, 0xdb, 0x56, 0x44, 0x83, 0x34, 0x10, 0xa9, 0x90,
0x13, 0xd1, 0x6d, 0xd5, 0x14, 0x8e, 0x2a, 0x85, 0x5c, 0x2b, 0x2c, 0x66, 0x58, 0x2a, 0x74, 0x6b,
0x0a, 0xef, 0x2b, 0xa2, 0x55, 0xa8, 0x21, 0xe8, 0x13, 0x58, 0xd2, 0xa7, 0xf1, 0x2c, 0x16, 0xc7,
0xbc, 0xeb, 0x29, 0x91, 0x0b, 0x35, 0x91, 0x7d, 0xc9, 0x31, 0x72, 0x9d, 0xa2, 0x22, 0x49, 0x4b,
0x98, 0x64, 0x44, 0x90, 0x6e, 0xbb, 0x66, 0x69, 0xa0, 0x88, 0xd6, 0x92, 0x86, 0xa0, 0x1e, 0xb8,
0xaa, 0x2c, 0x5d, 0x5f, 0x61, 0x97, 0x0d, 0xf6, 0x4b, 0x49, 0x33, 0x50, 0x0d, 0x90, 0x6a, 0xb3,
0x94, 0x0b, 0x92, 0x77, 0x83, 0x9a, 0xda, 0x2f, 0x14, 0xd1, 0xaa, 0xd5, 0x90, 0x2d, 0x0f, 0x5a,
0x92, 0x1b, 0x72, 0x68, 0x9b, 0xc4, 0xa2, 0x55, 0x58, 0xc2, 0x34, 0x19, 0x33, 0x32, 0x51, 0x41,
0x99, 0xc2, 0x00, 0xa6, 0x49, 0x44, 0x26, 0xd2, 0x73, 0xb4, 0x03, 0x6d, 0x46, 0x1e, 0x16, 0x84,
0xdb, 0xda, 0xbc, 0xd3, 0xd7, 0x5d, 0xd2, 0xaf, 0x7a, 0xcc, 0xf4, 0x92, 0x2c, 0xd7, 0xc0, 0x74,
0x68, 0xa4, 0x65, 0x22, 0x2b, 0x1c, 0xfe, 0xe8, 0x00, 0x54, 0x75, 0x3a, 0x85, 0xe1, 0x37, 0x20,
0xf8, 0x86, 0xd3, 0x7c, 0x8c, 0x63, 0x11, 0x2b, 0xd3, 0x41, 0xe4, 0x4b, 0xc2, 0x20, 0x16, 0x31,
0xda, 0xac, 0xbc, 0xd2, 0xad, 0xb0, 0xb6, 0xd8, 0xab, 0x6d, 0x3a, 0x9d, 0xa6, 0xcf, 0x38, 0x84,
0x5e, 0x07, 0x3f, 0xe5, 0x63, 0xc2, 0x18, 0x65, 0xaa, 0x49, 0xfc, 0xa8, 0x9d, 0xf2, 0xa1, 0xbc,
0x86, 0xbf, 0x39, 0xd0, 0x1e, 0x9d, 0x3a, 0x43, 0x3d, 0xf0, 0xa8, 0x6e, 0xeb, 0x46, 0xad, 0x5c,
0x23, 0x22, 0xf6, 0x14, 0x3d, 0x32, 0xfc, 0x7a, 0x48, 0xcd, 0xc5, 0x21, 0xb5, 0x5e, 0x42, 0x48,
0x6e, 0x3d, 0xa4, 0x3f, 0x1d, 0x80, 0xaa, 0xab, 0x4f, 0x11, 0xd5, 0xe7, 0xb0, 0x34, 0x63, 0x24,
0xa1, 0x39, 0x4e, 0xe7, 0x62, 0xbb, 0xb2, 0xd8, 0xa7, 0xfd, 0x39, 0x74, 0x54, 0x93, 0xfd, 0x2f,
0xe3, 0xfe, 0xa5, 0x01, 0xe7, 0x4e, 0x8c, 0xe6, 0x2b, 0x0e, 0xfe, 0x06, 0x74, 0x26, 0x29, 0xc9,
0xb0, 0xd9, 0x1a, 0x4d, 0xb5, 0x2c, 0x6d, 0x8f, 0xec, 0x48, 0x8e, 0x34, 0x19, 0xc1, 0xc4, 0x1e,
0x39, 0xba, 0x08, 0x1d, 0x95, 0xaf, 0x47, 0x71, 0x56, 0x10, 0xde, 0x6d, 0xad, 0x36, 0xa5, 0x7f,
0x92, 0xf4, 0x40, 0x51, 0xe6, 0x73, 0xe6, 0xbe, 0x84, 0x9c, 0x79, 0xf5, 0x9c, 0xfd, 0xee, 0x00,
0x54, 0x7b, 0xe9, 0x15, 0xa7, 0xeb, 0xdf, 0x9d, 0xec, 0x9b, 0x10, 0x94, 0x63, 0x89, 0x96, 0xa1,
0x19, 0x67, 0x99, 0x8a, 0xc7, 0x8f, 0xe4, 0x51, 0x8e, 0xb2, 0x2a, 0x03, 0xef, 0x36, 0x16, 0x94,
0xc9, 0xf0, 0xc3, 0x9f, 0x1d, 0x08, 0xca, 0x7d, 0x2c, 0x1b, 0x3c, 0xa1, 0x59, 0x36, 0x9f, 0x1f,
0x5f, 0x12, 0x54, 0x76, 0xd6, 0xa0, 0x9d, 0x64, 0x71, 0xc1, 0x89, 0xd5, 0xfa, 0x3f, 0xfb, 0x6c,
0x29, 0x6a, 0x64, 0xb9, 0xe8, 0x33, 0xbb, 0xf6, 0x75, 0xe0, 0x57, 0x17, 0x07, 0x3e, 0x12, 0xac,
0x48, 0x44, 0xc1, 0x08, 0x56, 0x3e, 0xd8, 0xd7, 0xe0, 0x05, 0x81, 0xff, 0xd5, 0x00, 0x4f, 0xdb,
0x43, 0x6b, 0xe0, 0x71, 0x92, 0x91, 0x44, 0x28, 0x4f, 0x2b, 0x77, 0x46, 0x8a, 0x28, 0xdf, 0x0b,
0xcd, 0x46, 0x97, 0xc1, 0x7d, 0x7c, 0x4c, 0x18, 0x31, 0xf5, 0x5c, 0x32, 0xb8, 0xaf, 0x24, 0x4d,
0x3e, 0x41, 0x8a, 0x89, 0xae, 0x83, 0x4f, 0x19, 0x26, 0x6c, 0x7c, 0x68, 0x1d, 0xb7, 0x8f, 0xed,
0x9e, 0x24, 0x6f, 0x3d, 0xbd, 0x75, 0x26, 0x6a, 0x53, 0x7d, 0x44, 0x5d, 0xf0, 0xe8, 0x64, 0x62,
0xdf, 0x65, 0x57, 0x1a, 0xd3, 0x77, 0x74, 0x01, 0xdc, 0x2c, 0x9d, 0xa6, 0xba, 0xa1, 0x25, 0x43,
0x5f, 0xd1, 0x35, 0xf0, 0xb9, 0x88, 0x99, 0x18, 0xc7, 0xc2, 0xbc, 0xb8, 0x65, 0xfa, 0x0a, 0xc6,
0x29, 0x93, 0xda, 0x15, 0x60, 0x53, 0xa0, 0xf7, 0xa0, 0x63, 0xb0, 0x13, 0x41, 0x98, 0x79, 0x69,
0x9f, 0x81, 0x83, 0x86, 0x4b, 0x08, 0xba, 0x02, 0x1e, 0xc9, 0xb1, 0xd4, 0xed, 0x3f, 0x1f, 0xec,
0x92, 0x1c, 0x6f, 0x0a, 0xd4, 0x07, 0x90, 0xb8, 0x43, 0x32, 0xa1, 0x8c, 0x98, 0xb7, 0xf6, 0x19,
0x6c, 0x40, 0x72, 0xbc, 0xa5, 0x10, 0x5b, 0x3e, 0x78, 0xba, 0xaa, 0xe1, 0x06, 0x78, 0x3a, 0xb1,
0x73, 0xcd, 0xe5, 0xfc, 0x43, 0x73, 0x1d, 0x80, 0xab, 0x92, 0x8c, 0x2e, 0x43, 0xab, 0x6c, 0xa9,
0xe7, 0x09, 0x28, 0x2e, 0x3a, 0x0b, 0x0d, 0x3a, 0x33, 0x4f, 0x64, 0x83, 0xce, 0xd0, 0x5b, 0x00,
0xd5, 0xfa, 0x30, 0xfb, 0x36, 0x28, 0xb7, 0x47, 0x78, 0x07, 0xda, 0xa6, 0x32, 0xa7, 0xd4, 0xff,
0x26, 0x04, 0x38, 0x65, 0x24, 0x29, 0x67, 0x3b, 0x88, 0x2a, 0x42, 0xf8, 0x35, 0x78, 0x3a, 0x03,
0xe8, 0x43, 0xbd, 0x28, 0x78, 0x1e, 0xcf, 0xf8, 0x31, 0xb5, 0xed, 0x85, 0xec, 0x97, 0x0e, 0x4d,
0x46, 0x86, 0x13, 0x75, 0x70, 0x75, 0x39, 0xb9, 0xed, 0x1a, 0x27, 0xb7, 0x5d, 0xf8, 0x29, 0x74,
0xe6, 0x84, 0x11, 0x9a, 0x73, 0x3a, 0x30, 0x2e, 0xbe, 0xe8, 0x63, 0x21, 0xbc, 0x04, 0x41, 0x19,
0x12, 0x3a, 0x0f, 0xae, 0xca, 0xb2, 0x2a, 0x42, 0x10, 0xe9, 0x4b, 0xf8, 0xbd, 0x03, 0x50, 0x7d,
0x33, 0xa1, 0x1d, 0x08, 0x18, 0xe1, 0x33, 0x9a, 0xcb, 0xa1, 0xd5, 0xd5, 0xea, 0x2d, 0x9e, 0x46,
0x2d, 0x18, 0x19, 0x81, 0xa8, 0x12, 0x45, 0xef, 0x42, 0x60, 0xb3, 0x61, 0x87, 0xff, 0x9c, 0x9d,
0x36, 0x9b, 0x8b, 0x0a, 0x51, 0x9b, 0xdf, 0x66, 0x7d, 0x7e, 0x7f, 0x70, 0xc0, 0x2f, 0x33, 0xf0,
0x11, 0xb4, 0x30, 0x4d, 0xac, 0x67, 0xe1, 0x62, 0xcf, 0xca, 0xaf, 0x31, 0x85, 0x47, 0xd7, 0xa0,
0x9d, 0x1c, 0xc7, 0xf9, 0x11, 0x39, 0xb9, 0xdf, 0x06, 0x34, 0xd9, 0x56, 0x8c, 0xc8, 0x02, 0xd0,
0xc7, 0x32, 0x05, 0x31, 0x1e, 0xcb, 0x5f, 0x00, 0x33, 0xd7, 0x2b, 0xd6, 0x90, 0xfd, 0x3f, 0xe8,
0xdf, 0xb3, 0xff, 0x07, 0x91, 0x2f, 0xc1, 0xf2, 0x1a, 0xfe, 0xe1, 0x40, 0x50, 0xea, 0x43, 0x57,
0xa1, 0xf5, 0x6d, 0x9a, 0x63, 0x55, 0xac, 0xb3, 0x1b, 0xaf, 0x9d, 0xb4, 0xd7, 0xbf, 0x9d, 0xe6,
0x38, 0x52, 0x10, 0xf4, 0x01, 0x34, 0x31, 0x4d, 0xcc, 0xb2, 0x39, 0x4d, 0x50, 0x12, 0x2e, 0x2b,
0x4f, 0x33, 0x3c, 0x4e, 0x73, 0x4c, 0x9e, 0x28, 0x3f, 0xdd, 0xc8, 0xa7, 0x19, 0xde, 0x95, 0x77,
0xc9, 0xcc, 0xc9, 0x63, 0xc3, 0x6c, 0x69, 0x66, 0x4e, 0x1e, 0x2b, 0x66, 0xb8, 0x05, 0x2d, 0x69,
0x1d, 0x9d, 0x87, 0xe5, 0xdb, 0xbb, 0x77, 0x07, 0xe3, 0xfb, 0x77, 0x47, 0xfb, 0xc3, 0xed, 0xdd,
0x9d, 0xdd, 0xe1, 0x60, 0xf9, 0x0c, 0x0a, 0xc0, 0xdd, 0x1c, 0x0c, 0x86, 0x83, 0x65, 0x07, 0x75,
0xa0, 0x1d, 0x0d, 0xef, 0xec, 0x3d, 0x18, 0x0e, 0x96, 0x1b, 0x68, 0x09, 0xfc, 0x3b, 0x7b, 0x03,
0x8d, 0x6a, 0x6e, 0x3d, 0x81, 0x2b, 0x09, 0x9d, 0x5a, 0x5f, 0x93, 0x8c, 0x16, 0x78, 0xce, 0xe3,
0x84, 0xe6, 0x13, 0xca, 0xa6, 0x71, 0x9e, 0x90, 0x9f, 0x1a, 0xe1, 0x4d, 0x0d, 0xda, 0x56, 0xa0,
0x9d, 0x12, 0x74, 0x4f, 0x65, 0x64, 0x5f, 0xa6, 0xf4, 0xd7, 0x46, 0x4f, 0x83, 0x0e, 0x14, 0xe8,
0xa0, 0x04, 0x1d, 0x28, 0xd0, 0xc1, 0x76, 0xa5, 0xef, 0xd0, 0x53, 0x45, 0x78, 0xff, 0xef, 0x00,
0x00, 0x00, 0xff, 0xff, 0xc2, 0x7a, 0x63, 0xd5, 0x67, 0x0e, 0x00, 0x00,
}