github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/proto/tendermint/crypto/proof.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: tendermint/crypto/proof.proto
     3  
     4  package crypto
     5  
     6  import (
     7  	fmt "fmt"
     8  	_ "github.com/gogo/protobuf/gogoproto"
     9  	proto "github.com/gogo/protobuf/proto"
    10  	io "io"
    11  	math "math"
    12  	math_bits "math/bits"
    13  )
    14  
    15  // Reference imports to suppress errors if they are not otherwise used.
    16  var _ = proto.Marshal
    17  var _ = fmt.Errorf
    18  var _ = math.Inf
    19  
    20  // This is a compile-time assertion to ensure that this generated file
    21  // is compatible with the proto package it is being compiled against.
    22  // A compilation error at this line likely means your copy of the
    23  // proto package needs to be updated.
    24  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    25  
    26  type Proof struct {
    27  	Total    int64    `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
    28  	Index    int64    `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
    29  	LeafHash []byte   `protobuf:"bytes,3,opt,name=leaf_hash,json=leafHash,proto3" json:"leaf_hash,omitempty"`
    30  	Aunts    [][]byte `protobuf:"bytes,4,rep,name=aunts,proto3" json:"aunts,omitempty"`
    31  }
    32  
    33  func (m *Proof) Reset()         { *m = Proof{} }
    34  func (m *Proof) String() string { return proto.CompactTextString(m) }
    35  func (*Proof) ProtoMessage()    {}
    36  func (*Proof) Descriptor() ([]byte, []int) {
    37  	return fileDescriptor_6b60b6ba2ab5b856, []int{0}
    38  }
    39  func (m *Proof) XXX_Unmarshal(b []byte) error {
    40  	return m.Unmarshal(b)
    41  }
    42  func (m *Proof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    43  	if deterministic {
    44  		return xxx_messageInfo_Proof.Marshal(b, m, deterministic)
    45  	} else {
    46  		b = b[:cap(b)]
    47  		n, err := m.MarshalToSizedBuffer(b)
    48  		if err != nil {
    49  			return nil, err
    50  		}
    51  		return b[:n], nil
    52  	}
    53  }
    54  func (m *Proof) XXX_Merge(src proto.Message) {
    55  	xxx_messageInfo_Proof.Merge(m, src)
    56  }
    57  func (m *Proof) XXX_Size() int {
    58  	return m.Size()
    59  }
    60  func (m *Proof) XXX_DiscardUnknown() {
    61  	xxx_messageInfo_Proof.DiscardUnknown(m)
    62  }
    63  
    64  var xxx_messageInfo_Proof proto.InternalMessageInfo
    65  
    66  func (m *Proof) GetTotal() int64 {
    67  	if m != nil {
    68  		return m.Total
    69  	}
    70  	return 0
    71  }
    72  
    73  func (m *Proof) GetIndex() int64 {
    74  	if m != nil {
    75  		return m.Index
    76  	}
    77  	return 0
    78  }
    79  
    80  func (m *Proof) GetLeafHash() []byte {
    81  	if m != nil {
    82  		return m.LeafHash
    83  	}
    84  	return nil
    85  }
    86  
    87  func (m *Proof) GetAunts() [][]byte {
    88  	if m != nil {
    89  		return m.Aunts
    90  	}
    91  	return nil
    92  }
    93  
    94  type ValueOp struct {
    95  	// Encoded in ProofOp.Key.
    96  	Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
    97  	// To encode in ProofOp.Data
    98  	Proof *Proof `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"`
    99  }
   100  
   101  func (m *ValueOp) Reset()         { *m = ValueOp{} }
   102  func (m *ValueOp) String() string { return proto.CompactTextString(m) }
   103  func (*ValueOp) ProtoMessage()    {}
   104  func (*ValueOp) Descriptor() ([]byte, []int) {
   105  	return fileDescriptor_6b60b6ba2ab5b856, []int{1}
   106  }
   107  func (m *ValueOp) XXX_Unmarshal(b []byte) error {
   108  	return m.Unmarshal(b)
   109  }
   110  func (m *ValueOp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   111  	if deterministic {
   112  		return xxx_messageInfo_ValueOp.Marshal(b, m, deterministic)
   113  	} else {
   114  		b = b[:cap(b)]
   115  		n, err := m.MarshalToSizedBuffer(b)
   116  		if err != nil {
   117  			return nil, err
   118  		}
   119  		return b[:n], nil
   120  	}
   121  }
   122  func (m *ValueOp) XXX_Merge(src proto.Message) {
   123  	xxx_messageInfo_ValueOp.Merge(m, src)
   124  }
   125  func (m *ValueOp) XXX_Size() int {
   126  	return m.Size()
   127  }
   128  func (m *ValueOp) XXX_DiscardUnknown() {
   129  	xxx_messageInfo_ValueOp.DiscardUnknown(m)
   130  }
   131  
   132  var xxx_messageInfo_ValueOp proto.InternalMessageInfo
   133  
   134  func (m *ValueOp) GetKey() []byte {
   135  	if m != nil {
   136  		return m.Key
   137  	}
   138  	return nil
   139  }
   140  
   141  func (m *ValueOp) GetProof() *Proof {
   142  	if m != nil {
   143  		return m.Proof
   144  	}
   145  	return nil
   146  }
   147  
   148  type DominoOp struct {
   149  	Key    string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   150  	Input  string `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"`
   151  	Output string `protobuf:"bytes,3,opt,name=output,proto3" json:"output,omitempty"`
   152  }
   153  
   154  func (m *DominoOp) Reset()         { *m = DominoOp{} }
   155  func (m *DominoOp) String() string { return proto.CompactTextString(m) }
   156  func (*DominoOp) ProtoMessage()    {}
   157  func (*DominoOp) Descriptor() ([]byte, []int) {
   158  	return fileDescriptor_6b60b6ba2ab5b856, []int{2}
   159  }
   160  func (m *DominoOp) XXX_Unmarshal(b []byte) error {
   161  	return m.Unmarshal(b)
   162  }
   163  func (m *DominoOp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   164  	if deterministic {
   165  		return xxx_messageInfo_DominoOp.Marshal(b, m, deterministic)
   166  	} else {
   167  		b = b[:cap(b)]
   168  		n, err := m.MarshalToSizedBuffer(b)
   169  		if err != nil {
   170  			return nil, err
   171  		}
   172  		return b[:n], nil
   173  	}
   174  }
   175  func (m *DominoOp) XXX_Merge(src proto.Message) {
   176  	xxx_messageInfo_DominoOp.Merge(m, src)
   177  }
   178  func (m *DominoOp) XXX_Size() int {
   179  	return m.Size()
   180  }
   181  func (m *DominoOp) XXX_DiscardUnknown() {
   182  	xxx_messageInfo_DominoOp.DiscardUnknown(m)
   183  }
   184  
   185  var xxx_messageInfo_DominoOp proto.InternalMessageInfo
   186  
   187  func (m *DominoOp) GetKey() string {
   188  	if m != nil {
   189  		return m.Key
   190  	}
   191  	return ""
   192  }
   193  
   194  func (m *DominoOp) GetInput() string {
   195  	if m != nil {
   196  		return m.Input
   197  	}
   198  	return ""
   199  }
   200  
   201  func (m *DominoOp) GetOutput() string {
   202  	if m != nil {
   203  		return m.Output
   204  	}
   205  	return ""
   206  }
   207  
   208  // ProofOp defines an operation used for calculating Merkle root
   209  // The data could be arbitrary format, providing nessecary data
   210  // for example neighbouring node hash
   211  type ProofOp struct {
   212  	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
   213  	Key  []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
   214  	Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   215  }
   216  
   217  func (m *ProofOp) Reset()         { *m = ProofOp{} }
   218  func (m *ProofOp) String() string { return proto.CompactTextString(m) }
   219  func (*ProofOp) ProtoMessage()    {}
   220  func (*ProofOp) Descriptor() ([]byte, []int) {
   221  	return fileDescriptor_6b60b6ba2ab5b856, []int{3}
   222  }
   223  func (m *ProofOp) XXX_Unmarshal(b []byte) error {
   224  	return m.Unmarshal(b)
   225  }
   226  func (m *ProofOp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   227  	if deterministic {
   228  		return xxx_messageInfo_ProofOp.Marshal(b, m, deterministic)
   229  	} else {
   230  		b = b[:cap(b)]
   231  		n, err := m.MarshalToSizedBuffer(b)
   232  		if err != nil {
   233  			return nil, err
   234  		}
   235  		return b[:n], nil
   236  	}
   237  }
   238  func (m *ProofOp) XXX_Merge(src proto.Message) {
   239  	xxx_messageInfo_ProofOp.Merge(m, src)
   240  }
   241  func (m *ProofOp) XXX_Size() int {
   242  	return m.Size()
   243  }
   244  func (m *ProofOp) XXX_DiscardUnknown() {
   245  	xxx_messageInfo_ProofOp.DiscardUnknown(m)
   246  }
   247  
   248  var xxx_messageInfo_ProofOp proto.InternalMessageInfo
   249  
   250  func (m *ProofOp) GetType() string {
   251  	if m != nil {
   252  		return m.Type
   253  	}
   254  	return ""
   255  }
   256  
   257  func (m *ProofOp) GetKey() []byte {
   258  	if m != nil {
   259  		return m.Key
   260  	}
   261  	return nil
   262  }
   263  
   264  func (m *ProofOp) GetData() []byte {
   265  	if m != nil {
   266  		return m.Data
   267  	}
   268  	return nil
   269  }
   270  
   271  // ProofOps is Merkle proof defined by the list of ProofOps
   272  type ProofOps struct {
   273  	Ops []ProofOp `protobuf:"bytes,1,rep,name=ops,proto3" json:"ops"`
   274  }
   275  
   276  func (m *ProofOps) Reset()         { *m = ProofOps{} }
   277  func (m *ProofOps) String() string { return proto.CompactTextString(m) }
   278  func (*ProofOps) ProtoMessage()    {}
   279  func (*ProofOps) Descriptor() ([]byte, []int) {
   280  	return fileDescriptor_6b60b6ba2ab5b856, []int{4}
   281  }
   282  func (m *ProofOps) XXX_Unmarshal(b []byte) error {
   283  	return m.Unmarshal(b)
   284  }
   285  func (m *ProofOps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   286  	if deterministic {
   287  		return xxx_messageInfo_ProofOps.Marshal(b, m, deterministic)
   288  	} else {
   289  		b = b[:cap(b)]
   290  		n, err := m.MarshalToSizedBuffer(b)
   291  		if err != nil {
   292  			return nil, err
   293  		}
   294  		return b[:n], nil
   295  	}
   296  }
   297  func (m *ProofOps) XXX_Merge(src proto.Message) {
   298  	xxx_messageInfo_ProofOps.Merge(m, src)
   299  }
   300  func (m *ProofOps) XXX_Size() int {
   301  	return m.Size()
   302  }
   303  func (m *ProofOps) XXX_DiscardUnknown() {
   304  	xxx_messageInfo_ProofOps.DiscardUnknown(m)
   305  }
   306  
   307  var xxx_messageInfo_ProofOps proto.InternalMessageInfo
   308  
   309  func (m *ProofOps) GetOps() []ProofOp {
   310  	if m != nil {
   311  		return m.Ops
   312  	}
   313  	return nil
   314  }
   315  
   316  func init() {
   317  	proto.RegisterType((*Proof)(nil), "tendermint.crypto.Proof")
   318  	proto.RegisterType((*ValueOp)(nil), "tendermint.crypto.ValueOp")
   319  	proto.RegisterType((*DominoOp)(nil), "tendermint.crypto.DominoOp")
   320  	proto.RegisterType((*ProofOp)(nil), "tendermint.crypto.ProofOp")
   321  	proto.RegisterType((*ProofOps)(nil), "tendermint.crypto.ProofOps")
   322  }
   323  
   324  func init() { proto.RegisterFile("tendermint/crypto/proof.proto", fileDescriptor_6b60b6ba2ab5b856) }
   325  
   326  var fileDescriptor_6b60b6ba2ab5b856 = []byte{
   327  	// 360 bytes of a gzipped FileDescriptorProto
   328  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x52, 0xbd, 0x4e, 0xeb, 0x30,
   329  	0x14, 0x4e, 0x9a, 0xf4, 0xef, 0xb4, 0xc3, 0xbd, 0x56, 0x75, 0x15, 0xf5, 0xea, 0xe6, 0x46, 0x99,
   330  	0x32, 0x25, 0x52, 0x59, 0x98, 0x18, 0x0a, 0x03, 0x82, 0xa1, 0xc8, 0x03, 0x03, 0x0b, 0x72, 0x9b,
   331  	0xa4, 0x89, 0x68, 0x73, 0xac, 0xc4, 0x91, 0xe8, 0x5b, 0xf0, 0x58, 0x1d, 0x3b, 0x32, 0x21, 0xd4,
   332  	0xbe, 0x08, 0xb2, 0x1d, 0x54, 0x50, 0xc5, 0xf6, 0xfd, 0x1c, 0x7f, 0xfe, 0xac, 0x63, 0xf8, 0x27,
   333  	0x92, 0x22, 0x4e, 0xca, 0x75, 0x5e, 0x88, 0x68, 0x51, 0x6e, 0xb8, 0xc0, 0x88, 0x97, 0x88, 0x69,
   334  	0xc8, 0x4b, 0x14, 0x48, 0x7e, 0x1f, 0xed, 0x50, 0xdb, 0xe3, 0xd1, 0x12, 0x97, 0xa8, 0xdc, 0x48,
   335  	0x22, 0x3d, 0xe8, 0xa7, 0xd0, 0xbe, 0x93, 0xe7, 0xc8, 0x08, 0xda, 0x02, 0x05, 0x5b, 0x39, 0xa6,
   336  	0x67, 0x06, 0x16, 0xd5, 0x44, 0xaa, 0x79, 0x11, 0x27, 0xcf, 0x4e, 0x4b, 0xab, 0x8a, 0x90, 0xbf,
   337  	0xd0, 0x5f, 0x25, 0x2c, 0x7d, 0xcc, 0x58, 0x95, 0x39, 0x96, 0x67, 0x06, 0x43, 0xda, 0x93, 0xc2,
   338  	0x35, 0xab, 0x32, 0x79, 0x84, 0xd5, 0x85, 0xa8, 0x1c, 0xdb, 0xb3, 0x82, 0x21, 0xd5, 0xc4, 0xbf,
   339  	0x85, 0xee, 0x3d, 0x5b, 0xd5, 0xc9, 0x8c, 0x93, 0x5f, 0x60, 0x3d, 0x25, 0x1b, 0x75, 0xcf, 0x90,
   340  	0x4a, 0x48, 0x42, 0x68, 0xab, 0xf2, 0xea, 0x96, 0xc1, 0xc4, 0x09, 0x4f, 0xda, 0x87, 0xaa, 0x24,
   341  	0xd5, 0x63, 0xfe, 0x0d, 0xf4, 0xae, 0x70, 0x9d, 0x17, 0xf8, 0x3d, 0xad, 0xaf, 0xd3, 0x54, 0x67,
   342  	0x5e, 0x0b, 0x95, 0xd6, 0xa7, 0x9a, 0x90, 0x3f, 0xd0, 0xc1, 0x5a, 0x48, 0xd9, 0x52, 0x72, 0xc3,
   343  	0xfc, 0x4b, 0xe8, 0xaa, 0xec, 0x19, 0x27, 0x04, 0x6c, 0xb1, 0xe1, 0x49, 0x93, 0xa5, 0xf0, 0x67,
   344  	0x7c, 0xeb, 0x58, 0x96, 0x80, 0x1d, 0x33, 0xc1, 0x9a, 0x77, 0x2b, 0xec, 0x5f, 0x40, 0xaf, 0x09,
   345  	0xa9, 0xc8, 0x04, 0x2c, 0xe4, 0x95, 0x63, 0x7a, 0x56, 0x30, 0x98, 0x8c, 0x7f, 0x7a, 0xca, 0x8c,
   346  	0x4f, 0xed, 0xed, 0xdb, 0x7f, 0x83, 0xca, 0xe1, 0x29, 0xdd, 0xee, 0x5d, 0x73, 0xb7, 0x77, 0xcd,
   347  	0xf7, 0xbd, 0x6b, 0xbe, 0x1c, 0x5c, 0x63, 0x77, 0x70, 0x8d, 0xd7, 0x83, 0x6b, 0x3c, 0x9c, 0x2f,
   348  	0x73, 0x91, 0xd5, 0xf3, 0x70, 0x81, 0xeb, 0x88, 0xc5, 0x58, 0xe6, 0xac, 0xc2, 0x54, 0x44, 0x5f,
   349  	0xb6, 0xaf, 0x57, 0x7a, 0xf2, 0x1d, 0xe6, 0x1d, 0x65, 0x9c, 0x7d, 0x04, 0x00, 0x00, 0xff, 0xff,
   350  	0xaf, 0x30, 0xd7, 0xd5, 0x2a, 0x02, 0x00, 0x00,
   351  }
   352  
   353  func (m *Proof) Marshal() (dAtA []byte, err error) {
   354  	size := m.Size()
   355  	dAtA = make([]byte, size)
   356  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   357  	if err != nil {
   358  		return nil, err
   359  	}
   360  	return dAtA[:n], nil
   361  }
   362  
   363  func (m *Proof) MarshalTo(dAtA []byte) (int, error) {
   364  	size := m.Size()
   365  	return m.MarshalToSizedBuffer(dAtA[:size])
   366  }
   367  
   368  func (m *Proof) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   369  	i := len(dAtA)
   370  	_ = i
   371  	var l int
   372  	_ = l
   373  	if len(m.Aunts) > 0 {
   374  		for iNdEx := len(m.Aunts) - 1; iNdEx >= 0; iNdEx-- {
   375  			i -= len(m.Aunts[iNdEx])
   376  			copy(dAtA[i:], m.Aunts[iNdEx])
   377  			i = encodeVarintProof(dAtA, i, uint64(len(m.Aunts[iNdEx])))
   378  			i--
   379  			dAtA[i] = 0x22
   380  		}
   381  	}
   382  	if len(m.LeafHash) > 0 {
   383  		i -= len(m.LeafHash)
   384  		copy(dAtA[i:], m.LeafHash)
   385  		i = encodeVarintProof(dAtA, i, uint64(len(m.LeafHash)))
   386  		i--
   387  		dAtA[i] = 0x1a
   388  	}
   389  	if m.Index != 0 {
   390  		i = encodeVarintProof(dAtA, i, uint64(m.Index))
   391  		i--
   392  		dAtA[i] = 0x10
   393  	}
   394  	if m.Total != 0 {
   395  		i = encodeVarintProof(dAtA, i, uint64(m.Total))
   396  		i--
   397  		dAtA[i] = 0x8
   398  	}
   399  	return len(dAtA) - i, nil
   400  }
   401  
   402  func (m *ValueOp) Marshal() (dAtA []byte, err error) {
   403  	size := m.Size()
   404  	dAtA = make([]byte, size)
   405  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   406  	if err != nil {
   407  		return nil, err
   408  	}
   409  	return dAtA[:n], nil
   410  }
   411  
   412  func (m *ValueOp) MarshalTo(dAtA []byte) (int, error) {
   413  	size := m.Size()
   414  	return m.MarshalToSizedBuffer(dAtA[:size])
   415  }
   416  
   417  func (m *ValueOp) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   418  	i := len(dAtA)
   419  	_ = i
   420  	var l int
   421  	_ = l
   422  	if m.Proof != nil {
   423  		{
   424  			size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i])
   425  			if err != nil {
   426  				return 0, err
   427  			}
   428  			i -= size
   429  			i = encodeVarintProof(dAtA, i, uint64(size))
   430  		}
   431  		i--
   432  		dAtA[i] = 0x12
   433  	}
   434  	if len(m.Key) > 0 {
   435  		i -= len(m.Key)
   436  		copy(dAtA[i:], m.Key)
   437  		i = encodeVarintProof(dAtA, i, uint64(len(m.Key)))
   438  		i--
   439  		dAtA[i] = 0xa
   440  	}
   441  	return len(dAtA) - i, nil
   442  }
   443  
   444  func (m *DominoOp) Marshal() (dAtA []byte, err error) {
   445  	size := m.Size()
   446  	dAtA = make([]byte, size)
   447  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   448  	if err != nil {
   449  		return nil, err
   450  	}
   451  	return dAtA[:n], nil
   452  }
   453  
   454  func (m *DominoOp) MarshalTo(dAtA []byte) (int, error) {
   455  	size := m.Size()
   456  	return m.MarshalToSizedBuffer(dAtA[:size])
   457  }
   458  
   459  func (m *DominoOp) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   460  	i := len(dAtA)
   461  	_ = i
   462  	var l int
   463  	_ = l
   464  	if len(m.Output) > 0 {
   465  		i -= len(m.Output)
   466  		copy(dAtA[i:], m.Output)
   467  		i = encodeVarintProof(dAtA, i, uint64(len(m.Output)))
   468  		i--
   469  		dAtA[i] = 0x1a
   470  	}
   471  	if len(m.Input) > 0 {
   472  		i -= len(m.Input)
   473  		copy(dAtA[i:], m.Input)
   474  		i = encodeVarintProof(dAtA, i, uint64(len(m.Input)))
   475  		i--
   476  		dAtA[i] = 0x12
   477  	}
   478  	if len(m.Key) > 0 {
   479  		i -= len(m.Key)
   480  		copy(dAtA[i:], m.Key)
   481  		i = encodeVarintProof(dAtA, i, uint64(len(m.Key)))
   482  		i--
   483  		dAtA[i] = 0xa
   484  	}
   485  	return len(dAtA) - i, nil
   486  }
   487  
   488  func (m *ProofOp) Marshal() (dAtA []byte, err error) {
   489  	size := m.Size()
   490  	dAtA = make([]byte, size)
   491  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   492  	if err != nil {
   493  		return nil, err
   494  	}
   495  	return dAtA[:n], nil
   496  }
   497  
   498  func (m *ProofOp) MarshalTo(dAtA []byte) (int, error) {
   499  	size := m.Size()
   500  	return m.MarshalToSizedBuffer(dAtA[:size])
   501  }
   502  
   503  func (m *ProofOp) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   504  	i := len(dAtA)
   505  	_ = i
   506  	var l int
   507  	_ = l
   508  	if len(m.Data) > 0 {
   509  		i -= len(m.Data)
   510  		copy(dAtA[i:], m.Data)
   511  		i = encodeVarintProof(dAtA, i, uint64(len(m.Data)))
   512  		i--
   513  		dAtA[i] = 0x1a
   514  	}
   515  	if len(m.Key) > 0 {
   516  		i -= len(m.Key)
   517  		copy(dAtA[i:], m.Key)
   518  		i = encodeVarintProof(dAtA, i, uint64(len(m.Key)))
   519  		i--
   520  		dAtA[i] = 0x12
   521  	}
   522  	if len(m.Type) > 0 {
   523  		i -= len(m.Type)
   524  		copy(dAtA[i:], m.Type)
   525  		i = encodeVarintProof(dAtA, i, uint64(len(m.Type)))
   526  		i--
   527  		dAtA[i] = 0xa
   528  	}
   529  	return len(dAtA) - i, nil
   530  }
   531  
   532  func (m *ProofOps) Marshal() (dAtA []byte, err error) {
   533  	size := m.Size()
   534  	dAtA = make([]byte, size)
   535  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   536  	if err != nil {
   537  		return nil, err
   538  	}
   539  	return dAtA[:n], nil
   540  }
   541  
   542  func (m *ProofOps) MarshalTo(dAtA []byte) (int, error) {
   543  	size := m.Size()
   544  	return m.MarshalToSizedBuffer(dAtA[:size])
   545  }
   546  
   547  func (m *ProofOps) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   548  	i := len(dAtA)
   549  	_ = i
   550  	var l int
   551  	_ = l
   552  	if len(m.Ops) > 0 {
   553  		for iNdEx := len(m.Ops) - 1; iNdEx >= 0; iNdEx-- {
   554  			{
   555  				size, err := m.Ops[iNdEx].MarshalToSizedBuffer(dAtA[:i])
   556  				if err != nil {
   557  					return 0, err
   558  				}
   559  				i -= size
   560  				i = encodeVarintProof(dAtA, i, uint64(size))
   561  			}
   562  			i--
   563  			dAtA[i] = 0xa
   564  		}
   565  	}
   566  	return len(dAtA) - i, nil
   567  }
   568  
   569  func encodeVarintProof(dAtA []byte, offset int, v uint64) int {
   570  	offset -= sovProof(v)
   571  	base := offset
   572  	for v >= 1<<7 {
   573  		dAtA[offset] = uint8(v&0x7f | 0x80)
   574  		v >>= 7
   575  		offset++
   576  	}
   577  	dAtA[offset] = uint8(v)
   578  	return base
   579  }
   580  func (m *Proof) Size() (n int) {
   581  	if m == nil {
   582  		return 0
   583  	}
   584  	var l int
   585  	_ = l
   586  	if m.Total != 0 {
   587  		n += 1 + sovProof(uint64(m.Total))
   588  	}
   589  	if m.Index != 0 {
   590  		n += 1 + sovProof(uint64(m.Index))
   591  	}
   592  	l = len(m.LeafHash)
   593  	if l > 0 {
   594  		n += 1 + l + sovProof(uint64(l))
   595  	}
   596  	if len(m.Aunts) > 0 {
   597  		for _, b := range m.Aunts {
   598  			l = len(b)
   599  			n += 1 + l + sovProof(uint64(l))
   600  		}
   601  	}
   602  	return n
   603  }
   604  
   605  func (m *ValueOp) Size() (n int) {
   606  	if m == nil {
   607  		return 0
   608  	}
   609  	var l int
   610  	_ = l
   611  	l = len(m.Key)
   612  	if l > 0 {
   613  		n += 1 + l + sovProof(uint64(l))
   614  	}
   615  	if m.Proof != nil {
   616  		l = m.Proof.Size()
   617  		n += 1 + l + sovProof(uint64(l))
   618  	}
   619  	return n
   620  }
   621  
   622  func (m *DominoOp) Size() (n int) {
   623  	if m == nil {
   624  		return 0
   625  	}
   626  	var l int
   627  	_ = l
   628  	l = len(m.Key)
   629  	if l > 0 {
   630  		n += 1 + l + sovProof(uint64(l))
   631  	}
   632  	l = len(m.Input)
   633  	if l > 0 {
   634  		n += 1 + l + sovProof(uint64(l))
   635  	}
   636  	l = len(m.Output)
   637  	if l > 0 {
   638  		n += 1 + l + sovProof(uint64(l))
   639  	}
   640  	return n
   641  }
   642  
   643  func (m *ProofOp) Size() (n int) {
   644  	if m == nil {
   645  		return 0
   646  	}
   647  	var l int
   648  	_ = l
   649  	l = len(m.Type)
   650  	if l > 0 {
   651  		n += 1 + l + sovProof(uint64(l))
   652  	}
   653  	l = len(m.Key)
   654  	if l > 0 {
   655  		n += 1 + l + sovProof(uint64(l))
   656  	}
   657  	l = len(m.Data)
   658  	if l > 0 {
   659  		n += 1 + l + sovProof(uint64(l))
   660  	}
   661  	return n
   662  }
   663  
   664  func (m *ProofOps) Size() (n int) {
   665  	if m == nil {
   666  		return 0
   667  	}
   668  	var l int
   669  	_ = l
   670  	if len(m.Ops) > 0 {
   671  		for _, e := range m.Ops {
   672  			l = e.Size()
   673  			n += 1 + l + sovProof(uint64(l))
   674  		}
   675  	}
   676  	return n
   677  }
   678  
   679  func sovProof(x uint64) (n int) {
   680  	return (math_bits.Len64(x|1) + 6) / 7
   681  }
   682  func sozProof(x uint64) (n int) {
   683  	return sovProof(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   684  }
   685  func (m *Proof) Unmarshal(dAtA []byte) error {
   686  	l := len(dAtA)
   687  	iNdEx := 0
   688  	for iNdEx < l {
   689  		preIndex := iNdEx
   690  		var wire uint64
   691  		for shift := uint(0); ; shift += 7 {
   692  			if shift >= 64 {
   693  				return ErrIntOverflowProof
   694  			}
   695  			if iNdEx >= l {
   696  				return io.ErrUnexpectedEOF
   697  			}
   698  			b := dAtA[iNdEx]
   699  			iNdEx++
   700  			wire |= uint64(b&0x7F) << shift
   701  			if b < 0x80 {
   702  				break
   703  			}
   704  		}
   705  		fieldNum := int32(wire >> 3)
   706  		wireType := int(wire & 0x7)
   707  		if wireType == 4 {
   708  			return fmt.Errorf("proto: Proof: wiretype end group for non-group")
   709  		}
   710  		if fieldNum <= 0 {
   711  			return fmt.Errorf("proto: Proof: illegal tag %d (wire type %d)", fieldNum, wire)
   712  		}
   713  		switch fieldNum {
   714  		case 1:
   715  			if wireType != 0 {
   716  				return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
   717  			}
   718  			m.Total = 0
   719  			for shift := uint(0); ; shift += 7 {
   720  				if shift >= 64 {
   721  					return ErrIntOverflowProof
   722  				}
   723  				if iNdEx >= l {
   724  					return io.ErrUnexpectedEOF
   725  				}
   726  				b := dAtA[iNdEx]
   727  				iNdEx++
   728  				m.Total |= int64(b&0x7F) << shift
   729  				if b < 0x80 {
   730  					break
   731  				}
   732  			}
   733  		case 2:
   734  			if wireType != 0 {
   735  				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
   736  			}
   737  			m.Index = 0
   738  			for shift := uint(0); ; shift += 7 {
   739  				if shift >= 64 {
   740  					return ErrIntOverflowProof
   741  				}
   742  				if iNdEx >= l {
   743  					return io.ErrUnexpectedEOF
   744  				}
   745  				b := dAtA[iNdEx]
   746  				iNdEx++
   747  				m.Index |= int64(b&0x7F) << shift
   748  				if b < 0x80 {
   749  					break
   750  				}
   751  			}
   752  		case 3:
   753  			if wireType != 2 {
   754  				return fmt.Errorf("proto: wrong wireType = %d for field LeafHash", wireType)
   755  			}
   756  			var byteLen int
   757  			for shift := uint(0); ; shift += 7 {
   758  				if shift >= 64 {
   759  					return ErrIntOverflowProof
   760  				}
   761  				if iNdEx >= l {
   762  					return io.ErrUnexpectedEOF
   763  				}
   764  				b := dAtA[iNdEx]
   765  				iNdEx++
   766  				byteLen |= int(b&0x7F) << shift
   767  				if b < 0x80 {
   768  					break
   769  				}
   770  			}
   771  			if byteLen < 0 {
   772  				return ErrInvalidLengthProof
   773  			}
   774  			postIndex := iNdEx + byteLen
   775  			if postIndex < 0 {
   776  				return ErrInvalidLengthProof
   777  			}
   778  			if postIndex > l {
   779  				return io.ErrUnexpectedEOF
   780  			}
   781  			m.LeafHash = append(m.LeafHash[:0], dAtA[iNdEx:postIndex]...)
   782  			if m.LeafHash == nil {
   783  				m.LeafHash = []byte{}
   784  			}
   785  			iNdEx = postIndex
   786  		case 4:
   787  			if wireType != 2 {
   788  				return fmt.Errorf("proto: wrong wireType = %d for field Aunts", wireType)
   789  			}
   790  			var byteLen int
   791  			for shift := uint(0); ; shift += 7 {
   792  				if shift >= 64 {
   793  					return ErrIntOverflowProof
   794  				}
   795  				if iNdEx >= l {
   796  					return io.ErrUnexpectedEOF
   797  				}
   798  				b := dAtA[iNdEx]
   799  				iNdEx++
   800  				byteLen |= int(b&0x7F) << shift
   801  				if b < 0x80 {
   802  					break
   803  				}
   804  			}
   805  			if byteLen < 0 {
   806  				return ErrInvalidLengthProof
   807  			}
   808  			postIndex := iNdEx + byteLen
   809  			if postIndex < 0 {
   810  				return ErrInvalidLengthProof
   811  			}
   812  			if postIndex > l {
   813  				return io.ErrUnexpectedEOF
   814  			}
   815  			m.Aunts = append(m.Aunts, make([]byte, postIndex-iNdEx))
   816  			copy(m.Aunts[len(m.Aunts)-1], dAtA[iNdEx:postIndex])
   817  			iNdEx = postIndex
   818  		default:
   819  			iNdEx = preIndex
   820  			skippy, err := skipProof(dAtA[iNdEx:])
   821  			if err != nil {
   822  				return err
   823  			}
   824  			if skippy < 0 {
   825  				return ErrInvalidLengthProof
   826  			}
   827  			if (iNdEx + skippy) < 0 {
   828  				return ErrInvalidLengthProof
   829  			}
   830  			if (iNdEx + skippy) > l {
   831  				return io.ErrUnexpectedEOF
   832  			}
   833  			iNdEx += skippy
   834  		}
   835  	}
   836  
   837  	if iNdEx > l {
   838  		return io.ErrUnexpectedEOF
   839  	}
   840  	return nil
   841  }
   842  func (m *ValueOp) Unmarshal(dAtA []byte) error {
   843  	l := len(dAtA)
   844  	iNdEx := 0
   845  	for iNdEx < l {
   846  		preIndex := iNdEx
   847  		var wire uint64
   848  		for shift := uint(0); ; shift += 7 {
   849  			if shift >= 64 {
   850  				return ErrIntOverflowProof
   851  			}
   852  			if iNdEx >= l {
   853  				return io.ErrUnexpectedEOF
   854  			}
   855  			b := dAtA[iNdEx]
   856  			iNdEx++
   857  			wire |= uint64(b&0x7F) << shift
   858  			if b < 0x80 {
   859  				break
   860  			}
   861  		}
   862  		fieldNum := int32(wire >> 3)
   863  		wireType := int(wire & 0x7)
   864  		if wireType == 4 {
   865  			return fmt.Errorf("proto: ValueOp: wiretype end group for non-group")
   866  		}
   867  		if fieldNum <= 0 {
   868  			return fmt.Errorf("proto: ValueOp: illegal tag %d (wire type %d)", fieldNum, wire)
   869  		}
   870  		switch fieldNum {
   871  		case 1:
   872  			if wireType != 2 {
   873  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
   874  			}
   875  			var byteLen int
   876  			for shift := uint(0); ; shift += 7 {
   877  				if shift >= 64 {
   878  					return ErrIntOverflowProof
   879  				}
   880  				if iNdEx >= l {
   881  					return io.ErrUnexpectedEOF
   882  				}
   883  				b := dAtA[iNdEx]
   884  				iNdEx++
   885  				byteLen |= int(b&0x7F) << shift
   886  				if b < 0x80 {
   887  					break
   888  				}
   889  			}
   890  			if byteLen < 0 {
   891  				return ErrInvalidLengthProof
   892  			}
   893  			postIndex := iNdEx + byteLen
   894  			if postIndex < 0 {
   895  				return ErrInvalidLengthProof
   896  			}
   897  			if postIndex > l {
   898  				return io.ErrUnexpectedEOF
   899  			}
   900  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
   901  			if m.Key == nil {
   902  				m.Key = []byte{}
   903  			}
   904  			iNdEx = postIndex
   905  		case 2:
   906  			if wireType != 2 {
   907  				return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType)
   908  			}
   909  			var msglen int
   910  			for shift := uint(0); ; shift += 7 {
   911  				if shift >= 64 {
   912  					return ErrIntOverflowProof
   913  				}
   914  				if iNdEx >= l {
   915  					return io.ErrUnexpectedEOF
   916  				}
   917  				b := dAtA[iNdEx]
   918  				iNdEx++
   919  				msglen |= int(b&0x7F) << shift
   920  				if b < 0x80 {
   921  					break
   922  				}
   923  			}
   924  			if msglen < 0 {
   925  				return ErrInvalidLengthProof
   926  			}
   927  			postIndex := iNdEx + msglen
   928  			if postIndex < 0 {
   929  				return ErrInvalidLengthProof
   930  			}
   931  			if postIndex > l {
   932  				return io.ErrUnexpectedEOF
   933  			}
   934  			if m.Proof == nil {
   935  				m.Proof = &Proof{}
   936  			}
   937  			if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   938  				return err
   939  			}
   940  			iNdEx = postIndex
   941  		default:
   942  			iNdEx = preIndex
   943  			skippy, err := skipProof(dAtA[iNdEx:])
   944  			if err != nil {
   945  				return err
   946  			}
   947  			if skippy < 0 {
   948  				return ErrInvalidLengthProof
   949  			}
   950  			if (iNdEx + skippy) < 0 {
   951  				return ErrInvalidLengthProof
   952  			}
   953  			if (iNdEx + skippy) > l {
   954  				return io.ErrUnexpectedEOF
   955  			}
   956  			iNdEx += skippy
   957  		}
   958  	}
   959  
   960  	if iNdEx > l {
   961  		return io.ErrUnexpectedEOF
   962  	}
   963  	return nil
   964  }
   965  func (m *DominoOp) Unmarshal(dAtA []byte) error {
   966  	l := len(dAtA)
   967  	iNdEx := 0
   968  	for iNdEx < l {
   969  		preIndex := iNdEx
   970  		var wire uint64
   971  		for shift := uint(0); ; shift += 7 {
   972  			if shift >= 64 {
   973  				return ErrIntOverflowProof
   974  			}
   975  			if iNdEx >= l {
   976  				return io.ErrUnexpectedEOF
   977  			}
   978  			b := dAtA[iNdEx]
   979  			iNdEx++
   980  			wire |= uint64(b&0x7F) << shift
   981  			if b < 0x80 {
   982  				break
   983  			}
   984  		}
   985  		fieldNum := int32(wire >> 3)
   986  		wireType := int(wire & 0x7)
   987  		if wireType == 4 {
   988  			return fmt.Errorf("proto: DominoOp: wiretype end group for non-group")
   989  		}
   990  		if fieldNum <= 0 {
   991  			return fmt.Errorf("proto: DominoOp: illegal tag %d (wire type %d)", fieldNum, wire)
   992  		}
   993  		switch fieldNum {
   994  		case 1:
   995  			if wireType != 2 {
   996  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
   997  			}
   998  			var stringLen uint64
   999  			for shift := uint(0); ; shift += 7 {
  1000  				if shift >= 64 {
  1001  					return ErrIntOverflowProof
  1002  				}
  1003  				if iNdEx >= l {
  1004  					return io.ErrUnexpectedEOF
  1005  				}
  1006  				b := dAtA[iNdEx]
  1007  				iNdEx++
  1008  				stringLen |= uint64(b&0x7F) << shift
  1009  				if b < 0x80 {
  1010  					break
  1011  				}
  1012  			}
  1013  			intStringLen := int(stringLen)
  1014  			if intStringLen < 0 {
  1015  				return ErrInvalidLengthProof
  1016  			}
  1017  			postIndex := iNdEx + intStringLen
  1018  			if postIndex < 0 {
  1019  				return ErrInvalidLengthProof
  1020  			}
  1021  			if postIndex > l {
  1022  				return io.ErrUnexpectedEOF
  1023  			}
  1024  			m.Key = string(dAtA[iNdEx:postIndex])
  1025  			iNdEx = postIndex
  1026  		case 2:
  1027  			if wireType != 2 {
  1028  				return fmt.Errorf("proto: wrong wireType = %d for field Input", wireType)
  1029  			}
  1030  			var stringLen uint64
  1031  			for shift := uint(0); ; shift += 7 {
  1032  				if shift >= 64 {
  1033  					return ErrIntOverflowProof
  1034  				}
  1035  				if iNdEx >= l {
  1036  					return io.ErrUnexpectedEOF
  1037  				}
  1038  				b := dAtA[iNdEx]
  1039  				iNdEx++
  1040  				stringLen |= uint64(b&0x7F) << shift
  1041  				if b < 0x80 {
  1042  					break
  1043  				}
  1044  			}
  1045  			intStringLen := int(stringLen)
  1046  			if intStringLen < 0 {
  1047  				return ErrInvalidLengthProof
  1048  			}
  1049  			postIndex := iNdEx + intStringLen
  1050  			if postIndex < 0 {
  1051  				return ErrInvalidLengthProof
  1052  			}
  1053  			if postIndex > l {
  1054  				return io.ErrUnexpectedEOF
  1055  			}
  1056  			m.Input = string(dAtA[iNdEx:postIndex])
  1057  			iNdEx = postIndex
  1058  		case 3:
  1059  			if wireType != 2 {
  1060  				return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType)
  1061  			}
  1062  			var stringLen uint64
  1063  			for shift := uint(0); ; shift += 7 {
  1064  				if shift >= 64 {
  1065  					return ErrIntOverflowProof
  1066  				}
  1067  				if iNdEx >= l {
  1068  					return io.ErrUnexpectedEOF
  1069  				}
  1070  				b := dAtA[iNdEx]
  1071  				iNdEx++
  1072  				stringLen |= uint64(b&0x7F) << shift
  1073  				if b < 0x80 {
  1074  					break
  1075  				}
  1076  			}
  1077  			intStringLen := int(stringLen)
  1078  			if intStringLen < 0 {
  1079  				return ErrInvalidLengthProof
  1080  			}
  1081  			postIndex := iNdEx + intStringLen
  1082  			if postIndex < 0 {
  1083  				return ErrInvalidLengthProof
  1084  			}
  1085  			if postIndex > l {
  1086  				return io.ErrUnexpectedEOF
  1087  			}
  1088  			m.Output = string(dAtA[iNdEx:postIndex])
  1089  			iNdEx = postIndex
  1090  		default:
  1091  			iNdEx = preIndex
  1092  			skippy, err := skipProof(dAtA[iNdEx:])
  1093  			if err != nil {
  1094  				return err
  1095  			}
  1096  			if skippy < 0 {
  1097  				return ErrInvalidLengthProof
  1098  			}
  1099  			if (iNdEx + skippy) < 0 {
  1100  				return ErrInvalidLengthProof
  1101  			}
  1102  			if (iNdEx + skippy) > l {
  1103  				return io.ErrUnexpectedEOF
  1104  			}
  1105  			iNdEx += skippy
  1106  		}
  1107  	}
  1108  
  1109  	if iNdEx > l {
  1110  		return io.ErrUnexpectedEOF
  1111  	}
  1112  	return nil
  1113  }
  1114  func (m *ProofOp) Unmarshal(dAtA []byte) error {
  1115  	l := len(dAtA)
  1116  	iNdEx := 0
  1117  	for iNdEx < l {
  1118  		preIndex := iNdEx
  1119  		var wire uint64
  1120  		for shift := uint(0); ; shift += 7 {
  1121  			if shift >= 64 {
  1122  				return ErrIntOverflowProof
  1123  			}
  1124  			if iNdEx >= l {
  1125  				return io.ErrUnexpectedEOF
  1126  			}
  1127  			b := dAtA[iNdEx]
  1128  			iNdEx++
  1129  			wire |= uint64(b&0x7F) << shift
  1130  			if b < 0x80 {
  1131  				break
  1132  			}
  1133  		}
  1134  		fieldNum := int32(wire >> 3)
  1135  		wireType := int(wire & 0x7)
  1136  		if wireType == 4 {
  1137  			return fmt.Errorf("proto: ProofOp: wiretype end group for non-group")
  1138  		}
  1139  		if fieldNum <= 0 {
  1140  			return fmt.Errorf("proto: ProofOp: illegal tag %d (wire type %d)", fieldNum, wire)
  1141  		}
  1142  		switch fieldNum {
  1143  		case 1:
  1144  			if wireType != 2 {
  1145  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  1146  			}
  1147  			var stringLen uint64
  1148  			for shift := uint(0); ; shift += 7 {
  1149  				if shift >= 64 {
  1150  					return ErrIntOverflowProof
  1151  				}
  1152  				if iNdEx >= l {
  1153  					return io.ErrUnexpectedEOF
  1154  				}
  1155  				b := dAtA[iNdEx]
  1156  				iNdEx++
  1157  				stringLen |= uint64(b&0x7F) << shift
  1158  				if b < 0x80 {
  1159  					break
  1160  				}
  1161  			}
  1162  			intStringLen := int(stringLen)
  1163  			if intStringLen < 0 {
  1164  				return ErrInvalidLengthProof
  1165  			}
  1166  			postIndex := iNdEx + intStringLen
  1167  			if postIndex < 0 {
  1168  				return ErrInvalidLengthProof
  1169  			}
  1170  			if postIndex > l {
  1171  				return io.ErrUnexpectedEOF
  1172  			}
  1173  			m.Type = string(dAtA[iNdEx:postIndex])
  1174  			iNdEx = postIndex
  1175  		case 2:
  1176  			if wireType != 2 {
  1177  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1178  			}
  1179  			var byteLen int
  1180  			for shift := uint(0); ; shift += 7 {
  1181  				if shift >= 64 {
  1182  					return ErrIntOverflowProof
  1183  				}
  1184  				if iNdEx >= l {
  1185  					return io.ErrUnexpectedEOF
  1186  				}
  1187  				b := dAtA[iNdEx]
  1188  				iNdEx++
  1189  				byteLen |= int(b&0x7F) << shift
  1190  				if b < 0x80 {
  1191  					break
  1192  				}
  1193  			}
  1194  			if byteLen < 0 {
  1195  				return ErrInvalidLengthProof
  1196  			}
  1197  			postIndex := iNdEx + byteLen
  1198  			if postIndex < 0 {
  1199  				return ErrInvalidLengthProof
  1200  			}
  1201  			if postIndex > l {
  1202  				return io.ErrUnexpectedEOF
  1203  			}
  1204  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  1205  			if m.Key == nil {
  1206  				m.Key = []byte{}
  1207  			}
  1208  			iNdEx = postIndex
  1209  		case 3:
  1210  			if wireType != 2 {
  1211  				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  1212  			}
  1213  			var byteLen int
  1214  			for shift := uint(0); ; shift += 7 {
  1215  				if shift >= 64 {
  1216  					return ErrIntOverflowProof
  1217  				}
  1218  				if iNdEx >= l {
  1219  					return io.ErrUnexpectedEOF
  1220  				}
  1221  				b := dAtA[iNdEx]
  1222  				iNdEx++
  1223  				byteLen |= int(b&0x7F) << shift
  1224  				if b < 0x80 {
  1225  					break
  1226  				}
  1227  			}
  1228  			if byteLen < 0 {
  1229  				return ErrInvalidLengthProof
  1230  			}
  1231  			postIndex := iNdEx + byteLen
  1232  			if postIndex < 0 {
  1233  				return ErrInvalidLengthProof
  1234  			}
  1235  			if postIndex > l {
  1236  				return io.ErrUnexpectedEOF
  1237  			}
  1238  			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  1239  			if m.Data == nil {
  1240  				m.Data = []byte{}
  1241  			}
  1242  			iNdEx = postIndex
  1243  		default:
  1244  			iNdEx = preIndex
  1245  			skippy, err := skipProof(dAtA[iNdEx:])
  1246  			if err != nil {
  1247  				return err
  1248  			}
  1249  			if skippy < 0 {
  1250  				return ErrInvalidLengthProof
  1251  			}
  1252  			if (iNdEx + skippy) < 0 {
  1253  				return ErrInvalidLengthProof
  1254  			}
  1255  			if (iNdEx + skippy) > l {
  1256  				return io.ErrUnexpectedEOF
  1257  			}
  1258  			iNdEx += skippy
  1259  		}
  1260  	}
  1261  
  1262  	if iNdEx > l {
  1263  		return io.ErrUnexpectedEOF
  1264  	}
  1265  	return nil
  1266  }
  1267  func (m *ProofOps) Unmarshal(dAtA []byte) error {
  1268  	l := len(dAtA)
  1269  	iNdEx := 0
  1270  	for iNdEx < l {
  1271  		preIndex := iNdEx
  1272  		var wire uint64
  1273  		for shift := uint(0); ; shift += 7 {
  1274  			if shift >= 64 {
  1275  				return ErrIntOverflowProof
  1276  			}
  1277  			if iNdEx >= l {
  1278  				return io.ErrUnexpectedEOF
  1279  			}
  1280  			b := dAtA[iNdEx]
  1281  			iNdEx++
  1282  			wire |= uint64(b&0x7F) << shift
  1283  			if b < 0x80 {
  1284  				break
  1285  			}
  1286  		}
  1287  		fieldNum := int32(wire >> 3)
  1288  		wireType := int(wire & 0x7)
  1289  		if wireType == 4 {
  1290  			return fmt.Errorf("proto: ProofOps: wiretype end group for non-group")
  1291  		}
  1292  		if fieldNum <= 0 {
  1293  			return fmt.Errorf("proto: ProofOps: illegal tag %d (wire type %d)", fieldNum, wire)
  1294  		}
  1295  		switch fieldNum {
  1296  		case 1:
  1297  			if wireType != 2 {
  1298  				return fmt.Errorf("proto: wrong wireType = %d for field Ops", wireType)
  1299  			}
  1300  			var msglen int
  1301  			for shift := uint(0); ; shift += 7 {
  1302  				if shift >= 64 {
  1303  					return ErrIntOverflowProof
  1304  				}
  1305  				if iNdEx >= l {
  1306  					return io.ErrUnexpectedEOF
  1307  				}
  1308  				b := dAtA[iNdEx]
  1309  				iNdEx++
  1310  				msglen |= int(b&0x7F) << shift
  1311  				if b < 0x80 {
  1312  					break
  1313  				}
  1314  			}
  1315  			if msglen < 0 {
  1316  				return ErrInvalidLengthProof
  1317  			}
  1318  			postIndex := iNdEx + msglen
  1319  			if postIndex < 0 {
  1320  				return ErrInvalidLengthProof
  1321  			}
  1322  			if postIndex > l {
  1323  				return io.ErrUnexpectedEOF
  1324  			}
  1325  			m.Ops = append(m.Ops, ProofOp{})
  1326  			if err := m.Ops[len(m.Ops)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1327  				return err
  1328  			}
  1329  			iNdEx = postIndex
  1330  		default:
  1331  			iNdEx = preIndex
  1332  			skippy, err := skipProof(dAtA[iNdEx:])
  1333  			if err != nil {
  1334  				return err
  1335  			}
  1336  			if skippy < 0 {
  1337  				return ErrInvalidLengthProof
  1338  			}
  1339  			if (iNdEx + skippy) < 0 {
  1340  				return ErrInvalidLengthProof
  1341  			}
  1342  			if (iNdEx + skippy) > l {
  1343  				return io.ErrUnexpectedEOF
  1344  			}
  1345  			iNdEx += skippy
  1346  		}
  1347  	}
  1348  
  1349  	if iNdEx > l {
  1350  		return io.ErrUnexpectedEOF
  1351  	}
  1352  	return nil
  1353  }
  1354  func skipProof(dAtA []byte) (n int, err error) {
  1355  	l := len(dAtA)
  1356  	iNdEx := 0
  1357  	depth := 0
  1358  	for iNdEx < l {
  1359  		var wire uint64
  1360  		for shift := uint(0); ; shift += 7 {
  1361  			if shift >= 64 {
  1362  				return 0, ErrIntOverflowProof
  1363  			}
  1364  			if iNdEx >= l {
  1365  				return 0, io.ErrUnexpectedEOF
  1366  			}
  1367  			b := dAtA[iNdEx]
  1368  			iNdEx++
  1369  			wire |= (uint64(b) & 0x7F) << shift
  1370  			if b < 0x80 {
  1371  				break
  1372  			}
  1373  		}
  1374  		wireType := int(wire & 0x7)
  1375  		switch wireType {
  1376  		case 0:
  1377  			for shift := uint(0); ; shift += 7 {
  1378  				if shift >= 64 {
  1379  					return 0, ErrIntOverflowProof
  1380  				}
  1381  				if iNdEx >= l {
  1382  					return 0, io.ErrUnexpectedEOF
  1383  				}
  1384  				iNdEx++
  1385  				if dAtA[iNdEx-1] < 0x80 {
  1386  					break
  1387  				}
  1388  			}
  1389  		case 1:
  1390  			iNdEx += 8
  1391  		case 2:
  1392  			var length int
  1393  			for shift := uint(0); ; shift += 7 {
  1394  				if shift >= 64 {
  1395  					return 0, ErrIntOverflowProof
  1396  				}
  1397  				if iNdEx >= l {
  1398  					return 0, io.ErrUnexpectedEOF
  1399  				}
  1400  				b := dAtA[iNdEx]
  1401  				iNdEx++
  1402  				length |= (int(b) & 0x7F) << shift
  1403  				if b < 0x80 {
  1404  					break
  1405  				}
  1406  			}
  1407  			if length < 0 {
  1408  				return 0, ErrInvalidLengthProof
  1409  			}
  1410  			iNdEx += length
  1411  		case 3:
  1412  			depth++
  1413  		case 4:
  1414  			if depth == 0 {
  1415  				return 0, ErrUnexpectedEndOfGroupProof
  1416  			}
  1417  			depth--
  1418  		case 5:
  1419  			iNdEx += 4
  1420  		default:
  1421  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  1422  		}
  1423  		if iNdEx < 0 {
  1424  			return 0, ErrInvalidLengthProof
  1425  		}
  1426  		if depth == 0 {
  1427  			return iNdEx, nil
  1428  		}
  1429  	}
  1430  	return 0, io.ErrUnexpectedEOF
  1431  }
  1432  
  1433  var (
  1434  	ErrInvalidLengthProof        = fmt.Errorf("proto: negative length found during unmarshaling")
  1435  	ErrIntOverflowProof          = fmt.Errorf("proto: integer overflow")
  1436  	ErrUnexpectedEndOfGroupProof = fmt.Errorf("proto: unexpected end of group")
  1437  )