// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.29.1
// 	protoc        (unknown)
// source: zoekt/webserver/v1/webserver.proto

package v1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type FlushReason int32

const (
	FlushReason_FLUSH_REASON_UNKNOWN_UNSPECIFIED FlushReason = 0
	FlushReason_FLUSH_REASON_TIMER_EXPIRED       FlushReason = 1
	FlushReason_FLUSH_REASON_FINAL_FLUSH         FlushReason = 2
	FlushReason_FLUSH_REASON_MAX_SIZE            FlushReason = 3
)

// Enum value maps for FlushReason.
var (
	FlushReason_name = map[int32]string{
		0: "FLUSH_REASON_UNKNOWN_UNSPECIFIED",
		1: "FLUSH_REASON_TIMER_EXPIRED",
		2: "FLUSH_REASON_FINAL_FLUSH",
		3: "FLUSH_REASON_MAX_SIZE",
	}
	FlushReason_value = map[string]int32{
		"FLUSH_REASON_UNKNOWN_UNSPECIFIED": 0,
		"FLUSH_REASON_TIMER_EXPIRED":       1,
		"FLUSH_REASON_FINAL_FLUSH":         2,
		"FLUSH_REASON_MAX_SIZE":            3,
	}
)

func (x FlushReason) Enum() *FlushReason {
	p := new(FlushReason)
	*p = x
	return p
}

func (x FlushReason) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FlushReason) Descriptor() protoreflect.EnumDescriptor {
	return file_zoekt_webserver_v1_webserver_proto_enumTypes[0].Descriptor()
}

func (FlushReason) Type() protoreflect.EnumType {
	return &file_zoekt_webserver_v1_webserver_proto_enumTypes[0]
}

func (x FlushReason) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FlushReason.Descriptor instead.
func (FlushReason) EnumDescriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{0}
}

type ListOptions_RepoListField int32

const (
	ListOptions_REPO_LIST_FIELD_UNKNOWN_UNSPECIFIED ListOptions_RepoListField = 0
	ListOptions_REPO_LIST_FIELD_REPOS               ListOptions_RepoListField = 1
	ListOptions_REPO_LIST_FIELD_REPOS_MAP           ListOptions_RepoListField = 3
)

// Enum value maps for ListOptions_RepoListField.
var (
	ListOptions_RepoListField_name = map[int32]string{
		0: "REPO_LIST_FIELD_UNKNOWN_UNSPECIFIED",
		1: "REPO_LIST_FIELD_REPOS",
		3: "REPO_LIST_FIELD_REPOS_MAP",
	}
	ListOptions_RepoListField_value = map[string]int32{
		"REPO_LIST_FIELD_UNKNOWN_UNSPECIFIED": 0,
		"REPO_LIST_FIELD_REPOS":               1,
		"REPO_LIST_FIELD_REPOS_MAP":           3,
	}
)

func (x ListOptions_RepoListField) Enum() *ListOptions_RepoListField {
	p := new(ListOptions_RepoListField)
	*p = x
	return p
}

func (x ListOptions_RepoListField) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ListOptions_RepoListField) Descriptor() protoreflect.EnumDescriptor {
	return file_zoekt_webserver_v1_webserver_proto_enumTypes[1].Descriptor()
}

func (ListOptions_RepoListField) Type() protoreflect.EnumType {
	return &file_zoekt_webserver_v1_webserver_proto_enumTypes[1]
}

func (x ListOptions_RepoListField) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ListOptions_RepoListField.Descriptor instead.
func (ListOptions_RepoListField) EnumDescriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{6, 0}
}

type SearchRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Query *Q             `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	Opts  *SearchOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"`
}

func (x *SearchRequest) Reset() {
	*x = SearchRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchRequest) ProtoMessage() {}

func (x *SearchRequest) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead.
func (*SearchRequest) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{0}
}

func (x *SearchRequest) GetQuery() *Q {
	if x != nil {
		return x.Query
	}
	return nil
}

func (x *SearchRequest) GetOpts() *SearchOptions {
	if x != nil {
		return x.Opts
	}
	return nil
}

type SearchResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Stats    *Stats       `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
	Progress *Progress    `protobuf:"bytes,2,opt,name=progress,proto3" json:"progress,omitempty"`
	Files    []*FileMatch `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"`
}

func (x *SearchResponse) Reset() {
	*x = SearchResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchResponse) ProtoMessage() {}

func (x *SearchResponse) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead.
func (*SearchResponse) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{1}
}

func (x *SearchResponse) GetStats() *Stats {
	if x != nil {
		return x.Stats
	}
	return nil
}

func (x *SearchResponse) GetProgress() *Progress {
	if x != nil {
		return x.Progress
	}
	return nil
}

func (x *SearchResponse) GetFiles() []*FileMatch {
	if x != nil {
		return x.Files
	}
	return nil
}

type StreamSearchRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Request *SearchRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
}

func (x *StreamSearchRequest) Reset() {
	*x = StreamSearchRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamSearchRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamSearchRequest) ProtoMessage() {}

func (x *StreamSearchRequest) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StreamSearchRequest.ProtoReflect.Descriptor instead.
func (*StreamSearchRequest) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{2}
}

func (x *StreamSearchRequest) GetRequest() *SearchRequest {
	if x != nil {
		return x.Request
	}
	return nil
}

type StreamSearchResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResponseChunk *SearchResponse `protobuf:"bytes,6,opt,name=response_chunk,json=responseChunk,proto3" json:"response_chunk,omitempty"`
}

func (x *StreamSearchResponse) Reset() {
	*x = StreamSearchResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamSearchResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamSearchResponse) ProtoMessage() {}

func (x *StreamSearchResponse) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StreamSearchResponse.ProtoReflect.Descriptor instead.
func (*StreamSearchResponse) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{3}
}

func (x *StreamSearchResponse) GetResponseChunk() *SearchResponse {
	if x != nil {
		return x.ResponseChunk
	}
	return nil
}

type SearchOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Return an upper-bound estimate of eligible documents in
	// stats.ShardFilesConsidered.
	EstimateDocCount bool `protobuf:"varint,1,opt,name=estimate_doc_count,json=estimateDocCount,proto3" json:"estimate_doc_count,omitempty"`
	// Return the whole file.
	Whole bool `protobuf:"varint,2,opt,name=whole,proto3" json:"whole,omitempty"`
	// Maximum number of matches: skip all processing an index
	// shard after we found this many non-overlapping matches.
	ShardMaxMatchCount int64 `protobuf:"varint,3,opt,name=shard_max_match_count,json=shardMaxMatchCount,proto3" json:"shard_max_match_count,omitempty"`
	// Maximum number of matches: stop looking for more matches
	// once we have this many matches across shards.
	TotalMaxMatchCount int64 `protobuf:"varint,4,opt,name=total_max_match_count,json=totalMaxMatchCount,proto3" json:"total_max_match_count,omitempty"`
	// Maximum number of matches: skip processing documents for a repository in
	// a shard once we have found ShardRepoMaxMatchCount.
	//
	// A compound shard may contain multiple repositories. This will most often
	// be set to 1 to find all repositories containing a result.
	ShardRepoMaxMatchCount int64 `protobuf:"varint,5,opt,name=shard_repo_max_match_count,json=shardRepoMaxMatchCount,proto3" json:"shard_repo_max_match_count,omitempty"`
	// Abort the search after this much time has passed.
	MaxWallTime *durationpb.Duration `protobuf:"bytes,6,opt,name=max_wall_time,json=maxWallTime,proto3" json:"max_wall_time,omitempty"`
	// FlushWallTime if non-zero will stop streaming behaviour at first and
	// instead will collate and sort results. At FlushWallTime the results will
	// be sent and then the behaviour will revert to the normal streaming.
	FlushWallTime *durationpb.Duration `protobuf:"bytes,7,opt,name=flush_wall_time,json=flushWallTime,proto3" json:"flush_wall_time,omitempty"`
	// Truncates the number of documents (i.e. files) after collating and
	// sorting the results.
	MaxDocDisplayCount int64 `protobuf:"varint,8,opt,name=max_doc_display_count,json=maxDocDisplayCount,proto3" json:"max_doc_display_count,omitempty"`
	// Truncates the number of matchs after collating and sorting the results.
	MaxMatchDisplayCount int64 `protobuf:"varint,16,opt,name=max_match_display_count,json=maxMatchDisplayCount,proto3" json:"max_match_display_count,omitempty"`
	// If set to a number greater than zero then up to this many number
	// of context lines will be added before and after each matched line.
	// Note that the included context lines might contain matches and
	// it's up to the consumer of the result to remove those lines.
	NumContextLines int64 `protobuf:"varint,9,opt,name=num_context_lines,json=numContextLines,proto3" json:"num_context_lines,omitempty"`
	// If true, ChunkMatches will be returned in each FileMatch rather than LineMatches
	// EXPERIMENTAL: the behavior of this flag may be changed in future versions.
	ChunkMatches bool `protobuf:"varint,10,opt,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"`
	// Trace turns on opentracing for this request if true and if the Jaeger address was provided as
	// a command-line flag
	Trace bool `protobuf:"varint,13,opt,name=trace,proto3" json:"trace,omitempty"`
	// If set, the search results will contain debug information for scoring.
	DebugScore bool `protobuf:"varint,14,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"`
	// EXPERIMENTAL. If true, use text search scoring instead of the default scoring formula.
	// Currently, this treats each match in a file as a term and computes an approximation to BM25.
	// When enabled, all other scoring signals are ignored, including document ranks.
	UseBm25Scoring bool `protobuf:"varint,15,opt,name=use_bm25_scoring,json=useBm25Scoring,proto3" json:"use_bm25_scoring,omitempty"`
}

