fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1// Code generated by protoc-gen-go. DO NOT EDIT. 2// versions: 3// protoc-gen-go v1.29.1 4// protoc (unknown) 5// source: webserver.proto 6 7package v1 8 9import ( 10 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 durationpb "google.golang.org/protobuf/types/known/durationpb" 13 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 14 reflect "reflect" 15 sync "sync" 16) 17 18const ( 19 // Verify that this generated code is sufficiently up-to-date. 20 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 21 // Verify that runtime/protoimpl is sufficiently up-to-date. 22 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 23) 24 25type FlushReason int32 26 27const ( 28 FlushReason_UNKNOWN FlushReason = 0 29 FlushReason_TIMER_EXPIRED FlushReason = 1 30 FlushReason_FINAL_FLUSH FlushReason = 2 31 FlushReason_MAX_SIZE FlushReason = 3 32) 33 34// Enum value maps for FlushReason. 35var ( 36 FlushReason_name = map[int32]string{ 37 0: "UNKNOWN", 38 1: "TIMER_EXPIRED", 39 2: "FINAL_FLUSH", 40 3: "MAX_SIZE", 41 } 42 FlushReason_value = map[string]int32{ 43 "UNKNOWN": 0, 44 "TIMER_EXPIRED": 1, 45 "FINAL_FLUSH": 2, 46 "MAX_SIZE": 3, 47 } 48) 49 50func (x FlushReason) Enum() *FlushReason { 51 p := new(FlushReason) 52 *p = x 53 return p 54} 55 56func (x FlushReason) String() string { 57 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 58} 59 60func (FlushReason) Descriptor() protoreflect.EnumDescriptor { 61 return file_webserver_proto_enumTypes[0].Descriptor() 62} 63 64func (FlushReason) Type() protoreflect.EnumType { 65 return &file_webserver_proto_enumTypes[0] 66} 67 68func (x FlushReason) Number() protoreflect.EnumNumber { 69 return protoreflect.EnumNumber(x) 70} 71 72// Deprecated: Use FlushReason.Descriptor instead. 73func (FlushReason) EnumDescriptor() ([]byte, []int) { 74 return file_webserver_proto_rawDescGZIP(), []int{0} 75} 76 77type ListOptions_RepoListField int32 78 79const ( 80 ListOptions_REPO_LIST_FIELD_UNKNOWN ListOptions_RepoListField = 0 81 ListOptions_REPO_LIST_FIELD_REPOS ListOptions_RepoListField = 1 82 ListOptions_REPO_LIST_FIELD_MINIMAL ListOptions_RepoListField = 2 83 ListOptions_REPO_LIST_FIELD_REPOS_MAP ListOptions_RepoListField = 3 84) 85 86// Enum value maps for ListOptions_RepoListField. 87var ( 88 ListOptions_RepoListField_name = map[int32]string{ 89 0: "REPO_LIST_FIELD_UNKNOWN", 90 1: "REPO_LIST_FIELD_REPOS", 91 2: "REPO_LIST_FIELD_MINIMAL", 92 3: "REPO_LIST_FIELD_REPOS_MAP", 93 } 94 ListOptions_RepoListField_value = map[string]int32{ 95 "REPO_LIST_FIELD_UNKNOWN": 0, 96 "REPO_LIST_FIELD_REPOS": 1, 97 "REPO_LIST_FIELD_MINIMAL": 2, 98 "REPO_LIST_FIELD_REPOS_MAP": 3, 99 } 100) 101 102func (x ListOptions_RepoListField) Enum() *ListOptions_RepoListField { 103 p := new(ListOptions_RepoListField) 104 *p = x 105 return p 106} 107 108func (x ListOptions_RepoListField) String() string { 109 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 110} 111 112func (ListOptions_RepoListField) Descriptor() protoreflect.EnumDescriptor { 113 return file_webserver_proto_enumTypes[1].Descriptor() 114} 115 116func (ListOptions_RepoListField) Type() protoreflect.EnumType { 117 return &file_webserver_proto_enumTypes[1] 118} 119 120func (x ListOptions_RepoListField) Number() protoreflect.EnumNumber { 121 return protoreflect.EnumNumber(x) 122} 123 124// Deprecated: Use ListOptions_RepoListField.Descriptor instead. 125func (ListOptions_RepoListField) EnumDescriptor() ([]byte, []int) { 126 return file_webserver_proto_rawDescGZIP(), []int{4, 0} 127} 128 129type SearchRequest struct { 130 state protoimpl.MessageState 131 sizeCache protoimpl.SizeCache 132 unknownFields protoimpl.UnknownFields 133 134 Query *Q `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 135 Opts *SearchOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"` 136} 137 138func (x *SearchRequest) Reset() { 139 *x = SearchRequest{} 140 if protoimpl.UnsafeEnabled { 141 mi := &file_webserver_proto_msgTypes[0] 142 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 143 ms.StoreMessageInfo(mi) 144 } 145} 146 147func (x *SearchRequest) String() string { 148 return protoimpl.X.MessageStringOf(x) 149} 150 151func (*SearchRequest) ProtoMessage() {} 152 153func (x *SearchRequest) ProtoReflect() protoreflect.Message { 154 mi := &file_webserver_proto_msgTypes[0] 155 if protoimpl.UnsafeEnabled && x != nil { 156 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 157 if ms.LoadMessageInfo() == nil { 158 ms.StoreMessageInfo(mi) 159 } 160 return ms 161 } 162 return mi.MessageOf(x) 163} 164 165// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. 166func (*SearchRequest) Descriptor() ([]byte, []int) { 167 return file_webserver_proto_rawDescGZIP(), []int{0} 168} 169 170func (x *SearchRequest) GetQuery() *Q { 171 if x != nil { 172 return x.Query 173 } 174 return nil 175} 176 177func (x *SearchRequest) GetOpts() *SearchOptions { 178 if x != nil { 179 return x.Opts 180 } 181 return nil 182} 183 184type SearchResponse struct { 185 state protoimpl.MessageState 186 sizeCache protoimpl.SizeCache 187 unknownFields protoimpl.UnknownFields 188 189 Stats *Stats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"` 190 Progress *Progress `protobuf:"bytes,2,opt,name=progress,proto3" json:"progress,omitempty"` 191 Files []*FileMatch `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"` 192 // RepoURLs holds a repo => template string map. 193 RepoUrls map[string]string `protobuf:"bytes,4,rep,name=repo_urls,json=repoUrls,proto3" json:"repo_urls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 194 // FragmentNames holds a repo => template string map, for 195 // the line number fragment. 196 LineFragments map[string]string `protobuf:"bytes,5,rep,name=line_fragments,json=lineFragments,proto3" json:"line_fragments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 197} 198 199func (x *SearchResponse) Reset() { 200 *x = SearchResponse{} 201 if protoimpl.UnsafeEnabled { 202 mi := &file_webserver_proto_msgTypes[1] 203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 204 ms.StoreMessageInfo(mi) 205 } 206} 207 208func (x *SearchResponse) String() string { 209 return protoimpl.X.MessageStringOf(x) 210} 211 212func (*SearchResponse) ProtoMessage() {} 213 214func (x *SearchResponse) ProtoReflect() protoreflect.Message { 215 mi := &file_webserver_proto_msgTypes[1] 216 if protoimpl.UnsafeEnabled && x != nil { 217 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 218 if ms.LoadMessageInfo() == nil { 219 ms.StoreMessageInfo(mi) 220 } 221 return ms 222 } 223 return mi.MessageOf(x) 224} 225 226// Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. 227func (*SearchResponse) Descriptor() ([]byte, []int) { 228 return file_webserver_proto_rawDescGZIP(), []int{1} 229} 230 231func (x *SearchResponse) GetStats() *Stats { 232 if x != nil { 233 return x.Stats 234 } 235 return nil 236} 237 238func (x *SearchResponse) GetProgress() *Progress { 239 if x != nil { 240 return x.Progress 241 } 242 return nil 243} 244 245func (x *SearchResponse) GetFiles() []*FileMatch { 246 if x != nil { 247 return x.Files 248 } 249 return nil 250} 251 252func (x *SearchResponse) GetRepoUrls() map[string]string { 253 if x != nil { 254 return x.RepoUrls 255 } 256 return nil 257} 258 259func (x *SearchResponse) GetLineFragments() map[string]string { 260 if x != nil { 261 return x.LineFragments 262 } 263 return nil 264} 265 266type SearchOptions struct { 267 state protoimpl.MessageState 268 sizeCache protoimpl.SizeCache 269 unknownFields protoimpl.UnknownFields 270 271 // Return an upper-bound estimate of eligible documents in 272 // stats.ShardFilesConsidered. 273 EstimateDocCount bool `protobuf:"varint,1,opt,name=estimate_doc_count,json=estimateDocCount,proto3" json:"estimate_doc_count,omitempty"` 274 // Return the whole file. 275 Whole bool `protobuf:"varint,2,opt,name=whole,proto3" json:"whole,omitempty"` 276 // Maximum number of matches: skip all processing an index 277 // shard after we found this many non-overlapping matches. 278 ShardMaxMatchCount int64 `protobuf:"varint,3,opt,name=shard_max_match_count,json=shardMaxMatchCount,proto3" json:"shard_max_match_count,omitempty"` 279 // Maximum number of matches: stop looking for more matches 280 // once we have this many matches across shards. 281 TotalMaxMatchCount int64 `protobuf:"varint,4,opt,name=total_max_match_count,json=totalMaxMatchCount,proto3" json:"total_max_match_count,omitempty"` 282 // Maximum number of matches: skip processing documents for a repository in 283 // a shard once we have found ShardRepoMaxMatchCount. 284 // 285 // A compound shard may contain multiple repositories. This will most often 286 // be set to 1 to find all repositories containing a result. 287 ShardRepoMaxMatchCount int64 `protobuf:"varint,5,opt,name=shard_repo_max_match_count,json=shardRepoMaxMatchCount,proto3" json:"shard_repo_max_match_count,omitempty"` 288 // Abort the search after this much time has passed. 289 MaxWallTime *durationpb.Duration `protobuf:"bytes,6,opt,name=max_wall_time,json=maxWallTime,proto3" json:"max_wall_time,omitempty"` 290 // FlushWallTime if non-zero will stop streaming behaviour at first and 291 // instead will collate and sort results. At FlushWallTime the results will 292 // be sent and then the behaviour will revert to the normal streaming. 293 FlushWallTime *durationpb.Duration `protobuf:"bytes,7,opt,name=flush_wall_time,json=flushWallTime,proto3" json:"flush_wall_time,omitempty"` 294 // Trim the number of results after collating and sorting the 295 // results 296 MaxDocDisplayCount int64 `protobuf:"varint,8,opt,name=max_doc_display_count,json=maxDocDisplayCount,proto3" json:"max_doc_display_count,omitempty"` 297 // If set to a number greater than zero then up to this many number 298 // of context lines will be added before and after each matched line. 299 // Note that the included context lines might contain matches and 300 // it's up to the consumer of the result to remove those lines. 301 NumContextLines int64 `protobuf:"varint,9,opt,name=num_context_lines,json=numContextLines,proto3" json:"num_context_lines,omitempty"` 302 // If true, ChunkMatches will be returned in each FileMatch rather than LineMatches 303 // EXPERIMENTAL: the behavior of this flag may be changed in future versions. 304 ChunkMatches bool `protobuf:"varint,10,opt,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"` 305 // EXPERIMENTAL. If true, document ranks are used as additional input for 306 // sorting matches. 307 UseDocumentRanks bool `protobuf:"varint,11,opt,name=use_document_ranks,json=useDocumentRanks,proto3" json:"use_document_ranks,omitempty"` 308 // EXPERIMENTAL. When UseDocumentRanks is enabled, this can be optionally set to adjust 309 // their weight in the file match score. If the value is <= 0.0, the default weight value 310 // will be used. This option is temporary and is only exposed for testing/ tuning purposes. 311 DocumentRanksWeight float64 `protobuf:"fixed64,12,opt,name=document_ranks_weight,json=documentRanksWeight,proto3" json:"document_ranks_weight,omitempty"` 312 // Trace turns on opentracing for this request if true and if the Jaeger address was provided as 313 // a command-line flag 314 Trace bool `protobuf:"varint,13,opt,name=trace,proto3" json:"trace,omitempty"` 315 // If set, the search results will contain debug information for scoring. 316 DebugScore bool `protobuf:"varint,14,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 317 // EXPERIMENTAL. If true, use keyword-style scoring instead of the default scoring formula. 318 // Currently, this treats each match in a file as a term and computes an approximation to BM25. 319 // When enabled, all other scoring signals are ignored, including document ranks. 320 UseKeywordScoring bool `protobuf:"varint,15,opt,name=use_keyword_scoring,json=useKeywordScoring,proto3" json:"use_keyword_scoring,omitempty"` 321} 322 323func (x *SearchOptions) Reset() { 324 *x = SearchOptions{} 325 if protoimpl.UnsafeEnabled { 326 mi := &file_webserver_proto_msgTypes[2] 327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 328 ms.StoreMessageInfo(mi) 329 } 330} 331 332func (x *SearchOptions) String() string { 333 return protoimpl.X.MessageStringOf(x) 334} 335 336func (*SearchOptions) ProtoMessage() {} 337 338func (x *SearchOptions) ProtoReflect() protoreflect.Message { 339 mi := &file_webserver_proto_msgTypes[2] 340 if protoimpl.UnsafeEnabled && x != nil { 341 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 342 if ms.LoadMessageInfo() == nil { 343 ms.StoreMessageInfo(mi) 344 } 345 return ms 346 } 347 return mi.MessageOf(x) 348} 349 350// Deprecated: Use SearchOptions.ProtoReflect.Descriptor instead. 351func (*SearchOptions) Descriptor() ([]byte, []int) { 352 return file_webserver_proto_rawDescGZIP(), []int{2} 353} 354 355func (x *SearchOptions) GetEstimateDocCount() bool { 356 if x != nil { 357 return x.EstimateDocCount 358 } 359 return false 360} 361 362func (x *SearchOptions) GetWhole() bool { 363 if x != nil { 364 return x.Whole 365 } 366 return false 367} 368 369func (x *SearchOptions) GetShardMaxMatchCount() int64 { 370 if x != nil { 371 return x.ShardMaxMatchCount 372 } 373 return 0 374} 375 376func (x *SearchOptions) GetTotalMaxMatchCount() int64 { 377 if x != nil { 378 return x.TotalMaxMatchCount 379 } 380 return 0 381} 382 383func (x *SearchOptions) GetShardRepoMaxMatchCount() int64 { 384 if x != nil { 385 return x.ShardRepoMaxMatchCount 386 } 387 return 0 388} 389 390func (x *SearchOptions) GetMaxWallTime() *durationpb.Duration { 391 if x != nil { 392 return x.MaxWallTime 393 } 394 return nil 395} 396 397func (x *SearchOptions) GetFlushWallTime() *durationpb.Duration { 398 if x != nil { 399 return x.FlushWallTime 400 } 401 return nil 402} 403 404func (x *SearchOptions) GetMaxDocDisplayCount() int64 { 405 if x != nil { 406 return x.MaxDocDisplayCount 407 } 408 return 0 409} 410 411func (x *SearchOptions) GetNumContextLines() int64 { 412 if x != nil { 413 return x.NumContextLines 414 } 415 return 0 416} 417 418func (x *SearchOptions) GetChunkMatches() bool { 419 if x != nil { 420 return x.ChunkMatches 421 } 422 return false 423} 424 425func (x *SearchOptions) GetUseDocumentRanks() bool { 426 if x != nil { 427 return x.UseDocumentRanks 428 } 429 return false 430} 431 432func (x *SearchOptions) GetDocumentRanksWeight() float64 { 433 if x != nil { 434 return x.DocumentRanksWeight 435 } 436 return 0 437} 438 439func (x *SearchOptions) GetTrace() bool { 440 if x != nil { 441 return x.Trace 442 } 443 return false 444} 445 446func (x *SearchOptions) GetDebugScore() bool { 447 if x != nil { 448 return x.DebugScore 449 } 450 return false 451} 452 453func (x *SearchOptions) GetUseKeywordScoring() bool { 454 if x != nil { 455 return x.UseKeywordScoring 456 } 457 return false 458} 459 460type ListRequest struct { 461 state protoimpl.MessageState 462 sizeCache protoimpl.SizeCache 463 unknownFields protoimpl.UnknownFields 464 465 Query *Q `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 466 Opts *ListOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"` 467} 468 469func (x *ListRequest) Reset() { 470 *x = ListRequest{} 471 if protoimpl.UnsafeEnabled { 472 mi := &file_webserver_proto_msgTypes[3] 473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 474 ms.StoreMessageInfo(mi) 475 } 476} 477 478func (x *ListRequest) String() string { 479 return protoimpl.X.MessageStringOf(x) 480} 481 482func (*ListRequest) ProtoMessage() {} 483 484func (x *ListRequest) ProtoReflect() protoreflect.Message { 485 mi := &file_webserver_proto_msgTypes[3] 486 if protoimpl.UnsafeEnabled && x != nil { 487 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 488 if ms.LoadMessageInfo() == nil { 489 ms.StoreMessageInfo(mi) 490 } 491 return ms 492 } 493 return mi.MessageOf(x) 494} 495 496// Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. 497func (*ListRequest) Descriptor() ([]byte, []int) { 498 return file_webserver_proto_rawDescGZIP(), []int{3} 499} 500 501func (x *ListRequest) GetQuery() *Q { 502 if x != nil { 503 return x.Query 504 } 505 return nil 506} 507 508func (x *ListRequest) GetOpts() *ListOptions { 509 if x != nil { 510 return x.Opts 511 } 512 return nil 513} 514 515type ListOptions struct { 516 state protoimpl.MessageState 517 sizeCache protoimpl.SizeCache 518 unknownFields protoimpl.UnknownFields 519 520 // Field decides which field to populate in RepoList response. 521 Field ListOptions_RepoListField `protobuf:"varint,1,opt,name=field,proto3,enum=grpc.v1.ListOptions_RepoListField" json:"field,omitempty"` 522 // Return only Minimal data per repo that Sourcegraph frontend needs. 523 // 524 // Deprecated: use Field 525 Minimal bool `protobuf:"varint,16,opt,name=minimal,proto3" json:"minimal,omitempty"` 526} 527 528func (x *ListOptions) Reset() { 529 *x = ListOptions{} 530 if protoimpl.UnsafeEnabled { 531 mi := &file_webserver_proto_msgTypes[4] 532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 533 ms.StoreMessageInfo(mi) 534 } 535} 536 537func (x *ListOptions) String() string { 538 return protoimpl.X.MessageStringOf(x) 539} 540 541func (*ListOptions) ProtoMessage() {} 542 543func (x *ListOptions) ProtoReflect() protoreflect.Message { 544 mi := &file_webserver_proto_msgTypes[4] 545 if protoimpl.UnsafeEnabled && x != nil { 546 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 547 if ms.LoadMessageInfo() == nil { 548 ms.StoreMessageInfo(mi) 549 } 550 return ms 551 } 552 return mi.MessageOf(x) 553} 554 555// Deprecated: Use ListOptions.ProtoReflect.Descriptor instead. 556func (*ListOptions) Descriptor() ([]byte, []int) { 557 return file_webserver_proto_rawDescGZIP(), []int{4} 558} 559 560func (x *ListOptions) GetField() ListOptions_RepoListField { 561 if x != nil { 562 return x.Field 563 } 564 return ListOptions_REPO_LIST_FIELD_UNKNOWN 565} 566 567func (x *ListOptions) GetMinimal() bool { 568 if x != nil { 569 return x.Minimal 570 } 571 return false 572} 573 574type ListResponse struct { 575 state protoimpl.MessageState 576 sizeCache protoimpl.SizeCache 577 unknownFields protoimpl.UnknownFields 578 579 // Returned when ListOptions.Field is RepoListFieldRepos. 580 Repos []*RepoListEntry `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` 581 // ReposMap is set when ListOptions.Field is RepoListFieldReposMap. 582 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"` 583 Crashes int64 `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"` 584 // Stats response to a List request. 585 // This is the aggregate RepoStats of all repos matching the input query. 586 Stats *RepoStats `protobuf:"bytes,4,opt,name=stats,proto3" json:"stats,omitempty"` 587 // Returned when ListOptions.Field is RepoListFieldMinimal. 588 // 589 // Deprecated: use ReposMap. 590 Minimal map[uint32]*MinimalRepoListEntry `protobuf:"bytes,5,rep,name=minimal,proto3" json:"minimal,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 591} 592 593func (x *ListResponse) Reset() { 594 *x = ListResponse{} 595 if protoimpl.UnsafeEnabled { 596 mi := &file_webserver_proto_msgTypes[5] 597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 598 ms.StoreMessageInfo(mi) 599 } 600} 601 602func (x *ListResponse) String() string { 603 return protoimpl.X.MessageStringOf(x) 604} 605 606func (*ListResponse) ProtoMessage() {} 607 608func (x *ListResponse) ProtoReflect() protoreflect.Message { 609 mi := &file_webserver_proto_msgTypes[5] 610 if protoimpl.UnsafeEnabled && x != nil { 611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 612 if ms.LoadMessageInfo() == nil { 613 ms.StoreMessageInfo(mi) 614 } 615 return ms 616 } 617 return mi.MessageOf(x) 618} 619 620// Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. 621func (*ListResponse) Descriptor() ([]byte, []int) { 622 return file_webserver_proto_rawDescGZIP(), []int{5} 623} 624 625func (x *ListResponse) GetRepos() []*RepoListEntry { 626 if x != nil { 627 return x.Repos 628 } 629 return nil 630} 631 632func (x *ListResponse) GetReposMap() map[uint32]*MinimalRepoListEntry { 633 if x != nil { 634 return x.ReposMap 635 } 636 return nil 637} 638 639func (x *ListResponse) GetCrashes() int64 { 640 if x != nil { 641 return x.Crashes 642 } 643 return 0 644} 645 646func (x *ListResponse) GetStats() *RepoStats { 647 if x != nil { 648 return x.Stats 649 } 650 return nil 651} 652 653func (x *ListResponse) GetMinimal() map[uint32]*MinimalRepoListEntry { 654 if x != nil { 655 return x.Minimal 656 } 657 return nil 658} 659 660type RepoListEntry struct { 661 state protoimpl.MessageState 662 sizeCache protoimpl.SizeCache 663 unknownFields protoimpl.UnknownFields 664 665 Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` 666 IndexMetadata *IndexMetadata `protobuf:"bytes,2,opt,name=index_metadata,json=indexMetadata,proto3" json:"index_metadata,omitempty"` 667 Stats *RepoStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"` 668} 669 670func (x *RepoListEntry) Reset() { 671 *x = RepoListEntry{} 672 if protoimpl.UnsafeEnabled { 673 mi := &file_webserver_proto_msgTypes[6] 674 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 675 ms.StoreMessageInfo(mi) 676 } 677} 678 679func (x *RepoListEntry) String() string { 680 return protoimpl.X.MessageStringOf(x) 681} 682 683func (*RepoListEntry) ProtoMessage() {} 684 685func (x *RepoListEntry) ProtoReflect() protoreflect.Message { 686 mi := &file_webserver_proto_msgTypes[6] 687 if protoimpl.UnsafeEnabled && x != nil { 688 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 689 if ms.LoadMessageInfo() == nil { 690 ms.StoreMessageInfo(mi) 691 } 692 return ms 693 } 694 return mi.MessageOf(x) 695} 696 697// Deprecated: Use RepoListEntry.ProtoReflect.Descriptor instead. 698func (*RepoListEntry) Descriptor() ([]byte, []int) { 699 return file_webserver_proto_rawDescGZIP(), []int{6} 700} 701 702func (x *RepoListEntry) GetRepository() *Repository { 703 if x != nil { 704 return x.Repository 705 } 706 return nil 707} 708 709func (x *RepoListEntry) GetIndexMetadata() *IndexMetadata { 710 if x != nil { 711 return x.IndexMetadata 712 } 713 return nil 714} 715 716func (x *RepoListEntry) GetStats() *RepoStats { 717 if x != nil { 718 return x.Stats 719 } 720 return nil 721} 722 723type Repository struct { 724 state protoimpl.MessageState 725 sizeCache protoimpl.SizeCache 726 unknownFields protoimpl.UnknownFields 727 728 // Sourcegraph's repository ID 729 Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 730 // The repository name 731 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 732 // The repository URL. 733 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` 734 // The physical source where this repo came from, eg. full 735 // path to the zip filename or git repository directory. This 736 // will not be exposed in the UI, but can be used to detect 737 // orphaned index shards. 738 Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"` 739 // The branches indexed in this repo. 740 Branches []*RepositoryBranch `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"` 741 // Nil if this is not the super project. 742 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"` 743 // URL template to link to the commit of a branch 744 CommitUrlTemplate string `protobuf:"bytes,7,opt,name=commit_url_template,json=commitUrlTemplate,proto3" json:"commit_url_template,omitempty"` 745 // The repository URL for getting to a file. Has access to 746 // {{.Version}}, {{.Path}} 747 FileUrlTemplate string `protobuf:"bytes,8,opt,name=file_url_template,json=fileUrlTemplate,proto3" json:"file_url_template,omitempty"` 748 // The URL fragment to add to a file URL for line numbers. has 749 // access to {{.LineNumber}}. The fragment should include the 750 // separator, generally '#' or ';'. 751 LineFragmentTemplate string `protobuf:"bytes,9,opt,name=line_fragment_template,json=lineFragmentTemplate,proto3" json:"line_fragment_template,omitempty"` 752 // Perf optimization: priority is set when we load the shard. It corresponds to 753 // the value of "priority" stored in RawConfig. 754 Priority float64 `protobuf:"fixed64,10,opt,name=priority,proto3" json:"priority,omitempty"` 755 // All zoekt.* configuration settings. 756 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"` 757 // Importance of the repository, bigger is more important 758 Rank uint32 `protobuf:"varint,12,opt,name=rank,proto3" json:"rank,omitempty"` 759 // index_options is a hash of the options used to create the index for the 760 // repo. 761 IndexOptions string `protobuf:"bytes,13,opt,name=index_options,json=indexOptions,proto3" json:"index_options,omitempty"` 762 // has_symbols is true if this repository has indexed ctags 763 // output. Sourcegraph specific: This field is more appropriate for 764 // IndexMetadata. However, we store it here since the Sourcegraph frontend 765 // can read this structure but not IndexMetadata. 766 HasSymbols bool `protobuf:"varint,14,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"` 767 // tombstone is true if we are not allowed to search this repo. 768 Tombstone bool `protobuf:"varint,15,opt,name=tombstone,proto3" json:"tombstone,omitempty"` 769 // latest_commit_date is the date of the latest commit among all indexed Branches. 770 // The date might be time.Time's 0-value if the repository was last indexed 771 // before this field was added. 772 LatestCommitDate *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=latest_commit_date,json=latestCommitDate,proto3" json:"latest_commit_date,omitempty"` 773 // file_tombstones is a set of file paths that should be ignored across all branches 774 // in this shard. 775 FileTombstones []string `protobuf:"bytes,17,rep,name=FileTombstones,proto3" json:"FileTombstones,omitempty"` 776} 777 778func (x *Repository) Reset() { 779 *x = Repository{} 780 if protoimpl.UnsafeEnabled { 781 mi := &file_webserver_proto_msgTypes[7] 782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 783 ms.StoreMessageInfo(mi) 784 } 785} 786 787func (x *Repository) String() string { 788 return protoimpl.X.MessageStringOf(x) 789} 790 791func (*Repository) ProtoMessage() {} 792 793func (x *Repository) ProtoReflect() protoreflect.Message { 794 mi := &file_webserver_proto_msgTypes[7] 795 if protoimpl.UnsafeEnabled && x != nil { 796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 797 if ms.LoadMessageInfo() == nil { 798 ms.StoreMessageInfo(mi) 799 } 800 return ms 801 } 802 return mi.MessageOf(x) 803} 804 805// Deprecated: Use Repository.ProtoReflect.Descriptor instead. 806func (*Repository) Descriptor() ([]byte, []int) { 807 return file_webserver_proto_rawDescGZIP(), []int{7} 808} 809 810func (x *Repository) GetId() uint32 { 811 if x != nil { 812 return x.Id 813 } 814 return 0 815} 816 817func (x *Repository) GetName() string { 818 if x != nil { 819 return x.Name 820 } 821 return "" 822} 823 824func (x *Repository) GetUrl() string { 825 if x != nil { 826 return x.Url 827 } 828 return "" 829} 830 831func (x *Repository) GetSource() string { 832 if x != nil { 833 return x.Source 834 } 835 return "" 836} 837 838func (x *Repository) GetBranches() []*RepositoryBranch { 839 if x != nil { 840 return x.Branches 841 } 842 return nil 843} 844 845func (x *Repository) GetSubRepoMap() map[string]*Repository { 846 if x != nil { 847 return x.SubRepoMap 848 } 849 return nil 850} 851 852func (x *Repository) GetCommitUrlTemplate() string { 853 if x != nil { 854 return x.CommitUrlTemplate 855 } 856 return "" 857} 858 859func (x *Repository) GetFileUrlTemplate() string { 860 if x != nil { 861 return x.FileUrlTemplate 862 } 863 return "" 864} 865 866func (x *Repository) GetLineFragmentTemplate() string { 867 if x != nil { 868 return x.LineFragmentTemplate 869 } 870 return "" 871} 872 873func (x *Repository) GetPriority() float64 { 874 if x != nil { 875 return x.Priority 876 } 877 return 0 878} 879 880func (x *Repository) GetRawConfig() map[string]string { 881 if x != nil { 882 return x.RawConfig 883 } 884 return nil 885} 886 887func (x *Repository) GetRank() uint32 { 888 if x != nil { 889 return x.Rank 890 } 891 return 0 892} 893 894func (x *Repository) GetIndexOptions() string { 895 if x != nil { 896 return x.IndexOptions 897 } 898 return "" 899} 900 901func (x *Repository) GetHasSymbols() bool { 902 if x != nil { 903 return x.HasSymbols 904 } 905 return false 906} 907 908func (x *Repository) GetTombstone() bool { 909 if x != nil { 910 return x.Tombstone 911 } 912 return false 913} 914 915func (x *Repository) GetLatestCommitDate() *timestamppb.Timestamp { 916 if x != nil { 917 return x.LatestCommitDate 918 } 919 return nil 920} 921 922func (x *Repository) GetFileTombstones() []string { 923 if x != nil { 924 return x.FileTombstones 925 } 926 return nil 927} 928 929type IndexMetadata struct { 930 state protoimpl.MessageState 931 sizeCache protoimpl.SizeCache 932 unknownFields protoimpl.UnknownFields 933 934 IndexFormatVersion int64 `protobuf:"varint,1,opt,name=index_format_version,json=indexFormatVersion,proto3" json:"index_format_version,omitempty"` 935 IndexFeatureVersion int64 `protobuf:"varint,2,opt,name=index_feature_version,json=indexFeatureVersion,proto3" json:"index_feature_version,omitempty"` 936 IndexMinReaderVersion int64 `protobuf:"varint,3,opt,name=index_min_reader_version,json=indexMinReaderVersion,proto3" json:"index_min_reader_version,omitempty"` 937 IndexTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"` 938 PlainAscii bool `protobuf:"varint,5,opt,name=plain_ascii,json=plainAscii,proto3" json:"plain_ascii,omitempty"` 939 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"` 940 ZoektVersion string `protobuf:"bytes,7,opt,name=zoekt_version,json=zoektVersion,proto3" json:"zoekt_version,omitempty"` 941 Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"` 942} 943 944func (x *IndexMetadata) Reset() { 945 *x = IndexMetadata{} 946 if protoimpl.UnsafeEnabled { 947 mi := &file_webserver_proto_msgTypes[8] 948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 949 ms.StoreMessageInfo(mi) 950 } 951} 952 953func (x *IndexMetadata) String() string { 954 return protoimpl.X.MessageStringOf(x) 955} 956 957func (*IndexMetadata) ProtoMessage() {} 958 959func (x *IndexMetadata) ProtoReflect() protoreflect.Message { 960 mi := &file_webserver_proto_msgTypes[8] 961 if protoimpl.UnsafeEnabled && x != nil { 962 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 963 if ms.LoadMessageInfo() == nil { 964 ms.StoreMessageInfo(mi) 965 } 966 return ms 967 } 968 return mi.MessageOf(x) 969} 970 971// Deprecated: Use IndexMetadata.ProtoReflect.Descriptor instead. 972func (*IndexMetadata) Descriptor() ([]byte, []int) { 973 return file_webserver_proto_rawDescGZIP(), []int{8} 974} 975 976func (x *IndexMetadata) GetIndexFormatVersion() int64 { 977 if x != nil { 978 return x.IndexFormatVersion 979 } 980 return 0 981} 982 983func (x *IndexMetadata) GetIndexFeatureVersion() int64 { 984 if x != nil { 985 return x.IndexFeatureVersion 986 } 987 return 0 988} 989 990func (x *IndexMetadata) GetIndexMinReaderVersion() int64 { 991 if x != nil { 992 return x.IndexMinReaderVersion 993 } 994 return 0 995} 996 997func (x *IndexMetadata) GetIndexTime() *timestamppb.Timestamp { 998 if x != nil { 999 return x.IndexTime 1000 } 1001 return nil 1002} 1003 1004func (x *IndexMetadata) GetPlainAscii() bool { 1005 if x != nil { 1006 return x.PlainAscii 1007 } 1008 return false 1009} 1010 1011func (x *IndexMetadata) GetLanguageMap() map[string]uint32 { 1012 if x != nil { 1013 return x.LanguageMap 1014 } 1015 return nil 1016} 1017 1018func (x *IndexMetadata) GetZoektVersion() string { 1019 if x != nil { 1020 return x.ZoektVersion 1021 } 1022 return "" 1023} 1024 1025func (x *IndexMetadata) GetId() string { 1026 if x != nil { 1027 return x.Id 1028 } 1029 return "" 1030} 1031 1032type MinimalRepoListEntry struct { 1033 state protoimpl.MessageState 1034 sizeCache protoimpl.SizeCache 1035 unknownFields protoimpl.UnknownFields 1036 1037 HasSymbols bool `protobuf:"varint,1,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"` 1038 Branches []*RepositoryBranch `protobuf:"bytes,2,rep,name=branches,proto3" json:"branches,omitempty"` 1039 IndexTimeUnix int64 `protobuf:"varint,3,opt,name=index_time_unix,json=indexTimeUnix,proto3" json:"index_time_unix,omitempty"` 1040} 1041 1042func (x *MinimalRepoListEntry) Reset() { 1043 *x = MinimalRepoListEntry{} 1044 if protoimpl.UnsafeEnabled { 1045 mi := &file_webserver_proto_msgTypes[9] 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 ms.StoreMessageInfo(mi) 1048 } 1049} 1050 1051func (x *MinimalRepoListEntry) String() string { 1052 return protoimpl.X.MessageStringOf(x) 1053} 1054 1055func (*MinimalRepoListEntry) ProtoMessage() {} 1056 1057func (x *MinimalRepoListEntry) ProtoReflect() protoreflect.Message { 1058 mi := &file_webserver_proto_msgTypes[9] 1059 if protoimpl.UnsafeEnabled && x != nil { 1060 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1061 if ms.LoadMessageInfo() == nil { 1062 ms.StoreMessageInfo(mi) 1063 } 1064 return ms 1065 } 1066 return mi.MessageOf(x) 1067} 1068 1069// Deprecated: Use MinimalRepoListEntry.ProtoReflect.Descriptor instead. 1070func (*MinimalRepoListEntry) Descriptor() ([]byte, []int) { 1071 return file_webserver_proto_rawDescGZIP(), []int{9} 1072} 1073 1074func (x *MinimalRepoListEntry) GetHasSymbols() bool { 1075 if x != nil { 1076 return x.HasSymbols 1077 } 1078 return false 1079} 1080 1081func (x *MinimalRepoListEntry) GetBranches() []*RepositoryBranch { 1082 if x != nil { 1083 return x.Branches 1084 } 1085 return nil 1086} 1087 1088func (x *MinimalRepoListEntry) GetIndexTimeUnix() int64 { 1089 if x != nil { 1090 return x.IndexTimeUnix 1091 } 1092 return 0 1093} 1094 1095// RepositoryBranch describes an indexed branch, which is a name 1096// combined with a version. 1097type RepositoryBranch struct { 1098 state protoimpl.MessageState 1099 sizeCache protoimpl.SizeCache 1100 unknownFields protoimpl.UnknownFields 1101 1102 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1103 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 1104} 1105 1106func (x *RepositoryBranch) Reset() { 1107 *x = RepositoryBranch{} 1108 if protoimpl.UnsafeEnabled { 1109 mi := &file_webserver_proto_msgTypes[10] 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 ms.StoreMessageInfo(mi) 1112 } 1113} 1114 1115func (x *RepositoryBranch) String() string { 1116 return protoimpl.X.MessageStringOf(x) 1117} 1118 1119func (*RepositoryBranch) ProtoMessage() {} 1120 1121func (x *RepositoryBranch) ProtoReflect() protoreflect.Message { 1122 mi := &file_webserver_proto_msgTypes[10] 1123 if protoimpl.UnsafeEnabled && x != nil { 1124 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1125 if ms.LoadMessageInfo() == nil { 1126 ms.StoreMessageInfo(mi) 1127 } 1128 return ms 1129 } 1130 return mi.MessageOf(x) 1131} 1132 1133// Deprecated: Use RepositoryBranch.ProtoReflect.Descriptor instead. 1134func (*RepositoryBranch) Descriptor() ([]byte, []int) { 1135 return file_webserver_proto_rawDescGZIP(), []int{10} 1136} 1137 1138func (x *RepositoryBranch) GetName() string { 1139 if x != nil { 1140 return x.Name 1141 } 1142 return "" 1143} 1144 1145func (x *RepositoryBranch) GetVersion() string { 1146 if x != nil { 1147 return x.Version 1148 } 1149 return "" 1150} 1151 1152// RepoStats is a collection of statistics for a set of repositories. 1153type RepoStats struct { 1154 state protoimpl.MessageState 1155 sizeCache protoimpl.SizeCache 1156 unknownFields protoimpl.UnknownFields 1157 1158 // repos is used for aggregrating the number of repositories. 1159 Repos int64 `protobuf:"varint,1,opt,name=repos,proto3" json:"repos,omitempty"` 1160 // shards is the total number of search shards. 1161 Shards int64 `protobuf:"varint,2,opt,name=shards,proto3" json:"shards,omitempty"` 1162 // documents holds the number of documents or files. 1163 Documents int64 `protobuf:"varint,3,opt,name=documents,proto3" json:"documents,omitempty"` 1164 // index_bytes is the amount of RAM used for index overhead. 1165 IndexBytes int64 `protobuf:"varint,4,opt,name=index_bytes,json=indexBytes,proto3" json:"index_bytes,omitempty"` 1166 // content_bytes is the amount of RAM used for raw content. 1167 ContentBytes int64 `protobuf:"varint,5,opt,name=content_bytes,json=contentBytes,proto3" json:"content_bytes,omitempty"` 1168 // new_lines_count is the number of newlines "\n" that appear in the zoekt 1169 // indexed documents. This is not exactly the same as line count, since it 1170 // will not include lines not terminated by "\n" (eg a file with no "\n", or 1171 // a final line without "\n"). Note: Zoekt deduplicates documents across 1172 // branches, so if a path has the same contents on multiple branches, there 1173 // is only one document for it. As such that document's newlines is only 1174 // counted once. See DefaultBranchNewLinesCount and AllBranchesNewLinesCount 1175 // for counts which do not deduplicate. 1176 NewLinesCount uint64 `protobuf:"varint,6,opt,name=new_lines_count,json=newLinesCount,proto3" json:"new_lines_count,omitempty"` 1177 // default_branch_new_lines_count is the number of newlines "\n" in the default 1178 // branch. 1179 DefaultBranchNewLinesCount uint64 `protobuf:"varint,7,opt,name=default_branch_new_lines_count,json=defaultBranchNewLinesCount,proto3" json:"default_branch_new_lines_count,omitempty"` 1180 // other_branches_new_lines_count is the number of newlines "\n" in all branches 1181 // except the default branch. 1182 OtherBranchesNewLinesCount uint64 `protobuf:"varint,8,opt,name=other_branches_new_lines_count,json=otherBranchesNewLinesCount,proto3" json:"other_branches_new_lines_count,omitempty"` 1183} 1184 1185func (x *RepoStats) Reset() { 1186 *x = RepoStats{} 1187 if protoimpl.UnsafeEnabled { 1188 mi := &file_webserver_proto_msgTypes[11] 1189 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1190 ms.StoreMessageInfo(mi) 1191 } 1192} 1193 1194func (x *RepoStats) String() string { 1195 return protoimpl.X.MessageStringOf(x) 1196} 1197 1198func (*RepoStats) ProtoMessage() {} 1199 1200func (x *RepoStats) ProtoReflect() protoreflect.Message { 1201 mi := &file_webserver_proto_msgTypes[11] 1202 if protoimpl.UnsafeEnabled && x != nil { 1203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1204 if ms.LoadMessageInfo() == nil { 1205 ms.StoreMessageInfo(mi) 1206 } 1207 return ms 1208 } 1209 return mi.MessageOf(x) 1210} 1211 1212// Deprecated: Use RepoStats.ProtoReflect.Descriptor instead. 1213func (*RepoStats) Descriptor() ([]byte, []int) { 1214 return file_webserver_proto_rawDescGZIP(), []int{11} 1215} 1216 1217func (x *RepoStats) GetRepos() int64 { 1218 if x != nil { 1219 return x.Repos 1220 } 1221 return 0 1222} 1223 1224func (x *RepoStats) GetShards() int64 { 1225 if x != nil { 1226 return x.Shards 1227 } 1228 return 0 1229} 1230 1231func (x *RepoStats) GetDocuments() int64 { 1232 if x != nil { 1233 return x.Documents 1234 } 1235 return 0 1236} 1237 1238func (x *RepoStats) GetIndexBytes() int64 { 1239 if x != nil { 1240 return x.IndexBytes 1241 } 1242 return 0 1243} 1244 1245func (x *RepoStats) GetContentBytes() int64 { 1246 if x != nil { 1247 return x.ContentBytes 1248 } 1249 return 0 1250} 1251 1252func (x *RepoStats) GetNewLinesCount() uint64 { 1253 if x != nil { 1254 return x.NewLinesCount 1255 } 1256 return 0 1257} 1258 1259func (x *RepoStats) GetDefaultBranchNewLinesCount() uint64 { 1260 if x != nil { 1261 return x.DefaultBranchNewLinesCount 1262 } 1263 return 0 1264} 1265 1266func (x *RepoStats) GetOtherBranchesNewLinesCount() uint64 { 1267 if x != nil { 1268 return x.OtherBranchesNewLinesCount 1269 } 1270 return 0 1271} 1272 1273type Stats struct { 1274 state protoimpl.MessageState 1275 sizeCache protoimpl.SizeCache 1276 unknownFields protoimpl.UnknownFields 1277 1278 // Amount of I/O for reading contents. 1279 ContentBytesLoaded int64 `protobuf:"varint,1,opt,name=content_bytes_loaded,json=contentBytesLoaded,proto3" json:"content_bytes_loaded,omitempty"` 1280 // Amount of I/O for reading from index. 1281 IndexBytesLoaded int64 `protobuf:"varint,2,opt,name=index_bytes_loaded,json=indexBytesLoaded,proto3" json:"index_bytes_loaded,omitempty"` 1282 // Number of search shards that had a crash. 1283 Crashes int64 `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"` 1284 // Wall clock time for this search 1285 Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` 1286 // Number of files containing a match. 1287 FileCount int64 `protobuf:"varint,5,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"` 1288 // Number of files in shards that we considered. 1289 ShardFilesConsidered int64 `protobuf:"varint,6,opt,name=shard_files_considered,json=shardFilesConsidered,proto3" json:"shard_files_considered,omitempty"` 1290 // Files that we evaluated. Equivalent to files for which all 1291 // atom matches (including negations) evaluated to true. 1292 FilesConsidered int64 `protobuf:"varint,7,opt,name=files_considered,json=filesConsidered,proto3" json:"files_considered,omitempty"` 1293 // Files for which we loaded file content to verify substring matches 1294 FilesLoaded int64 `protobuf:"varint,8,opt,name=files_loaded,json=filesLoaded,proto3" json:"files_loaded,omitempty"` 1295 // Candidate files whose contents weren't examined because we 1296 // gathered enough matches. 1297 FilesSkipped int64 `protobuf:"varint,9,opt,name=files_skipped,json=filesSkipped,proto3" json:"files_skipped,omitempty"` 1298 // Shards that we scanned to find matches. 1299 ShardsScanned int64 `protobuf:"varint,10,opt,name=shards_scanned,json=shardsScanned,proto3" json:"shards_scanned,omitempty"` 1300 // Shards that we did not process because a query was canceled. 1301 ShardsSkipped int64 `protobuf:"varint,11,opt,name=shards_skipped,json=shardsSkipped,proto3" json:"shards_skipped,omitempty"` 1302 // Shards that we did not process because the query was rejected by the 1303 // ngram filter indicating it had no matches. 1304 ShardsSkippedFilter int64 `protobuf:"varint,12,opt,name=shards_skipped_filter,json=shardsSkippedFilter,proto3" json:"shards_skipped_filter,omitempty"` 1305 // Number of non-overlapping matches 1306 MatchCount int64 `protobuf:"varint,13,opt,name=match_count,json=matchCount,proto3" json:"match_count,omitempty"` 1307 // Number of candidate matches as a result of searching ngrams. 1308 NgramMatches int64 `protobuf:"varint,14,opt,name=ngram_matches,json=ngramMatches,proto3" json:"ngram_matches,omitempty"` 1309 // Wall clock time for queued search. 1310 Wait *durationpb.Duration `protobuf:"bytes,15,opt,name=wait,proto3" json:"wait,omitempty"` 1311 // Number of times regexp was called on files that we evaluated. 1312 RegexpsConsidered int64 `protobuf:"varint,16,opt,name=regexps_considered,json=regexpsConsidered,proto3" json:"regexps_considered,omitempty"` 1313 // FlushReason explains why results were flushed. 1314 FlushReason FlushReason `protobuf:"varint,17,opt,name=flush_reason,json=flushReason,proto3,enum=grpc.v1.FlushReason" json:"flush_reason,omitempty"` 1315 // NgramLookups is the number of times we accessed an ngram in the index. 1316 NgramLookups int64 `protobuf:"varint,18,opt,name=ngram_lookups,json=ngramLookups,proto3" json:"ngram_lookups,omitempty"` 1317} 1318 1319func (x *Stats) Reset() { 1320 *x = Stats{} 1321 if protoimpl.UnsafeEnabled { 1322 mi := &file_webserver_proto_msgTypes[12] 1323 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1324 ms.StoreMessageInfo(mi) 1325 } 1326} 1327 1328func (x *Stats) String() string { 1329 return protoimpl.X.MessageStringOf(x) 1330} 1331 1332func (*Stats) ProtoMessage() {} 1333 1334func (x *Stats) ProtoReflect() protoreflect.Message { 1335 mi := &file_webserver_proto_msgTypes[12] 1336 if protoimpl.UnsafeEnabled && x != nil { 1337 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1338 if ms.LoadMessageInfo() == nil { 1339 ms.StoreMessageInfo(mi) 1340 } 1341 return ms 1342 } 1343 return mi.MessageOf(x) 1344} 1345 1346// Deprecated: Use Stats.ProtoReflect.Descriptor instead. 1347func (*Stats) Descriptor() ([]byte, []int) { 1348 return file_webserver_proto_rawDescGZIP(), []int{12} 1349} 1350 1351func (x *Stats) GetContentBytesLoaded() int64 { 1352 if x != nil { 1353 return x.ContentBytesLoaded 1354 } 1355 return 0 1356} 1357 1358func (x *Stats) GetIndexBytesLoaded() int64 { 1359 if x != nil { 1360 return x.IndexBytesLoaded 1361 } 1362 return 0 1363} 1364 1365func (x *Stats) GetCrashes() int64 { 1366 if x != nil { 1367 return x.Crashes 1368 } 1369 return 0 1370} 1371 1372func (x *Stats) GetDuration() *durationpb.Duration { 1373 if x != nil { 1374 return x.Duration 1375 } 1376 return nil 1377} 1378 1379func (x *Stats) GetFileCount() int64 { 1380 if x != nil { 1381 return x.FileCount 1382 } 1383 return 0 1384} 1385 1386func (x *Stats) GetShardFilesConsidered() int64 { 1387 if x != nil { 1388 return x.ShardFilesConsidered 1389 } 1390 return 0 1391} 1392 1393func (x *Stats) GetFilesConsidered() int64 { 1394 if x != nil { 1395 return x.FilesConsidered 1396 } 1397 return 0 1398} 1399 1400func (x *Stats) GetFilesLoaded() int64 { 1401 if x != nil { 1402 return x.FilesLoaded 1403 } 1404 return 0 1405} 1406 1407func (x *Stats) GetFilesSkipped() int64 { 1408 if x != nil { 1409 return x.FilesSkipped 1410 } 1411 return 0 1412} 1413 1414func (x *Stats) GetShardsScanned() int64 { 1415 if x != nil { 1416 return x.ShardsScanned 1417 } 1418 return 0 1419} 1420 1421func (x *Stats) GetShardsSkipped() int64 { 1422 if x != nil { 1423 return x.ShardsSkipped 1424 } 1425 return 0 1426} 1427 1428func (x *Stats) GetShardsSkippedFilter() int64 { 1429 if x != nil { 1430 return x.ShardsSkippedFilter 1431 } 1432 return 0 1433} 1434 1435func (x *Stats) GetMatchCount() int64 { 1436 if x != nil { 1437 return x.MatchCount 1438 } 1439 return 0 1440} 1441 1442func (x *Stats) GetNgramMatches() int64 { 1443 if x != nil { 1444 return x.NgramMatches 1445 } 1446 return 0 1447} 1448 1449func (x *Stats) GetWait() *durationpb.Duration { 1450 if x != nil { 1451 return x.Wait 1452 } 1453 return nil 1454} 1455 1456func (x *Stats) GetRegexpsConsidered() int64 { 1457 if x != nil { 1458 return x.RegexpsConsidered 1459 } 1460 return 0 1461} 1462 1463func (x *Stats) GetFlushReason() FlushReason { 1464 if x != nil { 1465 return x.FlushReason 1466 } 1467 return FlushReason_UNKNOWN 1468} 1469 1470func (x *Stats) GetNgramLookups() int64 { 1471 if x != nil { 1472 return x.NgramLookups 1473 } 1474 return 0 1475} 1476 1477// Progress contains information about the global progress of the running search query. 1478// This is used by the frontend to reorder results and emit them when stable. 1479// Sourcegraph specific: this is used when querying multiple zoekt-webserver instances. 1480type Progress struct { 1481 state protoimpl.MessageState 1482 sizeCache protoimpl.SizeCache 1483 unknownFields protoimpl.UnknownFields 1484 1485 // Priority of the shard that was searched. 1486 Priority float64 `protobuf:"fixed64,1,opt,name=priority,proto3" json:"priority,omitempty"` 1487 // max_pending_priority is the maximum priority of pending result that is being searched in parallel. 1488 // This is used to reorder results when the result set is known to be stable-- that is, when a result's 1489 // Priority is greater than the max(MaxPendingPriority) from the latest results of each backend, it can be returned to the user. 1490 // 1491 // max_pending_priority decreases monotonically in each SearchResult. 1492 MaxPendingPriority float64 `protobuf:"fixed64,2,opt,name=max_pending_priority,json=maxPendingPriority,proto3" json:"max_pending_priority,omitempty"` 1493} 1494 1495func (x *Progress) Reset() { 1496 *x = Progress{} 1497 if protoimpl.UnsafeEnabled { 1498 mi := &file_webserver_proto_msgTypes[13] 1499 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1500 ms.StoreMessageInfo(mi) 1501 } 1502} 1503 1504func (x *Progress) String() string { 1505 return protoimpl.X.MessageStringOf(x) 1506} 1507 1508func (*Progress) ProtoMessage() {} 1509 1510func (x *Progress) ProtoReflect() protoreflect.Message { 1511 mi := &file_webserver_proto_msgTypes[13] 1512 if protoimpl.UnsafeEnabled && x != nil { 1513 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1514 if ms.LoadMessageInfo() == nil { 1515 ms.StoreMessageInfo(mi) 1516 } 1517 return ms 1518 } 1519 return mi.MessageOf(x) 1520} 1521 1522// Deprecated: Use Progress.ProtoReflect.Descriptor instead. 1523func (*Progress) Descriptor() ([]byte, []int) { 1524 return file_webserver_proto_rawDescGZIP(), []int{13} 1525} 1526 1527func (x *Progress) GetPriority() float64 { 1528 if x != nil { 1529 return x.Priority 1530 } 1531 return 0 1532} 1533 1534func (x *Progress) GetMaxPendingPriority() float64 { 1535 if x != nil { 1536 return x.MaxPendingPriority 1537 } 1538 return 0 1539} 1540 1541// FileMatch contains all the matches within a file. 1542type FileMatch struct { 1543 state protoimpl.MessageState 1544 sizeCache protoimpl.SizeCache 1545 unknownFields protoimpl.UnknownFields 1546 1547 // Ranking; the higher, the better. 1548 Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"` 1549 // For debugging. Needs DebugScore set, but public so tests in 1550 // other packages can print some diagnostics. 1551 Debug string `protobuf:"bytes,2,opt,name=debug,proto3" json:"debug,omitempty"` 1552 FileName string `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 1553 // Repository is the globally unique name of the repo of the 1554 // match 1555 Repository string `protobuf:"bytes,4,opt,name=repository,proto3" json:"repository,omitempty"` 1556 Branches []string `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"` 1557 // One of line_matches or chunk_matches will be returned depending on whether 1558 // the SearchOptions.ChunkMatches is set. 1559 LineMatches []*LineMatch `protobuf:"bytes,6,rep,name=line_matches,json=lineMatches,proto3" json:"line_matches,omitempty"` 1560 ChunkMatches []*ChunkMatch `protobuf:"bytes,7,rep,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"` 1561 // repository_id is a Sourcegraph extension. This is the ID of Repository in 1562 // Sourcegraph. 1563 RepositoryId uint32 `protobuf:"varint,8,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"` 1564 RepositoryPriority float64 `protobuf:"fixed64,9,opt,name=repository_priority,json=repositoryPriority,proto3" json:"repository_priority,omitempty"` 1565 // Only set if requested 1566 Content []byte `protobuf:"bytes,10,opt,name=content,proto3" json:"content,omitempty"` 1567 // Checksum of the content. 1568 Checksum []byte `protobuf:"bytes,11,opt,name=checksum,proto3" json:"checksum,omitempty"` 1569 // Detected language of the result. 1570 Language string `protobuf:"bytes,12,opt,name=language,proto3" json:"language,omitempty"` 1571 // sub_repository_name is the globally unique name of the repo, 1572 // if it came from a subrepository 1573 SubRepositoryName string `protobuf:"bytes,13,opt,name=sub_repository_name,json=subRepositoryName,proto3" json:"sub_repository_name,omitempty"` 1574 // sub_repository_path holds the prefix where the subrepository 1575 // was mounted. 1576 SubRepositoryPath string `protobuf:"bytes,14,opt,name=sub_repository_path,json=subRepositoryPath,proto3" json:"sub_repository_path,omitempty"` 1577 // Commit SHA1 (hex) of the (sub)repo holding the file. 1578 Version string `protobuf:"bytes,15,opt,name=version,proto3" json:"version,omitempty"` 1579} 1580 1581func (x *FileMatch) Reset() { 1582 *x = FileMatch{} 1583 if protoimpl.UnsafeEnabled { 1584 mi := &file_webserver_proto_msgTypes[14] 1585 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1586 ms.StoreMessageInfo(mi) 1587 } 1588} 1589 1590func (x *FileMatch) String() string { 1591 return protoimpl.X.MessageStringOf(x) 1592} 1593 1594func (*FileMatch) ProtoMessage() {} 1595 1596func (x *FileMatch) ProtoReflect() protoreflect.Message { 1597 mi := &file_webserver_proto_msgTypes[14] 1598 if protoimpl.UnsafeEnabled && x != nil { 1599 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1600 if ms.LoadMessageInfo() == nil { 1601 ms.StoreMessageInfo(mi) 1602 } 1603 return ms 1604 } 1605 return mi.MessageOf(x) 1606} 1607 1608// Deprecated: Use FileMatch.ProtoReflect.Descriptor instead. 1609func (*FileMatch) Descriptor() ([]byte, []int) { 1610 return file_webserver_proto_rawDescGZIP(), []int{14} 1611} 1612 1613func (x *FileMatch) GetScore() float64 { 1614 if x != nil { 1615 return x.Score 1616 } 1617 return 0 1618} 1619 1620func (x *FileMatch) GetDebug() string { 1621 if x != nil { 1622 return x.Debug 1623 } 1624 return "" 1625} 1626 1627func (x *FileMatch) GetFileName() string { 1628 if x != nil { 1629 return x.FileName 1630 } 1631 return "" 1632} 1633 1634func (x *FileMatch) GetRepository() string { 1635 if x != nil { 1636 return x.Repository 1637 } 1638 return "" 1639} 1640 1641func (x *FileMatch) GetBranches() []string { 1642 if x != nil { 1643 return x.Branches 1644 } 1645 return nil 1646} 1647 1648func (x *FileMatch) GetLineMatches() []*LineMatch { 1649 if x != nil { 1650 return x.LineMatches 1651 } 1652 return nil 1653} 1654 1655func (x *FileMatch) GetChunkMatches() []*ChunkMatch { 1656 if x != nil { 1657 return x.ChunkMatches 1658 } 1659 return nil 1660} 1661 1662func (x *FileMatch) GetRepositoryId() uint32 { 1663 if x != nil { 1664 return x.RepositoryId 1665 } 1666 return 0 1667} 1668 1669func (x *FileMatch) GetRepositoryPriority() float64 { 1670 if x != nil { 1671 return x.RepositoryPriority 1672 } 1673 return 0 1674} 1675 1676func (x *FileMatch) GetContent() []byte { 1677 if x != nil { 1678 return x.Content 1679 } 1680 return nil 1681} 1682 1683func (x *FileMatch) GetChecksum() []byte { 1684 if x != nil { 1685 return x.Checksum 1686 } 1687 return nil 1688} 1689 1690func (x *FileMatch) GetLanguage() string { 1691 if x != nil { 1692 return x.Language 1693 } 1694 return "" 1695} 1696 1697func (x *FileMatch) GetSubRepositoryName() string { 1698 if x != nil { 1699 return x.SubRepositoryName 1700 } 1701 return "" 1702} 1703 1704func (x *FileMatch) GetSubRepositoryPath() string { 1705 if x != nil { 1706 return x.SubRepositoryPath 1707 } 1708 return "" 1709} 1710 1711func (x *FileMatch) GetVersion() string { 1712 if x != nil { 1713 return x.Version 1714 } 1715 return "" 1716} 1717 1718type LineMatch struct { 1719 state protoimpl.MessageState 1720 sizeCache protoimpl.SizeCache 1721 unknownFields protoimpl.UnknownFields 1722 1723 Line []byte `protobuf:"bytes,1,opt,name=line,proto3" json:"line,omitempty"` 1724 LineStart int64 `protobuf:"varint,2,opt,name=line_start,json=lineStart,proto3" json:"line_start,omitempty"` 1725 LineEnd int64 `protobuf:"varint,3,opt,name=line_end,json=lineEnd,proto3" json:"line_end,omitempty"` 1726 LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` 1727 // before and after are only set when SearchOptions.NumContextLines is > 0 1728 Before []byte `protobuf:"bytes,5,opt,name=before,proto3" json:"before,omitempty"` 1729 After []byte `protobuf:"bytes,6,opt,name=after,proto3" json:"after,omitempty"` 1730 // If set, this was a match on the filename. 1731 FileName bool `protobuf:"varint,7,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 1732 // The higher the better. Only ranks the quality of the match 1733 // within the file, does not take rank of file into account 1734 Score float64 `protobuf:"fixed64,8,opt,name=score,proto3" json:"score,omitempty"` 1735 DebugScore string `protobuf:"bytes,9,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 1736 LineFragments []*LineFragmentMatch `protobuf:"bytes,10,rep,name=line_fragments,json=lineFragments,proto3" json:"line_fragments,omitempty"` 1737} 1738 1739func (x *LineMatch) Reset() { 1740 *x = LineMatch{} 1741 if protoimpl.UnsafeEnabled { 1742 mi := &file_webserver_proto_msgTypes[15] 1743 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1744 ms.StoreMessageInfo(mi) 1745 } 1746} 1747 1748func (x *LineMatch) String() string { 1749 return protoimpl.X.MessageStringOf(x) 1750} 1751 1752func (*LineMatch) ProtoMessage() {} 1753 1754func (x *LineMatch) ProtoReflect() protoreflect.Message { 1755 mi := &file_webserver_proto_msgTypes[15] 1756 if protoimpl.UnsafeEnabled && x != nil { 1757 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1758 if ms.LoadMessageInfo() == nil { 1759 ms.StoreMessageInfo(mi) 1760 } 1761 return ms 1762 } 1763 return mi.MessageOf(x) 1764} 1765 1766// Deprecated: Use LineMatch.ProtoReflect.Descriptor instead. 1767func (*LineMatch) Descriptor() ([]byte, []int) { 1768 return file_webserver_proto_rawDescGZIP(), []int{15} 1769} 1770 1771func (x *LineMatch) GetLine() []byte { 1772 if x != nil { 1773 return x.Line 1774 } 1775 return nil 1776} 1777 1778func (x *LineMatch) GetLineStart() int64 { 1779 if x != nil { 1780 return x.LineStart 1781 } 1782 return 0 1783} 1784 1785func (x *LineMatch) GetLineEnd() int64 { 1786 if x != nil { 1787 return x.LineEnd 1788 } 1789 return 0 1790} 1791 1792func (x *LineMatch) GetLineNumber() int64 { 1793 if x != nil { 1794 return x.LineNumber 1795 } 1796 return 0 1797} 1798 1799func (x *LineMatch) GetBefore() []byte { 1800 if x != nil { 1801 return x.Before 1802 } 1803 return nil 1804} 1805 1806func (x *LineMatch) GetAfter() []byte { 1807 if x != nil { 1808 return x.After 1809 } 1810 return nil 1811} 1812 1813func (x *LineMatch) GetFileName() bool { 1814 if x != nil { 1815 return x.FileName 1816 } 1817 return false 1818} 1819 1820func (x *LineMatch) GetScore() float64 { 1821 if x != nil { 1822 return x.Score 1823 } 1824 return 0 1825} 1826 1827func (x *LineMatch) GetDebugScore() string { 1828 if x != nil { 1829 return x.DebugScore 1830 } 1831 return "" 1832} 1833 1834func (x *LineMatch) GetLineFragments() []*LineFragmentMatch { 1835 if x != nil { 1836 return x.LineFragments 1837 } 1838 return nil 1839} 1840 1841type LineFragmentMatch struct { 1842 state protoimpl.MessageState 1843 sizeCache protoimpl.SizeCache 1844 unknownFields protoimpl.UnknownFields 1845 1846 // Offset within the line, in bytes. 1847 LineOffset int64 `protobuf:"varint,1,opt,name=line_offset,json=lineOffset,proto3" json:"line_offset,omitempty"` 1848 // Offset from file start, in bytes. 1849 Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 1850 // Number bytes that match. 1851 MatchLength int64 `protobuf:"varint,3,opt,name=match_length,json=matchLength,proto3" json:"match_length,omitempty"` 1852 SymbolInfo *SymbolInfo `protobuf:"bytes,4,opt,name=symbol_info,json=symbolInfo,proto3,oneof" json:"symbol_info,omitempty"` 1853} 1854 1855func (x *LineFragmentMatch) Reset() { 1856 *x = LineFragmentMatch{} 1857 if protoimpl.UnsafeEnabled { 1858 mi := &file_webserver_proto_msgTypes[16] 1859 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1860 ms.StoreMessageInfo(mi) 1861 } 1862} 1863 1864func (x *LineFragmentMatch) String() string { 1865 return protoimpl.X.MessageStringOf(x) 1866} 1867 1868func (*LineFragmentMatch) ProtoMessage() {} 1869 1870func (x *LineFragmentMatch) ProtoReflect() protoreflect.Message { 1871 mi := &file_webserver_proto_msgTypes[16] 1872 if protoimpl.UnsafeEnabled && x != nil { 1873 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1874 if ms.LoadMessageInfo() == nil { 1875 ms.StoreMessageInfo(mi) 1876 } 1877 return ms 1878 } 1879 return mi.MessageOf(x) 1880} 1881 1882// Deprecated: Use LineFragmentMatch.ProtoReflect.Descriptor instead. 1883func (*LineFragmentMatch) Descriptor() ([]byte, []int) { 1884 return file_webserver_proto_rawDescGZIP(), []int{16} 1885} 1886 1887func (x *LineFragmentMatch) GetLineOffset() int64 { 1888 if x != nil { 1889 return x.LineOffset 1890 } 1891 return 0 1892} 1893 1894func (x *LineFragmentMatch) GetOffset() uint32 { 1895 if x != nil { 1896 return x.Offset 1897 } 1898 return 0 1899} 1900 1901func (x *LineFragmentMatch) GetMatchLength() int64 { 1902 if x != nil { 1903 return x.MatchLength 1904 } 1905 return 0 1906} 1907 1908func (x *LineFragmentMatch) GetSymbolInfo() *SymbolInfo { 1909 if x != nil { 1910 return x.SymbolInfo 1911 } 1912 return nil 1913} 1914 1915type SymbolInfo struct { 1916 state protoimpl.MessageState 1917 sizeCache protoimpl.SizeCache 1918 unknownFields protoimpl.UnknownFields 1919 1920 Sym string `protobuf:"bytes,1,opt,name=sym,proto3" json:"sym,omitempty"` 1921 Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` 1922 Parent string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"` 1923 ParentKind string `protobuf:"bytes,4,opt,name=parent_kind,json=parentKind,proto3" json:"parent_kind,omitempty"` 1924} 1925 1926func (x *SymbolInfo) Reset() { 1927 *x = SymbolInfo{} 1928 if protoimpl.UnsafeEnabled { 1929 mi := &file_webserver_proto_msgTypes[17] 1930 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1931 ms.StoreMessageInfo(mi) 1932 } 1933} 1934 1935func (x *SymbolInfo) String() string { 1936 return protoimpl.X.MessageStringOf(x) 1937} 1938 1939func (*SymbolInfo) ProtoMessage() {} 1940 1941func (x *SymbolInfo) ProtoReflect() protoreflect.Message { 1942 mi := &file_webserver_proto_msgTypes[17] 1943 if protoimpl.UnsafeEnabled && x != nil { 1944 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1945 if ms.LoadMessageInfo() == nil { 1946 ms.StoreMessageInfo(mi) 1947 } 1948 return ms 1949 } 1950 return mi.MessageOf(x) 1951} 1952 1953// Deprecated: Use SymbolInfo.ProtoReflect.Descriptor instead. 1954func (*SymbolInfo) Descriptor() ([]byte, []int) { 1955 return file_webserver_proto_rawDescGZIP(), []int{17} 1956} 1957 1958func (x *SymbolInfo) GetSym() string { 1959 if x != nil { 1960 return x.Sym 1961 } 1962 return "" 1963} 1964 1965func (x *SymbolInfo) GetKind() string { 1966 if x != nil { 1967 return x.Kind 1968 } 1969 return "" 1970} 1971 1972func (x *SymbolInfo) GetParent() string { 1973 if x != nil { 1974 return x.Parent 1975 } 1976 return "" 1977} 1978 1979func (x *SymbolInfo) GetParentKind() string { 1980 if x != nil { 1981 return x.ParentKind 1982 } 1983 return "" 1984} 1985 1986type ChunkMatch struct { 1987 state protoimpl.MessageState 1988 sizeCache protoimpl.SizeCache 1989 unknownFields protoimpl.UnknownFields 1990 1991 // A contiguous range of complete lines that fully contains Ranges. 1992 Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` 1993 // The location (inclusive) of the beginning of content 1994 // relative to the beginning of the file. It will always be at the 1995 // beginning of a line (Column will always be 1). 1996 ContentStart *Location `protobuf:"bytes,2,opt,name=content_start,json=contentStart,proto3" json:"content_start,omitempty"` 1997 // True if this match is a match on the file name, in 1998 // which case Content will contain the file name. 1999 FileName bool `protobuf:"varint,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 2000 // A set of matching ranges within this chunk. Each range is relative 2001 // to the beginning of the file (not the beginning of Content). 2002 Ranges []*Range `protobuf:"bytes,4,rep,name=ranges,proto3" json:"ranges,omitempty"` 2003 // The symbol information associated with Ranges. If it is non-nil, 2004 // its length will equal that of Ranges. Any of its elements may be nil. 2005 SymbolInfo []*SymbolInfo `protobuf:"bytes,5,rep,name=symbol_info,json=symbolInfo,proto3" json:"symbol_info,omitempty"` 2006 Score float64 `protobuf:"fixed64,6,opt,name=score,proto3" json:"score,omitempty"` 2007 DebugScore string `protobuf:"bytes,7,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 2008} 2009 2010func (x *ChunkMatch) Reset() { 2011 *x = ChunkMatch{} 2012 if protoimpl.UnsafeEnabled { 2013 mi := &file_webserver_proto_msgTypes[18] 2014 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2015 ms.StoreMessageInfo(mi) 2016 } 2017} 2018 2019func (x *ChunkMatch) String() string { 2020 return protoimpl.X.MessageStringOf(x) 2021} 2022 2023func (*ChunkMatch) ProtoMessage() {} 2024 2025func (x *ChunkMatch) ProtoReflect() protoreflect.Message { 2026 mi := &file_webserver_proto_msgTypes[18] 2027 if protoimpl.UnsafeEnabled && x != nil { 2028 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2029 if ms.LoadMessageInfo() == nil { 2030 ms.StoreMessageInfo(mi) 2031 } 2032 return ms 2033 } 2034 return mi.MessageOf(x) 2035} 2036 2037// Deprecated: Use ChunkMatch.ProtoReflect.Descriptor instead. 2038func (*ChunkMatch) Descriptor() ([]byte, []int) { 2039 return file_webserver_proto_rawDescGZIP(), []int{18} 2040} 2041 2042func (x *ChunkMatch) GetContent() []byte { 2043 if x != nil { 2044 return x.Content 2045 } 2046 return nil 2047} 2048 2049func (x *ChunkMatch) GetContentStart() *Location { 2050 if x != nil { 2051 return x.ContentStart 2052 } 2053 return nil 2054} 2055 2056func (x *ChunkMatch) GetFileName() bool { 2057 if x != nil { 2058 return x.FileName 2059 } 2060 return false 2061} 2062 2063func (x *ChunkMatch) GetRanges() []*Range { 2064 if x != nil { 2065 return x.Ranges 2066 } 2067 return nil 2068} 2069 2070func (x *ChunkMatch) GetSymbolInfo() []*SymbolInfo { 2071 if x != nil { 2072 return x.SymbolInfo 2073 } 2074 return nil 2075} 2076 2077func (x *ChunkMatch) GetScore() float64 { 2078 if x != nil { 2079 return x.Score 2080 } 2081 return 0 2082} 2083 2084func (x *ChunkMatch) GetDebugScore() string { 2085 if x != nil { 2086 return x.DebugScore 2087 } 2088 return "" 2089} 2090 2091type Range struct { 2092 state protoimpl.MessageState 2093 sizeCache protoimpl.SizeCache 2094 unknownFields protoimpl.UnknownFields 2095 2096 // The inclusive beginning of the range. 2097 Start *Location `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` 2098 // The exclusive end of the range. 2099 End *Location `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` 2100} 2101 2102func (x *Range) Reset() { 2103 *x = Range{} 2104 if protoimpl.UnsafeEnabled { 2105 mi := &file_webserver_proto_msgTypes[19] 2106 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2107 ms.StoreMessageInfo(mi) 2108 } 2109} 2110 2111func (x *Range) String() string { 2112 return protoimpl.X.MessageStringOf(x) 2113} 2114 2115func (*Range) ProtoMessage() {} 2116 2117func (x *Range) ProtoReflect() protoreflect.Message { 2118 mi := &file_webserver_proto_msgTypes[19] 2119 if protoimpl.UnsafeEnabled && x != nil { 2120 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2121 if ms.LoadMessageInfo() == nil { 2122 ms.StoreMessageInfo(mi) 2123 } 2124 return ms 2125 } 2126 return mi.MessageOf(x) 2127} 2128 2129// Deprecated: Use Range.ProtoReflect.Descriptor instead. 2130func (*Range) Descriptor() ([]byte, []int) { 2131 return file_webserver_proto_rawDescGZIP(), []int{19} 2132} 2133 2134func (x *Range) GetStart() *Location { 2135 if x != nil { 2136 return x.Start 2137 } 2138 return nil 2139} 2140 2141func (x *Range) GetEnd() *Location { 2142 if x != nil { 2143 return x.End 2144 } 2145 return nil 2146} 2147 2148type Location struct { 2149 state protoimpl.MessageState 2150 sizeCache protoimpl.SizeCache 2151 unknownFields protoimpl.UnknownFields 2152 2153 // 0-based byte offset from the beginning of the file 2154 ByteOffset uint32 `protobuf:"varint,1,opt,name=byte_offset,json=byteOffset,proto3" json:"byte_offset,omitempty"` 2155 // 1-based line number from the beginning of the file 2156 LineNumber uint32 `protobuf:"varint,2,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` 2157 // 1-based column number (in runes) from the beginning of line 2158 Column uint32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"` 2159} 2160 2161func (x *Location) Reset() { 2162 *x = Location{} 2163 if protoimpl.UnsafeEnabled { 2164 mi := &file_webserver_proto_msgTypes[20] 2165 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2166 ms.StoreMessageInfo(mi) 2167 } 2168} 2169 2170func (x *Location) String() string { 2171 return protoimpl.X.MessageStringOf(x) 2172} 2173 2174func (*Location) ProtoMessage() {} 2175 2176func (x *Location) ProtoReflect() protoreflect.Message { 2177 mi := &file_webserver_proto_msgTypes[20] 2178 if protoimpl.UnsafeEnabled && x != nil { 2179 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2180 if ms.LoadMessageInfo() == nil { 2181 ms.StoreMessageInfo(mi) 2182 } 2183 return ms 2184 } 2185 return mi.MessageOf(x) 2186} 2187 2188// Deprecated: Use Location.ProtoReflect.Descriptor instead. 2189func (*Location) Descriptor() ([]byte, []int) { 2190 return file_webserver_proto_rawDescGZIP(), []int{20} 2191} 2192 2193func (x *Location) GetByteOffset() uint32 { 2194 if x != nil { 2195 return x.ByteOffset 2196 } 2197 return 0 2198} 2199 2200func (x *Location) GetLineNumber() uint32 { 2201 if x != nil { 2202 return x.LineNumber 2203 } 2204 return 0 2205} 2206 2207func (x *Location) GetColumn() uint32 { 2208 if x != nil { 2209 return x.Column 2210 } 2211 return 0 2212} 2213 2214var File_webserver_proto protoreflect.FileDescriptor 2215 2216var file_webserver_proto_rawDesc = []byte{ 2217 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2218 0x6f, 0x12, 0x07, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 2219 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 2220 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 2221 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 2222 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x71, 0x75, 0x65, 2223 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 2224 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x71, 0x75, 0x65, 2225 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 2226 0x76, 0x31, 0x2e, 0x51, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6f, 2227 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 2228 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2229 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x22, 0xa5, 0x03, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 2230 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 2231 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x70, 0x63, 2232 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 2233 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 2234 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 2235 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 2236 0x28, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 2237 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x74, 2238 0x63, 0x68, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x70, 2239 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 2240 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 2241 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 2242 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x51, 0x0a, 2243 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 2244 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2245 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 2246 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 2247 0x79, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2248 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 2249 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2250 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2251 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 2252 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 2253 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2254 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 2255 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 2256 0xc4, 0x05, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2257 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x6f, 2258 0x63, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 2259 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 2260 0x14, 0x0a, 0x05, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 2261 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6d, 2262 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 2263 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x78, 0x4d, 0x61, 2264 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 2265 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 2266 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x61, 2267 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 2268 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, 2269 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 2270 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x78, 0x4d, 0x61, 0x74, 2271 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x77, 2272 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 2273 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2274 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 2275 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 2276 0x77, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 2277 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2278 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x73, 2279 0x68, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 2280 0x5f, 0x64, 0x6f, 0x63, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x75, 2281 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x44, 0x6f, 0x63, 2282 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 2283 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 2284 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 2285 0x65, 0x78, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x75, 0x6e, 2286 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 2287 0x0c, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x2c, 0x0a, 2288 0x12, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 2289 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x44, 0x6f, 2290 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x64, 2291 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x5f, 0x77, 0x65, 2292 0x69, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x64, 0x6f, 0x63, 0x75, 2293 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 2294 0x14, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 2295 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 2296 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 2297 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x6b, 0x65, 2298 0x79, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 2299 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x53, 2300 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x59, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 2301 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 2302 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x51, 2303 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18, 2304 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2305 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 2306 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2307 0x73, 0x12, 0x38, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 2308 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 2309 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x46, 2310 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 2311 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x69, 2312 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 2313 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x5f, 2314 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 2315 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 2316 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x10, 0x01, 0x12, 2317 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 2318 0x4c, 0x44, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 2319 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 2320 0x52, 0x45, 0x50, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x03, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 2321 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 2322 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 2323 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 2324 0x74, 0x72, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x72, 0x65, 2325 0x70, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 2326 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 2327 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 2328 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 2329 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 2330 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 2331 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2332 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 2333 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 2334 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 2335 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 2336 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x1a, 0x5a, 2337 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 2338 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 2339 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2340 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 2341 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 2342 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0c, 0x4d, 0x69, 2343 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 2344 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 2345 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 2346 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 2347 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 2348 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 2349 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 2350 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 2351 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 2352 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 2353 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 2354 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x49, 2355 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x69, 0x6e, 2356 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x73, 2357 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 2358 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 2359 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xc5, 0x06, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2360 0x74, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 2361 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 2362 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 2363 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 2364 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 2365 0x63, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 2366 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2367 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 2368 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x75, 0x62, 2369 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 2370 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2371 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x45, 2372 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 2373 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 2374 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 2375 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 2376 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 2377 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x6c, 2378 0x65, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 2379 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 2380 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 2381 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 2382 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 2383 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 2384 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x03, 2385 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 2386 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 2387 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 2388 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 2389 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6f, 2390 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 2391 0x64, 0x65, 0x78, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 2392 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 2393 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 2394 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 2395 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x6c, 0x61, 0x74, 2396 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 2397 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2398 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 2399 0x70, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 2400 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x6d, 0x62, 0x73, 2401 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x46, 0x69, 0x6c, 2402 0x65, 0x54, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x0f, 0x53, 2403 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 2404 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 2405 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2406 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2407 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 2408 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 2409 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2410 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2411 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcb, 0x03, 2412 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 2413 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 2414 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 2415 0x6e, 0x64, 0x65, 0x78, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 2416 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 2417 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 2418 0x52, 0x13, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 2419 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6d, 2420 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 2421 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x69, 2422 0x6e, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 2423 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 2424 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2425 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 2426 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 2427 0x69, 0x6e, 0x5f, 0x61, 0x73, 0x63, 0x69, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 2428 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x41, 0x73, 0x63, 0x69, 0x69, 0x12, 0x4a, 0x0a, 0x0c, 0x6c, 0x61, 2429 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 2430 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 2431 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 2432 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2433 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x5f, 2434 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x7a, 2435 0x6f, 0x65, 0x6b, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 2436 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x3e, 0x0a, 0x10, 0x4c, 2437 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 2438 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 2439 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 2440 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, 0x14, 2441 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 2442 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 2443 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 2444 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 2445 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 2446 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 2447 0x63, 0x68, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 2448 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x18, 2449 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 2450 0x55, 0x6e, 0x69, 0x78, 0x22, 0x40, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 2451 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2452 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 2453 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 2454 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcd, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x53, 2455 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 2456 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 2457 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 2458 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 2459 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2460 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 2461 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x74, 0x65, 2462 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 2463 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 2464 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 2465 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 2466 0x0d, 0x6e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 2467 0x0a, 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 2468 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 2469 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 2470 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 2471 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x62, 0x72, 0x61, 0x6e, 2472 0x63, 0x68, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 2473 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x6f, 0x74, 0x68, 0x65, 2474 0x72, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x4e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 2475 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x06, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 2476 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 2477 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 2478 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 2479 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 2480 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 2481 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 2482 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 2483 0x03, 0x52, 0x07, 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 2484 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 2485 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 2486 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 2487 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2488 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 2489 0x12, 0x34, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 2490 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 2491 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 2492 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 2493 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 2494 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 2495 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 2496 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4c, 0x6f, 2497 0x61, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x6b, 2498 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6c, 2499 0x65, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 2500 0x72, 0x64, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 2501 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 2502 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 2503 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 2504 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 2505 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 2506 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x6b, 2507 0x69, 0x70, 0x70, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 2508 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 2509 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 2510 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 2511 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 2512 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 2513 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2514 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 2515 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 2516 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x72, 0x65, 2517 0x67, 0x65, 0x78, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 2518 0x37, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 2519 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2520 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x66, 0x6c, 0x75, 2521 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x67, 0x72, 0x61, 2522 0x6d, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 2523 0x0c, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x73, 0x22, 0x58, 0x0a, 2524 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 2525 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 2526 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, 2527 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 2528 0x01, 0x28, 0x01, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 2529 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xa3, 0x04, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 2530 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 2531 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 2532 0x65, 0x62, 0x75, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 2533 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 2534 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 2535 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 2536 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 2537 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 2538 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6c, 0x69, 2539 0x6e, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 2540 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 2541 0x61, 0x74, 0x63, 0x68, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 2542 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 2543 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 2544 0x76, 0x31, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0c, 0x63, 2545 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 2546 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 2547 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 2548 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 2549 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x72, 2550 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 2551 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 2552 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 2553 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 2554 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2555 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2556 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 2557 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 2558 0x52, 0x11, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4e, 2559 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 2560 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 2561 0x52, 0x11, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 2562 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 2563 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x02, 2564 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 2565 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 2566 0x1d, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 2567 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x19, 2568 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 2569 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 2570 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 2571 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 2572 0x66, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 2573 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 2574 0x0c, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 2575 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 2576 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 2577 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 2578 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 2579 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x0e, 2580 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0a, 2581 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 2582 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 2583 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 2584 0xba, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 2585 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 2586 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 2587 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 2588 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x21, 2589 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 2590 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 2591 0x68, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 2592 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 2593 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x73, 2594 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 2595 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x6b, 0x0a, 0x0a, 2596 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 2597 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x6d, 0x12, 0x12, 0x0a, 0x04, 2598 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 2599 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 2600 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 2601 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 2602 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x90, 0x02, 0x0a, 0x0a, 0x43, 0x68, 2603 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 2604 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 2605 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 2606 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 2607 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 2608 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 2609 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 2610 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 2611 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 2612 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 2613 0x34, 0x0a, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 2614 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 2615 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 2616 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 2617 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 2618 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 2619 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x05, 2620 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 2621 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 2622 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 2623 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 2624 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 2625 0x65, 0x6e, 0x64, 0x22, 0x64, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 2626 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 2627 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 2628 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 2629 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 2630 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 2631 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2a, 0x4c, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 2632 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 2633 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x5f, 0x45, 2634 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x41, 2635 0x4c, 0x5f, 0x46, 0x4c, 0x55, 0x53, 0x48, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 2636 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x03, 0x32, 0xcb, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x62, 0x73, 2637 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x06, 2638 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 2639 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 2640 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 2641 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x74, 0x72, 2642 0x65, 0x61, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 2643 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2644 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 2645 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x35, 2646 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 2647 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 2648 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 2649 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 2650 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 2651 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 2652 0x72, 0x6f, 0x74, 0x6f, 0x33, 2653} 2654 2655var ( 2656 file_webserver_proto_rawDescOnce sync.Once 2657 file_webserver_proto_rawDescData = file_webserver_proto_rawDesc 2658) 2659 2660func file_webserver_proto_rawDescGZIP() []byte { 2661 file_webserver_proto_rawDescOnce.Do(func() { 2662 file_webserver_proto_rawDescData = protoimpl.X.CompressGZIP(file_webserver_proto_rawDescData) 2663 }) 2664 return file_webserver_proto_rawDescData 2665} 2666 2667var file_webserver_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2668var file_webserver_proto_msgTypes = make([]protoimpl.MessageInfo, 28) 2669var file_webserver_proto_goTypes = []interface{}{ 2670 (FlushReason)(0), // 0: grpc.v1.FlushReason 2671 (ListOptions_RepoListField)(0), // 1: grpc.v1.ListOptions.RepoListField 2672 (*SearchRequest)(nil), // 2: grpc.v1.SearchRequest 2673 (*SearchResponse)(nil), // 3: grpc.v1.SearchResponse 2674 (*SearchOptions)(nil), // 4: grpc.v1.SearchOptions 2675 (*ListRequest)(nil), // 5: grpc.v1.ListRequest 2676 (*ListOptions)(nil), // 6: grpc.v1.ListOptions 2677 (*ListResponse)(nil), // 7: grpc.v1.ListResponse 2678 (*RepoListEntry)(nil), // 8: grpc.v1.RepoListEntry 2679 (*Repository)(nil), // 9: grpc.v1.Repository 2680 (*IndexMetadata)(nil), // 10: grpc.v1.IndexMetadata 2681 (*MinimalRepoListEntry)(nil), // 11: grpc.v1.MinimalRepoListEntry 2682 (*RepositoryBranch)(nil), // 12: grpc.v1.RepositoryBranch 2683 (*RepoStats)(nil), // 13: grpc.v1.RepoStats 2684 (*Stats)(nil), // 14: grpc.v1.Stats 2685 (*Progress)(nil), // 15: grpc.v1.Progress 2686 (*FileMatch)(nil), // 16: grpc.v1.FileMatch 2687 (*LineMatch)(nil), // 17: grpc.v1.LineMatch 2688 (*LineFragmentMatch)(nil), // 18: grpc.v1.LineFragmentMatch 2689 (*SymbolInfo)(nil), // 19: grpc.v1.SymbolInfo 2690 (*ChunkMatch)(nil), // 20: grpc.v1.ChunkMatch 2691 (*Range)(nil), // 21: grpc.v1.Range 2692 (*Location)(nil), // 22: grpc.v1.Location 2693 nil, // 23: grpc.v1.SearchResponse.RepoUrlsEntry 2694 nil, // 24: grpc.v1.SearchResponse.LineFragmentsEntry 2695 nil, // 25: grpc.v1.ListResponse.ReposMapEntry 2696 nil, // 26: grpc.v1.ListResponse.MinimalEntry 2697 nil, // 27: grpc.v1.Repository.SubRepoMapEntry 2698 nil, // 28: grpc.v1.Repository.RawConfigEntry 2699 nil, // 29: grpc.v1.IndexMetadata.LanguageMapEntry 2700 (*Q)(nil), // 30: grpc.v1.Q 2701 (*durationpb.Duration)(nil), // 31: google.protobuf.Duration 2702 (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp 2703} 2704var file_webserver_proto_depIdxs = []int32{ 2705 30, // 0: grpc.v1.SearchRequest.query:type_name -> grpc.v1.Q 2706 4, // 1: grpc.v1.SearchRequest.opts:type_name -> grpc.v1.SearchOptions 2707 14, // 2: grpc.v1.SearchResponse.stats:type_name -> grpc.v1.Stats 2708 15, // 3: grpc.v1.SearchResponse.progress:type_name -> grpc.v1.Progress 2709 16, // 4: grpc.v1.SearchResponse.files:type_name -> grpc.v1.FileMatch 2710 23, // 5: grpc.v1.SearchResponse.repo_urls:type_name -> grpc.v1.SearchResponse.RepoUrlsEntry 2711 24, // 6: grpc.v1.SearchResponse.line_fragments:type_name -> grpc.v1.SearchResponse.LineFragmentsEntry 2712 31, // 7: grpc.v1.SearchOptions.max_wall_time:type_name -> google.protobuf.Duration 2713 31, // 8: grpc.v1.SearchOptions.flush_wall_time:type_name -> google.protobuf.Duration 2714 30, // 9: grpc.v1.ListRequest.query:type_name -> grpc.v1.Q 2715 6, // 10: grpc.v1.ListRequest.opts:type_name -> grpc.v1.ListOptions 2716 1, // 11: grpc.v1.ListOptions.field:type_name -> grpc.v1.ListOptions.RepoListField 2717 8, // 12: grpc.v1.ListResponse.repos:type_name -> grpc.v1.RepoListEntry 2718 25, // 13: grpc.v1.ListResponse.repos_map:type_name -> grpc.v1.ListResponse.ReposMapEntry 2719 13, // 14: grpc.v1.ListResponse.stats:type_name -> grpc.v1.RepoStats 2720 26, // 15: grpc.v1.ListResponse.minimal:type_name -> grpc.v1.ListResponse.MinimalEntry 2721 9, // 16: grpc.v1.RepoListEntry.repository:type_name -> grpc.v1.Repository 2722 10, // 17: grpc.v1.RepoListEntry.index_metadata:type_name -> grpc.v1.IndexMetadata 2723 13, // 18: grpc.v1.RepoListEntry.stats:type_name -> grpc.v1.RepoStats 2724 12, // 19: grpc.v1.Repository.branches:type_name -> grpc.v1.RepositoryBranch 2725 27, // 20: grpc.v1.Repository.sub_repo_map:type_name -> grpc.v1.Repository.SubRepoMapEntry 2726 28, // 21: grpc.v1.Repository.raw_config:type_name -> grpc.v1.Repository.RawConfigEntry 2727 32, // 22: grpc.v1.Repository.latest_commit_date:type_name -> google.protobuf.Timestamp 2728 32, // 23: grpc.v1.IndexMetadata.index_time:type_name -> google.protobuf.Timestamp 2729 29, // 24: grpc.v1.IndexMetadata.language_map:type_name -> grpc.v1.IndexMetadata.LanguageMapEntry 2730 12, // 25: grpc.v1.MinimalRepoListEntry.branches:type_name -> grpc.v1.RepositoryBranch 2731 31, // 26: grpc.v1.Stats.duration:type_name -> google.protobuf.Duration 2732 31, // 27: grpc.v1.Stats.wait:type_name -> google.protobuf.Duration 2733 0, // 28: grpc.v1.Stats.flush_reason:type_name -> grpc.v1.FlushReason 2734 17, // 29: grpc.v1.FileMatch.line_matches:type_name -> grpc.v1.LineMatch 2735 20, // 30: grpc.v1.FileMatch.chunk_matches:type_name -> grpc.v1.ChunkMatch 2736 18, // 31: grpc.v1.LineMatch.line_fragments:type_name -> grpc.v1.LineFragmentMatch 2737 19, // 32: grpc.v1.LineFragmentMatch.symbol_info:type_name -> grpc.v1.SymbolInfo 2738 22, // 33: grpc.v1.ChunkMatch.content_start:type_name -> grpc.v1.Location 2739 21, // 34: grpc.v1.ChunkMatch.ranges:type_name -> grpc.v1.Range 2740 19, // 35: grpc.v1.ChunkMatch.symbol_info:type_name -> grpc.v1.SymbolInfo 2741 22, // 36: grpc.v1.Range.start:type_name -> grpc.v1.Location 2742 22, // 37: grpc.v1.Range.end:type_name -> grpc.v1.Location 2743 11, // 38: grpc.v1.ListResponse.ReposMapEntry.value:type_name -> grpc.v1.MinimalRepoListEntry 2744 11, // 39: grpc.v1.ListResponse.MinimalEntry.value:type_name -> grpc.v1.MinimalRepoListEntry 2745 9, // 40: grpc.v1.Repository.SubRepoMapEntry.value:type_name -> grpc.v1.Repository 2746 2, // 41: grpc.v1.WebserverService.Search:input_type -> grpc.v1.SearchRequest 2747 2, // 42: grpc.v1.WebserverService.StreamSearch:input_type -> grpc.v1.SearchRequest 2748 5, // 43: grpc.v1.WebserverService.List:input_type -> grpc.v1.ListRequest 2749 3, // 44: grpc.v1.WebserverService.Search:output_type -> grpc.v1.SearchResponse 2750 3, // 45: grpc.v1.WebserverService.StreamSearch:output_type -> grpc.v1.SearchResponse 2751 7, // 46: grpc.v1.WebserverService.List:output_type -> grpc.v1.ListResponse 2752 44, // [44:47] is the sub-list for method output_type 2753 41, // [41:44] is the sub-list for method input_type 2754 41, // [41:41] is the sub-list for extension type_name 2755 41, // [41:41] is the sub-list for extension extendee 2756 0, // [0:41] is the sub-list for field type_name 2757} 2758 2759func init() { file_webserver_proto_init() } 2760func file_webserver_proto_init() { 2761 if File_webserver_proto != nil { 2762 return 2763 } 2764 file_query_proto_init() 2765 if !protoimpl.UnsafeEnabled { 2766 file_webserver_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2767 switch v := v.(*SearchRequest); i { 2768 case 0: 2769 return &v.state 2770 case 1: 2771 return &v.sizeCache 2772 case 2: 2773 return &v.unknownFields 2774 default: 2775 return nil 2776 } 2777 } 2778 file_webserver_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2779 switch v := v.(*SearchResponse); i { 2780 case 0: 2781 return &v.state 2782 case 1: 2783 return &v.sizeCache 2784 case 2: 2785 return &v.unknownFields 2786 default: 2787 return nil 2788 } 2789 } 2790 file_webserver_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2791 switch v := v.(*SearchOptions); i { 2792 case 0: 2793 return &v.state 2794 case 1: 2795 return &v.sizeCache 2796 case 2: 2797 return &v.unknownFields 2798 default: 2799 return nil 2800 } 2801 } 2802 file_webserver_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2803 switch v := v.(*ListRequest); i { 2804 case 0: 2805 return &v.state 2806 case 1: 2807 return &v.sizeCache 2808 case 2: 2809 return &v.unknownFields 2810 default: 2811 return nil 2812 } 2813 } 2814 file_webserver_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2815 switch v := v.(*ListOptions); i { 2816 case 0: 2817 return &v.state 2818 case 1: 2819 return &v.sizeCache 2820 case 2: 2821 return &v.unknownFields 2822 default: 2823 return nil 2824 } 2825 } 2826 file_webserver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2827 switch v := v.(*ListResponse); i { 2828 case 0: 2829 return &v.state 2830 case 1: 2831 return &v.sizeCache 2832 case 2: 2833 return &v.unknownFields 2834 default: 2835 return nil 2836 } 2837 } 2838 file_webserver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2839 switch v := v.(*RepoListEntry); i { 2840 case 0: 2841 return &v.state 2842 case 1: 2843 return &v.sizeCache 2844 case 2: 2845 return &v.unknownFields 2846 default: 2847 return nil 2848 } 2849 } 2850 file_webserver_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2851 switch v := v.(*Repository); i { 2852 case 0: 2853 return &v.state 2854 case 1: 2855 return &v.sizeCache 2856 case 2: 2857 return &v.unknownFields 2858 default: 2859 return nil 2860 } 2861 } 2862 file_webserver_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2863 switch v := v.(*IndexMetadata); i { 2864 case 0: 2865 return &v.state 2866 case 1: 2867 return &v.sizeCache 2868 case 2: 2869 return &v.unknownFields 2870 default: 2871 return nil 2872 } 2873 } 2874 file_webserver_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2875 switch v := v.(*MinimalRepoListEntry); i { 2876 case 0: 2877 return &v.state 2878 case 1: 2879 return &v.sizeCache 2880 case 2: 2881 return &v.unknownFields 2882 default: 2883 return nil 2884 } 2885 } 2886 file_webserver_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2887 switch v := v.(*RepositoryBranch); i { 2888 case 0: 2889 return &v.state 2890 case 1: 2891 return &v.sizeCache 2892 case 2: 2893 return &v.unknownFields 2894 default: 2895 return nil 2896 } 2897 } 2898 file_webserver_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2899 switch v := v.(*RepoStats); i { 2900 case 0: 2901 return &v.state 2902 case 1: 2903 return &v.sizeCache 2904 case 2: 2905 return &v.unknownFields 2906 default: 2907 return nil 2908 } 2909 } 2910 file_webserver_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2911 switch v := v.(*Stats); i { 2912 case 0: 2913 return &v.state 2914 case 1: 2915 return &v.sizeCache 2916 case 2: 2917 return &v.unknownFields 2918 default: 2919 return nil 2920 } 2921 } 2922 file_webserver_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2923 switch v := v.(*Progress); i { 2924 case 0: 2925 return &v.state 2926 case 1: 2927 return &v.sizeCache 2928 case 2: 2929 return &v.unknownFields 2930 default: 2931 return nil 2932 } 2933 } 2934 file_webserver_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2935 switch v := v.(*FileMatch); i { 2936 case 0: 2937 return &v.state 2938 case 1: 2939 return &v.sizeCache 2940 case 2: 2941 return &v.unknownFields 2942 default: 2943 return nil 2944 } 2945 } 2946 file_webserver_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2947 switch v := v.(*LineMatch); i { 2948 case 0: 2949 return &v.state 2950 case 1: 2951 return &v.sizeCache 2952 case 2: 2953 return &v.unknownFields 2954 default: 2955 return nil 2956 } 2957 } 2958 file_webserver_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2959 switch v := v.(*LineFragmentMatch); i { 2960 case 0: 2961 return &v.state 2962 case 1: 2963 return &v.sizeCache 2964 case 2: 2965 return &v.unknownFields 2966 default: 2967 return nil 2968 } 2969 } 2970 file_webserver_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2971 switch v := v.(*SymbolInfo); i { 2972 case 0: 2973 return &v.state 2974 case 1: 2975 return &v.sizeCache 2976 case 2: 2977 return &v.unknownFields 2978 default: 2979 return nil 2980 } 2981 } 2982 file_webserver_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2983 switch v := v.(*ChunkMatch); i { 2984 case 0: 2985 return &v.state 2986 case 1: 2987 return &v.sizeCache 2988 case 2: 2989 return &v.unknownFields 2990 default: 2991 return nil 2992 } 2993 } 2994 file_webserver_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2995 switch v := v.(*Range); i { 2996 case 0: 2997 return &v.state 2998 case 1: 2999 return &v.sizeCache 3000 case 2: 3001 return &v.unknownFields 3002 default: 3003 return nil 3004 } 3005 } 3006 file_webserver_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 3007 switch v := v.(*Location); i { 3008 case 0: 3009 return &v.state 3010 case 1: 3011 return &v.sizeCache 3012 case 2: 3013 return &v.unknownFields 3014 default: 3015 return nil 3016 } 3017 } 3018 } 3019 file_webserver_proto_msgTypes[16].OneofWrappers = []interface{}{} 3020 type x struct{} 3021 out := protoimpl.TypeBuilder{ 3022 File: protoimpl.DescBuilder{ 3023 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3024 RawDescriptor: file_webserver_proto_rawDesc, 3025 NumEnums: 2, 3026 NumMessages: 28, 3027 NumExtensions: 0, 3028 NumServices: 1, 3029 }, 3030 GoTypes: file_webserver_proto_goTypes, 3031 DependencyIndexes: file_webserver_proto_depIdxs, 3032 EnumInfos: file_webserver_proto_enumTypes, 3033 MessageInfos: file_webserver_proto_msgTypes, 3034 }.Build() 3035 File_webserver_proto = out.File 3036 file_webserver_proto_rawDesc = nil 3037 file_webserver_proto_goTypes = nil 3038 file_webserver_proto_depIdxs = nil 3039}