1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/bigtable/v2/bigtable.proto
5 Package bigtable is a generated protocol buffer package.
7 It is generated from these files:
8 google/bigtable/v2/bigtable.proto
9 google/bigtable/v2/data.proto
11 It has these top-level messages:
20 CheckAndMutateRowRequest
21 CheckAndMutateRowResponse
22 ReadModifyWriteRowRequest
23 ReadModifyWriteRowResponse
39 import proto "github.com/golang/protobuf/proto"
42 import _ "google.golang.org/genproto/googleapis/api/annotations"
43 import google_protobuf1 "github.com/golang/protobuf/ptypes/wrappers"
44 import google_rpc "google.golang.org/genproto/googleapis/rpc/status"
47 context "golang.org/x/net/context"
48 grpc "google.golang.org/grpc"
51 // Reference imports to suppress errors if they are not otherwise used.
56 // This is a compile-time assertion to ensure that this generated file
57 // is compatible with the proto package it is being compiled against.
58 // A compilation error at this line likely means your copy of the
59 // proto package needs to be updated.
60 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
62 // Request message for Bigtable.ReadRows.
63 type ReadRowsRequest struct {
64 // The unique name of the table from which to read.
65 // Values are of the form
66 // `projects/<project>/instances/<instance>/tables/<table>`.
67 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
68 // The row keys and/or ranges to read. If not specified, reads from all rows.
69 Rows *RowSet `protobuf:"bytes,2,opt,name=rows" json:"rows,omitempty"`
70 // The filter to apply to the contents of the specified row(s). If unset,
71 // reads the entirety of each row.
72 Filter *RowFilter `protobuf:"bytes,3,opt,name=filter" json:"filter,omitempty"`
73 // The read will terminate after committing to N rows' worth of results. The
74 // default (zero) is to return all results.
75 RowsLimit int64 `protobuf:"varint,4,opt,name=rows_limit,json=rowsLimit" json:"rows_limit,omitempty"`
78 func (m *ReadRowsRequest) Reset() { *m = ReadRowsRequest{} }
79 func (m *ReadRowsRequest) String() string { return proto.CompactTextString(m) }
80 func (*ReadRowsRequest) ProtoMessage() {}
81 func (*ReadRowsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
83 func (m *ReadRowsRequest) GetTableName() string {
90 func (m *ReadRowsRequest) GetRows() *RowSet {
97 func (m *ReadRowsRequest) GetFilter() *RowFilter {
104 func (m *ReadRowsRequest) GetRowsLimit() int64 {
111 // Response message for Bigtable.ReadRows.
112 type ReadRowsResponse struct {
113 Chunks []*ReadRowsResponse_CellChunk `protobuf:"bytes,1,rep,name=chunks" json:"chunks,omitempty"`
114 // Optionally the server might return the row key of the last row it
115 // has scanned. The client can use this to construct a more
116 // efficient retry request if needed: any row keys or portions of
117 // ranges less than this row key can be dropped from the request.
118 // This is primarily useful for cases where the server has read a
119 // lot of data that was filtered out since the last committed row
120 // key, allowing the client to skip that work on a retry.
121 LastScannedRowKey []byte `protobuf:"bytes,2,opt,name=last_scanned_row_key,json=lastScannedRowKey,proto3" json:"last_scanned_row_key,omitempty"`
124 func (m *ReadRowsResponse) Reset() { *m = ReadRowsResponse{} }
125 func (m *ReadRowsResponse) String() string { return proto.CompactTextString(m) }
126 func (*ReadRowsResponse) ProtoMessage() {}
127 func (*ReadRowsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
129 func (m *ReadRowsResponse) GetChunks() []*ReadRowsResponse_CellChunk {
136 func (m *ReadRowsResponse) GetLastScannedRowKey() []byte {
138 return m.LastScannedRowKey
143 // Specifies a piece of a row's contents returned as part of the read
145 type ReadRowsResponse_CellChunk struct {
146 // The row key for this chunk of data. If the row key is empty,
147 // this CellChunk is a continuation of the same row as the previous
148 // CellChunk in the response stream, even if that CellChunk was in a
149 // previous ReadRowsResponse message.
150 RowKey []byte `protobuf:"bytes,1,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
151 // The column family name for this chunk of data. If this message
152 // is not present this CellChunk is a continuation of the same column
153 // family as the previous CellChunk. The empty string can occur as a
154 // column family name in a response so clients must check
155 // explicitly for the presence of this message, not just for
156 // `family_name.value` being non-empty.
157 FamilyName *google_protobuf1.StringValue `protobuf:"bytes,2,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
158 // The column qualifier for this chunk of data. If this message
159 // is not present, this CellChunk is a continuation of the same column
160 // as the previous CellChunk. Column qualifiers may be empty so
161 // clients must check for the presence of this message, not just
162 // for `qualifier.value` being non-empty.
163 Qualifier *google_protobuf1.BytesValue `protobuf:"bytes,3,opt,name=qualifier" json:"qualifier,omitempty"`
164 // The cell's stored timestamp, which also uniquely identifies it
165 // within its column. Values are always expressed in
166 // microseconds, but individual tables may set a coarser
167 // granularity to further restrict the allowed values. For
168 // example, a table which specifies millisecond granularity will
169 // only allow values of `timestamp_micros` which are multiples of
170 // 1000. Timestamps are only set in the first CellChunk per cell
171 // (for cells split into multiple chunks).
172 TimestampMicros int64 `protobuf:"varint,4,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
173 // Labels applied to the cell by a
174 // [RowFilter][google.bigtable.v2.RowFilter]. Labels are only set
175 // on the first CellChunk per cell.
176 Labels []string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty"`
177 // The value stored in the cell. Cell values can be split across
178 // multiple CellChunks. In that case only the value field will be
179 // set in CellChunks after the first: the timestamp and labels
180 // will only be present in the first CellChunk, even if the first
181 // CellChunk came in a previous ReadRowsResponse.
182 Value []byte `protobuf:"bytes,6,opt,name=value,proto3" json:"value,omitempty"`
183 // If this CellChunk is part of a chunked cell value and this is
184 // not the final chunk of that cell, value_size will be set to the
185 // total length of the cell value. The client can use this size
186 // to pre-allocate memory to hold the full cell value.
187 ValueSize int32 `protobuf:"varint,7,opt,name=value_size,json=valueSize" json:"value_size,omitempty"`
188 // Types that are valid to be assigned to RowStatus:
189 // *ReadRowsResponse_CellChunk_ResetRow
190 // *ReadRowsResponse_CellChunk_CommitRow
191 RowStatus isReadRowsResponse_CellChunk_RowStatus `protobuf_oneof:"row_status"`
194 func (m *ReadRowsResponse_CellChunk) Reset() { *m = ReadRowsResponse_CellChunk{} }
195 func (m *ReadRowsResponse_CellChunk) String() string { return proto.CompactTextString(m) }
196 func (*ReadRowsResponse_CellChunk) ProtoMessage() {}
197 func (*ReadRowsResponse_CellChunk) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} }
199 type isReadRowsResponse_CellChunk_RowStatus interface {
200 isReadRowsResponse_CellChunk_RowStatus()
203 type ReadRowsResponse_CellChunk_ResetRow struct {
204 ResetRow bool `protobuf:"varint,8,opt,name=reset_row,json=resetRow,oneof"`
206 type ReadRowsResponse_CellChunk_CommitRow struct {
207 CommitRow bool `protobuf:"varint,9,opt,name=commit_row,json=commitRow,oneof"`
210 func (*ReadRowsResponse_CellChunk_ResetRow) isReadRowsResponse_CellChunk_RowStatus() {}
211 func (*ReadRowsResponse_CellChunk_CommitRow) isReadRowsResponse_CellChunk_RowStatus() {}
213 func (m *ReadRowsResponse_CellChunk) GetRowStatus() isReadRowsResponse_CellChunk_RowStatus {
220 func (m *ReadRowsResponse_CellChunk) GetRowKey() []byte {
227 func (m *ReadRowsResponse_CellChunk) GetFamilyName() *google_protobuf1.StringValue {
234 func (m *ReadRowsResponse_CellChunk) GetQualifier() *google_protobuf1.BytesValue {
241 func (m *ReadRowsResponse_CellChunk) GetTimestampMicros() int64 {
243 return m.TimestampMicros
248 func (m *ReadRowsResponse_CellChunk) GetLabels() []string {
255 func (m *ReadRowsResponse_CellChunk) GetValue() []byte {
262 func (m *ReadRowsResponse_CellChunk) GetValueSize() int32 {
269 func (m *ReadRowsResponse_CellChunk) GetResetRow() bool {
270 if x, ok := m.GetRowStatus().(*ReadRowsResponse_CellChunk_ResetRow); ok {
276 func (m *ReadRowsResponse_CellChunk) GetCommitRow() bool {
277 if x, ok := m.GetRowStatus().(*ReadRowsResponse_CellChunk_CommitRow); ok {
283 // XXX_OneofFuncs is for the internal use of the proto package.
284 func (*ReadRowsResponse_CellChunk) 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{}) {
285 return _ReadRowsResponse_CellChunk_OneofMarshaler, _ReadRowsResponse_CellChunk_OneofUnmarshaler, _ReadRowsResponse_CellChunk_OneofSizer, []interface{}{
286 (*ReadRowsResponse_CellChunk_ResetRow)(nil),
287 (*ReadRowsResponse_CellChunk_CommitRow)(nil),
291 func _ReadRowsResponse_CellChunk_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
292 m := msg.(*ReadRowsResponse_CellChunk)
294 switch x := m.RowStatus.(type) {
295 case *ReadRowsResponse_CellChunk_ResetRow:
300 b.EncodeVarint(8<<3 | proto.WireVarint)
302 case *ReadRowsResponse_CellChunk_CommitRow:
307 b.EncodeVarint(9<<3 | proto.WireVarint)
311 return fmt.Errorf("ReadRowsResponse_CellChunk.RowStatus has unexpected type %T", x)
316 func _ReadRowsResponse_CellChunk_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
317 m := msg.(*ReadRowsResponse_CellChunk)
319 case 8: // row_status.reset_row
320 if wire != proto.WireVarint {
321 return true, proto.ErrInternalBadWireType
323 x, err := b.DecodeVarint()
324 m.RowStatus = &ReadRowsResponse_CellChunk_ResetRow{x != 0}
326 case 9: // row_status.commit_row
327 if wire != proto.WireVarint {
328 return true, proto.ErrInternalBadWireType
330 x, err := b.DecodeVarint()
331 m.RowStatus = &ReadRowsResponse_CellChunk_CommitRow{x != 0}
338 func _ReadRowsResponse_CellChunk_OneofSizer(msg proto.Message) (n int) {
339 m := msg.(*ReadRowsResponse_CellChunk)
341 switch x := m.RowStatus.(type) {
342 case *ReadRowsResponse_CellChunk_ResetRow:
343 n += proto.SizeVarint(8<<3 | proto.WireVarint)
345 case *ReadRowsResponse_CellChunk_CommitRow:
346 n += proto.SizeVarint(9<<3 | proto.WireVarint)
350 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
355 // Request message for Bigtable.SampleRowKeys.
356 type SampleRowKeysRequest struct {
357 // The unique name of the table from which to sample row keys.
358 // Values are of the form
359 // `projects/<project>/instances/<instance>/tables/<table>`.
360 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
363 func (m *SampleRowKeysRequest) Reset() { *m = SampleRowKeysRequest{} }
364 func (m *SampleRowKeysRequest) String() string { return proto.CompactTextString(m) }
365 func (*SampleRowKeysRequest) ProtoMessage() {}
366 func (*SampleRowKeysRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
368 func (m *SampleRowKeysRequest) GetTableName() string {
375 // Response message for Bigtable.SampleRowKeys.
376 type SampleRowKeysResponse struct {
377 // Sorted streamed sequence of sample row keys in the table. The table might
378 // have contents before the first row key in the list and after the last one,
379 // but a key containing the empty string indicates "end of table" and will be
380 // the last response given, if present.
381 // Note that row keys in this list may not have ever been written to or read
382 // from, and users should therefore not make any assumptions about the row key
383 // structure that are specific to their use case.
384 RowKey []byte `protobuf:"bytes,1,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
385 // Approximate total storage space used by all rows in the table which precede
386 // `row_key`. Buffering the contents of all rows between two subsequent
387 // samples would require space roughly equal to the difference in their
388 // `offset_bytes` fields.
389 OffsetBytes int64 `protobuf:"varint,2,opt,name=offset_bytes,json=offsetBytes" json:"offset_bytes,omitempty"`
392 func (m *SampleRowKeysResponse) Reset() { *m = SampleRowKeysResponse{} }
393 func (m *SampleRowKeysResponse) String() string { return proto.CompactTextString(m) }
394 func (*SampleRowKeysResponse) ProtoMessage() {}
395 func (*SampleRowKeysResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
397 func (m *SampleRowKeysResponse) GetRowKey() []byte {
404 func (m *SampleRowKeysResponse) GetOffsetBytes() int64 {
411 // Request message for Bigtable.MutateRow.
412 type MutateRowRequest struct {
413 // The unique name of the table to which the mutation should be applied.
414 // Values are of the form
415 // `projects/<project>/instances/<instance>/tables/<table>`.
416 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
417 // The key of the row to which the mutation should be applied.
418 RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
419 // Changes to be atomically applied to the specified row. Entries are applied
420 // in order, meaning that earlier mutations can be masked by later ones.
421 // Must contain at least one entry and at most 100000.
422 Mutations []*Mutation `protobuf:"bytes,3,rep,name=mutations" json:"mutations,omitempty"`
425 func (m *MutateRowRequest) Reset() { *m = MutateRowRequest{} }
426 func (m *MutateRowRequest) String() string { return proto.CompactTextString(m) }
427 func (*MutateRowRequest) ProtoMessage() {}
428 func (*MutateRowRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
430 func (m *MutateRowRequest) GetTableName() string {
437 func (m *MutateRowRequest) GetRowKey() []byte {
444 func (m *MutateRowRequest) GetMutations() []*Mutation {
451 // Response message for Bigtable.MutateRow.
452 type MutateRowResponse struct {
455 func (m *MutateRowResponse) Reset() { *m = MutateRowResponse{} }
456 func (m *MutateRowResponse) String() string { return proto.CompactTextString(m) }
457 func (*MutateRowResponse) ProtoMessage() {}
458 func (*MutateRowResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
460 // Request message for BigtableService.MutateRows.
461 type MutateRowsRequest struct {
462 // The unique name of the table to which the mutations should be applied.
463 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
464 // The row keys and corresponding mutations to be applied in bulk.
465 // Each entry is applied as an atomic mutation, but the entries may be
466 // applied in arbitrary order (even between entries for the same row).
467 // At least one entry must be specified, and in total the entries can
468 // contain at most 100000 mutations.
469 Entries []*MutateRowsRequest_Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"`
472 func (m *MutateRowsRequest) Reset() { *m = MutateRowsRequest{} }
473 func (m *MutateRowsRequest) String() string { return proto.CompactTextString(m) }
474 func (*MutateRowsRequest) ProtoMessage() {}
475 func (*MutateRowsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
477 func (m *MutateRowsRequest) GetTableName() string {
484 func (m *MutateRowsRequest) GetEntries() []*MutateRowsRequest_Entry {
491 type MutateRowsRequest_Entry struct {
492 // The key of the row to which the `mutations` should be applied.
493 RowKey []byte `protobuf:"bytes,1,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
494 // Changes to be atomically applied to the specified row. Mutations are
495 // applied in order, meaning that earlier mutations can be masked by
497 // You must specify at least one mutation.
498 Mutations []*Mutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"`
501 func (m *MutateRowsRequest_Entry) Reset() { *m = MutateRowsRequest_Entry{} }
502 func (m *MutateRowsRequest_Entry) String() string { return proto.CompactTextString(m) }
503 func (*MutateRowsRequest_Entry) ProtoMessage() {}
504 func (*MutateRowsRequest_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6, 0} }
506 func (m *MutateRowsRequest_Entry) GetRowKey() []byte {
513 func (m *MutateRowsRequest_Entry) GetMutations() []*Mutation {
520 // Response message for BigtableService.MutateRows.
521 type MutateRowsResponse struct {
522 // One or more results for Entries from the batch request.
523 Entries []*MutateRowsResponse_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
526 func (m *MutateRowsResponse) Reset() { *m = MutateRowsResponse{} }
527 func (m *MutateRowsResponse) String() string { return proto.CompactTextString(m) }
528 func (*MutateRowsResponse) ProtoMessage() {}
529 func (*MutateRowsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
531 func (m *MutateRowsResponse) GetEntries() []*MutateRowsResponse_Entry {
538 type MutateRowsResponse_Entry struct {
539 // The index into the original request's `entries` list of the Entry
540 // for which a result is being reported.
541 Index int64 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
542 // The result of the request Entry identified by `index`.
543 // Depending on how requests are batched during execution, it is possible
544 // for one Entry to fail due to an error with another Entry. In the event
545 // that this occurs, the same error will be reported for both entries.
546 Status *google_rpc.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
549 func (m *MutateRowsResponse_Entry) Reset() { *m = MutateRowsResponse_Entry{} }
550 func (m *MutateRowsResponse_Entry) String() string { return proto.CompactTextString(m) }
551 func (*MutateRowsResponse_Entry) ProtoMessage() {}
552 func (*MutateRowsResponse_Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} }
554 func (m *MutateRowsResponse_Entry) GetIndex() int64 {
561 func (m *MutateRowsResponse_Entry) GetStatus() *google_rpc.Status {
568 // Request message for Bigtable.CheckAndMutateRow.
569 type CheckAndMutateRowRequest struct {
570 // The unique name of the table to which the conditional mutation should be
572 // Values are of the form
573 // `projects/<project>/instances/<instance>/tables/<table>`.
574 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
575 // The key of the row to which the conditional mutation should be applied.
576 RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
577 // The filter to be applied to the contents of the specified row. Depending
578 // on whether or not any results are yielded, either `true_mutations` or
579 // `false_mutations` will be executed. If unset, checks that the row contains
580 // any values at all.
581 PredicateFilter *RowFilter `protobuf:"bytes,6,opt,name=predicate_filter,json=predicateFilter" json:"predicate_filter,omitempty"`
582 // Changes to be atomically applied to the specified row if `predicate_filter`
583 // yields at least one cell when applied to `row_key`. Entries are applied in
584 // order, meaning that earlier mutations can be masked by later ones.
585 // Must contain at least one entry if `false_mutations` is empty, and at most
587 TrueMutations []*Mutation `protobuf:"bytes,4,rep,name=true_mutations,json=trueMutations" json:"true_mutations,omitempty"`
588 // Changes to be atomically applied to the specified row if `predicate_filter`
589 // does not yield any cells when applied to `row_key`. Entries are applied in
590 // order, meaning that earlier mutations can be masked by later ones.
591 // Must contain at least one entry if `true_mutations` is empty, and at most
593 FalseMutations []*Mutation `protobuf:"bytes,5,rep,name=false_mutations,json=falseMutations" json:"false_mutations,omitempty"`
596 func (m *CheckAndMutateRowRequest) Reset() { *m = CheckAndMutateRowRequest{} }
597 func (m *CheckAndMutateRowRequest) String() string { return proto.CompactTextString(m) }
598 func (*CheckAndMutateRowRequest) ProtoMessage() {}
599 func (*CheckAndMutateRowRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
601 func (m *CheckAndMutateRowRequest) GetTableName() string {
608 func (m *CheckAndMutateRowRequest) GetRowKey() []byte {
615 func (m *CheckAndMutateRowRequest) GetPredicateFilter() *RowFilter {
617 return m.PredicateFilter
622 func (m *CheckAndMutateRowRequest) GetTrueMutations() []*Mutation {
624 return m.TrueMutations
629 func (m *CheckAndMutateRowRequest) GetFalseMutations() []*Mutation {
631 return m.FalseMutations
636 // Response message for Bigtable.CheckAndMutateRow.
637 type CheckAndMutateRowResponse struct {
638 // Whether or not the request's `predicate_filter` yielded any results for
639 // the specified row.
640 PredicateMatched bool `protobuf:"varint,1,opt,name=predicate_matched,json=predicateMatched" json:"predicate_matched,omitempty"`
643 func (m *CheckAndMutateRowResponse) Reset() { *m = CheckAndMutateRowResponse{} }
644 func (m *CheckAndMutateRowResponse) String() string { return proto.CompactTextString(m) }
645 func (*CheckAndMutateRowResponse) ProtoMessage() {}
646 func (*CheckAndMutateRowResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
648 func (m *CheckAndMutateRowResponse) GetPredicateMatched() bool {
650 return m.PredicateMatched
655 // Request message for Bigtable.ReadModifyWriteRow.
656 type ReadModifyWriteRowRequest struct {
657 // The unique name of the table to which the read/modify/write rules should be
659 // Values are of the form
660 // `projects/<project>/instances/<instance>/tables/<table>`.
661 TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
662 // The key of the row to which the read/modify/write rules should be applied.
663 RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
664 // Rules specifying how the specified row's contents are to be transformed
665 // into writes. Entries are applied in order, meaning that earlier rules will
666 // affect the results of later ones.
667 Rules []*ReadModifyWriteRule `protobuf:"bytes,3,rep,name=rules" json:"rules,omitempty"`
670 func (m *ReadModifyWriteRowRequest) Reset() { *m = ReadModifyWriteRowRequest{} }
671 func (m *ReadModifyWriteRowRequest) String() string { return proto.CompactTextString(m) }
672 func (*ReadModifyWriteRowRequest) ProtoMessage() {}
673 func (*ReadModifyWriteRowRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
675 func (m *ReadModifyWriteRowRequest) GetTableName() string {
682 func (m *ReadModifyWriteRowRequest) GetRowKey() []byte {
689 func (m *ReadModifyWriteRowRequest) GetRules() []*ReadModifyWriteRule {
696 // Response message for Bigtable.ReadModifyWriteRow.
697 type ReadModifyWriteRowResponse struct {
698 // A Row containing the new contents of all cells modified by the request.
699 Row *Row `protobuf:"bytes,1,opt,name=row" json:"row,omitempty"`
702 func (m *ReadModifyWriteRowResponse) Reset() { *m = ReadModifyWriteRowResponse{} }
703 func (m *ReadModifyWriteRowResponse) String() string { return proto.CompactTextString(m) }
704 func (*ReadModifyWriteRowResponse) ProtoMessage() {}
705 func (*ReadModifyWriteRowResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
707 func (m *ReadModifyWriteRowResponse) GetRow() *Row {
715 proto.RegisterType((*ReadRowsRequest)(nil), "google.bigtable.v2.ReadRowsRequest")
716 proto.RegisterType((*ReadRowsResponse)(nil), "google.bigtable.v2.ReadRowsResponse")
717 proto.RegisterType((*ReadRowsResponse_CellChunk)(nil), "google.bigtable.v2.ReadRowsResponse.CellChunk")
718 proto.RegisterType((*SampleRowKeysRequest)(nil), "google.bigtable.v2.SampleRowKeysRequest")
719 proto.RegisterType((*SampleRowKeysResponse)(nil), "google.bigtable.v2.SampleRowKeysResponse")
720 proto.RegisterType((*MutateRowRequest)(nil), "google.bigtable.v2.MutateRowRequest")
721 proto.RegisterType((*MutateRowResponse)(nil), "google.bigtable.v2.MutateRowResponse")
722 proto.RegisterType((*MutateRowsRequest)(nil), "google.bigtable.v2.MutateRowsRequest")
723 proto.RegisterType((*MutateRowsRequest_Entry)(nil), "google.bigtable.v2.MutateRowsRequest.Entry")
724 proto.RegisterType((*MutateRowsResponse)(nil), "google.bigtable.v2.MutateRowsResponse")
725 proto.RegisterType((*MutateRowsResponse_Entry)(nil), "google.bigtable.v2.MutateRowsResponse.Entry")
726 proto.RegisterType((*CheckAndMutateRowRequest)(nil), "google.bigtable.v2.CheckAndMutateRowRequest")
727 proto.RegisterType((*CheckAndMutateRowResponse)(nil), "google.bigtable.v2.CheckAndMutateRowResponse")
728 proto.RegisterType((*ReadModifyWriteRowRequest)(nil), "google.bigtable.v2.ReadModifyWriteRowRequest")
729 proto.RegisterType((*ReadModifyWriteRowResponse)(nil), "google.bigtable.v2.ReadModifyWriteRowResponse")
732 // Reference imports to suppress errors if they are not otherwise used.
733 var _ context.Context
734 var _ grpc.ClientConn
736 // This is a compile-time assertion to ensure that this generated file
737 // is compatible with the grpc package it is being compiled against.
738 const _ = grpc.SupportPackageIsVersion4
740 // Client API for Bigtable service
742 type BigtableClient interface {
743 // Streams back the contents of all requested rows in key order, optionally
744 // applying the same Reader filter to each. Depending on their size,
745 // rows and cells may be broken up across multiple responses, but
746 // atomicity of each row will still be preserved. See the
747 // ReadRowsResponse documentation for details.
748 ReadRows(ctx context.Context, in *ReadRowsRequest, opts ...grpc.CallOption) (Bigtable_ReadRowsClient, error)
749 // Returns a sample of row keys in the table. The returned row keys will
750 // delimit contiguous sections of the table of approximately equal size,
751 // which can be used to break up the data for distributed tasks like
753 SampleRowKeys(ctx context.Context, in *SampleRowKeysRequest, opts ...grpc.CallOption) (Bigtable_SampleRowKeysClient, error)
754 // Mutates a row atomically. Cells already present in the row are left
755 // unchanged unless explicitly changed by `mutation`.
756 MutateRow(ctx context.Context, in *MutateRowRequest, opts ...grpc.CallOption) (*MutateRowResponse, error)
757 // Mutates multiple rows in a batch. Each individual row is mutated
758 // atomically as in MutateRow, but the entire batch is not executed
760 MutateRows(ctx context.Context, in *MutateRowsRequest, opts ...grpc.CallOption) (Bigtable_MutateRowsClient, error)
761 // Mutates a row atomically based on the output of a predicate Reader filter.
762 CheckAndMutateRow(ctx context.Context, in *CheckAndMutateRowRequest, opts ...grpc.CallOption) (*CheckAndMutateRowResponse, error)
763 // Modifies a row atomically. The method reads the latest existing timestamp
764 // and value from the specified columns and writes a new entry based on
765 // pre-defined read/modify/write rules. The new value for the timestamp is the
766 // greater of the existing timestamp or the current server time. The method
767 // returns the new contents of all modified cells.
768 ReadModifyWriteRow(ctx context.Context, in *ReadModifyWriteRowRequest, opts ...grpc.CallOption) (*ReadModifyWriteRowResponse, error)
771 type bigtableClient struct {
775 func NewBigtableClient(cc *grpc.ClientConn) BigtableClient {
776 return &bigtableClient{cc}
779 func (c *bigtableClient) ReadRows(ctx context.Context, in *ReadRowsRequest, opts ...grpc.CallOption) (Bigtable_ReadRowsClient, error) {
780 stream, err := grpc.NewClientStream(ctx, &_Bigtable_serviceDesc.Streams[0], c.cc, "/google.bigtable.v2.Bigtable/ReadRows", opts...)
784 x := &bigtableReadRowsClient{stream}
785 if err := x.ClientStream.SendMsg(in); err != nil {
788 if err := x.ClientStream.CloseSend(); err != nil {
794 type Bigtable_ReadRowsClient interface {
795 Recv() (*ReadRowsResponse, error)
799 type bigtableReadRowsClient struct {
803 func (x *bigtableReadRowsClient) Recv() (*ReadRowsResponse, error) {
804 m := new(ReadRowsResponse)
805 if err := x.ClientStream.RecvMsg(m); err != nil {
811 func (c *bigtableClient) SampleRowKeys(ctx context.Context, in *SampleRowKeysRequest, opts ...grpc.CallOption) (Bigtable_SampleRowKeysClient, error) {
812 stream, err := grpc.NewClientStream(ctx, &_Bigtable_serviceDesc.Streams[1], c.cc, "/google.bigtable.v2.Bigtable/SampleRowKeys", opts...)
816 x := &bigtableSampleRowKeysClient{stream}
817 if err := x.ClientStream.SendMsg(in); err != nil {
820 if err := x.ClientStream.CloseSend(); err != nil {
826 type Bigtable_SampleRowKeysClient interface {
827 Recv() (*SampleRowKeysResponse, error)
831 type bigtableSampleRowKeysClient struct {
835 func (x *bigtableSampleRowKeysClient) Recv() (*SampleRowKeysResponse, error) {
836 m := new(SampleRowKeysResponse)
837 if err := x.ClientStream.RecvMsg(m); err != nil {
843 func (c *bigtableClient) MutateRow(ctx context.Context, in *MutateRowRequest, opts ...grpc.CallOption) (*MutateRowResponse, error) {
844 out := new(MutateRowResponse)
845 err := grpc.Invoke(ctx, "/google.bigtable.v2.Bigtable/MutateRow", in, out, c.cc, opts...)
852 func (c *bigtableClient) MutateRows(ctx context.Context, in *MutateRowsRequest, opts ...grpc.CallOption) (Bigtable_MutateRowsClient, error) {
853 stream, err := grpc.NewClientStream(ctx, &_Bigtable_serviceDesc.Streams[2], c.cc, "/google.bigtable.v2.Bigtable/MutateRows", opts...)
857 x := &bigtableMutateRowsClient{stream}
858 if err := x.ClientStream.SendMsg(in); err != nil {
861 if err := x.ClientStream.CloseSend(); err != nil {
867 type Bigtable_MutateRowsClient interface {
868 Recv() (*MutateRowsResponse, error)
872 type bigtableMutateRowsClient struct {
876 func (x *bigtableMutateRowsClient) Recv() (*MutateRowsResponse, error) {
877 m := new(MutateRowsResponse)
878 if err := x.ClientStream.RecvMsg(m); err != nil {
884 func (c *bigtableClient) CheckAndMutateRow(ctx context.Context, in *CheckAndMutateRowRequest, opts ...grpc.CallOption) (*CheckAndMutateRowResponse, error) {
885 out := new(CheckAndMutateRowResponse)
886 err := grpc.Invoke(ctx, "/google.bigtable.v2.Bigtable/CheckAndMutateRow", in, out, c.cc, opts...)
893 func (c *bigtableClient) ReadModifyWriteRow(ctx context.Context, in *ReadModifyWriteRowRequest, opts ...grpc.CallOption) (*ReadModifyWriteRowResponse, error) {
894 out := new(ReadModifyWriteRowResponse)
895 err := grpc.Invoke(ctx, "/google.bigtable.v2.Bigtable/ReadModifyWriteRow", in, out, c.cc, opts...)
902 // Server API for Bigtable service
904 type BigtableServer interface {
905 // Streams back the contents of all requested rows in key order, optionally
906 // applying the same Reader filter to each. Depending on their size,
907 // rows and cells may be broken up across multiple responses, but
908 // atomicity of each row will still be preserved. See the
909 // ReadRowsResponse documentation for details.
910 ReadRows(*ReadRowsRequest, Bigtable_ReadRowsServer) error
911 // Returns a sample of row keys in the table. The returned row keys will
912 // delimit contiguous sections of the table of approximately equal size,
913 // which can be used to break up the data for distributed tasks like
915 SampleRowKeys(*SampleRowKeysRequest, Bigtable_SampleRowKeysServer) error
916 // Mutates a row atomically. Cells already present in the row are left
917 // unchanged unless explicitly changed by `mutation`.
918 MutateRow(context.Context, *MutateRowRequest) (*MutateRowResponse, error)
919 // Mutates multiple rows in a batch. Each individual row is mutated
920 // atomically as in MutateRow, but the entire batch is not executed
922 MutateRows(*MutateRowsRequest, Bigtable_MutateRowsServer) error
923 // Mutates a row atomically based on the output of a predicate Reader filter.
924 CheckAndMutateRow(context.Context, *CheckAndMutateRowRequest) (*CheckAndMutateRowResponse, error)
925 // Modifies a row atomically. The method reads the latest existing timestamp
926 // and value from the specified columns and writes a new entry based on
927 // pre-defined read/modify/write rules. The new value for the timestamp is the
928 // greater of the existing timestamp or the current server time. The method
929 // returns the new contents of all modified cells.
930 ReadModifyWriteRow(context.Context, *ReadModifyWriteRowRequest) (*ReadModifyWriteRowResponse, error)
933 func RegisterBigtableServer(s *grpc.Server, srv BigtableServer) {
934 s.RegisterService(&_Bigtable_serviceDesc, srv)
937 func _Bigtable_ReadRows_Handler(srv interface{}, stream grpc.ServerStream) error {
938 m := new(ReadRowsRequest)
939 if err := stream.RecvMsg(m); err != nil {
942 return srv.(BigtableServer).ReadRows(m, &bigtableReadRowsServer{stream})
945 type Bigtable_ReadRowsServer interface {
946 Send(*ReadRowsResponse) error
950 type bigtableReadRowsServer struct {
954 func (x *bigtableReadRowsServer) Send(m *ReadRowsResponse) error {
955 return x.ServerStream.SendMsg(m)
958 func _Bigtable_SampleRowKeys_Handler(srv interface{}, stream grpc.ServerStream) error {
959 m := new(SampleRowKeysRequest)
960 if err := stream.RecvMsg(m); err != nil {
963 return srv.(BigtableServer).SampleRowKeys(m, &bigtableSampleRowKeysServer{stream})
966 type Bigtable_SampleRowKeysServer interface {
967 Send(*SampleRowKeysResponse) error
971 type bigtableSampleRowKeysServer struct {
975 func (x *bigtableSampleRowKeysServer) Send(m *SampleRowKeysResponse) error {
976 return x.ServerStream.SendMsg(m)
979 func _Bigtable_MutateRow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
980 in := new(MutateRowRequest)
981 if err := dec(in); err != nil {
984 if interceptor == nil {
985 return srv.(BigtableServer).MutateRow(ctx, in)
987 info := &grpc.UnaryServerInfo{
989 FullMethod: "/google.bigtable.v2.Bigtable/MutateRow",
991 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
992 return srv.(BigtableServer).MutateRow(ctx, req.(*MutateRowRequest))
994 return interceptor(ctx, in, info, handler)
997 func _Bigtable_MutateRows_Handler(srv interface{}, stream grpc.ServerStream) error {
998 m := new(MutateRowsRequest)
999 if err := stream.RecvMsg(m); err != nil {
1002 return srv.(BigtableServer).MutateRows(m, &bigtableMutateRowsServer{stream})
1005 type Bigtable_MutateRowsServer interface {
1006 Send(*MutateRowsResponse) error
1010 type bigtableMutateRowsServer struct {
1014 func (x *bigtableMutateRowsServer) Send(m *MutateRowsResponse) error {
1015 return x.ServerStream.SendMsg(m)
1018 func _Bigtable_CheckAndMutateRow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1019 in := new(CheckAndMutateRowRequest)
1020 if err := dec(in); err != nil {
1023 if interceptor == nil {
1024 return srv.(BigtableServer).CheckAndMutateRow(ctx, in)
1026 info := &grpc.UnaryServerInfo{
1028 FullMethod: "/google.bigtable.v2.Bigtable/CheckAndMutateRow",
1030 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1031 return srv.(BigtableServer).CheckAndMutateRow(ctx, req.(*CheckAndMutateRowRequest))
1033 return interceptor(ctx, in, info, handler)
1036 func _Bigtable_ReadModifyWriteRow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1037 in := new(ReadModifyWriteRowRequest)
1038 if err := dec(in); err != nil {
1041 if interceptor == nil {
1042 return srv.(BigtableServer).ReadModifyWriteRow(ctx, in)
1044 info := &grpc.UnaryServerInfo{
1046 FullMethod: "/google.bigtable.v2.Bigtable/ReadModifyWriteRow",
1048 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1049 return srv.(BigtableServer).ReadModifyWriteRow(ctx, req.(*ReadModifyWriteRowRequest))
1051 return interceptor(ctx, in, info, handler)
1054 var _Bigtable_serviceDesc = grpc.ServiceDesc{
1055 ServiceName: "google.bigtable.v2.Bigtable",
1056 HandlerType: (*BigtableServer)(nil),
1057 Methods: []grpc.MethodDesc{
1059 MethodName: "MutateRow",
1060 Handler: _Bigtable_MutateRow_Handler,
1063 MethodName: "CheckAndMutateRow",
1064 Handler: _Bigtable_CheckAndMutateRow_Handler,
1067 MethodName: "ReadModifyWriteRow",
1068 Handler: _Bigtable_ReadModifyWriteRow_Handler,
1071 Streams: []grpc.StreamDesc{
1073 StreamName: "ReadRows",
1074 Handler: _Bigtable_ReadRows_Handler,
1075 ServerStreams: true,
1078 StreamName: "SampleRowKeys",
1079 Handler: _Bigtable_SampleRowKeys_Handler,
1080 ServerStreams: true,
1083 StreamName: "MutateRows",
1084 Handler: _Bigtable_MutateRows_Handler,
1085 ServerStreams: true,
1088 Metadata: "google/bigtable/v2/bigtable.proto",
1091 func init() { proto.RegisterFile("google/bigtable/v2/bigtable.proto", fileDescriptor0) }
1093 var fileDescriptor0 = []byte{
1094 // 1154 bytes of a gzipped FileDescriptorProto
1095 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdd, 0x6e, 0x1b, 0x45,
1096 0x14, 0x66, 0xec, 0xd8, 0xf1, 0x9e, 0x24, 0x4d, 0x32, 0x84, 0x66, 0x6b, 0x12, 0x70, 0x97, 0x16,
1097 0x1c, 0x97, 0xae, 0x2b, 0xa3, 0x5e, 0xd4, 0x55, 0x0a, 0xd8, 0xe4, 0x07, 0x81, 0xab, 0x6a, 0x2c,
1098 0x15, 0x09, 0x21, 0x59, 0xe3, 0xf5, 0xd8, 0x59, 0xb2, 0x7f, 0xdd, 0x9d, 0x8d, 0x71, 0x11, 0x12,
1099 0xe2, 0x82, 0x07, 0x80, 0x6b, 0xc4, 0x15, 0x02, 0x21, 0xc1, 0x25, 0xb7, 0x5c, 0xf0, 0x08, 0x5c,
1100 0xf0, 0x02, 0x7d, 0x02, 0x9e, 0xa0, 0xda, 0xd9, 0x59, 0xdb, 0x49, 0xec, 0x76, 0x53, 0xf5, 0x6e,
1101 0xe7, 0x9c, 0xf3, 0x9d, 0xf9, 0xce, 0xef, 0xd8, 0x70, 0x75, 0xe0, 0xba, 0x03, 0x8b, 0x55, 0xbb,
1102 0xe6, 0x80, 0xd3, 0xae, 0xc5, 0xaa, 0x27, 0xb5, 0xf1, 0xb7, 0xee, 0xf9, 0x2e, 0x77, 0x31, 0x8e,
1103 0x4d, 0xf4, 0xb1, 0xf8, 0xa4, 0x56, 0xdc, 0x92, 0x30, 0xea, 0x99, 0x55, 0xea, 0x38, 0x2e, 0xa7,
1104 0xdc, 0x74, 0x9d, 0x20, 0x46, 0x14, 0xb7, 0x67, 0x38, 0xed, 0x51, 0x4e, 0xa5, 0xfa, 0x0d, 0xa9,
1105 0x16, 0xa7, 0x6e, 0xd8, 0xaf, 0x0e, 0x7d, 0xea, 0x79, 0xcc, 0x4f, 0xe0, 0x9b, 0x52, 0xef, 0x7b,
1106 0x46, 0x35, 0xe0, 0x94, 0x87, 0x52, 0xa1, 0xfd, 0x85, 0x60, 0x95, 0x30, 0xda, 0x23, 0xee, 0x30,
1107 0x20, 0xec, 0x51, 0xc8, 0x02, 0x8e, 0xb7, 0x01, 0xc4, 0x1d, 0x1d, 0x87, 0xda, 0x4c, 0x45, 0x25,
1108 0x54, 0x56, 0x88, 0x22, 0x24, 0xf7, 0xa9, 0xcd, 0xb0, 0x0e, 0x0b, 0xbe, 0x3b, 0x0c, 0xd4, 0x4c,
1109 0x09, 0x95, 0x97, 0x6a, 0x45, 0xfd, 0x7c, 0x2c, 0x3a, 0x71, 0x87, 0x6d, 0xc6, 0x89, 0xb0, 0xc3,
1110 0xb7, 0x21, 0xdf, 0x37, 0x2d, 0xce, 0x7c, 0x35, 0x2b, 0x10, 0xdb, 0x73, 0x10, 0xfb, 0xc2, 0x88,
1111 0x48, 0xe3, 0x88, 0x45, 0x04, 0xef, 0x58, 0xa6, 0x6d, 0x72, 0x75, 0xa1, 0x84, 0xca, 0x59, 0xa2,
1112 0x44, 0x92, 0x4f, 0x23, 0x81, 0xf6, 0x7f, 0x16, 0xd6, 0x26, 0xc4, 0x03, 0xcf, 0x75, 0x02, 0x86,
1113 0xf7, 0x21, 0x6f, 0x1c, 0x85, 0xce, 0x71, 0xa0, 0xa2, 0x52, 0xb6, 0xbc, 0x54, 0xd3, 0x67, 0x5e,
1114 0x75, 0x06, 0xa5, 0x37, 0x99, 0x65, 0x35, 0x23, 0x18, 0x91, 0x68, 0x5c, 0x85, 0x0d, 0x8b, 0x06,
1115 0xbc, 0x13, 0x18, 0xd4, 0x71, 0x58, 0xaf, 0xe3, 0xbb, 0xc3, 0xce, 0x31, 0x1b, 0x89, 0x90, 0x97,
1116 0xc9, 0x7a, 0xa4, 0x6b, 0xc7, 0x2a, 0xe2, 0x0e, 0x3f, 0x61, 0xa3, 0xe2, 0x93, 0x0c, 0x28, 0x63,
1117 0x37, 0x78, 0x13, 0x16, 0x13, 0x04, 0x12, 0x88, 0xbc, 0x2f, 0xcc, 0xf0, 0x2e, 0x2c, 0xf5, 0xa9,
1118 0x6d, 0x5a, 0xa3, 0x38, 0xb5, 0x71, 0x06, 0xb7, 0x12, 0x92, 0x49, 0xf1, 0xf4, 0x36, 0xf7, 0x4d,
1119 0x67, 0xf0, 0x90, 0x5a, 0x21, 0x23, 0x10, 0x03, 0x44, 0xe6, 0xef, 0x80, 0xf2, 0x28, 0xa4, 0x96,
1120 0xd9, 0x37, 0xc7, 0xc9, 0x7c, 0xfd, 0x1c, 0xb8, 0x31, 0xe2, 0x2c, 0x88, 0xb1, 0x13, 0x6b, 0xbc,
1121 0x03, 0x6b, 0xdc, 0xb4, 0x59, 0xc0, 0xa9, 0xed, 0x75, 0x6c, 0xd3, 0xf0, 0xdd, 0x40, 0xe6, 0x74,
1122 0x75, 0x2c, 0x6f, 0x09, 0x31, 0xbe, 0x0c, 0x79, 0x8b, 0x76, 0x99, 0x15, 0xa8, 0xb9, 0x52, 0xb6,
1123 0xac, 0x10, 0x79, 0xc2, 0x1b, 0x90, 0x3b, 0x89, 0xdc, 0xaa, 0x79, 0x11, 0x53, 0x7c, 0x88, 0xca,
1124 0x24, 0x3e, 0x3a, 0x81, 0xf9, 0x98, 0xa9, 0x8b, 0x25, 0x54, 0xce, 0x11, 0x45, 0x48, 0xda, 0xe6,
1125 0xe3, 0x48, 0xad, 0xf8, 0x2c, 0x60, 0x3c, 0x4a, 0xa1, 0x5a, 0x28, 0xa1, 0x72, 0xe1, 0xf0, 0x15,
1126 0x52, 0x10, 0x22, 0xe2, 0x0e, 0xf1, 0x9b, 0x00, 0x86, 0x6b, 0xdb, 0x66, 0xac, 0x57, 0xa4, 0x5e,
1127 0x89, 0x65, 0xc4, 0x1d, 0x36, 0x96, 0x45, 0x17, 0x74, 0xe2, 0x9e, 0xd5, 0x6e, 0xc3, 0x46, 0x9b,
1128 0xda, 0x9e, 0xc5, 0xe2, 0xb4, 0xa7, 0xec, 0x58, 0xad, 0x0d, 0xaf, 0x9d, 0x81, 0xc9, 0x7e, 0x99,
1129 0x5b, 0xa8, 0xab, 0xb0, 0xec, 0xf6, 0xfb, 0x11, 0xef, 0x6e, 0x94, 0x4e, 0x51, 0xa9, 0x2c, 0x59,
1130 0x8a, 0x65, 0x22, 0xc3, 0xda, 0xf7, 0x08, 0xd6, 0x5a, 0x21, 0xa7, 0x3c, 0xf2, 0x9a, 0x72, 0x74,
1131 0xa6, 0xee, 0xcb, 0x9c, 0xba, 0xaf, 0x0e, 0x8a, 0x1d, 0xca, 0x89, 0x57, 0xb3, 0xa2, 0x77, 0xb7,
1132 0x66, 0xf5, 0x6e, 0x4b, 0x1a, 0x91, 0x89, 0xb9, 0xf6, 0x2a, 0xac, 0x4f, 0xf1, 0x88, 0x23, 0xd3,
1133 0xfe, 0x43, 0x53, 0xd2, 0xb4, 0x93, 0xbd, 0x07, 0x8b, 0xcc, 0xe1, 0xbe, 0x29, 0x02, 0x8e, 0x38,
1134 0xdc, 0x98, 0xcb, 0x61, 0xda, 0xad, 0xbe, 0xe7, 0x70, 0x7f, 0x44, 0x12, 0x6c, 0xf1, 0x0b, 0xc8,
1135 0x09, 0xc9, 0xfc, 0xf4, 0x9e, 0x0a, 0x37, 0x73, 0xb1, 0x70, 0x7f, 0x45, 0x80, 0xa7, 0x29, 0x8c,
1136 0x47, 0x7f, 0xcc, 0x3d, 0x9e, 0xfd, 0x77, 0x9f, 0xc7, 0x5d, 0x4e, 0xff, 0x19, 0xf2, 0x1f, 0x27,
1137 0xe4, 0x37, 0x20, 0x67, 0x3a, 0x3d, 0xf6, 0x95, 0xa0, 0x9e, 0x25, 0xf1, 0x01, 0x57, 0x20, 0x1f,
1138 0xf7, 0xa2, 0x1c, 0x5e, 0x9c, 0xdc, 0xe2, 0x7b, 0x86, 0xde, 0x16, 0x1a, 0x22, 0x2d, 0xb4, 0xdf,
1139 0x32, 0xa0, 0x36, 0x8f, 0x98, 0x71, 0xfc, 0xa1, 0xd3, 0x7b, 0x69, 0x9d, 0x72, 0x08, 0x6b, 0x9e,
1140 0xcf, 0x7a, 0xa6, 0x41, 0x39, 0xeb, 0xc8, 0xbd, 0x9a, 0x4f, 0xb3, 0x57, 0x57, 0xc7, 0xb0, 0x58,
1141 0x80, 0x9b, 0x70, 0x89, 0xfb, 0x21, 0xeb, 0x4c, 0x2a, 0xb1, 0x90, 0xa2, 0x12, 0x2b, 0x11, 0x26,
1142 0x39, 0x05, 0x78, 0x0f, 0x56, 0xfb, 0xd4, 0x0a, 0xa6, 0xbd, 0xe4, 0x52, 0x78, 0xb9, 0x24, 0x40,
1143 0x63, 0x37, 0xda, 0x21, 0x5c, 0x99, 0x91, 0x29, 0x59, 0xda, 0x1b, 0xb0, 0x3e, 0x09, 0xd9, 0xa6,
1144 0xdc, 0x38, 0x62, 0x3d, 0x91, 0xb1, 0x02, 0x99, 0xe4, 0xa2, 0x15, 0xcb, 0xb5, 0x1f, 0x10, 0x5c,
1145 0x89, 0x36, 0x7c, 0xcb, 0xed, 0x99, 0xfd, 0xd1, 0x67, 0xbe, 0xf9, 0x52, 0xb2, 0xbe, 0x0b, 0x39,
1146 0x3f, 0xb4, 0x58, 0x32, 0x9b, 0xef, 0xcc, 0x7b, 0x57, 0xa6, 0x6f, 0x0d, 0x2d, 0x46, 0x62, 0x94,
1147 0x76, 0x00, 0xc5, 0x59, 0x9c, 0x64, 0x7c, 0x3b, 0x90, 0x8d, 0xb6, 0x1f, 0x12, 0x55, 0xdc, 0x9c,
1148 0x53, 0x45, 0x12, 0xd9, 0xd4, 0xfe, 0x28, 0x40, 0xa1, 0x21, 0x15, 0xf8, 0x27, 0x04, 0x85, 0xe4,
1149 0x31, 0xc3, 0x6f, 0x3d, 0xfb, 0xa9, 0x13, 0xe1, 0x17, 0xaf, 0xa5, 0x79, 0x0f, 0xb5, 0x8f, 0xbe,
1150 0xfb, 0xf7, 0xc9, 0x8f, 0x99, 0x7b, 0xda, 0x9d, 0xe8, 0x47, 0xc6, 0xd7, 0x93, 0x7c, 0xed, 0x7a,
1151 0xbe, 0xfb, 0x25, 0x33, 0x78, 0x50, 0xad, 0x54, 0x4d, 0x27, 0xe0, 0xd4, 0x31, 0x58, 0xf4, 0x2d,
1152 0x2c, 0x82, 0x6a, 0xe5, 0x9b, 0xba, 0x2f, 0x5d, 0xd5, 0x51, 0xe5, 0x16, 0xc2, 0x7f, 0x22, 0x58,
1153 0x39, 0xb5, 0x77, 0x71, 0x79, 0xd6, 0xfd, 0xb3, 0x36, 0x7a, 0x71, 0x27, 0x85, 0xa5, 0xa4, 0xbb,
1154 0x2f, 0xe8, 0x7e, 0x80, 0xef, 0x5d, 0x98, 0x6e, 0x30, 0xed, 0xef, 0x16, 0xc2, 0x3f, 0x23, 0x50,
1155 0xc6, 0xed, 0x87, 0xaf, 0x3d, 0x73, 0x81, 0x24, 0x44, 0xaf, 0x3f, 0xc7, 0x4a, 0x92, 0xdc, 0x13,
1156 0x24, 0xdf, 0xd7, 0xea, 0x17, 0x26, 0x69, 0x27, 0xbe, 0xea, 0xa8, 0x82, 0x7f, 0x41, 0x00, 0x93,
1157 0x1d, 0x86, 0xaf, 0xa7, 0xda, 0xcf, 0xc5, 0xb7, 0xd3, 0xad, 0xc2, 0x24, 0x93, 0xda, 0xdd, 0x17,
1158 0x27, 0x29, 0x4b, 0xff, 0x37, 0x82, 0xf5, 0x73, 0x03, 0x8d, 0x67, 0xae, 0xe4, 0x79, 0x1b, 0xb2,
1159 0x78, 0x33, 0xa5, 0xb5, 0x24, 0xdf, 0x12, 0xe4, 0x0f, 0xb4, 0xc6, 0x85, 0xc9, 0x1b, 0x67, 0x7d,
1160 0x46, 0x99, 0xfe, 0x07, 0x01, 0x3e, 0x3f, 0xb3, 0xf8, 0x66, 0x9a, 0xc9, 0x9f, 0xc4, 0xa0, 0xa7,
1161 0x35, 0x97, 0x41, 0xdc, 0x17, 0x41, 0x1c, 0x6a, 0xcd, 0x17, 0x1a, 0xbd, 0xd3, 0x4e, 0xeb, 0xa8,
1162 0xd2, 0xf8, 0x16, 0xc1, 0x65, 0xc3, 0xb5, 0x67, 0xb0, 0x68, 0xac, 0x24, 0x7b, 0xe4, 0x41, 0xf4,
1163 0xcb, 0xf1, 0x01, 0xfa, 0xbc, 0x2e, 0x8d, 0x06, 0xae, 0x45, 0x9d, 0x81, 0xee, 0xfa, 0x83, 0xea,
1164 0x80, 0x39, 0xe2, 0x77, 0x65, 0x35, 0x56, 0x51, 0xcf, 0x0c, 0xa6, 0xff, 0x81, 0xdc, 0x4d, 0xbe,
1165 0x7f, 0xcf, 0xa8, 0x07, 0x31, 0xb8, 0x69, 0xb9, 0x61, 0x4f, 0x4f, 0x5c, 0xeb, 0x0f, 0x6b, 0xdd,
1166 0xbc, 0xf0, 0xf0, 0xde, 0xd3, 0x00, 0x00, 0x00, 0xff, 0xff, 0x74, 0x6b, 0x7a, 0xa3, 0x17, 0x0d,