func (x *SearchOptions) Reset() {
	*x = SearchOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchOptions) ProtoMessage() {}

func (x *SearchOptions) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchOptions.ProtoReflect.Descriptor instead.
func (*SearchOptions) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{4}
}

func (x *SearchOptions) GetEstimateDocCount() bool {
	if x != nil {
		return x.EstimateDocCount
	}
	return false
}

func (x *SearchOptions) GetWhole() bool {
	if x != nil {
		return x.Whole
	}
	return false
}

func (x *SearchOptions) GetShardMaxMatchCount() int64 {
	if x != nil {
		return x.ShardMaxMatchCount
	}
	return 0
}

func (x *SearchOptions) GetTotalMaxMatchCount() int64 {
	if x != nil {
		return x.TotalMaxMatchCount
	}
	return 0
}

func (x *SearchOptions) GetShardRepoMaxMatchCount() int64 {
	if x != nil {
		return x.ShardRepoMaxMatchCount
	}
	return 0
}

func (x *SearchOptions) GetMaxWallTime() *durationpb.Duration {
	if x != nil {
		return x.MaxWallTime
	}
	return nil
}

func (x *SearchOptions) GetFlushWallTime() *durationpb.Duration {
	if x != nil {
		return x.FlushWallTime
	}
	return nil
}

func (x *SearchOptions) GetMaxDocDisplayCount() int64 {
	if x != nil {
		return x.MaxDocDisplayCount
	}
	return 0
}

func (x *SearchOptions) GetMaxMatchDisplayCount() int64 {
	if x != nil {
		return x.MaxMatchDisplayCount
	}
	return 0
}

func (x *SearchOptions) GetNumContextLines() int64 {
	if x != nil {
		return x.NumContextLines
	}
	return 0
}

func (x *SearchOptions) GetChunkMatches() bool {
	if x != nil {
		return x.ChunkMatches
	}
	return false
}

func (x *SearchOptions) GetTrace() bool {
	if x != nil {
		return x.Trace
	}
	return false
}

func (x *SearchOptions) GetDebugScore() bool {
	if x != nil {
		return x.DebugScore
	}
	return false
}

func (x *SearchOptions) GetUseBm25Scoring() bool {
	if x != nil {
		return x.UseBm25Scoring
	}
	return false
}

type ListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Query *Q           `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	Opts  *ListOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"`
}

func (x *ListRequest) Reset() {
	*x = ListRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRequest) ProtoMessage() {}

func (x *ListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.
func (*ListRequest) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{5}
}

func (x *ListRequest) GetQuery() *Q {
	if x != nil {
		return x.Query
	}
	return nil
}

func (x *ListRequest) GetOpts() *ListOptions {
	if x != nil {
		return x.Opts
	}
	return nil
}

type ListOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Field decides which field to populate in RepoList response.
	Field ListOptions_RepoListField `protobuf:"varint,1,opt,name=field,proto3,enum=zoekt.webserver.v1.ListOptions_RepoListField" json:"field,omitempty"`
}

func (x *ListOptions) Reset() {
	*x = ListOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListOptions) ProtoMessage() {}

func (x *ListOptions) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListOptions.ProtoReflect.Descriptor instead.
func (*ListOptions) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{6}
}

func (x *ListOptions) GetField() ListOptions_RepoListField {
	if x != nil {
		return x.Field
	}
	return ListOptions_REPO_LIST_FIELD_UNKNOWN_UNSPECIFIED
}

type ListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Returned when ListOptions.Field is RepoListFieldRepos.
	Repos []*RepoListEntry `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"`
	// ReposMap is set when ListOptions.Field is RepoListFieldReposMap.
	ReposMap map[uint32]*MinimalRepoListEntry `protobuf:"bytes,2,rep,name=repos_map,json=reposMap,proto3" json:"repos_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Crashes  int64                            `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"`
	// Stats response to a List request.
	// This is the aggregate RepoStats of all repos matching the input query.
	Stats *RepoStats `protobuf:"bytes,4,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *ListResponse) Reset() {
	*x = ListResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListResponse) ProtoMessage() {}

func (x *ListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.
func (*ListResponse) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{7}
}

func (x *ListResponse) GetRepos() []*RepoListEntry {
	if x != nil {
		return x.Repos
	}
	return nil
}

func (x *ListResponse) GetReposMap() map[uint32]*MinimalRepoListEntry {
	if x != nil {
		return x.ReposMap
	}
	return nil
}

func (x *ListResponse) GetCrashes() int64 {
	if x != nil {
		return x.Crashes
	}
	return 0
}

func (x *ListResponse) GetStats() *RepoStats {
	if x != nil {
		return x.Stats
	}
	return nil
}

type RepoListEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Repository    *Repository    `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	IndexMetadata *IndexMetadata `protobuf:"bytes,2,opt,name=index_metadata,json=indexMetadata,proto3" json:"index_metadata,omitempty"`
	Stats         *RepoStats     `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *RepoListEntry) Reset() {
	*x = RepoListEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RepoListEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RepoListEntry) ProtoMessage() {}

func (x *RepoListEntry) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RepoListEntry.ProtoReflect.Descriptor instead.
func (*RepoListEntry) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{8}
}

func (x *RepoListEntry) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *RepoListEntry) GetIndexMetadata() *IndexMetadata {
	if x != nil {
		return x.IndexMetadata
	}
	return nil
}

func (x *RepoListEntry) GetStats() *RepoStats {
	if x != nil {
		return x.Stats
	}
	return nil
}

type Repository struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Sourcegraph's repository ID
	Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// The repository name
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// The repository URL.
	Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
	// The physical source where this repo came from, eg. full
	// path to the zip filename or git repository directory. This
	// will not be exposed in the UI, but can be used to detect
	// orphaned index shards.
	Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
	// The branches indexed in this repo.
	Branches []*RepositoryBranch `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"`
	// Nil if this is not the super project.
	SubRepoMap map[string]*Repository `protobuf:"bytes,6,rep,name=sub_repo_map,json=subRepoMap,proto3" json:"sub_repo_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// URL template to link to the commit of a branch
	CommitUrlTemplate string `protobuf:"bytes,7,opt,name=commit_url_template,json=commitUrlTemplate,proto3" json:"commit_url_template,omitempty"`
	// The repository URL for getting to a file.  Has access to
	// {{.Version}}, {{.Path}}
	FileUrlTemplate string `protobuf:"bytes,8,opt,name=file_url_template,json=fileUrlTemplate,proto3" json:"file_url_template,omitempty"`
	// The URL fragment to add to a file URL for line numbers. has
	// access to {{.LineNumber}}. The fragment should include the
	// separator, generally '#' or ';'.
	LineFragmentTemplate string `protobuf:"bytes,9,opt,name=line_fragment_template,json=lineFragmentTemplate,proto3" json:"line_fragment_template,omitempty"`
	// Perf optimization: priority is set when we load the shard. It corresponds to
	// the value of "priority" stored in RawConfig.
	Priority float64 `protobuf:"fixed64,10,opt,name=priority,proto3" json:"priority,omitempty"`
	// All zoekt.* configuration settings.
	RawConfig map[string]string `protobuf:"bytes,11,rep,name=raw_config,json=rawConfig,proto3" json:"raw_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Importance of the repository, bigger is more important
	Rank uint32 `protobuf:"varint,12,opt,name=rank,proto3" json:"rank,omitempty"`
	// index_options is a hash of the options used to create the index for the
	// repo.
	IndexOptions string `protobuf:"bytes,13,opt,name=index_options,json=indexOptions,proto3" json:"index_options,omitempty"`
	// has_symbols is true if this repository has indexed ctags
	// output. Sourcegraph specific: This field is more appropriate for
	// IndexMetadata. However, we store it here since the Sourcegraph frontend
	// can read this structure but not IndexMetadata.
	HasSymbols bool `protobuf:"varint,14,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"`
	// tombstone is true if we are not allowed to search this repo.
	Tombstone bool `protobuf:"varint,15,opt,name=tombstone,proto3" json:"tombstone,omitempty"`
	// latest_commit_date is the date of the latest commit among all indexed Branches.
	// The date might be time.Time's 0-value if the repository was last indexed
	// before this field was added.
	LatestCommitDate *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=latest_commit_date,json=latestCommitDate,proto3" json:"latest_commit_date,omitempty"`
	// file_tombstones is a set of file paths that should be ignored across all branches
	// in this shard.
	FileTombstones []string `protobuf:"bytes,17,rep,name=file_tombstones,json=fileTombstones,proto3" json:"file_tombstones,omitempty"`
	// tenant_id is the tenant ID of the repository.
	TenantId int64 `protobuf:"varint,18,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// Additional metadata about the repository.
	Metadata map[string]string `protobuf:"bytes,19,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *Repository) Reset() {
	*x = Repository{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Repository) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Repository) ProtoMessage() {}

