github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/roachpb/metadata.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: roachpb/metadata.proto
     3  
     4  package roachpb
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import util "github.com/cockroachdb/cockroach/pkg/util"
    10  import hlc "github.com/cockroachdb/cockroach/pkg/util/hlc"
    11  
    12  import bytes "bytes"
    13  
    14  import encoding_binary "encoding/binary"
    15  
    16  import io "io"
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var _ = proto.Marshal
    20  var _ = fmt.Errorf
    21  var _ = math.Inf
    22  
    23  // This is a compile-time assertion to ensure that this generated file
    24  // is compatible with the proto package it is being compiled against.
    25  // A compilation error at this line likely means your copy of the
    26  // proto package needs to be updated.
    27  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    28  
    29  // ReplicaType identifies which raft activities a replica participates in. In
    30  // normal operation, VOTER_FULL and LEARNER are the only used states. However,
    31  // atomic replication changes require a transition through a "joint config"; in
    32  // this joint config, the VOTER_DEMOTING and VOTER_INCOMING types are used as
    33  // well to denote voters which are being downgraded to learners and newly added
    34  // by the change, respectively. A demoting voter is turning into a learner,
    35  // which we prefer over a direct removal, which was used prior to v20.1 and
    36  // uses the VOTER_OUTGOING type instead (see VersionChangeReplicasDemotion for
    37  // details on why we're not doing that any more).
    38  //
    39  // All voter types indicate a replica that participates in all raft activities,
    40  // including voting for leadership and committing entries. Typically, this
    41  // requires a majority of voters to reach a decision. In a joint config, two
    42  // separate majorities are required: one from the set of replicas that have
    43  // either type VOTER or VOTER_OUTOING or VOTER_DEMOTING, as well as that of the
    44  // set of types VOTER and VOTER_INCOMING . For example, when type VOTER_FULL is
    45  // assigned to replicas 1 and 2, while 3 is VOTER_OUTGOING and 4 is
    46  // VOTER_INCOMING, then the two sets over which quorums need to be achieved are
    47  // {1,2,3} and {1,2,4}. Thus, {1,2} is a quorum of both, {1,3} is a quorum of
    48  // the first but not the second, {1,4} is a quorum of the second but not the
    49  // first, and {3,4} is a quorum of neither.
    50  type ReplicaType int32
    51  
    52  const (
    53  	// VOTER_FULL indicates a replica that is a voter both in the
    54  	// incoming and outgoing set.
    55  	VOTER_FULL ReplicaType = 0
    56  	// VOTER_INCOMING indicates a voting replica that will be a
    57  	// VOTER_FULL once the ongoing atomic replication change is finalized; that is,
    58  	// it is in the process of being added. In practice, this replica type should
    59  	// be treated like a VOTER_FULL.
    60  	VOTER_INCOMING ReplicaType = 2
    61  	// VOTER_OUTGOING indicates a voting replica that will not be part
    62  	// of the descriptor once the ongoing atomic replication change is finalized;
    63  	// that is, it is in the process of being removed. In practice, a replica of
    64  	// this type should be treated accordingly and no work should be assigned to
    65  	// it.
    66  	VOTER_OUTGOING ReplicaType = 3
    67  	// VOTER_DEMOTING indicates a voting replica that will become a learner once
    68  	// the ongoing atomic replication change is finalized; that is, it is in the
    69  	// process of being demoted. Since learners are currently short-lived, this
    70  	// replica is really being removed, with an intermediate step, and no work
    71  	// should be assigned to it.
    72  	VOTER_DEMOTING ReplicaType = 4
    73  	// LEARNER indicates a replica that applies committed entries, but does not
    74  	// count towards the quorum(s). Candidates will not ask for (or take into
    75  	// account) votes of (peers they consider) LEARNERs for leadership nor do
    76  	// their acknowledged log entries get taken into account for determining the
    77  	// committed index. At the time of writing, learners in CockroachDB are a
    78  	// short-term transient state: a replica being added and on its way to being a
    79  	// VOTER_{FULL,INCOMING}, or a VOTER_DEMOTING being removed.
    80  	LEARNER ReplicaType = 1
    81  )
    82  
    83  var ReplicaType_name = map[int32]string{
    84  	0: "VOTER_FULL",
    85  	2: "VOTER_INCOMING",
    86  	3: "VOTER_OUTGOING",
    87  	4: "VOTER_DEMOTING",
    88  	1: "LEARNER",
    89  }
    90  var ReplicaType_value = map[string]int32{
    91  	"VOTER_FULL":     0,
    92  	"VOTER_INCOMING": 2,
    93  	"VOTER_OUTGOING": 3,
    94  	"VOTER_DEMOTING": 4,
    95  	"LEARNER":        1,
    96  }
    97  
    98  func (x ReplicaType) Enum() *ReplicaType {
    99  	p := new(ReplicaType)
   100  	*p = x
   101  	return p
   102  }
   103  func (x ReplicaType) String() string {
   104  	return proto.EnumName(ReplicaType_name, int32(x))
   105  }
   106  func (x *ReplicaType) UnmarshalJSON(data []byte) error {
   107  	value, err := proto.UnmarshalJSONEnum(ReplicaType_value, data, "ReplicaType")
   108  	if err != nil {
   109  		return err
   110  	}
   111  	*x = ReplicaType(value)
   112  	return nil
   113  }
   114  func (ReplicaType) EnumDescriptor() ([]byte, []int) {
   115  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{0}
   116  }
   117  
   118  // Attributes specifies a list of arbitrary strings describing
   119  // node topology, store type, and machine capabilities.
   120  type Attributes struct {
   121  	Attrs []string `protobuf:"bytes,1,rep,name=attrs" json:"attrs,omitempty" yaml:"attrs,flow"`
   122  }
   123  
   124  func (m *Attributes) Reset()      { *m = Attributes{} }
   125  func (*Attributes) ProtoMessage() {}
   126  func (*Attributes) Descriptor() ([]byte, []int) {
   127  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{0}
   128  }
   129  func (m *Attributes) XXX_Unmarshal(b []byte) error {
   130  	return m.Unmarshal(b)
   131  }
   132  func (m *Attributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   133  	b = b[:cap(b)]
   134  	n, err := m.MarshalTo(b)
   135  	if err != nil {
   136  		return nil, err
   137  	}
   138  	return b[:n], nil
   139  }
   140  func (dst *Attributes) XXX_Merge(src proto.Message) {
   141  	xxx_messageInfo_Attributes.Merge(dst, src)
   142  }
   143  func (m *Attributes) XXX_Size() int {
   144  	return m.Size()
   145  }
   146  func (m *Attributes) XXX_DiscardUnknown() {
   147  	xxx_messageInfo_Attributes.DiscardUnknown(m)
   148  }
   149  
   150  var xxx_messageInfo_Attributes proto.InternalMessageInfo
   151  
   152  // ReplicationTarget identifies a node/store pair.
   153  type ReplicationTarget struct {
   154  	NodeID  NodeID  `protobuf:"varint,1,opt,name=node_id,json=nodeId,casttype=NodeID" json:"node_id"`
   155  	StoreID StoreID `protobuf:"varint,2,opt,name=store_id,json=storeId,casttype=StoreID" json:"store_id"`
   156  }
   157  
   158  func (m *ReplicationTarget) Reset()      { *m = ReplicationTarget{} }
   159  func (*ReplicationTarget) ProtoMessage() {}
   160  func (*ReplicationTarget) Descriptor() ([]byte, []int) {
   161  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{1}
   162  }
   163  func (m *ReplicationTarget) XXX_Unmarshal(b []byte) error {
   164  	return m.Unmarshal(b)
   165  }
   166  func (m *ReplicationTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   167  	b = b[:cap(b)]
   168  	n, err := m.MarshalTo(b)
   169  	if err != nil {
   170  		return nil, err
   171  	}
   172  	return b[:n], nil
   173  }
   174  func (dst *ReplicationTarget) XXX_Merge(src proto.Message) {
   175  	xxx_messageInfo_ReplicationTarget.Merge(dst, src)
   176  }
   177  func (m *ReplicationTarget) XXX_Size() int {
   178  	return m.Size()
   179  }
   180  func (m *ReplicationTarget) XXX_DiscardUnknown() {
   181  	xxx_messageInfo_ReplicationTarget.DiscardUnknown(m)
   182  }
   183  
   184  var xxx_messageInfo_ReplicationTarget proto.InternalMessageInfo
   185  
   186  // ReplicaDescriptor describes a replica location by node ID
   187  // (corresponds to a host:port via lookup on gossip network) and store
   188  // ID (identifies the device).
   189  // TODO(jeffreyxiao): All nullable fields in ReplicaDescriptor can be made
   190  // non-nullable if #38302 is guaranteed to be on all nodes (I.E. 20.1).
   191  type ReplicaDescriptor struct {
   192  	NodeID  NodeID  `protobuf:"varint,1,opt,name=node_id,json=nodeId,casttype=NodeID" json:"node_id"`
   193  	StoreID StoreID `protobuf:"varint,2,opt,name=store_id,json=storeId,casttype=StoreID" json:"store_id"`
   194  	// replica_id uniquely identifies a replica instance. If a range is removed from
   195  	// a store and then re-added to the same store, the new instance will have a
   196  	// higher replica_id.
   197  	ReplicaID ReplicaID `protobuf:"varint,3,opt,name=replica_id,json=replicaId,casttype=ReplicaID" json:"replica_id"`
   198  	// Type indicates which raft activities a replica participates in. A nil type
   199  	// is equivalent to VOTER.
   200  	Type *ReplicaType `protobuf:"varint,4,opt,name=type,enum=cockroach.roachpb.ReplicaType" json:"type,omitempty"`
   201  }
   202  
   203  func (m *ReplicaDescriptor) Reset()      { *m = ReplicaDescriptor{} }
   204  func (*ReplicaDescriptor) ProtoMessage() {}
   205  func (*ReplicaDescriptor) Descriptor() ([]byte, []int) {
   206  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{2}
   207  }
   208  func (m *ReplicaDescriptor) XXX_Unmarshal(b []byte) error {
   209  	return m.Unmarshal(b)
   210  }
   211  func (m *ReplicaDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   212  	b = b[:cap(b)]
   213  	n, err := m.MarshalTo(b)
   214  	if err != nil {
   215  		return nil, err
   216  	}
   217  	return b[:n], nil
   218  }
   219  func (dst *ReplicaDescriptor) XXX_Merge(src proto.Message) {
   220  	xxx_messageInfo_ReplicaDescriptor.Merge(dst, src)
   221  }
   222  func (m *ReplicaDescriptor) XXX_Size() int {
   223  	return m.Size()
   224  }
   225  func (m *ReplicaDescriptor) XXX_DiscardUnknown() {
   226  	xxx_messageInfo_ReplicaDescriptor.DiscardUnknown(m)
   227  }
   228  
   229  var xxx_messageInfo_ReplicaDescriptor proto.InternalMessageInfo
   230  
   231  // ReplicaIdent uniquely identifies a specific replica.
   232  type ReplicaIdent struct {
   233  	RangeID RangeID           `protobuf:"varint,1,opt,name=range_id,json=rangeId,casttype=RangeID" json:"range_id"`
   234  	Replica ReplicaDescriptor `protobuf:"bytes,2,opt,name=replica" json:"replica"`
   235  }
   236  
   237  func (m *ReplicaIdent) Reset()         { *m = ReplicaIdent{} }
   238  func (m *ReplicaIdent) String() string { return proto.CompactTextString(m) }
   239  func (*ReplicaIdent) ProtoMessage()    {}
   240  func (*ReplicaIdent) Descriptor() ([]byte, []int) {
   241  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{3}
   242  }
   243  func (m *ReplicaIdent) XXX_Unmarshal(b []byte) error {
   244  	return m.Unmarshal(b)
   245  }
   246  func (m *ReplicaIdent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   247  	b = b[:cap(b)]
   248  	n, err := m.MarshalTo(b)
   249  	if err != nil {
   250  		return nil, err
   251  	}
   252  	return b[:n], nil
   253  }
   254  func (dst *ReplicaIdent) XXX_Merge(src proto.Message) {
   255  	xxx_messageInfo_ReplicaIdent.Merge(dst, src)
   256  }
   257  func (m *ReplicaIdent) XXX_Size() int {
   258  	return m.Size()
   259  }
   260  func (m *ReplicaIdent) XXX_DiscardUnknown() {
   261  	xxx_messageInfo_ReplicaIdent.DiscardUnknown(m)
   262  }
   263  
   264  var xxx_messageInfo_ReplicaIdent proto.InternalMessageInfo
   265  
   266  // RangeDescriptor is the value stored in a range metadata key.
   267  // A range is described using an inclusive start key, a non-inclusive end key,
   268  // and a list of replicas where the range is stored.
   269  //
   270  // NOTE: Care must be taken when changing the encoding of this proto
   271  // because it is used as part of conditional put operations.
   272  // TODO(jeffreyxiao): All nullable fields in RangeDescriptor can be made
   273  // non-nullable if #38302 is guaranteed to be on all nodes (I.E. 20.1).
   274  type RangeDescriptor struct {
   275  	RangeID RangeID `protobuf:"varint,1,opt,name=range_id,json=rangeId,casttype=RangeID" json:"range_id"`
   276  	// start_key is the first key which may be contained by this range.
   277  	StartKey RKey `protobuf:"bytes,2,opt,name=start_key,json=startKey,casttype=RKey" json:"start_key,omitempty"`
   278  	// end_key marks the end of the range's possible keys.  EndKey itself is not
   279  	// contained in this range - it will be contained in the immediately
   280  	// subsequent range.
   281  	EndKey RKey `protobuf:"bytes,3,opt,name=end_key,json=endKey,casttype=RKey" json:"end_key,omitempty"`
   282  	// InternalReplicas is the is the set of nodes/stores on which replicas of
   283  	// this range are stored. DO NOT USE this field directly, use the `Replicas`
   284  	// method instead. The ordering is arbitrary and subject to permutation.
   285  	InternalReplicas []ReplicaDescriptor `protobuf:"bytes,4,rep,name=internal_replicas,json=internalReplicas" json:"internal_replicas"`
   286  	// next_replica_id is a counter used to generate replica IDs.
   287  	NextReplicaID ReplicaID `protobuf:"varint,5,opt,name=next_replica_id,json=nextReplicaId,casttype=ReplicaID" json:"next_replica_id"`
   288  	// generation is incremented on every split, merge, and every replica change,
   289  	// i.e., whenever the span of the range or replica set changes. It is
   290  	// initialized to zero when the range is first created. The generation
   291  	// counter was first introduced to allow the range descriptor resulting from
   292  	// a split and then merge to be distinguishable from the initial range
   293  	// descriptor. This is important since changes to the range descriptors use
   294  	// CPuts to ensure mutual exclusion.
   295  	//
   296  	// See #28071 for details on the above.
   297  	//
   298  	// Generations are also useful to make local replicaGC decisions when applying
   299  	// a snapshot on keyspace that has overlapping replicas (but note that we do
   300  	// not use this at the time of writing due to migration concerns; see below).
   301  	//
   302  	// We want to be able to compare the snapshot range's generation counter to
   303  	// that of the overlapping replicas to draw a conclusion about whether the
   304  	// snapshot can be applied (in which case the overlapping replicas need to be
   305  	// safely removable). To that end, on a split, not only do we increment the
   306  	// left hand side's generation, we also copy the resultant generation to the
   307  	// newly created right hand side. On merges, we update the left hand side's
   308  	// generation so that it exceeds by one the maximum of the left hand side and
   309  	// the right hand side's generations from before the merge.
   310  	//
   311  	// If two replicas (perhaps one of them represented by a raft or preemptive
   312  	// snapshot) as defined by their full range descriptor (including, notably,
   313  	// the generation) overlap, then one of them has to be stale. This is because
   314  	// the keyspace cleanly shards into non-overlapping ranges at all times (i.e.
   315  	// for all consistent snapshots). Since meta ranges (or more generally, range
   316  	// descriptors) are only ever updated transactionally, mutations to the meta
   317  	// ranges can be serialized (i.e. put into some sequential ordering). We know
   318  	// that the descriptors corresponding to both of our replicas can't be from
   319  	// the same consistent snapshot of the meta ranges, so there is a version of
   320  	// the meta ranges that includes only the first replica, and there is a
   321  	// version that includes only the second replica. Without loss of generality,
   322  	// assume that the first version is "older". This means that there is a finite
   323  	// sequence of splits and merges that were applied to the consistent snapshot
   324  	// corresponding to the first version which resulted in the second version of
   325  	// the meta ranges.
   326  	//
   327  	// Each individual operation, thanks to the generational semantics above, has
   328  	// the invariant that the resulting descriptors have a strictly larger
   329  	// generation than any descriptors from the previous version that they cover.
   330  	// For example, if a descriptor [a,c) at generation 5 is split into [a,b) and
   331  	// [b,c), both of those latter range descriptors have generation 6. If [c,d)
   332  	// is at generation 12 and [d, f) is at generation 17, then the resulting
   333  	// merged range [c,f) will have generation 18.
   334  	//
   335  	// At the end of the day, for incoming snapshots, this means that we only have
   336  	// to collect the overlapping replicas and their generations. Any replica with
   337  	// a smaller generation is stale by the above argument and can be replicaGC'ed
   338  	// right away. Any replica with a larger generation indicates that the snapshot
   339  	// is stale and should be discarded. A replica with the same generation is
   340  	// necessarily a replica of the range the snapshot is addressing (this is the
   341  	// usual case, in which a snapshot "overlaps" precisely one replica, which is
   342  	// the replica it's supposed to update, and no splits and merges have taken
   343  	// place at all).
   344  	//
   345  	// For a third note, observe that the generational semantics above may
   346  	// possibly allow range merges without colocation, at least in the sense that
   347  	// the counter examples in #28071 are defused. This is because the
   348  	// generational counter can answer the question whether the overlapping
   349  	// replica is gc'able or not. If it is not gc'able, then by definition the
   350  	// replica applying the merge is.
   351  	Generation int64 `protobuf:"varint,6,opt,name=generation" json:"generation"`
   352  	// The presence of the sticky_bit indicates that the range should not be
   353  	// automatically merged by the merge queue with the range to its left. It is
   354  	// set during a split operation and unset during an unsplit operation. Note
   355  	// that the unsplit operation is a different operation from the merge
   356  	// operation. Unsplit only unsets sticky_bit. It is represented by a
   357  	// timestamp that indicates when it expires. After the expiration time has
   358  	// passed, the split is eligible for automatic merging. A nil sticky bit is
   359  	// equivalent to hlc.Timestamp{}.
   360  	//
   361  	// The reason the sticky_bit exists is because when the merge queue is
   362  	// enabled and a manual split happens, the split ranges would immediately be
   363  	// merged by the merge queue. Previous, we threw an error when a user
   364  	// attempted to execute ALTER TABLE/INDEX ... SPLIT AT ... when the merge
   365  	// queue is enabled. With sticky_bit, users can manually split ranges without
   366  	// diabling the merge queue.
   367  	StickyBit *hlc.Timestamp `protobuf:"bytes,7,opt,name=sticky_bit,json=stickyBit" json:"sticky_bit,omitempty"`
   368  }
   369  
   370  func (m *RangeDescriptor) Reset()      { *m = RangeDescriptor{} }
   371  func (*RangeDescriptor) ProtoMessage() {}
   372  func (*RangeDescriptor) Descriptor() ([]byte, []int) {
   373  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{4}
   374  }
   375  func (m *RangeDescriptor) XXX_Unmarshal(b []byte) error {
   376  	return m.Unmarshal(b)
   377  }
   378  func (m *RangeDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   379  	b = b[:cap(b)]
   380  	n, err := m.MarshalTo(b)
   381  	if err != nil {
   382  		return nil, err
   383  	}
   384  	return b[:n], nil
   385  }
   386  func (dst *RangeDescriptor) XXX_Merge(src proto.Message) {
   387  	xxx_messageInfo_RangeDescriptor.Merge(dst, src)
   388  }
   389  func (m *RangeDescriptor) XXX_Size() int {
   390  	return m.Size()
   391  }
   392  func (m *RangeDescriptor) XXX_DiscardUnknown() {
   393  	xxx_messageInfo_RangeDescriptor.DiscardUnknown(m)
   394  }
   395  
   396  var xxx_messageInfo_RangeDescriptor proto.InternalMessageInfo
   397  
   398  // Percentiles contains a handful of hard-coded percentiles meant to summarize
   399  // a distribution.
   400  type Percentiles struct {
   401  	P10  float64 `protobuf:"fixed64,1,opt,name=p10" json:"p10"`
   402  	P25  float64 `protobuf:"fixed64,2,opt,name=p25" json:"p25"`
   403  	P50  float64 `protobuf:"fixed64,3,opt,name=p50" json:"p50"`
   404  	P75  float64 `protobuf:"fixed64,4,opt,name=p75" json:"p75"`
   405  	P90  float64 `protobuf:"fixed64,5,opt,name=p90" json:"p90"`
   406  	PMax float64 `protobuf:"fixed64,6,opt,name=pMax" json:"pMax"`
   407  }
   408  
   409  func (m *Percentiles) Reset()      { *m = Percentiles{} }
   410  func (*Percentiles) ProtoMessage() {}
   411  func (*Percentiles) Descriptor() ([]byte, []int) {
   412  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{5}
   413  }
   414  func (m *Percentiles) XXX_Unmarshal(b []byte) error {
   415  	return m.Unmarshal(b)
   416  }
   417  func (m *Percentiles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   418  	b = b[:cap(b)]
   419  	n, err := m.MarshalTo(b)
   420  	if err != nil {
   421  		return nil, err
   422  	}
   423  	return b[:n], nil
   424  }
   425  func (dst *Percentiles) XXX_Merge(src proto.Message) {
   426  	xxx_messageInfo_Percentiles.Merge(dst, src)
   427  }
   428  func (m *Percentiles) XXX_Size() int {
   429  	return m.Size()
   430  }
   431  func (m *Percentiles) XXX_DiscardUnknown() {
   432  	xxx_messageInfo_Percentiles.DiscardUnknown(m)
   433  }
   434  
   435  var xxx_messageInfo_Percentiles proto.InternalMessageInfo
   436  
   437  // StoreCapacity contains capacity information for a storage device.
   438  type StoreCapacity struct {
   439  	// Total capacity of the disk used by the store, including space used by the
   440  	// operating system and other applications.
   441  	Capacity int64 `protobuf:"varint,1,opt,name=capacity" json:"capacity"`
   442  	// Available space remaining on the disk used by the store.
   443  	Available int64 `protobuf:"varint,2,opt,name=available" json:"available"`
   444  	// Amount of disk space used by the data in the CockroachDB store. Note that
   445  	// this is going to be less than (capacity - available), because those two
   446  	// fields consider the entire disk and everything on it, while this only
   447  	// tracks the store's disk usage.
   448  	Used int64 `protobuf:"varint,8,opt,name=used" json:"used"`
   449  	// Amount of logical bytes stored in the store, ignoring RocksDB space
   450  	// overhead. Useful for rebalancing so that moving a replica from one store
   451  	// to another actually removes its bytes from the source store even though
   452  	// RocksDB may not actually reclaim the physical disk space for a while.
   453  	LogicalBytes int64 `protobuf:"varint,9,opt,name=logical_bytes,json=logicalBytes" json:"logical_bytes"`
   454  	RangeCount   int32 `protobuf:"varint,3,opt,name=range_count,json=rangeCount" json:"range_count"`
   455  	LeaseCount   int32 `protobuf:"varint,4,opt,name=lease_count,json=leaseCount" json:"lease_count"`
   456  	// queries_per_second tracks the average number of queries processed per
   457  	// second by replicas in the store. The stat is tracked over the time period
   458  	// defined in storage/replica_stats.go, which as of July 2018 is 30 minutes.
   459  	QueriesPerSecond float64 `protobuf:"fixed64,10,opt,name=queries_per_second,json=queriesPerSecond" json:"queries_per_second"`
   460  	// writes_per_second tracks the average number of keys written per second
   461  	// by ranges in the store. The stat is tracked over the time period defined
   462  	// in storage/replica_stats.go, which as of July 2018 is 30 minutes.
   463  	WritesPerSecond float64 `protobuf:"fixed64,5,opt,name=writes_per_second,json=writesPerSecond" json:"writes_per_second"`
   464  	// bytes_per_replica and writes_per_replica contain percentiles for the
   465  	// number of bytes and writes-per-second to each replica in the store.
   466  	// This information can be used for rebalancing decisions.
   467  	BytesPerReplica  Percentiles `protobuf:"bytes,6,opt,name=bytes_per_replica,json=bytesPerReplica" json:"bytes_per_replica"`
   468  	WritesPerReplica Percentiles `protobuf:"bytes,7,opt,name=writes_per_replica,json=writesPerReplica" json:"writes_per_replica"`
   469  }
   470  
   471  func (m *StoreCapacity) Reset()      { *m = StoreCapacity{} }
   472  func (*StoreCapacity) ProtoMessage() {}
   473  func (*StoreCapacity) Descriptor() ([]byte, []int) {
   474  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{6}
   475  }
   476  func (m *StoreCapacity) XXX_Unmarshal(b []byte) error {
   477  	return m.Unmarshal(b)
   478  }
   479  func (m *StoreCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   480  	b = b[:cap(b)]
   481  	n, err := m.MarshalTo(b)
   482  	if err != nil {
   483  		return nil, err
   484  	}
   485  	return b[:n], nil
   486  }
   487  func (dst *StoreCapacity) XXX_Merge(src proto.Message) {
   488  	xxx_messageInfo_StoreCapacity.Merge(dst, src)
   489  }
   490  func (m *StoreCapacity) XXX_Size() int {
   491  	return m.Size()
   492  }
   493  func (m *StoreCapacity) XXX_DiscardUnknown() {
   494  	xxx_messageInfo_StoreCapacity.DiscardUnknown(m)
   495  }
   496  
   497  var xxx_messageInfo_StoreCapacity proto.InternalMessageInfo
   498  
   499  // NodeDescriptor holds details on node physical/network topology.
   500  type NodeDescriptor struct {
   501  	NodeID          NodeID              `protobuf:"varint,1,opt,name=node_id,json=nodeId,casttype=NodeID" json:"node_id"`
   502  	Address         util.UnresolvedAddr `protobuf:"bytes,2,opt,name=address" json:"address"`
   503  	Attrs           Attributes          `protobuf:"bytes,3,opt,name=attrs" json:"attrs"`
   504  	Locality        Locality            `protobuf:"bytes,4,opt,name=locality" json:"locality"`
   505  	ServerVersion   Version             `protobuf:"bytes,5,opt,name=ServerVersion" json:"ServerVersion"`
   506  	BuildTag        string              `protobuf:"bytes,6,opt,name=build_tag,json=buildTag" json:"build_tag"`
   507  	StartedAt       int64               `protobuf:"varint,7,opt,name=started_at,json=startedAt" json:"started_at"`
   508  	LocalityAddress []LocalityAddress   `protobuf:"bytes,8,rep,name=locality_address,json=localityAddress" json:"locality_address"`
   509  	ClusterName     string              `protobuf:"bytes,9,opt,name=cluster_name,json=clusterName" json:"cluster_name"`
   510  	// The SQL address. If empty, indicates that the base address field
   511  	// is also used to accept SQL connections.
   512  	SQLAddress util.UnresolvedAddr `protobuf:"bytes,10,opt,name=sql_address,json=sqlAddress" json:"sql_address"`
   513  }
   514  
   515  func (m *NodeDescriptor) Reset()         { *m = NodeDescriptor{} }
   516  func (m *NodeDescriptor) String() string { return proto.CompactTextString(m) }
   517  func (*NodeDescriptor) ProtoMessage()    {}
   518  func (*NodeDescriptor) Descriptor() ([]byte, []int) {
   519  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{7}
   520  }
   521  func (m *NodeDescriptor) XXX_Unmarshal(b []byte) error {
   522  	return m.Unmarshal(b)
   523  }
   524  func (m *NodeDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   525  	b = b[:cap(b)]
   526  	n, err := m.MarshalTo(b)
   527  	if err != nil {
   528  		return nil, err
   529  	}
   530  	return b[:n], nil
   531  }
   532  func (dst *NodeDescriptor) XXX_Merge(src proto.Message) {
   533  	xxx_messageInfo_NodeDescriptor.Merge(dst, src)
   534  }
   535  func (m *NodeDescriptor) XXX_Size() int {
   536  	return m.Size()
   537  }
   538  func (m *NodeDescriptor) XXX_DiscardUnknown() {
   539  	xxx_messageInfo_NodeDescriptor.DiscardUnknown(m)
   540  }
   541  
   542  var xxx_messageInfo_NodeDescriptor proto.InternalMessageInfo
   543  
   544  // LocalityAddress holds the private address accessible only from other nodes
   545  // in the corresponding locality.
   546  type LocalityAddress struct {
   547  	Address      util.UnresolvedAddr `protobuf:"bytes,1,opt,name=address" json:"address"`
   548  	LocalityTier Tier                `protobuf:"bytes,2,opt,name=locality_tier,json=localityTier" json:"locality_tier"`
   549  }
   550  
   551  func (m *LocalityAddress) Reset()         { *m = LocalityAddress{} }
   552  func (m *LocalityAddress) String() string { return proto.CompactTextString(m) }
   553  func (*LocalityAddress) ProtoMessage()    {}
   554  func (*LocalityAddress) Descriptor() ([]byte, []int) {
   555  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{8}
   556  }
   557  func (m *LocalityAddress) XXX_Unmarshal(b []byte) error {
   558  	return m.Unmarshal(b)
   559  }
   560  func (m *LocalityAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   561  	b = b[:cap(b)]
   562  	n, err := m.MarshalTo(b)
   563  	if err != nil {
   564  		return nil, err
   565  	}
   566  	return b[:n], nil
   567  }
   568  func (dst *LocalityAddress) XXX_Merge(src proto.Message) {
   569  	xxx_messageInfo_LocalityAddress.Merge(dst, src)
   570  }
   571  func (m *LocalityAddress) XXX_Size() int {
   572  	return m.Size()
   573  }
   574  func (m *LocalityAddress) XXX_DiscardUnknown() {
   575  	xxx_messageInfo_LocalityAddress.DiscardUnknown(m)
   576  }
   577  
   578  var xxx_messageInfo_LocalityAddress proto.InternalMessageInfo
   579  
   580  // StoreDescriptor holds store information including store attributes, node
   581  // descriptor and store capacity.
   582  type StoreDescriptor struct {
   583  	StoreID  StoreID        `protobuf:"varint,1,opt,name=store_id,json=storeId,casttype=StoreID" json:"store_id"`
   584  	Attrs    Attributes     `protobuf:"bytes,2,opt,name=attrs" json:"attrs"`
   585  	Node     NodeDescriptor `protobuf:"bytes,3,opt,name=node" json:"node"`
   586  	Capacity StoreCapacity  `protobuf:"bytes,4,opt,name=capacity" json:"capacity"`
   587  }
   588  
   589  func (m *StoreDescriptor) Reset()         { *m = StoreDescriptor{} }
   590  func (m *StoreDescriptor) String() string { return proto.CompactTextString(m) }
   591  func (*StoreDescriptor) ProtoMessage()    {}
   592  func (*StoreDescriptor) Descriptor() ([]byte, []int) {
   593  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{9}
   594  }
   595  func (m *StoreDescriptor) XXX_Unmarshal(b []byte) error {
   596  	return m.Unmarshal(b)
   597  }
   598  func (m *StoreDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   599  	b = b[:cap(b)]
   600  	n, err := m.MarshalTo(b)
   601  	if err != nil {
   602  		return nil, err
   603  	}
   604  	return b[:n], nil
   605  }
   606  func (dst *StoreDescriptor) XXX_Merge(src proto.Message) {
   607  	xxx_messageInfo_StoreDescriptor.Merge(dst, src)
   608  }
   609  func (m *StoreDescriptor) XXX_Size() int {
   610  	return m.Size()
   611  }
   612  func (m *StoreDescriptor) XXX_DiscardUnknown() {
   613  	xxx_messageInfo_StoreDescriptor.DiscardUnknown(m)
   614  }
   615  
   616  var xxx_messageInfo_StoreDescriptor proto.InternalMessageInfo
   617  
   618  // StoreDeadReplicas holds a storeID and a list of dead replicas on that store.
   619  // Used to let the range lease holder know about corrupted or otherwise
   620  // destroyed replicas that should be transferred to a different store.
   621  type StoreDeadReplicas struct {
   622  	StoreID  StoreID        `protobuf:"varint,1,opt,name=store_id,json=storeId,casttype=StoreID" json:"store_id"`
   623  	Replicas []ReplicaIdent `protobuf:"bytes,2,rep,name=replicas" json:"replicas"`
   624  }
   625  
   626  func (m *StoreDeadReplicas) Reset()         { *m = StoreDeadReplicas{} }
   627  func (m *StoreDeadReplicas) String() string { return proto.CompactTextString(m) }
   628  func (*StoreDeadReplicas) ProtoMessage()    {}
   629  func (*StoreDeadReplicas) Descriptor() ([]byte, []int) {
   630  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{10}
   631  }
   632  func (m *StoreDeadReplicas) XXX_Unmarshal(b []byte) error {
   633  	return m.Unmarshal(b)
   634  }
   635  func (m *StoreDeadReplicas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   636  	b = b[:cap(b)]
   637  	n, err := m.MarshalTo(b)
   638  	if err != nil {
   639  		return nil, err
   640  	}
   641  	return b[:n], nil
   642  }
   643  func (dst *StoreDeadReplicas) XXX_Merge(src proto.Message) {
   644  	xxx_messageInfo_StoreDeadReplicas.Merge(dst, src)
   645  }
   646  func (m *StoreDeadReplicas) XXX_Size() int {
   647  	return m.Size()
   648  }
   649  func (m *StoreDeadReplicas) XXX_DiscardUnknown() {
   650  	xxx_messageInfo_StoreDeadReplicas.DiscardUnknown(m)
   651  }
   652  
   653  var xxx_messageInfo_StoreDeadReplicas proto.InternalMessageInfo
   654  
   655  // Locality is an ordered set of key value Tiers that describe a node's
   656  // location. The tier keys should be the same across all nodes.
   657  type Locality struct {
   658  	Tiers []Tier `protobuf:"bytes,1,rep,name=tiers" json:"tiers"`
   659  }
   660  
   661  func (m *Locality) Reset()      { *m = Locality{} }
   662  func (*Locality) ProtoMessage() {}
   663  func (*Locality) Descriptor() ([]byte, []int) {
   664  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{11}
   665  }
   666  func (m *Locality) XXX_Unmarshal(b []byte) error {
   667  	return m.Unmarshal(b)
   668  }
   669  func (m *Locality) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   670  	b = b[:cap(b)]
   671  	n, err := m.MarshalTo(b)
   672  	if err != nil {
   673  		return nil, err
   674  	}
   675  	return b[:n], nil
   676  }
   677  func (dst *Locality) XXX_Merge(src proto.Message) {
   678  	xxx_messageInfo_Locality.Merge(dst, src)
   679  }
   680  func (m *Locality) XXX_Size() int {
   681  	return m.Size()
   682  }
   683  func (m *Locality) XXX_DiscardUnknown() {
   684  	xxx_messageInfo_Locality.DiscardUnknown(m)
   685  }
   686  
   687  var xxx_messageInfo_Locality proto.InternalMessageInfo
   688  
   689  // Tier represents one level of the locality hierarchy.
   690  type Tier struct {
   691  	// Key is the name of tier and should match all other nodes.
   692  	Key string `protobuf:"bytes,1,opt,name=key" json:"key"`
   693  	// Value is node specific value corresponding to the key.
   694  	Value string `protobuf:"bytes,2,opt,name=value" json:"value"`
   695  }
   696  
   697  func (m *Tier) Reset()      { *m = Tier{} }
   698  func (*Tier) ProtoMessage() {}
   699  func (*Tier) Descriptor() ([]byte, []int) {
   700  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{12}
   701  }
   702  func (m *Tier) XXX_Unmarshal(b []byte) error {
   703  	return m.Unmarshal(b)
   704  }
   705  func (m *Tier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   706  	b = b[:cap(b)]
   707  	n, err := m.MarshalTo(b)
   708  	if err != nil {
   709  		return nil, err
   710  	}
   711  	return b[:n], nil
   712  }
   713  func (dst *Tier) XXX_Merge(src proto.Message) {
   714  	xxx_messageInfo_Tier.Merge(dst, src)
   715  }
   716  func (m *Tier) XXX_Size() int {
   717  	return m.Size()
   718  }
   719  func (m *Tier) XXX_DiscardUnknown() {
   720  	xxx_messageInfo_Tier.DiscardUnknown(m)
   721  }
   722  
   723  var xxx_messageInfo_Tier proto.InternalMessageInfo
   724  
   725  type Version struct {
   726  	Major int32 `protobuf:"varint,1,opt,name=major_val,json=majorVal" json:"major_val"`
   727  	Minor int32 `protobuf:"varint,2,opt,name=minor_val,json=minorVal" json:"minor_val"`
   728  	// Note that patch is a placeholder and will always be zero.
   729  	Patch int32 `protobuf:"varint,3,opt,name=patch" json:"patch"`
   730  	// The unstable version is used to migrate during development.
   731  	// Users of stable, public releases will only use binaries
   732  	// with unstable set to 0.
   733  	Unstable int32 `protobuf:"varint,4,opt,name=unstable" json:"unstable"`
   734  }
   735  
   736  func (m *Version) Reset()      { *m = Version{} }
   737  func (*Version) ProtoMessage() {}
   738  func (*Version) Descriptor() ([]byte, []int) {
   739  	return fileDescriptor_metadata_4d08fb4df4010e8b, []int{13}
   740  }
   741  func (m *Version) XXX_Unmarshal(b []byte) error {
   742  	return m.Unmarshal(b)
   743  }
   744  func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   745  	b = b[:cap(b)]
   746  	n, err := m.MarshalTo(b)
   747  	if err != nil {
   748  		return nil, err
   749  	}
   750  	return b[:n], nil
   751  }
   752  func (dst *Version) XXX_Merge(src proto.Message) {
   753  	xxx_messageInfo_Version.Merge(dst, src)
   754  }
   755  func (m *Version) XXX_Size() int {
   756  	return m.Size()
   757  }
   758  func (m *Version) XXX_DiscardUnknown() {
   759  	xxx_messageInfo_Version.DiscardUnknown(m)
   760  }
   761  
   762  var xxx_messageInfo_Version proto.InternalMessageInfo
   763  
   764  func init() {
   765  	proto.RegisterType((*Attributes)(nil), "cockroach.roachpb.Attributes")
   766  	proto.RegisterType((*ReplicationTarget)(nil), "cockroach.roachpb.ReplicationTarget")
   767  	proto.RegisterType((*ReplicaDescriptor)(nil), "cockroach.roachpb.ReplicaDescriptor")
   768  	proto.RegisterType((*ReplicaIdent)(nil), "cockroach.roachpb.ReplicaIdent")
   769  	proto.RegisterType((*RangeDescriptor)(nil), "cockroach.roachpb.RangeDescriptor")
   770  	proto.RegisterType((*Percentiles)(nil), "cockroach.roachpb.Percentiles")
   771  	proto.RegisterType((*StoreCapacity)(nil), "cockroach.roachpb.StoreCapacity")
   772  	proto.RegisterType((*NodeDescriptor)(nil), "cockroach.roachpb.NodeDescriptor")
   773  	proto.RegisterType((*LocalityAddress)(nil), "cockroach.roachpb.LocalityAddress")
   774  	proto.RegisterType((*StoreDescriptor)(nil), "cockroach.roachpb.StoreDescriptor")
   775  	proto.RegisterType((*StoreDeadReplicas)(nil), "cockroach.roachpb.StoreDeadReplicas")
   776  	proto.RegisterType((*Locality)(nil), "cockroach.roachpb.Locality")
   777  	proto.RegisterType((*Tier)(nil), "cockroach.roachpb.Tier")
   778  	proto.RegisterType((*Version)(nil), "cockroach.roachpb.Version")
   779  	proto.RegisterEnum("cockroach.roachpb.ReplicaType", ReplicaType_name, ReplicaType_value)
   780  }
   781  func (this *ReplicationTarget) Equal(that interface{}) bool {
   782  	if that == nil {
   783  		return this == nil
   784  	}
   785  
   786  	that1, ok := that.(*ReplicationTarget)
   787  	if !ok {
   788  		that2, ok := that.(ReplicationTarget)
   789  		if ok {
   790  			that1 = &that2
   791  		} else {
   792  			return false
   793  		}
   794  	}
   795  	if that1 == nil {
   796  		return this == nil
   797  	} else if this == nil {
   798  		return false
   799  	}
   800  	if this.NodeID != that1.NodeID {
   801  		return false
   802  	}
   803  	if this.StoreID != that1.StoreID {
   804  		return false
   805  	}
   806  	return true
   807  }
   808  func (this *ReplicaDescriptor) Equal(that interface{}) bool {
   809  	if that == nil {
   810  		return this == nil
   811  	}
   812  
   813  	that1, ok := that.(*ReplicaDescriptor)
   814  	if !ok {
   815  		that2, ok := that.(ReplicaDescriptor)
   816  		if ok {
   817  			that1 = &that2
   818  		} else {
   819  			return false
   820  		}
   821  	}
   822  	if that1 == nil {
   823  		return this == nil
   824  	} else if this == nil {
   825  		return false
   826  	}
   827  	if this.NodeID != that1.NodeID {
   828  		return false
   829  	}
   830  	if this.StoreID != that1.StoreID {
   831  		return false
   832  	}
   833  	if this.ReplicaID != that1.ReplicaID {
   834  		return false
   835  	}
   836  	if this.Type != nil && that1.Type != nil {
   837  		if *this.Type != *that1.Type {
   838  			return false
   839  		}
   840  	} else if this.Type != nil {
   841  		return false
   842  	} else if that1.Type != nil {
   843  		return false
   844  	}
   845  	return true
   846  }
   847  func (this *RangeDescriptor) Equal(that interface{}) bool {
   848  	if that == nil {
   849  		return this == nil
   850  	}
   851  
   852  	that1, ok := that.(*RangeDescriptor)
   853  	if !ok {
   854  		that2, ok := that.(RangeDescriptor)
   855  		if ok {
   856  			that1 = &that2
   857  		} else {
   858  			return false
   859  		}
   860  	}
   861  	if that1 == nil {
   862  		return this == nil
   863  	} else if this == nil {
   864  		return false
   865  	}
   866  	if this.RangeID != that1.RangeID {
   867  		return false
   868  	}
   869  	if !bytes.Equal(this.StartKey, that1.StartKey) {
   870  		return false
   871  	}
   872  	if !bytes.Equal(this.EndKey, that1.EndKey) {
   873  		return false
   874  	}
   875  	if len(this.InternalReplicas) != len(that1.InternalReplicas) {
   876  		return false
   877  	}
   878  	for i := range this.InternalReplicas {
   879  		if !this.InternalReplicas[i].Equal(&that1.InternalReplicas[i]) {
   880  			return false
   881  		}
   882  	}
   883  	if this.NextReplicaID != that1.NextReplicaID {
   884  		return false
   885  	}
   886  	if this.Generation != that1.Generation {
   887  		return false
   888  	}
   889  	if !this.StickyBit.Equal(that1.StickyBit) {
   890  		return false
   891  	}
   892  	return true
   893  }
   894  func (m *Attributes) Marshal() (dAtA []byte, err error) {
   895  	size := m.Size()
   896  	dAtA = make([]byte, size)
   897  	n, err := m.MarshalTo(dAtA)
   898  	if err != nil {
   899  		return nil, err
   900  	}
   901  	return dAtA[:n], nil
   902  }
   903  
   904  func (m *Attributes) MarshalTo(dAtA []byte) (int, error) {
   905  	var i int
   906  	_ = i
   907  	var l int
   908  	_ = l
   909  	if len(m.Attrs) > 0 {
   910  		for _, s := range m.Attrs {
   911  			dAtA[i] = 0xa
   912  			i++
   913  			l = len(s)
   914  			for l >= 1<<7 {
   915  				dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
   916  				l >>= 7
   917  				i++
   918  			}
   919  			dAtA[i] = uint8(l)
   920  			i++
   921  			i += copy(dAtA[i:], s)
   922  		}
   923  	}
   924  	return i, nil
   925  }
   926  
   927  func (m *ReplicationTarget) Marshal() (dAtA []byte, err error) {
   928  	size := m.Size()
   929  	dAtA = make([]byte, size)
   930  	n, err := m.MarshalTo(dAtA)
   931  	if err != nil {
   932  		return nil, err
   933  	}
   934  	return dAtA[:n], nil
   935  }
   936  
   937  func (m *ReplicationTarget) MarshalTo(dAtA []byte) (int, error) {
   938  	var i int
   939  	_ = i
   940  	var l int
   941  	_ = l
   942  	dAtA[i] = 0x8
   943  	i++
   944  	i = encodeVarintMetadata(dAtA, i, uint64(m.NodeID))
   945  	dAtA[i] = 0x10
   946  	i++
   947  	i = encodeVarintMetadata(dAtA, i, uint64(m.StoreID))
   948  	return i, nil
   949  }
   950  
   951  func (m *ReplicaDescriptor) Marshal() (dAtA []byte, err error) {
   952  	size := m.Size()
   953  	dAtA = make([]byte, size)
   954  	n, err := m.MarshalTo(dAtA)
   955  	if err != nil {
   956  		return nil, err
   957  	}
   958  	return dAtA[:n], nil
   959  }
   960  
   961  func (m *ReplicaDescriptor) MarshalTo(dAtA []byte) (int, error) {
   962  	var i int
   963  	_ = i
   964  	var l int
   965  	_ = l
   966  	dAtA[i] = 0x8
   967  	i++
   968  	i = encodeVarintMetadata(dAtA, i, uint64(m.NodeID))
   969  	dAtA[i] = 0x10
   970  	i++
   971  	i = encodeVarintMetadata(dAtA, i, uint64(m.StoreID))
   972  	dAtA[i] = 0x18
   973  	i++
   974  	i = encodeVarintMetadata(dAtA, i, uint64(m.ReplicaID))
   975  	if m.Type != nil {
   976  		dAtA[i] = 0x20
   977  		i++
   978  		i = encodeVarintMetadata(dAtA, i, uint64(*m.Type))
   979  	}
   980  	return i, nil
   981  }
   982  
   983  func (m *ReplicaIdent) Marshal() (dAtA []byte, err error) {
   984  	size := m.Size()
   985  	dAtA = make([]byte, size)
   986  	n, err := m.MarshalTo(dAtA)
   987  	if err != nil {
   988  		return nil, err
   989  	}
   990  	return dAtA[:n], nil
   991  }
   992  
   993  func (m *ReplicaIdent) MarshalTo(dAtA []byte) (int, error) {
   994  	var i int
   995  	_ = i
   996  	var l int
   997  	_ = l
   998  	dAtA[i] = 0x8
   999  	i++
  1000  	i = encodeVarintMetadata(dAtA, i, uint64(m.RangeID))
  1001  	dAtA[i] = 0x12
  1002  	i++
  1003  	i = encodeVarintMetadata(dAtA, i, uint64(m.Replica.Size()))
  1004  	n1, err := m.Replica.MarshalTo(dAtA[i:])
  1005  	if err != nil {
  1006  		return 0, err
  1007  	}
  1008  	i += n1
  1009  	return i, nil
  1010  }
  1011  
  1012  func (m *RangeDescriptor) Marshal() (dAtA []byte, err error) {
  1013  	size := m.Size()
  1014  	dAtA = make([]byte, size)
  1015  	n, err := m.MarshalTo(dAtA)
  1016  	if err != nil {
  1017  		return nil, err
  1018  	}
  1019  	return dAtA[:n], nil
  1020  }
  1021  
  1022  func (m *RangeDescriptor) MarshalTo(dAtA []byte) (int, error) {
  1023  	var i int
  1024  	_ = i
  1025  	var l int
  1026  	_ = l
  1027  	dAtA[i] = 0x8
  1028  	i++
  1029  	i = encodeVarintMetadata(dAtA, i, uint64(m.RangeID))
  1030  	if m.StartKey != nil {
  1031  		dAtA[i] = 0x12
  1032  		i++
  1033  		i = encodeVarintMetadata(dAtA, i, uint64(len(m.StartKey)))
  1034  		i += copy(dAtA[i:], m.StartKey)
  1035  	}
  1036  	if m.EndKey != nil {
  1037  		dAtA[i] = 0x1a
  1038  		i++
  1039  		i = encodeVarintMetadata(dAtA, i, uint64(len(m.EndKey)))
  1040  		i += copy(dAtA[i:], m.EndKey)
  1041  	}
  1042  	if len(m.InternalReplicas) > 0 {
  1043  		for _, msg := range m.InternalReplicas {
  1044  			dAtA[i] = 0x22
  1045  			i++
  1046  			i = encodeVarintMetadata(dAtA, i, uint64(msg.Size()))
  1047  			n, err := msg.MarshalTo(dAtA[i:])
  1048  			if err != nil {
  1049  				return 0, err
  1050  			}
  1051  			i += n
  1052  		}
  1053  	}
  1054  	dAtA[i] = 0x28
  1055  	i++
  1056  	i = encodeVarintMetadata(dAtA, i, uint64(m.NextReplicaID))
  1057  	dAtA[i] = 0x30
  1058  	i++
  1059  	i = encodeVarintMetadata(dAtA, i, uint64(m.Generation))
  1060  	if m.StickyBit != nil {
  1061  		dAtA[i] = 0x3a
  1062  		i++
  1063  		i = encodeVarintMetadata(dAtA, i, uint64(m.StickyBit.Size()))
  1064  		n2, err := m.StickyBit.MarshalTo(dAtA[i:])
  1065  		if err != nil {
  1066  			return 0, err
  1067  		}
  1068  		i += n2
  1069  	}
  1070  	return i, nil
  1071  }
  1072  
  1073  func (m *Percentiles) Marshal() (dAtA []byte, err error) {
  1074  	size := m.Size()
  1075  	dAtA = make([]byte, size)
  1076  	n, err := m.MarshalTo(dAtA)
  1077  	if err != nil {
  1078  		return nil, err
  1079  	}
  1080  	return dAtA[:n], nil
  1081  }
  1082  
  1083  func (m *Percentiles) MarshalTo(dAtA []byte) (int, error) {
  1084  	var i int
  1085  	_ = i
  1086  	var l int
  1087  	_ = l
  1088  	dAtA[i] = 0x9
  1089  	i++
  1090  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.P10))))
  1091  	i += 8
  1092  	dAtA[i] = 0x11
  1093  	i++
  1094  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.P25))))
  1095  	i += 8
  1096  	dAtA[i] = 0x19
  1097  	i++
  1098  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.P50))))
  1099  	i += 8
  1100  	dAtA[i] = 0x21
  1101  	i++
  1102  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.P75))))
  1103  	i += 8
  1104  	dAtA[i] = 0x29
  1105  	i++
  1106  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.P90))))
  1107  	i += 8
  1108  	dAtA[i] = 0x31
  1109  	i++
  1110  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.PMax))))
  1111  	i += 8
  1112  	return i, nil
  1113  }
  1114  
  1115  func (m *StoreCapacity) Marshal() (dAtA []byte, err error) {
  1116  	size := m.Size()
  1117  	dAtA = make([]byte, size)
  1118  	n, err := m.MarshalTo(dAtA)
  1119  	if err != nil {
  1120  		return nil, err
  1121  	}
  1122  	return dAtA[:n], nil
  1123  }
  1124  
  1125  func (m *StoreCapacity) MarshalTo(dAtA []byte) (int, error) {
  1126  	var i int
  1127  	_ = i
  1128  	var l int
  1129  	_ = l
  1130  	dAtA[i] = 0x8
  1131  	i++
  1132  	i = encodeVarintMetadata(dAtA, i, uint64(m.Capacity))
  1133  	dAtA[i] = 0x10
  1134  	i++
  1135  	i = encodeVarintMetadata(dAtA, i, uint64(m.Available))
  1136  	dAtA[i] = 0x18
  1137  	i++
  1138  	i = encodeVarintMetadata(dAtA, i, uint64(m.RangeCount))
  1139  	dAtA[i] = 0x20
  1140  	i++
  1141  	i = encodeVarintMetadata(dAtA, i, uint64(m.LeaseCount))
  1142  	dAtA[i] = 0x29
  1143  	i++
  1144  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.WritesPerSecond))))
  1145  	i += 8
  1146  	dAtA[i] = 0x32
  1147  	i++
  1148  	i = encodeVarintMetadata(dAtA, i, uint64(m.BytesPerReplica.Size()))
  1149  	n3, err := m.BytesPerReplica.MarshalTo(dAtA[i:])
  1150  	if err != nil {
  1151  		return 0, err
  1152  	}
  1153  	i += n3
  1154  	dAtA[i] = 0x3a
  1155  	i++
  1156  	i = encodeVarintMetadata(dAtA, i, uint64(m.WritesPerReplica.Size()))
  1157  	n4, err := m.WritesPerReplica.MarshalTo(dAtA[i:])
  1158  	if err != nil {
  1159  		return 0, err
  1160  	}
  1161  	i += n4
  1162  	dAtA[i] = 0x40
  1163  	i++
  1164  	i = encodeVarintMetadata(dAtA, i, uint64(m.Used))
  1165  	dAtA[i] = 0x48
  1166  	i++
  1167  	i = encodeVarintMetadata(dAtA, i, uint64(m.LogicalBytes))
  1168  	dAtA[i] = 0x51
  1169  	i++
  1170  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.QueriesPerSecond))))
  1171  	i += 8
  1172  	return i, nil
  1173  }
  1174  
  1175  func (m *NodeDescriptor) Marshal() (dAtA []byte, err error) {
  1176  	size := m.Size()
  1177  	dAtA = make([]byte, size)
  1178  	n, err := m.MarshalTo(dAtA)
  1179  	if err != nil {
  1180  		return nil, err
  1181  	}
  1182  	return dAtA[:n], nil
  1183  }
  1184  
  1185  func (m *NodeDescriptor) MarshalTo(dAtA []byte) (int, error) {
  1186  	var i int
  1187  	_ = i
  1188  	var l int
  1189  	_ = l
  1190  	dAtA[i] = 0x8
  1191  	i++
  1192  	i = encodeVarintMetadata(dAtA, i, uint64(m.NodeID))
  1193  	dAtA[i] = 0x12
  1194  	i++
  1195  	i = encodeVarintMetadata(dAtA, i, uint64(m.Address.Size()))
  1196  	n5, err := m.Address.MarshalTo(dAtA[i:])
  1197  	if err != nil {
  1198  		return 0, err
  1199  	}
  1200  	i += n5
  1201  	dAtA[i] = 0x1a
  1202  	i++
  1203  	i = encodeVarintMetadata(dAtA, i, uint64(m.Attrs.Size()))
  1204  	n6, err := m.Attrs.MarshalTo(dAtA[i:])
  1205  	if err != nil {
  1206  		return 0, err
  1207  	}
  1208  	i += n6
  1209  	dAtA[i] = 0x22
  1210  	i++
  1211  	i = encodeVarintMetadata(dAtA, i, uint64(m.Locality.Size()))
  1212  	n7, err := m.Locality.MarshalTo(dAtA[i:])
  1213  	if err != nil {
  1214  		return 0, err
  1215  	}
  1216  	i += n7
  1217  	dAtA[i] = 0x2a
  1218  	i++
  1219  	i = encodeVarintMetadata(dAtA, i, uint64(m.ServerVersion.Size()))
  1220  	n8, err := m.ServerVersion.MarshalTo(dAtA[i:])
  1221  	if err != nil {
  1222  		return 0, err
  1223  	}
  1224  	i += n8
  1225  	dAtA[i] = 0x32
  1226  	i++
  1227  	i = encodeVarintMetadata(dAtA, i, uint64(len(m.BuildTag)))
  1228  	i += copy(dAtA[i:], m.BuildTag)
  1229  	dAtA[i] = 0x38
  1230  	i++
  1231  	i = encodeVarintMetadata(dAtA, i, uint64(m.StartedAt))
  1232  	if len(m.LocalityAddress) > 0 {
  1233  		for _, msg := range m.LocalityAddress {
  1234  			dAtA[i] = 0x42
  1235  			i++
  1236  			i = encodeVarintMetadata(dAtA, i, uint64(msg.Size()))
  1237  			n, err := msg.MarshalTo(dAtA[i:])
  1238  			if err != nil {
  1239  				return 0, err
  1240  			}
  1241  			i += n
  1242  		}
  1243  	}
  1244  	dAtA[i] = 0x4a
  1245  	i++
  1246  	i = encodeVarintMetadata(dAtA, i, uint64(len(m.ClusterName)))
  1247  	i += copy(dAtA[i:], m.ClusterName)
  1248  	dAtA[i] = 0x52
  1249  	i++
  1250  	i = encodeVarintMetadata(dAtA, i, uint64(m.SQLAddress.Size()))
  1251  	n9, err := m.SQLAddress.MarshalTo(dAtA[i:])
  1252  	if err != nil {
  1253  		return 0, err
  1254  	}
  1255  	i += n9
  1256  	return i, nil
  1257  }
  1258  
  1259  func (m *LocalityAddress) Marshal() (dAtA []byte, err error) {
  1260  	size := m.Size()
  1261  	dAtA = make([]byte, size)
  1262  	n, err := m.MarshalTo(dAtA)
  1263  	if err != nil {
  1264  		return nil, err
  1265  	}
  1266  	return dAtA[:n], nil
  1267  }
  1268  
  1269  func (m *LocalityAddress) MarshalTo(dAtA []byte) (int, error) {
  1270  	var i int
  1271  	_ = i
  1272  	var l int
  1273  	_ = l
  1274  	dAtA[i] = 0xa
  1275  	i++
  1276  	i = encodeVarintMetadata(dAtA, i, uint64(m.Address.Size()))
  1277  	n10, err := m.Address.MarshalTo(dAtA[i:])
  1278  	if err != nil {
  1279  		return 0, err
  1280  	}
  1281  	i += n10
  1282  	dAtA[i] = 0x12
  1283  	i++
  1284  	i = encodeVarintMetadata(dAtA, i, uint64(m.LocalityTier.Size()))
  1285  	n11, err := m.LocalityTier.MarshalTo(dAtA[i:])
  1286  	if err != nil {
  1287  		return 0, err
  1288  	}
  1289  	i += n11
  1290  	return i, nil
  1291  }
  1292  
  1293  func (m *StoreDescriptor) Marshal() (dAtA []byte, err error) {
  1294  	size := m.Size()
  1295  	dAtA = make([]byte, size)
  1296  	n, err := m.MarshalTo(dAtA)
  1297  	if err != nil {
  1298  		return nil, err
  1299  	}
  1300  	return dAtA[:n], nil
  1301  }
  1302  
  1303  func (m *StoreDescriptor) MarshalTo(dAtA []byte) (int, error) {
  1304  	var i int
  1305  	_ = i
  1306  	var l int
  1307  	_ = l
  1308  	dAtA[i] = 0x8
  1309  	i++
  1310  	i = encodeVarintMetadata(dAtA, i, uint64(m.StoreID))
  1311  	dAtA[i] = 0x12
  1312  	i++
  1313  	i = encodeVarintMetadata(dAtA, i, uint64(m.Attrs.Size()))
  1314  	n12, err := m.Attrs.MarshalTo(dAtA[i:])
  1315  	if err != nil {
  1316  		return 0, err
  1317  	}
  1318  	i += n12
  1319  	dAtA[i] = 0x1a
  1320  	i++
  1321  	i = encodeVarintMetadata(dAtA, i, uint64(m.Node.Size()))
  1322  	n13, err := m.Node.MarshalTo(dAtA[i:])
  1323  	if err != nil {
  1324  		return 0, err
  1325  	}
  1326  	i += n13
  1327  	dAtA[i] = 0x22
  1328  	i++
  1329  	i = encodeVarintMetadata(dAtA, i, uint64(m.Capacity.Size()))
  1330  	n14, err := m.Capacity.MarshalTo(dAtA[i:])
  1331  	if err != nil {
  1332  		return 0, err
  1333  	}
  1334  	i += n14
  1335  	return i, nil
  1336  }
  1337  
  1338  func (m *StoreDeadReplicas) Marshal() (dAtA []byte, err error) {
  1339  	size := m.Size()
  1340  	dAtA = make([]byte, size)
  1341  	n, err := m.MarshalTo(dAtA)
  1342  	if err != nil {
  1343  		return nil, err
  1344  	}
  1345  	return dAtA[:n], nil
  1346  }
  1347  
  1348  func (m *StoreDeadReplicas) MarshalTo(dAtA []byte) (int, error) {
  1349  	var i int
  1350  	_ = i
  1351  	var l int
  1352  	_ = l
  1353  	dAtA[i] = 0x8
  1354  	i++
  1355  	i = encodeVarintMetadata(dAtA, i, uint64(m.StoreID))
  1356  	if len(m.Replicas) > 0 {
  1357  		for _, msg := range m.Replicas {
  1358  			dAtA[i] = 0x12
  1359  			i++
  1360  			i = encodeVarintMetadata(dAtA, i, uint64(msg.Size()))
  1361  			n, err := msg.MarshalTo(dAtA[i:])
  1362  			if err != nil {
  1363  				return 0, err
  1364  			}
  1365  			i += n
  1366  		}
  1367  	}
  1368  	return i, nil
  1369  }
  1370  
  1371  func (m *Locality) Marshal() (dAtA []byte, err error) {
  1372  	size := m.Size()
  1373  	dAtA = make([]byte, size)
  1374  	n, err := m.MarshalTo(dAtA)
  1375  	if err != nil {
  1376  		return nil, err
  1377  	}
  1378  	return dAtA[:n], nil
  1379  }
  1380  
  1381  func (m *Locality) MarshalTo(dAtA []byte) (int, error) {
  1382  	var i int
  1383  	_ = i
  1384  	var l int
  1385  	_ = l
  1386  	if len(m.Tiers) > 0 {
  1387  		for _, msg := range m.Tiers {
  1388  			dAtA[i] = 0xa
  1389  			i++
  1390  			i = encodeVarintMetadata(dAtA, i, uint64(msg.Size()))
  1391  			n, err := msg.MarshalTo(dAtA[i:])
  1392  			if err != nil {
  1393  				return 0, err
  1394  			}
  1395  			i += n
  1396  		}
  1397  	}
  1398  	return i, nil
  1399  }
  1400  
  1401  func (m *Tier) Marshal() (dAtA []byte, err error) {
  1402  	size := m.Size()
  1403  	dAtA = make([]byte, size)
  1404  	n, err := m.MarshalTo(dAtA)
  1405  	if err != nil {
  1406  		return nil, err
  1407  	}
  1408  	return dAtA[:n], nil
  1409  }
  1410  
  1411  func (m *Tier) MarshalTo(dAtA []byte) (int, error) {
  1412  	var i int
  1413  	_ = i
  1414  	var l int
  1415  	_ = l
  1416  	dAtA[i] = 0xa
  1417  	i++
  1418  	i = encodeVarintMetadata(dAtA, i, uint64(len(m.Key)))
  1419  	i += copy(dAtA[i:], m.Key)
  1420  	dAtA[i] = 0x12
  1421  	i++
  1422  	i = encodeVarintMetadata(dAtA, i, uint64(len(m.Value)))
  1423  	i += copy(dAtA[i:], m.Value)
  1424  	return i, nil
  1425  }
  1426  
  1427  func (m *Version) Marshal() (dAtA []byte, err error) {
  1428  	size := m.Size()
  1429  	dAtA = make([]byte, size)
  1430  	n, err := m.MarshalTo(dAtA)
  1431  	if err != nil {
  1432  		return nil, err
  1433  	}
  1434  	return dAtA[:n], nil
  1435  }
  1436  
  1437  func (m *Version) MarshalTo(dAtA []byte) (int, error) {
  1438  	var i int
  1439  	_ = i
  1440  	var l int
  1441  	_ = l
  1442  	dAtA[i] = 0x8
  1443  	i++
  1444  	i = encodeVarintMetadata(dAtA, i, uint64(m.Major))
  1445  	dAtA[i] = 0x10
  1446  	i++
  1447  	i = encodeVarintMetadata(dAtA, i, uint64(m.Minor))
  1448  	dAtA[i] = 0x18
  1449  	i++
  1450  	i = encodeVarintMetadata(dAtA, i, uint64(m.Patch))
  1451  	dAtA[i] = 0x20
  1452  	i++
  1453  	i = encodeVarintMetadata(dAtA, i, uint64(m.Unstable))
  1454  	return i, nil
  1455  }
  1456  
  1457  func encodeVarintMetadata(dAtA []byte, offset int, v uint64) int {
  1458  	for v >= 1<<7 {
  1459  		dAtA[offset] = uint8(v&0x7f | 0x80)
  1460  		v >>= 7
  1461  		offset++
  1462  	}
  1463  	dAtA[offset] = uint8(v)
  1464  	return offset + 1
  1465  }
  1466  func NewPopulatedReplicaDescriptor(r randyMetadata, easy bool) *ReplicaDescriptor {
  1467  	this := &ReplicaDescriptor{}
  1468  	this.NodeID = NodeID(r.Int31())
  1469  	if r.Intn(2) == 0 {
  1470  		this.NodeID *= -1
  1471  	}
  1472  	this.StoreID = StoreID(r.Int31())
  1473  	if r.Intn(2) == 0 {
  1474  		this.StoreID *= -1
  1475  	}
  1476  	this.ReplicaID = ReplicaID(r.Int31())
  1477  	if r.Intn(2) == 0 {
  1478  		this.ReplicaID *= -1
  1479  	}
  1480  	if r.Intn(10) != 0 {
  1481  		v1 := ReplicaType([]int32{0, 2, 3, 4, 1}[r.Intn(5)])
  1482  		this.Type = &v1
  1483  	}
  1484  	if !easy && r.Intn(10) != 0 {
  1485  	}
  1486  	return this
  1487  }
  1488  
  1489  func NewPopulatedRangeDescriptor(r randyMetadata, easy bool) *RangeDescriptor {
  1490  	this := &RangeDescriptor{}
  1491  	this.RangeID = RangeID(r.Int63())
  1492  	if r.Intn(2) == 0 {
  1493  		this.RangeID *= -1
  1494  	}
  1495  	if r.Intn(10) != 0 {
  1496  		v2 := r.Intn(100)
  1497  		this.StartKey = make(RKey, v2)
  1498  		for i := 0; i < v2; i++ {
  1499  			this.StartKey[i] = byte(r.Intn(256))
  1500  		}
  1501  	}
  1502  	if r.Intn(10) != 0 {
  1503  		v3 := r.Intn(100)
  1504  		this.EndKey = make(RKey, v3)
  1505  		for i := 0; i < v3; i++ {
  1506  			this.EndKey[i] = byte(r.Intn(256))
  1507  		}
  1508  	}
  1509  	if r.Intn(10) != 0 {
  1510  		v4 := r.Intn(5)
  1511  		this.InternalReplicas = make([]ReplicaDescriptor, v4)
  1512  		for i := 0; i < v4; i++ {
  1513  			v5 := NewPopulatedReplicaDescriptor(r, easy)
  1514  			this.InternalReplicas[i] = *v5
  1515  		}
  1516  	}
  1517  	this.NextReplicaID = ReplicaID(r.Int31())
  1518  	if r.Intn(2) == 0 {
  1519  		this.NextReplicaID *= -1
  1520  	}
  1521  	this.Generation = int64(r.Int63())
  1522  	if r.Intn(2) == 0 {
  1523  		this.Generation *= -1
  1524  	}
  1525  	if r.Intn(10) != 0 {
  1526  		this.StickyBit = hlc.NewPopulatedTimestamp(r, easy)
  1527  	}
  1528  	if !easy && r.Intn(10) != 0 {
  1529  	}
  1530  	return this
  1531  }
  1532  
  1533  type randyMetadata interface {
  1534  	Float32() float32
  1535  	Float64() float64
  1536  	Int63() int64
  1537  	Int31() int32
  1538  	Uint32() uint32
  1539  	Intn(n int) int
  1540  }
  1541  
  1542  func randUTF8RuneMetadata(r randyMetadata) rune {
  1543  	ru := r.Intn(62)
  1544  	if ru < 10 {
  1545  		return rune(ru + 48)
  1546  	} else if ru < 36 {
  1547  		return rune(ru + 55)
  1548  	}
  1549  	return rune(ru + 61)
  1550  }
  1551  func randStringMetadata(r randyMetadata) string {
  1552  	v6 := r.Intn(100)
  1553  	tmps := make([]rune, v6)
  1554  	for i := 0; i < v6; i++ {
  1555  		tmps[i] = randUTF8RuneMetadata(r)
  1556  	}
  1557  	return string(tmps)
  1558  }
  1559  func randUnrecognizedMetadata(r randyMetadata, maxFieldNumber int) (dAtA []byte) {
  1560  	l := r.Intn(5)
  1561  	for i := 0; i < l; i++ {
  1562  		wire := r.Intn(4)
  1563  		if wire == 3 {
  1564  			wire = 5
  1565  		}
  1566  		fieldNumber := maxFieldNumber + r.Intn(100)
  1567  		dAtA = randFieldMetadata(dAtA, r, fieldNumber, wire)
  1568  	}
  1569  	return dAtA
  1570  }
  1571  func randFieldMetadata(dAtA []byte, r randyMetadata, fieldNumber int, wire int) []byte {
  1572  	key := uint32(fieldNumber)<<3 | uint32(wire)
  1573  	switch wire {
  1574  	case 0:
  1575  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(key))
  1576  		v7 := r.Int63()
  1577  		if r.Intn(2) == 0 {
  1578  			v7 *= -1
  1579  		}
  1580  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(v7))
  1581  	case 1:
  1582  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(key))
  1583  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  1584  	case 2:
  1585  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(key))
  1586  		ll := r.Intn(100)
  1587  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(ll))
  1588  		for j := 0; j < ll; j++ {
  1589  			dAtA = append(dAtA, byte(r.Intn(256)))
  1590  		}
  1591  	default:
  1592  		dAtA = encodeVarintPopulateMetadata(dAtA, uint64(key))
  1593  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  1594  	}
  1595  	return dAtA
  1596  }
  1597  func encodeVarintPopulateMetadata(dAtA []byte, v uint64) []byte {
  1598  	for v >= 1<<7 {
  1599  		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  1600  		v >>= 7
  1601  	}
  1602  	dAtA = append(dAtA, uint8(v))
  1603  	return dAtA
  1604  }
  1605  func (m *Attributes) Size() (n int) {
  1606  	if m == nil {
  1607  		return 0
  1608  	}
  1609  	var l int
  1610  	_ = l
  1611  	if len(m.Attrs) > 0 {
  1612  		for _, s := range m.Attrs {
  1613  			l = len(s)
  1614  			n += 1 + l + sovMetadata(uint64(l))
  1615  		}
  1616  	}
  1617  	return n
  1618  }
  1619  
  1620  func (m *ReplicationTarget) Size() (n int) {
  1621  	if m == nil {
  1622  		return 0
  1623  	}
  1624  	var l int
  1625  	_ = l
  1626  	n += 1 + sovMetadata(uint64(m.NodeID))
  1627  	n += 1 + sovMetadata(uint64(m.StoreID))
  1628  	return n
  1629  }
  1630  
  1631  func (m *ReplicaDescriptor) Size() (n int) {
  1632  	if m == nil {
  1633  		return 0
  1634  	}
  1635  	var l int
  1636  	_ = l
  1637  	n += 1 + sovMetadata(uint64(m.NodeID))
  1638  	n += 1 + sovMetadata(uint64(m.StoreID))
  1639  	n += 1 + sovMetadata(uint64(m.ReplicaID))
  1640  	if m.Type != nil {
  1641  		n += 1 + sovMetadata(uint64(*m.Type))
  1642  	}
  1643  	return n
  1644  }
  1645  
  1646  func (m *ReplicaIdent) Size() (n int) {
  1647  	if m == nil {
  1648  		return 0
  1649  	}
  1650  	var l int
  1651  	_ = l
  1652  	n += 1 + sovMetadata(uint64(m.RangeID))
  1653  	l = m.Replica.Size()
  1654  	n += 1 + l + sovMetadata(uint64(l))
  1655  	return n
  1656  }
  1657  
  1658  func (m *RangeDescriptor) Size() (n int) {
  1659  	if m == nil {
  1660  		return 0
  1661  	}
  1662  	var l int
  1663  	_ = l
  1664  	n += 1 + sovMetadata(uint64(m.RangeID))
  1665  	if m.StartKey != nil {
  1666  		l = len(m.StartKey)
  1667  		n += 1 + l + sovMetadata(uint64(l))
  1668  	}
  1669  	if m.EndKey != nil {
  1670  		l = len(m.EndKey)
  1671  		n += 1 + l + sovMetadata(uint64(l))
  1672  	}
  1673  	if len(m.InternalReplicas) > 0 {
  1674  		for _, e := range m.InternalReplicas {
  1675  			l = e.Size()
  1676  			n += 1 + l + sovMetadata(uint64(l))
  1677  		}
  1678  	}
  1679  	n += 1 + sovMetadata(uint64(m.NextReplicaID))
  1680  	n += 1 + sovMetadata(uint64(m.Generation))
  1681  	if m.StickyBit != nil {
  1682  		l = m.StickyBit.Size()
  1683  		n += 1 + l + sovMetadata(uint64(l))
  1684  	}
  1685  	return n
  1686  }
  1687  
  1688  func (m *Percentiles) Size() (n int) {
  1689  	if m == nil {
  1690  		return 0
  1691  	}
  1692  	var l int
  1693  	_ = l
  1694  	n += 9
  1695  	n += 9
  1696  	n += 9
  1697  	n += 9
  1698  	n += 9
  1699  	n += 9
  1700  	return n
  1701  }
  1702  
  1703  func (m *StoreCapacity) Size() (n int) {
  1704  	if m == nil {
  1705  		return 0
  1706  	}
  1707  	var l int
  1708  	_ = l
  1709  	n += 1 + sovMetadata(uint64(m.Capacity))
  1710  	n += 1 + sovMetadata(uint64(m.Available))
  1711  	n += 1 + sovMetadata(uint64(m.RangeCount))
  1712  	n += 1 + sovMetadata(uint64(m.LeaseCount))
  1713  	n += 9
  1714  	l = m.BytesPerReplica.Size()
  1715  	n += 1 + l + sovMetadata(uint64(l))
  1716  	l = m.WritesPerReplica.Size()
  1717  	n += 1 + l + sovMetadata(uint64(l))
  1718  	n += 1 + sovMetadata(uint64(m.Used))
  1719  	n += 1 + sovMetadata(uint64(m.LogicalBytes))
  1720  	n += 9
  1721  	return n
  1722  }
  1723  
  1724  func (m *NodeDescriptor) Size() (n int) {
  1725  	if m == nil {
  1726  		return 0
  1727  	}
  1728  	var l int
  1729  	_ = l
  1730  	n += 1 + sovMetadata(uint64(m.NodeID))
  1731  	l = m.Address.Size()
  1732  	n += 1 + l + sovMetadata(uint64(l))
  1733  	l = m.Attrs.Size()
  1734  	n += 1 + l + sovMetadata(uint64(l))
  1735  	l = m.Locality.Size()
  1736  	n += 1 + l + sovMetadata(uint64(l))
  1737  	l = m.ServerVersion.Size()
  1738  	n += 1 + l + sovMetadata(uint64(l))
  1739  	l = len(m.BuildTag)
  1740  	n += 1 + l + sovMetadata(uint64(l))
  1741  	n += 1 + sovMetadata(uint64(m.StartedAt))
  1742  	if len(m.LocalityAddress) > 0 {
  1743  		for _, e := range m.LocalityAddress {
  1744  			l = e.Size()
  1745  			n += 1 + l + sovMetadata(uint64(l))
  1746  		}
  1747  	}
  1748  	l = len(m.ClusterName)
  1749  	n += 1 + l + sovMetadata(uint64(l))
  1750  	l = m.SQLAddress.Size()
  1751  	n += 1 + l + sovMetadata(uint64(l))
  1752  	return n
  1753  }
  1754  
  1755  func (m *LocalityAddress) Size() (n int) {
  1756  	if m == nil {
  1757  		return 0
  1758  	}
  1759  	var l int
  1760  	_ = l
  1761  	l = m.Address.Size()
  1762  	n += 1 + l + sovMetadata(uint64(l))
  1763  	l = m.LocalityTier.Size()
  1764  	n += 1 + l + sovMetadata(uint64(l))
  1765  	return n
  1766  }
  1767  
  1768  func (m *StoreDescriptor) Size() (n int) {
  1769  	if m == nil {
  1770  		return 0
  1771  	}
  1772  	var l int
  1773  	_ = l
  1774  	n += 1 + sovMetadata(uint64(m.StoreID))
  1775  	l = m.Attrs.Size()
  1776  	n += 1 + l + sovMetadata(uint64(l))
  1777  	l = m.Node.Size()
  1778  	n += 1 + l + sovMetadata(uint64(l))
  1779  	l = m.Capacity.Size()
  1780  	n += 1 + l + sovMetadata(uint64(l))
  1781  	return n
  1782  }
  1783  
  1784  func (m *StoreDeadReplicas) Size() (n int) {
  1785  	if m == nil {
  1786  		return 0
  1787  	}
  1788  	var l int
  1789  	_ = l
  1790  	n += 1 + sovMetadata(uint64(m.StoreID))
  1791  	if len(m.Replicas) > 0 {
  1792  		for _, e := range m.Replicas {
  1793  			l = e.Size()
  1794  			n += 1 + l + sovMetadata(uint64(l))
  1795  		}
  1796  	}
  1797  	return n
  1798  }
  1799  
  1800  func (m *Locality) Size() (n int) {
  1801  	if m == nil {
  1802  		return 0
  1803  	}
  1804  	var l int
  1805  	_ = l
  1806  	if len(m.Tiers) > 0 {
  1807  		for _, e := range m.Tiers {
  1808  			l = e.Size()
  1809  			n += 1 + l + sovMetadata(uint64(l))
  1810  		}
  1811  	}
  1812  	return n
  1813  }
  1814  
  1815  func (m *Tier) Size() (n int) {
  1816  	if m == nil {
  1817  		return 0
  1818  	}
  1819  	var l int
  1820  	_ = l
  1821  	l = len(m.Key)
  1822  	n += 1 + l + sovMetadata(uint64(l))
  1823  	l = len(m.Value)
  1824  	n += 1 + l + sovMetadata(uint64(l))
  1825  	return n
  1826  }
  1827  
  1828  func (m *Version) Size() (n int) {
  1829  	if m == nil {
  1830  		return 0
  1831  	}
  1832  	var l int
  1833  	_ = l
  1834  	n += 1 + sovMetadata(uint64(m.Major))
  1835  	n += 1 + sovMetadata(uint64(m.Minor))
  1836  	n += 1 + sovMetadata(uint64(m.Patch))
  1837  	n += 1 + sovMetadata(uint64(m.Unstable))
  1838  	return n
  1839  }
  1840  
  1841  func sovMetadata(x uint64) (n int) {
  1842  	for {
  1843  		n++
  1844  		x >>= 7
  1845  		if x == 0 {
  1846  			break
  1847  		}
  1848  	}
  1849  	return n
  1850  }
  1851  func sozMetadata(x uint64) (n int) {
  1852  	return sovMetadata(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1853  }
  1854  func (m *Attributes) Unmarshal(dAtA []byte) error {
  1855  	l := len(dAtA)
  1856  	iNdEx := 0
  1857  	for iNdEx < l {
  1858  		preIndex := iNdEx
  1859  		var wire uint64
  1860  		for shift := uint(0); ; shift += 7 {
  1861  			if shift >= 64 {
  1862  				return ErrIntOverflowMetadata
  1863  			}
  1864  			if iNdEx >= l {
  1865  				return io.ErrUnexpectedEOF
  1866  			}
  1867  			b := dAtA[iNdEx]
  1868  			iNdEx++
  1869  			wire |= (uint64(b) & 0x7F) << shift
  1870  			if b < 0x80 {
  1871  				break
  1872  			}
  1873  		}
  1874  		fieldNum := int32(wire >> 3)
  1875  		wireType := int(wire & 0x7)
  1876  		if wireType == 4 {
  1877  			return fmt.Errorf("proto: Attributes: wiretype end group for non-group")
  1878  		}
  1879  		if fieldNum <= 0 {
  1880  			return fmt.Errorf("proto: Attributes: illegal tag %d (wire type %d)", fieldNum, wire)
  1881  		}
  1882  		switch fieldNum {
  1883  		case 1:
  1884  			if wireType != 2 {
  1885  				return fmt.Errorf("proto: wrong wireType = %d for field Attrs", wireType)
  1886  			}
  1887  			var stringLen uint64
  1888  			for shift := uint(0); ; shift += 7 {
  1889  				if shift >= 64 {
  1890  					return ErrIntOverflowMetadata
  1891  				}
  1892  				if iNdEx >= l {
  1893  					return io.ErrUnexpectedEOF
  1894  				}
  1895  				b := dAtA[iNdEx]
  1896  				iNdEx++
  1897  				stringLen |= (uint64(b) & 0x7F) << shift
  1898  				if b < 0x80 {
  1899  					break
  1900  				}
  1901  			}
  1902  			intStringLen := int(stringLen)
  1903  			if intStringLen < 0 {
  1904  				return ErrInvalidLengthMetadata
  1905  			}
  1906  			postIndex := iNdEx + intStringLen
  1907  			if postIndex > l {
  1908  				return io.ErrUnexpectedEOF
  1909  			}
  1910  			m.Attrs = append(m.Attrs, string(dAtA[iNdEx:postIndex]))
  1911  			iNdEx = postIndex
  1912  		default:
  1913  			iNdEx = preIndex
  1914  			skippy, err := skipMetadata(dAtA[iNdEx:])
  1915  			if err != nil {
  1916  				return err
  1917  			}
  1918  			if skippy < 0 {
  1919  				return ErrInvalidLengthMetadata
  1920  			}
  1921  			if (iNdEx + skippy) > l {
  1922  				return io.ErrUnexpectedEOF
  1923  			}
  1924  			iNdEx += skippy
  1925  		}
  1926  	}
  1927  
  1928  	if iNdEx > l {
  1929  		return io.ErrUnexpectedEOF
  1930  	}
  1931  	return nil
  1932  }
  1933  func (m *ReplicationTarget) Unmarshal(dAtA []byte) error {
  1934  	l := len(dAtA)
  1935  	iNdEx := 0
  1936  	for iNdEx < l {
  1937  		preIndex := iNdEx
  1938  		var wire uint64
  1939  		for shift := uint(0); ; shift += 7 {
  1940  			if shift >= 64 {
  1941  				return ErrIntOverflowMetadata
  1942  			}
  1943  			if iNdEx >= l {
  1944  				return io.ErrUnexpectedEOF
  1945  			}
  1946  			b := dAtA[iNdEx]
  1947  			iNdEx++
  1948  			wire |= (uint64(b) & 0x7F) << shift
  1949  			if b < 0x80 {
  1950  				break
  1951  			}
  1952  		}
  1953  		fieldNum := int32(wire >> 3)
  1954  		wireType := int(wire & 0x7)
  1955  		if wireType == 4 {
  1956  			return fmt.Errorf("proto: ReplicationTarget: wiretype end group for non-group")
  1957  		}
  1958  		if fieldNum <= 0 {
  1959  			return fmt.Errorf("proto: ReplicationTarget: illegal tag %d (wire type %d)", fieldNum, wire)
  1960  		}
  1961  		switch fieldNum {
  1962  		case 1:
  1963  			if wireType != 0 {
  1964  				return fmt.Errorf("proto: wrong wireType = %d for field NodeID", wireType)
  1965  			}
  1966  			m.NodeID = 0
  1967  			for shift := uint(0); ; shift += 7 {
  1968  				if shift >= 64 {
  1969  					return ErrIntOverflowMetadata
  1970  				}
  1971  				if iNdEx >= l {
  1972  					return io.ErrUnexpectedEOF
  1973  				}
  1974  				b := dAtA[iNdEx]
  1975  				iNdEx++
  1976  				m.NodeID |= (NodeID(b) & 0x7F) << shift
  1977  				if b < 0x80 {
  1978  					break
  1979  				}
  1980  			}
  1981  		case 2:
  1982  			if wireType != 0 {
  1983  				return fmt.Errorf("proto: wrong wireType = %d for field StoreID", wireType)
  1984  			}
  1985  			m.StoreID = 0
  1986  			for shift := uint(0); ; shift += 7 {
  1987  				if shift >= 64 {
  1988  					return ErrIntOverflowMetadata
  1989  				}
  1990  				if iNdEx >= l {
  1991  					return io.ErrUnexpectedEOF
  1992  				}
  1993  				b := dAtA[iNdEx]
  1994  				iNdEx++
  1995  				m.StoreID |= (StoreID(b) & 0x7F) << shift
  1996  				if b < 0x80 {
  1997  					break
  1998  				}
  1999  			}
  2000  		default:
  2001  			iNdEx = preIndex
  2002  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2003  			if err != nil {
  2004  				return err
  2005  			}
  2006  			if skippy < 0 {
  2007  				return ErrInvalidLengthMetadata
  2008  			}
  2009  			if (iNdEx + skippy) > l {
  2010  				return io.ErrUnexpectedEOF
  2011  			}
  2012  			iNdEx += skippy
  2013  		}
  2014  	}
  2015  
  2016  	if iNdEx > l {
  2017  		return io.ErrUnexpectedEOF
  2018  	}
  2019  	return nil
  2020  }
  2021  func (m *ReplicaDescriptor) Unmarshal(dAtA []byte) error {
  2022  	l := len(dAtA)
  2023  	iNdEx := 0
  2024  	for iNdEx < l {
  2025  		preIndex := iNdEx
  2026  		var wire uint64
  2027  		for shift := uint(0); ; shift += 7 {
  2028  			if shift >= 64 {
  2029  				return ErrIntOverflowMetadata
  2030  			}
  2031  			if iNdEx >= l {
  2032  				return io.ErrUnexpectedEOF
  2033  			}
  2034  			b := dAtA[iNdEx]
  2035  			iNdEx++
  2036  			wire |= (uint64(b) & 0x7F) << shift
  2037  			if b < 0x80 {
  2038  				break
  2039  			}
  2040  		}
  2041  		fieldNum := int32(wire >> 3)
  2042  		wireType := int(wire & 0x7)
  2043  		if wireType == 4 {
  2044  			return fmt.Errorf("proto: ReplicaDescriptor: wiretype end group for non-group")
  2045  		}
  2046  		if fieldNum <= 0 {
  2047  			return fmt.Errorf("proto: ReplicaDescriptor: illegal tag %d (wire type %d)", fieldNum, wire)
  2048  		}
  2049  		switch fieldNum {
  2050  		case 1:
  2051  			if wireType != 0 {
  2052  				return fmt.Errorf("proto: wrong wireType = %d for field NodeID", wireType)
  2053  			}
  2054  			m.NodeID = 0
  2055  			for shift := uint(0); ; shift += 7 {
  2056  				if shift >= 64 {
  2057  					return ErrIntOverflowMetadata
  2058  				}
  2059  				if iNdEx >= l {
  2060  					return io.ErrUnexpectedEOF
  2061  				}
  2062  				b := dAtA[iNdEx]
  2063  				iNdEx++
  2064  				m.NodeID |= (NodeID(b) & 0x7F) << shift
  2065  				if b < 0x80 {
  2066  					break
  2067  				}
  2068  			}
  2069  		case 2:
  2070  			if wireType != 0 {
  2071  				return fmt.Errorf("proto: wrong wireType = %d for field StoreID", wireType)
  2072  			}
  2073  			m.StoreID = 0
  2074  			for shift := uint(0); ; shift += 7 {
  2075  				if shift >= 64 {
  2076  					return ErrIntOverflowMetadata
  2077  				}
  2078  				if iNdEx >= l {
  2079  					return io.ErrUnexpectedEOF
  2080  				}
  2081  				b := dAtA[iNdEx]
  2082  				iNdEx++
  2083  				m.StoreID |= (StoreID(b) & 0x7F) << shift
  2084  				if b < 0x80 {
  2085  					break
  2086  				}
  2087  			}
  2088  		case 3:
  2089  			if wireType != 0 {
  2090  				return fmt.Errorf("proto: wrong wireType = %d for field ReplicaID", wireType)
  2091  			}
  2092  			m.ReplicaID = 0
  2093  			for shift := uint(0); ; shift += 7 {
  2094  				if shift >= 64 {
  2095  					return ErrIntOverflowMetadata
  2096  				}
  2097  				if iNdEx >= l {
  2098  					return io.ErrUnexpectedEOF
  2099  				}
  2100  				b := dAtA[iNdEx]
  2101  				iNdEx++
  2102  				m.ReplicaID |= (ReplicaID(b) & 0x7F) << shift
  2103  				if b < 0x80 {
  2104  					break
  2105  				}
  2106  			}
  2107  		case 4:
  2108  			if wireType != 0 {
  2109  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  2110  			}
  2111  			var v ReplicaType
  2112  			for shift := uint(0); ; shift += 7 {
  2113  				if shift >= 64 {
  2114  					return ErrIntOverflowMetadata
  2115  				}
  2116  				if iNdEx >= l {
  2117  					return io.ErrUnexpectedEOF
  2118  				}
  2119  				b := dAtA[iNdEx]
  2120  				iNdEx++
  2121  				v |= (ReplicaType(b) & 0x7F) << shift
  2122  				if b < 0x80 {
  2123  					break
  2124  				}
  2125  			}
  2126  			m.Type = &v
  2127  		default:
  2128  			iNdEx = preIndex
  2129  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2130  			if err != nil {
  2131  				return err
  2132  			}
  2133  			if skippy < 0 {
  2134  				return ErrInvalidLengthMetadata
  2135  			}
  2136  			if (iNdEx + skippy) > l {
  2137  				return io.ErrUnexpectedEOF
  2138  			}
  2139  			iNdEx += skippy
  2140  		}
  2141  	}
  2142  
  2143  	if iNdEx > l {
  2144  		return io.ErrUnexpectedEOF
  2145  	}
  2146  	return nil
  2147  }
  2148  func (m *ReplicaIdent) Unmarshal(dAtA []byte) error {
  2149  	l := len(dAtA)
  2150  	iNdEx := 0
  2151  	for iNdEx < l {
  2152  		preIndex := iNdEx
  2153  		var wire uint64
  2154  		for shift := uint(0); ; shift += 7 {
  2155  			if shift >= 64 {
  2156  				return ErrIntOverflowMetadata
  2157  			}
  2158  			if iNdEx >= l {
  2159  				return io.ErrUnexpectedEOF
  2160  			}
  2161  			b := dAtA[iNdEx]
  2162  			iNdEx++
  2163  			wire |= (uint64(b) & 0x7F) << shift
  2164  			if b < 0x80 {
  2165  				break
  2166  			}
  2167  		}
  2168  		fieldNum := int32(wire >> 3)
  2169  		wireType := int(wire & 0x7)
  2170  		if wireType == 4 {
  2171  			return fmt.Errorf("proto: ReplicaIdent: wiretype end group for non-group")
  2172  		}
  2173  		if fieldNum <= 0 {
  2174  			return fmt.Errorf("proto: ReplicaIdent: illegal tag %d (wire type %d)", fieldNum, wire)
  2175  		}
  2176  		switch fieldNum {
  2177  		case 1:
  2178  			if wireType != 0 {
  2179  				return fmt.Errorf("proto: wrong wireType = %d for field RangeID", wireType)
  2180  			}
  2181  			m.RangeID = 0
  2182  			for shift := uint(0); ; shift += 7 {
  2183  				if shift >= 64 {
  2184  					return ErrIntOverflowMetadata
  2185  				}
  2186  				if iNdEx >= l {
  2187  					return io.ErrUnexpectedEOF
  2188  				}
  2189  				b := dAtA[iNdEx]
  2190  				iNdEx++
  2191  				m.RangeID |= (RangeID(b) & 0x7F) << shift
  2192  				if b < 0x80 {
  2193  					break
  2194  				}
  2195  			}
  2196  		case 2:
  2197  			if wireType != 2 {
  2198  				return fmt.Errorf("proto: wrong wireType = %d for field Replica", wireType)
  2199  			}
  2200  			var msglen int
  2201  			for shift := uint(0); ; shift += 7 {
  2202  				if shift >= 64 {
  2203  					return ErrIntOverflowMetadata
  2204  				}
  2205  				if iNdEx >= l {
  2206  					return io.ErrUnexpectedEOF
  2207  				}
  2208  				b := dAtA[iNdEx]
  2209  				iNdEx++
  2210  				msglen |= (int(b) & 0x7F) << shift
  2211  				if b < 0x80 {
  2212  					break
  2213  				}
  2214  			}
  2215  			if msglen < 0 {
  2216  				return ErrInvalidLengthMetadata
  2217  			}
  2218  			postIndex := iNdEx + msglen
  2219  			if postIndex > l {
  2220  				return io.ErrUnexpectedEOF
  2221  			}
  2222  			if err := m.Replica.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2223  				return err
  2224  			}
  2225  			iNdEx = postIndex
  2226  		default:
  2227  			iNdEx = preIndex
  2228  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2229  			if err != nil {
  2230  				return err
  2231  			}
  2232  			if skippy < 0 {
  2233  				return ErrInvalidLengthMetadata
  2234  			}
  2235  			if (iNdEx + skippy) > l {
  2236  				return io.ErrUnexpectedEOF
  2237  			}
  2238  			iNdEx += skippy
  2239  		}
  2240  	}
  2241  
  2242  	if iNdEx > l {
  2243  		return io.ErrUnexpectedEOF
  2244  	}
  2245  	return nil
  2246  }
  2247  func (m *RangeDescriptor) Unmarshal(dAtA []byte) error {
  2248  	l := len(dAtA)
  2249  	iNdEx := 0
  2250  	for iNdEx < l {
  2251  		preIndex := iNdEx
  2252  		var wire uint64
  2253  		for shift := uint(0); ; shift += 7 {
  2254  			if shift >= 64 {
  2255  				return ErrIntOverflowMetadata
  2256  			}
  2257  			if iNdEx >= l {
  2258  				return io.ErrUnexpectedEOF
  2259  			}
  2260  			b := dAtA[iNdEx]
  2261  			iNdEx++
  2262  			wire |= (uint64(b) & 0x7F) << shift
  2263  			if b < 0x80 {
  2264  				break
  2265  			}
  2266  		}
  2267  		fieldNum := int32(wire >> 3)
  2268  		wireType := int(wire & 0x7)
  2269  		if wireType == 4 {
  2270  			return fmt.Errorf("proto: RangeDescriptor: wiretype end group for non-group")
  2271  		}
  2272  		if fieldNum <= 0 {
  2273  			return fmt.Errorf("proto: RangeDescriptor: illegal tag %d (wire type %d)", fieldNum, wire)
  2274  		}
  2275  		switch fieldNum {
  2276  		case 1:
  2277  			if wireType != 0 {
  2278  				return fmt.Errorf("proto: wrong wireType = %d for field RangeID", wireType)
  2279  			}
  2280  			m.RangeID = 0
  2281  			for shift := uint(0); ; shift += 7 {
  2282  				if shift >= 64 {
  2283  					return ErrIntOverflowMetadata
  2284  				}
  2285  				if iNdEx >= l {
  2286  					return io.ErrUnexpectedEOF
  2287  				}
  2288  				b := dAtA[iNdEx]
  2289  				iNdEx++
  2290  				m.RangeID |= (RangeID(b) & 0x7F) << shift
  2291  				if b < 0x80 {
  2292  					break
  2293  				}
  2294  			}
  2295  		case 2:
  2296  			if wireType != 2 {
  2297  				return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType)
  2298  			}
  2299  			var byteLen int
  2300  			for shift := uint(0); ; shift += 7 {
  2301  				if shift >= 64 {
  2302  					return ErrIntOverflowMetadata
  2303  				}
  2304  				if iNdEx >= l {
  2305  					return io.ErrUnexpectedEOF
  2306  				}
  2307  				b := dAtA[iNdEx]
  2308  				iNdEx++
  2309  				byteLen |= (int(b) & 0x7F) << shift
  2310  				if b < 0x80 {
  2311  					break
  2312  				}
  2313  			}
  2314  			if byteLen < 0 {
  2315  				return ErrInvalidLengthMetadata
  2316  			}
  2317  			postIndex := iNdEx + byteLen
  2318  			if postIndex > l {
  2319  				return io.ErrUnexpectedEOF
  2320  			}
  2321  			m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...)
  2322  			if m.StartKey == nil {
  2323  				m.StartKey = []byte{}
  2324  			}
  2325  			iNdEx = postIndex
  2326  		case 3:
  2327  			if wireType != 2 {
  2328  				return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType)
  2329  			}
  2330  			var byteLen int
  2331  			for shift := uint(0); ; shift += 7 {
  2332  				if shift >= 64 {
  2333  					return ErrIntOverflowMetadata
  2334  				}
  2335  				if iNdEx >= l {
  2336  					return io.ErrUnexpectedEOF
  2337  				}
  2338  				b := dAtA[iNdEx]
  2339  				iNdEx++
  2340  				byteLen |= (int(b) & 0x7F) << shift
  2341  				if b < 0x80 {
  2342  					break
  2343  				}
  2344  			}
  2345  			if byteLen < 0 {
  2346  				return ErrInvalidLengthMetadata
  2347  			}
  2348  			postIndex := iNdEx + byteLen
  2349  			if postIndex > l {
  2350  				return io.ErrUnexpectedEOF
  2351  			}
  2352  			m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...)
  2353  			if m.EndKey == nil {
  2354  				m.EndKey = []byte{}
  2355  			}
  2356  			iNdEx = postIndex
  2357  		case 4:
  2358  			if wireType != 2 {
  2359  				return fmt.Errorf("proto: wrong wireType = %d for field InternalReplicas", wireType)
  2360  			}
  2361  			var msglen int
  2362  			for shift := uint(0); ; shift += 7 {
  2363  				if shift >= 64 {
  2364  					return ErrIntOverflowMetadata
  2365  				}
  2366  				if iNdEx >= l {
  2367  					return io.ErrUnexpectedEOF
  2368  				}
  2369  				b := dAtA[iNdEx]
  2370  				iNdEx++
  2371  				msglen |= (int(b) & 0x7F) << shift
  2372  				if b < 0x80 {
  2373  					break
  2374  				}
  2375  			}
  2376  			if msglen < 0 {
  2377  				return ErrInvalidLengthMetadata
  2378  			}
  2379  			postIndex := iNdEx + msglen
  2380  			if postIndex > l {
  2381  				return io.ErrUnexpectedEOF
  2382  			}
  2383  			m.InternalReplicas = append(m.InternalReplicas, ReplicaDescriptor{})
  2384  			if err := m.InternalReplicas[len(m.InternalReplicas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2385  				return err
  2386  			}
  2387  			iNdEx = postIndex
  2388  		case 5:
  2389  			if wireType != 0 {
  2390  				return fmt.Errorf("proto: wrong wireType = %d for field NextReplicaID", wireType)
  2391  			}
  2392  			m.NextReplicaID = 0
  2393  			for shift := uint(0); ; shift += 7 {
  2394  				if shift >= 64 {
  2395  					return ErrIntOverflowMetadata
  2396  				}
  2397  				if iNdEx >= l {
  2398  					return io.ErrUnexpectedEOF
  2399  				}
  2400  				b := dAtA[iNdEx]
  2401  				iNdEx++
  2402  				m.NextReplicaID |= (ReplicaID(b) & 0x7F) << shift
  2403  				if b < 0x80 {
  2404  					break
  2405  				}
  2406  			}
  2407  		case 6:
  2408  			if wireType != 0 {
  2409  				return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType)
  2410  			}
  2411  			m.Generation = 0
  2412  			for shift := uint(0); ; shift += 7 {
  2413  				if shift >= 64 {
  2414  					return ErrIntOverflowMetadata
  2415  				}
  2416  				if iNdEx >= l {
  2417  					return io.ErrUnexpectedEOF
  2418  				}
  2419  				b := dAtA[iNdEx]
  2420  				iNdEx++
  2421  				m.Generation |= (int64(b) & 0x7F) << shift
  2422  				if b < 0x80 {
  2423  					break
  2424  				}
  2425  			}
  2426  		case 7:
  2427  			if wireType != 2 {
  2428  				return fmt.Errorf("proto: wrong wireType = %d for field StickyBit", wireType)
  2429  			}
  2430  			var msglen int
  2431  			for shift := uint(0); ; shift += 7 {
  2432  				if shift >= 64 {
  2433  					return ErrIntOverflowMetadata
  2434  				}
  2435  				if iNdEx >= l {
  2436  					return io.ErrUnexpectedEOF
  2437  				}
  2438  				b := dAtA[iNdEx]
  2439  				iNdEx++
  2440  				msglen |= (int(b) & 0x7F) << shift
  2441  				if b < 0x80 {
  2442  					break
  2443  				}
  2444  			}
  2445  			if msglen < 0 {
  2446  				return ErrInvalidLengthMetadata
  2447  			}
  2448  			postIndex := iNdEx + msglen
  2449  			if postIndex > l {
  2450  				return io.ErrUnexpectedEOF
  2451  			}
  2452  			if m.StickyBit == nil {
  2453  				m.StickyBit = &hlc.Timestamp{}
  2454  			}
  2455  			if err := m.StickyBit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2456  				return err
  2457  			}
  2458  			iNdEx = postIndex
  2459  		default:
  2460  			iNdEx = preIndex
  2461  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2462  			if err != nil {
  2463  				return err
  2464  			}
  2465  			if skippy < 0 {
  2466  				return ErrInvalidLengthMetadata
  2467  			}
  2468  			if (iNdEx + skippy) > l {
  2469  				return io.ErrUnexpectedEOF
  2470  			}
  2471  			iNdEx += skippy
  2472  		}
  2473  	}
  2474  
  2475  	if iNdEx > l {
  2476  		return io.ErrUnexpectedEOF
  2477  	}
  2478  	return nil
  2479  }
  2480  func (m *Percentiles) Unmarshal(dAtA []byte) error {
  2481  	l := len(dAtA)
  2482  	iNdEx := 0
  2483  	for iNdEx < l {
  2484  		preIndex := iNdEx
  2485  		var wire uint64
  2486  		for shift := uint(0); ; shift += 7 {
  2487  			if shift >= 64 {
  2488  				return ErrIntOverflowMetadata
  2489  			}
  2490  			if iNdEx >= l {
  2491  				return io.ErrUnexpectedEOF
  2492  			}
  2493  			b := dAtA[iNdEx]
  2494  			iNdEx++
  2495  			wire |= (uint64(b) & 0x7F) << shift
  2496  			if b < 0x80 {
  2497  				break
  2498  			}
  2499  		}
  2500  		fieldNum := int32(wire >> 3)
  2501  		wireType := int(wire & 0x7)
  2502  		if wireType == 4 {
  2503  			return fmt.Errorf("proto: Percentiles: wiretype end group for non-group")
  2504  		}
  2505  		if fieldNum <= 0 {
  2506  			return fmt.Errorf("proto: Percentiles: illegal tag %d (wire type %d)", fieldNum, wire)
  2507  		}
  2508  		switch fieldNum {
  2509  		case 1:
  2510  			if wireType != 1 {
  2511  				return fmt.Errorf("proto: wrong wireType = %d for field P10", wireType)
  2512  			}
  2513  			var v uint64
  2514  			if (iNdEx + 8) > l {
  2515  				return io.ErrUnexpectedEOF
  2516  			}
  2517  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2518  			iNdEx += 8
  2519  			m.P10 = float64(math.Float64frombits(v))
  2520  		case 2:
  2521  			if wireType != 1 {
  2522  				return fmt.Errorf("proto: wrong wireType = %d for field P25", wireType)
  2523  			}
  2524  			var v uint64
  2525  			if (iNdEx + 8) > l {
  2526  				return io.ErrUnexpectedEOF
  2527  			}
  2528  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2529  			iNdEx += 8
  2530  			m.P25 = float64(math.Float64frombits(v))
  2531  		case 3:
  2532  			if wireType != 1 {
  2533  				return fmt.Errorf("proto: wrong wireType = %d for field P50", wireType)
  2534  			}
  2535  			var v uint64
  2536  			if (iNdEx + 8) > l {
  2537  				return io.ErrUnexpectedEOF
  2538  			}
  2539  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2540  			iNdEx += 8
  2541  			m.P50 = float64(math.Float64frombits(v))
  2542  		case 4:
  2543  			if wireType != 1 {
  2544  				return fmt.Errorf("proto: wrong wireType = %d for field P75", wireType)
  2545  			}
  2546  			var v uint64
  2547  			if (iNdEx + 8) > l {
  2548  				return io.ErrUnexpectedEOF
  2549  			}
  2550  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2551  			iNdEx += 8
  2552  			m.P75 = float64(math.Float64frombits(v))
  2553  		case 5:
  2554  			if wireType != 1 {
  2555  				return fmt.Errorf("proto: wrong wireType = %d for field P90", wireType)
  2556  			}
  2557  			var v uint64
  2558  			if (iNdEx + 8) > l {
  2559  				return io.ErrUnexpectedEOF
  2560  			}
  2561  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2562  			iNdEx += 8
  2563  			m.P90 = float64(math.Float64frombits(v))
  2564  		case 6:
  2565  			if wireType != 1 {
  2566  				return fmt.Errorf("proto: wrong wireType = %d for field PMax", wireType)
  2567  			}
  2568  			var v uint64
  2569  			if (iNdEx + 8) > l {
  2570  				return io.ErrUnexpectedEOF
  2571  			}
  2572  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2573  			iNdEx += 8
  2574  			m.PMax = float64(math.Float64frombits(v))
  2575  		default:
  2576  			iNdEx = preIndex
  2577  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2578  			if err != nil {
  2579  				return err
  2580  			}
  2581  			if skippy < 0 {
  2582  				return ErrInvalidLengthMetadata
  2583  			}
  2584  			if (iNdEx + skippy) > l {
  2585  				return io.ErrUnexpectedEOF
  2586  			}
  2587  			iNdEx += skippy
  2588  		}
  2589  	}
  2590  
  2591  	if iNdEx > l {
  2592  		return io.ErrUnexpectedEOF
  2593  	}
  2594  	return nil
  2595  }
  2596  func (m *StoreCapacity) Unmarshal(dAtA []byte) error {
  2597  	l := len(dAtA)
  2598  	iNdEx := 0
  2599  	for iNdEx < l {
  2600  		preIndex := iNdEx
  2601  		var wire uint64
  2602  		for shift := uint(0); ; shift += 7 {
  2603  			if shift >= 64 {
  2604  				return ErrIntOverflowMetadata
  2605  			}
  2606  			if iNdEx >= l {
  2607  				return io.ErrUnexpectedEOF
  2608  			}
  2609  			b := dAtA[iNdEx]
  2610  			iNdEx++
  2611  			wire |= (uint64(b) & 0x7F) << shift
  2612  			if b < 0x80 {
  2613  				break
  2614  			}
  2615  		}
  2616  		fieldNum := int32(wire >> 3)
  2617  		wireType := int(wire & 0x7)
  2618  		if wireType == 4 {
  2619  			return fmt.Errorf("proto: StoreCapacity: wiretype end group for non-group")
  2620  		}
  2621  		if fieldNum <= 0 {
  2622  			return fmt.Errorf("proto: StoreCapacity: illegal tag %d (wire type %d)", fieldNum, wire)
  2623  		}
  2624  		switch fieldNum {
  2625  		case 1:
  2626  			if wireType != 0 {
  2627  				return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType)
  2628  			}
  2629  			m.Capacity = 0
  2630  			for shift := uint(0); ; shift += 7 {
  2631  				if shift >= 64 {
  2632  					return ErrIntOverflowMetadata
  2633  				}
  2634  				if iNdEx >= l {
  2635  					return io.ErrUnexpectedEOF
  2636  				}
  2637  				b := dAtA[iNdEx]
  2638  				iNdEx++
  2639  				m.Capacity |= (int64(b) & 0x7F) << shift
  2640  				if b < 0x80 {
  2641  					break
  2642  				}
  2643  			}
  2644  		case 2:
  2645  			if wireType != 0 {
  2646  				return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType)
  2647  			}
  2648  			m.Available = 0
  2649  			for shift := uint(0); ; shift += 7 {
  2650  				if shift >= 64 {
  2651  					return ErrIntOverflowMetadata
  2652  				}
  2653  				if iNdEx >= l {
  2654  					return io.ErrUnexpectedEOF
  2655  				}
  2656  				b := dAtA[iNdEx]
  2657  				iNdEx++
  2658  				m.Available |= (int64(b) & 0x7F) << shift
  2659  				if b < 0x80 {
  2660  					break
  2661  				}
  2662  			}
  2663  		case 3:
  2664  			if wireType != 0 {
  2665  				return fmt.Errorf("proto: wrong wireType = %d for field RangeCount", wireType)
  2666  			}
  2667  			m.RangeCount = 0
  2668  			for shift := uint(0); ; shift += 7 {
  2669  				if shift >= 64 {
  2670  					return ErrIntOverflowMetadata
  2671  				}
  2672  				if iNdEx >= l {
  2673  					return io.ErrUnexpectedEOF
  2674  				}
  2675  				b := dAtA[iNdEx]
  2676  				iNdEx++
  2677  				m.RangeCount |= (int32(b) & 0x7F) << shift
  2678  				if b < 0x80 {
  2679  					break
  2680  				}
  2681  			}
  2682  		case 4:
  2683  			if wireType != 0 {
  2684  				return fmt.Errorf("proto: wrong wireType = %d for field LeaseCount", wireType)
  2685  			}
  2686  			m.LeaseCount = 0
  2687  			for shift := uint(0); ; shift += 7 {
  2688  				if shift >= 64 {
  2689  					return ErrIntOverflowMetadata
  2690  				}
  2691  				if iNdEx >= l {
  2692  					return io.ErrUnexpectedEOF
  2693  				}
  2694  				b := dAtA[iNdEx]
  2695  				iNdEx++
  2696  				m.LeaseCount |= (int32(b) & 0x7F) << shift
  2697  				if b < 0x80 {
  2698  					break
  2699  				}
  2700  			}
  2701  		case 5:
  2702  			if wireType != 1 {
  2703  				return fmt.Errorf("proto: wrong wireType = %d for field WritesPerSecond", wireType)
  2704  			}
  2705  			var v uint64
  2706  			if (iNdEx + 8) > l {
  2707  				return io.ErrUnexpectedEOF
  2708  			}
  2709  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2710  			iNdEx += 8
  2711  			m.WritesPerSecond = float64(math.Float64frombits(v))
  2712  		case 6:
  2713  			if wireType != 2 {
  2714  				return fmt.Errorf("proto: wrong wireType = %d for field BytesPerReplica", wireType)
  2715  			}
  2716  			var msglen int
  2717  			for shift := uint(0); ; shift += 7 {
  2718  				if shift >= 64 {
  2719  					return ErrIntOverflowMetadata
  2720  				}
  2721  				if iNdEx >= l {
  2722  					return io.ErrUnexpectedEOF
  2723  				}
  2724  				b := dAtA[iNdEx]
  2725  				iNdEx++
  2726  				msglen |= (int(b) & 0x7F) << shift
  2727  				if b < 0x80 {
  2728  					break
  2729  				}
  2730  			}
  2731  			if msglen < 0 {
  2732  				return ErrInvalidLengthMetadata
  2733  			}
  2734  			postIndex := iNdEx + msglen
  2735  			if postIndex > l {
  2736  				return io.ErrUnexpectedEOF
  2737  			}
  2738  			if err := m.BytesPerReplica.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2739  				return err
  2740  			}
  2741  			iNdEx = postIndex
  2742  		case 7:
  2743  			if wireType != 2 {
  2744  				return fmt.Errorf("proto: wrong wireType = %d for field WritesPerReplica", wireType)
  2745  			}
  2746  			var msglen int
  2747  			for shift := uint(0); ; shift += 7 {
  2748  				if shift >= 64 {
  2749  					return ErrIntOverflowMetadata
  2750  				}
  2751  				if iNdEx >= l {
  2752  					return io.ErrUnexpectedEOF
  2753  				}
  2754  				b := dAtA[iNdEx]
  2755  				iNdEx++
  2756  				msglen |= (int(b) & 0x7F) << shift
  2757  				if b < 0x80 {
  2758  					break
  2759  				}
  2760  			}
  2761  			if msglen < 0 {
  2762  				return ErrInvalidLengthMetadata
  2763  			}
  2764  			postIndex := iNdEx + msglen
  2765  			if postIndex > l {
  2766  				return io.ErrUnexpectedEOF
  2767  			}
  2768  			if err := m.WritesPerReplica.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2769  				return err
  2770  			}
  2771  			iNdEx = postIndex
  2772  		case 8:
  2773  			if wireType != 0 {
  2774  				return fmt.Errorf("proto: wrong wireType = %d for field Used", wireType)
  2775  			}
  2776  			m.Used = 0
  2777  			for shift := uint(0); ; shift += 7 {
  2778  				if shift >= 64 {
  2779  					return ErrIntOverflowMetadata
  2780  				}
  2781  				if iNdEx >= l {
  2782  					return io.ErrUnexpectedEOF
  2783  				}
  2784  				b := dAtA[iNdEx]
  2785  				iNdEx++
  2786  				m.Used |= (int64(b) & 0x7F) << shift
  2787  				if b < 0x80 {
  2788  					break
  2789  				}
  2790  			}
  2791  		case 9:
  2792  			if wireType != 0 {
  2793  				return fmt.Errorf("proto: wrong wireType = %d for field LogicalBytes", wireType)
  2794  			}
  2795  			m.LogicalBytes = 0
  2796  			for shift := uint(0); ; shift += 7 {
  2797  				if shift >= 64 {
  2798  					return ErrIntOverflowMetadata
  2799  				}
  2800  				if iNdEx >= l {
  2801  					return io.ErrUnexpectedEOF
  2802  				}
  2803  				b := dAtA[iNdEx]
  2804  				iNdEx++
  2805  				m.LogicalBytes |= (int64(b) & 0x7F) << shift
  2806  				if b < 0x80 {
  2807  					break
  2808  				}
  2809  			}
  2810  		case 10:
  2811  			if wireType != 1 {
  2812  				return fmt.Errorf("proto: wrong wireType = %d for field QueriesPerSecond", wireType)
  2813  			}
  2814  			var v uint64
  2815  			if (iNdEx + 8) > l {
  2816  				return io.ErrUnexpectedEOF
  2817  			}
  2818  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  2819  			iNdEx += 8
  2820  			m.QueriesPerSecond = float64(math.Float64frombits(v))
  2821  		default:
  2822  			iNdEx = preIndex
  2823  			skippy, err := skipMetadata(dAtA[iNdEx:])
  2824  			if err != nil {
  2825  				return err
  2826  			}
  2827  			if skippy < 0 {
  2828  				return ErrInvalidLengthMetadata
  2829  			}
  2830  			if (iNdEx + skippy) > l {
  2831  				return io.ErrUnexpectedEOF
  2832  			}
  2833  			iNdEx += skippy
  2834  		}
  2835  	}
  2836  
  2837  	if iNdEx > l {
  2838  		return io.ErrUnexpectedEOF
  2839  	}
  2840  	return nil
  2841  }
  2842  func (m *NodeDescriptor) Unmarshal(dAtA []byte) error {
  2843  	l := len(dAtA)
  2844  	iNdEx := 0
  2845  	for iNdEx < l {
  2846  		preIndex := iNdEx
  2847  		var wire uint64
  2848  		for shift := uint(0); ; shift += 7 {
  2849  			if shift >= 64 {
  2850  				return ErrIntOverflowMetadata
  2851  			}
  2852  			if iNdEx >= l {
  2853  				return io.ErrUnexpectedEOF
  2854  			}
  2855  			b := dAtA[iNdEx]
  2856  			iNdEx++
  2857  			wire |= (uint64(b) & 0x7F) << shift
  2858  			if b < 0x80 {
  2859  				break
  2860  			}
  2861  		}
  2862  		fieldNum := int32(wire >> 3)
  2863  		wireType := int(wire & 0x7)
  2864  		if wireType == 4 {
  2865  			return fmt.Errorf("proto: NodeDescriptor: wiretype end group for non-group")
  2866  		}
  2867  		if fieldNum <= 0 {
  2868  			return fmt.Errorf("proto: NodeDescriptor: illegal tag %d (wire type %d)", fieldNum, wire)
  2869  		}
  2870  		switch fieldNum {
  2871  		case 1:
  2872  			if wireType != 0 {
  2873  				return fmt.Errorf("proto: wrong wireType = %d for field NodeID", wireType)
  2874  			}
  2875  			m.NodeID = 0
  2876  			for shift := uint(0); ; shift += 7 {
  2877  				if shift >= 64 {
  2878  					return ErrIntOverflowMetadata
  2879  				}
  2880  				if iNdEx >= l {
  2881  					return io.ErrUnexpectedEOF
  2882  				}
  2883  				b := dAtA[iNdEx]
  2884  				iNdEx++
  2885  				m.NodeID |= (NodeID(b) & 0x7F) << shift
  2886  				if b < 0x80 {
  2887  					break
  2888  				}
  2889  			}
  2890  		case 2:
  2891  			if wireType != 2 {
  2892  				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  2893  			}
  2894  			var msglen int
  2895  			for shift := uint(0); ; shift += 7 {
  2896  				if shift >= 64 {
  2897  					return ErrIntOverflowMetadata
  2898  				}
  2899  				if iNdEx >= l {
  2900  					return io.ErrUnexpectedEOF
  2901  				}
  2902  				b := dAtA[iNdEx]
  2903  				iNdEx++
  2904  				msglen |= (int(b) & 0x7F) << shift
  2905  				if b < 0x80 {
  2906  					break
  2907  				}
  2908  			}
  2909  			if msglen < 0 {
  2910  				return ErrInvalidLengthMetadata
  2911  			}
  2912  			postIndex := iNdEx + msglen
  2913  			if postIndex > l {
  2914  				return io.ErrUnexpectedEOF
  2915  			}
  2916  			if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2917  				return err
  2918  			}
  2919  			iNdEx = postIndex
  2920  		case 3:
  2921  			if wireType != 2 {
  2922  				return fmt.Errorf("proto: wrong wireType = %d for field Attrs", wireType)
  2923  			}
  2924  			var msglen int
  2925  			for shift := uint(0); ; shift += 7 {
  2926  				if shift >= 64 {
  2927  					return ErrIntOverflowMetadata
  2928  				}
  2929  				if iNdEx >= l {
  2930  					return io.ErrUnexpectedEOF
  2931  				}
  2932  				b := dAtA[iNdEx]
  2933  				iNdEx++
  2934  				msglen |= (int(b) & 0x7F) << shift
  2935  				if b < 0x80 {
  2936  					break
  2937  				}
  2938  			}
  2939  			if msglen < 0 {
  2940  				return ErrInvalidLengthMetadata
  2941  			}
  2942  			postIndex := iNdEx + msglen
  2943  			if postIndex > l {
  2944  				return io.ErrUnexpectedEOF
  2945  			}
  2946  			if err := m.Attrs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2947  				return err
  2948  			}
  2949  			iNdEx = postIndex
  2950  		case 4:
  2951  			if wireType != 2 {
  2952  				return fmt.Errorf("proto: wrong wireType = %d for field Locality", wireType)
  2953  			}
  2954  			var msglen int
  2955  			for shift := uint(0); ; shift += 7 {
  2956  				if shift >= 64 {
  2957  					return ErrIntOverflowMetadata
  2958  				}
  2959  				if iNdEx >= l {
  2960  					return io.ErrUnexpectedEOF
  2961  				}
  2962  				b := dAtA[iNdEx]
  2963  				iNdEx++
  2964  				msglen |= (int(b) & 0x7F) << shift
  2965  				if b < 0x80 {
  2966  					break
  2967  				}
  2968  			}
  2969  			if msglen < 0 {
  2970  				return ErrInvalidLengthMetadata
  2971  			}
  2972  			postIndex := iNdEx + msglen
  2973  			if postIndex > l {
  2974  				return io.ErrUnexpectedEOF
  2975  			}
  2976  			if err := m.Locality.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2977  				return err
  2978  			}
  2979  			iNdEx = postIndex
  2980  		case 5:
  2981  			if wireType != 2 {
  2982  				return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
  2983  			}
  2984  			var msglen int
  2985  			for shift := uint(0); ; shift += 7 {
  2986  				if shift >= 64 {
  2987  					return ErrIntOverflowMetadata
  2988  				}
  2989  				if iNdEx >= l {
  2990  					return io.ErrUnexpectedEOF
  2991  				}
  2992  				b := dAtA[iNdEx]
  2993  				iNdEx++
  2994  				msglen |= (int(b) & 0x7F) << shift
  2995  				if b < 0x80 {
  2996  					break
  2997  				}
  2998  			}
  2999  			if msglen < 0 {
  3000  				return ErrInvalidLengthMetadata
  3001  			}
  3002  			postIndex := iNdEx + msglen
  3003  			if postIndex > l {
  3004  				return io.ErrUnexpectedEOF
  3005  			}
  3006  			if err := m.ServerVersion.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3007  				return err
  3008  			}
  3009  			iNdEx = postIndex
  3010  		case 6:
  3011  			if wireType != 2 {
  3012  				return fmt.Errorf("proto: wrong wireType = %d for field BuildTag", wireType)
  3013  			}
  3014  			var stringLen uint64
  3015  			for shift := uint(0); ; shift += 7 {
  3016  				if shift >= 64 {
  3017  					return ErrIntOverflowMetadata
  3018  				}
  3019  				if iNdEx >= l {
  3020  					return io.ErrUnexpectedEOF
  3021  				}
  3022  				b := dAtA[iNdEx]
  3023  				iNdEx++
  3024  				stringLen |= (uint64(b) & 0x7F) << shift
  3025  				if b < 0x80 {
  3026  					break
  3027  				}
  3028  			}
  3029  			intStringLen := int(stringLen)
  3030  			if intStringLen < 0 {
  3031  				return ErrInvalidLengthMetadata
  3032  			}
  3033  			postIndex := iNdEx + intStringLen
  3034  			if postIndex > l {
  3035  				return io.ErrUnexpectedEOF
  3036  			}
  3037  			m.BuildTag = string(dAtA[iNdEx:postIndex])
  3038  			iNdEx = postIndex
  3039  		case 7:
  3040  			if wireType != 0 {
  3041  				return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType)
  3042  			}
  3043  			m.StartedAt = 0
  3044  			for shift := uint(0); ; shift += 7 {
  3045  				if shift >= 64 {
  3046  					return ErrIntOverflowMetadata
  3047  				}
  3048  				if iNdEx >= l {
  3049  					return io.ErrUnexpectedEOF
  3050  				}
  3051  				b := dAtA[iNdEx]
  3052  				iNdEx++
  3053  				m.StartedAt |= (int64(b) & 0x7F) << shift
  3054  				if b < 0x80 {
  3055  					break
  3056  				}
  3057  			}
  3058  		case 8:
  3059  			if wireType != 2 {
  3060  				return fmt.Errorf("proto: wrong wireType = %d for field LocalityAddress", wireType)
  3061  			}
  3062  			var msglen int
  3063  			for shift := uint(0); ; shift += 7 {
  3064  				if shift >= 64 {
  3065  					return ErrIntOverflowMetadata
  3066  				}
  3067  				if iNdEx >= l {
  3068  					return io.ErrUnexpectedEOF
  3069  				}
  3070  				b := dAtA[iNdEx]
  3071  				iNdEx++
  3072  				msglen |= (int(b) & 0x7F) << shift
  3073  				if b < 0x80 {
  3074  					break
  3075  				}
  3076  			}
  3077  			if msglen < 0 {
  3078  				return ErrInvalidLengthMetadata
  3079  			}
  3080  			postIndex := iNdEx + msglen
  3081  			if postIndex > l {
  3082  				return io.ErrUnexpectedEOF
  3083  			}
  3084  			m.LocalityAddress = append(m.LocalityAddress, LocalityAddress{})
  3085  			if err := m.LocalityAddress[len(m.LocalityAddress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3086  				return err
  3087  			}
  3088  			iNdEx = postIndex
  3089  		case 9:
  3090  			if wireType != 2 {
  3091  				return fmt.Errorf("proto: wrong wireType = %d for field ClusterName", wireType)
  3092  			}
  3093  			var stringLen uint64
  3094  			for shift := uint(0); ; shift += 7 {
  3095  				if shift >= 64 {
  3096  					return ErrIntOverflowMetadata
  3097  				}
  3098  				if iNdEx >= l {
  3099  					return io.ErrUnexpectedEOF
  3100  				}
  3101  				b := dAtA[iNdEx]
  3102  				iNdEx++
  3103  				stringLen |= (uint64(b) & 0x7F) << shift
  3104  				if b < 0x80 {
  3105  					break
  3106  				}
  3107  			}
  3108  			intStringLen := int(stringLen)
  3109  			if intStringLen < 0 {
  3110  				return ErrInvalidLengthMetadata
  3111  			}
  3112  			postIndex := iNdEx + intStringLen
  3113  			if postIndex > l {
  3114  				return io.ErrUnexpectedEOF
  3115  			}
  3116  			m.ClusterName = string(dAtA[iNdEx:postIndex])
  3117  			iNdEx = postIndex
  3118  		case 10:
  3119  			if wireType != 2 {
  3120  				return fmt.Errorf("proto: wrong wireType = %d for field SQLAddress", wireType)
  3121  			}
  3122  			var msglen int
  3123  			for shift := uint(0); ; shift += 7 {
  3124  				if shift >= 64 {
  3125  					return ErrIntOverflowMetadata
  3126  				}
  3127  				if iNdEx >= l {
  3128  					return io.ErrUnexpectedEOF
  3129  				}
  3130  				b := dAtA[iNdEx]
  3131  				iNdEx++
  3132  				msglen |= (int(b) & 0x7F) << shift
  3133  				if b < 0x80 {
  3134  					break
  3135  				}
  3136  			}
  3137  			if msglen < 0 {
  3138  				return ErrInvalidLengthMetadata
  3139  			}
  3140  			postIndex := iNdEx + msglen
  3141  			if postIndex > l {
  3142  				return io.ErrUnexpectedEOF
  3143  			}
  3144  			if err := m.SQLAddress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3145  				return err
  3146  			}
  3147  			iNdEx = postIndex
  3148  		default:
  3149  			iNdEx = preIndex
  3150  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3151  			if err != nil {
  3152  				return err
  3153  			}
  3154  			if skippy < 0 {
  3155  				return ErrInvalidLengthMetadata
  3156  			}
  3157  			if (iNdEx + skippy) > l {
  3158  				return io.ErrUnexpectedEOF
  3159  			}
  3160  			iNdEx += skippy
  3161  		}
  3162  	}
  3163  
  3164  	if iNdEx > l {
  3165  		return io.ErrUnexpectedEOF
  3166  	}
  3167  	return nil
  3168  }
  3169  func (m *LocalityAddress) Unmarshal(dAtA []byte) error {
  3170  	l := len(dAtA)
  3171  	iNdEx := 0
  3172  	for iNdEx < l {
  3173  		preIndex := iNdEx
  3174  		var wire uint64
  3175  		for shift := uint(0); ; shift += 7 {
  3176  			if shift >= 64 {
  3177  				return ErrIntOverflowMetadata
  3178  			}
  3179  			if iNdEx >= l {
  3180  				return io.ErrUnexpectedEOF
  3181  			}
  3182  			b := dAtA[iNdEx]
  3183  			iNdEx++
  3184  			wire |= (uint64(b) & 0x7F) << shift
  3185  			if b < 0x80 {
  3186  				break
  3187  			}
  3188  		}
  3189  		fieldNum := int32(wire >> 3)
  3190  		wireType := int(wire & 0x7)
  3191  		if wireType == 4 {
  3192  			return fmt.Errorf("proto: LocalityAddress: wiretype end group for non-group")
  3193  		}
  3194  		if fieldNum <= 0 {
  3195  			return fmt.Errorf("proto: LocalityAddress: illegal tag %d (wire type %d)", fieldNum, wire)
  3196  		}
  3197  		switch fieldNum {
  3198  		case 1:
  3199  			if wireType != 2 {
  3200  				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  3201  			}
  3202  			var msglen int
  3203  			for shift := uint(0); ; shift += 7 {
  3204  				if shift >= 64 {
  3205  					return ErrIntOverflowMetadata
  3206  				}
  3207  				if iNdEx >= l {
  3208  					return io.ErrUnexpectedEOF
  3209  				}
  3210  				b := dAtA[iNdEx]
  3211  				iNdEx++
  3212  				msglen |= (int(b) & 0x7F) << shift
  3213  				if b < 0x80 {
  3214  					break
  3215  				}
  3216  			}
  3217  			if msglen < 0 {
  3218  				return ErrInvalidLengthMetadata
  3219  			}
  3220  			postIndex := iNdEx + msglen
  3221  			if postIndex > l {
  3222  				return io.ErrUnexpectedEOF
  3223  			}
  3224  			if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3225  				return err
  3226  			}
  3227  			iNdEx = postIndex
  3228  		case 2:
  3229  			if wireType != 2 {
  3230  				return fmt.Errorf("proto: wrong wireType = %d for field LocalityTier", wireType)
  3231  			}
  3232  			var msglen int
  3233  			for shift := uint(0); ; shift += 7 {
  3234  				if shift >= 64 {
  3235  					return ErrIntOverflowMetadata
  3236  				}
  3237  				if iNdEx >= l {
  3238  					return io.ErrUnexpectedEOF
  3239  				}
  3240  				b := dAtA[iNdEx]
  3241  				iNdEx++
  3242  				msglen |= (int(b) & 0x7F) << shift
  3243  				if b < 0x80 {
  3244  					break
  3245  				}
  3246  			}
  3247  			if msglen < 0 {
  3248  				return ErrInvalidLengthMetadata
  3249  			}
  3250  			postIndex := iNdEx + msglen
  3251  			if postIndex > l {
  3252  				return io.ErrUnexpectedEOF
  3253  			}
  3254  			if err := m.LocalityTier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3255  				return err
  3256  			}
  3257  			iNdEx = postIndex
  3258  		default:
  3259  			iNdEx = preIndex
  3260  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3261  			if err != nil {
  3262  				return err
  3263  			}
  3264  			if skippy < 0 {
  3265  				return ErrInvalidLengthMetadata
  3266  			}
  3267  			if (iNdEx + skippy) > l {
  3268  				return io.ErrUnexpectedEOF
  3269  			}
  3270  			iNdEx += skippy
  3271  		}
  3272  	}
  3273  
  3274  	if iNdEx > l {
  3275  		return io.ErrUnexpectedEOF
  3276  	}
  3277  	return nil
  3278  }
  3279  func (m *StoreDescriptor) Unmarshal(dAtA []byte) error {
  3280  	l := len(dAtA)
  3281  	iNdEx := 0
  3282  	for iNdEx < l {
  3283  		preIndex := iNdEx
  3284  		var wire uint64
  3285  		for shift := uint(0); ; shift += 7 {
  3286  			if shift >= 64 {
  3287  				return ErrIntOverflowMetadata
  3288  			}
  3289  			if iNdEx >= l {
  3290  				return io.ErrUnexpectedEOF
  3291  			}
  3292  			b := dAtA[iNdEx]
  3293  			iNdEx++
  3294  			wire |= (uint64(b) & 0x7F) << shift
  3295  			if b < 0x80 {
  3296  				break
  3297  			}
  3298  		}
  3299  		fieldNum := int32(wire >> 3)
  3300  		wireType := int(wire & 0x7)
  3301  		if wireType == 4 {
  3302  			return fmt.Errorf("proto: StoreDescriptor: wiretype end group for non-group")
  3303  		}
  3304  		if fieldNum <= 0 {
  3305  			return fmt.Errorf("proto: StoreDescriptor: illegal tag %d (wire type %d)", fieldNum, wire)
  3306  		}
  3307  		switch fieldNum {
  3308  		case 1:
  3309  			if wireType != 0 {
  3310  				return fmt.Errorf("proto: wrong wireType = %d for field StoreID", wireType)
  3311  			}
  3312  			m.StoreID = 0
  3313  			for shift := uint(0); ; shift += 7 {
  3314  				if shift >= 64 {
  3315  					return ErrIntOverflowMetadata
  3316  				}
  3317  				if iNdEx >= l {
  3318  					return io.ErrUnexpectedEOF
  3319  				}
  3320  				b := dAtA[iNdEx]
  3321  				iNdEx++
  3322  				m.StoreID |= (StoreID(b) & 0x7F) << shift
  3323  				if b < 0x80 {
  3324  					break
  3325  				}
  3326  			}
  3327  		case 2:
  3328  			if wireType != 2 {
  3329  				return fmt.Errorf("proto: wrong wireType = %d for field Attrs", wireType)
  3330  			}
  3331  			var msglen int
  3332  			for shift := uint(0); ; shift += 7 {
  3333  				if shift >= 64 {
  3334  					return ErrIntOverflowMetadata
  3335  				}
  3336  				if iNdEx >= l {
  3337  					return io.ErrUnexpectedEOF
  3338  				}
  3339  				b := dAtA[iNdEx]
  3340  				iNdEx++
  3341  				msglen |= (int(b) & 0x7F) << shift
  3342  				if b < 0x80 {
  3343  					break
  3344  				}
  3345  			}
  3346  			if msglen < 0 {
  3347  				return ErrInvalidLengthMetadata
  3348  			}
  3349  			postIndex := iNdEx + msglen
  3350  			if postIndex > l {
  3351  				return io.ErrUnexpectedEOF
  3352  			}
  3353  			if err := m.Attrs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3354  				return err
  3355  			}
  3356  			iNdEx = postIndex
  3357  		case 3:
  3358  			if wireType != 2 {
  3359  				return fmt.Errorf("proto: wrong wireType = %d for field Node", wireType)
  3360  			}
  3361  			var msglen int
  3362  			for shift := uint(0); ; shift += 7 {
  3363  				if shift >= 64 {
  3364  					return ErrIntOverflowMetadata
  3365  				}
  3366  				if iNdEx >= l {
  3367  					return io.ErrUnexpectedEOF
  3368  				}
  3369  				b := dAtA[iNdEx]
  3370  				iNdEx++
  3371  				msglen |= (int(b) & 0x7F) << shift
  3372  				if b < 0x80 {
  3373  					break
  3374  				}
  3375  			}
  3376  			if msglen < 0 {
  3377  				return ErrInvalidLengthMetadata
  3378  			}
  3379  			postIndex := iNdEx + msglen
  3380  			if postIndex > l {
  3381  				return io.ErrUnexpectedEOF
  3382  			}
  3383  			if err := m.Node.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3384  				return err
  3385  			}
  3386  			iNdEx = postIndex
  3387  		case 4:
  3388  			if wireType != 2 {
  3389  				return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType)
  3390  			}
  3391  			var msglen int
  3392  			for shift := uint(0); ; shift += 7 {
  3393  				if shift >= 64 {
  3394  					return ErrIntOverflowMetadata
  3395  				}
  3396  				if iNdEx >= l {
  3397  					return io.ErrUnexpectedEOF
  3398  				}
  3399  				b := dAtA[iNdEx]
  3400  				iNdEx++
  3401  				msglen |= (int(b) & 0x7F) << shift
  3402  				if b < 0x80 {
  3403  					break
  3404  				}
  3405  			}
  3406  			if msglen < 0 {
  3407  				return ErrInvalidLengthMetadata
  3408  			}
  3409  			postIndex := iNdEx + msglen
  3410  			if postIndex > l {
  3411  				return io.ErrUnexpectedEOF
  3412  			}
  3413  			if err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3414  				return err
  3415  			}
  3416  			iNdEx = postIndex
  3417  		default:
  3418  			iNdEx = preIndex
  3419  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3420  			if err != nil {
  3421  				return err
  3422  			}
  3423  			if skippy < 0 {
  3424  				return ErrInvalidLengthMetadata
  3425  			}
  3426  			if (iNdEx + skippy) > l {
  3427  				return io.ErrUnexpectedEOF
  3428  			}
  3429  			iNdEx += skippy
  3430  		}
  3431  	}
  3432  
  3433  	if iNdEx > l {
  3434  		return io.ErrUnexpectedEOF
  3435  	}
  3436  	return nil
  3437  }
  3438  func (m *StoreDeadReplicas) Unmarshal(dAtA []byte) error {
  3439  	l := len(dAtA)
  3440  	iNdEx := 0
  3441  	for iNdEx < l {
  3442  		preIndex := iNdEx
  3443  		var wire uint64
  3444  		for shift := uint(0); ; shift += 7 {
  3445  			if shift >= 64 {
  3446  				return ErrIntOverflowMetadata
  3447  			}
  3448  			if iNdEx >= l {
  3449  				return io.ErrUnexpectedEOF
  3450  			}
  3451  			b := dAtA[iNdEx]
  3452  			iNdEx++
  3453  			wire |= (uint64(b) & 0x7F) << shift
  3454  			if b < 0x80 {
  3455  				break
  3456  			}
  3457  		}
  3458  		fieldNum := int32(wire >> 3)
  3459  		wireType := int(wire & 0x7)
  3460  		if wireType == 4 {
  3461  			return fmt.Errorf("proto: StoreDeadReplicas: wiretype end group for non-group")
  3462  		}
  3463  		if fieldNum <= 0 {
  3464  			return fmt.Errorf("proto: StoreDeadReplicas: illegal tag %d (wire type %d)", fieldNum, wire)
  3465  		}
  3466  		switch fieldNum {
  3467  		case 1:
  3468  			if wireType != 0 {
  3469  				return fmt.Errorf("proto: wrong wireType = %d for field StoreID", wireType)
  3470  			}
  3471  			m.StoreID = 0
  3472  			for shift := uint(0); ; shift += 7 {
  3473  				if shift >= 64 {
  3474  					return ErrIntOverflowMetadata
  3475  				}
  3476  				if iNdEx >= l {
  3477  					return io.ErrUnexpectedEOF
  3478  				}
  3479  				b := dAtA[iNdEx]
  3480  				iNdEx++
  3481  				m.StoreID |= (StoreID(b) & 0x7F) << shift
  3482  				if b < 0x80 {
  3483  					break
  3484  				}
  3485  			}
  3486  		case 2:
  3487  			if wireType != 2 {
  3488  				return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType)
  3489  			}
  3490  			var msglen int
  3491  			for shift := uint(0); ; shift += 7 {
  3492  				if shift >= 64 {
  3493  					return ErrIntOverflowMetadata
  3494  				}
  3495  				if iNdEx >= l {
  3496  					return io.ErrUnexpectedEOF
  3497  				}
  3498  				b := dAtA[iNdEx]
  3499  				iNdEx++
  3500  				msglen |= (int(b) & 0x7F) << shift
  3501  				if b < 0x80 {
  3502  					break
  3503  				}
  3504  			}
  3505  			if msglen < 0 {
  3506  				return ErrInvalidLengthMetadata
  3507  			}
  3508  			postIndex := iNdEx + msglen
  3509  			if postIndex > l {
  3510  				return io.ErrUnexpectedEOF
  3511  			}
  3512  			m.Replicas = append(m.Replicas, ReplicaIdent{})
  3513  			if err := m.Replicas[len(m.Replicas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3514  				return err
  3515  			}
  3516  			iNdEx = postIndex
  3517  		default:
  3518  			iNdEx = preIndex
  3519  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3520  			if err != nil {
  3521  				return err
  3522  			}
  3523  			if skippy < 0 {
  3524  				return ErrInvalidLengthMetadata
  3525  			}
  3526  			if (iNdEx + skippy) > l {
  3527  				return io.ErrUnexpectedEOF
  3528  			}
  3529  			iNdEx += skippy
  3530  		}
  3531  	}
  3532  
  3533  	if iNdEx > l {
  3534  		return io.ErrUnexpectedEOF
  3535  	}
  3536  	return nil
  3537  }
  3538  func (m *Locality) Unmarshal(dAtA []byte) error {
  3539  	l := len(dAtA)
  3540  	iNdEx := 0
  3541  	for iNdEx < l {
  3542  		preIndex := iNdEx
  3543  		var wire uint64
  3544  		for shift := uint(0); ; shift += 7 {
  3545  			if shift >= 64 {
  3546  				return ErrIntOverflowMetadata
  3547  			}
  3548  			if iNdEx >= l {
  3549  				return io.ErrUnexpectedEOF
  3550  			}
  3551  			b := dAtA[iNdEx]
  3552  			iNdEx++
  3553  			wire |= (uint64(b) & 0x7F) << shift
  3554  			if b < 0x80 {
  3555  				break
  3556  			}
  3557  		}
  3558  		fieldNum := int32(wire >> 3)
  3559  		wireType := int(wire & 0x7)
  3560  		if wireType == 4 {
  3561  			return fmt.Errorf("proto: Locality: wiretype end group for non-group")
  3562  		}
  3563  		if fieldNum <= 0 {
  3564  			return fmt.Errorf("proto: Locality: illegal tag %d (wire type %d)", fieldNum, wire)
  3565  		}
  3566  		switch fieldNum {
  3567  		case 1:
  3568  			if wireType != 2 {
  3569  				return fmt.Errorf("proto: wrong wireType = %d for field Tiers", wireType)
  3570  			}
  3571  			var msglen int
  3572  			for shift := uint(0); ; shift += 7 {
  3573  				if shift >= 64 {
  3574  					return ErrIntOverflowMetadata
  3575  				}
  3576  				if iNdEx >= l {
  3577  					return io.ErrUnexpectedEOF
  3578  				}
  3579  				b := dAtA[iNdEx]
  3580  				iNdEx++
  3581  				msglen |= (int(b) & 0x7F) << shift
  3582  				if b < 0x80 {
  3583  					break
  3584  				}
  3585  			}
  3586  			if msglen < 0 {
  3587  				return ErrInvalidLengthMetadata
  3588  			}
  3589  			postIndex := iNdEx + msglen
  3590  			if postIndex > l {
  3591  				return io.ErrUnexpectedEOF
  3592  			}
  3593  			m.Tiers = append(m.Tiers, Tier{})
  3594  			if err := m.Tiers[len(m.Tiers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3595  				return err
  3596  			}
  3597  			iNdEx = postIndex
  3598  		default:
  3599  			iNdEx = preIndex
  3600  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3601  			if err != nil {
  3602  				return err
  3603  			}
  3604  			if skippy < 0 {
  3605  				return ErrInvalidLengthMetadata
  3606  			}
  3607  			if (iNdEx + skippy) > l {
  3608  				return io.ErrUnexpectedEOF
  3609  			}
  3610  			iNdEx += skippy
  3611  		}
  3612  	}
  3613  
  3614  	if iNdEx > l {
  3615  		return io.ErrUnexpectedEOF
  3616  	}
  3617  	return nil
  3618  }
  3619  func (m *Tier) Unmarshal(dAtA []byte) error {
  3620  	l := len(dAtA)
  3621  	iNdEx := 0
  3622  	for iNdEx < l {
  3623  		preIndex := iNdEx
  3624  		var wire uint64
  3625  		for shift := uint(0); ; shift += 7 {
  3626  			if shift >= 64 {
  3627  				return ErrIntOverflowMetadata
  3628  			}
  3629  			if iNdEx >= l {
  3630  				return io.ErrUnexpectedEOF
  3631  			}
  3632  			b := dAtA[iNdEx]
  3633  			iNdEx++
  3634  			wire |= (uint64(b) & 0x7F) << shift
  3635  			if b < 0x80 {
  3636  				break
  3637  			}
  3638  		}
  3639  		fieldNum := int32(wire >> 3)
  3640  		wireType := int(wire & 0x7)
  3641  		if wireType == 4 {
  3642  			return fmt.Errorf("proto: Tier: wiretype end group for non-group")
  3643  		}
  3644  		if fieldNum <= 0 {
  3645  			return fmt.Errorf("proto: Tier: illegal tag %d (wire type %d)", fieldNum, wire)
  3646  		}
  3647  		switch fieldNum {
  3648  		case 1:
  3649  			if wireType != 2 {
  3650  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  3651  			}
  3652  			var stringLen uint64
  3653  			for shift := uint(0); ; shift += 7 {
  3654  				if shift >= 64 {
  3655  					return ErrIntOverflowMetadata
  3656  				}
  3657  				if iNdEx >= l {
  3658  					return io.ErrUnexpectedEOF
  3659  				}
  3660  				b := dAtA[iNdEx]
  3661  				iNdEx++
  3662  				stringLen |= (uint64(b) & 0x7F) << shift
  3663  				if b < 0x80 {
  3664  					break
  3665  				}
  3666  			}
  3667  			intStringLen := int(stringLen)
  3668  			if intStringLen < 0 {
  3669  				return ErrInvalidLengthMetadata
  3670  			}
  3671  			postIndex := iNdEx + intStringLen
  3672  			if postIndex > l {
  3673  				return io.ErrUnexpectedEOF
  3674  			}
  3675  			m.Key = string(dAtA[iNdEx:postIndex])
  3676  			iNdEx = postIndex
  3677  		case 2:
  3678  			if wireType != 2 {
  3679  				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  3680  			}
  3681  			var stringLen uint64
  3682  			for shift := uint(0); ; shift += 7 {
  3683  				if shift >= 64 {
  3684  					return ErrIntOverflowMetadata
  3685  				}
  3686  				if iNdEx >= l {
  3687  					return io.ErrUnexpectedEOF
  3688  				}
  3689  				b := dAtA[iNdEx]
  3690  				iNdEx++
  3691  				stringLen |= (uint64(b) & 0x7F) << shift
  3692  				if b < 0x80 {
  3693  					break
  3694  				}
  3695  			}
  3696  			intStringLen := int(stringLen)
  3697  			if intStringLen < 0 {
  3698  				return ErrInvalidLengthMetadata
  3699  			}
  3700  			postIndex := iNdEx + intStringLen
  3701  			if postIndex > l {
  3702  				return io.ErrUnexpectedEOF
  3703  			}
  3704  			m.Value = string(dAtA[iNdEx:postIndex])
  3705  			iNdEx = postIndex
  3706  		default:
  3707  			iNdEx = preIndex
  3708  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3709  			if err != nil {
  3710  				return err
  3711  			}
  3712  			if skippy < 0 {
  3713  				return ErrInvalidLengthMetadata
  3714  			}
  3715  			if (iNdEx + skippy) > l {
  3716  				return io.ErrUnexpectedEOF
  3717  			}
  3718  			iNdEx += skippy
  3719  		}
  3720  	}
  3721  
  3722  	if iNdEx > l {
  3723  		return io.ErrUnexpectedEOF
  3724  	}
  3725  	return nil
  3726  }
  3727  func (m *Version) Unmarshal(dAtA []byte) error {
  3728  	l := len(dAtA)
  3729  	iNdEx := 0
  3730  	for iNdEx < l {
  3731  		preIndex := iNdEx
  3732  		var wire uint64
  3733  		for shift := uint(0); ; shift += 7 {
  3734  			if shift >= 64 {
  3735  				return ErrIntOverflowMetadata
  3736  			}
  3737  			if iNdEx >= l {
  3738  				return io.ErrUnexpectedEOF
  3739  			}
  3740  			b := dAtA[iNdEx]
  3741  			iNdEx++
  3742  			wire |= (uint64(b) & 0x7F) << shift
  3743  			if b < 0x80 {
  3744  				break
  3745  			}
  3746  		}
  3747  		fieldNum := int32(wire >> 3)
  3748  		wireType := int(wire & 0x7)
  3749  		if wireType == 4 {
  3750  			return fmt.Errorf("proto: Version: wiretype end group for non-group")
  3751  		}
  3752  		if fieldNum <= 0 {
  3753  			return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire)
  3754  		}
  3755  		switch fieldNum {
  3756  		case 1:
  3757  			if wireType != 0 {
  3758  				return fmt.Errorf("proto: wrong wireType = %d for field Major", wireType)
  3759  			}
  3760  			m.Major = 0
  3761  			for shift := uint(0); ; shift += 7 {
  3762  				if shift >= 64 {
  3763  					return ErrIntOverflowMetadata
  3764  				}
  3765  				if iNdEx >= l {
  3766  					return io.ErrUnexpectedEOF
  3767  				}
  3768  				b := dAtA[iNdEx]
  3769  				iNdEx++
  3770  				m.Major |= (int32(b) & 0x7F) << shift
  3771  				if b < 0x80 {
  3772  					break
  3773  				}
  3774  			}
  3775  		case 2:
  3776  			if wireType != 0 {
  3777  				return fmt.Errorf("proto: wrong wireType = %d for field Minor", wireType)
  3778  			}
  3779  			m.Minor = 0
  3780  			for shift := uint(0); ; shift += 7 {
  3781  				if shift >= 64 {
  3782  					return ErrIntOverflowMetadata
  3783  				}
  3784  				if iNdEx >= l {
  3785  					return io.ErrUnexpectedEOF
  3786  				}
  3787  				b := dAtA[iNdEx]
  3788  				iNdEx++
  3789  				m.Minor |= (int32(b) & 0x7F) << shift
  3790  				if b < 0x80 {
  3791  					break
  3792  				}
  3793  			}
  3794  		case 3:
  3795  			if wireType != 0 {
  3796  				return fmt.Errorf("proto: wrong wireType = %d for field Patch", wireType)
  3797  			}
  3798  			m.Patch = 0
  3799  			for shift := uint(0); ; shift += 7 {
  3800  				if shift >= 64 {
  3801  					return ErrIntOverflowMetadata
  3802  				}
  3803  				if iNdEx >= l {
  3804  					return io.ErrUnexpectedEOF
  3805  				}
  3806  				b := dAtA[iNdEx]
  3807  				iNdEx++
  3808  				m.Patch |= (int32(b) & 0x7F) << shift
  3809  				if b < 0x80 {
  3810  					break
  3811  				}
  3812  			}
  3813  		case 4:
  3814  			if wireType != 0 {
  3815  				return fmt.Errorf("proto: wrong wireType = %d for field Unstable", wireType)
  3816  			}
  3817  			m.Unstable = 0
  3818  			for shift := uint(0); ; shift += 7 {
  3819  				if shift >= 64 {
  3820  					return ErrIntOverflowMetadata
  3821  				}
  3822  				if iNdEx >= l {
  3823  					return io.ErrUnexpectedEOF
  3824  				}
  3825  				b := dAtA[iNdEx]
  3826  				iNdEx++
  3827  				m.Unstable |= (int32(b) & 0x7F) << shift
  3828  				if b < 0x80 {
  3829  					break
  3830  				}
  3831  			}
  3832  		default:
  3833  			iNdEx = preIndex
  3834  			skippy, err := skipMetadata(dAtA[iNdEx:])
  3835  			if err != nil {
  3836  				return err
  3837  			}
  3838  			if skippy < 0 {
  3839  				return ErrInvalidLengthMetadata
  3840  			}
  3841  			if (iNdEx + skippy) > l {
  3842  				return io.ErrUnexpectedEOF
  3843  			}
  3844  			iNdEx += skippy
  3845  		}
  3846  	}
  3847  
  3848  	if iNdEx > l {
  3849  		return io.ErrUnexpectedEOF
  3850  	}
  3851  	return nil
  3852  }
  3853  func skipMetadata(dAtA []byte) (n int, err error) {
  3854  	l := len(dAtA)
  3855  	iNdEx := 0
  3856  	for iNdEx < l {
  3857  		var wire uint64
  3858  		for shift := uint(0); ; shift += 7 {
  3859  			if shift >= 64 {
  3860  				return 0, ErrIntOverflowMetadata
  3861  			}
  3862  			if iNdEx >= l {
  3863  				return 0, io.ErrUnexpectedEOF
  3864  			}
  3865  			b := dAtA[iNdEx]
  3866  			iNdEx++
  3867  			wire |= (uint64(b) & 0x7F) << shift
  3868  			if b < 0x80 {
  3869  				break
  3870  			}
  3871  		}
  3872  		wireType := int(wire & 0x7)
  3873  		switch wireType {
  3874  		case 0:
  3875  			for shift := uint(0); ; shift += 7 {
  3876  				if shift >= 64 {
  3877  					return 0, ErrIntOverflowMetadata
  3878  				}
  3879  				if iNdEx >= l {
  3880  					return 0, io.ErrUnexpectedEOF
  3881  				}
  3882  				iNdEx++
  3883  				if dAtA[iNdEx-1] < 0x80 {
  3884  					break
  3885  				}
  3886  			}
  3887  			return iNdEx, nil
  3888  		case 1:
  3889  			iNdEx += 8
  3890  			return iNdEx, nil
  3891  		case 2:
  3892  			var length int
  3893  			for shift := uint(0); ; shift += 7 {
  3894  				if shift >= 64 {
  3895  					return 0, ErrIntOverflowMetadata
  3896  				}
  3897  				if iNdEx >= l {
  3898  					return 0, io.ErrUnexpectedEOF
  3899  				}
  3900  				b := dAtA[iNdEx]
  3901  				iNdEx++
  3902  				length |= (int(b) & 0x7F) << shift
  3903  				if b < 0x80 {
  3904  					break
  3905  				}
  3906  			}
  3907  			iNdEx += length
  3908  			if length < 0 {
  3909  				return 0, ErrInvalidLengthMetadata
  3910  			}
  3911  			return iNdEx, nil
  3912  		case 3:
  3913  			for {
  3914  				var innerWire uint64
  3915  				var start int = iNdEx
  3916  				for shift := uint(0); ; shift += 7 {
  3917  					if shift >= 64 {
  3918  						return 0, ErrIntOverflowMetadata
  3919  					}
  3920  					if iNdEx >= l {
  3921  						return 0, io.ErrUnexpectedEOF
  3922  					}
  3923  					b := dAtA[iNdEx]
  3924  					iNdEx++
  3925  					innerWire |= (uint64(b) & 0x7F) << shift
  3926  					if b < 0x80 {
  3927  						break
  3928  					}
  3929  				}
  3930  				innerWireType := int(innerWire & 0x7)
  3931  				if innerWireType == 4 {
  3932  					break
  3933  				}
  3934  				next, err := skipMetadata(dAtA[start:])
  3935  				if err != nil {
  3936  					return 0, err
  3937  				}
  3938  				iNdEx = start + next
  3939  			}
  3940  			return iNdEx, nil
  3941  		case 4:
  3942  			return iNdEx, nil
  3943  		case 5:
  3944  			iNdEx += 4
  3945  			return iNdEx, nil
  3946  		default:
  3947  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  3948  		}
  3949  	}
  3950  	panic("unreachable")
  3951  }
  3952  
  3953  var (
  3954  	ErrInvalidLengthMetadata = fmt.Errorf("proto: negative length found during unmarshaling")
  3955  	ErrIntOverflowMetadata   = fmt.Errorf("proto: integer overflow")
  3956  )
  3957  
  3958  func init() { proto.RegisterFile("roachpb/metadata.proto", fileDescriptor_metadata_4d08fb4df4010e8b) }
  3959  
  3960  var fileDescriptor_metadata_4d08fb4df4010e8b = []byte{
  3961  	// 1385 bytes of a gzipped FileDescriptorProto
  3962  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0x1b, 0x45,
  3963  	0x14, 0xf6, 0xc6, 0xeb, 0x78, 0xfd, 0x9c, 0x1f, 0xf6, 0x08, 0x8a, 0x65, 0x84, 0x9d, 0x2e, 0xad,
  3964  	0x68, 0x0b, 0x4a, 0xd2, 0xa0, 0xa8, 0x6a, 0xa0, 0x40, 0xdc, 0xa4, 0x95, 0xdb, 0xfc, 0x62, 0xe3,
  3965  	0x16, 0x89, 0xcb, 0x6a, 0xb2, 0x3b, 0x38, 0x4b, 0xd7, 0xbb, 0xee, 0xec, 0x38, 0xad, 0xef, 0x48,
  3966  	0x20, 0x21, 0x24, 0x2e, 0x48, 0x1c, 0x2b, 0xa1, 0x9e, 0xb9, 0xf2, 0x27, 0xf4, 0xd8, 0x63, 0x4f,
  3967  	0x51, 0x49, 0x2f, 0x9c, 0x39, 0xf6, 0x80, 0xd0, 0xcc, 0xce, 0xec, 0xae, 0x53, 0x17, 0xda, 0x20,
  3968  	0x71, 0x9b, 0xfd, 0xde, 0xf7, 0xbd, 0x7d, 0xf3, 0xe6, 0xcd, 0x7b, 0x03, 0xa7, 0x68, 0x88, 0x9d,
  3969  	0xfd, 0xfe, 0xde, 0x42, 0x8f, 0x30, 0xec, 0x62, 0x86, 0xe7, 0xfb, 0x34, 0x64, 0x21, 0xaa, 0x3a,
  3970  	0xa1, 0x73, 0x47, 0xd8, 0xe6, 0x25, 0xa3, 0x5e, 0x1f, 0x30, 0xcf, 0x5f, 0x18, 0x04, 0x94, 0x44,
  3971  	0xa1, 0x7f, 0x40, 0x5c, 0x1b, 0xbb, 0x2e, 0x8d, 0xe9, 0xf5, 0x9a, 0xb0, 0xed, 0xfb, 0xce, 0x02,
  3972  	0xf3, 0x7a, 0x24, 0x62, 0xb8, 0xd7, 0x97, 0x96, 0x37, 0xba, 0x61, 0x37, 0x14, 0xcb, 0x05, 0xbe,
  3973  	0x8a, 0x51, 0xf3, 0x53, 0x80, 0x55, 0xc6, 0xa8, 0xb7, 0x37, 0x60, 0x24, 0x42, 0xef, 0x43, 0x01,
  3974  	0x33, 0x46, 0xa3, 0x9a, 0x36, 0x97, 0x3f, 0x57, 0x6a, 0xbd, 0xf9, 0xe7, 0x61, 0xb3, 0x3a, 0xc4,
  3975  	0x3d, 0x7f, 0xc5, 0x14, 0xf0, 0x07, 0x5f, 0xf9, 0xe1, 0x3d, 0xd3, 0x8a, 0x39, 0x2b, 0xfa, 0xcf,
  3976  	0x0f, 0x9a, 0x39, 0xf3, 0x5b, 0x0d, 0xaa, 0x16, 0xe9, 0xfb, 0x9e, 0x83, 0x99, 0x17, 0x06, 0x1d,
  3977  	0x4c, 0xbb, 0x84, 0xa1, 0x8b, 0x50, 0x0c, 0x42, 0x97, 0xd8, 0x9e, 0x5b, 0xd3, 0xe6, 0xb4, 0x73,
  3978  	0x85, 0x56, 0xed, 0xd1, 0x61, 0x33, 0x77, 0x74, 0xd8, 0x9c, 0xdc, 0x0a, 0x5d, 0xd2, 0x5e, 0x7b,
  3979  	0x9e, 0xac, 0xac, 0x49, 0x4e, 0x6c, 0xbb, 0x68, 0x19, 0x8c, 0x88, 0x85, 0x54, 0x68, 0x26, 0x84,
  3980  	0xa6, 0x2e, 0x35, 0xc5, 0x5d, 0x8e, 0x0b, 0x91, 0x5a, 0x5a, 0x45, 0xc1, 0x6d, 0xbb, 0x2b, 0x06,
  3981  	0x8f, 0xe2, 0x8f, 0x07, 0x4d, 0xcd, 0xfc, 0x2b, 0x8d, 0x64, 0x8d, 0x44, 0x0e, 0xf5, 0xfa, 0x2c,
  3982  	0xa4, 0xff, 0x5f, 0x24, 0xe8, 0x0a, 0x00, 0x8d, 0x7f, 0xcf, 0x85, 0x79, 0x21, 0x6c, 0x48, 0x61,
  3983  	0x49, 0x06, 0x26, 0xa4, 0xe9, 0x87, 0x55, 0x92, 0x8a, 0xb6, 0x8b, 0x96, 0x40, 0x67, 0xc3, 0x3e,
  3984  	0xa9, 0xe9, 0x73, 0xda, 0xb9, 0x99, 0xa5, 0xc6, 0xfc, 0x0b, 0xe7, 0x3e, 0x2f, 0x65, 0x9d, 0x61,
  3985  	0x9f, 0x58, 0x82, 0xbb, 0x32, 0xc5, 0x37, 0xff, 0xdb, 0x83, 0xa6, 0x26, 0x12, 0xf0, 0xbd, 0x06,
  3986  	0x53, 0xca, 0xb5, 0x4b, 0x02, 0xc6, 0x37, 0x42, 0x71, 0xd0, 0x4d, 0x36, 0x9f, 0x4f, 0x37, 0x62,
  3987  	0x71, 0x3c, 0xde, 0x88, 0x5c, 0x5a, 0x45, 0xc1, 0x6d, 0xbb, 0x68, 0x0d, 0x8a, 0x32, 0x2c, 0xb1,
  3988  	0xfd, 0xf2, 0xd2, 0x99, 0x97, 0x07, 0x93, 0x66, 0xba, 0xa5, 0x73, 0xdf, 0x96, 0x92, 0x9a, 0xbf,
  3989  	0xe6, 0x61, 0x56, 0xb8, 0xce, 0x1c, 0xc6, 0x09, 0x03, 0x3a, 0x0b, 0xa5, 0x88, 0x61, 0xca, 0xec,
  3990  	0x3b, 0x64, 0x28, 0x42, 0x9a, 0x6a, 0x19, 0xcf, 0x0f, 0x9b, 0xba, 0x75, 0x93, 0x0c, 0x2d, 0x43,
  3991  	0x98, 0x6e, 0x92, 0x21, 0x3a, 0x0d, 0x45, 0x12, 0xb8, 0x82, 0x94, 0x3f, 0x46, 0x9a, 0x24, 0x81,
  3992  	0xcb, 0x29, 0x5f, 0x40, 0xd5, 0x0b, 0x18, 0xa1, 0x01, 0xf6, 0x6d, 0x19, 0x68, 0x54, 0xd3, 0xe7,
  3993  	0xf2, 0xaf, 0xb9, 0xc9, 0x8a, 0x72, 0x22, 0x09, 0x11, 0xba, 0x01, 0xb3, 0x01, 0xb9, 0xcf, 0xec,
  3994  	0x4c, 0x05, 0x14, 0x44, 0x05, 0x98, 0x72, 0x83, 0xd3, 0x5b, 0xe4, 0x3e, 0x7b, 0x49, 0x15, 0x4c,
  3995  	0x07, 0x19, 0x9b, 0x8b, 0xce, 0x00, 0x74, 0x49, 0x40, 0xa8, 0xb8, 0x50, 0xb5, 0x49, 0x91, 0xa7,
  3996  	0xf8, 0xbf, 0x19, 0x1c, 0x7d, 0x0c, 0x10, 0x31, 0xcf, 0xb9, 0x33, 0xb4, 0xf7, 0x3c, 0x56, 0x2b,
  3997  	0x8a, 0x83, 0x7a, 0x27, 0xb3, 0x07, 0xde, 0x08, 0xe6, 0xf7, 0x7d, 0x67, 0xbe, 0xa3, 0x1a, 0x81,
  3998  	0x55, 0x8a, 0x05, 0x2d, 0x8f, 0x8d, 0x56, 0xce, 0x0d, 0xdd, 0x30, 0x2a, 0x25, 0xf3, 0xa1, 0x06,
  3999  	0xe5, 0x1d, 0x42, 0x1d, 0x12, 0x30, 0xcf, 0x27, 0x11, 0x3a, 0x05, 0xf9, 0xfe, 0xc5, 0x45, 0x71,
  4000  	0x50, 0x9a, 0x0c, 0x80, 0x03, 0x02, 0x5f, 0x5a, 0x16, 0x07, 0x91, 0xe2, 0x4b, 0xcb, 0x02, 0x5f,
  4001  	0x5e, 0x14, 0xb9, 0x4f, 0xf1, 0xe5, 0x98, 0x7f, 0x69, 0x59, 0x14, 0x76, 0x8a, 0x5f, 0x8a, 0xf9,
  4002  	0x97, 0x17, 0x45, 0x9e, 0x52, 0xfc, 0xf2, 0x22, 0xaa, 0x81, 0xde, 0xdf, 0xc4, 0xf7, 0xc5, 0xce,
  4003  	0x95, 0x41, 0x20, 0xb2, 0xe5, 0x3c, 0xcf, 0xc3, 0xb4, 0xb8, 0x7d, 0x57, 0x71, 0x1f, 0x3b, 0x1e,
  4004  	0x1b, 0xa2, 0x39, 0x30, 0x1c, 0xb9, 0x96, 0x75, 0x15, 0xab, 0x12, 0x14, 0x99, 0x50, 0xc2, 0x07,
  4005  	0xd8, 0xf3, 0xf1, 0x9e, 0x4f, 0x44, 0xe4, 0x8a, 0x92, 0xc2, 0xe8, 0x2c, 0x94, 0xe3, 0xea, 0x74,
  4006  	0xc2, 0x41, 0xc0, 0xe4, 0x0d, 0x96, 0x89, 0x17, 0x86, 0xab, 0x1c, 0xe7, 0x34, 0x9f, 0xe0, 0x48,
  4007  	0xd1, 0xf4, 0x2c, 0x4d, 0x18, 0x62, 0xda, 0x22, 0x54, 0xef, 0x51, 0x8f, 0x91, 0xc8, 0xee, 0x13,
  4008  	0x6a, 0x47, 0xc4, 0x09, 0x03, 0x77, 0x64, 0xaf, 0xb3, 0xb1, 0x79, 0x87, 0xd0, 0x5d, 0x61, 0x44,
  4009  	0x3b, 0x50, 0xdd, 0x1b, 0x2a, 0x81, 0xba, 0x81, 0x93, 0xe2, 0x60, 0xc7, 0xb5, 0x83, 0xcc, 0x51,
  4010  	0x29, 0x8f, 0x42, 0xbe, 0x43, 0xa8, 0xac, 0x25, 0x64, 0x01, 0xca, 0xc4, 0xa0, 0x5c, 0x16, 0x5f,
  4011  	0xc3, 0x65, 0x25, 0x09, 0x52, 0xf9, 0xac, 0x81, 0x3e, 0x88, 0x88, 0x5b, 0x33, 0x32, 0x49, 0x14,
  4012  	0x08, 0x3a, 0x0f, 0xd3, 0x7e, 0xd8, 0xf5, 0x1c, 0xec, 0xdb, 0x22, 0x90, 0x5a, 0x29, 0x43, 0x99,
  4013  	0x92, 0xa6, 0x16, 0xb7, 0xa0, 0x25, 0x40, 0x77, 0x07, 0x84, 0x7a, 0xa3, 0xd9, 0x81, 0x4c, 0x76,
  4014  	0x2a, 0xd2, 0x9e, 0xa4, 0x47, 0x1e, 0xfe, 0x53, 0x1d, 0x66, 0x78, 0xbf, 0xfe, 0x6f, 0x2d, 0xfe,
  4015  	0x13, 0x28, 0xf2, 0xa1, 0x49, 0xa2, 0x48, 0xb6, 0xb8, 0xc6, 0xf1, 0x9b, 0x73, 0x2b, 0x19, 0xaf,
  4016  	0xab, 0xae, 0x9b, 0x34, 0x37, 0x29, 0x42, 0x97, 0xd5, 0xa0, 0xcc, 0xbf, 0x70, 0xef, 0x54, 0x2e,
  4017  	0xd3, 0xb1, 0x2a, 0xc5, 0xb1, 0x02, 0x5d, 0x01, 0xc3, 0x0f, 0x1d, 0xec, 0xf3, 0x5a, 0xd5, 0x85,
  4018  	0xfa, 0xed, 0x31, 0xea, 0x0d, 0x49, 0x51, 0x85, 0xac, 0x24, 0xe8, 0x1a, 0x4c, 0xef, 0x12, 0x7a,
  4019  	0x40, 0xe8, 0x6d, 0x42, 0x23, 0xde, 0x1f, 0x0a, 0xc2, 0x47, 0x7d, 0x8c, 0x0f, 0xc9, 0x90, 0x2e,
  4020  	0x46, 0x65, 0xe8, 0x34, 0x94, 0xf6, 0x06, 0x9e, 0xef, 0xda, 0x0c, 0x77, 0x45, 0x91, 0x95, 0xd4,
  4021  	0xaf, 0x04, 0xdc, 0xc1, 0x5d, 0xf4, 0x2e, 0xef, 0x30, 0x98, 0x32, 0xfe, 0xc2, 0x88, 0x3b, 0x4c,
  4022  	0x72, 0x69, 0x24, 0xbe, 0xca, 0xd0, 0x2e, 0x54, 0x54, 0x6c, 0xb6, 0x4a, 0xa9, 0x21, 0x1a, 0xaa,
  4023  	0xf9, 0x0f, 0xdb, 0x5a, 0x8d, 0x99, 0xaa, 0x6e, 0xfd, 0x51, 0x18, 0xbd, 0x07, 0x53, 0x8e, 0x3f,
  4024  	0x88, 0x18, 0xa1, 0x76, 0x80, 0x7b, 0x44, 0x14, 0x92, 0x8a, 0xaf, 0x2c, 0x2d, 0x5b, 0xb8, 0x47,
  4025  	0xd0, 0x2e, 0x94, 0xa3, 0xbb, 0x7e, 0xf2, 0x63, 0x78, 0xa5, 0xb3, 0x44, 0xb2, 0x3c, 0x60, 0xf7,
  4026  	0xf3, 0x0d, 0xf9, 0x47, 0x0b, 0xa2, 0xbb, 0xbe, 0x5c, 0x9b, 0x3f, 0x69, 0x30, 0x7b, 0x2c, 0xd0,
  4027  	0x6c, 0xc1, 0x68, 0x27, 0x29, 0x98, 0x16, 0xbf, 0x1b, 0x32, 0x4d, 0xcc, 0x23, 0x54, 0x96, 0xdd,
  4028  	0x5b, 0x63, 0x72, 0xd4, 0xf1, 0x08, 0x4d, 0x2f, 0x4d, 0xac, 0xe1, 0x98, 0xf9, 0xcd, 0x04, 0xcc,
  4029  	0x8a, 0xbe, 0x37, 0x3a, 0x51, 0x93, 0xb7, 0x8a, 0xf6, 0xea, 0x6f, 0x95, 0xa4, 0x7e, 0x27, 0x5e,
  4030  	0xbb, 0x7e, 0x3f, 0x02, 0x9d, 0x5f, 0x22, 0x59, 0xf9, 0xa7, 0xc7, 0x28, 0x47, 0xaf, 0xa7, 0x6a,
  4031  	0x11, 0x5c, 0x84, 0x5a, 0x99, 0x46, 0x1d, 0x17, 0xff, 0xdc, 0x18, 0x07, 0x23, 0xcd, 0xfd, 0x78,
  4032  	0x2b, 0x37, 0x7f, 0xd0, 0xa0, 0x2a, 0xd3, 0x80, 0xdd, 0x64, 0x00, 0x9f, 0x30, 0x11, 0xab, 0x60,
  4033  	0x24, 0xef, 0x80, 0x09, 0x51, 0xb6, 0xcd, 0x97, 0xbf, 0x03, 0xc4, 0xab, 0x4a, 0xc5, 0xa3, 0x64,
  4034  	0xe6, 0x3a, 0x18, 0xaa, 0x5a, 0xd0, 0x87, 0x50, 0xe0, 0xa7, 0x1b, 0x3f, 0xa0, 0xff, 0xf5, 0x78,
  4035  	0x63, 0xae, 0x6c, 0x6c, 0x9f, 0x81, 0xce, 0x4d, 0x7c, 0x2a, 0xf2, 0x17, 0x8c, 0x96, 0x29, 0x79,
  4036  	0x0e, 0xa0, 0x3a, 0x14, 0x0e, 0xb0, 0x3f, 0x88, 0xa7, 0x97, 0xb2, 0xc4, 0x90, 0xf4, 0xf0, 0x50,
  4037  	0x83, 0xa2, 0xba, 0xde, 0x17, 0xa0, 0xd4, 0xc3, 0x5f, 0x87, 0xd4, 0x3e, 0xc0, 0xbe, 0xcc, 0xc7,
  4038  	0xb4, 0xcc, 0x47, 0x61, 0x93, 0x1b, 0x2c, 0x43, 0xd8, 0x6f, 0x63, 0x5f, 0x70, 0xbd, 0x40, 0x72,
  4039  	0x27, 0x8e, 0x71, 0xb9, 0xc1, 0x32, 0x84, 0x9d, 0x73, 0xeb, 0x50, 0xe8, 0x63, 0xe6, 0xec, 0x8f,
  4040  	0x4c, 0xc7, 0x18, 0xe2, 0x53, 0x78, 0x10, 0x44, 0x4c, 0x8c, 0xd8, 0xec, 0x54, 0x4c, 0xd0, 0x38,
  4041  	0xce, 0x0b, 0x3e, 0x94, 0x33, 0x4f, 0x59, 0x34, 0x03, 0x70, 0x7b, 0xbb, 0xb3, 0x6e, 0xd9, 0xd7,
  4042  	0x6e, 0x6d, 0x6c, 0x54, 0x72, 0x08, 0xc1, 0x4c, 0xfc, 0xdd, 0xde, 0xba, 0xba, 0xbd, 0xd9, 0xde,
  4043  	0xba, 0x5e, 0x99, 0x48, 0xb1, 0xed, 0x5b, 0x9d, 0xeb, 0xdb, 0x1c, 0xcb, 0xa7, 0xd8, 0xda, 0xfa,
  4044  	0xe6, 0x76, 0x87, 0x63, 0x3a, 0x2a, 0x43, 0x71, 0x63, 0x7d, 0xd5, 0xda, 0x5a, 0xb7, 0x2a, 0x5a,
  4045  	0x5d, 0xff, 0xee, 0x97, 0x46, 0xae, 0x75, 0xfe, 0xd1, 0xef, 0x8d, 0xdc, 0xa3, 0xa3, 0x86, 0xf6,
  4046  	0xf8, 0xa8, 0xa1, 0x3d, 0x39, 0x6a, 0x68, 0x4f, 0x8f, 0x1a, 0xda, 0x8f, 0xcf, 0x1a, 0xb9, 0xc7,
  4047  	0xcf, 0x1a, 0xb9, 0x27, 0xcf, 0x1a, 0xb9, 0x2f, 0x8b, 0xf2, 0x68, 0xfe, 0x0e, 0x00, 0x00, 0xff,
  4048  	0xff, 0x6e, 0xce, 0xc8, 0xc3, 0x84, 0x0d, 0x00, 0x00,
  4049  }