From 94a5a919751d6d57dfd9d9c333f1d8024d46a7b7 Mon Sep 17 00:00:00 2001 From: alessandro-Doyensec Date: Wed, 3 Dec 2025 16:31:02 +0100 Subject: [PATCH 1/4] init: jwt detector --- veles/secrets/common/jwt/jwt.go | 17 +---- veles/secrets/jwt/detector.go | 42 +++++++++++ veles/secrets/jwt/detector_test.go | 117 +++++++++++++++++++++++++++++ veles/secrets/jwt/jwt.go | 21 ++++++ 4 files changed, 182 insertions(+), 15 deletions(-) create mode 100644 veles/secrets/jwt/detector.go create mode 100644 veles/secrets/jwt/detector_test.go create mode 100644 veles/secrets/jwt/jwt.go diff --git a/veles/secrets/common/jwt/jwt.go b/veles/secrets/common/jwt/jwt.go index 4ba0450e6..30b8d9a5d 100644 --- a/veles/secrets/common/jwt/jwt.go +++ b/veles/secrets/common/jwt/jwt.go @@ -50,12 +50,12 @@ type Token struct { // Header returns a copy of the JWT header claims. func (t *Token) Header() map[string]any { - return copyMap(t.header) + return maps.Clone(t.header) } // Payload returns a copy of the JWT payload claims. func (t *Token) Payload() map[string]any { - return copyMap(t.payload) + return maps.Clone(t.payload) } // Signature returns the JWT signature. @@ -72,19 +72,6 @@ func (t Token) isValid() bool { return t.header != nil && t.payload != nil && t.signature != "" } -// copyMap creates a shallow copy of a map[string]any. -// Returns nil if the input map is nil. -func copyMap(m map[string]any) map[string]any { - if m == nil { - return nil - } - - n := make(map[string]any, len(m)) - maps.Copy(n, m) - - return n -} - // ExtractTokens scans the input data for JWT substrings, parses them and // returns a slice of Token objects and their positions. func ExtractTokens(data []byte) ([]Token, []int) { diff --git a/veles/secrets/jwt/detector.go b/veles/secrets/jwt/detector.go new file mode 100644 index 000000000..31381554d --- /dev/null +++ b/veles/secrets/jwt/detector.go @@ -0,0 +1,42 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package jwt + +import ( + "github.com/google/osv-scalibr/veles" + "github.com/google/osv-scalibr/veles/secrets/common/jwt" +) + +type detector struct{} + +// NewDetector returns a new Veles Detector that finds JWT tokens. +func NewDetector() veles.Detector { + return &detector{} +} + +// Detect finds JWT tokens. +func (d *detector) Detect(data []byte) ([]veles.Secret, []int) { + tokens, positions := jwt.ExtractTokens(data) + secrets := make([]veles.Secret, len(tokens)) + for i, t := range tokens { + secrets[i] = Token{Value: t.Raw()} + } + return secrets, positions +} + +// MaxSecretLen return the max length that a JWT token can have. +func (d *detector) MaxSecretLen() uint32 { + return jwt.MaxTokenLength +} diff --git a/veles/secrets/jwt/detector_test.go b/veles/secrets/jwt/detector_test.go new file mode 100644 index 000000000..0ba639a0d --- /dev/null +++ b/veles/secrets/jwt/detector_test.go @@ -0,0 +1,117 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package jwt_test + +import ( + "strings" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/google/osv-scalibr/veles" + "github.com/google/osv-scalibr/veles/secrets/jwt" +) + +const ( + testJWT = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c` + testJWTAlt = `eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvc2NhbGliLXRlc3QiLCJhdWQiOiJleGFtcGxlLmNvbSIsImV4cCI6NDQ2ODg3MDQ5MX0.Q5rFj8b0cR2pD7eL1O4mK3vT5wA6xY7zB8C9dE0fG1hI2jJ3kL4mN5oP6qR7sT8uV9wX0yZ1a2b3c4d5e6f7g` +) + +// TestJWTDetector_TruePositives verifies that the detector finds valid JWT tokens. +func TestJWTDetector_TruePositives(t *testing.T) { + engine, err := veles.NewDetectionEngine([]veles.Detector{jwt.NewDetector()}) + if err != nil { + t.Fatalf("Failed to initialize detection engine: %v", err) + } + + cases := []struct { + name string + input string + want []veles.Secret + }{{ + name: "simple_matching_string", + input: testJWT, + want: []veles.Secret{ + jwt.Token{Value: testJWT}, + }, + }, { + name: "token_in_surrounding_text_(Bearer_token)", + input: "Authorization: Bearer " + testJWT + " end", + want: []veles.Secret{ + jwt.Token{Value: testJWT}, + }, + }, { + name: "multiple_distinct_matches", + input: testJWT + "\n" + testJWTAlt, + want: []veles.Secret{ + jwt.Token{Value: testJWT}, + jwt.Token{Value: testJWTAlt}, + }, + }} + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + got, err := engine.Detect(t.Context(), strings.NewReader(tc.input)) + if err != nil { + t.Errorf("Detect() error: %v, want nil", err) + } + if diff := cmp.Diff(tc.want, got, cmpopts.EquateEmpty()); diff != "" { + t.Errorf("Detect() diff (-want +got):\n%s", diff) + } + }) + } +} + +// TestJWTDetector_TrueNegatives verifies that the detector ignores invalid, non-JWT strings. +func TestJWTDetector_TrueNegative(t *testing.T) { + engine, err := veles.NewDetectionEngine([]veles.Detector{jwt.NewDetector()}) + if err != nil { + t.Fatalf("Failed to initialize detection engine: %v", err) + } + + cases := []struct { + name string + input string + }{{ + name: "empty_input", + input: "", + }, { + name: "not_enough_segments", + input: `header.payload`, + }, { + name: "invalid_base64_characters", + input: `eyJh!!ciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.b.c`, + }, { + name: "invalid_header", + input: `eyJhbGciOiJII1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`, + }, { + name: "invalid_payload", + input: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`, + }} + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + got, err := engine.Detect(t.Context(), strings.NewReader(tc.input)) + if err != nil { + t.Errorf("Detect() error: %v, want nil", err) + } + // We expect no secrets to be found. + var want []veles.Secret + if diff := cmp.Diff(want, got, cmpopts.EquateEmpty()); diff != "" { + t.Errorf("Detect() diff (-want +got):\n%s", diff) + } + }) + } +} diff --git a/veles/secrets/jwt/jwt.go b/veles/secrets/jwt/jwt.go new file mode 100644 index 000000000..d888a081d --- /dev/null +++ b/veles/secrets/jwt/jwt.go @@ -0,0 +1,21 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package jwt contains the logic to detect JWT tokens +package jwt + +// Token contains a JWT token +type Token struct { + Value string +} From 83eb5e95257d1676e5b5ddc2c09a02c117e8ecc2 Mon Sep 17 00:00:00 2001 From: alessandro-Doyensec Date: Wed, 3 Dec 2025 17:14:10 +0100 Subject: [PATCH 2/4] add: plugin registration add: proto conversion logic --- binary/proto/scan_result.proto | 6 + .../scan_result_go_proto/scan_result.pb.go | 1331 +++++++++-------- binary/proto/secret.go | 16 + extractor/filesystem/list/list.go | 2 + 4 files changed, 724 insertions(+), 631 deletions(-) diff --git a/binary/proto/scan_result.proto b/binary/proto/scan_result.proto index c5bdba7fb..4d381701c 100644 --- a/binary/proto/scan_result.proto +++ b/binary/proto/scan_result.proto @@ -720,6 +720,7 @@ message SecretData { VapidKey vapid_key = 49; AwsAccessKeyCredentials aws_access_key_credentials = 50; ReCaptchaKey re_captcha_key = 51; + JWTToken jwt_token = 52; } message GCPSAK { @@ -743,6 +744,11 @@ message SecretData { string private_key = 12; } + message JWTToken { + // a generic JWT token + string token = 1; + } + message AnthropicWorkspaceAPIKey { // The Anthropic Workspace API key (contains "admin01"). string key = 1; diff --git a/binary/proto/scan_result_go_proto/scan_result.pb.go b/binary/proto/scan_result_go_proto/scan_result.pb.go index 41a1e5851..16acc9559 100644 --- a/binary/proto/scan_result_go_proto/scan_result.pb.go +++ b/binary/proto/scan_result_go_proto/scan_result.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.35.1 // protoc v6.33.1 // source: proto/scan_result.proto @@ -5217,6 +5217,7 @@ type SecretData struct { // *SecretData_VapidKey_ // *SecretData_AwsAccessKeyCredentials_ // *SecretData_ReCaptchaKey_ + // *SecretData_JwtToken Secret isSecretData_Secret `protobuf_oneof:"secret"` } @@ -5607,6 +5608,13 @@ func (x *SecretData) GetReCaptchaKey() *SecretData_ReCaptchaKey { return nil } +func (x *SecretData) GetJwtToken() *SecretData_JWTToken { + if x, ok := x.GetSecret().(*SecretData_JwtToken); ok { + return x.JwtToken + } + return nil +} + type isSecretData_Secret interface { isSecretData_Secret() } @@ -5811,6 +5819,10 @@ type SecretData_ReCaptchaKey_ struct { ReCaptchaKey *SecretData_ReCaptchaKey `protobuf:"bytes,51,opt,name=re_captcha_key,json=reCaptchaKey,proto3,oneof"` } +type SecretData_JwtToken struct { + JwtToken *SecretData_JWTToken `protobuf:"bytes,52,opt,name=jwt_token,json=jwtToken,proto3,oneof"` +} + func (*SecretData_Gcpsak) isSecretData_Secret() {} func (*SecretData_AnthropicWorkspaceApiKey) isSecretData_Secret() {} @@ -5911,6 +5923,8 @@ func (*SecretData_AwsAccessKeyCredentials_) isSecretData_Secret() {} func (*SecretData_ReCaptchaKey_) isSecretData_Secret() {} +func (*SecretData_JwtToken) isSecretData_Secret() {} + type SecretStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6740,6 +6754,52 @@ func (x *SecretData_GCPSAK) GetPrivateKey() string { return "" } +type SecretData_JWTToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // a generic JWT token + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *SecretData_JWTToken) Reset() { + *x = SecretData_JWTToken{} + mi := &file_proto_scan_result_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SecretData_JWTToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecretData_JWTToken) ProtoMessage() {} + +func (x *SecretData_JWTToken) ProtoReflect() protoreflect.Message { + mi := &file_proto_scan_result_proto_msgTypes[70] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecretData_JWTToken.ProtoReflect.Descriptor instead. +func (*SecretData_JWTToken) Descriptor() ([]byte, []int) { + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 1} +} + +func (x *SecretData_JWTToken) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + type SecretData_AnthropicWorkspaceAPIKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6751,7 +6811,7 @@ type SecretData_AnthropicWorkspaceAPIKey struct { func (x *SecretData_AnthropicWorkspaceAPIKey) Reset() { *x = SecretData_AnthropicWorkspaceAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[70] + mi := &file_proto_scan_result_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6763,7 +6823,7 @@ func (x *SecretData_AnthropicWorkspaceAPIKey) String() string { func (*SecretData_AnthropicWorkspaceAPIKey) ProtoMessage() {} func (x *SecretData_AnthropicWorkspaceAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[70] + mi := &file_proto_scan_result_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6776,7 +6836,7 @@ func (x *SecretData_AnthropicWorkspaceAPIKey) ProtoReflect() protoreflect.Messag // Deprecated: Use SecretData_AnthropicWorkspaceAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_AnthropicWorkspaceAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 1} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 2} } func (x *SecretData_AnthropicWorkspaceAPIKey) GetKey() string { @@ -6797,7 +6857,7 @@ type SecretData_AnthropicModelAPIKey struct { func (x *SecretData_AnthropicModelAPIKey) Reset() { *x = SecretData_AnthropicModelAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[71] + mi := &file_proto_scan_result_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6809,7 +6869,7 @@ func (x *SecretData_AnthropicModelAPIKey) String() string { func (*SecretData_AnthropicModelAPIKey) ProtoMessage() {} func (x *SecretData_AnthropicModelAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[71] + mi := &file_proto_scan_result_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6822,7 +6882,7 @@ func (x *SecretData_AnthropicModelAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_AnthropicModelAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_AnthropicModelAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 2} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 3} } func (x *SecretData_AnthropicModelAPIKey) GetKey() string { @@ -6842,7 +6902,7 @@ type SecretData_PerplexityAPIKey struct { func (x *SecretData_PerplexityAPIKey) Reset() { *x = SecretData_PerplexityAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[72] + mi := &file_proto_scan_result_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6854,7 +6914,7 @@ func (x *SecretData_PerplexityAPIKey) String() string { func (*SecretData_PerplexityAPIKey) ProtoMessage() {} func (x *SecretData_PerplexityAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[72] + mi := &file_proto_scan_result_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6867,7 +6927,7 @@ func (x *SecretData_PerplexityAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_PerplexityAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_PerplexityAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 3} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 4} } func (x *SecretData_PerplexityAPIKey) GetKey() string { @@ -6887,7 +6947,7 @@ type SecretData_GrokXAIAPIKey struct { func (x *SecretData_GrokXAIAPIKey) Reset() { *x = SecretData_GrokXAIAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[73] + mi := &file_proto_scan_result_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6899,7 +6959,7 @@ func (x *SecretData_GrokXAIAPIKey) String() string { func (*SecretData_GrokXAIAPIKey) ProtoMessage() {} func (x *SecretData_GrokXAIAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[73] + mi := &file_proto_scan_result_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6912,7 +6972,7 @@ func (x *SecretData_GrokXAIAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GrokXAIAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_GrokXAIAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 4} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 5} } func (x *SecretData_GrokXAIAPIKey) GetKey() string { @@ -6932,7 +6992,7 @@ type SecretData_GrokXAIManagementAPIKey struct { func (x *SecretData_GrokXAIManagementAPIKey) Reset() { *x = SecretData_GrokXAIManagementAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[74] + mi := &file_proto_scan_result_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6944,7 +7004,7 @@ func (x *SecretData_GrokXAIManagementAPIKey) String() string { func (*SecretData_GrokXAIManagementAPIKey) ProtoMessage() {} func (x *SecretData_GrokXAIManagementAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[74] + mi := &file_proto_scan_result_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6957,7 +7017,7 @@ func (x *SecretData_GrokXAIManagementAPIKey) ProtoReflect() protoreflect.Message // Deprecated: Use SecretData_GrokXAIManagementAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_GrokXAIManagementAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 5} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 6} } func (x *SecretData_GrokXAIManagementAPIKey) GetKey() string { @@ -6977,7 +7037,7 @@ type SecretData_AzureStorageAccountAccessKey struct { func (x *SecretData_AzureStorageAccountAccessKey) Reset() { *x = SecretData_AzureStorageAccountAccessKey{} - mi := &file_proto_scan_result_proto_msgTypes[75] + mi := &file_proto_scan_result_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6989,7 +7049,7 @@ func (x *SecretData_AzureStorageAccountAccessKey) String() string { func (*SecretData_AzureStorageAccountAccessKey) ProtoMessage() {} func (x *SecretData_AzureStorageAccountAccessKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[75] + mi := &file_proto_scan_result_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7002,7 +7062,7 @@ func (x *SecretData_AzureStorageAccountAccessKey) ProtoReflect() protoreflect.Me // Deprecated: Use SecretData_AzureStorageAccountAccessKey.ProtoReflect.Descriptor instead. func (*SecretData_AzureStorageAccountAccessKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 6} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 7} } func (x *SecretData_AzureStorageAccountAccessKey) GetKey() string { @@ -7023,7 +7083,7 @@ type SecretData_PrivateKey struct { func (x *SecretData_PrivateKey) Reset() { *x = SecretData_PrivateKey{} - mi := &file_proto_scan_result_proto_msgTypes[76] + mi := &file_proto_scan_result_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7035,7 +7095,7 @@ func (x *SecretData_PrivateKey) String() string { func (*SecretData_PrivateKey) ProtoMessage() {} func (x *SecretData_PrivateKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[76] + mi := &file_proto_scan_result_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7048,7 +7108,7 @@ func (x *SecretData_PrivateKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_PrivateKey.ProtoReflect.Descriptor instead. func (*SecretData_PrivateKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 7} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 8} } func (x *SecretData_PrivateKey) GetBlock() string { @@ -7075,7 +7135,7 @@ type SecretData_AzureAccessToken struct { func (x *SecretData_AzureAccessToken) Reset() { *x = SecretData_AzureAccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[77] + mi := &file_proto_scan_result_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7087,7 +7147,7 @@ func (x *SecretData_AzureAccessToken) String() string { func (*SecretData_AzureAccessToken) ProtoMessage() {} func (x *SecretData_AzureAccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[77] + mi := &file_proto_scan_result_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7100,7 +7160,7 @@ func (x *SecretData_AzureAccessToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_AzureAccessToken.ProtoReflect.Descriptor instead. func (*SecretData_AzureAccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 8} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 9} } func (x *SecretData_AzureAccessToken) GetToken() string { @@ -7124,7 +7184,7 @@ type SecretData_Pgpass struct { func (x *SecretData_Pgpass) Reset() { *x = SecretData_Pgpass{} - mi := &file_proto_scan_result_proto_msgTypes[78] + mi := &file_proto_scan_result_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7136,7 +7196,7 @@ func (x *SecretData_Pgpass) String() string { func (*SecretData_Pgpass) ProtoMessage() {} func (x *SecretData_Pgpass) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[78] + mi := &file_proto_scan_result_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7149,7 +7209,7 @@ func (x *SecretData_Pgpass) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_Pgpass.ProtoReflect.Descriptor instead. func (*SecretData_Pgpass) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 9} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 10} } func (x *SecretData_Pgpass) GetHostname() string { @@ -7201,7 +7261,7 @@ type SecretData_MariaDBCredentials struct { func (x *SecretData_MariaDBCredentials) Reset() { *x = SecretData_MariaDBCredentials{} - mi := &file_proto_scan_result_proto_msgTypes[79] + mi := &file_proto_scan_result_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7213,7 +7273,7 @@ func (x *SecretData_MariaDBCredentials) String() string { func (*SecretData_MariaDBCredentials) ProtoMessage() {} func (x *SecretData_MariaDBCredentials) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[79] + mi := &file_proto_scan_result_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7226,7 +7286,7 @@ func (x *SecretData_MariaDBCredentials) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_MariaDBCredentials.ProtoReflect.Descriptor instead. func (*SecretData_MariaDBCredentials) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 10} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 11} } func (x *SecretData_MariaDBCredentials) GetHost() string { @@ -7274,7 +7334,7 @@ type SecretData_AzureIdentityToken struct { func (x *SecretData_AzureIdentityToken) Reset() { *x = SecretData_AzureIdentityToken{} - mi := &file_proto_scan_result_proto_msgTypes[80] + mi := &file_proto_scan_result_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7286,7 +7346,7 @@ func (x *SecretData_AzureIdentityToken) String() string { func (*SecretData_AzureIdentityToken) ProtoMessage() {} func (x *SecretData_AzureIdentityToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[80] + mi := &file_proto_scan_result_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7299,7 +7359,7 @@ func (x *SecretData_AzureIdentityToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_AzureIdentityToken.ProtoReflect.Descriptor instead. func (*SecretData_AzureIdentityToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 11} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 12} } func (x *SecretData_AzureIdentityToken) GetToken() string { @@ -7319,7 +7379,7 @@ type SecretData_OpenAIAPIKey struct { func (x *SecretData_OpenAIAPIKey) Reset() { *x = SecretData_OpenAIAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[81] + mi := &file_proto_scan_result_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7331,7 +7391,7 @@ func (x *SecretData_OpenAIAPIKey) String() string { func (*SecretData_OpenAIAPIKey) ProtoMessage() {} func (x *SecretData_OpenAIAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[81] + mi := &file_proto_scan_result_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7344,7 +7404,7 @@ func (x *SecretData_OpenAIAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_OpenAIAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_OpenAIAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 12} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 13} } func (x *SecretData_OpenAIAPIKey) GetKey() string { @@ -7365,7 +7425,7 @@ type SecretData_DockerHubPat struct { func (x *SecretData_DockerHubPat) Reset() { *x = SecretData_DockerHubPat{} - mi := &file_proto_scan_result_proto_msgTypes[82] + mi := &file_proto_scan_result_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7377,7 +7437,7 @@ func (x *SecretData_DockerHubPat) String() string { func (*SecretData_DockerHubPat) ProtoMessage() {} func (x *SecretData_DockerHubPat) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[82] + mi := &file_proto_scan_result_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7390,7 +7450,7 @@ func (x *SecretData_DockerHubPat) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_DockerHubPat.ProtoReflect.Descriptor instead. func (*SecretData_DockerHubPat) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 13} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 14} } func (x *SecretData_DockerHubPat) GetPat() string { @@ -7417,7 +7477,7 @@ type SecretData_GitlabPat struct { func (x *SecretData_GitlabPat) Reset() { *x = SecretData_GitlabPat{} - mi := &file_proto_scan_result_proto_msgTypes[83] + mi := &file_proto_scan_result_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7429,7 +7489,7 @@ func (x *SecretData_GitlabPat) String() string { func (*SecretData_GitlabPat) ProtoMessage() {} func (x *SecretData_GitlabPat) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[83] + mi := &file_proto_scan_result_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7442,7 +7502,7 @@ func (x *SecretData_GitlabPat) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GitlabPat.ProtoReflect.Descriptor instead. func (*SecretData_GitlabPat) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 14} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 15} } func (x *SecretData_GitlabPat) GetPat() string { @@ -7462,7 +7522,7 @@ type SecretData_SlackAppLevelToken struct { func (x *SecretData_SlackAppLevelToken) Reset() { *x = SecretData_SlackAppLevelToken{} - mi := &file_proto_scan_result_proto_msgTypes[84] + mi := &file_proto_scan_result_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7474,7 +7534,7 @@ func (x *SecretData_SlackAppLevelToken) String() string { func (*SecretData_SlackAppLevelToken) ProtoMessage() {} func (x *SecretData_SlackAppLevelToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[84] + mi := &file_proto_scan_result_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7487,7 +7547,7 @@ func (x *SecretData_SlackAppLevelToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_SlackAppLevelToken.ProtoReflect.Descriptor instead. func (*SecretData_SlackAppLevelToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 15} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 16} } func (x *SecretData_SlackAppLevelToken) GetToken() string { @@ -7507,7 +7567,7 @@ type SecretData_SlackAppConfigAccessToken struct { func (x *SecretData_SlackAppConfigAccessToken) Reset() { *x = SecretData_SlackAppConfigAccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[85] + mi := &file_proto_scan_result_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7519,7 +7579,7 @@ func (x *SecretData_SlackAppConfigAccessToken) String() string { func (*SecretData_SlackAppConfigAccessToken) ProtoMessage() {} func (x *SecretData_SlackAppConfigAccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[85] + mi := &file_proto_scan_result_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7532,7 +7592,7 @@ func (x *SecretData_SlackAppConfigAccessToken) ProtoReflect() protoreflect.Messa // Deprecated: Use SecretData_SlackAppConfigAccessToken.ProtoReflect.Descriptor instead. func (*SecretData_SlackAppConfigAccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 16} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 17} } func (x *SecretData_SlackAppConfigAccessToken) GetToken() string { @@ -7552,7 +7612,7 @@ type SecretData_SlackAppConfigRefreshToken struct { func (x *SecretData_SlackAppConfigRefreshToken) Reset() { *x = SecretData_SlackAppConfigRefreshToken{} - mi := &file_proto_scan_result_proto_msgTypes[86] + mi := &file_proto_scan_result_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7564,7 +7624,7 @@ func (x *SecretData_SlackAppConfigRefreshToken) String() string { func (*SecretData_SlackAppConfigRefreshToken) ProtoMessage() {} func (x *SecretData_SlackAppConfigRefreshToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[86] + mi := &file_proto_scan_result_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7577,7 +7637,7 @@ func (x *SecretData_SlackAppConfigRefreshToken) ProtoReflect() protoreflect.Mess // Deprecated: Use SecretData_SlackAppConfigRefreshToken.ProtoReflect.Descriptor instead. func (*SecretData_SlackAppConfigRefreshToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 17} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 18} } func (x *SecretData_SlackAppConfigRefreshToken) GetToken() string { @@ -7597,7 +7657,7 @@ type SecretData_PostmanAPIKey struct { func (x *SecretData_PostmanAPIKey) Reset() { *x = SecretData_PostmanAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[87] + mi := &file_proto_scan_result_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7609,7 +7669,7 @@ func (x *SecretData_PostmanAPIKey) String() string { func (*SecretData_PostmanAPIKey) ProtoMessage() {} func (x *SecretData_PostmanAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[87] + mi := &file_proto_scan_result_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7622,7 +7682,7 @@ func (x *SecretData_PostmanAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_PostmanAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_PostmanAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 18} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 19} } func (x *SecretData_PostmanAPIKey) GetKey() string { @@ -7642,7 +7702,7 @@ type SecretData_PostmanCollectionAccessToken struct { func (x *SecretData_PostmanCollectionAccessToken) Reset() { *x = SecretData_PostmanCollectionAccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[88] + mi := &file_proto_scan_result_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7654,7 +7714,7 @@ func (x *SecretData_PostmanCollectionAccessToken) String() string { func (*SecretData_PostmanCollectionAccessToken) ProtoMessage() {} func (x *SecretData_PostmanCollectionAccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[88] + mi := &file_proto_scan_result_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7667,7 +7727,7 @@ func (x *SecretData_PostmanCollectionAccessToken) ProtoReflect() protoreflect.Me // Deprecated: Use SecretData_PostmanCollectionAccessToken.ProtoReflect.Descriptor instead. func (*SecretData_PostmanCollectionAccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 19} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 20} } func (x *SecretData_PostmanCollectionAccessToken) GetKey() string { @@ -7687,7 +7747,7 @@ type SecretData_DigitalOceanAPIToken struct { func (x *SecretData_DigitalOceanAPIToken) Reset() { *x = SecretData_DigitalOceanAPIToken{} - mi := &file_proto_scan_result_proto_msgTypes[89] + mi := &file_proto_scan_result_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7699,7 +7759,7 @@ func (x *SecretData_DigitalOceanAPIToken) String() string { func (*SecretData_DigitalOceanAPIToken) ProtoMessage() {} func (x *SecretData_DigitalOceanAPIToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[89] + mi := &file_proto_scan_result_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7712,7 +7772,7 @@ func (x *SecretData_DigitalOceanAPIToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_DigitalOceanAPIToken.ProtoReflect.Descriptor instead. func (*SecretData_DigitalOceanAPIToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 20} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 21} } func (x *SecretData_DigitalOceanAPIToken) GetKey() string { @@ -7732,7 +7792,7 @@ type SecretData_CratesIOAPIToken struct { func (x *SecretData_CratesIOAPIToken) Reset() { *x = SecretData_CratesIOAPIToken{} - mi := &file_proto_scan_result_proto_msgTypes[90] + mi := &file_proto_scan_result_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7744,7 +7804,7 @@ func (x *SecretData_CratesIOAPIToken) String() string { func (*SecretData_CratesIOAPIToken) ProtoMessage() {} func (x *SecretData_CratesIOAPIToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[90] + mi := &file_proto_scan_result_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7757,7 +7817,7 @@ func (x *SecretData_CratesIOAPIToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_CratesIOAPIToken.ProtoReflect.Descriptor instead. func (*SecretData_CratesIOAPIToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 21} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 22} } func (x *SecretData_CratesIOAPIToken) GetToken() string { @@ -7777,7 +7837,7 @@ type SecretData_GithubAppRefreshToken struct { func (x *SecretData_GithubAppRefreshToken) Reset() { *x = SecretData_GithubAppRefreshToken{} - mi := &file_proto_scan_result_proto_msgTypes[91] + mi := &file_proto_scan_result_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7789,7 +7849,7 @@ func (x *SecretData_GithubAppRefreshToken) String() string { func (*SecretData_GithubAppRefreshToken) ProtoMessage() {} func (x *SecretData_GithubAppRefreshToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[91] + mi := &file_proto_scan_result_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7802,7 +7862,7 @@ func (x *SecretData_GithubAppRefreshToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GithubAppRefreshToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubAppRefreshToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 22} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 23} } func (x *SecretData_GithubAppRefreshToken) GetToken() string { @@ -7822,7 +7882,7 @@ type SecretData_GithubAppServerToServerToken struct { func (x *SecretData_GithubAppServerToServerToken) Reset() { *x = SecretData_GithubAppServerToServerToken{} - mi := &file_proto_scan_result_proto_msgTypes[92] + mi := &file_proto_scan_result_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7834,7 +7894,7 @@ func (x *SecretData_GithubAppServerToServerToken) String() string { func (*SecretData_GithubAppServerToServerToken) ProtoMessage() {} func (x *SecretData_GithubAppServerToServerToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[92] + mi := &file_proto_scan_result_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7847,7 +7907,7 @@ func (x *SecretData_GithubAppServerToServerToken) ProtoReflect() protoreflect.Me // Deprecated: Use SecretData_GithubAppServerToServerToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubAppServerToServerToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 23} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 24} } func (x *SecretData_GithubAppServerToServerToken) GetToken() string { @@ -7867,7 +7927,7 @@ type SecretData_GithubClassicPersonalAccessToken struct { func (x *SecretData_GithubClassicPersonalAccessToken) Reset() { *x = SecretData_GithubClassicPersonalAccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[93] + mi := &file_proto_scan_result_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7879,7 +7939,7 @@ func (x *SecretData_GithubClassicPersonalAccessToken) String() string { func (*SecretData_GithubClassicPersonalAccessToken) ProtoMessage() {} func (x *SecretData_GithubClassicPersonalAccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[93] + mi := &file_proto_scan_result_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7892,7 +7952,7 @@ func (x *SecretData_GithubClassicPersonalAccessToken) ProtoReflect() protoreflec // Deprecated: Use SecretData_GithubClassicPersonalAccessToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubClassicPersonalAccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 24} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 25} } func (x *SecretData_GithubClassicPersonalAccessToken) GetToken() string { @@ -7912,7 +7972,7 @@ type SecretData_GithubFineGrainedPersonalAccessToken struct { func (x *SecretData_GithubFineGrainedPersonalAccessToken) Reset() { *x = SecretData_GithubFineGrainedPersonalAccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[94] + mi := &file_proto_scan_result_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7924,7 +7984,7 @@ func (x *SecretData_GithubFineGrainedPersonalAccessToken) String() string { func (*SecretData_GithubFineGrainedPersonalAccessToken) ProtoMessage() {} func (x *SecretData_GithubFineGrainedPersonalAccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[94] + mi := &file_proto_scan_result_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7937,7 +7997,7 @@ func (x *SecretData_GithubFineGrainedPersonalAccessToken) ProtoReflect() protore // Deprecated: Use SecretData_GithubFineGrainedPersonalAccessToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubFineGrainedPersonalAccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 25} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 26} } func (x *SecretData_GithubFineGrainedPersonalAccessToken) GetToken() string { @@ -7957,7 +8017,7 @@ type SecretData_GithubOAuthToken struct { func (x *SecretData_GithubOAuthToken) Reset() { *x = SecretData_GithubOAuthToken{} - mi := &file_proto_scan_result_proto_msgTypes[95] + mi := &file_proto_scan_result_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7969,7 +8029,7 @@ func (x *SecretData_GithubOAuthToken) String() string { func (*SecretData_GithubOAuthToken) ProtoMessage() {} func (x *SecretData_GithubOAuthToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[95] + mi := &file_proto_scan_result_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7982,7 +8042,7 @@ func (x *SecretData_GithubOAuthToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GithubOAuthToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubOAuthToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 26} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 27} } func (x *SecretData_GithubOAuthToken) GetToken() string { @@ -8002,7 +8062,7 @@ type SecretData_GithubAppUserToServerToken struct { func (x *SecretData_GithubAppUserToServerToken) Reset() { *x = SecretData_GithubAppUserToServerToken{} - mi := &file_proto_scan_result_proto_msgTypes[96] + mi := &file_proto_scan_result_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8014,7 +8074,7 @@ func (x *SecretData_GithubAppUserToServerToken) String() string { func (*SecretData_GithubAppUserToServerToken) ProtoMessage() {} func (x *SecretData_GithubAppUserToServerToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[96] + mi := &file_proto_scan_result_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8027,7 +8087,7 @@ func (x *SecretData_GithubAppUserToServerToken) ProtoReflect() protoreflect.Mess // Deprecated: Use SecretData_GithubAppUserToServerToken.ProtoReflect.Descriptor instead. func (*SecretData_GithubAppUserToServerToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 27} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 28} } func (x *SecretData_GithubAppUserToServerToken) GetToken() string { @@ -8047,7 +8107,7 @@ type SecretData_PyPIAPIToken struct { func (x *SecretData_PyPIAPIToken) Reset() { *x = SecretData_PyPIAPIToken{} - mi := &file_proto_scan_result_proto_msgTypes[97] + mi := &file_proto_scan_result_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8059,7 +8119,7 @@ func (x *SecretData_PyPIAPIToken) String() string { func (*SecretData_PyPIAPIToken) ProtoMessage() {} func (x *SecretData_PyPIAPIToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[97] + mi := &file_proto_scan_result_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8072,7 +8132,7 @@ func (x *SecretData_PyPIAPIToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_PyPIAPIToken.ProtoReflect.Descriptor instead. func (*SecretData_PyPIAPIToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 28} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 29} } func (x *SecretData_PyPIAPIToken) GetToken() string { @@ -8092,7 +8152,7 @@ type SecretData_TinkKeyset struct { func (x *SecretData_TinkKeyset) Reset() { *x = SecretData_TinkKeyset{} - mi := &file_proto_scan_result_proto_msgTypes[98] + mi := &file_proto_scan_result_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8104,7 +8164,7 @@ func (x *SecretData_TinkKeyset) String() string { func (*SecretData_TinkKeyset) ProtoMessage() {} func (x *SecretData_TinkKeyset) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[98] + mi := &file_proto_scan_result_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8117,7 +8177,7 @@ func (x *SecretData_TinkKeyset) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_TinkKeyset.ProtoReflect.Descriptor instead. func (*SecretData_TinkKeyset) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 29} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 30} } func (x *SecretData_TinkKeyset) GetContent() string { @@ -8137,7 +8197,7 @@ type SecretData_HashiCorpVaultToken struct { func (x *SecretData_HashiCorpVaultToken) Reset() { *x = SecretData_HashiCorpVaultToken{} - mi := &file_proto_scan_result_proto_msgTypes[99] + mi := &file_proto_scan_result_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8149,7 +8209,7 @@ func (x *SecretData_HashiCorpVaultToken) String() string { func (*SecretData_HashiCorpVaultToken) ProtoMessage() {} func (x *SecretData_HashiCorpVaultToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[99] + mi := &file_proto_scan_result_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8162,7 +8222,7 @@ func (x *SecretData_HashiCorpVaultToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_HashiCorpVaultToken.ProtoReflect.Descriptor instead. func (*SecretData_HashiCorpVaultToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 30} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 31} } func (x *SecretData_HashiCorpVaultToken) GetToken() string { @@ -8184,7 +8244,7 @@ type SecretData_HashiCorpVaultAppRoleCredentials struct { func (x *SecretData_HashiCorpVaultAppRoleCredentials) Reset() { *x = SecretData_HashiCorpVaultAppRoleCredentials{} - mi := &file_proto_scan_result_proto_msgTypes[100] + mi := &file_proto_scan_result_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8196,7 +8256,7 @@ func (x *SecretData_HashiCorpVaultAppRoleCredentials) String() string { func (*SecretData_HashiCorpVaultAppRoleCredentials) ProtoMessage() {} func (x *SecretData_HashiCorpVaultAppRoleCredentials) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[100] + mi := &file_proto_scan_result_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8209,7 +8269,7 @@ func (x *SecretData_HashiCorpVaultAppRoleCredentials) ProtoReflect() protoreflec // Deprecated: Use SecretData_HashiCorpVaultAppRoleCredentials.ProtoReflect.Descriptor instead. func (*SecretData_HashiCorpVaultAppRoleCredentials) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 31} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 32} } func (x *SecretData_HashiCorpVaultAppRoleCredentials) GetRoleId() string { @@ -8243,7 +8303,7 @@ type SecretData_GCPAPIKey struct { func (x *SecretData_GCPAPIKey) Reset() { *x = SecretData_GCPAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[101] + mi := &file_proto_scan_result_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8255,7 +8315,7 @@ func (x *SecretData_GCPAPIKey) String() string { func (*SecretData_GCPAPIKey) ProtoMessage() {} func (x *SecretData_GCPAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[101] + mi := &file_proto_scan_result_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8268,7 +8328,7 @@ func (x *SecretData_GCPAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GCPAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_GCPAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 32} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 33} } func (x *SecretData_GCPAPIKey) GetKey() string { @@ -8290,7 +8350,7 @@ type SecretData_HuggingfaceAPIKey struct { func (x *SecretData_HuggingfaceAPIKey) Reset() { *x = SecretData_HuggingfaceAPIKey{} - mi := &file_proto_scan_result_proto_msgTypes[102] + mi := &file_proto_scan_result_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8302,7 +8362,7 @@ func (x *SecretData_HuggingfaceAPIKey) String() string { func (*SecretData_HuggingfaceAPIKey) ProtoMessage() {} func (x *SecretData_HuggingfaceAPIKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[102] + mi := &file_proto_scan_result_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8315,7 +8375,7 @@ func (x *SecretData_HuggingfaceAPIKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_HuggingfaceAPIKey.ProtoReflect.Descriptor instead. func (*SecretData_HuggingfaceAPIKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 33} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 34} } func (x *SecretData_HuggingfaceAPIKey) GetKey() string { @@ -8350,7 +8410,7 @@ type SecretData_HashiCorpCloudPlatformCredentials struct { func (x *SecretData_HashiCorpCloudPlatformCredentials) Reset() { *x = SecretData_HashiCorpCloudPlatformCredentials{} - mi := &file_proto_scan_result_proto_msgTypes[103] + mi := &file_proto_scan_result_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8362,7 +8422,7 @@ func (x *SecretData_HashiCorpCloudPlatformCredentials) String() string { func (*SecretData_HashiCorpCloudPlatformCredentials) ProtoMessage() {} func (x *SecretData_HashiCorpCloudPlatformCredentials) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[103] + mi := &file_proto_scan_result_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8375,7 +8435,7 @@ func (x *SecretData_HashiCorpCloudPlatformCredentials) ProtoReflect() protorefle // Deprecated: Use SecretData_HashiCorpCloudPlatformCredentials.ProtoReflect.Descriptor instead. func (*SecretData_HashiCorpCloudPlatformCredentials) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 34} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 35} } func (x *SecretData_HashiCorpCloudPlatformCredentials) GetClientId() string { @@ -8411,7 +8471,7 @@ type SecretData_HashiCorpCloudPlatformToken struct { func (x *SecretData_HashiCorpCloudPlatformToken) Reset() { *x = SecretData_HashiCorpCloudPlatformToken{} - mi := &file_proto_scan_result_proto_msgTypes[104] + mi := &file_proto_scan_result_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8423,7 +8483,7 @@ func (x *SecretData_HashiCorpCloudPlatformToken) String() string { func (*SecretData_HashiCorpCloudPlatformToken) ProtoMessage() {} func (x *SecretData_HashiCorpCloudPlatformToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[104] + mi := &file_proto_scan_result_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8436,7 +8496,7 @@ func (x *SecretData_HashiCorpCloudPlatformToken) ProtoReflect() protoreflect.Mes // Deprecated: Use SecretData_HashiCorpCloudPlatformToken.ProtoReflect.Descriptor instead. func (*SecretData_HashiCorpCloudPlatformToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 35} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 36} } func (x *SecretData_HashiCorpCloudPlatformToken) GetToken() string { @@ -8512,7 +8572,7 @@ type SecretData_StripeSecretKey struct { func (x *SecretData_StripeSecretKey) Reset() { *x = SecretData_StripeSecretKey{} - mi := &file_proto_scan_result_proto_msgTypes[105] + mi := &file_proto_scan_result_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8524,7 +8584,7 @@ func (x *SecretData_StripeSecretKey) String() string { func (*SecretData_StripeSecretKey) ProtoMessage() {} func (x *SecretData_StripeSecretKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[105] + mi := &file_proto_scan_result_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8537,7 +8597,7 @@ func (x *SecretData_StripeSecretKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_StripeSecretKey.ProtoReflect.Descriptor instead. func (*SecretData_StripeSecretKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 36} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 37} } func (x *SecretData_StripeSecretKey) GetKey() string { @@ -8557,7 +8617,7 @@ type SecretData_StripeRestrictedKey struct { func (x *SecretData_StripeRestrictedKey) Reset() { *x = SecretData_StripeRestrictedKey{} - mi := &file_proto_scan_result_proto_msgTypes[106] + mi := &file_proto_scan_result_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8569,7 +8629,7 @@ func (x *SecretData_StripeRestrictedKey) String() string { func (*SecretData_StripeRestrictedKey) ProtoMessage() {} func (x *SecretData_StripeRestrictedKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[106] + mi := &file_proto_scan_result_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8582,7 +8642,7 @@ func (x *SecretData_StripeRestrictedKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_StripeRestrictedKey.ProtoReflect.Descriptor instead. func (*SecretData_StripeRestrictedKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 37} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 38} } func (x *SecretData_StripeRestrictedKey) GetKey() string { @@ -8602,7 +8662,7 @@ type SecretData_StripeWebhookSecret struct { func (x *SecretData_StripeWebhookSecret) Reset() { *x = SecretData_StripeWebhookSecret{} - mi := &file_proto_scan_result_proto_msgTypes[107] + mi := &file_proto_scan_result_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8614,7 +8674,7 @@ func (x *SecretData_StripeWebhookSecret) String() string { func (*SecretData_StripeWebhookSecret) ProtoMessage() {} func (x *SecretData_StripeWebhookSecret) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[107] + mi := &file_proto_scan_result_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8627,7 +8687,7 @@ func (x *SecretData_StripeWebhookSecret) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_StripeWebhookSecret.ProtoReflect.Descriptor instead. func (*SecretData_StripeWebhookSecret) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 38} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 39} } func (x *SecretData_StripeWebhookSecret) GetKey() string { @@ -8652,7 +8712,7 @@ type SecretData_GCPOAuth2ClientCredentials struct { func (x *SecretData_GCPOAuth2ClientCredentials) Reset() { *x = SecretData_GCPOAuth2ClientCredentials{} - mi := &file_proto_scan_result_proto_msgTypes[108] + mi := &file_proto_scan_result_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8664,7 +8724,7 @@ func (x *SecretData_GCPOAuth2ClientCredentials) String() string { func (*SecretData_GCPOAuth2ClientCredentials) ProtoMessage() {} func (x *SecretData_GCPOAuth2ClientCredentials) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[108] + mi := &file_proto_scan_result_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8677,7 +8737,7 @@ func (x *SecretData_GCPOAuth2ClientCredentials) ProtoReflect() protoreflect.Mess // Deprecated: Use SecretData_GCPOAuth2ClientCredentials.ProtoReflect.Descriptor instead. func (*SecretData_GCPOAuth2ClientCredentials) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 39} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 40} } func (x *SecretData_GCPOAuth2ClientCredentials) GetId() string { @@ -8706,7 +8766,7 @@ type SecretData_GCPOAuth2AccessToken struct { func (x *SecretData_GCPOAuth2AccessToken) Reset() { *x = SecretData_GCPOAuth2AccessToken{} - mi := &file_proto_scan_result_proto_msgTypes[109] + mi := &file_proto_scan_result_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8718,7 +8778,7 @@ func (x *SecretData_GCPOAuth2AccessToken) String() string { func (*SecretData_GCPOAuth2AccessToken) ProtoMessage() {} func (x *SecretData_GCPOAuth2AccessToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[109] + mi := &file_proto_scan_result_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8731,7 +8791,7 @@ func (x *SecretData_GCPOAuth2AccessToken) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GCPOAuth2AccessToken.ProtoReflect.Descriptor instead. func (*SecretData_GCPOAuth2AccessToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 40} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 41} } func (x *SecretData_GCPOAuth2AccessToken) GetToken() string { @@ -8752,7 +8812,7 @@ type SecretData_GCSHmacKey struct { func (x *SecretData_GCSHmacKey) Reset() { *x = SecretData_GCSHmacKey{} - mi := &file_proto_scan_result_proto_msgTypes[110] + mi := &file_proto_scan_result_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8764,7 +8824,7 @@ func (x *SecretData_GCSHmacKey) String() string { func (*SecretData_GCSHmacKey) ProtoMessage() {} func (x *SecretData_GCSHmacKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[110] + mi := &file_proto_scan_result_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8777,7 +8837,7 @@ func (x *SecretData_GCSHmacKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_GCSHmacKey.ProtoReflect.Descriptor instead. func (*SecretData_GCSHmacKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 41} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 42} } func (x *SecretData_GCSHmacKey) GetAccessId() string { @@ -8809,7 +8869,7 @@ type SecretData_MysqlMyloginSection struct { func (x *SecretData_MysqlMyloginSection) Reset() { *x = SecretData_MysqlMyloginSection{} - mi := &file_proto_scan_result_proto_msgTypes[111] + mi := &file_proto_scan_result_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8821,7 +8881,7 @@ func (x *SecretData_MysqlMyloginSection) String() string { func (*SecretData_MysqlMyloginSection) ProtoMessage() {} func (x *SecretData_MysqlMyloginSection) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[111] + mi := &file_proto_scan_result_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8834,7 +8894,7 @@ func (x *SecretData_MysqlMyloginSection) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_MysqlMyloginSection.ProtoReflect.Descriptor instead. func (*SecretData_MysqlMyloginSection) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 42} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 43} } func (x *SecretData_MysqlMyloginSection) GetSectionName() string { @@ -8890,7 +8950,7 @@ type SecretData_VapidKey struct { func (x *SecretData_VapidKey) Reset() { *x = SecretData_VapidKey{} - mi := &file_proto_scan_result_proto_msgTypes[112] + mi := &file_proto_scan_result_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8902,7 +8962,7 @@ func (x *SecretData_VapidKey) String() string { func (*SecretData_VapidKey) ProtoMessage() {} func (x *SecretData_VapidKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[112] + mi := &file_proto_scan_result_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8915,7 +8975,7 @@ func (x *SecretData_VapidKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_VapidKey.ProtoReflect.Descriptor instead. func (*SecretData_VapidKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 43} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 44} } func (x *SecretData_VapidKey) GetPrivateB64() string { @@ -8957,7 +9017,7 @@ type SecretData_OnePasswordConnectToken struct { func (x *SecretData_OnePasswordConnectToken) Reset() { *x = SecretData_OnePasswordConnectToken{} - mi := &file_proto_scan_result_proto_msgTypes[113] + mi := &file_proto_scan_result_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8969,7 +9029,7 @@ func (x *SecretData_OnePasswordConnectToken) String() string { func (*SecretData_OnePasswordConnectToken) ProtoMessage() {} func (x *SecretData_OnePasswordConnectToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[113] + mi := &file_proto_scan_result_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8982,7 +9042,7 @@ func (x *SecretData_OnePasswordConnectToken) ProtoReflect() protoreflect.Message // Deprecated: Use SecretData_OnePasswordConnectToken.ProtoReflect.Descriptor instead. func (*SecretData_OnePasswordConnectToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 44} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 45} } func (x *SecretData_OnePasswordConnectToken) GetDeviceUuid() string { @@ -9051,7 +9111,7 @@ type SecretData_OnePasswordSecretKey struct { func (x *SecretData_OnePasswordSecretKey) Reset() { *x = SecretData_OnePasswordSecretKey{} - mi := &file_proto_scan_result_proto_msgTypes[114] + mi := &file_proto_scan_result_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9063,7 +9123,7 @@ func (x *SecretData_OnePasswordSecretKey) String() string { func (*SecretData_OnePasswordSecretKey) ProtoMessage() {} func (x *SecretData_OnePasswordSecretKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[114] + mi := &file_proto_scan_result_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9076,7 +9136,7 @@ func (x *SecretData_OnePasswordSecretKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_OnePasswordSecretKey.ProtoReflect.Descriptor instead. func (*SecretData_OnePasswordSecretKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 45} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 46} } func (x *SecretData_OnePasswordSecretKey) GetKey() string { @@ -9096,7 +9156,7 @@ type SecretData_OnePasswordServiceToken struct { func (x *SecretData_OnePasswordServiceToken) Reset() { *x = SecretData_OnePasswordServiceToken{} - mi := &file_proto_scan_result_proto_msgTypes[115] + mi := &file_proto_scan_result_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9108,7 +9168,7 @@ func (x *SecretData_OnePasswordServiceToken) String() string { func (*SecretData_OnePasswordServiceToken) ProtoMessage() {} func (x *SecretData_OnePasswordServiceToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[115] + mi := &file_proto_scan_result_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9121,7 +9181,7 @@ func (x *SecretData_OnePasswordServiceToken) ProtoReflect() protoreflect.Message // Deprecated: Use SecretData_OnePasswordServiceToken.ProtoReflect.Descriptor instead. func (*SecretData_OnePasswordServiceToken) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 46} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 47} } func (x *SecretData_OnePasswordServiceToken) GetKey() string { @@ -9141,7 +9201,7 @@ type SecretData_OnePasswordRecoveryCode struct { func (x *SecretData_OnePasswordRecoveryCode) Reset() { *x = SecretData_OnePasswordRecoveryCode{} - mi := &file_proto_scan_result_proto_msgTypes[116] + mi := &file_proto_scan_result_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9153,7 +9213,7 @@ func (x *SecretData_OnePasswordRecoveryCode) String() string { func (*SecretData_OnePasswordRecoveryCode) ProtoMessage() {} func (x *SecretData_OnePasswordRecoveryCode) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[116] + mi := &file_proto_scan_result_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9166,7 +9226,7 @@ func (x *SecretData_OnePasswordRecoveryCode) ProtoReflect() protoreflect.Message // Deprecated: Use SecretData_OnePasswordRecoveryCode.ProtoReflect.Descriptor instead. func (*SecretData_OnePasswordRecoveryCode) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 47} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 48} } func (x *SecretData_OnePasswordRecoveryCode) GetKey() string { @@ -9187,7 +9247,7 @@ type SecretData_AwsAccessKeyCredentials struct { func (x *SecretData_AwsAccessKeyCredentials) Reset() { *x = SecretData_AwsAccessKeyCredentials{} - mi := &file_proto_scan_result_proto_msgTypes[117] + mi := &file_proto_scan_result_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9199,7 +9259,7 @@ func (x *SecretData_AwsAccessKeyCredentials) String() string { func (*SecretData_AwsAccessKeyCredentials) ProtoMessage() {} func (x *SecretData_AwsAccessKeyCredentials) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[117] + mi := &file_proto_scan_result_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9212,7 +9272,7 @@ func (x *SecretData_AwsAccessKeyCredentials) ProtoReflect() protoreflect.Message // Deprecated: Use SecretData_AwsAccessKeyCredentials.ProtoReflect.Descriptor instead. func (*SecretData_AwsAccessKeyCredentials) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 48} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 49} } func (x *SecretData_AwsAccessKeyCredentials) GetAccessId() string { @@ -9239,7 +9299,7 @@ type SecretData_ReCaptchaKey struct { func (x *SecretData_ReCaptchaKey) Reset() { *x = SecretData_ReCaptchaKey{} - mi := &file_proto_scan_result_proto_msgTypes[118] + mi := &file_proto_scan_result_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9251,7 +9311,7 @@ func (x *SecretData_ReCaptchaKey) String() string { func (*SecretData_ReCaptchaKey) ProtoMessage() {} func (x *SecretData_ReCaptchaKey) ProtoReflect() protoreflect.Message { - mi := &file_proto_scan_result_proto_msgTypes[118] + mi := &file_proto_scan_result_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9264,7 +9324,7 @@ func (x *SecretData_ReCaptchaKey) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretData_ReCaptchaKey.ProtoReflect.Descriptor instead. func (*SecretData_ReCaptchaKey) Descriptor() ([]byte, []int) { - return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 49} + return file_proto_scan_result_proto_rawDescGZIP(), []int{56, 50} } func (x *SecretData_ReCaptchaKey) GetSecret() string { @@ -10150,7 +10210,7 @@ var file_proto_scan_result_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc3, 0x42, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x72, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa2, 0x43, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x06, 0x67, 0x63, 0x70, 0x73, 0x61, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x53, @@ -10446,369 +10506,375 @@ var file_proto_scan_result_proto_rawDesc = []byte{ 0x68, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x4b, 0x65, 0x79, 0x48, 0x00, - 0x52, 0x0c, 0x72, 0x65, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x4b, 0x65, 0x79, 0x1a, 0xb0, - 0x03, 0x0a, 0x06, 0x47, 0x43, 0x50, 0x53, 0x41, 0x4b, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, - 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, 0x43, - 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, 0x39, - 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x76, 0x65, - 0x72, 0x73, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x1a, 0x2c, 0x0a, 0x18, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, - 0x28, 0x0a, 0x14, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x24, 0x0a, 0x10, 0x50, 0x65, 0x72, - 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, - 0x21, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x6b, 0x58, 0x41, 0x49, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x1a, 0x2b, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x6b, 0x58, 0x41, 0x49, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, - 0x30, 0x0a, 0x1c, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x1a, 0x34, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x03, 0x64, 0x65, 0x72, 0x1a, 0x28, 0x0a, 0x10, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x1a, 0x8c, 0x01, 0x0a, 0x06, 0x50, 0x67, 0x70, 0x61, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x1a, 0x86, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x69, 0x61, 0x44, 0x42, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2a, 0x0a, 0x12, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x20, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x41, - 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x3c, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x6b, 0x65, - 0x72, 0x48, 0x75, 0x62, 0x50, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x0a, 0x09, 0x47, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x50, - 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x70, 0x61, 0x74, 0x1a, 0x2a, 0x0a, 0x12, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x52, 0x0c, 0x72, 0x65, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x3b, + 0x0a, 0x09, 0x6a, 0x77, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x34, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x57, 0x54, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, + 0x00, 0x52, 0x08, 0x6a, 0x77, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0xb0, 0x03, 0x0a, 0x06, + 0x47, 0x43, 0x50, 0x53, 0x41, 0x4b, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, + 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x35, + 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, + 0x74, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, + 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x1a, 0x20, + 0x0a, 0x08, 0x4a, 0x57, 0x54, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x1a, 0x31, 0x0a, 0x19, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x1a, 0x32, 0x0a, 0x1a, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x21, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x74, 0x6d, - 0x61, 0x6e, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x30, 0x0a, 0x1c, 0x50, 0x6f, - 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x28, 0x0a, 0x14, - 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x41, 0x50, 0x49, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x28, 0x0a, 0x10, 0x43, 0x72, 0x61, 0x74, 0x65, 0x73, - 0x49, 0x4f, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x1a, 0x2c, 0x0a, 0x18, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x28, + 0x0a, 0x14, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x24, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x21, + 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x6b, 0x58, 0x41, 0x49, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x1a, 0x2b, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x6b, 0x58, 0x41, 0x49, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x30, + 0x0a, 0x1c, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x1a, 0x34, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x64, 0x65, 0x72, 0x1a, 0x28, 0x0a, 0x10, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x1a, 0x2d, 0x0a, 0x15, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x1a, 0x8c, 0x01, 0x0a, 0x06, 0x50, 0x67, 0x70, 0x61, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, + 0x86, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x69, 0x61, 0x44, 0x42, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2a, 0x0a, 0x12, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x20, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x41, 0x50, + 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x3c, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, + 0x48, 0x75, 0x62, 0x50, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x0a, 0x09, 0x47, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x50, 0x61, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x70, 0x61, 0x74, 0x1a, 0x2a, 0x0a, 0x12, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, - 0x34, 0x0a, 0x1c, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x38, 0x0a, 0x20, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x31, 0x0a, 0x19, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x1a, 0x32, 0x0a, 0x1a, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x21, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x74, 0x6d, 0x61, + 0x6e, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x30, 0x0a, 0x1c, 0x50, 0x6f, 0x73, + 0x74, 0x6d, 0x61, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x28, 0x0a, 0x14, 0x44, + 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x41, 0x50, 0x49, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x28, 0x0a, 0x10, 0x43, 0x72, 0x61, 0x74, 0x65, 0x73, 0x49, + 0x4f, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, - 0x3c, 0x0a, 0x24, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, - 0x69, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x28, 0x0a, - 0x10, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x32, 0x0a, 0x1a, 0x47, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x41, 0x70, 0x70, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x24, 0x0a, 0x0c, 0x50, - 0x79, 0x50, 0x49, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x1a, 0x26, 0x0a, 0x0a, 0x54, 0x69, 0x6e, 0x6b, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x2b, 0x0a, 0x13, 0x48, 0x61, 0x73, - 0x68, 0x69, 0x43, 0x6f, 0x72, 0x70, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x2d, 0x0a, 0x15, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x34, + 0x0a, 0x1c, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x38, 0x0a, 0x20, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x63, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x3c, + 0x0a, 0x24, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, + 0x6e, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x28, 0x0a, 0x10, + 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x68, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x68, 0x69, 0x43, - 0x6f, 0x72, 0x70, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x70, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x1a, 0x1d, 0x0a, 0x09, 0x47, 0x43, 0x50, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, - 0x67, 0x0a, 0x11, 0x48, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x41, 0x50, - 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x69, - 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, - 0x6e, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x65, 0x0a, 0x21, 0x48, 0x61, 0x73, 0x68, - 0x69, 0x43, 0x6f, 0x72, 0x70, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, - 0xbd, 0x02, 0x0a, 0x1b, 0x48, 0x61, 0x73, 0x68, 0x69, 0x43, 0x6f, 0x72, 0x70, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, - 0x70, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x1a, - 0x23, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, - 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x27, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x27, 0x0a, - 0x13, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x44, 0x0a, 0x1a, 0x47, 0x43, 0x50, 0x4f, 0x41, 0x75, - 0x74, 0x68, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x2c, 0x0a, 0x14, - 0x47, 0x43, 0x50, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x32, 0x0a, 0x1a, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x41, 0x70, 0x70, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x41, 0x0a, 0x0a, 0x47, 0x43, - 0x53, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0xa8, 0x01, - 0x0a, 0x13, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x4d, 0x79, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x4a, 0x0a, 0x08, 0x56, 0x61, 0x70, 0x69, - 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, - 0x62, 0x36, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x42, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, - 0x62, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x42, 0x36, 0x34, 0x1a, 0xb0, 0x02, 0x0a, 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x55, 0x75, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x76, 0x12, 0x22, - 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4b, 0x65, 0x79, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x73, - 0x61, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x53, 0x61, 0x6c, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x28, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x1a, 0x2b, 0x0a, 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x2b, - 0x0a, 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x4e, 0x0a, 0x17, 0x41, - 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x26, 0x0a, 0x0c, 0x52, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xf8, 0x01, - 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, - 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, - 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x69, 0x0a, - 0x10, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x1a, - 0x02, 0x08, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, - 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, - 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x22, 0xc8, 0x02, 0x0a, 0x08, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, - 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x62, 0x0a, 0x1b, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, - 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, - 0x74, 0x68, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, - 0x52, 0x18, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, - 0x62, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, - 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, - 0x62, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x22, 0x6a, 0x0a, 0x18, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, - 0x69, 0x74, 0x68, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x0c, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, - 0x29, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x10, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xb3, 0x02, 0x0a, 0x16, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x0e, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x11, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x42, 0x61, - 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0f, 0x62, 0x61, - 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x44, 0x0a, - 0x07, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x4f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x39, 0x0a, 0x0b, 0x4f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x67, - 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x12, 0x3a, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, - 0x42, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x10, 0x42, 0x61, 0x73, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x22, - 0xb8, 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x66, 0x66, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2a, 0xf7, 0x01, 0x0a, 0x10, 0x56, - 0x65, 0x78, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x21, 0x0a, 0x1d, 0x56, 0x45, 0x58, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, - 0x1b, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x27, - 0x0a, 0x23, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, - 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x35, 0x0a, 0x31, 0x56, 0x55, 0x4c, 0x4e, 0x45, - 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, - 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x5f, - 0x42, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x59, 0x10, 0x04, 0x12, 0x24, - 0x0a, 0x20, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x54, 0x49, 0x47, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, - 0x54, 0x53, 0x10, 0x05, 0x2a, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4c, - 0x4f, 0x57, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, - 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, - 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x05, 0x2a, 0x47, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, - 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, - 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, - 0x03, 0x42, 0x3f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, - 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, - 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x24, 0x0a, 0x0c, 0x50, 0x79, + 0x50, 0x49, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x1a, 0x26, 0x0a, 0x0a, 0x54, 0x69, 0x6e, 0x6b, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x2b, 0x0a, 0x13, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x43, 0x6f, 0x72, 0x70, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x68, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x68, 0x69, 0x43, 0x6f, + 0x72, 0x70, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x70, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, + 0x1d, 0x0a, 0x09, 0x47, 0x43, 0x50, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x67, + 0x0a, 0x11, 0x48, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x41, 0x50, 0x49, + 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x69, 0x6e, + 0x65, 0x5f, 0x67, 0x72, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x69, 0x6e, + 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x65, 0x0a, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x43, 0x6f, 0x72, 0x70, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0xbd, + 0x02, 0x0a, 0x1b, 0x48, 0x61, 0x73, 0x68, 0x69, 0x43, 0x6f, 0x72, 0x70, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x1a, 0x23, + 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x1a, 0x27, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x52, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x27, 0x0a, 0x13, + 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x44, 0x0a, 0x1a, 0x47, 0x43, 0x50, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x2c, 0x0a, 0x14, 0x47, + 0x43, 0x50, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x41, 0x0a, 0x0a, 0x47, 0x43, 0x53, + 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0xa8, 0x01, 0x0a, + 0x13, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x4d, 0x79, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x4a, 0x0a, 0x08, 0x56, 0x61, 0x70, 0x69, 0x64, + 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x62, + 0x36, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x42, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x62, + 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x42, 0x36, 0x34, 0x1a, 0xb0, 0x02, 0x0a, 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x76, 0x12, 0x22, 0x0a, + 0x0d, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4b, 0x65, 0x79, 0x49, + 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x61, + 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x53, 0x61, 0x6c, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x28, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x1a, 0x2b, 0x0a, 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x2b, 0x0a, + 0x17, 0x4f, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x4e, 0x0a, 0x17, 0x41, 0x77, + 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x26, 0x0a, 0x0c, 0x52, 0x65, + 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xf8, 0x01, 0x0a, + 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x69, 0x0a, 0x10, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x1a, 0x02, + 0x08, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 0x12, + 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, + 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x22, 0xc8, 0x02, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x62, 0x0a, 0x1b, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, 0x61, + 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, + 0x68, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, + 0x18, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x65, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, + 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, + 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x22, 0x6a, 0x0a, 0x18, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, + 0x74, 0x68, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x62, 0x72, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x0c, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x29, + 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xb3, 0x02, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x0e, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x11, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0f, 0x62, 0x61, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x07, + 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x1a, 0x39, 0x0a, 0x0b, 0x4f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x67, 0x0a, + 0x0e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, + 0x3a, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x0a, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x10, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x22, 0xb8, + 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x66, 0x66, 0x49, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x28, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2a, 0xf7, 0x01, 0x0a, 0x10, 0x56, 0x65, + 0x78, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, + 0x0a, 0x1d, 0x56, 0x45, 0x58, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, + 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, + 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x27, 0x0a, + 0x23, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, + 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x35, 0x0a, 0x31, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, + 0x5f, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x5f, 0x42, + 0x59, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x59, 0x10, 0x04, 0x12, 0x24, 0x0a, + 0x20, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x54, 0x49, 0x47, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, + 0x53, 0x10, 0x05, 0x2a, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, + 0x57, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, + 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x05, 0x2a, 0x47, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x5f, + 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, + 0x42, 0x3f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x2f, + 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x61, + 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10824,7 +10890,7 @@ func file_proto_scan_result_proto_rawDescGZIP() []byte { } var file_proto_scan_result_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_proto_scan_result_proto_msgTypes = make([]protoimpl.MessageInfo, 120) +var file_proto_scan_result_proto_msgTypes = make([]protoimpl.MessageInfo, 121) var file_proto_scan_result_proto_goTypes = []any{ (VexJustification)(0), // 0: scalibr.VexJustification (SeverityEnum)(0), // 1: scalibr.SeverityEnum @@ -10899,63 +10965,64 @@ var file_proto_scan_result_proto_goTypes = []any{ (*BaseImageDetails)(nil), // 70: scalibr.BaseImageDetails (*LayerMetadata)(nil), // 71: scalibr.LayerMetadata (*Package_ContainerImageMetadataIndexes)(nil), // 72: scalibr.Package.ContainerImageMetadataIndexes - nil, // 73: scalibr.PodmanMetadata.ExposedPortsEntry - (*SecretData_GCPSAK)(nil), // 74: scalibr.SecretData.GCPSAK - (*SecretData_AnthropicWorkspaceAPIKey)(nil), // 75: scalibr.SecretData.AnthropicWorkspaceAPIKey - (*SecretData_AnthropicModelAPIKey)(nil), // 76: scalibr.SecretData.AnthropicModelAPIKey - (*SecretData_PerplexityAPIKey)(nil), // 77: scalibr.SecretData.PerplexityAPIKey - (*SecretData_GrokXAIAPIKey)(nil), // 78: scalibr.SecretData.GrokXAIAPIKey - (*SecretData_GrokXAIManagementAPIKey)(nil), // 79: scalibr.SecretData.GrokXAIManagementAPIKey - (*SecretData_AzureStorageAccountAccessKey)(nil), // 80: scalibr.SecretData.AzureStorageAccountAccessKey - (*SecretData_PrivateKey)(nil), // 81: scalibr.SecretData.PrivateKey - (*SecretData_AzureAccessToken)(nil), // 82: scalibr.SecretData.AzureAccessToken - (*SecretData_Pgpass)(nil), // 83: scalibr.SecretData.Pgpass - (*SecretData_MariaDBCredentials)(nil), // 84: scalibr.SecretData.MariaDBCredentials - (*SecretData_AzureIdentityToken)(nil), // 85: scalibr.SecretData.AzureIdentityToken - (*SecretData_OpenAIAPIKey)(nil), // 86: scalibr.SecretData.OpenAIAPIKey - (*SecretData_DockerHubPat)(nil), // 87: scalibr.SecretData.DockerHubPat - (*SecretData_GitlabPat)(nil), // 88: scalibr.SecretData.GitlabPat - (*SecretData_SlackAppLevelToken)(nil), // 89: scalibr.SecretData.SlackAppLevelToken - (*SecretData_SlackAppConfigAccessToken)(nil), // 90: scalibr.SecretData.SlackAppConfigAccessToken - (*SecretData_SlackAppConfigRefreshToken)(nil), // 91: scalibr.SecretData.SlackAppConfigRefreshToken - (*SecretData_PostmanAPIKey)(nil), // 92: scalibr.SecretData.PostmanAPIKey - (*SecretData_PostmanCollectionAccessToken)(nil), // 93: scalibr.SecretData.PostmanCollectionAccessToken - (*SecretData_DigitalOceanAPIToken)(nil), // 94: scalibr.SecretData.DigitalOceanAPIToken - (*SecretData_CratesIOAPIToken)(nil), // 95: scalibr.SecretData.CratesIOAPIToken - (*SecretData_GithubAppRefreshToken)(nil), // 96: scalibr.SecretData.GithubAppRefreshToken - (*SecretData_GithubAppServerToServerToken)(nil), // 97: scalibr.SecretData.GithubAppServerToServerToken - (*SecretData_GithubClassicPersonalAccessToken)(nil), // 98: scalibr.SecretData.GithubClassicPersonalAccessToken - (*SecretData_GithubFineGrainedPersonalAccessToken)(nil), // 99: scalibr.SecretData.GithubFineGrainedPersonalAccessToken - (*SecretData_GithubOAuthToken)(nil), // 100: scalibr.SecretData.GithubOAuthToken - (*SecretData_GithubAppUserToServerToken)(nil), // 101: scalibr.SecretData.GithubAppUserToServerToken - (*SecretData_PyPIAPIToken)(nil), // 102: scalibr.SecretData.PyPIAPIToken - (*SecretData_TinkKeyset)(nil), // 103: scalibr.SecretData.TinkKeyset - (*SecretData_HashiCorpVaultToken)(nil), // 104: scalibr.SecretData.HashiCorpVaultToken - (*SecretData_HashiCorpVaultAppRoleCredentials)(nil), // 105: scalibr.SecretData.HashiCorpVaultAppRoleCredentials - (*SecretData_GCPAPIKey)(nil), // 106: scalibr.SecretData.GCPAPIKey - (*SecretData_HuggingfaceAPIKey)(nil), // 107: scalibr.SecretData.HuggingfaceAPIKey - (*SecretData_HashiCorpCloudPlatformCredentials)(nil), // 108: scalibr.SecretData.HashiCorpCloudPlatformCredentials - (*SecretData_HashiCorpCloudPlatformToken)(nil), // 109: scalibr.SecretData.HashiCorpCloudPlatformToken - (*SecretData_StripeSecretKey)(nil), // 110: scalibr.SecretData.StripeSecretKey - (*SecretData_StripeRestrictedKey)(nil), // 111: scalibr.SecretData.StripeRestrictedKey - (*SecretData_StripeWebhookSecret)(nil), // 112: scalibr.SecretData.StripeWebhookSecret - (*SecretData_GCPOAuth2ClientCredentials)(nil), // 113: scalibr.SecretData.GCPOAuth2ClientCredentials - (*SecretData_GCPOAuth2AccessToken)(nil), // 114: scalibr.SecretData.GCPOAuth2AccessToken - (*SecretData_GCSHmacKey)(nil), // 115: scalibr.SecretData.GCSHmacKey - (*SecretData_MysqlMyloginSection)(nil), // 116: scalibr.SecretData.MysqlMyloginSection - (*SecretData_VapidKey)(nil), // 117: scalibr.SecretData.VapidKey - (*SecretData_OnePasswordConnectToken)(nil), // 118: scalibr.SecretData.OnePasswordConnectToken - (*SecretData_OnePasswordSecretKey)(nil), // 119: scalibr.SecretData.OnePasswordSecretKey - (*SecretData_OnePasswordServiceToken)(nil), // 120: scalibr.SecretData.OnePasswordServiceToken - (*SecretData_OnePasswordRecoveryCode)(nil), // 121: scalibr.SecretData.OnePasswordRecoveryCode - (*SecretData_AwsAccessKeyCredentials)(nil), // 122: scalibr.SecretData.AwsAccessKeyCredentials - (*SecretData_ReCaptchaKey)(nil), // 123: scalibr.SecretData.ReCaptchaKey - nil, // 124: scalibr.ContainerImageMetadata.OsInfoEntry - (*timestamppb.Timestamp)(nil), // 125: google.protobuf.Timestamp + nil, // 73: scalibr.PodmanMetadata.ExposedPortsEntry + (*SecretData_GCPSAK)(nil), // 74: scalibr.SecretData.GCPSAK + (*SecretData_JWTToken)(nil), // 75: scalibr.SecretData.JWTToken + (*SecretData_AnthropicWorkspaceAPIKey)(nil), // 76: scalibr.SecretData.AnthropicWorkspaceAPIKey + (*SecretData_AnthropicModelAPIKey)(nil), // 77: scalibr.SecretData.AnthropicModelAPIKey + (*SecretData_PerplexityAPIKey)(nil), // 78: scalibr.SecretData.PerplexityAPIKey + (*SecretData_GrokXAIAPIKey)(nil), // 79: scalibr.SecretData.GrokXAIAPIKey + (*SecretData_GrokXAIManagementAPIKey)(nil), // 80: scalibr.SecretData.GrokXAIManagementAPIKey + (*SecretData_AzureStorageAccountAccessKey)(nil), // 81: scalibr.SecretData.AzureStorageAccountAccessKey + (*SecretData_PrivateKey)(nil), // 82: scalibr.SecretData.PrivateKey + (*SecretData_AzureAccessToken)(nil), // 83: scalibr.SecretData.AzureAccessToken + (*SecretData_Pgpass)(nil), // 84: scalibr.SecretData.Pgpass + (*SecretData_MariaDBCredentials)(nil), // 85: scalibr.SecretData.MariaDBCredentials + (*SecretData_AzureIdentityToken)(nil), // 86: scalibr.SecretData.AzureIdentityToken + (*SecretData_OpenAIAPIKey)(nil), // 87: scalibr.SecretData.OpenAIAPIKey + (*SecretData_DockerHubPat)(nil), // 88: scalibr.SecretData.DockerHubPat + (*SecretData_GitlabPat)(nil), // 89: scalibr.SecretData.GitlabPat + (*SecretData_SlackAppLevelToken)(nil), // 90: scalibr.SecretData.SlackAppLevelToken + (*SecretData_SlackAppConfigAccessToken)(nil), // 91: scalibr.SecretData.SlackAppConfigAccessToken + (*SecretData_SlackAppConfigRefreshToken)(nil), // 92: scalibr.SecretData.SlackAppConfigRefreshToken + (*SecretData_PostmanAPIKey)(nil), // 93: scalibr.SecretData.PostmanAPIKey + (*SecretData_PostmanCollectionAccessToken)(nil), // 94: scalibr.SecretData.PostmanCollectionAccessToken + (*SecretData_DigitalOceanAPIToken)(nil), // 95: scalibr.SecretData.DigitalOceanAPIToken + (*SecretData_CratesIOAPIToken)(nil), // 96: scalibr.SecretData.CratesIOAPIToken + (*SecretData_GithubAppRefreshToken)(nil), // 97: scalibr.SecretData.GithubAppRefreshToken + (*SecretData_GithubAppServerToServerToken)(nil), // 98: scalibr.SecretData.GithubAppServerToServerToken + (*SecretData_GithubClassicPersonalAccessToken)(nil), // 99: scalibr.SecretData.GithubClassicPersonalAccessToken + (*SecretData_GithubFineGrainedPersonalAccessToken)(nil), // 100: scalibr.SecretData.GithubFineGrainedPersonalAccessToken + (*SecretData_GithubOAuthToken)(nil), // 101: scalibr.SecretData.GithubOAuthToken + (*SecretData_GithubAppUserToServerToken)(nil), // 102: scalibr.SecretData.GithubAppUserToServerToken + (*SecretData_PyPIAPIToken)(nil), // 103: scalibr.SecretData.PyPIAPIToken + (*SecretData_TinkKeyset)(nil), // 104: scalibr.SecretData.TinkKeyset + (*SecretData_HashiCorpVaultToken)(nil), // 105: scalibr.SecretData.HashiCorpVaultToken + (*SecretData_HashiCorpVaultAppRoleCredentials)(nil), // 106: scalibr.SecretData.HashiCorpVaultAppRoleCredentials + (*SecretData_GCPAPIKey)(nil), // 107: scalibr.SecretData.GCPAPIKey + (*SecretData_HuggingfaceAPIKey)(nil), // 108: scalibr.SecretData.HuggingfaceAPIKey + (*SecretData_HashiCorpCloudPlatformCredentials)(nil), // 109: scalibr.SecretData.HashiCorpCloudPlatformCredentials + (*SecretData_HashiCorpCloudPlatformToken)(nil), // 110: scalibr.SecretData.HashiCorpCloudPlatformToken + (*SecretData_StripeSecretKey)(nil), // 111: scalibr.SecretData.StripeSecretKey + (*SecretData_StripeRestrictedKey)(nil), // 112: scalibr.SecretData.StripeRestrictedKey + (*SecretData_StripeWebhookSecret)(nil), // 113: scalibr.SecretData.StripeWebhookSecret + (*SecretData_GCPOAuth2ClientCredentials)(nil), // 114: scalibr.SecretData.GCPOAuth2ClientCredentials + (*SecretData_GCPOAuth2AccessToken)(nil), // 115: scalibr.SecretData.GCPOAuth2AccessToken + (*SecretData_GCSHmacKey)(nil), // 116: scalibr.SecretData.GCSHmacKey + (*SecretData_MysqlMyloginSection)(nil), // 117: scalibr.SecretData.MysqlMyloginSection + (*SecretData_VapidKey)(nil), // 118: scalibr.SecretData.VapidKey + (*SecretData_OnePasswordConnectToken)(nil), // 119: scalibr.SecretData.OnePasswordConnectToken + (*SecretData_OnePasswordSecretKey)(nil), // 120: scalibr.SecretData.OnePasswordSecretKey + (*SecretData_OnePasswordServiceToken)(nil), // 121: scalibr.SecretData.OnePasswordServiceToken + (*SecretData_OnePasswordRecoveryCode)(nil), // 122: scalibr.SecretData.OnePasswordRecoveryCode + (*SecretData_AwsAccessKeyCredentials)(nil), // 123: scalibr.SecretData.AwsAccessKeyCredentials + (*SecretData_ReCaptchaKey)(nil), // 124: scalibr.SecretData.ReCaptchaKey + nil, // 125: scalibr.ContainerImageMetadata.OsInfoEntry + (*timestamppb.Timestamp)(nil), // 126: google.protobuf.Timestamp } var file_proto_scan_result_proto_depIdxs = []int32{ - 125, // 0: scalibr.ScanResult.start_time:type_name -> google.protobuf.Timestamp - 125, // 1: scalibr.ScanResult.end_time:type_name -> google.protobuf.Timestamp + 126, // 0: scalibr.ScanResult.start_time:type_name -> google.protobuf.Timestamp + 126, // 1: scalibr.ScanResult.end_time:type_name -> google.protobuf.Timestamp 7, // 2: scalibr.ScanResult.status:type_name -> scalibr.ScanStatus 8, // 3: scalibr.ScanResult.plugin_status:type_name -> scalibr.PluginStatus 6, // 4: scalibr.ScanResult.inventory:type_name -> scalibr.Inventory @@ -11019,79 +11086,80 @@ var file_proto_scan_result_proto_depIdxs = []int32{ 16, // 62: scalibr.SPDXPackageMetadata.purl:type_name -> scalibr.Purl 16, // 63: scalibr.CDXPackageMetadata.purl:type_name -> scalibr.Purl 73, // 64: scalibr.PodmanMetadata.exposed_ports:type_name -> scalibr.PodmanMetadata.ExposedPortsEntry - 125, // 65: scalibr.PodmanMetadata.started_time:type_name -> google.protobuf.Timestamp - 125, // 66: scalibr.PodmanMetadata.finished_time:type_name -> google.protobuf.Timestamp + 126, // 65: scalibr.PodmanMetadata.started_time:type_name -> google.protobuf.Timestamp + 126, // 66: scalibr.PodmanMetadata.finished_time:type_name -> google.protobuf.Timestamp 58, // 67: scalibr.DockerContainersMetadata.ports:type_name -> scalibr.DockerPort 61, // 68: scalibr.Secret.secret:type_name -> scalibr.SecretData 62, // 69: scalibr.Secret.status:type_name -> scalibr.SecretStatus 63, // 70: scalibr.Secret.locations:type_name -> scalibr.Location 74, // 71: scalibr.SecretData.gcpsak:type_name -> scalibr.SecretData.GCPSAK - 75, // 72: scalibr.SecretData.anthropic_workspace_api_key:type_name -> scalibr.SecretData.AnthropicWorkspaceAPIKey - 76, // 73: scalibr.SecretData.anthropic_model_api_key:type_name -> scalibr.SecretData.AnthropicModelAPIKey - 77, // 74: scalibr.SecretData.perplexity:type_name -> scalibr.SecretData.PerplexityAPIKey - 81, // 75: scalibr.SecretData.private_key:type_name -> scalibr.SecretData.PrivateKey - 78, // 76: scalibr.SecretData.grok_xai_api_key:type_name -> scalibr.SecretData.GrokXAIAPIKey - 79, // 77: scalibr.SecretData.grok_xai_management_api_key:type_name -> scalibr.SecretData.GrokXAIManagementAPIKey - 87, // 78: scalibr.SecretData.docker_hub_pat:type_name -> scalibr.SecretData.DockerHubPat - 94, // 79: scalibr.SecretData.digitalocean:type_name -> scalibr.SecretData.DigitalOceanAPIToken - 86, // 80: scalibr.SecretData.openai_api_key:type_name -> scalibr.SecretData.OpenAIAPIKey - 92, // 81: scalibr.SecretData.postman_api_key:type_name -> scalibr.SecretData.PostmanAPIKey - 93, // 82: scalibr.SecretData.postman_collection_access_token:type_name -> scalibr.SecretData.PostmanCollectionAccessToken - 82, // 83: scalibr.SecretData.azure_access_token:type_name -> scalibr.SecretData.AzureAccessToken - 85, // 84: scalibr.SecretData.azure_identity_token:type_name -> scalibr.SecretData.AzureIdentityToken - 103, // 85: scalibr.SecretData.tink_keyset:type_name -> scalibr.SecretData.TinkKeyset - 88, // 86: scalibr.SecretData.gitlab_pat:type_name -> scalibr.SecretData.GitlabPat - 104, // 87: scalibr.SecretData.hashicorp_vault_token:type_name -> scalibr.SecretData.HashiCorpVaultToken - 105, // 88: scalibr.SecretData.hashicorp_vault_app_role_credentials:type_name -> scalibr.SecretData.HashiCorpVaultAppRoleCredentials - 106, // 89: scalibr.SecretData.gcp_api_key:type_name -> scalibr.SecretData.GCPAPIKey - 107, // 90: scalibr.SecretData.hugginface:type_name -> scalibr.SecretData.HuggingfaceAPIKey - 96, // 91: scalibr.SecretData.github_app_refresh_token:type_name -> scalibr.SecretData.GithubAppRefreshToken - 110, // 92: scalibr.SecretData.stripe_secret_key:type_name -> scalibr.SecretData.StripeSecretKey - 111, // 93: scalibr.SecretData.stripe_restricted_key:type_name -> scalibr.SecretData.StripeRestrictedKey - 112, // 94: scalibr.SecretData.stripe_webhook_secret:type_name -> scalibr.SecretData.StripeWebhookSecret - 113, // 95: scalibr.SecretData.gcp_oauth2_client_credentials:type_name -> scalibr.SecretData.GCPOAuth2ClientCredentials - 114, // 96: scalibr.SecretData.gcp_oauth2_access_token:type_name -> scalibr.SecretData.GCPOAuth2AccessToken - 97, // 97: scalibr.SecretData.github_app_server_to_server_token:type_name -> scalibr.SecretData.GithubAppServerToServerToken - 98, // 98: scalibr.SecretData.github_classic_personal_access_token:type_name -> scalibr.SecretData.GithubClassicPersonalAccessToken - 99, // 99: scalibr.SecretData.github_fine_grained_personal_access_token:type_name -> scalibr.SecretData.GithubFineGrainedPersonalAccessToken - 101, // 100: scalibr.SecretData.github_app_user_to_server_token:type_name -> scalibr.SecretData.GithubAppUserToServerToken - 100, // 101: scalibr.SecretData.github_oauth_token:type_name -> scalibr.SecretData.GithubOAuthToken - 91, // 102: scalibr.SecretData.slack_app_config_refresh_token:type_name -> scalibr.SecretData.SlackAppConfigRefreshToken - 89, // 103: scalibr.SecretData.slack_app_level_token:type_name -> scalibr.SecretData.SlackAppLevelToken - 90, // 104: scalibr.SecretData.slack_app_config_access_token:type_name -> scalibr.SecretData.SlackAppConfigAccessToken - 80, // 105: scalibr.SecretData.azure_storage_account_access_key:type_name -> scalibr.SecretData.AzureStorageAccountAccessKey - 108, // 106: scalibr.SecretData.hashicorp_cloud_platform_credentials:type_name -> scalibr.SecretData.HashiCorpCloudPlatformCredentials - 109, // 107: scalibr.SecretData.hashicorp_cloud_platform_token:type_name -> scalibr.SecretData.HashiCorpCloudPlatformToken - 119, // 108: scalibr.SecretData.onepassword_secret_key:type_name -> scalibr.SecretData.OnePasswordSecretKey - 120, // 109: scalibr.SecretData.onepassword_service_token:type_name -> scalibr.SecretData.OnePasswordServiceToken - 121, // 110: scalibr.SecretData.onepassword_recovery_code:type_name -> scalibr.SecretData.OnePasswordRecoveryCode - 118, // 111: scalibr.SecretData.onepassword_connect_token:type_name -> scalibr.SecretData.OnePasswordConnectToken - 83, // 112: scalibr.SecretData.pgpass:type_name -> scalibr.SecretData.Pgpass - 102, // 113: scalibr.SecretData.pypi:type_name -> scalibr.SecretData.PyPIAPIToken - 95, // 114: scalibr.SecretData.crates_io_api_token:type_name -> scalibr.SecretData.CratesIOAPIToken - 84, // 115: scalibr.SecretData.maria_db_credentials:type_name -> scalibr.SecretData.MariaDBCredentials - 115, // 116: scalibr.SecretData.gcs_hmac_key:type_name -> scalibr.SecretData.GCSHmacKey - 116, // 117: scalibr.SecretData.mysql_mylogin_section:type_name -> scalibr.SecretData.MysqlMyloginSection - 117, // 118: scalibr.SecretData.vapid_key:type_name -> scalibr.SecretData.VapidKey - 122, // 119: scalibr.SecretData.aws_access_key_credentials:type_name -> scalibr.SecretData.AwsAccessKeyCredentials - 123, // 120: scalibr.SecretData.re_captcha_key:type_name -> scalibr.SecretData.ReCaptchaKey - 4, // 121: scalibr.SecretStatus.status:type_name -> scalibr.SecretStatus.SecretStatusEnum - 125, // 122: scalibr.SecretStatus.last_updated:type_name -> google.protobuf.Timestamp - 64, // 123: scalibr.Location.filepath:type_name -> scalibr.Filepath - 65, // 124: scalibr.Location.filepath_with_layer_details:type_name -> scalibr.FilepathWithLayerDetails - 66, // 125: scalibr.Location.environment_variable:type_name -> scalibr.EnvironmentVariable - 67, // 126: scalibr.Location.container_command:type_name -> scalibr.ContainerCommand - 12, // 127: scalibr.FilepathWithLayerDetails.layer_details:type_name -> scalibr.LayerDetails - 71, // 128: scalibr.ContainerImageMetadata.layer_metadata:type_name -> scalibr.LayerMetadata - 69, // 129: scalibr.ContainerImageMetadata.base_image_chains:type_name -> scalibr.BaseImageChain - 124, // 130: scalibr.ContainerImageMetadata.os_info:type_name -> scalibr.ContainerImageMetadata.OsInfoEntry - 70, // 131: scalibr.BaseImageChain.base_images:type_name -> scalibr.BaseImageDetails - 53, // 132: scalibr.PodmanMetadata.ExposedPortsEntry.value:type_name -> scalibr.Protocol - 133, // [133:133] is the sub-list for method output_type - 133, // [133:133] is the sub-list for method input_type - 133, // [133:133] is the sub-list for extension type_name - 133, // [133:133] is the sub-list for extension extendee - 0, // [0:133] is the sub-list for field type_name + 76, // 72: scalibr.SecretData.anthropic_workspace_api_key:type_name -> scalibr.SecretData.AnthropicWorkspaceAPIKey + 77, // 73: scalibr.SecretData.anthropic_model_api_key:type_name -> scalibr.SecretData.AnthropicModelAPIKey + 78, // 74: scalibr.SecretData.perplexity:type_name -> scalibr.SecretData.PerplexityAPIKey + 82, // 75: scalibr.SecretData.private_key:type_name -> scalibr.SecretData.PrivateKey + 79, // 76: scalibr.SecretData.grok_xai_api_key:type_name -> scalibr.SecretData.GrokXAIAPIKey + 80, // 77: scalibr.SecretData.grok_xai_management_api_key:type_name -> scalibr.SecretData.GrokXAIManagementAPIKey + 88, // 78: scalibr.SecretData.docker_hub_pat:type_name -> scalibr.SecretData.DockerHubPat + 95, // 79: scalibr.SecretData.digitalocean:type_name -> scalibr.SecretData.DigitalOceanAPIToken + 87, // 80: scalibr.SecretData.openai_api_key:type_name -> scalibr.SecretData.OpenAIAPIKey + 93, // 81: scalibr.SecretData.postman_api_key:type_name -> scalibr.SecretData.PostmanAPIKey + 94, // 82: scalibr.SecretData.postman_collection_access_token:type_name -> scalibr.SecretData.PostmanCollectionAccessToken + 83, // 83: scalibr.SecretData.azure_access_token:type_name -> scalibr.SecretData.AzureAccessToken + 86, // 84: scalibr.SecretData.azure_identity_token:type_name -> scalibr.SecretData.AzureIdentityToken + 104, // 85: scalibr.SecretData.tink_keyset:type_name -> scalibr.SecretData.TinkKeyset + 89, // 86: scalibr.SecretData.gitlab_pat:type_name -> scalibr.SecretData.GitlabPat + 105, // 87: scalibr.SecretData.hashicorp_vault_token:type_name -> scalibr.SecretData.HashiCorpVaultToken + 106, // 88: scalibr.SecretData.hashicorp_vault_app_role_credentials:type_name -> scalibr.SecretData.HashiCorpVaultAppRoleCredentials + 107, // 89: scalibr.SecretData.gcp_api_key:type_name -> scalibr.SecretData.GCPAPIKey + 108, // 90: scalibr.SecretData.hugginface:type_name -> scalibr.SecretData.HuggingfaceAPIKey + 97, // 91: scalibr.SecretData.github_app_refresh_token:type_name -> scalibr.SecretData.GithubAppRefreshToken + 111, // 92: scalibr.SecretData.stripe_secret_key:type_name -> scalibr.SecretData.StripeSecretKey + 112, // 93: scalibr.SecretData.stripe_restricted_key:type_name -> scalibr.SecretData.StripeRestrictedKey + 113, // 94: scalibr.SecretData.stripe_webhook_secret:type_name -> scalibr.SecretData.StripeWebhookSecret + 114, // 95: scalibr.SecretData.gcp_oauth2_client_credentials:type_name -> scalibr.SecretData.GCPOAuth2ClientCredentials + 115, // 96: scalibr.SecretData.gcp_oauth2_access_token:type_name -> scalibr.SecretData.GCPOAuth2AccessToken + 98, // 97: scalibr.SecretData.github_app_server_to_server_token:type_name -> scalibr.SecretData.GithubAppServerToServerToken + 99, // 98: scalibr.SecretData.github_classic_personal_access_token:type_name -> scalibr.SecretData.GithubClassicPersonalAccessToken + 100, // 99: scalibr.SecretData.github_fine_grained_personal_access_token:type_name -> scalibr.SecretData.GithubFineGrainedPersonalAccessToken + 102, // 100: scalibr.SecretData.github_app_user_to_server_token:type_name -> scalibr.SecretData.GithubAppUserToServerToken + 101, // 101: scalibr.SecretData.github_oauth_token:type_name -> scalibr.SecretData.GithubOAuthToken + 92, // 102: scalibr.SecretData.slack_app_config_refresh_token:type_name -> scalibr.SecretData.SlackAppConfigRefreshToken + 90, // 103: scalibr.SecretData.slack_app_level_token:type_name -> scalibr.SecretData.SlackAppLevelToken + 91, // 104: scalibr.SecretData.slack_app_config_access_token:type_name -> scalibr.SecretData.SlackAppConfigAccessToken + 81, // 105: scalibr.SecretData.azure_storage_account_access_key:type_name -> scalibr.SecretData.AzureStorageAccountAccessKey + 109, // 106: scalibr.SecretData.hashicorp_cloud_platform_credentials:type_name -> scalibr.SecretData.HashiCorpCloudPlatformCredentials + 110, // 107: scalibr.SecretData.hashicorp_cloud_platform_token:type_name -> scalibr.SecretData.HashiCorpCloudPlatformToken + 120, // 108: scalibr.SecretData.onepassword_secret_key:type_name -> scalibr.SecretData.OnePasswordSecretKey + 121, // 109: scalibr.SecretData.onepassword_service_token:type_name -> scalibr.SecretData.OnePasswordServiceToken + 122, // 110: scalibr.SecretData.onepassword_recovery_code:type_name -> scalibr.SecretData.OnePasswordRecoveryCode + 119, // 111: scalibr.SecretData.onepassword_connect_token:type_name -> scalibr.SecretData.OnePasswordConnectToken + 84, // 112: scalibr.SecretData.pgpass:type_name -> scalibr.SecretData.Pgpass + 103, // 113: scalibr.SecretData.pypi:type_name -> scalibr.SecretData.PyPIAPIToken + 96, // 114: scalibr.SecretData.crates_io_api_token:type_name -> scalibr.SecretData.CratesIOAPIToken + 85, // 115: scalibr.SecretData.maria_db_credentials:type_name -> scalibr.SecretData.MariaDBCredentials + 116, // 116: scalibr.SecretData.gcs_hmac_key:type_name -> scalibr.SecretData.GCSHmacKey + 117, // 117: scalibr.SecretData.mysql_mylogin_section:type_name -> scalibr.SecretData.MysqlMyloginSection + 118, // 118: scalibr.SecretData.vapid_key:type_name -> scalibr.SecretData.VapidKey + 123, // 119: scalibr.SecretData.aws_access_key_credentials:type_name -> scalibr.SecretData.AwsAccessKeyCredentials + 124, // 120: scalibr.SecretData.re_captcha_key:type_name -> scalibr.SecretData.ReCaptchaKey + 75, // 121: scalibr.SecretData.jwt_token:type_name -> scalibr.SecretData.JWTToken + 4, // 122: scalibr.SecretStatus.status:type_name -> scalibr.SecretStatus.SecretStatusEnum + 126, // 123: scalibr.SecretStatus.last_updated:type_name -> google.protobuf.Timestamp + 64, // 124: scalibr.Location.filepath:type_name -> scalibr.Filepath + 65, // 125: scalibr.Location.filepath_with_layer_details:type_name -> scalibr.FilepathWithLayerDetails + 66, // 126: scalibr.Location.environment_variable:type_name -> scalibr.EnvironmentVariable + 67, // 127: scalibr.Location.container_command:type_name -> scalibr.ContainerCommand + 12, // 128: scalibr.FilepathWithLayerDetails.layer_details:type_name -> scalibr.LayerDetails + 71, // 129: scalibr.ContainerImageMetadata.layer_metadata:type_name -> scalibr.LayerMetadata + 69, // 130: scalibr.ContainerImageMetadata.base_image_chains:type_name -> scalibr.BaseImageChain + 125, // 131: scalibr.ContainerImageMetadata.os_info:type_name -> scalibr.ContainerImageMetadata.OsInfoEntry + 70, // 132: scalibr.BaseImageChain.base_images:type_name -> scalibr.BaseImageDetails + 53, // 133: scalibr.PodmanMetadata.ExposedPortsEntry.value:type_name -> scalibr.Protocol + 134, // [134:134] is the sub-list for method output_type + 134, // [134:134] is the sub-list for method input_type + 134, // [134:134] is the sub-list for extension type_name + 134, // [134:134] is the sub-list for extension extendee + 0, // [0:134] is the sub-list for field type_name } func init() { file_proto_scan_result_proto_init() } @@ -11192,6 +11260,7 @@ func file_proto_scan_result_proto_init() { (*SecretData_VapidKey_)(nil), (*SecretData_AwsAccessKeyCredentials_)(nil), (*SecretData_ReCaptchaKey_)(nil), + (*SecretData_JwtToken)(nil), } file_proto_scan_result_proto_msgTypes[58].OneofWrappers = []any{ (*Location_Filepath)(nil), @@ -11205,7 +11274,7 @@ func file_proto_scan_result_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_scan_result_proto_rawDesc, NumEnums: 5, - NumMessages: 120, + NumMessages: 121, NumExtensions: 0, NumServices: 0, }, diff --git a/binary/proto/secret.go b/binary/proto/secret.go index 857a01d9d..75d2097d4 100644 --- a/binary/proto/secret.go +++ b/binary/proto/secret.go @@ -44,6 +44,7 @@ import ( veleshashicorpvault "github.com/google/osv-scalibr/veles/secrets/hashicorpvault" veleshashicorpcloudplatform "github.com/google/osv-scalibr/veles/secrets/hcp" "github.com/google/osv-scalibr/veles/secrets/huggingfaceapikey" + "github.com/google/osv-scalibr/veles/secrets/jwt" velesonepasswordkeys "github.com/google/osv-scalibr/veles/secrets/onepasswordkeys" velesopenai "github.com/google/osv-scalibr/veles/secrets/openai" velesperplexity "github.com/google/osv-scalibr/veles/secrets/perplexityapikey" @@ -215,6 +216,8 @@ func velesSecretToProto(s veles.Secret) (*spb.SecretData, error) { return vapidKeyToProto(t), nil case recaptchakey.Key: return reCaptchaKeyToProto(t), nil + case jwt.Token: + return jwtTokenToProto(t), nil default: return nil, fmt.Errorf("%w: %T", ErrUnsupportedSecretType, s) } @@ -231,6 +234,16 @@ func awsAccessKeyCredentialToProto(s awsaccesskey.Credentials) *spb.SecretData { } } +func jwtTokenToProto(s jwt.Token) *spb.SecretData { + return &spb.SecretData{ + Secret: &spb.SecretData_JwtToken{ + JwtToken: &spb.SecretData_JWTToken{ + Token: s.Value, + }, + }, + } +} + func reCaptchaKeyToProto(s recaptchakey.Key) *spb.SecretData { return &spb.SecretData{ Secret: &spb.SecretData_ReCaptchaKey_{ @@ -798,6 +811,8 @@ func SecretToStruct(s *spb.Secret) (*inventory.Secret, error) { func velesSecretToStruct(s *spb.SecretData) (veles.Secret, error) { switch s.Secret.(type) { + case *spb.SecretData_JwtToken: + return jwt.Token{Value: s.GetJwtToken().GetToken()}, nil case *spb.SecretData_PrivateKey_: return privatekeyToStruct(s.GetPrivateKey()), nil case *spb.SecretData_Pgpass_: @@ -947,6 +962,7 @@ func velesSecretToStruct(s *spb.SecretData) (veles.Secret, error) { return recaptchakey.Key{ Secret: s.GetReCaptchaKey().GetSecret(), }, nil + default: return nil, fmt.Errorf("%w: %T", ErrUnsupportedSecretType, s.GetSecret()) } diff --git a/extractor/filesystem/list/list.go b/extractor/filesystem/list/list.go index 25db3dacf..c825e5ff3 100644 --- a/extractor/filesystem/list/list.go +++ b/extractor/filesystem/list/list.go @@ -121,6 +121,7 @@ import ( "github.com/google/osv-scalibr/veles/secrets/hashicorpvault" "github.com/google/osv-scalibr/veles/secrets/hcp" "github.com/google/osv-scalibr/veles/secrets/huggingfaceapikey" + "github.com/google/osv-scalibr/veles/secrets/jwt" "github.com/google/osv-scalibr/veles/secrets/onepasswordkeys" "github.com/google/osv-scalibr/veles/secrets/openai" "github.com/google/osv-scalibr/veles/secrets/perplexityapikey" @@ -333,6 +334,7 @@ var ( {gcshmackey.NewDetector(), "secrets/gcshmackey", 0}, {vapid.NewDetector(), "secrets/vapidkey", 0}, {recaptchakey.NewDetector(), "secrets/recaptchakey", 0}, + {jwt.NewDetector(), "secrets/jwttoken", 0}, }) // Secrets contains both secret extractors and detectors. From c7b63488e729d2b4f65780d3c8f86cb62d5dded4 Mon Sep 17 00:00:00 2001 From: alessandro-Doyensec Date: Wed, 3 Dec 2025 17:57:56 +0100 Subject: [PATCH 3/4] add: detector added to inventory --- docs/supported_inventory_types.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/supported_inventory_types.md b/docs/supported_inventory_types.md index cbdfedc2a..579857e52 100644 --- a/docs/supported_inventory_types.md +++ b/docs/supported_inventory_types.md @@ -154,6 +154,7 @@ See the docs on [how to add a new Extractor](/docs/new_extractor.md). | Tink keyset | `secrets/tinkkeyset` | | Vapid keys | `secrets/vapidkey` | | reCAPTCHA secret keys | `secrets/recaptchakey` | +| Generic JWT tokens | `secrets/jwttoken` | ### Container inventory From d848d28d58f1077dd2ce50a97a3e4949fde522bf Mon Sep 17 00:00:00 2001 From: alessandro-Doyensec Date: Thu, 4 Dec 2025 13:39:15 +0100 Subject: [PATCH 4/4] fix: typo --- veles/secrets/common/jwt/jwt.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/veles/secrets/common/jwt/jwt.go b/veles/secrets/common/jwt/jwt.go index 30b8d9a5d..425edee4d 100644 --- a/veles/secrets/common/jwt/jwt.go +++ b/veles/secrets/common/jwt/jwt.go @@ -42,7 +42,7 @@ type Token struct { raw string // header is the base64 decoded JWT header claims. header map[string]any - // payload is the base64 decoded JWT header claims. + // payload is the base64 decoded JWT payload claims. payload map[string]any // signature is the raw signature section of the JWT. signature string