func (x *Repository) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Repository.ProtoReflect.Descriptor instead.
func (*Repository) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{9}
}

func (x *Repository) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Repository) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Repository) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *Repository) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *Repository) GetBranches() []*RepositoryBranch {
	if x != nil {
		return x.Branches
	}
	return nil
}

func (x *Repository) GetSubRepoMap() map[string]*Repository {
	if x != nil {
		return x.SubRepoMap
	}
	return nil
}

func (x *Repository) GetCommitUrlTemplate() string {
	if x != nil {
		return x.CommitUrlTemplate
	}
	return ""
}

func (x *Repository) GetFileUrlTemplate() string {
	if x != nil {
		return x.FileUrlTemplate
	}
	return ""
}

func (x *Repository) GetLineFragmentTemplate() string {
	if x != nil {
		return x.LineFragmentTemplate
	}
	return ""
}

func (x *Repository) GetPriority() float64 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *Repository) GetRawConfig() map[string]string {
	if x != nil {
		return x.RawConfig
	}
	return nil
}

func (x *Repository) GetRank() uint32 {
	if x != nil {
		return x.Rank
	}
	return 0
}

func (x *Repository) GetIndexOptions() string {
	if x != nil {
		return x.IndexOptions
	}
	return ""
}

func (x *Repository) GetHasSymbols() bool {
	if x != nil {
		return x.HasSymbols
	}
	return false
}

func (x *Repository) GetTombstone() bool {
	if x != nil {
		return x.Tombstone
	}
	return false
}

func (x *Repository) GetLatestCommitDate() *timestamppb.Timestamp {
	if x != nil {
		return x.LatestCommitDate
	}
	return nil
}

func (x *Repository) GetFileTombstones() []string {
	if x != nil {
		return x.FileTombstones
	}
	return nil
}

func (x *Repository) GetTenantId() int64 {
	if x != nil {
		return x.TenantId
	}
	return 0
}

func (x *Repository) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

type IndexMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IndexFormatVersion    int64                  `protobuf:"varint,1,opt,name=index_format_version,json=indexFormatVersion,proto3" json:"index_format_version,omitempty"`
	IndexFeatureVersion   int64                  `protobuf:"varint,2,opt,name=index_feature_version,json=indexFeatureVersion,proto3" json:"index_feature_version,omitempty"`
	IndexMinReaderVersion int64                  `protobuf:"varint,3,opt,name=index_min_reader_version,json=indexMinReaderVersion,proto3" json:"index_min_reader_version,omitempty"`
	IndexTime             *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"`
	PlainAscii            bool                   `protobuf:"varint,5,opt,name=plain_ascii,json=plainAscii,proto3" json:"plain_ascii,omitempty"`
	LanguageMap           map[string]uint32      `protobuf:"bytes,6,rep,name=language_map,json=languageMap,proto3" json:"language_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	ZoektVersion          string                 `protobuf:"bytes,7,opt,name=zoekt_version,json=zoektVersion,proto3" json:"zoekt_version,omitempty"`
	Id                    string                 `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *IndexMetadata) Reset() {
	*x = IndexMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IndexMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IndexMetadata) ProtoMessage() {}

func (x *IndexMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IndexMetadata.ProtoReflect.Descriptor instead.
func (*IndexMetadata) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{10}
}

func (x *IndexMetadata) GetIndexFormatVersion() int64 {
	if x != nil {
		return x.IndexFormatVersion
	}
	return 0
}

func (x *IndexMetadata) GetIndexFeatureVersion() int64 {
	if x != nil {
		return x.IndexFeatureVersion
	}
	return 0
}

func (x *IndexMetadata) GetIndexMinReaderVersion() int64 {
	if x != nil {
		return x.IndexMinReaderVersion
	}
	return 0
}

func (x *IndexMetadata) GetIndexTime() *timestamppb.Timestamp {
	if x != nil {
		return x.IndexTime
	}
	return nil
}

func (x *IndexMetadata) GetPlainAscii() bool {
	if x != nil {
		return x.PlainAscii
	}
	return false
}

func (x *IndexMetadata) GetLanguageMap() map[string]uint32 {
	if x != nil {
		return x.LanguageMap
	}
	return nil
}

func (x *IndexMetadata) GetZoektVersion() string {
	if x != nil {
		return x.ZoektVersion
	}
	return ""
}

func (x *IndexMetadata) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type MinimalRepoListEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HasSymbols    bool                `protobuf:"varint,1,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"`
	Branches      []*RepositoryBranch `protobuf:"bytes,2,rep,name=branches,proto3" json:"branches,omitempty"`
	IndexTimeUnix int64               `protobuf:"varint,3,opt,name=index_time_unix,json=indexTimeUnix,proto3" json:"index_time_unix,omitempty"`
}

func (x *MinimalRepoListEntry) Reset() {
	*x = MinimalRepoListEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MinimalRepoListEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MinimalRepoListEntry) ProtoMessage() {}

func (x *MinimalRepoListEntry) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MinimalRepoListEntry.ProtoReflect.Descriptor instead.
func (*MinimalRepoListEntry) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{11}
}

func (x *MinimalRepoListEntry) GetHasSymbols() bool {
	if x != nil {
		return x.HasSymbols
	}
	return false
}

func (x *MinimalRepoListEntry) GetBranches() []*RepositoryBranch {
	if x != nil {
		return x.Branches
	}
	return nil
}

func (x *MinimalRepoListEntry) GetIndexTimeUnix() int64 {
	if x != nil {
		return x.IndexTimeUnix
	}
	return 0
}

// RepositoryBranch describes an indexed branch, which is a name
// combined with a version.
type RepositoryBranch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
}

func (x *RepositoryBranch) Reset() {
	*x = RepositoryBranch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RepositoryBranch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RepositoryBranch) ProtoMessage() {}

func (x *RepositoryBranch) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RepositoryBranch.ProtoReflect.Descriptor instead.
func (*RepositoryBranch) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{12}
}

func (x *RepositoryBranch) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RepositoryBranch) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

