github.com/mre-fog/trillianxx@v1.1.2-0.20180615153820-ae375a99d36a/trillian_log_api.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: trillian_log_api.proto
     3  
     4  /*
     5  Package trillian is a generated protocol buffer package.
     6  
     7  It is generated from these files:
     8  	trillian_log_api.proto
     9  	trillian_map_api.proto
    10  	trillian_admin_api.proto
    11  	trillian.proto
    12  
    13  It has these top-level messages:
    14  	ChargeTo
    15  	QueueLeafRequest
    16  	QueueLeafResponse
    17  	AddSequencedLeafRequest
    18  	AddSequencedLeafResponse
    19  	GetInclusionProofRequest
    20  	GetInclusionProofResponse
    21  	GetInclusionProofByHashRequest
    22  	GetInclusionProofByHashResponse
    23  	GetConsistencyProofRequest
    24  	GetConsistencyProofResponse
    25  	GetLatestSignedLogRootRequest
    26  	GetLatestSignedLogRootResponse
    27  	GetSequencedLeafCountRequest
    28  	GetSequencedLeafCountResponse
    29  	GetEntryAndProofRequest
    30  	GetEntryAndProofResponse
    31  	InitLogRequest
    32  	InitLogResponse
    33  	QueueLeavesRequest
    34  	QueueLeavesResponse
    35  	AddSequencedLeavesRequest
    36  	AddSequencedLeavesResponse
    37  	GetLeavesByIndexRequest
    38  	GetLeavesByIndexResponse
    39  	GetLeavesByRangeRequest
    40  	GetLeavesByRangeResponse
    41  	GetLeavesByHashRequest
    42  	GetLeavesByHashResponse
    43  	QueuedLogLeaf
    44  	LogLeaf
    45  	Proof
    46  	MapLeaf
    47  	MapLeafInclusion
    48  	GetMapLeavesRequest
    49  	GetMapLeavesByRevisionRequest
    50  	GetMapLeavesResponse
    51  	SetMapLeavesRequest
    52  	SetMapLeavesResponse
    53  	GetSignedMapRootRequest
    54  	GetSignedMapRootByRevisionRequest
    55  	GetSignedMapRootResponse
    56  	InitMapRequest
    57  	InitMapResponse
    58  	ListTreesRequest
    59  	ListTreesResponse
    60  	GetTreeRequest
    61  	CreateTreeRequest
    62  	UpdateTreeRequest
    63  	DeleteTreeRequest
    64  	UndeleteTreeRequest
    65  	Tree
    66  	SignedEntryTimestamp
    67  	SignedLogRoot
    68  	SignedMapRoot
    69  */
    70  package trillian
    71  
    72  import proto "github.com/golang/protobuf/proto"
    73  import fmt "fmt"
    74  import math "math"
    75  import _ "google.golang.org/genproto/googleapis/api/annotations"
    76  import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"
    77  import google_rpc "google.golang.org/genproto/googleapis/rpc/status"
    78  
    79  import (
    80  	context "golang.org/x/net/context"
    81  	grpc "google.golang.org/grpc"
    82  )
    83  
    84  // Reference imports to suppress errors if they are not otherwise used.
    85  var _ = proto.Marshal
    86  var _ = fmt.Errorf
    87  var _ = math.Inf
    88  
    89  // This is a compile-time assertion to ensure that this generated file
    90  // is compatible with the proto package it is being compiled against.
    91  // A compilation error at this line likely means your copy of the
    92  // proto package needs to be updated.
    93  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    94  
    95  // ChargeTo describes the user(s) associated with the request whose quota should
    96  // be checked and charged.
    97  type ChargeTo struct {
    98  	// user is a list of personality-defined strings.
    99  	// Trillian will treat them as /User/%{user}/... keys when checking and
   100  	// charging quota.
   101  	// If one or more of the specified users has insufficient quota, the
   102  	// request will be denied.
   103  	//
   104  	// As an example, a Certificate Transparency frontend might set the following
   105  	// user strings when sending a QueueLeaves request to the Trillian log:
   106  	//   - The requesting IP address.
   107  	//     This would limit the number of requests per IP.
   108  	//   - The "intermediate-<hash>" for each of the intermediate certificates in
   109  	//     the submitted chain.
   110  	//     This would have the effect of limiting the rate of submissions under
   111  	//     a given intermediate/root.
   112  	User []string `protobuf:"bytes,1,rep,name=user" json:"user,omitempty"`
   113  }
   114  
   115  func (m *ChargeTo) Reset()                    { *m = ChargeTo{} }
   116  func (m *ChargeTo) String() string            { return proto.CompactTextString(m) }
   117  func (*ChargeTo) ProtoMessage()               {}
   118  func (*ChargeTo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   119  
   120  func (m *ChargeTo) GetUser() []string {
   121  	if m != nil {
   122  		return m.User
   123  	}
   124  	return nil
   125  }
   126  
   127  type QueueLeafRequest struct {
   128  	LogId    int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   129  	Leaf     *LogLeaf  `protobuf:"bytes,2,opt,name=leaf" json:"leaf,omitempty"`
   130  	ChargeTo *ChargeTo `protobuf:"bytes,3,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   131  }
   132  
   133  func (m *QueueLeafRequest) Reset()                    { *m = QueueLeafRequest{} }
   134  func (m *QueueLeafRequest) String() string            { return proto.CompactTextString(m) }
   135  func (*QueueLeafRequest) ProtoMessage()               {}
   136  func (*QueueLeafRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   137  
   138  func (m *QueueLeafRequest) GetLogId() int64 {
   139  	if m != nil {
   140  		return m.LogId
   141  	}
   142  	return 0
   143  }
   144  
   145  func (m *QueueLeafRequest) GetLeaf() *LogLeaf {
   146  	if m != nil {
   147  		return m.Leaf
   148  	}
   149  	return nil
   150  }
   151  
   152  func (m *QueueLeafRequest) GetChargeTo() *ChargeTo {
   153  	if m != nil {
   154  		return m.ChargeTo
   155  	}
   156  	return nil
   157  }
   158  
   159  type QueueLeafResponse struct {
   160  	QueuedLeaf *QueuedLogLeaf `protobuf:"bytes,2,opt,name=queued_leaf,json=queuedLeaf" json:"queued_leaf,omitempty"`
   161  }
   162  
   163  func (m *QueueLeafResponse) Reset()                    { *m = QueueLeafResponse{} }
   164  func (m *QueueLeafResponse) String() string            { return proto.CompactTextString(m) }
   165  func (*QueueLeafResponse) ProtoMessage()               {}
   166  func (*QueueLeafResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   167  
   168  func (m *QueueLeafResponse) GetQueuedLeaf() *QueuedLogLeaf {
   169  	if m != nil {
   170  		return m.QueuedLeaf
   171  	}
   172  	return nil
   173  }
   174  
   175  type AddSequencedLeafRequest struct {
   176  	LogId    int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   177  	Leaf     *LogLeaf  `protobuf:"bytes,2,opt,name=leaf" json:"leaf,omitempty"`
   178  	ChargeTo *ChargeTo `protobuf:"bytes,3,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   179  }
   180  
   181  func (m *AddSequencedLeafRequest) Reset()                    { *m = AddSequencedLeafRequest{} }
   182  func (m *AddSequencedLeafRequest) String() string            { return proto.CompactTextString(m) }
   183  func (*AddSequencedLeafRequest) ProtoMessage()               {}
   184  func (*AddSequencedLeafRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
   185  
   186  func (m *AddSequencedLeafRequest) GetLogId() int64 {
   187  	if m != nil {
   188  		return m.LogId
   189  	}
   190  	return 0
   191  }
   192  
   193  func (m *AddSequencedLeafRequest) GetLeaf() *LogLeaf {
   194  	if m != nil {
   195  		return m.Leaf
   196  	}
   197  	return nil
   198  }
   199  
   200  func (m *AddSequencedLeafRequest) GetChargeTo() *ChargeTo {
   201  	if m != nil {
   202  		return m.ChargeTo
   203  	}
   204  	return nil
   205  }
   206  
   207  type AddSequencedLeafResponse struct {
   208  	Result *QueuedLogLeaf `protobuf:"bytes,2,opt,name=result" json:"result,omitempty"`
   209  }
   210  
   211  func (m *AddSequencedLeafResponse) Reset()                    { *m = AddSequencedLeafResponse{} }
   212  func (m *AddSequencedLeafResponse) String() string            { return proto.CompactTextString(m) }
   213  func (*AddSequencedLeafResponse) ProtoMessage()               {}
   214  func (*AddSequencedLeafResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
   215  
   216  func (m *AddSequencedLeafResponse) GetResult() *QueuedLogLeaf {
   217  	if m != nil {
   218  		return m.Result
   219  	}
   220  	return nil
   221  }
   222  
   223  type GetInclusionProofRequest struct {
   224  	LogId     int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   225  	LeafIndex int64     `protobuf:"varint,2,opt,name=leaf_index,json=leafIndex" json:"leaf_index,omitempty"`
   226  	TreeSize  int64     `protobuf:"varint,3,opt,name=tree_size,json=treeSize" json:"tree_size,omitempty"`
   227  	ChargeTo  *ChargeTo `protobuf:"bytes,4,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   228  }
   229  
   230  func (m *GetInclusionProofRequest) Reset()                    { *m = GetInclusionProofRequest{} }
   231  func (m *GetInclusionProofRequest) String() string            { return proto.CompactTextString(m) }
   232  func (*GetInclusionProofRequest) ProtoMessage()               {}
   233  func (*GetInclusionProofRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
   234  
   235  func (m *GetInclusionProofRequest) GetLogId() int64 {
   236  	if m != nil {
   237  		return m.LogId
   238  	}
   239  	return 0
   240  }
   241  
   242  func (m *GetInclusionProofRequest) GetLeafIndex() int64 {
   243  	if m != nil {
   244  		return m.LeafIndex
   245  	}
   246  	return 0
   247  }
   248  
   249  func (m *GetInclusionProofRequest) GetTreeSize() int64 {
   250  	if m != nil {
   251  		return m.TreeSize
   252  	}
   253  	return 0
   254  }
   255  
   256  func (m *GetInclusionProofRequest) GetChargeTo() *ChargeTo {
   257  	if m != nil {
   258  		return m.ChargeTo
   259  	}
   260  	return nil
   261  }
   262  
   263  type GetInclusionProofResponse struct {
   264  	Proof         *Proof         `protobuf:"bytes,2,opt,name=proof" json:"proof,omitempty"`
   265  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   266  }
   267  
   268  func (m *GetInclusionProofResponse) Reset()                    { *m = GetInclusionProofResponse{} }
   269  func (m *GetInclusionProofResponse) String() string            { return proto.CompactTextString(m) }
   270  func (*GetInclusionProofResponse) ProtoMessage()               {}
   271  func (*GetInclusionProofResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
   272  
   273  func (m *GetInclusionProofResponse) GetProof() *Proof {
   274  	if m != nil {
   275  		return m.Proof
   276  	}
   277  	return nil
   278  }
   279  
   280  func (m *GetInclusionProofResponse) GetSignedLogRoot() *SignedLogRoot {
   281  	if m != nil {
   282  		return m.SignedLogRoot
   283  	}
   284  	return nil
   285  }
   286  
   287  type GetInclusionProofByHashRequest struct {
   288  	LogId           int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   289  	LeafHash        []byte    `protobuf:"bytes,2,opt,name=leaf_hash,json=leafHash,proto3" json:"leaf_hash,omitempty"`
   290  	TreeSize        int64     `protobuf:"varint,3,opt,name=tree_size,json=treeSize" json:"tree_size,omitempty"`
   291  	OrderBySequence bool      `protobuf:"varint,4,opt,name=order_by_sequence,json=orderBySequence" json:"order_by_sequence,omitempty"`
   292  	ChargeTo        *ChargeTo `protobuf:"bytes,5,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   293  }
   294  
   295  func (m *GetInclusionProofByHashRequest) Reset()                    { *m = GetInclusionProofByHashRequest{} }
   296  func (m *GetInclusionProofByHashRequest) String() string            { return proto.CompactTextString(m) }
   297  func (*GetInclusionProofByHashRequest) ProtoMessage()               {}
   298  func (*GetInclusionProofByHashRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
   299  
   300  func (m *GetInclusionProofByHashRequest) GetLogId() int64 {
   301  	if m != nil {
   302  		return m.LogId
   303  	}
   304  	return 0
   305  }
   306  
   307  func (m *GetInclusionProofByHashRequest) GetLeafHash() []byte {
   308  	if m != nil {
   309  		return m.LeafHash
   310  	}
   311  	return nil
   312  }
   313  
   314  func (m *GetInclusionProofByHashRequest) GetTreeSize() int64 {
   315  	if m != nil {
   316  		return m.TreeSize
   317  	}
   318  	return 0
   319  }
   320  
   321  func (m *GetInclusionProofByHashRequest) GetOrderBySequence() bool {
   322  	if m != nil {
   323  		return m.OrderBySequence
   324  	}
   325  	return false
   326  }
   327  
   328  func (m *GetInclusionProofByHashRequest) GetChargeTo() *ChargeTo {
   329  	if m != nil {
   330  		return m.ChargeTo
   331  	}
   332  	return nil
   333  }
   334  
   335  type GetInclusionProofByHashResponse struct {
   336  	// Logs can potentially contain leaves with duplicate hashes so it's possible
   337  	// for this to return multiple proofs.
   338  	// TODO(gbelvin) only return one proof.
   339  	Proof         []*Proof       `protobuf:"bytes,2,rep,name=proof" json:"proof,omitempty"`
   340  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   341  }
   342  
   343  func (m *GetInclusionProofByHashResponse) Reset()                    { *m = GetInclusionProofByHashResponse{} }
   344  func (m *GetInclusionProofByHashResponse) String() string            { return proto.CompactTextString(m) }
   345  func (*GetInclusionProofByHashResponse) ProtoMessage()               {}
   346  func (*GetInclusionProofByHashResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
   347  
   348  func (m *GetInclusionProofByHashResponse) GetProof() []*Proof {
   349  	if m != nil {
   350  		return m.Proof
   351  	}
   352  	return nil
   353  }
   354  
   355  func (m *GetInclusionProofByHashResponse) GetSignedLogRoot() *SignedLogRoot {
   356  	if m != nil {
   357  		return m.SignedLogRoot
   358  	}
   359  	return nil
   360  }
   361  
   362  type GetConsistencyProofRequest struct {
   363  	LogId          int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   364  	FirstTreeSize  int64     `protobuf:"varint,2,opt,name=first_tree_size,json=firstTreeSize" json:"first_tree_size,omitempty"`
   365  	SecondTreeSize int64     `protobuf:"varint,3,opt,name=second_tree_size,json=secondTreeSize" json:"second_tree_size,omitempty"`
   366  	ChargeTo       *ChargeTo `protobuf:"bytes,4,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   367  }
   368  
   369  func (m *GetConsistencyProofRequest) Reset()                    { *m = GetConsistencyProofRequest{} }
   370  func (m *GetConsistencyProofRequest) String() string            { return proto.CompactTextString(m) }
   371  func (*GetConsistencyProofRequest) ProtoMessage()               {}
   372  func (*GetConsistencyProofRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
   373  
   374  func (m *GetConsistencyProofRequest) GetLogId() int64 {
   375  	if m != nil {
   376  		return m.LogId
   377  	}
   378  	return 0
   379  }
   380  
   381  func (m *GetConsistencyProofRequest) GetFirstTreeSize() int64 {
   382  	if m != nil {
   383  		return m.FirstTreeSize
   384  	}
   385  	return 0
   386  }
   387  
   388  func (m *GetConsistencyProofRequest) GetSecondTreeSize() int64 {
   389  	if m != nil {
   390  		return m.SecondTreeSize
   391  	}
   392  	return 0
   393  }
   394  
   395  func (m *GetConsistencyProofRequest) GetChargeTo() *ChargeTo {
   396  	if m != nil {
   397  		return m.ChargeTo
   398  	}
   399  	return nil
   400  }
   401  
   402  type GetConsistencyProofResponse struct {
   403  	Proof         *Proof         `protobuf:"bytes,2,opt,name=proof" json:"proof,omitempty"`
   404  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   405  }
   406  
   407  func (m *GetConsistencyProofResponse) Reset()                    { *m = GetConsistencyProofResponse{} }
   408  func (m *GetConsistencyProofResponse) String() string            { return proto.CompactTextString(m) }
   409  func (*GetConsistencyProofResponse) ProtoMessage()               {}
   410  func (*GetConsistencyProofResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
   411  
   412  func (m *GetConsistencyProofResponse) GetProof() *Proof {
   413  	if m != nil {
   414  		return m.Proof
   415  	}
   416  	return nil
   417  }
   418  
   419  func (m *GetConsistencyProofResponse) GetSignedLogRoot() *SignedLogRoot {
   420  	if m != nil {
   421  		return m.SignedLogRoot
   422  	}
   423  	return nil
   424  }
   425  
   426  type GetLatestSignedLogRootRequest struct {
   427  	LogId    int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   428  	ChargeTo *ChargeTo `protobuf:"bytes,2,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   429  }
   430  
   431  func (m *GetLatestSignedLogRootRequest) Reset()                    { *m = GetLatestSignedLogRootRequest{} }
   432  func (m *GetLatestSignedLogRootRequest) String() string            { return proto.CompactTextString(m) }
   433  func (*GetLatestSignedLogRootRequest) ProtoMessage()               {}
   434  func (*GetLatestSignedLogRootRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
   435  
   436  func (m *GetLatestSignedLogRootRequest) GetLogId() int64 {
   437  	if m != nil {
   438  		return m.LogId
   439  	}
   440  	return 0
   441  }
   442  
   443  func (m *GetLatestSignedLogRootRequest) GetChargeTo() *ChargeTo {
   444  	if m != nil {
   445  		return m.ChargeTo
   446  	}
   447  	return nil
   448  }
   449  
   450  type GetLatestSignedLogRootResponse struct {
   451  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,2,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   452  }
   453  
   454  func (m *GetLatestSignedLogRootResponse) Reset()                    { *m = GetLatestSignedLogRootResponse{} }
   455  func (m *GetLatestSignedLogRootResponse) String() string            { return proto.CompactTextString(m) }
   456  func (*GetLatestSignedLogRootResponse) ProtoMessage()               {}
   457  func (*GetLatestSignedLogRootResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
   458  
   459  func (m *GetLatestSignedLogRootResponse) GetSignedLogRoot() *SignedLogRoot {
   460  	if m != nil {
   461  		return m.SignedLogRoot
   462  	}
   463  	return nil
   464  }
   465  
   466  type GetSequencedLeafCountRequest struct {
   467  	LogId    int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   468  	ChargeTo *ChargeTo `protobuf:"bytes,2,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   469  }
   470  
   471  func (m *GetSequencedLeafCountRequest) Reset()                    { *m = GetSequencedLeafCountRequest{} }
   472  func (m *GetSequencedLeafCountRequest) String() string            { return proto.CompactTextString(m) }
   473  func (*GetSequencedLeafCountRequest) ProtoMessage()               {}
   474  func (*GetSequencedLeafCountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
   475  
   476  func (m *GetSequencedLeafCountRequest) GetLogId() int64 {
   477  	if m != nil {
   478  		return m.LogId
   479  	}
   480  	return 0
   481  }
   482  
   483  func (m *GetSequencedLeafCountRequest) GetChargeTo() *ChargeTo {
   484  	if m != nil {
   485  		return m.ChargeTo
   486  	}
   487  	return nil
   488  }
   489  
   490  type GetSequencedLeafCountResponse struct {
   491  	LeafCount int64 `protobuf:"varint,2,opt,name=leaf_count,json=leafCount" json:"leaf_count,omitempty"`
   492  }
   493  
   494  func (m *GetSequencedLeafCountResponse) Reset()                    { *m = GetSequencedLeafCountResponse{} }
   495  func (m *GetSequencedLeafCountResponse) String() string            { return proto.CompactTextString(m) }
   496  func (*GetSequencedLeafCountResponse) ProtoMessage()               {}
   497  func (*GetSequencedLeafCountResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
   498  
   499  func (m *GetSequencedLeafCountResponse) GetLeafCount() int64 {
   500  	if m != nil {
   501  		return m.LeafCount
   502  	}
   503  	return 0
   504  }
   505  
   506  type GetEntryAndProofRequest struct {
   507  	LogId     int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   508  	LeafIndex int64     `protobuf:"varint,2,opt,name=leaf_index,json=leafIndex" json:"leaf_index,omitempty"`
   509  	TreeSize  int64     `protobuf:"varint,3,opt,name=tree_size,json=treeSize" json:"tree_size,omitempty"`
   510  	ChargeTo  *ChargeTo `protobuf:"bytes,4,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   511  }
   512  
   513  func (m *GetEntryAndProofRequest) Reset()                    { *m = GetEntryAndProofRequest{} }
   514  func (m *GetEntryAndProofRequest) String() string            { return proto.CompactTextString(m) }
   515  func (*GetEntryAndProofRequest) ProtoMessage()               {}
   516  func (*GetEntryAndProofRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
   517  
   518  func (m *GetEntryAndProofRequest) GetLogId() int64 {
   519  	if m != nil {
   520  		return m.LogId
   521  	}
   522  	return 0
   523  }
   524  
   525  func (m *GetEntryAndProofRequest) GetLeafIndex() int64 {
   526  	if m != nil {
   527  		return m.LeafIndex
   528  	}
   529  	return 0
   530  }
   531  
   532  func (m *GetEntryAndProofRequest) GetTreeSize() int64 {
   533  	if m != nil {
   534  		return m.TreeSize
   535  	}
   536  	return 0
   537  }
   538  
   539  func (m *GetEntryAndProofRequest) GetChargeTo() *ChargeTo {
   540  	if m != nil {
   541  		return m.ChargeTo
   542  	}
   543  	return nil
   544  }
   545  
   546  type GetEntryAndProofResponse struct {
   547  	Proof         *Proof         `protobuf:"bytes,2,opt,name=proof" json:"proof,omitempty"`
   548  	Leaf          *LogLeaf       `protobuf:"bytes,3,opt,name=leaf" json:"leaf,omitempty"`
   549  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,4,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   550  }
   551  
   552  func (m *GetEntryAndProofResponse) Reset()                    { *m = GetEntryAndProofResponse{} }
   553  func (m *GetEntryAndProofResponse) String() string            { return proto.CompactTextString(m) }
   554  func (*GetEntryAndProofResponse) ProtoMessage()               {}
   555  func (*GetEntryAndProofResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
   556  
   557  func (m *GetEntryAndProofResponse) GetProof() *Proof {
   558  	if m != nil {
   559  		return m.Proof
   560  	}
   561  	return nil
   562  }
   563  
   564  func (m *GetEntryAndProofResponse) GetLeaf() *LogLeaf {
   565  	if m != nil {
   566  		return m.Leaf
   567  	}
   568  	return nil
   569  }
   570  
   571  func (m *GetEntryAndProofResponse) GetSignedLogRoot() *SignedLogRoot {
   572  	if m != nil {
   573  		return m.SignedLogRoot
   574  	}
   575  	return nil
   576  }
   577  
   578  type InitLogRequest struct {
   579  	LogId    int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   580  	ChargeTo *ChargeTo `protobuf:"bytes,2,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   581  }
   582  
   583  func (m *InitLogRequest) Reset()                    { *m = InitLogRequest{} }
   584  func (m *InitLogRequest) String() string            { return proto.CompactTextString(m) }
   585  func (*InitLogRequest) ProtoMessage()               {}
   586  func (*InitLogRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
   587  
   588  func (m *InitLogRequest) GetLogId() int64 {
   589  	if m != nil {
   590  		return m.LogId
   591  	}
   592  	return 0
   593  }
   594  
   595  func (m *InitLogRequest) GetChargeTo() *ChargeTo {
   596  	if m != nil {
   597  		return m.ChargeTo
   598  	}
   599  	return nil
   600  }
   601  
   602  type InitLogResponse struct {
   603  	Created *SignedLogRoot `protobuf:"bytes,1,opt,name=created" json:"created,omitempty"`
   604  }
   605  
   606  func (m *InitLogResponse) Reset()                    { *m = InitLogResponse{} }
   607  func (m *InitLogResponse) String() string            { return proto.CompactTextString(m) }
   608  func (*InitLogResponse) ProtoMessage()               {}
   609  func (*InitLogResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
   610  
   611  func (m *InitLogResponse) GetCreated() *SignedLogRoot {
   612  	if m != nil {
   613  		return m.Created
   614  	}
   615  	return nil
   616  }
   617  
   618  type QueueLeavesRequest struct {
   619  	LogId    int64      `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   620  	Leaves   []*LogLeaf `protobuf:"bytes,2,rep,name=leaves" json:"leaves,omitempty"`
   621  	ChargeTo *ChargeTo  `protobuf:"bytes,3,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   622  }
   623  
   624  func (m *QueueLeavesRequest) Reset()                    { *m = QueueLeavesRequest{} }
   625  func (m *QueueLeavesRequest) String() string            { return proto.CompactTextString(m) }
   626  func (*QueueLeavesRequest) ProtoMessage()               {}
   627  func (*QueueLeavesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
   628  
   629  func (m *QueueLeavesRequest) GetLogId() int64 {
   630  	if m != nil {
   631  		return m.LogId
   632  	}
   633  	return 0
   634  }
   635  
   636  func (m *QueueLeavesRequest) GetLeaves() []*LogLeaf {
   637  	if m != nil {
   638  		return m.Leaves
   639  	}
   640  	return nil
   641  }
   642  
   643  func (m *QueueLeavesRequest) GetChargeTo() *ChargeTo {
   644  	if m != nil {
   645  		return m.ChargeTo
   646  	}
   647  	return nil
   648  }
   649  
   650  type QueueLeavesResponse struct {
   651  	// Same number and order as in the corresponding request.
   652  	QueuedLeaves []*QueuedLogLeaf `protobuf:"bytes,2,rep,name=queued_leaves,json=queuedLeaves" json:"queued_leaves,omitempty"`
   653  }
   654  
   655  func (m *QueueLeavesResponse) Reset()                    { *m = QueueLeavesResponse{} }
   656  func (m *QueueLeavesResponse) String() string            { return proto.CompactTextString(m) }
   657  func (*QueueLeavesResponse) ProtoMessage()               {}
   658  func (*QueueLeavesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
   659  
   660  func (m *QueueLeavesResponse) GetQueuedLeaves() []*QueuedLogLeaf {
   661  	if m != nil {
   662  		return m.QueuedLeaves
   663  	}
   664  	return nil
   665  }
   666  
   667  type AddSequencedLeavesRequest struct {
   668  	LogId    int64      `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   669  	Leaves   []*LogLeaf `protobuf:"bytes,2,rep,name=leaves" json:"leaves,omitempty"`
   670  	ChargeTo *ChargeTo  `protobuf:"bytes,4,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   671  }
   672  
   673  func (m *AddSequencedLeavesRequest) Reset()                    { *m = AddSequencedLeavesRequest{} }
   674  func (m *AddSequencedLeavesRequest) String() string            { return proto.CompactTextString(m) }
   675  func (*AddSequencedLeavesRequest) ProtoMessage()               {}
   676  func (*AddSequencedLeavesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
   677  
   678  func (m *AddSequencedLeavesRequest) GetLogId() int64 {
   679  	if m != nil {
   680  		return m.LogId
   681  	}
   682  	return 0
   683  }
   684  
   685  func (m *AddSequencedLeavesRequest) GetLeaves() []*LogLeaf {
   686  	if m != nil {
   687  		return m.Leaves
   688  	}
   689  	return nil
   690  }
   691  
   692  func (m *AddSequencedLeavesRequest) GetChargeTo() *ChargeTo {
   693  	if m != nil {
   694  		return m.ChargeTo
   695  	}
   696  	return nil
   697  }
   698  
   699  type AddSequencedLeavesResponse struct {
   700  	// Same number and order as in the corresponding request.
   701  	Results []*QueuedLogLeaf `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
   702  }
   703  
   704  func (m *AddSequencedLeavesResponse) Reset()                    { *m = AddSequencedLeavesResponse{} }
   705  func (m *AddSequencedLeavesResponse) String() string            { return proto.CompactTextString(m) }
   706  func (*AddSequencedLeavesResponse) ProtoMessage()               {}
   707  func (*AddSequencedLeavesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
   708  
   709  func (m *AddSequencedLeavesResponse) GetResults() []*QueuedLogLeaf {
   710  	if m != nil {
   711  		return m.Results
   712  	}
   713  	return nil
   714  }
   715  
   716  type GetLeavesByIndexRequest struct {
   717  	LogId     int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   718  	LeafIndex []int64   `protobuf:"varint,2,rep,packed,name=leaf_index,json=leafIndex" json:"leaf_index,omitempty"`
   719  	ChargeTo  *ChargeTo `protobuf:"bytes,5,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   720  }
   721  
   722  func (m *GetLeavesByIndexRequest) Reset()                    { *m = GetLeavesByIndexRequest{} }
   723  func (m *GetLeavesByIndexRequest) String() string            { return proto.CompactTextString(m) }
   724  func (*GetLeavesByIndexRequest) ProtoMessage()               {}
   725  func (*GetLeavesByIndexRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
   726  
   727  func (m *GetLeavesByIndexRequest) GetLogId() int64 {
   728  	if m != nil {
   729  		return m.LogId
   730  	}
   731  	return 0
   732  }
   733  
   734  func (m *GetLeavesByIndexRequest) GetLeafIndex() []int64 {
   735  	if m != nil {
   736  		return m.LeafIndex
   737  	}
   738  	return nil
   739  }
   740  
   741  func (m *GetLeavesByIndexRequest) GetChargeTo() *ChargeTo {
   742  	if m != nil {
   743  		return m.ChargeTo
   744  	}
   745  	return nil
   746  }
   747  
   748  type GetLeavesByIndexResponse struct {
   749  	// TODO(gbelvin) reply with error codes. Reuse QueuedLogLeaf?
   750  	Leaves        []*LogLeaf     `protobuf:"bytes,2,rep,name=leaves" json:"leaves,omitempty"`
   751  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   752  }
   753  
   754  func (m *GetLeavesByIndexResponse) Reset()                    { *m = GetLeavesByIndexResponse{} }
   755  func (m *GetLeavesByIndexResponse) String() string            { return proto.CompactTextString(m) }
   756  func (*GetLeavesByIndexResponse) ProtoMessage()               {}
   757  func (*GetLeavesByIndexResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
   758  
   759  func (m *GetLeavesByIndexResponse) GetLeaves() []*LogLeaf {
   760  	if m != nil {
   761  		return m.Leaves
   762  	}
   763  	return nil
   764  }
   765  
   766  func (m *GetLeavesByIndexResponse) GetSignedLogRoot() *SignedLogRoot {
   767  	if m != nil {
   768  		return m.SignedLogRoot
   769  	}
   770  	return nil
   771  }
   772  
   773  type GetLeavesByRangeRequest struct {
   774  	LogId      int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   775  	StartIndex int64     `protobuf:"varint,2,opt,name=start_index,json=startIndex" json:"start_index,omitempty"`
   776  	Count      int64     `protobuf:"varint,3,opt,name=count" json:"count,omitempty"`
   777  	ChargeTo   *ChargeTo `protobuf:"bytes,4,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   778  }
   779  
   780  func (m *GetLeavesByRangeRequest) Reset()                    { *m = GetLeavesByRangeRequest{} }
   781  func (m *GetLeavesByRangeRequest) String() string            { return proto.CompactTextString(m) }
   782  func (*GetLeavesByRangeRequest) ProtoMessage()               {}
   783  func (*GetLeavesByRangeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
   784  
   785  func (m *GetLeavesByRangeRequest) GetLogId() int64 {
   786  	if m != nil {
   787  		return m.LogId
   788  	}
   789  	return 0
   790  }
   791  
   792  func (m *GetLeavesByRangeRequest) GetStartIndex() int64 {
   793  	if m != nil {
   794  		return m.StartIndex
   795  	}
   796  	return 0
   797  }
   798  
   799  func (m *GetLeavesByRangeRequest) GetCount() int64 {
   800  	if m != nil {
   801  		return m.Count
   802  	}
   803  	return 0
   804  }
   805  
   806  func (m *GetLeavesByRangeRequest) GetChargeTo() *ChargeTo {
   807  	if m != nil {
   808  		return m.ChargeTo
   809  	}
   810  	return nil
   811  }
   812  
   813  type GetLeavesByRangeResponse struct {
   814  	// Returned log leaves starting from the `start_index` of the request, in
   815  	// order. There may be fewer than `request.count` leaves returned, if the
   816  	// requested range extended beyond the size of the tree or if the server opted
   817  	// to return fewer leaves than requested.
   818  	Leaves        []*LogLeaf     `protobuf:"bytes,1,rep,name=leaves" json:"leaves,omitempty"`
   819  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,2,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   820  }
   821  
   822  func (m *GetLeavesByRangeResponse) Reset()                    { *m = GetLeavesByRangeResponse{} }
   823  func (m *GetLeavesByRangeResponse) String() string            { return proto.CompactTextString(m) }
   824  func (*GetLeavesByRangeResponse) ProtoMessage()               {}
   825  func (*GetLeavesByRangeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
   826  
   827  func (m *GetLeavesByRangeResponse) GetLeaves() []*LogLeaf {
   828  	if m != nil {
   829  		return m.Leaves
   830  	}
   831  	return nil
   832  }
   833  
   834  func (m *GetLeavesByRangeResponse) GetSignedLogRoot() *SignedLogRoot {
   835  	if m != nil {
   836  		return m.SignedLogRoot
   837  	}
   838  	return nil
   839  }
   840  
   841  type GetLeavesByHashRequest struct {
   842  	LogId           int64     `protobuf:"varint,1,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   843  	LeafHash        [][]byte  `protobuf:"bytes,2,rep,name=leaf_hash,json=leafHash,proto3" json:"leaf_hash,omitempty"`
   844  	OrderBySequence bool      `protobuf:"varint,3,opt,name=order_by_sequence,json=orderBySequence" json:"order_by_sequence,omitempty"`
   845  	ChargeTo        *ChargeTo `protobuf:"bytes,5,opt,name=charge_to,json=chargeTo" json:"charge_to,omitempty"`
   846  }
   847  
   848  func (m *GetLeavesByHashRequest) Reset()                    { *m = GetLeavesByHashRequest{} }
   849  func (m *GetLeavesByHashRequest) String() string            { return proto.CompactTextString(m) }
   850  func (*GetLeavesByHashRequest) ProtoMessage()               {}
   851  func (*GetLeavesByHashRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
   852  
   853  func (m *GetLeavesByHashRequest) GetLogId() int64 {
   854  	if m != nil {
   855  		return m.LogId
   856  	}
   857  	return 0
   858  }
   859  
   860  func (m *GetLeavesByHashRequest) GetLeafHash() [][]byte {
   861  	if m != nil {
   862  		return m.LeafHash
   863  	}
   864  	return nil
   865  }
   866  
   867  func (m *GetLeavesByHashRequest) GetOrderBySequence() bool {
   868  	if m != nil {
   869  		return m.OrderBySequence
   870  	}
   871  	return false
   872  }
   873  
   874  func (m *GetLeavesByHashRequest) GetChargeTo() *ChargeTo {
   875  	if m != nil {
   876  		return m.ChargeTo
   877  	}
   878  	return nil
   879  }
   880  
   881  type GetLeavesByHashResponse struct {
   882  	// TODO(gbelvin) reply with error codes. Reuse QueuedLogLeaf?
   883  	Leaves        []*LogLeaf     `protobuf:"bytes,2,rep,name=leaves" json:"leaves,omitempty"`
   884  	SignedLogRoot *SignedLogRoot `protobuf:"bytes,3,opt,name=signed_log_root,json=signedLogRoot" json:"signed_log_root,omitempty"`
   885  }
   886  
   887  func (m *GetLeavesByHashResponse) Reset()                    { *m = GetLeavesByHashResponse{} }
   888  func (m *GetLeavesByHashResponse) String() string            { return proto.CompactTextString(m) }
   889  func (*GetLeavesByHashResponse) ProtoMessage()               {}
   890  func (*GetLeavesByHashResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
   891  
   892  func (m *GetLeavesByHashResponse) GetLeaves() []*LogLeaf {
   893  	if m != nil {
   894  		return m.Leaves
   895  	}
   896  	return nil
   897  }
   898  
   899  func (m *GetLeavesByHashResponse) GetSignedLogRoot() *SignedLogRoot {
   900  	if m != nil {
   901  		return m.SignedLogRoot
   902  	}
   903  	return nil
   904  }
   905  
   906  // A result of submitting an entry to the log. Output only.
   907  // TODO(pavelkalinnikov): Consider renaming it to AddLogLeafResult or the like.
   908  type QueuedLogLeaf struct {
   909  	// The leaf as it was stored by Trillian. Empty unless `status.code` is:
   910  	//  - `google.rpc.OK`: the `leaf` data is the same as in the request.
   911  	//  - `google.rpc.ALREADY_EXISTS` or 'google.rpc.FAILED_PRECONDITION`: the
   912  	//    `leaf` is the conflicting one already in the log.
   913  	Leaf *LogLeaf `protobuf:"bytes,1,opt,name=leaf" json:"leaf,omitempty"`
   914  	// The status of adding the leaf.
   915  	//  - `google.rpc.OK`: successfully added.
   916  	//  - `google.rpc.ALREADY_EXISTS`: the leaf is a duplicate of an already
   917  	//    existing one. Either `leaf_identity_hash` is the same in the `LOG`
   918  	//    mode, or `leaf_index` in the `PREORDERED_LOG`.
   919  	//  - `google.rpc.FAILED_PRECONDITION`: A conflicting entry is already
   920  	//    present in the log, e.g., same `leaf_index` but different `leaf_data`.
   921  	Status *google_rpc.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
   922  }
   923  
   924  func (m *QueuedLogLeaf) Reset()                    { *m = QueuedLogLeaf{} }
   925  func (m *QueuedLogLeaf) String() string            { return proto.CompactTextString(m) }
   926  func (*QueuedLogLeaf) ProtoMessage()               {}
   927  func (*QueuedLogLeaf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
   928  
   929  func (m *QueuedLogLeaf) GetLeaf() *LogLeaf {
   930  	if m != nil {
   931  		return m.Leaf
   932  	}
   933  	return nil
   934  }
   935  
   936  func (m *QueuedLogLeaf) GetStatus() *google_rpc.Status {
   937  	if m != nil {
   938  		return m.Status
   939  	}
   940  	return nil
   941  }
   942  
   943  // A leaf of the log's Merkle tree, corresponds to a single log entry. Each leaf
   944  // has a unique `leaf_index` in the scope of this tree.
   945  type LogLeaf struct {
   946  	// Output only. The hash over `leaf_data`.
   947  	MerkleLeafHash []byte `protobuf:"bytes,1,opt,name=merkle_leaf_hash,json=merkleLeafHash,proto3" json:"merkle_leaf_hash,omitempty"`
   948  	// Required. The arbitrary data associated with this log entry. Validity of
   949  	// this field is governed by the call site (personality).
   950  	LeafValue []byte `protobuf:"bytes,2,opt,name=leaf_value,json=leafValue,proto3" json:"leaf_value,omitempty"`
   951  	// The arbitrary metadata, e.g., a timestamp.
   952  	ExtraData []byte `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"`
   953  	// Output only in `LOG` mode. Required in `PREORDERED_LOG` mode.
   954  	// The index of the leaf in the Merkle tree, i.e., the position of the
   955  	// corresponding entry in the log. For normal logs this value will be
   956  	// assigned by the LogSigner.
   957  	LeafIndex int64 `protobuf:"varint,4,opt,name=leaf_index,json=leafIndex" json:"leaf_index,omitempty"`
   958  	// The hash over the identity of this leaf. If empty, assumed to be the same
   959  	// as `merkle_leaf_hash`. It is a mechanism for the personality to provide a
   960  	// hint to Trillian that two leaves should be considered "duplicates" even
   961  	// though their `leaf_value`s differ.
   962  	//
   963  	// E.g., in a CT personality multiple `add-chain` calls for an identical
   964  	// certificate would produce differing `leaf_data` bytes (due to the
   965  	// presence of SCT elements), with just this information Trillian would be
   966  	// unable to determine that. Within the context of the CT personality, these
   967  	// entries are dupes, so it sets `leaf_identity_hash` to `H(cert)`, which
   968  	// allows Trillian to detect the duplicates.
   969  	//
   970  	// Continuing the CT example, for a CT mirror personality (which must allow
   971  	// dupes since the source log could contain them), the part of the
   972  	// personality which fetches and submits the entries might set
   973  	// `leaf_identity_hash` to `H(leaf_index||cert)`.
   974  	// TODO(pavelkalinnikov): Consider instead using `H(cert)` and allowing
   975  	// identity hash dupes in `PREORDERED_LOG` mode, for it can later be
   976  	// upgraded to `LOG` which will need to correctly detect duplicates with
   977  	// older entries when new ones get queued.
   978  	LeafIdentityHash []byte `protobuf:"bytes,5,opt,name=leaf_identity_hash,json=leafIdentityHash,proto3" json:"leaf_identity_hash,omitempty"`
   979  	// Output only. The time at which this leaf was passed to `QueueLeaves`.
   980  	// This value will be determined and set by the LogServer. Equals zero if
   981  	// the entry was submitted without queuing.
   982  	QueueTimestamp *google_protobuf1.Timestamp `protobuf:"bytes,6,opt,name=queue_timestamp,json=queueTimestamp" json:"queue_timestamp,omitempty"`
   983  	// Output only. The time at which this leaf was integrated into the tree.
   984  	// This value will be determined and set by the LogSigner.
   985  	IntegrateTimestamp *google_protobuf1.Timestamp `protobuf:"bytes,7,opt,name=integrate_timestamp,json=integrateTimestamp" json:"integrate_timestamp,omitempty"`
   986  }
   987  
   988  func (m *LogLeaf) Reset()                    { *m = LogLeaf{} }
   989  func (m *LogLeaf) String() string            { return proto.CompactTextString(m) }
   990  func (*LogLeaf) ProtoMessage()               {}
   991  func (*LogLeaf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
   992  
   993  func (m *LogLeaf) GetMerkleLeafHash() []byte {
   994  	if m != nil {
   995  		return m.MerkleLeafHash
   996  	}
   997  	return nil
   998  }
   999  
  1000  func (m *LogLeaf) GetLeafValue() []byte {
  1001  	if m != nil {
  1002  		return m.LeafValue
  1003  	}
  1004  	return nil
  1005  }
  1006  
  1007  func (m *LogLeaf) GetExtraData() []byte {
  1008  	if m != nil {
  1009  		return m.ExtraData
  1010  	}
  1011  	return nil
  1012  }
  1013  
  1014  func (m *LogLeaf) GetLeafIndex() int64 {
  1015  	if m != nil {
  1016  		return m.LeafIndex
  1017  	}
  1018  	return 0
  1019  }
  1020  
  1021  func (m *LogLeaf) GetLeafIdentityHash() []byte {
  1022  	if m != nil {
  1023  		return m.LeafIdentityHash
  1024  	}
  1025  	return nil
  1026  }
  1027  
  1028  func (m *LogLeaf) GetQueueTimestamp() *google_protobuf1.Timestamp {
  1029  	if m != nil {
  1030  		return m.QueueTimestamp
  1031  	}
  1032  	return nil
  1033  }
  1034  
  1035  func (m *LogLeaf) GetIntegrateTimestamp() *google_protobuf1.Timestamp {
  1036  	if m != nil {
  1037  		return m.IntegrateTimestamp
  1038  	}
  1039  	return nil
  1040  }
  1041  
  1042  // A consistency or inclusion proof for a Merkle tree. Output only.
  1043  type Proof struct {
  1044  	LeafIndex int64    `protobuf:"varint,1,opt,name=leaf_index,json=leafIndex" json:"leaf_index,omitempty"`
  1045  	Hashes    [][]byte `protobuf:"bytes,3,rep,name=hashes,proto3" json:"hashes,omitempty"`
  1046  }
  1047  
  1048  func (m *Proof) Reset()                    { *m = Proof{} }
  1049  func (m *Proof) String() string            { return proto.CompactTextString(m) }
  1050  func (*Proof) ProtoMessage()               {}
  1051  func (*Proof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
  1052  
  1053  func (m *Proof) GetLeafIndex() int64 {
  1054  	if m != nil {
  1055  		return m.LeafIndex
  1056  	}
  1057  	return 0
  1058  }
  1059  
  1060  func (m *Proof) GetHashes() [][]byte {
  1061  	if m != nil {
  1062  		return m.Hashes
  1063  	}
  1064  	return nil
  1065  }
  1066  
  1067  func init() {
  1068  	proto.RegisterType((*ChargeTo)(nil), "trillian.ChargeTo")
  1069  	proto.RegisterType((*QueueLeafRequest)(nil), "trillian.QueueLeafRequest")
  1070  	proto.RegisterType((*QueueLeafResponse)(nil), "trillian.QueueLeafResponse")
  1071  	proto.RegisterType((*AddSequencedLeafRequest)(nil), "trillian.AddSequencedLeafRequest")
  1072  	proto.RegisterType((*AddSequencedLeafResponse)(nil), "trillian.AddSequencedLeafResponse")
  1073  	proto.RegisterType((*GetInclusionProofRequest)(nil), "trillian.GetInclusionProofRequest")
  1074  	proto.RegisterType((*GetInclusionProofResponse)(nil), "trillian.GetInclusionProofResponse")
  1075  	proto.RegisterType((*GetInclusionProofByHashRequest)(nil), "trillian.GetInclusionProofByHashRequest")
  1076  	proto.RegisterType((*GetInclusionProofByHashResponse)(nil), "trillian.GetInclusionProofByHashResponse")
  1077  	proto.RegisterType((*GetConsistencyProofRequest)(nil), "trillian.GetConsistencyProofRequest")
  1078  	proto.RegisterType((*GetConsistencyProofResponse)(nil), "trillian.GetConsistencyProofResponse")
  1079  	proto.RegisterType((*GetLatestSignedLogRootRequest)(nil), "trillian.GetLatestSignedLogRootRequest")
  1080  	proto.RegisterType((*GetLatestSignedLogRootResponse)(nil), "trillian.GetLatestSignedLogRootResponse")
  1081  	proto.RegisterType((*GetSequencedLeafCountRequest)(nil), "trillian.GetSequencedLeafCountRequest")
  1082  	proto.RegisterType((*GetSequencedLeafCountResponse)(nil), "trillian.GetSequencedLeafCountResponse")
  1083  	proto.RegisterType((*GetEntryAndProofRequest)(nil), "trillian.GetEntryAndProofRequest")
  1084  	proto.RegisterType((*GetEntryAndProofResponse)(nil), "trillian.GetEntryAndProofResponse")
  1085  	proto.RegisterType((*InitLogRequest)(nil), "trillian.InitLogRequest")
  1086  	proto.RegisterType((*InitLogResponse)(nil), "trillian.InitLogResponse")
  1087  	proto.RegisterType((*QueueLeavesRequest)(nil), "trillian.QueueLeavesRequest")
  1088  	proto.RegisterType((*QueueLeavesResponse)(nil), "trillian.QueueLeavesResponse")
  1089  	proto.RegisterType((*AddSequencedLeavesRequest)(nil), "trillian.AddSequencedLeavesRequest")
  1090  	proto.RegisterType((*AddSequencedLeavesResponse)(nil), "trillian.AddSequencedLeavesResponse")
  1091  	proto.RegisterType((*GetLeavesByIndexRequest)(nil), "trillian.GetLeavesByIndexRequest")
  1092  	proto.RegisterType((*GetLeavesByIndexResponse)(nil), "trillian.GetLeavesByIndexResponse")
  1093  	proto.RegisterType((*GetLeavesByRangeRequest)(nil), "trillian.GetLeavesByRangeRequest")
  1094  	proto.RegisterType((*GetLeavesByRangeResponse)(nil), "trillian.GetLeavesByRangeResponse")
  1095  	proto.RegisterType((*GetLeavesByHashRequest)(nil), "trillian.GetLeavesByHashRequest")
  1096  	proto.RegisterType((*GetLeavesByHashResponse)(nil), "trillian.GetLeavesByHashResponse")
  1097  	proto.RegisterType((*QueuedLogLeaf)(nil), "trillian.QueuedLogLeaf")
  1098  	proto.RegisterType((*LogLeaf)(nil), "trillian.LogLeaf")
  1099  	proto.RegisterType((*Proof)(nil), "trillian.Proof")
  1100  }
  1101  
  1102  // Reference imports to suppress errors if they are not otherwise used.
  1103  var _ context.Context
  1104  var _ grpc.ClientConn
  1105  
  1106  // This is a compile-time assertion to ensure that this generated file
  1107  // is compatible with the grpc package it is being compiled against.
  1108  const _ = grpc.SupportPackageIsVersion4
  1109  
  1110  // Client API for TrillianLog service
  1111  
  1112  type TrillianLogClient interface {
  1113  	// Adds a single leaf to the queue.
  1114  	QueueLeaf(ctx context.Context, in *QueueLeafRequest, opts ...grpc.CallOption) (*QueueLeafResponse, error)
  1115  	// Adds a single leaf with an assigned sequence number.
  1116  	// Warning: This RPC is under development, don't use it.
  1117  	AddSequencedLeaf(ctx context.Context, in *AddSequencedLeafRequest, opts ...grpc.CallOption) (*AddSequencedLeafResponse, error)
  1118  	// Returns inclusion proof for a leaf with a given index in a given tree.
  1119  	GetInclusionProof(ctx context.Context, in *GetInclusionProofRequest, opts ...grpc.CallOption) (*GetInclusionProofResponse, error)
  1120  	// Returns inclusion proof for a leaf with a given identity hash in a given
  1121  	// tree.
  1122  	GetInclusionProofByHash(ctx context.Context, in *GetInclusionProofByHashRequest, opts ...grpc.CallOption) (*GetInclusionProofByHashResponse, error)
  1123  	// Returns consistency proof between two versions of a given tree.
  1124  	GetConsistencyProof(ctx context.Context, in *GetConsistencyProofRequest, opts ...grpc.CallOption) (*GetConsistencyProofResponse, error)
  1125  	// Returns the latest signed log root for a given tree. Corresponds to the
  1126  	// ReadOnlyLogTreeTX.LatestSignedLogRoot storage interface.
  1127  	GetLatestSignedLogRoot(ctx context.Context, in *GetLatestSignedLogRootRequest, opts ...grpc.CallOption) (*GetLatestSignedLogRootResponse, error)
  1128  	// Returns the total number of leaves that have been integrated into the
  1129  	// given tree. Corresponds to the ReadOnlyLogTreeTX.GetSequencedLeafCount
  1130  	// storage interface.
  1131  	// DO NOT USE - FOR DEBUGGING/TEST ONLY
  1132  	GetSequencedLeafCount(ctx context.Context, in *GetSequencedLeafCountRequest, opts ...grpc.CallOption) (*GetSequencedLeafCountResponse, error)
  1133  	// Returns log entry and the corresponding inclusion proof for a given leaf
  1134  	// index in a given tree. If the requested tree is unavailable but the leaf is in scope
  1135  	// for the current tree, return a proof in that tree instead.
  1136  	GetEntryAndProof(ctx context.Context, in *GetEntryAndProofRequest, opts ...grpc.CallOption) (*GetEntryAndProofResponse, error)
  1137  	InitLog(ctx context.Context, in *InitLogRequest, opts ...grpc.CallOption) (*InitLogResponse, error)
  1138  	// Adds a batch of leaves to the queue.
  1139  	QueueLeaves(ctx context.Context, in *QueueLeavesRequest, opts ...grpc.CallOption) (*QueueLeavesResponse, error)
  1140  	// Stores leaves from the provided batch and associates them with the log
  1141  	// positions according to the `LeafIndex` field. The indices must be
  1142  	// contiguous.
  1143  	//
  1144  	// Warning: This RPC is under development, don't use it.
  1145  	AddSequencedLeaves(ctx context.Context, in *AddSequencedLeavesRequest, opts ...grpc.CallOption) (*AddSequencedLeavesResponse, error)
  1146  	// Returns a batch of leaves located in the provided positions.
  1147  	GetLeavesByIndex(ctx context.Context, in *GetLeavesByIndexRequest, opts ...grpc.CallOption) (*GetLeavesByIndexResponse, error)
  1148  	// Returns a batch of leaves in a sequential range.
  1149  	GetLeavesByRange(ctx context.Context, in *GetLeavesByRangeRequest, opts ...grpc.CallOption) (*GetLeavesByRangeResponse, error)
  1150  	// Returns a batch of leaves by their `merkle_leaf_hash` values.
  1151  	GetLeavesByHash(ctx context.Context, in *GetLeavesByHashRequest, opts ...grpc.CallOption) (*GetLeavesByHashResponse, error)
  1152  }
  1153  
  1154  type trillianLogClient struct {
  1155  	cc *grpc.ClientConn
  1156  }
  1157  
  1158  func NewTrillianLogClient(cc *grpc.ClientConn) TrillianLogClient {
  1159  	return &trillianLogClient{cc}
  1160  }
  1161  
  1162  func (c *trillianLogClient) QueueLeaf(ctx context.Context, in *QueueLeafRequest, opts ...grpc.CallOption) (*QueueLeafResponse, error) {
  1163  	out := new(QueueLeafResponse)
  1164  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/QueueLeaf", in, out, c.cc, opts...)
  1165  	if err != nil {
  1166  		return nil, err
  1167  	}
  1168  	return out, nil
  1169  }
  1170  
  1171  func (c *trillianLogClient) AddSequencedLeaf(ctx context.Context, in *AddSequencedLeafRequest, opts ...grpc.CallOption) (*AddSequencedLeafResponse, error) {
  1172  	out := new(AddSequencedLeafResponse)
  1173  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/AddSequencedLeaf", in, out, c.cc, opts...)
  1174  	if err != nil {
  1175  		return nil, err
  1176  	}
  1177  	return out, nil
  1178  }
  1179  
  1180  func (c *trillianLogClient) GetInclusionProof(ctx context.Context, in *GetInclusionProofRequest, opts ...grpc.CallOption) (*GetInclusionProofResponse, error) {
  1181  	out := new(GetInclusionProofResponse)
  1182  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetInclusionProof", in, out, c.cc, opts...)
  1183  	if err != nil {
  1184  		return nil, err
  1185  	}
  1186  	return out, nil
  1187  }
  1188  
  1189  func (c *trillianLogClient) GetInclusionProofByHash(ctx context.Context, in *GetInclusionProofByHashRequest, opts ...grpc.CallOption) (*GetInclusionProofByHashResponse, error) {
  1190  	out := new(GetInclusionProofByHashResponse)
  1191  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetInclusionProofByHash", in, out, c.cc, opts...)
  1192  	if err != nil {
  1193  		return nil, err
  1194  	}
  1195  	return out, nil
  1196  }
  1197  
  1198  func (c *trillianLogClient) GetConsistencyProof(ctx context.Context, in *GetConsistencyProofRequest, opts ...grpc.CallOption) (*GetConsistencyProofResponse, error) {
  1199  	out := new(GetConsistencyProofResponse)
  1200  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetConsistencyProof", in, out, c.cc, opts...)
  1201  	if err != nil {
  1202  		return nil, err
  1203  	}
  1204  	return out, nil
  1205  }
  1206  
  1207  func (c *trillianLogClient) GetLatestSignedLogRoot(ctx context.Context, in *GetLatestSignedLogRootRequest, opts ...grpc.CallOption) (*GetLatestSignedLogRootResponse, error) {
  1208  	out := new(GetLatestSignedLogRootResponse)
  1209  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetLatestSignedLogRoot", in, out, c.cc, opts...)
  1210  	if err != nil {
  1211  		return nil, err
  1212  	}
  1213  	return out, nil
  1214  }
  1215  
  1216  func (c *trillianLogClient) GetSequencedLeafCount(ctx context.Context, in *GetSequencedLeafCountRequest, opts ...grpc.CallOption) (*GetSequencedLeafCountResponse, error) {
  1217  	out := new(GetSequencedLeafCountResponse)
  1218  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetSequencedLeafCount", in, out, c.cc, opts...)
  1219  	if err != nil {
  1220  		return nil, err
  1221  	}
  1222  	return out, nil
  1223  }
  1224  
  1225  func (c *trillianLogClient) GetEntryAndProof(ctx context.Context, in *GetEntryAndProofRequest, opts ...grpc.CallOption) (*GetEntryAndProofResponse, error) {
  1226  	out := new(GetEntryAndProofResponse)
  1227  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetEntryAndProof", in, out, c.cc, opts...)
  1228  	if err != nil {
  1229  		return nil, err
  1230  	}
  1231  	return out, nil
  1232  }
  1233  
  1234  func (c *trillianLogClient) InitLog(ctx context.Context, in *InitLogRequest, opts ...grpc.CallOption) (*InitLogResponse, error) {
  1235  	out := new(InitLogResponse)
  1236  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/InitLog", in, out, c.cc, opts...)
  1237  	if err != nil {
  1238  		return nil, err
  1239  	}
  1240  	return out, nil
  1241  }
  1242  
  1243  func (c *trillianLogClient) QueueLeaves(ctx context.Context, in *QueueLeavesRequest, opts ...grpc.CallOption) (*QueueLeavesResponse, error) {
  1244  	out := new(QueueLeavesResponse)
  1245  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/QueueLeaves", in, out, c.cc, opts...)
  1246  	if err != nil {
  1247  		return nil, err
  1248  	}
  1249  	return out, nil
  1250  }
  1251  
  1252  func (c *trillianLogClient) AddSequencedLeaves(ctx context.Context, in *AddSequencedLeavesRequest, opts ...grpc.CallOption) (*AddSequencedLeavesResponse, error) {
  1253  	out := new(AddSequencedLeavesResponse)
  1254  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/AddSequencedLeaves", in, out, c.cc, opts...)
  1255  	if err != nil {
  1256  		return nil, err
  1257  	}
  1258  	return out, nil
  1259  }
  1260  
  1261  func (c *trillianLogClient) GetLeavesByIndex(ctx context.Context, in *GetLeavesByIndexRequest, opts ...grpc.CallOption) (*GetLeavesByIndexResponse, error) {
  1262  	out := new(GetLeavesByIndexResponse)
  1263  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetLeavesByIndex", in, out, c.cc, opts...)
  1264  	if err != nil {
  1265  		return nil, err
  1266  	}
  1267  	return out, nil
  1268  }
  1269  
  1270  func (c *trillianLogClient) GetLeavesByRange(ctx context.Context, in *GetLeavesByRangeRequest, opts ...grpc.CallOption) (*GetLeavesByRangeResponse, error) {
  1271  	out := new(GetLeavesByRangeResponse)
  1272  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetLeavesByRange", in, out, c.cc, opts...)
  1273  	if err != nil {
  1274  		return nil, err
  1275  	}
  1276  	return out, nil
  1277  }
  1278  
  1279  func (c *trillianLogClient) GetLeavesByHash(ctx context.Context, in *GetLeavesByHashRequest, opts ...grpc.CallOption) (*GetLeavesByHashResponse, error) {
  1280  	out := new(GetLeavesByHashResponse)
  1281  	err := grpc.Invoke(ctx, "/trillian.TrillianLog/GetLeavesByHash", in, out, c.cc, opts...)
  1282  	if err != nil {
  1283  		return nil, err
  1284  	}
  1285  	return out, nil
  1286  }
  1287  
  1288  // Server API for TrillianLog service
  1289  
  1290  type TrillianLogServer interface {
  1291  	// Adds a single leaf to the queue.
  1292  	QueueLeaf(context.Context, *QueueLeafRequest) (*QueueLeafResponse, error)
  1293  	// Adds a single leaf with an assigned sequence number.
  1294  	// Warning: This RPC is under development, don't use it.
  1295  	AddSequencedLeaf(context.Context, *AddSequencedLeafRequest) (*AddSequencedLeafResponse, error)
  1296  	// Returns inclusion proof for a leaf with a given index in a given tree.
  1297  	GetInclusionProof(context.Context, *GetInclusionProofRequest) (*GetInclusionProofResponse, error)
  1298  	// Returns inclusion proof for a leaf with a given identity hash in a given
  1299  	// tree.
  1300  	GetInclusionProofByHash(context.Context, *GetInclusionProofByHashRequest) (*GetInclusionProofByHashResponse, error)
  1301  	// Returns consistency proof between two versions of a given tree.
  1302  	GetConsistencyProof(context.Context, *GetConsistencyProofRequest) (*GetConsistencyProofResponse, error)
  1303  	// Returns the latest signed log root for a given tree. Corresponds to the
  1304  	// ReadOnlyLogTreeTX.LatestSignedLogRoot storage interface.
  1305  	GetLatestSignedLogRoot(context.Context, *GetLatestSignedLogRootRequest) (*GetLatestSignedLogRootResponse, error)
  1306  	// Returns the total number of leaves that have been integrated into the
  1307  	// given tree. Corresponds to the ReadOnlyLogTreeTX.GetSequencedLeafCount
  1308  	// storage interface.
  1309  	// DO NOT USE - FOR DEBUGGING/TEST ONLY
  1310  	GetSequencedLeafCount(context.Context, *GetSequencedLeafCountRequest) (*GetSequencedLeafCountResponse, error)
  1311  	// Returns log entry and the corresponding inclusion proof for a given leaf
  1312  	// index in a given tree. If the requested tree is unavailable but the leaf is in scope
  1313  	// for the current tree, return a proof in that tree instead.
  1314  	GetEntryAndProof(context.Context, *GetEntryAndProofRequest) (*GetEntryAndProofResponse, error)
  1315  	InitLog(context.Context, *InitLogRequest) (*InitLogResponse, error)
  1316  	// Adds a batch of leaves to the queue.
  1317  	QueueLeaves(context.Context, *QueueLeavesRequest) (*QueueLeavesResponse, error)
  1318  	// Stores leaves from the provided batch and associates them with the log
  1319  	// positions according to the `LeafIndex` field. The indices must be
  1320  	// contiguous.
  1321  	//
  1322  	// Warning: This RPC is under development, don't use it.
  1323  	AddSequencedLeaves(context.Context, *AddSequencedLeavesRequest) (*AddSequencedLeavesResponse, error)
  1324  	// Returns a batch of leaves located in the provided positions.
  1325  	GetLeavesByIndex(context.Context, *GetLeavesByIndexRequest) (*GetLeavesByIndexResponse, error)
  1326  	// Returns a batch of leaves in a sequential range.
  1327  	GetLeavesByRange(context.Context, *GetLeavesByRangeRequest) (*GetLeavesByRangeResponse, error)
  1328  	// Returns a batch of leaves by their `merkle_leaf_hash` values.
  1329  	GetLeavesByHash(context.Context, *GetLeavesByHashRequest) (*GetLeavesByHashResponse, error)
  1330  }
  1331  
  1332  func RegisterTrillianLogServer(s *grpc.Server, srv TrillianLogServer) {
  1333  	s.RegisterService(&_TrillianLog_serviceDesc, srv)
  1334  }
  1335  
  1336  func _TrillianLog_QueueLeaf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1337  	in := new(QueueLeafRequest)
  1338  	if err := dec(in); err != nil {
  1339  		return nil, err
  1340  	}
  1341  	if interceptor == nil {
  1342  		return srv.(TrillianLogServer).QueueLeaf(ctx, in)
  1343  	}
  1344  	info := &grpc.UnaryServerInfo{
  1345  		Server:     srv,
  1346  		FullMethod: "/trillian.TrillianLog/QueueLeaf",
  1347  	}
  1348  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1349  		return srv.(TrillianLogServer).QueueLeaf(ctx, req.(*QueueLeafRequest))
  1350  	}
  1351  	return interceptor(ctx, in, info, handler)
  1352  }
  1353  
  1354  func _TrillianLog_AddSequencedLeaf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1355  	in := new(AddSequencedLeafRequest)
  1356  	if err := dec(in); err != nil {
  1357  		return nil, err
  1358  	}
  1359  	if interceptor == nil {
  1360  		return srv.(TrillianLogServer).AddSequencedLeaf(ctx, in)
  1361  	}
  1362  	info := &grpc.UnaryServerInfo{
  1363  		Server:     srv,
  1364  		FullMethod: "/trillian.TrillianLog/AddSequencedLeaf",
  1365  	}
  1366  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1367  		return srv.(TrillianLogServer).AddSequencedLeaf(ctx, req.(*AddSequencedLeafRequest))
  1368  	}
  1369  	return interceptor(ctx, in, info, handler)
  1370  }
  1371  
  1372  func _TrillianLog_GetInclusionProof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1373  	in := new(GetInclusionProofRequest)
  1374  	if err := dec(in); err != nil {
  1375  		return nil, err
  1376  	}
  1377  	if interceptor == nil {
  1378  		return srv.(TrillianLogServer).GetInclusionProof(ctx, in)
  1379  	}
  1380  	info := &grpc.UnaryServerInfo{
  1381  		Server:     srv,
  1382  		FullMethod: "/trillian.TrillianLog/GetInclusionProof",
  1383  	}
  1384  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1385  		return srv.(TrillianLogServer).GetInclusionProof(ctx, req.(*GetInclusionProofRequest))
  1386  	}
  1387  	return interceptor(ctx, in, info, handler)
  1388  }
  1389  
  1390  func _TrillianLog_GetInclusionProofByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1391  	in := new(GetInclusionProofByHashRequest)
  1392  	if err := dec(in); err != nil {
  1393  		return nil, err
  1394  	}
  1395  	if interceptor == nil {
  1396  		return srv.(TrillianLogServer).GetInclusionProofByHash(ctx, in)
  1397  	}
  1398  	info := &grpc.UnaryServerInfo{
  1399  		Server:     srv,
  1400  		FullMethod: "/trillian.TrillianLog/GetInclusionProofByHash",
  1401  	}
  1402  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1403  		return srv.(TrillianLogServer).GetInclusionProofByHash(ctx, req.(*GetInclusionProofByHashRequest))
  1404  	}
  1405  	return interceptor(ctx, in, info, handler)
  1406  }
  1407  
  1408  func _TrillianLog_GetConsistencyProof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1409  	in := new(GetConsistencyProofRequest)
  1410  	if err := dec(in); err != nil {
  1411  		return nil, err
  1412  	}
  1413  	if interceptor == nil {
  1414  		return srv.(TrillianLogServer).GetConsistencyProof(ctx, in)
  1415  	}
  1416  	info := &grpc.UnaryServerInfo{
  1417  		Server:     srv,
  1418  		FullMethod: "/trillian.TrillianLog/GetConsistencyProof",
  1419  	}
  1420  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1421  		return srv.(TrillianLogServer).GetConsistencyProof(ctx, req.(*GetConsistencyProofRequest))
  1422  	}
  1423  	return interceptor(ctx, in, info, handler)
  1424  }
  1425  
  1426  func _TrillianLog_GetLatestSignedLogRoot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1427  	in := new(GetLatestSignedLogRootRequest)
  1428  	if err := dec(in); err != nil {
  1429  		return nil, err
  1430  	}
  1431  	if interceptor == nil {
  1432  		return srv.(TrillianLogServer).GetLatestSignedLogRoot(ctx, in)
  1433  	}
  1434  	info := &grpc.UnaryServerInfo{
  1435  		Server:     srv,
  1436  		FullMethod: "/trillian.TrillianLog/GetLatestSignedLogRoot",
  1437  	}
  1438  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1439  		return srv.(TrillianLogServer).GetLatestSignedLogRoot(ctx, req.(*GetLatestSignedLogRootRequest))
  1440  	}
  1441  	return interceptor(ctx, in, info, handler)
  1442  }
  1443  
  1444  func _TrillianLog_GetSequencedLeafCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1445  	in := new(GetSequencedLeafCountRequest)
  1446  	if err := dec(in); err != nil {
  1447  		return nil, err
  1448  	}
  1449  	if interceptor == nil {
  1450  		return srv.(TrillianLogServer).GetSequencedLeafCount(ctx, in)
  1451  	}
  1452  	info := &grpc.UnaryServerInfo{
  1453  		Server:     srv,
  1454  		FullMethod: "/trillian.TrillianLog/GetSequencedLeafCount",
  1455  	}
  1456  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1457  		return srv.(TrillianLogServer).GetSequencedLeafCount(ctx, req.(*GetSequencedLeafCountRequest))
  1458  	}
  1459  	return interceptor(ctx, in, info, handler)
  1460  }
  1461  
  1462  func _TrillianLog_GetEntryAndProof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1463  	in := new(GetEntryAndProofRequest)
  1464  	if err := dec(in); err != nil {
  1465  		return nil, err
  1466  	}
  1467  	if interceptor == nil {
  1468  		return srv.(TrillianLogServer).GetEntryAndProof(ctx, in)
  1469  	}
  1470  	info := &grpc.UnaryServerInfo{
  1471  		Server:     srv,
  1472  		FullMethod: "/trillian.TrillianLog/GetEntryAndProof",
  1473  	}
  1474  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1475  		return srv.(TrillianLogServer).GetEntryAndProof(ctx, req.(*GetEntryAndProofRequest))
  1476  	}
  1477  	return interceptor(ctx, in, info, handler)
  1478  }
  1479  
  1480  func _TrillianLog_InitLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1481  	in := new(InitLogRequest)
  1482  	if err := dec(in); err != nil {
  1483  		return nil, err
  1484  	}
  1485  	if interceptor == nil {
  1486  		return srv.(TrillianLogServer).InitLog(ctx, in)
  1487  	}
  1488  	info := &grpc.UnaryServerInfo{
  1489  		Server:     srv,
  1490  		FullMethod: "/trillian.TrillianLog/InitLog",
  1491  	}
  1492  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1493  		return srv.(TrillianLogServer).InitLog(ctx, req.(*InitLogRequest))
  1494  	}
  1495  	return interceptor(ctx, in, info, handler)
  1496  }
  1497  
  1498  func _TrillianLog_QueueLeaves_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1499  	in := new(QueueLeavesRequest)
  1500  	if err := dec(in); err != nil {
  1501  		return nil, err
  1502  	}
  1503  	if interceptor == nil {
  1504  		return srv.(TrillianLogServer).QueueLeaves(ctx, in)
  1505  	}
  1506  	info := &grpc.UnaryServerInfo{
  1507  		Server:     srv,
  1508  		FullMethod: "/trillian.TrillianLog/QueueLeaves",
  1509  	}
  1510  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1511  		return srv.(TrillianLogServer).QueueLeaves(ctx, req.(*QueueLeavesRequest))
  1512  	}
  1513  	return interceptor(ctx, in, info, handler)
  1514  }
  1515  
  1516  func _TrillianLog_AddSequencedLeaves_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1517  	in := new(AddSequencedLeavesRequest)
  1518  	if err := dec(in); err != nil {
  1519  		return nil, err
  1520  	}
  1521  	if interceptor == nil {
  1522  		return srv.(TrillianLogServer).AddSequencedLeaves(ctx, in)
  1523  	}
  1524  	info := &grpc.UnaryServerInfo{
  1525  		Server:     srv,
  1526  		FullMethod: "/trillian.TrillianLog/AddSequencedLeaves",
  1527  	}
  1528  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1529  		return srv.(TrillianLogServer).AddSequencedLeaves(ctx, req.(*AddSequencedLeavesRequest))
  1530  	}
  1531  	return interceptor(ctx, in, info, handler)
  1532  }
  1533  
  1534  func _TrillianLog_GetLeavesByIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1535  	in := new(GetLeavesByIndexRequest)
  1536  	if err := dec(in); err != nil {
  1537  		return nil, err
  1538  	}
  1539  	if interceptor == nil {
  1540  		return srv.(TrillianLogServer).GetLeavesByIndex(ctx, in)
  1541  	}
  1542  	info := &grpc.UnaryServerInfo{
  1543  		Server:     srv,
  1544  		FullMethod: "/trillian.TrillianLog/GetLeavesByIndex",
  1545  	}
  1546  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1547  		return srv.(TrillianLogServer).GetLeavesByIndex(ctx, req.(*GetLeavesByIndexRequest))
  1548  	}
  1549  	return interceptor(ctx, in, info, handler)
  1550  }
  1551  
  1552  func _TrillianLog_GetLeavesByRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1553  	in := new(GetLeavesByRangeRequest)
  1554  	if err := dec(in); err != nil {
  1555  		return nil, err
  1556  	}
  1557  	if interceptor == nil {
  1558  		return srv.(TrillianLogServer).GetLeavesByRange(ctx, in)
  1559  	}
  1560  	info := &grpc.UnaryServerInfo{
  1561  		Server:     srv,
  1562  		FullMethod: "/trillian.TrillianLog/GetLeavesByRange",
  1563  	}
  1564  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1565  		return srv.(TrillianLogServer).GetLeavesByRange(ctx, req.(*GetLeavesByRangeRequest))
  1566  	}
  1567  	return interceptor(ctx, in, info, handler)
  1568  }
  1569  
  1570  func _TrillianLog_GetLeavesByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1571  	in := new(GetLeavesByHashRequest)
  1572  	if err := dec(in); err != nil {
  1573  		return nil, err
  1574  	}
  1575  	if interceptor == nil {
  1576  		return srv.(TrillianLogServer).GetLeavesByHash(ctx, in)
  1577  	}
  1578  	info := &grpc.UnaryServerInfo{
  1579  		Server:     srv,
  1580  		FullMethod: "/trillian.TrillianLog/GetLeavesByHash",
  1581  	}
  1582  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1583  		return srv.(TrillianLogServer).GetLeavesByHash(ctx, req.(*GetLeavesByHashRequest))
  1584  	}
  1585  	return interceptor(ctx, in, info, handler)
  1586  }
  1587  
  1588  var _TrillianLog_serviceDesc = grpc.ServiceDesc{
  1589  	ServiceName: "trillian.TrillianLog",
  1590  	HandlerType: (*TrillianLogServer)(nil),
  1591  	Methods: []grpc.MethodDesc{
  1592  		{
  1593  			MethodName: "QueueLeaf",
  1594  			Handler:    _TrillianLog_QueueLeaf_Handler,
  1595  		},
  1596  		{
  1597  			MethodName: "AddSequencedLeaf",
  1598  			Handler:    _TrillianLog_AddSequencedLeaf_Handler,
  1599  		},
  1600  		{
  1601  			MethodName: "GetInclusionProof",
  1602  			Handler:    _TrillianLog_GetInclusionProof_Handler,
  1603  		},
  1604  		{
  1605  			MethodName: "GetInclusionProofByHash",
  1606  			Handler:    _TrillianLog_GetInclusionProofByHash_Handler,
  1607  		},
  1608  		{
  1609  			MethodName: "GetConsistencyProof",
  1610  			Handler:    _TrillianLog_GetConsistencyProof_Handler,
  1611  		},
  1612  		{
  1613  			MethodName: "GetLatestSignedLogRoot",
  1614  			Handler:    _TrillianLog_GetLatestSignedLogRoot_Handler,
  1615  		},
  1616  		{
  1617  			MethodName: "GetSequencedLeafCount",
  1618  			Handler:    _TrillianLog_GetSequencedLeafCount_Handler,
  1619  		},
  1620  		{
  1621  			MethodName: "GetEntryAndProof",
  1622  			Handler:    _TrillianLog_GetEntryAndProof_Handler,
  1623  		},
  1624  		{
  1625  			MethodName: "InitLog",
  1626  			Handler:    _TrillianLog_InitLog_Handler,
  1627  		},
  1628  		{
  1629  			MethodName: "QueueLeaves",
  1630  			Handler:    _TrillianLog_QueueLeaves_Handler,
  1631  		},
  1632  		{
  1633  			MethodName: "AddSequencedLeaves",
  1634  			Handler:    _TrillianLog_AddSequencedLeaves_Handler,
  1635  		},
  1636  		{
  1637  			MethodName: "GetLeavesByIndex",
  1638  			Handler:    _TrillianLog_GetLeavesByIndex_Handler,
  1639  		},
  1640  		{
  1641  			MethodName: "GetLeavesByRange",
  1642  			Handler:    _TrillianLog_GetLeavesByRange_Handler,
  1643  		},
  1644  		{
  1645  			MethodName: "GetLeavesByHash",
  1646  			Handler:    _TrillianLog_GetLeavesByHash_Handler,
  1647  		},
  1648  	},
  1649  	Streams:  []grpc.StreamDesc{},
  1650  	Metadata: "trillian_log_api.proto",
  1651  }
  1652  
  1653  func init() { proto.RegisterFile("trillian_log_api.proto", fileDescriptor0) }
  1654  
  1655  var fileDescriptor0 = []byte{
  1656  	// 1526 bytes of a gzipped FileDescriptorProto
  1657  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0x1b, 0x45,
  1658  	0x10, 0xef, 0xc5, 0x89, 0xe3, 0x4c, 0x9a, 0x38, 0xd9, 0xd0, 0xc6, 0xb9, 0x34, 0x6d, 0x7a, 0x69,
  1659  	0x5a, 0x37, 0x94, 0x1c, 0x29, 0x42, 0xa0, 0xa8, 0x02, 0x35, 0x29, 0x0a, 0xa1, 0x06, 0xca, 0x25,
  1660  	0x42, 0x15, 0x3c, 0x9c, 0xce, 0xe7, 0xcd, 0xe5, 0x84, 0x73, 0xeb, 0xde, 0xad, 0xa3, 0xba, 0x55,
  1661  	0x25, 0xfe, 0xa8, 0xfc, 0x79, 0x80, 0x17, 0x78, 0xe8, 0x0b, 0x7f, 0xde, 0x50, 0xbf, 0x00, 0x1f,
  1662  	0x03, 0x21, 0xf1, 0x15, 0x78, 0xe0, 0x63, 0xa0, 0xdb, 0xdd, 0xf3, 0xfd, 0xf1, 0xdd, 0xd9, 0x2e,
  1663  	0x6d, 0xe1, 0xcd, 0x37, 0x3b, 0x3b, 0xf3, 0xfb, 0xcd, 0xee, 0xcc, 0xce, 0x18, 0x4e, 0x53, 0xd7,
  1664  	0x6e, 0x36, 0x6d, 0xc3, 0xd1, 0x9b, 0xc4, 0xd2, 0x8d, 0x96, 0xbd, 0xde, 0x72, 0x09, 0x25, 0xa8,
  1665  	0x14, 0xc8, 0xe5, 0x33, 0x16, 0x21, 0x56, 0x13, 0xab, 0x46, 0xcb, 0x56, 0x0d, 0xc7, 0x21, 0xd4,
  1666  	0xa0, 0x36, 0x71, 0x3c, 0xae, 0x27, 0x9f, 0x13, 0xab, 0xec, 0xab, 0xde, 0x3e, 0x50, 0xa9, 0x7d,
  1667  	0x84, 0x3d, 0x6a, 0x1c, 0xb5, 0x84, 0xc2, 0xbc, 0x50, 0x70, 0x5b, 0xa6, 0xea, 0x51, 0x83, 0xb6,
  1668  	0x83, 0x9d, 0xd3, 0x81, 0x07, 0xfe, 0xad, 0x9c, 0x85, 0xd2, 0xf6, 0xa1, 0xe1, 0x5a, 0x78, 0x9f,
  1669  	0x20, 0x04, 0xa3, 0x6d, 0x0f, 0xbb, 0x15, 0x69, 0xb9, 0x50, 0x9d, 0xd0, 0xd8, 0x6f, 0xe5, 0x33,
  1670  	0x09, 0x66, 0x3e, 0x68, 0xe3, 0x36, 0xae, 0x61, 0xe3, 0x40, 0xc3, 0x77, 0xda, 0xd8, 0xa3, 0xe8,
  1671  	0x14, 0x14, 0x7d, 0xdc, 0x76, 0xa3, 0x22, 0x2d, 0x4b, 0xd5, 0x82, 0x36, 0xd6, 0x24, 0xd6, 0x6e,
  1672  	0x03, 0xad, 0xc2, 0x68, 0x13, 0x1b, 0x07, 0x95, 0x91, 0x65, 0xa9, 0x3a, 0x79, 0x75, 0x76, 0xbd,
  1673  	0xeb, 0xaa, 0x46, 0x2c, 0xb6, 0x9d, 0x2d, 0x23, 0x15, 0x26, 0x4c, 0xe6, 0x52, 0xa7, 0xa4, 0x52,
  1674  	0x60, 0xba, 0x28, 0xd4, 0x0d, 0xd0, 0x68, 0x25, 0x53, 0xfc, 0x52, 0xde, 0x85, 0xd9, 0x08, 0x04,
  1675  	0xaf, 0x45, 0x1c, 0x0f, 0xa3, 0xd7, 0x61, 0xf2, 0x8e, 0x2f, 0x6c, 0xe8, 0x11, 0x9f, 0xf3, 0xa1,
  1676  	0x1d, 0xb6, 0xa3, 0x11, 0x78, 0x06, 0xae, 0xeb, 0xff, 0x56, 0xbe, 0x96, 0x60, 0xfe, 0x7a, 0xa3,
  1677  	0xb1, 0xe7, 0x93, 0x71, 0x4c, 0x2e, 0xfc, 0x8f, 0x98, 0xdd, 0x84, 0x4a, 0x2f, 0x12, 0x41, 0x50,
  1678  	0x85, 0xa2, 0x8b, 0xbd, 0x76, 0x93, 0xf6, 0xe3, 0x26, 0xd4, 0x94, 0x9f, 0x24, 0xa8, 0xec, 0x60,
  1679  	0xba, 0xeb, 0x98, 0xcd, 0xb6, 0x67, 0x13, 0xe7, 0x96, 0x4b, 0x48, 0x3f, 0x62, 0x4b, 0x00, 0x3e,
  1680  	0x72, 0xdd, 0x76, 0x1a, 0xf8, 0x2e, 0x73, 0x54, 0xd0, 0x26, 0x7c, 0xc9, 0xae, 0x2f, 0x40, 0x8b,
  1681  	0x30, 0x41, 0x5d, 0x8c, 0x75, 0xcf, 0xbe, 0x87, 0x19, 0xa1, 0x82, 0x56, 0xf2, 0x05, 0x7b, 0xf6,
  1682  	0x3d, 0x1c, 0x67, 0x3b, 0x3a, 0x00, 0xdb, 0x2f, 0x24, 0x58, 0x48, 0x01, 0x28, 0xf8, 0xae, 0xc2,
  1683  	0x58, 0xcb, 0x17, 0x08, 0xba, 0xe5, 0xd0, 0x14, 0xd7, 0xe3, 0xab, 0xe8, 0x4d, 0x28, 0x7b, 0xb6,
  1684  	0xe5, 0xf8, 0xe7, 0x4e, 0x2c, 0xdd, 0x25, 0x84, 0x8a, 0x48, 0x47, 0xe2, 0xb3, 0xc7, 0x14, 0x6a,
  1685  	0xc4, 0xd2, 0x08, 0xa1, 0xda, 0x94, 0x17, 0xfd, 0x54, 0x7e, 0x97, 0xe0, 0x6c, 0x0f, 0x8a, 0xad,
  1686  	0xce, 0xdb, 0x86, 0x77, 0xd8, 0x27, 0x58, 0x8b, 0xc0, 0x42, 0xa3, 0x1f, 0x1a, 0xde, 0x21, 0x43,
  1687  	0x79, 0x52, 0x2b, 0xf9, 0x02, 0x7f, 0x6b, 0x7e, 0xa8, 0xd6, 0x60, 0x96, 0xb8, 0x0d, 0xec, 0xea,
  1688  	0xf5, 0x8e, 0xee, 0x89, 0xd3, 0x66, 0x21, 0x2b, 0x69, 0x65, 0xb6, 0xb0, 0xd5, 0x09, 0x2e, 0x41,
  1689  	0x3c, 0xac, 0x63, 0x03, 0x84, 0xf5, 0x1b, 0x09, 0xce, 0x65, 0x12, 0xea, 0x0d, 0x6e, 0xe1, 0x59,
  1690  	0x06, 0xf7, 0x37, 0x09, 0xe4, 0x1d, 0x4c, 0xb7, 0x89, 0xe3, 0xd9, 0x1e, 0xc5, 0x8e, 0xd9, 0x19,
  1691  	0xe4, 0x16, 0x5e, 0x84, 0xf2, 0x81, 0xed, 0x7a, 0x54, 0x0f, 0x23, 0xc8, 0xaf, 0xe2, 0x14, 0x13,
  1692  	0xef, 0x07, 0x61, 0xac, 0xc2, 0x8c, 0x87, 0x4d, 0xe2, 0x34, 0xf4, 0x64, 0xa8, 0xa7, 0xb9, 0x7c,
  1693  	0xff, 0x89, 0xef, 0xe6, 0x43, 0x09, 0x16, 0x53, 0x81, 0x3f, 0xe7, 0xdb, 0x69, 0xc1, 0xd2, 0x0e,
  1694  	0xa6, 0x35, 0x83, 0x62, 0x8f, 0xc6, 0x15, 0xf3, 0x43, 0x18, 0x23, 0x3c, 0x32, 0x00, 0x61, 0x83,
  1695  	0x65, 0x41, 0xaa, 0x23, 0x41, 0x39, 0x85, 0xcb, 0xc8, 0x50, 0x5c, 0x0e, 0xe0, 0xcc, 0x0e, 0xa6,
  1696  	0xb1, 0xea, 0xb6, 0x4d, 0xda, 0xce, 0x53, 0xa7, 0xf2, 0x06, 0x8b, 0x59, 0x9a, 0x1f, 0xc1, 0x24,
  1697  	0xa8, 0x72, 0xa6, 0x2f, 0x8d, 0x56, 0x39, 0xa6, 0xa6, 0xfc, 0x28, 0xc1, 0xfc, 0x0e, 0xa6, 0x6f,
  1698  	0x39, 0xd4, 0xed, 0x5c, 0x77, 0x1a, 0xff, 0xbb, 0xba, 0xf9, 0x98, 0x17, 0xf6, 0x04, 0xbe, 0xe1,
  1699  	0x2e, 0x66, 0xf0, 0x82, 0x15, 0xf2, 0x5f, 0xb0, 0x94, 0x33, 0x1f, 0x1d, 0xea, 0xcc, 0x6f, 0xc3,
  1700  	0xf4, 0xae, 0x63, 0x53, 0xff, 0xf3, 0x29, 0x9f, 0xf2, 0x0d, 0x28, 0x77, 0x2d, 0x0b, 0xee, 0x1b,
  1701  	0x30, 0x6e, 0xba, 0xd8, 0xa0, 0x98, 0xdb, 0xce, 0x41, 0x19, 0xe8, 0x29, 0x5f, 0x49, 0x80, 0x82,
  1702  	0x66, 0xe2, 0x18, 0x7b, 0x7d, 0x40, 0x5e, 0x86, 0x62, 0x93, 0xe9, 0x89, 0xba, 0x99, 0x12, 0x37,
  1703  	0xa1, 0x30, 0xfc, 0xdb, 0xbf, 0x07, 0x73, 0x31, 0x20, 0x82, 0xd3, 0x35, 0x98, 0x0a, 0xfb, 0x9a,
  1704  	0xd0, 0x73, 0xe6, 0xeb, 0x7f, 0xb2, 0xdb, 0xd9, 0x1c, 0x63, 0x4f, 0xf9, 0x4e, 0x82, 0x85, 0x44,
  1705  	0x47, 0xf1, 0xec, 0x58, 0x0e, 0x72, 0x77, 0xdf, 0x07, 0x39, 0x0d, 0x4f, 0x78, 0x80, 0xbc, 0x79,
  1706  	0xe9, 0x4b, 0x33, 0xd0, 0x53, 0x3e, 0xe5, 0xc9, 0xca, 0x0d, 0x6d, 0x75, 0x58, 0xbe, 0x0d, 0x99,
  1707  	0xac, 0x85, 0x78, 0xb2, 0x0e, 0xfd, 0xe0, 0x7e, 0xc9, 0xf3, 0x31, 0x01, 0x41, 0x50, 0x1a, 0x22,
  1708  	0x98, 0xff, 0xfa, 0xb1, 0x78, 0x14, 0x8f, 0x85, 0x66, 0x38, 0x16, 0xee, 0x13, 0x8b, 0x73, 0x30,
  1709  	0xe9, 0x51, 0xc3, 0xa5, 0xb1, 0xca, 0x05, 0x4c, 0xc4, 0xa3, 0xf1, 0x02, 0x8c, 0xf1, 0x32, 0xc9,
  1710  	0xcb, 0x16, 0xff, 0x18, 0xfe, 0xdc, 0x13, 0x31, 0x12, 0xd0, 0x7a, 0x62, 0x24, 0x3d, 0x41, 0x8c,
  1711  	0x86, 0x7b, 0x84, 0x1e, 0x4b, 0x70, 0x3a, 0x02, 0x64, 0xf8, 0x36, 0xaf, 0x10, 0x6b, 0xf3, 0x52,
  1712  	0x3b, 0xb9, 0xc2, 0x53, 0xea, 0xe4, 0x1e, 0xc6, 0xcf, 0x33, 0xd6, 0xc1, 0x3d, 0xcf, 0x7b, 0x55,
  1713  	0x87, 0xa9, 0x58, 0xf6, 0x75, 0x5f, 0x0f, 0x29, 0xff, 0xf5, 0x58, 0x83, 0x22, 0x1f, 0x36, 0xbb,
  1714  	0x05, 0x9d, 0x8f, 0xa1, 0xeb, 0x6e, 0xcb, 0x5c, 0xdf, 0x63, 0x2b, 0x9a, 0xd0, 0x50, 0xfe, 0x18,
  1715  	0x81, 0xf1, 0xc0, 0x7c, 0x15, 0x66, 0x8e, 0xb0, 0xfb, 0x49, 0x13, 0xeb, 0x61, 0xe0, 0x25, 0xd6,
  1716  	0x5f, 0x4f, 0x73, 0x79, 0x2d, 0x08, 0x7f, 0x90, 0xca, 0xc7, 0x46, 0xb3, 0x8d, 0x45, 0x0f, 0xce,
  1717  	0x4e, 0xeb, 0x43, 0x5f, 0xe0, 0x2f, 0xe3, 0xbb, 0xd4, 0x35, 0xf4, 0x86, 0x41, 0x0d, 0x46, 0xfa,
  1718  	0xa4, 0x36, 0xc1, 0x24, 0x37, 0x0c, 0x6a, 0x24, 0x0a, 0xc1, 0x68, 0xf2, 0xd5, 0xbe, 0x02, 0x88,
  1719  	0x2f, 0x37, 0xb0, 0x43, 0x6d, 0xda, 0xe1, 0x40, 0xc6, 0x98, 0x95, 0x19, 0xa6, 0x26, 0x16, 0x18,
  1720  	0x94, 0x6d, 0x28, 0xb3, 0xd2, 0xab, 0x77, 0x67, 0xef, 0x4a, 0x91, 0xb1, 0x96, 0x03, 0xd6, 0xc1,
  1721  	0x74, 0xbe, 0xbe, 0x1f, 0x68, 0x68, 0xd3, 0x6c, 0x4b, 0xf7, 0x1b, 0xdd, 0x84, 0x39, 0xdb, 0xa1,
  1722  	0xd8, 0x72, 0x0d, 0x1a, 0x35, 0x34, 0xde, 0xd7, 0x10, 0xea, 0x6e, 0xeb, 0xca, 0x94, 0x1b, 0x30,
  1723  	0xc6, 0xde, 0xfc, 0x04, 0x4f, 0x29, 0xc9, 0xf3, 0x34, 0x14, 0x7d, 0x66, 0xd8, 0xab, 0x14, 0xd8,
  1724  	0xed, 0x16, 0x5f, 0xef, 0x8c, 0x96, 0x46, 0x66, 0x0a, 0x57, 0xff, 0x9e, 0x82, 0xc9, 0x7d, 0x71,
  1725  	0xbe, 0x35, 0x62, 0x21, 0x07, 0x26, 0xba, 0xd3, 0x37, 0x92, 0x13, 0xf5, 0x39, 0x32, 0x3b, 0xcb,
  1726  	0x8b, 0xa9, 0x6b, 0xfc, 0xfa, 0x2a, 0xd5, 0xcf, 0xff, 0xfc, 0xeb, 0xfb, 0x11, 0x45, 0x59, 0x52,
  1727  	0x8f, 0x37, 0xea, 0x98, 0x1a, 0x1b, 0x6a, 0x93, 0x58, 0x9e, 0x7a, 0x9f, 0x27, 0xe0, 0x03, 0x95,
  1728  	0x5f, 0xdd, 0x4d, 0x69, 0x0d, 0x7d, 0x2b, 0xc1, 0x4c, 0x72, 0x28, 0x46, 0xe7, 0x43, 0xdb, 0x19,
  1729  	0xa3, 0xbb, 0xac, 0xe4, 0xa9, 0x08, 0x14, 0x57, 0x19, 0x8a, 0x2b, 0xca, 0xa5, 0x7c, 0x14, 0x41,
  1730  	0x62, 0x37, 0x7c, 0x3c, 0xbf, 0x48, 0x30, 0xdb, 0x33, 0x5e, 0xa1, 0x88, 0xb7, 0xac, 0x99, 0x5b,
  1731  	0x5e, 0xc9, 0xd5, 0x11, 0x90, 0xb6, 0x18, 0xa4, 0x6b, 0x68, 0x33, 0x17, 0x92, 0x7a, 0x3f, 0x3c,
  1732  	0xd0, 0x07, 0x9b, 0x76, 0x60, 0x4a, 0xe7, 0xcd, 0xdd, 0xaf, 0xbc, 0x6e, 0xa4, 0x4d, 0x80, 0xa8,
  1733  	0x9a, 0x03, 0x22, 0x56, 0x0e, 0xe5, 0xcb, 0x03, 0x68, 0x0a, 0xd0, 0xaf, 0x31, 0xd0, 0x1b, 0x48,
  1734  	0xcd, 0x8f, 0x63, 0x88, 0xb3, 0xce, 0x93, 0x09, 0xfd, 0x20, 0xc1, 0x5c, 0xca, 0x98, 0x85, 0x2e,
  1735  	0xc4, 0x7c, 0x67, 0x8c, 0x8f, 0xf2, 0x6a, 0x1f, 0x2d, 0x81, 0xee, 0x65, 0x86, 0x6e, 0x0d, 0x55,
  1736  	0xd3, 0xd1, 0x6d, 0x9a, 0xe1, 0x46, 0x11, 0xc0, 0x47, 0xe2, 0x91, 0xe8, 0x9d, 0x86, 0xd0, 0xa5,
  1737  	0x98, 0xcf, 0xec, 0xc1, 0x4c, 0xae, 0xf6, 0x57, 0x14, 0xf8, 0x5e, 0x64, 0xf8, 0x56, 0xd1, 0x4a,
  1738  	0x46, 0xf4, 0xfc, 0x8a, 0xed, 0x6d, 0x36, 0x99, 0x05, 0xf4, 0xb3, 0x04, 0xa7, 0x52, 0xa7, 0x1b,
  1739  	0x74, 0x31, 0xe6, 0x30, 0x73, 0xcc, 0x92, 0x2f, 0xf5, 0xd5, 0x13, 0xb8, 0x5e, 0x65, 0xb8, 0x54,
  1740  	0xf4, 0xd2, 0x80, 0xd9, 0xc1, 0xe7, 0x29, 0x96, 0xb0, 0xc9, 0xf1, 0x24, 0x9a, 0xb0, 0x19, 0xa3,
  1741  	0x95, 0xac, 0xe4, 0xa9, 0xc4, 0x13, 0x16, 0xad, 0x0d, 0x9e, 0x1d, 0xc8, 0x84, 0x71, 0x31, 0x28,
  1742  	0xa0, 0x4a, 0xe8, 0x22, 0x3e, 0x95, 0xc8, 0x0b, 0x29, 0x2b, 0xc2, 0xe7, 0x0a, 0xf3, 0xb9, 0xa4,
  1743  	0x2c, 0x66, 0x5c, 0x1f, 0xdb, 0xb1, 0x29, 0xaa, 0xc1, 0x64, 0xa4, 0x7b, 0x47, 0x67, 0x7a, 0x6b,
  1744  	0x5f, 0xd8, 0x77, 0xcb, 0x4b, 0x19, 0xab, 0xc2, 0xe1, 0x09, 0x64, 0x00, 0xea, 0xed, 0x92, 0xd1,
  1745  	0x4a, 0x66, 0x45, 0x8b, 0xd8, 0xbe, 0x90, 0xaf, 0xd4, 0x75, 0xf1, 0x31, 0x3b, 0xa4, 0x58, 0xcf,
  1746  	0x9a, 0x38, 0xa4, 0xb4, 0x96, 0x3a, 0x71, 0x48, 0xa9, 0x2d, 0x6f, 0x8f, 0x71, 0xd6, 0xec, 0x65,
  1747  	0x18, 0x8f, 0xf6, 0xa8, 0x19, 0xc6, 0x63, 0xbd, 0xa2, 0x72, 0x02, 0xdd, 0x86, 0x72, 0xa2, 0x29,
  1748  	0x42, 0xcb, 0xa9, 0x1b, 0xa3, 0xc5, 0xec, 0x7c, 0x8e, 0x46, 0x60, 0x79, 0xeb, 0x3d, 0x58, 0x30,
  1749  	0xc9, 0x51, 0xf0, 0xca, 0xc6, 0xff, 0x19, 0xdf, 0x9a, 0x8b, 0x3c, 0x82, 0xd7, 0x5b, 0xf6, 0x2d,
  1750  	0x5f, 0x78, 0x4b, 0xfa, 0x48, 0xb6, 0x6c, 0x7a, 0xd8, 0xae, 0xaf, 0x9b, 0xe4, 0x48, 0x15, 0x7f,
  1751  	0xb2, 0x07, 0x1b, 0xeb, 0x45, 0xb6, 0xf3, 0x95, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x37, 0x16,
  1752  	0xa6, 0xd6, 0xdf, 0x17, 0x00, 0x00,
  1753  }