// RepoStats is a collection of statistics for a set of repositories.
type RepoStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// repos is used for aggregrating the number of repositories.
	Repos int64 `protobuf:"varint,1,opt,name=repos,proto3" json:"repos,omitempty"`
	// shards is the total number of search shards.
	Shards int64 `protobuf:"varint,2,opt,name=shards,proto3" json:"shards,omitempty"`
	// documents holds the number of documents or files.
	Documents int64 `protobuf:"varint,3,opt,name=documents,proto3" json:"documents,omitempty"`
	// index_bytes is the amount of RAM used for index overhead.
	IndexBytes int64 `protobuf:"varint,4,opt,name=index_bytes,json=indexBytes,proto3" json:"index_bytes,omitempty"`
	// content_bytes is the amount of RAM used for raw content.
	ContentBytes int64 `protobuf:"varint,5,opt,name=content_bytes,json=contentBytes,proto3" json:"content_bytes,omitempty"`
	// new_lines_count is the number of newlines "\n" that appear in the zoekt
	// indexed documents. This is not exactly the same as line count, since it
	// will not include lines not terminated by "\n" (eg a file with no "\n", or
	// a final line without "\n"). Note: Zoekt deduplicates documents across
	// branches, so if a path has the same contents on multiple branches, there
	// is only one document for it. As such that document's newlines is only
	// counted once. See DefaultBranchNewLinesCount and AllBranchesNewLinesCount
	// for counts which do not deduplicate.
	NewLinesCount uint64 `protobuf:"varint,6,opt,name=new_lines_count,json=newLinesCount,proto3" json:"new_lines_count,omitempty"`
	// default_branch_new_lines_count is the number of newlines "\n" in the default
	// branch.
	DefaultBranchNewLinesCount uint64 `protobuf:"varint,7,opt,name=default_branch_new_lines_count,json=defaultBranchNewLinesCount,proto3" json:"default_branch_new_lines_count,omitempty"`
	// other_branches_new_lines_count is the number of newlines "\n" in all branches
	// except the default branch.
	OtherBranchesNewLinesCount uint64 `protobuf:"varint,8,opt,name=other_branches_new_lines_count,json=otherBranchesNewLinesCount,proto3" json:"other_branches_new_lines_count,omitempty"`
}

func (x *RepoStats) Reset() {
	*x = RepoStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RepoStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RepoStats) ProtoMessage() {}

func (x *RepoStats) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RepoStats.ProtoReflect.Descriptor instead.
func (*RepoStats) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{13}
}

func (x *RepoStats) GetRepos() int64 {
	if x != nil {
		return x.Repos
	}
	return 0
}

func (x *RepoStats) GetShards() int64 {
	if x != nil {
		return x.Shards
	}
	return 0
}

func (x *RepoStats) GetDocuments() int64 {
	if x != nil {
		return x.Documents
	}
	return 0
}

func (x *RepoStats) GetIndexBytes() int64 {
	if x != nil {
		return x.IndexBytes
	}
	return 0
}

func (x *RepoStats) GetContentBytes() int64 {
	if x != nil {
		return x.ContentBytes
	}
	return 0
}

func (x *RepoStats) GetNewLinesCount() uint64 {
	if x != nil {
		return x.NewLinesCount
	}
	return 0
}

func (x *RepoStats) GetDefaultBranchNewLinesCount() uint64 {
	if x != nil {
		return x.DefaultBranchNewLinesCount
	}
	return 0
}

func (x *RepoStats) GetOtherBranchesNewLinesCount() uint64 {
	if x != nil {
		return x.OtherBranchesNewLinesCount
	}
	return 0
}

type Stats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Amount of I/O for reading contents.
	ContentBytesLoaded int64 `protobuf:"varint,1,opt,name=content_bytes_loaded,json=contentBytesLoaded,proto3" json:"content_bytes_loaded,omitempty"`
	// Amount of I/O for reading from index.
	IndexBytesLoaded int64 `protobuf:"varint,2,opt,name=index_bytes_loaded,json=indexBytesLoaded,proto3" json:"index_bytes_loaded,omitempty"`
	// Number of search shards that had a crash.
	Crashes int64 `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"`
	// Wall clock time for this search
	Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"`
	// Number of files containing a match.
	FileCount int64 `protobuf:"varint,5,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
	// Number of files in shards that we considered.
	ShardFilesConsidered int64 `protobuf:"varint,6,opt,name=shard_files_considered,json=shardFilesConsidered,proto3" json:"shard_files_considered,omitempty"`
	// Files that we evaluated. Equivalent to files for which all
	// atom matches (including negations) evaluated to true.
	FilesConsidered int64 `protobuf:"varint,7,opt,name=files_considered,json=filesConsidered,proto3" json:"files_considered,omitempty"`
	// Files for which we loaded file content to verify substring matches
	FilesLoaded int64 `protobuf:"varint,8,opt,name=files_loaded,json=filesLoaded,proto3" json:"files_loaded,omitempty"`
	// Candidate files whose contents weren't examined because we
	// gathered enough matches.
	FilesSkipped int64 `protobuf:"varint,9,opt,name=files_skipped,json=filesSkipped,proto3" json:"files_skipped,omitempty"`
	// Shards that we scanned to find matches.
	ShardsScanned int64 `protobuf:"varint,10,opt,name=shards_scanned,json=shardsScanned,proto3" json:"shards_scanned,omitempty"`
	// Shards that we did not process because a query was canceled.
	ShardsSkipped int64 `protobuf:"varint,11,opt,name=shards_skipped,json=shardsSkipped,proto3" json:"shards_skipped,omitempty"`
	// Shards that we did not process because the query was rejected by the
	// ngram filter indicating it had no matches.
	ShardsSkippedFilter int64 `protobuf:"varint,12,opt,name=shards_skipped_filter,json=shardsSkippedFilter,proto3" json:"shards_skipped_filter,omitempty"`
	// Number of non-overlapping matches
	MatchCount int64 `protobuf:"varint,13,opt,name=match_count,json=matchCount,proto3" json:"match_count,omitempty"`
	// Number of candidate matches as a result of searching ngrams.
	NgramMatches int64 `protobuf:"varint,14,opt,name=ngram_matches,json=ngramMatches,proto3" json:"ngram_matches,omitempty"`
	// Wall clock time for queued search.
	Wait *durationpb.Duration `protobuf:"bytes,15,opt,name=wait,proto3" json:"wait,omitempty"`
	// Aggregate wall clock time spent constructing and pruning the match tree.
	// This accounts for time such as lookups in the trigram index.
	MatchTreeConstruction *durationpb.Duration `protobuf:"bytes,19,opt,name=match_tree_construction,json=matchTreeConstruction,proto3" json:"match_tree_construction,omitempty"`
	// Aggregate wall clock time spent searching the match tree. This accounts
	// for the bulk of search work done looking for matches.
	MatchTreeSearch *durationpb.Duration `protobuf:"bytes,20,opt,name=match_tree_search,json=matchTreeSearch,proto3" json:"match_tree_search,omitempty"`
	// Number of times regexp was called on files that we evaluated.
	RegexpsConsidered int64 `protobuf:"varint,16,opt,name=regexps_considered,json=regexpsConsidered,proto3" json:"regexps_considered,omitempty"`
	// FlushReason explains why results were flushed.
	FlushReason FlushReason `protobuf:"varint,17,opt,name=flush_reason,json=flushReason,proto3,enum=zoekt.webserver.v1.FlushReason" json:"flush_reason,omitempty"`
	// NgramLookups is the number of times we accessed an ngram in the index.
	NgramLookups int64 `protobuf:"varint,18,opt,name=ngram_lookups,json=ngramLookups,proto3" json:"ngram_lookups,omitempty"`
}

func (x *Stats) Reset() {
	*x = Stats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Stats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Stats) ProtoMessage() {}

func (x *Stats) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Stats.ProtoReflect.Descriptor instead.
func (*Stats) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{14}
}

func (x *Stats) GetContentBytesLoaded() int64 {
	if x != nil {
		return x.ContentBytesLoaded
	}
	return 0
}

func (x *Stats) GetIndexBytesLoaded() int64 {
	if x != nil {
		return x.IndexBytesLoaded
	}
	return 0
}

func (x *Stats) GetCrashes() int64 {
	if x != nil {
		return x.Crashes
	}
	return 0
}

func (x *Stats) GetDuration() *durationpb.Duration {
	if x != nil {
		return x.Duration
	}
	return nil
}

func (x *Stats) GetFileCount() int64 {
	if x != nil {
		return x.FileCount
	}
	return 0
}

func (x *Stats) GetShardFilesConsidered() int64 {
	if x != nil {
		return x.ShardFilesConsidered
	}
	return 0
}

func (x *Stats) GetFilesConsidered() int64 {
	if x != nil {
		return x.FilesConsidered
	}
	return 0
}

func (x *Stats) GetFilesLoaded() int64 {
	if x != nil {
		return x.FilesLoaded
	}
	return 0
}

func (x *Stats) GetFilesSkipped() int64 {
	if x != nil {
		return x.FilesSkipped
	}
	return 0
}

func (x *Stats) GetShardsScanned() int64 {
	if x != nil {
		return x.ShardsScanned
	}
	return 0
}

func (x *Stats) GetShardsSkipped() int64 {
	if x != nil {
		return x.ShardsSkipped
	}
	return 0
}

func (x *Stats) GetShardsSkippedFilter() int64 {
	if x != nil {
		return x.ShardsSkippedFilter
	}
	return 0
}

func (x *Stats) GetMatchCount() int64 {
	if x != nil {
		return x.MatchCount
	}
	return 0
}

func (x *Stats) GetNgramMatches() int64 {
	if x != nil {
		return x.NgramMatches
	}
	return 0
}

func (x *Stats) GetWait() *durationpb.Duration {
	if x != nil {
		return x.Wait
	}
	return nil
}

func (x *Stats) GetMatchTreeConstruction() *durationpb.Duration {
	if x != nil {
		return x.MatchTreeConstruction
	}
	return nil
}

func (x *Stats) GetMatchTreeSearch() *durationpb.Duration {
	if x != nil {
		return x.MatchTreeSearch
	}
	return nil
}

func (x *Stats) GetRegexpsConsidered() int64 {
	if x != nil {
		return x.RegexpsConsidered
	}
	return 0
}

func (x *Stats) GetFlushReason() FlushReason {
	if x != nil {
		return x.FlushReason
	}
	return FlushReason_FLUSH_REASON_UNKNOWN_UNSPECIFIED
}

func (x *Stats) GetNgramLookups() int64 {
	if x != nil {
		return x.NgramLookups
	}
	return 0
}

// Progress contains information about the global progress of the running search query.
// This is used by the frontend to reorder results and emit them when stable.
// Sourcegraph specific: this is used when querying multiple zoekt-webserver instances.
type Progress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Priority of the shard that was searched.
	Priority float64 `protobuf:"fixed64,1,opt,name=priority,proto3" json:"priority,omitempty"`
	// max_pending_priority is the maximum priority of pending result that is being searched in parallel.
	// This is used to reorder results when the result set is known to be stable-- that is, when a result's
	// Priority is greater than the max(MaxPendingPriority) from the latest results of each backend, it can be returned to the user.
	//
	// max_pending_priority decreases monotonically in each SearchResult.
	MaxPendingPriority float64 `protobuf:"fixed64,2,opt,name=max_pending_priority,json=maxPendingPriority,proto3" json:"max_pending_priority,omitempty"`
}

func (x *Progress) Reset() {
	*x = Progress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Progress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Progress) ProtoMessage() {}

func (x *Progress) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Progress.ProtoReflect.Descriptor instead.
func (*Progress) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{15}
}

func (x *Progress) GetPriority() float64 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *Progress) GetMaxPendingPriority() float64 {
	if x != nil {
		return x.MaxPendingPriority
	}
	return 0
}

// FileMatch contains all the matches within a file.
type FileMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Ranking; the higher, the better.
	Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"`
	// For debugging. Needs DebugScore set, but public so tests in
	// other packages can print some diagnostics.
	Debug string `protobuf:"bytes,2,opt,name=debug,proto3" json:"debug,omitempty"`
	// The repository-relative path to the file.
	// 🚨 Warning: file_name might not be a valid UTF-8 string.
	FileName []byte `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
	// Repository is the globally unique name of the repo of the
	// match
	Repository string   `protobuf:"bytes,4,opt,name=repository,proto3" json:"repository,omitempty"`
	Branches   []string `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"`
	// One of line_matches or chunk_matches will be returned depending on whether
	// the SearchOptions.ChunkMatches is set.
	LineMatches  []*LineMatch  `protobuf:"bytes,6,rep,name=line_matches,json=lineMatches,proto3" json:"line_matches,omitempty"`
	ChunkMatches []*ChunkMatch `protobuf:"bytes,7,rep,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"`
	// repository_id is a Sourcegraph extension. This is the ID of Repository in
	// Sourcegraph.
	RepositoryId       uint32  `protobuf:"varint,8,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	RepositoryPriority float64 `protobuf:"fixed64,9,opt,name=repository_priority,json=repositoryPriority,proto3" json:"repository_priority,omitempty"`
	// Only set if requested
	Content []byte `protobuf:"bytes,10,opt,name=content,proto3" json:"content,omitempty"`
	// Checksum of the content.
	Checksum []byte `protobuf:"bytes,11,opt,name=checksum,proto3" json:"checksum,omitempty"`
	// Detected language of the result.
	Language string `protobuf:"bytes,12,opt,name=language,proto3" json:"language,omitempty"`
	// sub_repository_name is the globally unique name of the repo,
	// if it came from a subrepository
	SubRepositoryName string `protobuf:"bytes,13,opt,name=sub_repository_name,json=subRepositoryName,proto3" json:"sub_repository_name,omitempty"`
	// sub_repository_path holds the prefix where the subrepository
	// was mounted.
	SubRepositoryPath string `protobuf:"bytes,14,opt,name=sub_repository_path,json=subRepositoryPath,proto3" json:"sub_repository_path,omitempty"`
	// Commit SHA1 (hex) of the (sub)repo holding the file.
	Version string `protobuf:"bytes,15,opt,name=version,proto3" json:"version,omitempty"`
}

func (x *FileMatch) Reset() {
	*x = FileMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FileMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FileMatch) ProtoMessage() {}

func (x *FileMatch) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileMatch.ProtoReflect.Descriptor instead.
func (*FileMatch) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{16}
}

func (x *FileMatch) GetScore() float64 {
	if x != nil {
		return x.Score
	}
	return 0
}

func (x *FileMatch) GetDebug() string {
	if x != nil {
		return x.Debug
	}
	return ""
}

func (x *FileMatch) GetFileName() []byte {
	if x != nil {
		return x.FileName
	}
	return nil
}

func (x *FileMatch) GetRepository() string {
	if x != nil {
		return x.Repository
	}
	return ""
}

func (x *FileMatch) GetBranches() []string {
	if x != nil {
		return x.Branches
	}
	return nil
}

func (x *FileMatch) GetLineMatches() []*LineMatch {
	if x != nil {
		return x.LineMatches
	}
	return nil
}

func (x *FileMatch) GetChunkMatches() []*ChunkMatch {
	if x != nil {
		return x.ChunkMatches
	}
	return nil
}

func (x *FileMatch) GetRepositoryId() uint32 {
	if x != nil {
		return x.RepositoryId
	}
	return 0
}

func (x *FileMatch) GetRepositoryPriority() float64 {
	if x != nil {
		return x.RepositoryPriority
	}
	return 0
}

func (x *FileMatch) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *FileMatch) GetChecksum() []byte {
	if x != nil {
		return x.Checksum
	}
	return nil
}

func (x *FileMatch) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

func (x *FileMatch) GetSubRepositoryName() string {
	if x != nil {
		return x.SubRepositoryName
	}
	return ""
}

func (x *FileMatch) GetSubRepositoryPath() string {
	if x != nil {
		return x.SubRepositoryPath
	}
	return ""
}

func (x *FileMatch) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

type LineMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Line       []byte `protobuf:"bytes,1,opt,name=line,proto3" json:"line,omitempty"`
	LineStart  int64  `protobuf:"varint,2,opt,name=line_start,json=lineStart,proto3" json:"line_start,omitempty"`
	LineEnd    int64  `protobuf:"varint,3,opt,name=line_end,json=lineEnd,proto3" json:"line_end,omitempty"`
	LineNumber int64  `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
	// before and after are only set when SearchOptions.NumContextLines is > 0
	Before []byte `protobuf:"bytes,5,opt,name=before,proto3" json:"before,omitempty"`
	After  []byte `protobuf:"bytes,6,opt,name=after,proto3" json:"after,omitempty"`
	// If set, this was a match on the filename.
	FileName bool `protobuf:"varint,7,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
	// The higher the better. Only ranks the quality of the match
	// within the file, does not take rank of file into account
	Score         float64              `protobuf:"fixed64,8,opt,name=score,proto3" json:"score,omitempty"`
	DebugScore    string               `protobuf:"bytes,9,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"`
	LineFragments []*LineFragmentMatch `protobuf:"bytes,10,rep,name=line_fragments,json=lineFragments,proto3" json:"line_fragments,omitempty"`
}

func (x *LineMatch) Reset() {
	*x = LineMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LineMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LineMatch) ProtoMessage() {}

func (x *LineMatch) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LineMatch.ProtoReflect.Descriptor instead.
func (*LineMatch) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{17}
}

func (x *LineMatch) GetLine() []byte {
	if x != nil {
		return x.Line
	}
	return nil
}

func (x *LineMatch) GetLineStart() int64 {
	if x != nil {
		return x.LineStart
	}
	return 0
}

func (x *LineMatch) GetLineEnd() int64 {
	if x != nil {
		return x.LineEnd
	}
	return 0
}

func (x *LineMatch) GetLineNumber() int64 {
	if x != nil {
		return x.LineNumber
	}
	return 0
}

func (x *LineMatch) GetBefore() []byte {
	if x != nil {
		return x.Before
	}
	return nil
}

func (x *LineMatch) GetAfter() []byte {
	if x != nil {
		return x.After
	}
	return nil
}

func (x *LineMatch) GetFileName() bool {
	if x != nil {
		return x.FileName
	}
	return false
}

func (x *LineMatch) GetScore() float64 {
	if x != nil {
		return x.Score
	}
	return 0
}

func (x *LineMatch) GetDebugScore() string {
	if x != nil {
		return x.DebugScore
	}
	return ""
}

func (x *LineMatch) GetLineFragments() []*LineFragmentMatch {
	if x != nil {
		return x.LineFragments
	}
	return nil
}

type LineFragmentMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Offset within the line, in bytes.
	LineOffset int64 `protobuf:"varint,1,opt,name=line_offset,json=lineOffset,proto3" json:"line_offset,omitempty"`
	// Offset from file start, in bytes.
	Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	// Number bytes that match.
	MatchLength int64       `protobuf:"varint,3,opt,name=match_length,json=matchLength,proto3" json:"match_length,omitempty"`
	SymbolInfo  *SymbolInfo `protobuf:"bytes,4,opt,name=symbol_info,json=symbolInfo,proto3,oneof" json:"symbol_info,omitempty"`
}

func (x *LineFragmentMatch) Reset() {
	*x = LineFragmentMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LineFragmentMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LineFragmentMatch) ProtoMessage() {}

func (x *LineFragmentMatch) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LineFragmentMatch.ProtoReflect.Descriptor instead.
func (*LineFragmentMatch) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{18}
}

func (x *LineFragmentMatch) GetLineOffset() int64 {
	if x != nil {
		return x.LineOffset
	}
	return 0
}

func (x *LineFragmentMatch) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *LineFragmentMatch) GetMatchLength() int64 {
	if x != nil {
		return x.MatchLength
	}
	return 0
}

func (x *LineFragmentMatch) GetSymbolInfo() *SymbolInfo {
	if x != nil {
		return x.SymbolInfo
	}
	return nil
}

type SymbolInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Sym        string `protobuf:"bytes,1,opt,name=sym,proto3" json:"sym,omitempty"`
	Kind       string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Parent     string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
	ParentKind string `protobuf:"bytes,4,opt,name=parent_kind,json=parentKind,proto3" json:"parent_kind,omitempty"`
}

func (x *SymbolInfo) Reset() {
	*x = SymbolInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SymbolInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SymbolInfo) ProtoMessage() {}

func (x *SymbolInfo) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SymbolInfo.ProtoReflect.Descriptor instead.
func (*SymbolInfo) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{19}
}

func (x *SymbolInfo) GetSym() string {
	if x != nil {
		return x.Sym
	}
	return ""
}

func (x *SymbolInfo) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *SymbolInfo) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *SymbolInfo) GetParentKind() string {
	if x != nil {
		return x.ParentKind
	}
	return ""
}

type ChunkMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A contiguous range of complete lines that fully contains Ranges.
	Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
	// The location (inclusive) of the beginning of content
	// relative to the beginning of the file. It will always be at the
	// beginning of a line (Column will always be 1).
	ContentStart *Location `protobuf:"bytes,2,opt,name=content_start,json=contentStart,proto3" json:"content_start,omitempty"`
	// True if this match is a match on the file name, in
	// which case Content will contain the file name.
	FileName bool `protobuf:"varint,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
	// A set of matching ranges within this chunk. Each range is relative
	// to the beginning of the file (not the beginning of Content).
	Ranges []*Range `protobuf:"bytes,4,rep,name=ranges,proto3" json:"ranges,omitempty"`
	// The symbol information associated with Ranges. If it is non-nil,
	// its length will equal that of Ranges. Any of its elements may be nil.
	SymbolInfo    []*SymbolInfo `protobuf:"bytes,5,rep,name=symbol_info,json=symbolInfo,proto3" json:"symbol_info,omitempty"`
	Score         float64       `protobuf:"fixed64,6,opt,name=score,proto3" json:"score,omitempty"`
	DebugScore    string        `protobuf:"bytes,7,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"`
	BestLineMatch uint32        `protobuf:"varint,8,opt,name=best_line_match,json=bestLineMatch,proto3" json:"best_line_match,omitempty"`
}

func (x *ChunkMatch) Reset() {
	*x = ChunkMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChunkMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChunkMatch) ProtoMessage() {}

func (x *ChunkMatch) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChunkMatch.ProtoReflect.Descriptor instead.
func (*ChunkMatch) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{20}
}

func (x *ChunkMatch) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *ChunkMatch) GetContentStart() *Location {
	if x != nil {
		return x.ContentStart
	}
	return nil
}

func (x *ChunkMatch) GetFileName() bool {
	if x != nil {
		return x.FileName
	}
	return false
}

func (x *ChunkMatch) GetRanges() []*Range {
	if x != nil {
		return x.Ranges
	}
	return nil
}

func (x *ChunkMatch) GetSymbolInfo() []*SymbolInfo {
	if x != nil {
		return x.SymbolInfo
	}
	return nil
}

func (x *ChunkMatch) GetScore() float64 {
	if x != nil {
		return x.Score
	}
	return 0
}

func (x *ChunkMatch) GetDebugScore() string {
	if x != nil {
		return x.DebugScore
	}
	return ""
}

func (x *ChunkMatch) GetBestLineMatch() uint32 {
	if x != nil {
		return x.BestLineMatch
	}
	return 0
}

type Range struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The inclusive beginning of the range.
	Start *Location `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
	// The exclusive end of the range.
	End *Location `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
}

func (x *Range) Reset() {
	*x = Range{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Range) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Range) ProtoMessage() {}

func (x *Range) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Range.ProtoReflect.Descriptor instead.
func (*Range) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{21}
}

func (x *Range) GetStart() *Location {
	if x != nil {
		return x.Start
	}
	return nil
}

func (x *Range) GetEnd() *Location {
	if x != nil {
		return x.End
	}
	return nil
}

type Location struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 0-based byte offset from the beginning of the file
	ByteOffset uint32 `protobuf:"varint,1,opt,name=byte_offset,json=byteOffset,proto3" json:"byte_offset,omitempty"`
	// 1-based line number from the beginning of the file
	LineNumber uint32 `protobuf:"varint,2,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
	// 1-based column number (in runes) from the beginning of line
	Column uint32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"`
}

func (x *Location) Reset() {
	*x = Location{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Location) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Location) ProtoMessage() {}

func (x *Location) ProtoReflect() protoreflect.Message {
	mi := &file_zoekt_webserver_v1_webserver_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Location.ProtoReflect.Descriptor instead.
func (*Location) Descriptor() ([]byte, []int) {
	return file_zoekt_webserver_v1_webserver_proto_rawDescGZIP(), []int{22}
}

func (x *Location) GetByteOffset() uint32 {
	if x != nil {
		return x.ByteOffset
	}
	return 0
}

func (x *Location) GetLineNumber() uint32 {
	if x != nil {
		return x.LineNumber
	}
	return 0
}

func (x *Location) GetColumn() uint32 {
	if x != nil {
		return x.Column
	}
	return 0
}

var File_zoekt_webserver_v1_webserver_proto protoreflect.FileDescriptor

var file_zoekt_webserver_v1_webserver_proto_rawDesc = []byte{
	0x0a, 0x22, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x7a, 0x6f, 0x65, 0x6b, 0x74,
	0x2f, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x0d, 0x53, 0x65, 0x61,
	0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x7a, 0x6f, 0x65, 0x6b,
	0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x51,
	0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65,
	0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63,
	0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x22, 0xd7,
	0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x05,
	0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x7a, 0x6f,
	0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x52, 0x09, 0x72,
	0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66,
	0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x58, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x3b, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x01,
	0x10, 0x03, 0x22, 0x67, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x06, 0x22, 0x9f, 0x05, 0x0a, 0x0d,
	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a,
	0x12, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x73, 0x74, 0x69, 0x6d,
	0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77,
	0x68, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x77, 0x68, 0x6f, 0x6c,
	0x65, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x61,
	0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x61, 0x78, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x68, 0x61, 0x72, 0x64,
	0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x61,
	0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x77, 0x61, 0x6c, 0x6c,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x57, 0x61, 0x6c,
	0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x6f, 0x63,
	0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x44, 0x6f, 0x63, 0x44, 0x69, 0x73, 0x70,
	0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f,
	0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x43,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63,
	0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0c, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x62,
	0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x5f, 0x62,
	0x6d, 0x32, 0x35, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x42, 0x6d, 0x32, 0x35, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e,
	0x67, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0x6f, 0x0a,
	0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x7a, 0x6f,
	0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x51, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x6f, 0x70, 0x74,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e,
	0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
	0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x22, 0xd2,
	0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43,
	0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
	0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
	0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52,
	0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x22, 0x78, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x46,
	0x69, 0x65, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53,
	0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a,
	0x15, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44,
	0x5f, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4f,
	0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f,
	0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x03, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x4a, 0x04, 0x08,
	0x10, 0x10, 0x11, 0x22, 0xd0, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73,
	0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x4b, 0x0a,
	0x09, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2e, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72,
	0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x72, 0x61,
	0x73, 0x68, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x65, 0x0a, 0x0d, 0x52, 0x65, 0x70,
	0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x7a, 0x6f,
	0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xce, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c,
	0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x7a,
	0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x96, 0x08, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77,
	0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x08, 0x62, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65,
	0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x7a,
	0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x62,
	0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75,
	0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x55, 0x72, 0x6c,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x65,
	0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72,
	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x7a, 0x6f, 0x65,
	0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x61, 0x77, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a,
	0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x1c,
	0x0a, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x48, 0x0a, 0x12,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74,
	0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x0e, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12,
	0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x08,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c,
	0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5d, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x52, 0x65, 0x70,
	0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x7a, 0x6f, 0x65,
	0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xd6, 0x03, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x13, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x73, 0x63, 0x69, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x41, 0x73, 0x63, 0x69, 0x69, 0x12, 0x55, 0x0a,
	0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x4d,
	0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x4d, 0x61, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x7a, 0x6f, 0x65,
	0x6b, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x3e, 0x0a, 0x10, 0x4c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x4d, 0x69,
	0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65,
	0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x08, 0x62, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x22, 0x40, 0x0a,
	0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22,
	0xcd, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65,
	0x70, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12,
	0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x4c, 0x69, 0x6e,
	0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x65,
	0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x6f,
	0x74, 0x68, 0x65, 0x72, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x6e, 0x65,
	0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x1a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68,
	0x65, 0x73, 0x4e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22,
	0xa9, 0x07, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79,
	0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x61,
	0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x72, 0x61, 0x73,
	0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69,
	0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x68, 0x61,
	0x72, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65,
	0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x64,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12,
	0x29, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65,
	0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x73,
	0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69,
	0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a,
	0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70,
	0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x63, 0x61,
	0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72,
	0x64, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61,
	0x72, 0x64, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64,
	0x12, 0x32, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70,
	0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x13, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x46, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x67,
	0x72, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61,
	0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x12, 0x51, 0x0a, 0x17, 0x6d, 0x61, 0x74,
	0x63, 0x68, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x65, 0x65,
	0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11,
	0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63,
	0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x61,
	0x72, 0x63, 0x68, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x73, 0x5f, 0x63,
	0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x11, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72,
	0x65, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74,
	0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x66, 0x6c, 0x75, 0x73, 0x68,
	0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x5f,
	0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e,
	0x67, 0x72, 0x61, 0x6d, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x22, 0x58, 0x0a, 0x08, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
	0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
	0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69,
	0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xb9, 0x04, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62,
	0x75, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12,
	0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
	0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08,
	0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
	0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65,
	0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0b, 0x6c,
	0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x63, 0x68,
	0x75, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1e, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63,
	0x68, 0x52, 0x0c, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12,
	0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x69,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
	0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72,
	0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72,
	0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x6f, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x22, 0xca, 0x02, 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
	0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c,
	0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16,
	0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
	0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09,
	0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
	0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12,
	0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65,
	0x12, 0x4c, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74,
	0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
	0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52,
	0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xc5,
	0x01, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66,
	0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4f,
	0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a,
	0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,
	0x12, 0x44, 0x0a, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65,
	0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49,
	0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x6b, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x73, 0x79, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4b,
	0x69, 0x6e, 0x64, 0x22, 0xd9, 0x02, 0x0a, 0x0a, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
	0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x06,
	0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x7a,
	0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
	0x3f, 0x0a, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x62,
	0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x65, 0x73, 0x74, 0x5f,
	0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0d, 0x62, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22,
	0x6b, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e,
	0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x03,
	0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x7a, 0x6f, 0x65, 0x6b,
	0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x64, 0x0a, 0x08,
	0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65,
	0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62,
	0x79, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e,
	0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
	0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f,
	0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75,
	0x6d, 0x6e, 0x2a, 0x8c, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x4c, 0x55, 0x53,
	0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x5f, 0x45,
	0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x4c, 0x55, 0x53,
	0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x46,
	0x4c, 0x55, 0x53, 0x48, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10,
	0x03, 0x32, 0x99, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x12, 0x21, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x27, 0x2e, 0x7a, 0x6f, 0x65, 0x6b,
	0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x28, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65,
	0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01,
	0x12, 0x4b, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x7a, 0x6f, 0x65, 0x6b, 0x74,
	0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x7a, 0x6f, 0x65, 0x6b,
	0x74, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3d, 0x5a,
	0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2f, 0x67, 0x72,
	0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2f,
	0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_zoekt_webserver_v1_webserver_proto_rawDescOnce sync.Once
	file_zoekt_webserver_v1_webserver_proto_rawDescData = file_zoekt_webserver_v1_webserver_proto_rawDesc
)

func file_zoekt_webserver_v1_webserver_proto_rawDescGZIP() []byte {
	file_zoekt_webserver_v1_webserver_proto_rawDescOnce.Do(func() {
		file_zoekt_webserver_v1_webserver_proto_rawDescData = protoimpl.X.CompressGZIP(file_zoekt_webserver_v1_webserver_proto_rawDescData)
	})
	return file_zoekt_webserver_v1_webserver_proto_rawDescData
}

var file_zoekt_webserver_v1_webserver_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_zoekt_webserver_v1_webserver_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
var file_zoekt_webserver_v1_webserver_proto_goTypes = []interface{}{
	(FlushReason)(0),               // 0: zoekt.webserver.v1.FlushReason
	(ListOptions_RepoListField)(0), // 1: zoekt.webserver.v1.ListOptions.RepoListField
	(*SearchRequest)(nil),          // 2: zoekt.webserver.v1.SearchRequest
	(*SearchResponse)(nil),         // 3: zoekt.webserver.v1.SearchResponse
	(*StreamSearchRequest)(nil),    // 4: zoekt.webserver.v1.StreamSearchRequest
	(*StreamSearchResponse)(nil),   // 5: zoekt.webserver.v1.StreamSearchResponse
	(*SearchOptions)(nil),          // 6: zoekt.webserver.v1.SearchOptions
	(*ListRequest)(nil),            // 7: zoekt.webserver.v1.ListRequest
	(*ListOptions)(nil),            // 8: zoekt.webserver.v1.ListOptions
	(*ListResponse)(nil),           // 9: zoekt.webserver.v1.ListResponse
	(*RepoListEntry)(nil),          // 10: zoekt.webserver.v1.RepoListEntry
	(*Repository)(nil),             // 11: zoekt.webserver.v1.Repository
	(*IndexMetadata)(nil),          // 12: zoekt.webserver.v1.IndexMetadata
	(*MinimalRepoListEntry)(nil),   // 13: zoekt.webserver.v1.MinimalRepoListEntry
	(*RepositoryBranch)(nil),       // 14: zoekt.webserver.v1.RepositoryBranch
	(*RepoStats)(nil),              // 15: zoekt.webserver.v1.RepoStats
	(*Stats)(nil),                  // 16: zoekt.webserver.v1.Stats
	(*Progress)(nil),               // 17: zoekt.webserver.v1.Progress
	(*FileMatch)(nil),              // 18: zoekt.webserver.v1.FileMatch
	(*LineMatch)(nil),              // 19: zoekt.webserver.v1.LineMatch
	(*LineFragmentMatch)(nil),      // 20: zoekt.webserver.v1.LineFragmentMatch
	(*SymbolInfo)(nil),             // 21: zoekt.webserver.v1.SymbolInfo
	(*ChunkMatch)(nil),             // 22: zoekt.webserver.v1.ChunkMatch
	(*Range)(nil),                  // 23: zoekt.webserver.v1.Range
	(*Location)(nil),               // 24: zoekt.webserver.v1.Location
	nil,                            // 25: zoekt.webserver.v1.ListResponse.ReposMapEntry
	nil,                            // 26: zoekt.webserver.v1.Repository.SubRepoMapEntry
	nil,                            // 27: zoekt.webserver.v1.Repository.RawConfigEntry
	nil,                            // 28: zoekt.webserver.v1.Repository.MetadataEntry
	nil,                            // 29: zoekt.webserver.v1.IndexMetadata.LanguageMapEntry
	(*Q)(nil),                      // 30: zoekt.webserver.v1.Q
	(*durationpb.Duration)(nil),    // 31: google.protobuf.Duration
	(*timestamppb.Timestamp)(nil),  // 32: google.protobuf.Timestamp
}
var file_zoekt_webserver_v1_webserver_proto_depIdxs = []int32{
	30, // 0: zoekt.webserver.v1.SearchRequest.query:type_name -> zoekt.webserver.v1.Q
	6,  // 1: zoekt.webserver.v1.SearchRequest.opts:type_name -> zoekt.webserver.v1.SearchOptions
	16, // 2: zoekt.webserver.v1.SearchResponse.stats:type_name -> zoekt.webserver.v1.Stats
	17, // 3: zoekt.webserver.v1.SearchResponse.progress:type_name -> zoekt.webserver.v1.Progress
	18, // 4: zoekt.webserver.v1.SearchResponse.files:type_name -> zoekt.webserver.v1.FileMatch
	2,  // 5: zoekt.webserver.v1.StreamSearchRequest.request:type_name -> zoekt.webserver.v1.SearchRequest
	3,  // 6: zoekt.webserver.v1.StreamSearchResponse.response_chunk:type_name -> zoekt.webserver.v1.SearchResponse
	31, // 7: zoekt.webserver.v1.SearchOptions.max_wall_time:type_name -> google.protobuf.Duration
	31, // 8: zoekt.webserver.v1.SearchOptions.flush_wall_time:type_name -> google.protobuf.Duration
	30, // 9: zoekt.webserver.v1.ListRequest.query:type_name -> zoekt.webserver.v1.Q
	8,  // 10: zoekt.webserver.v1.ListRequest.opts:type_name -> zoekt.webserver.v1.ListOptions
	1,  // 11: zoekt.webserver.v1.ListOptions.field:type_name -> zoekt.webserver.v1.ListOptions.RepoListField
	10, // 12: zoekt.webserver.v1.ListResponse.repos:type_name -> zoekt.webserver.v1.RepoListEntry
	25, // 13: zoekt.webserver.v1.ListResponse.repos_map:type_name -> zoekt.webserver.v1.ListResponse.ReposMapEntry
	15, // 14: zoekt.webserver.v1.ListResponse.stats:type_name -> zoekt.webserver.v1.RepoStats
	11, // 15: zoekt.webserver.v1.RepoListEntry.repository:type_name -> zoekt.webserver.v1.Repository
	12, // 16: zoekt.webserver.v1.RepoListEntry.index_metadata:type_name -> zoekt.webserver.v1.IndexMetadata
	15, // 17: zoekt.webserver.v1.RepoListEntry.stats:type_name -> zoekt.webserver.v1.RepoStats
	14, // 18: zoekt.webserver.v1.Repository.branches:type_name -> zoekt.webserver.v1.RepositoryBranch
	26, // 19: zoekt.webserver.v1.Repository.sub_repo_map:type_name -> zoekt.webserver.v1.Repository.SubRepoMapEntry
	27, // 20: zoekt.webserver.v1.Repository.raw_config:type_name -> zoekt.webserver.v1.Repository.RawConfigEntry
	32, // 21: zoekt.webserver.v1.Repository.latest_commit_date:type_name -> google.protobuf.Timestamp
	28, // 22: zoekt.webserver.v1.Repository.metadata:type_name -> zoekt.webserver.v1.Repository.MetadataEntry
	32, // 23: zoekt.webserver.v1.IndexMetadata.index_time:type_name -> google.protobuf.Timestamp
	29, // 24: zoekt.webserver.v1.IndexMetadata.language_map:type_name -> zoekt.webserver.v1.IndexMetadata.LanguageMapEntry
	14, // 25: zoekt.webserver.v1.MinimalRepoListEntry.branches:type_name -> zoekt.webserver.v1.RepositoryBranch
	31, // 26: zoekt.webserver.v1.Stats.duration:type_name -> google.protobuf.Duration
	31, // 27: zoekt.webserver.v1.Stats.wait:type_name -> google.protobuf.Duration
	31, // 28: zoekt.webserver.v1.Stats.match_tree_construction:type_name -> google.protobuf.Duration
	31, // 29: zoekt.webserver.v1.Stats.match_tree_search:type_name -> google.protobuf.Duration
	0,  // 30: zoekt.webserver.v1.Stats.flush_reason:type_name -> zoekt.webserver.v1.FlushReason
	19, // 31: zoekt.webserver.v1.FileMatch.line_matches:type_name -> zoekt.webserver.v1.LineMatch
	22, // 32: zoekt.webserver.v1.FileMatch.chunk_matches:type_name -> zoekt.webserver.v1.ChunkMatch
	20, // 33: zoekt.webserver.v1.LineMatch.line_fragments:type_name -> zoekt.webserver.v1.LineFragmentMatch
	21, // 34: zoekt.webserver.v1.LineFragmentMatch.symbol_info:type_name -> zoekt.webserver.v1.SymbolInfo
	24, // 35: zoekt.webserver.v1.ChunkMatch.content_start:type_name -> zoekt.webserver.v1.Location
	23, // 36: zoekt.webserver.v1.ChunkMatch.ranges:type_name -> zoekt.webserver.v1.Range
	21, // 37: zoekt.webserver.v1.ChunkMatch.symbol_info:type_name -> zoekt.webserver.v1.SymbolInfo
	24, // 38: zoekt.webserver.v1.Range.start:type_name -> zoekt.webserver.v1.Location
	24, // 39: zoekt.webserver.v1.Range.end:type_name -> zoekt.webserver.v1.Location
	13, // 40: zoekt.webserver.v1.ListResponse.ReposMapEntry.value:type_name -> zoekt.webserver.v1.MinimalRepoListEntry
	11, // 41: zoekt.webserver.v1.Repository.SubRepoMapEntry.value:type_name -> zoekt.webserver.v1.Repository
	2,  // 42: zoekt.webserver.v1.WebserverService.Search:input_type -> zoekt.webserver.v1.SearchRequest
	4,  // 43: zoekt.webserver.v1.WebserverService.StreamSearch:input_type -> zoekt.webserver.v1.StreamSearchRequest
	7,  // 44: zoekt.webserver.v1.WebserverService.List:input_type -> zoekt.webserver.v1.ListRequest
	3,  // 45: zoekt.webserver.v1.WebserverService.Search:output_type -> zoekt.webserver.v1.SearchResponse
	5,  // 46: zoekt.webserver.v1.WebserverService.StreamSearch:output_type -> zoekt.webserver.v1.StreamSearchResponse
	9,  // 47: zoekt.webserver.v1.WebserverService.List:output_type -> zoekt.webserver.v1.ListResponse
	45, // [45:48] is the sub-list for method output_type
	42, // [42:45] is the sub-list for method input_type
	42, // [42:42] is the sub-list for extension type_name
	42, // [42:42] is the sub-list for extension extendee
	0,  // [0:42] is the sub-list for field type_name
}

func init() { file_zoekt_webserver_v1_webserver_proto_init() }
func file_zoekt_webserver_v1_webserver_proto_init() {
	if File_zoekt_webserver_v1_webserver_proto != nil {
		return
	}
	file_zoekt_webserver_v1_query_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_zoekt_webserver_v1_webserver_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamSearchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamSearchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepoListEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Repository); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IndexMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MinimalRepoListEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepositoryBranch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepoStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Stats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Progress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FileMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LineMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LineFragmentMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SymbolInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChunkMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Range); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zoekt_webserver_v1_webserver_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Location); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_zoekt_webserver_v1_webserver_proto_msgTypes[18].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_zoekt_webserver_v1_webserver_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   28,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_zoekt_webserver_v1_webserver_proto_goTypes,
		DependencyIndexes: file_zoekt_webserver_v1_webserver_proto_depIdxs,
		EnumInfos:         file_zoekt_webserver_v1_webserver_proto_enumTypes,
		MessageInfos:      file_zoekt_webserver_v1_webserver_proto_msgTypes,
	}.Build()
	File_zoekt_webserver_v1_webserver_proto = out.File
	file_zoekt_webserver_v1_webserver_proto_rawDesc = nil
	file_zoekt_webserver_v1_webserver_proto_goTypes = nil
	file_zoekt_webserver_v1_webserver_proto_depIdxs = nil
}
