github.com/google/osv-scalibr@v0.4.1/veles/secrets/gcpsak/detector_test.go (about)

     1  // Copyright 2025 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package gcpsak_test
    16  
    17  import (
    18  	"strings"
    19  	"testing"
    20  
    21  	"github.com/google/go-cmp/cmp"
    22  	"github.com/google/go-cmp/cmp/cmpopts"
    23  	"github.com/google/osv-scalibr/veles"
    24  	"github.com/google/osv-scalibr/veles/secrets/gcpsak"
    25  )
    26  
    27  // TestDetector_truePositives tests the detector's ability to find GCP SAK
    28  // in specific scenarios where the original key material has been altered e.g.
    29  // through escaping. All scenarios work with a single known key.
    30  //
    31  // One challenge here is that the private key itself contains newlines which can
    32  // be subject to escaping. So our test cases need to account for that properly.
    33  func TestDetector_truePositives(t *testing.T) {
    34  	scenarios := []struct {
    35  		name     string
    36  		detector *gcpsak.Detector
    37  		want     []veles.Secret
    38  	}{
    39  		{
    40  			name:     "default detector",
    41  			detector: gcpsak.NewDetector(),
    42  			want: []veles.Secret{
    43  				gcpsak.GCPSAK{
    44  					PrivateKeyID:   exampleKeyID,
    45  					ServiceAccount: exampleServiceAccount,
    46  					Signature:      exampleSignature,
    47  				},
    48  			},
    49  		},
    50  		{
    51  			name:     "with extra fields",
    52  			detector: gcpsak.NewDetectorWithExtraFields(false),
    53  			want: []veles.Secret{
    54  				gcpsak.GCPSAK{
    55  					PrivateKeyID:   exampleKeyID,
    56  					ServiceAccount: exampleServiceAccount,
    57  					Signature:      exampleSignature,
    58  					Extra: &gcpsak.ExtraFields{
    59  						Type:                    "service_account",
    60  						ProjectID:               "some-project-id",
    61  						ClientID:                "some-client-id",
    62  						AuthURI:                 "https://accounts.google.com/o/oauth2/auth",
    63  						TokenURI:                "https://oauth2.googleapis.com/token",
    64  						AuthProviderX509CertURL: "https://www.googleapis.com/oauth2/v1/certs",
    65  						ClientX509CertURL:       "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com",
    66  						UniverseDomain:          "",
    67  					},
    68  				},
    69  			},
    70  		},
    71  		{
    72  			name:     "with private key fields",
    73  			detector: gcpsak.NewDetectorWithExtraFields(true),
    74  			want: []veles.Secret{
    75  				gcpsak.GCPSAK{
    76  					PrivateKeyID:   exampleKeyID,
    77  					ServiceAccount: exampleServiceAccount,
    78  					Signature:      exampleSignature,
    79  					Extra: &gcpsak.ExtraFields{
    80  						Type:                    "service_account",
    81  						ProjectID:               "some-project-id",
    82  						ClientID:                "some-client-id",
    83  						AuthURI:                 "https://accounts.google.com/o/oauth2/auth",
    84  						TokenURI:                "https://oauth2.googleapis.com/token",
    85  						AuthProviderX509CertURL: "https://www.googleapis.com/oauth2/v1/certs",
    86  						ClientX509CertURL:       "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com",
    87  						UniverseDomain:          "",
    88  						PrivateKey:              examplePrivateKey,
    89  					},
    90  				},
    91  			},
    92  		},
    93  	}
    94  	cases := []struct {
    95  		name  string
    96  		input string
    97  	}{
    98  		{
    99  			name: "JSON_(pretty)",
   100  			input: `{
   101  			"type": "service_account",
   102  			"project_id": "some-project-id",
   103  			"private_key_id": "123456789abcdef0123456789abcdef012345678",
   104  			"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   105  			"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   106  			"client_id": "some-client-id",
   107  			"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   108  			"token_uri": "https://oauth2.googleapis.com/token",
   109  			"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   110  			"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   111  		}`,
   112  		},
   113  		{
   114  			name:  "JSON (flat)",
   115  			input: `{"type":"service_account","project_id":"some-project-id","private_key_id":"123456789abcdef0123456789abcdef012345678","private_key":"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n","client_email":"some-service-account@some-project-id.iam.gserviceaccount.com","client_id":"some-client-id","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"}`,
   116  		},
   117  		{
   118  			name: "Sorted_JSON_(pretty)",
   119  			input: `{
   120  			"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   121  			"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   122  			"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   123  			"client_id": "some-client-id",
   124  			"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com",
   125  			"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   126  			"private_key_id": "123456789abcdef0123456789abcdef012345678",
   127  			"project_id": "some-project-id",
   128  			"token_uri": "https://oauth2.googleapis.com/token",
   129  			"type": "service_account"
   130  		}`,
   131  		},
   132  		{
   133  			name:  "Escaped JSON (pretty)",
   134  			input: `"{\n  \"type\": \"service_account\",\n  \"project_id\": \"some-project-id\",\n  \"private_key_id\": \"123456789abcdef0123456789abcdef012345678\",\n  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\",\n  \"client_email\": \"some-service-account@some-project-id.iam.gserviceaccount.com\",\n  \"client_id\": \"some-client-id\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\"\n}"`,
   135  		},
   136  		{
   137  			name:  "Nested JSON (pretty)",
   138  			input: `{"Key":"{\n  \"type\": \"service_account\",\n  \"project_id\": \"some-project-id\",\n  \"private_key_id\": \"123456789abcdef0123456789abcdef012345678\",\n  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\",\n  \"client_email\": \"some-service-account@some-project-id.iam.gserviceaccount.com\",\n  \"client_id\": \"some-client-id\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\"\n}"}`,
   139  		},
   140  		{
   141  			name:  "Double escaped JSON (pretty)",
   142  			input: `"\"{\\n  \\\"type\\\": \\\"service_account\\\",\\n  \\\"project_id\\\": \\\"some-project-id\\\",\\n  \\\"private_key_id\\\": \\\"123456789abcdef0123456789abcdef012345678\\\",\\n  \\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\\\nRsacStLCR1jUc6EzaCaj61w=\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\n  \\\"client_email\\\": \\\"some-service-account@some-project-id.iam.gserviceaccount.com\\\",\\n  \\\"client_id\\\": \\\"some-client-id\\\",\\n  \\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\n  \\\"token_uri\\\": \\\"https://oauth2.googleapis.com/token\\\",\\n  \\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\n  \\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\\\"\\n}\""`,
   143  		},
   144  		{
   145  			name:  "Nested and escaped JSON (pretty)",
   146  			input: `"{\"Key\":\"{\\n  \\\"type\\\": \\\"service_account\\\",\\n  \\\"project_id\\\": \\\"some-project-id\\\",\\n  \\\"private_key_id\\\": \\\"123456789abcdef0123456789abcdef012345678\\\",\\n  \\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\\\nRsacStLCR1jUc6EzaCaj61w=\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\n  \\\"client_email\\\": \\\"some-service-account@some-project-id.iam.gserviceaccount.com\\\",\\n  \\\"client_id\\\": \\\"some-client-id\\\",\\n  \\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\n  \\\"token_uri\\\": \\\"https://oauth2.googleapis.com/token\\\",\\n  \\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\n  \\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\\\"\\n}\"}"`,
   147  		},
   148  		{
   149  			name:  "Escaped and nested JSON (pretty)",
   150  			input: `{"Key":"\"{\\n  \\\"type\\\": \\\"service_account\\\",\\n  \\\"project_id\\\": \\\"some-project-id\\\",\\n  \\\"private_key_id\\\": \\\"123456789abcdef0123456789abcdef012345678\\\",\\n  \\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\\\nRsacStLCR1jUc6EzaCaj61w=\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\n  \\\"client_email\\\": \\\"some-service-account@some-project-id.iam.gserviceaccount.com\\\",\\n  \\\"client_id\\\": \\\"some-client-id\\\",\\n  \\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\n  \\\"token_uri\\\": \\\"https://oauth2.googleapis.com/token\\\",\\n  \\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\n  \\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\\\"\\n}\""}`,
   151  		},
   152  		{
   153  			name:  "Escaped JSON (flat)",
   154  			input: `"{\"type\":\"service_account\",\"project_id\":\"some-project-id\",\"private_key_id\":\"123456789abcdef0123456789abcdef012345678\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\",\"client_email\":\"some-service-account@some-project-id.iam.gserviceaccount.com\",\"client_id\":\"some-client-id\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\"}"`,
   155  		},
   156  		{
   157  			name:  "Nested JSON (flat)",
   158  			input: `{"Key":"{\"type\":\"service_account\",\"project_id\":\"some-project-id\",\"private_key_id\":\"123456789abcdef0123456789abcdef012345678\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\",\"client_email\":\"some-service-account@some-project-id.iam.gserviceaccount.com\",\"client_id\":\"some-client-id\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\"}"}`,
   159  		},
   160  		{
   161  			name:  "Four times escaped JSON (flat)",
   162  			input: `"\"\\\"\\\\\\\"{\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"service_account\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"project_id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"some-project-id\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"private_key_id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"123456789abcdef0123456789abcdef012345678\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"private_key\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"-----BEGIN PRIVATE KEY-----\\\\\\\\\\\\\\\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\\\\\\\\\\\\\\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\\\\\\\\\\\\\\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\\\\\\\\\\\\\\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\\\\\\\\\\\\\\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\\\\\\\\\\\\\\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\\\\\\\\\\\\\\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\\\\\\\\\\\\\\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\\\\\\\\\\\\\\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\\\\\\\\\\\\\\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\\\\\\\\\\\\\\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\\\\\\\\\\\\\\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\\\\\\\\\\\\\\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\\\\\\\\\\\\\\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\\\\\\\\\\\\\\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\\\\\\\\\\\\\\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\\\\\\\\\\\\\\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\\\\\\\\\\\\\\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\\\\\\\\\\\\\\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\\\\\\\\\\\\\\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\\\\\\\\\\\\\\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\\\\\\\\\\\\\\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\\\\\\\\\\\\\\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\\\\\\\\\\\\\\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\\\\\\\\\\\\\\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\\\\\\\\\\\\\\\nRsacStLCR1jUc6EzaCaj61w=\\\\\\\\\\\\\\\\n-----END PRIVATE KEY-----\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"client_email\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"some-service-account@some-project-id.iam.gserviceaccount.com\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"client_id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"some-client-id\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"auth_uri\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"https://accounts.google.com/o/oauth2/auth\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"token_uri\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"https://oauth2.googleapis.com/token\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"auth_provider_x509_cert_url\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"https://www.googleapis.com/oauth2/v1/certs\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"client_x509_cert_url\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\\\\\\\\\\\\\\\"}\\\\\\\"\\\"\""`,
   163  		},
   164  		{
   165  			name: "C++_multiline_string",
   166  			input: `constexpr char kKey[] = R"""({
   167  			"type": "service_account",
   168  			"project_id": "some-project-id",
   169  			"private_key_id": "123456789abcdef0123456789abcdef012345678",
   170  			"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   171  			"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   172  			"client_id": "some-client-id",
   173  			"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   174  			"token_uri": "https://oauth2.googleapis.com/token",
   175  			"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   176  			"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   177  		})""";`,
   178  		},
   179  		{
   180  			name: "Go_raw_string",
   181  			input: "`" + `{
   182  			"type": "service_account",
   183  			"project_id": "some-project-id",
   184  			"private_key_id": "123456789abcdef0123456789abcdef012345678",
   185  			"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   186  			"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   187  			"client_id": "some-client-id",
   188  			"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   189  			"token_uri": "https://oauth2.googleapis.com/token",
   190  			"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   191  			"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   192  	}` + "`",
   193  		},
   194  		{
   195  			name: "Go_map_of_raw_strings",
   196  			input: `
   197  var foo = map[string]string{
   198  "foo": ` + "`" + `{
   199  		"type": "service_account",
   200  				"project_id": "some-project-id",
   201  				"private_key_id": "123456789abcdef0123456789abcdef012345678",
   202  				"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   203  				"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   204  				"client_id": "some-client-id",
   205  				"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   206  				"token_uri": "https://oauth2.googleapis.com/token",
   207  				"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   208  				"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   209  	}` + "`" + `,
   210  }
   211  `,
   212  		},
   213  		{
   214  			name: "YAML_(multiline)",
   215  			input: `  content: |
   216  				{
   217  					"type": "service_account",
   218  					"project_id": "some-project-id",
   219  					"private_key_id": "123456789abcdef0123456789abcdef012345678",
   220  					"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   221  					"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   222  					"client_id": "some-client-id",
   223  					"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   224  					"token_uri": "https://oauth2.googleapis.com/token",
   225  					"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   226  					"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   227  				}`,
   228  		},
   229  		{
   230  			name: "Commented_out_JSON_(dashes)",
   231  			input: `-- {
   232  		--   "type": "service_account",
   233  		--   "project_id": "some-project-id",
   234  		--   "private_key_id": "123456789abcdef0123456789abcdef012345678",
   235  		--   "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   236  		--   "client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   237  		--   "client_id": "some-client-id",
   238  		--   "auth_uri": "https://accounts.google.com/o/oauth2/auth",
   239  		--   "token_uri": "https://oauth2.googleapis.com/token",
   240  		--   "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   241  		--   "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   242  		-- }`,
   243  		},
   244  		{
   245  			name: "Commented_out_JSON_(hashes)",
   246  			input: `# {
   247  		#   "type": "service_account",
   248  		#   "project_id": "some-project-id",
   249  		#   "private_key_id": "123456789abcdef0123456789abcdef012345678",
   250  		#   "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   251  		#   "client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   252  		#   "client_id": "some-client-id",
   253  		#   "auth_uri": "https://accounts.google.com/o/oauth2/auth",
   254  		#   "token_uri": "https://oauth2.googleapis.com/token",
   255  		#   "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   256  		#   "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   257  		# }`,
   258  		},
   259  		{
   260  			name: "Commented_out_JSON_(slashes)",
   261  			input: `// {
   262  		//   "type": "service_account",
   263  		//   "project_id": "some-project-id",
   264  		//   "private_key_id": "123456789abcdef0123456789abcdef012345678",
   265  		//   "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   266  		//   "client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   267  		//   "client_id": "some-client-id",
   268  		//   "auth_uri": "https://accounts.google.com/o/oauth2/auth",
   269  		//   "token_uri": "https://oauth2.googleapis.com/token",
   270  		//   "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   271  		//   "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"
   272  		// }`,
   273  		},
   274  		{
   275  			name:  "Base64 (pretty JSON)",
   276  			input: `ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAic29tZS1wcm9qZWN0LWlkIiwKICAicHJpdmF0ZV9rZXlfaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3OCIsCiAgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFDc1FmUTUyNGpTQ3RBaVxuMFJield1bzNTNmpKalR5ZFllU08vY0tvdUVPbWhLTG9VeFdWRVhHQzcwTUZML2VkNVhxcFI4MmFtSlp3enhMTlxudFdRQUJ3TEdMa2ZENGFENE1BV3ByU2pSQXY5WVNVSTVzK05qaXFncHpOdWx5c2dRbUtEeTN6Z3E0Y0FRdEt6blxualdnWmpNclhWUXoxVWhSWkFpTy94RGIveDZzdy80RE1KcHR3MnpIdnh4TW5SUi9vOTNVTStmeUo2TDk5VU5oQ1xuekxJcDlJVDhKUUVoUXU2OFBiZ3JodTA0c3lyVU9ZUHJXTHRwQ0RjODBoUFc5QS9VSmlXWWtaY3hoSFNFWHRzTlxuZE5HbEI1UytqSUVaRHF5TGFIUkoydmF1ZDVDRWQ4Q1RSUGhJTTFBU25qMzYrRnlRQTJZUmFGdkpvZnc3Nk4xV1xuSjlCTXJKYWRBZ01CQUFFQ2dnRUFDdjFHTEc3Q0FzeG56T0RUK3dDQTByaEQ4MS9NVHlvUW44SzJxWGJmOGY2aVxuT2ZvYTlXQ2dnajdyWXFoVnZzQUdIRWlWYUZoMXVJcXRZMnhBRGZSa2krb2w3K3cwRGNGYWl5R2Q2ZityOUtEdlxuMWFpUlNDZHZaUU5KdkFEODFIbzRRbVpWT2Y4ZTlySGdHZ0dlYzRyVTRmbnVFclNDMGM3ZUl2ek1tWExPakJpVlxuM2NoOUNITzdpS3Awa3JMZnNTbkFIbkszb3ZlNWtHQkE2QTNzWXdSKy83NjgwaS9hb0M3bDNndFhoME1XMkU5aFxua2tMS2M5VnFaZW5yTWxYb01RbmdJNmMwSWkvQW50UWJiM2Frb21ucWxhaklhME9pYkJMWVRKYnYyNkNoVWxzTlxuQTZTR1FISVhlbU0rSHVpQWgvVTZBQXZsWGtUU0dRc083OGZFdHd2QzdRS0JnUURubE5JVDNDa3FUbWV2K3Arb1xuUjM0Um1UL2MrOE5MQ1V2OHJkQnRVTkVyWTQveS9MYWdnMG9xNm5QdS9wK0tMblM3M3ljR2hzU0JVYkFjOCt3eVxub0VneTRCNGU5Mmp6bTBOeEZ2OGkzY1kyOU80cXh0bjk5a2ZLcmZzY3NNY3F5Y3B4YmRvVHBQZ1J5aEZHc0lUdVxuWjhsQnFGRFVVbGNvd0VOdUptRG5OYlF3NHdLQmdRQythOGcwQWFNSGkzUUJ6MjJLZkxXZTlIRHk4RGF3WS96eFxuSGFqb28rL2E1YzhCT2wyWldUK1lkblFSV3N2cjM3MHlQY1NOV2tnNk53bW1TeDFERjNQVHBSVGlJVUZhNmF6QlxubTdhRXhZSFhTdW1WVXNEcW11MlRETVJWQndiNmxDUVNUWTBReVN3dmYyM2tQVCthZFlOdnRMZHZWTjZzTHB3d1xubnI0ZjF4UXlmd0tCZ1FDazVFcFE2Y3BGM1YzbTU4VVd4UkQyNXUrYUlZbUV2REhtMEx3L21mUFZ1U2FlRldMVVxuRjZlUHR6Q2xVNWUxaEM2S052SktxMXJ2MllKVW16bnJNa1UyTkc0K0Rsd2tXTUZFbk9NOXFEdWlsZk9mY2NkMlxuRlE0NU9uZzZqWVRDNnJ2QzJEMFhEN2V5c3ZacUp2WC82dFphY2NaYjUrVTNsdTVzVjlkWHlkMXJrUUtCZ0I1aFxuWTllb1N6Snc5VmswbHUxNWFDQ3NMemtUU2lacVRYakttcUJEUjRsTkVQSEpOaFc1UDRRN29ka0MrM1h1aEdqM1xub2R4TGd5cUdqV3VTb0dDTDVWYm5CNlhzV0ZrQTN5Y2tpTUkySUxrUW9xUElTQzhsK0xGMVgvMlEyWFF4SG5BdFxuSDB5R1RCNW4za2lEM1JudmxjREV2Rjl1MHZmMWw4WEtEZHRXblVwUkFvR0FQZVJ2QkdzVFhEMGM2MkZBUTdDdFxuSDdlN0lscVMwaUtmUlY1L2NtVURldUZEOFJCSzRpWkZUbENBVnFha2RtalVsZkpQYjYwRDN4d2xKcENvWlNLaVxuMmxZOVJqN3lwUmlUVW9UMzVuVlZIdzhlandZQk1hd280R2thcWQxOThtWXhVb2dKdk91VGNHSjUwOURkVGFja1xuUnNhY1N0TENSMWpVYzZFemFDYWo2MXc9XG4tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXG4iLAogICJjbGllbnRfZW1haWwiOiAic29tZS1zZXJ2aWNlLWFjY291bnRAc29tZS1wcm9qZWN0LWlkLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwKICAiY2xpZW50X2lkIjogInNvbWUtY2xpZW50LWlkIiwKICAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLAogICJ0b2tlbl91cmkiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLAogICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwKICAiY2xpZW50X3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9zb21lLXNlcnZpY2UtYWNjb3VudCU0MHNvbWUtcHJvamVjdC1pZC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIKfQ==`,
   277  		},
   278  		{
   279  			name:  "Base64 (pretty JSON) - nested",
   280  			input: `{"Key":"ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAic29tZS1wcm9qZWN0LWlkIiwKICAicHJpdmF0ZV9rZXlfaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3OCIsCiAgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFDc1FmUTUyNGpTQ3RBaVxuMFJield1bzNTNmpKalR5ZFllU08vY0tvdUVPbWhLTG9VeFdWRVhHQzcwTUZML2VkNVhxcFI4MmFtSlp3enhMTlxudFdRQUJ3TEdMa2ZENGFENE1BV3ByU2pSQXY5WVNVSTVzK05qaXFncHpOdWx5c2dRbUtEeTN6Z3E0Y0FRdEt6blxualdnWmpNclhWUXoxVWhSWkFpTy94RGIveDZzdy80RE1KcHR3MnpIdnh4TW5SUi9vOTNVTStmeUo2TDk5VU5oQ1xuekxJcDlJVDhKUUVoUXU2OFBiZ3JodTA0c3lyVU9ZUHJXTHRwQ0RjODBoUFc5QS9VSmlXWWtaY3hoSFNFWHRzTlxuZE5HbEI1UytqSUVaRHF5TGFIUkoydmF1ZDVDRWQ4Q1RSUGhJTTFBU25qMzYrRnlRQTJZUmFGdkpvZnc3Nk4xV1xuSjlCTXJKYWRBZ01CQUFFQ2dnRUFDdjFHTEc3Q0FzeG56T0RUK3dDQTByaEQ4MS9NVHlvUW44SzJxWGJmOGY2aVxuT2ZvYTlXQ2dnajdyWXFoVnZzQUdIRWlWYUZoMXVJcXRZMnhBRGZSa2krb2w3K3cwRGNGYWl5R2Q2ZityOUtEdlxuMWFpUlNDZHZaUU5KdkFEODFIbzRRbVpWT2Y4ZTlySGdHZ0dlYzRyVTRmbnVFclNDMGM3ZUl2ek1tWExPakJpVlxuM2NoOUNITzdpS3Awa3JMZnNTbkFIbkszb3ZlNWtHQkE2QTNzWXdSKy83NjgwaS9hb0M3bDNndFhoME1XMkU5aFxua2tMS2M5VnFaZW5yTWxYb01RbmdJNmMwSWkvQW50UWJiM2Frb21ucWxhaklhME9pYkJMWVRKYnYyNkNoVWxzTlxuQTZTR1FISVhlbU0rSHVpQWgvVTZBQXZsWGtUU0dRc083OGZFdHd2QzdRS0JnUURubE5JVDNDa3FUbWV2K3Arb1xuUjM0Um1UL2MrOE5MQ1V2OHJkQnRVTkVyWTQveS9MYWdnMG9xNm5QdS9wK0tMblM3M3ljR2hzU0JVYkFjOCt3eVxub0VneTRCNGU5Mmp6bTBOeEZ2OGkzY1kyOU80cXh0bjk5a2ZLcmZzY3NNY3F5Y3B4YmRvVHBQZ1J5aEZHc0lUdVxuWjhsQnFGRFVVbGNvd0VOdUptRG5OYlF3NHdLQmdRQythOGcwQWFNSGkzUUJ6MjJLZkxXZTlIRHk4RGF3WS96eFxuSGFqb28rL2E1YzhCT2wyWldUK1lkblFSV3N2cjM3MHlQY1NOV2tnNk53bW1TeDFERjNQVHBSVGlJVUZhNmF6QlxubTdhRXhZSFhTdW1WVXNEcW11MlRETVJWQndiNmxDUVNUWTBReVN3dmYyM2tQVCthZFlOdnRMZHZWTjZzTHB3d1xubnI0ZjF4UXlmd0tCZ1FDazVFcFE2Y3BGM1YzbTU4VVd4UkQyNXUrYUlZbUV2REhtMEx3L21mUFZ1U2FlRldMVVxuRjZlUHR6Q2xVNWUxaEM2S052SktxMXJ2MllKVW16bnJNa1UyTkc0K0Rsd2tXTUZFbk9NOXFEdWlsZk9mY2NkMlxuRlE0NU9uZzZqWVRDNnJ2QzJEMFhEN2V5c3ZacUp2WC82dFphY2NaYjUrVTNsdTVzVjlkWHlkMXJrUUtCZ0I1aFxuWTllb1N6Snc5VmswbHUxNWFDQ3NMemtUU2lacVRYakttcUJEUjRsTkVQSEpOaFc1UDRRN29ka0MrM1h1aEdqM1xub2R4TGd5cUdqV3VTb0dDTDVWYm5CNlhzV0ZrQTN5Y2tpTUkySUxrUW9xUElTQzhsK0xGMVgvMlEyWFF4SG5BdFxuSDB5R1RCNW4za2lEM1JudmxjREV2Rjl1MHZmMWw4WEtEZHRXblVwUkFvR0FQZVJ2QkdzVFhEMGM2MkZBUTdDdFxuSDdlN0lscVMwaUtmUlY1L2NtVURldUZEOFJCSzRpWkZUbENBVnFha2RtalVsZkpQYjYwRDN4d2xKcENvWlNLaVxuMmxZOVJqN3lwUmlUVW9UMzVuVlZIdzhlandZQk1hd280R2thcWQxOThtWXhVb2dKdk91VGNHSjUwOURkVGFja1xuUnNhY1N0TENSMWpVYzZFemFDYWo2MXc9XG4tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXG4iLAogICJjbGllbnRfZW1haWwiOiAic29tZS1zZXJ2aWNlLWFjY291bnRAc29tZS1wcm9qZWN0LWlkLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwKICAiY2xpZW50X2lkIjogInNvbWUtY2xpZW50LWlkIiwKICAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLAogICJ0b2tlbl91cmkiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLAogICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwKICAiY2xpZW50X3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9zb21lLXNlcnZpY2UtYWNjb3VudCU0MHNvbWUtcHJvamVjdC1pZC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIKfQ=="}`,
   281  		},
   282  		{
   283  			name: "Python_dict_(double_quotes)",
   284  			input: `{
   285  			"type": "service_account",
   286  			"project_id": "some-project-id",
   287  			"private_key_id": "123456789abcdef0123456789abcdef012345678",
   288  			"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n",
   289  			"client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",
   290  			"client_id": "some-client-id",
   291  			"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   292  			"token_uri": "https://oauth2.googleapis.com/token",
   293  			"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   294  			"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com",
   295  		}`,
   296  		},
   297  		{
   298  			name: "IPython",
   299  			input: `"source": [
   300  				"{\n",
   301  				"  \"type\": \"service_account\",\n",
   302  				"  \"project_id\": \"some-project-id\",\n",
   303  				"  \"private_key_id\": \"123456789abcdef0123456789abcdef012345678\",\n",
   304  				"  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\",\n",
   305  				"  \"client_email\": \"some-service-account@some-project-id.iam.gserviceaccount.com\",\n",
   306  				"  \"client_id\": \"some-client-id\",\n",
   307  				"  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n",
   308  				"  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n",
   309  				"  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n",
   310  				"  \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\"\n",
   311  				"}",
   312  		],`,
   313  		},
   314  		{
   315  			name: "C-style_multiline_string",
   316  			input: `const char *key = 
   317  			"{"
   318  			"  \"type\": \"service_account\","
   319  			"  \"project_id\": \"some-project-id\","
   320  			"  \"private_key_id\": \"123456789abcdef0123456789abcdef012345678\","
   321  			"  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n\","
   322  			"  \"client_email\": \"some-service-account@some-project-id.iam.gserviceaccount.com\","
   323  			"  \"client_id\": \"some-client-id\","
   324  			"  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\","
   325  			"  \"token_uri\": \"https://oauth2.googleapis.com/token\","
   326  			"  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\","
   327  			"  \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com\""
   328  			"}";`,
   329  		},
   330  		{
   331  			name: "Alternative_Python_multiline_string",
   332  			input: `key = '' \
   333  				'{\n' \
   334  				'  "type": "service_account",\n' \
   335  				'  "project_id": "some-project-id",\n' \
   336  				'  "private_key_id": "123456789abcdef0123456789abcdef012345678",\n' \
   337  				'  "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\\nRsacStLCR1jUc6EzaCaj61w=\\n-----END PRIVATE KEY-----\\n",\n' \
   338  				'  "client_email": "some-service-account@some-project-id.iam.gserviceaccount.com",\n' \
   339  				'  "client_id": "some-client-id",\n' \
   340  				'  "auth_uri": "https://accounts.google.com/o/oauth2/auth",\n' \
   341  				'  "token_uri": "https://oauth2.googleapis.com/token",\n' \
   342  				'  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",\n' \
   343  				'  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com"\n' \
   344  				'}'`,
   345  		},
   346  	}
   347  	for _, scenario := range scenarios {
   348  		t.Run(scenario.name, func(t *testing.T) {
   349  			t.Parallel()
   350  			engine, err := veles.NewDetectionEngine([]veles.Detector{scenario.detector})
   351  			if err != nil {
   352  				t.Errorf("veles.NewDetectionEngine() error: %v", err)
   353  			}
   354  			want := scenario.want
   355  			for _, tc := range cases {
   356  				t.Run(tc.name, func(t *testing.T) {
   357  					t.Parallel()
   358  					got, err := engine.Detect(t.Context(), strings.NewReader(tc.input))
   359  					if err != nil {
   360  						t.Errorf("Detect() error: %v, want nil", err)
   361  					}
   362  					if diff := cmp.Diff(want, got, cmpopts.EquateEmpty()); diff != "" {
   363  						t.Errorf("Detect() diff (-want +got):\n%s", diff)
   364  					}
   365  				})
   366  			}
   367  		})
   368  	}
   369  }
   370  
   371  // TestDetector_trueNegatives tests for cases where we know the Detector
   372  // won't show a false positive that other secret scanners might.
   373  func TestDetector_trueNegatives(t *testing.T) {
   374  	engine, err := veles.NewDetectionEngine([]veles.Detector{gcpsak.NewDetector()})
   375  	if err != nil {
   376  		t.Errorf("veles.NewDetectionEngine() error: %v", err)
   377  	}
   378  	cases := []struct {
   379  		name  string
   380  		input string
   381  	}{
   382  		{
   383  			name:  "empty input",
   384  			input: "",
   385  		},
   386  		{
   387  			// If a scanner were to use "auth_provider_x509_cert_url" as a hotword and
   388  			// then rely on Go's permissive JSON parsing to extract the key, it could
   389  			// surface this as a false positive.
   390  			name: "OAuth2_token",
   391  			input: `{
   392  				"installed": {
   393  					"client_id": "this-should-not-be-a-real-app.apps.googleusercontent.com",
   394  					"project_id": "some-project",
   395  					"auth_uri": "https://accounts.google.com/o/oauth2/auth",
   396  					"token_uri": "https://oauth2.googleapis.com/token",
   397  					"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
   398  					"client_secret": "GOCSPX-FOO_BARBARBAR7_1234567890a",
   399  					"redirect_uris": ["http://localhost"]
   400  				}
   401  			}`,
   402  		},
   403  	}
   404  	var want []veles.Secret
   405  	for _, tc := range cases {
   406  		t.Run(tc.name, func(t *testing.T) {
   407  			t.Parallel()
   408  			got, err := engine.Detect(t.Context(), strings.NewReader(tc.input))
   409  			if err != nil {
   410  				t.Errorf("Detect() error: %v, want nil", err)
   411  			}
   412  			if diff := cmp.Diff(want, got, cmpopts.EquateEmpty()); diff != "" {
   413  				t.Errorf("Detect() diff (-want +got):\n%s", diff)
   414  			}
   415  		})
   416  	}
   417  }
   418  
   419  // TestDetector_falseNegatives explicitly lists and tests for cases where we
   420  // know the Detector won't find a GCP SAK.
   421  func TestDetector_falseNegatives(t *testing.T) {
   422  	engine, err := veles.NewDetectionEngine([]veles.Detector{gcpsak.NewDetector()})
   423  	if err != nil {
   424  		t.Errorf("veles.NewDetectionEngine() error: %v", err)
   425  	}
   426  	cases := []struct {
   427  		name  string
   428  		input string
   429  	}{
   430  		{
   431  			name:  "Base64 (pretty JSON, sorted)",
   432  			input: `ewogICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwKICAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLAogICJjbGllbnRfZW1haWwiOiAic29tZS1zZXJ2aWNlLWFjY291bnRAc29tZS1wcm9qZWN0LWlkLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwKICAiY2xpZW50X2lkIjogInNvbWUtY2xpZW50LWlkIiwKICAiY2xpZW50X3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9zb21lLXNlcnZpY2UtYWNjb3VudCU0MHNvbWUtcHJvamVjdC1pZC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCiAgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFDc1FmUTUyNGpTQ3RBaVxuMFJield1bzNTNmpKalR5ZFllU08vY0tvdUVPbWhLTG9VeFdWRVhHQzcwTUZML2VkNVhxcFI4MmFtSlp3enhMTlxudFdRQUJ3TEdMa2ZENGFENE1BV3ByU2pSQXY5WVNVSTVzK05qaXFncHpOdWx5c2dRbUtEeTN6Z3E0Y0FRdEt6blxualdnWmpNclhWUXoxVWhSWkFpTy94RGIveDZzdy80RE1KcHR3MnpIdnh4TW5SUi9vOTNVTStmeUo2TDk5VU5oQ1xuekxJcDlJVDhKUUVoUXU2OFBiZ3JodTA0c3lyVU9ZUHJXTHRwQ0RjODBoUFc5QS9VSmlXWWtaY3hoSFNFWHRzTlxuZE5HbEI1UytqSUVaRHF5TGFIUkoydmF1ZDVDRWQ4Q1RSUGhJTTFBU25qMzYrRnlRQTJZUmFGdkpvZnc3Nk4xV1xuSjlCTXJKYWRBZ01CQUFFQ2dnRUFDdjFHTEc3Q0FzeG56T0RUK3dDQTByaEQ4MS9NVHlvUW44SzJxWGJmOGY2aVxuT2ZvYTlXQ2dnajdyWXFoVnZzQUdIRWlWYUZoMXVJcXRZMnhBRGZSa2krb2w3K3cwRGNGYWl5R2Q2ZityOUtEdlxuMWFpUlNDZHZaUU5KdkFEODFIbzRRbVpWT2Y4ZTlySGdHZ0dlYzRyVTRmbnVFclNDMGM3ZUl2ek1tWExPakJpVlxuM2NoOUNITzdpS3Awa3JMZnNTbkFIbkszb3ZlNWtHQkE2QTNzWXdSKy83NjgwaS9hb0M3bDNndFhoME1XMkU5aFxua2tMS2M5VnFaZW5yTWxYb01RbmdJNmMwSWkvQW50UWJiM2Frb21ucWxhaklhME9pYkJMWVRKYnYyNkNoVWxzTlxuQTZTR1FISVhlbU0rSHVpQWgvVTZBQXZsWGtUU0dRc083OGZFdHd2QzdRS0JnUURubE5JVDNDa3FUbWV2K3Arb1xuUjM0Um1UL2MrOE5MQ1V2OHJkQnRVTkVyWTQveS9MYWdnMG9xNm5QdS9wK0tMblM3M3ljR2hzU0JVYkFjOCt3eVxub0VneTRCNGU5Mmp6bTBOeEZ2OGkzY1kyOU80cXh0bjk5a2ZLcmZzY3NNY3F5Y3B4YmRvVHBQZ1J5aEZHc0lUdVxuWjhsQnFGRFVVbGNvd0VOdUptRG5OYlF3NHdLQmdRQythOGcwQWFNSGkzUUJ6MjJLZkxXZTlIRHk4RGF3WS96eFxuSGFqb28rL2E1YzhCT2wyWldUK1lkblFSV3N2cjM3MHlQY1NOV2tnNk53bW1TeDFERjNQVHBSVGlJVUZhNmF6QlxubTdhRXhZSFhTdW1WVXNEcW11MlRETVJWQndiNmxDUVNUWTBReVN3dmYyM2tQVCthZFlOdnRMZHZWTjZzTHB3d1xubnI0ZjF4UXlmd0tCZ1FDazVFcFE2Y3BGM1YzbTU4VVd4UkQyNXUrYUlZbUV2REhtMEx3L21mUFZ1U2FlRldMVVxuRjZlUHR6Q2xVNWUxaEM2S052SktxMXJ2MllKVW16bnJNa1UyTkc0K0Rsd2tXTUZFbk9NOXFEdWlsZk9mY2NkMlxuRlE0NU9uZzZqWVRDNnJ2QzJEMFhEN2V5c3ZacUp2WC82dFphY2NaYjUrVTNsdTVzVjlkWHlkMXJrUUtCZ0I1aFxuWTllb1N6Snc5VmswbHUxNWFDQ3NMemtUU2lacVRYakttcUJEUjRsTkVQSEpOaFc1UDRRN29ka0MrM1h1aEdqM1xub2R4TGd5cUdqV3VTb0dDTDVWYm5CNlhzV0ZrQTN5Y2tpTUkySUxrUW9xUElTQzhsK0xGMVgvMlEyWFF4SG5BdFxuSDB5R1RCNW4za2lEM1JudmxjREV2Rjl1MHZmMWw4WEtEZHRXblVwUkFvR0FQZVJ2QkdzVFhEMGM2MkZBUTdDdFxuSDdlN0lscVMwaUtmUlY1L2NtVURldUZEOFJCSzRpWkZUbENBVnFha2RtalVsZkpQYjYwRDN4d2xKcENvWlNLaVxuMmxZOVJqN3lwUmlUVW9UMzVuVlZIdzhlandZQk1hd280R2thcWQxOThtWXhVb2dKdk91VGNHSjUwOURkVGFja1xuUnNhY1N0TENSMWpVYzZFemFDYWo2MXc9XG4tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXG4iLAogICJwcml2YXRlX2tleV9pZCI6ICIxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4IiwKICAicHJvamVjdF9pZCI6ICJzb21lLXByb2plY3QtaWQiLAogICJ0b2tlbl91cmkiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLAogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIKfQ==`,
   433  		},
   434  		{
   435  			name:  "Base64 (flat JSON)",
   436  			input: `eyJ0eXBlIjoic2VydmljZV9hY2NvdW50IiwicHJvamVjdF9pZCI6InNvbWUtcHJvamVjdC1pZCIsInByaXZhdGVfa2V5X2lkIjoiMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3OCIsInByaXZhdGVfa2V5IjoiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdlFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLY3dnZ1NqQWdFQUFvSUJBUUNzUWZRNTI0alNDdEFpXG4wUmJ6V3VvM1M2akpqVHlkWWVTTy9jS291RU9taEtMb1V4V1ZFWEdDNzBNRkwvZWQ1WHFwUjgyYW1KWnd6eExOXG50V1FBQndMR0xrZkQ0YUQ0TUFXcHJTalJBdjlZU1VJNXMrTmppcWdwek51bHlzZ1FtS0R5M3pncTRjQVF0S3puXG5qV2daak1yWFZRejFVaFJaQWlPL3hEYi94NnN3LzRETUpwdHcyekh2eHhNblJSL285M1VNK2Z5SjZMOTlVTmhDXG56TElwOUlUOEpRRWhRdTY4UGJncmh1MDRzeXJVT1lQcldMdHBDRGM4MGhQVzlBL1VKaVdZa1pjeGhIU0VYdHNOXG5kTkdsQjVTK2pJRVpEcXlMYUhSSjJ2YXVkNUNFZDhDVFJQaElNMUFTbmozNitGeVFBMllSYUZ2Sm9mdzc2TjFXXG5KOUJNckphZEFnTUJBQUVDZ2dFQUN2MUdMRzdDQXN4bnpPRFQrd0NBMHJoRDgxL01UeW9RbjhLMnFYYmY4ZjZpXG5PZm9hOVdDZ2dqN3JZcWhWdnNBR0hFaVZhRmgxdUlxdFkyeEFEZlJraStvbDcrdzBEY0ZhaXlHZDZmK3I5S0R2XG4xYWlSU0NkdlpRTkp2QUQ4MUhvNFFtWlZPZjhlOXJIZ0dnR2VjNHJVNGZudUVyU0MwYzdlSXZ6TW1YTE9qQmlWXG4zY2g5Q0hPN2lLcDBrckxmc1NuQUhuSzNvdmU1a0dCQTZBM3NZd1IrLzc2ODBpL2FvQzdsM2d0WGgwTVcyRTloXG5ra0xLYzlWcVplbnJNbFhvTVFuZ0k2YzBJaS9BbnRRYmIzYWtvbW5xbGFqSWEwT2liQkxZVEpidjI2Q2hVbHNOXG5BNlNHUUhJWGVtTStIdWlBaC9VNkFBdmxYa1RTR1FzTzc4ZkV0d3ZDN1FLQmdRRG5sTklUM0NrcVRtZXYrcCtvXG5SMzRSbVQvYys4TkxDVXY4cmRCdFVORXJZNC95L0xhZ2cwb3E2blB1L3ArS0xuUzczeWNHaHNTQlViQWM4K3d5XG5vRWd5NEI0ZTkyanptME54RnY4aTNjWTI5TzRxeHRuOTlrZktyZnNjc01jcXljcHhiZG9UcFBnUnloRkdzSVR1XG5aOGxCcUZEVVVsY293RU51Sm1Ebk5iUXc0d0tCZ1FDK2E4ZzBBYU1IaTNRQnoyMktmTFdlOUhEeThEYXdZL3p4XG5IYWpvbysvYTVjOEJPbDJaV1QrWWRuUVJXc3ZyMzcweVBjU05Xa2c2TndtbVN4MURGM1BUcFJUaUlVRmE2YXpCXG5tN2FFeFlIWFN1bVZVc0RxbXUyVERNUlZCd2I2bENRU1RZMFF5U3d2ZjIza1BUK2FkWU52dExkdlZONnNMcHd3XG5ucjRmMXhReWZ3S0JnUUNrNUVwUTZjcEYzVjNtNThVV3hSRDI1dSthSVltRXZESG0wTHcvbWZQVnVTYWVGV0xVXG5GNmVQdHpDbFU1ZTFoQzZLTnZKS3ExcnYyWUpVbXpuck1rVTJORzQrRGx3a1dNRkVuT005cUR1aWxmT2ZjY2QyXG5GUTQ1T25nNmpZVEM2cnZDMkQwWEQ3ZXlzdlpxSnZYLzZ0WmFjY1piNStVM2x1NXNWOWRYeWQxcmtRS0JnQjVoXG5ZOWVvU3pKdzlWazBsdTE1YUNDc0x6a1RTaVpxVFhqS21xQkRSNGxORVBISk5oVzVQNFE3b2RrQyszWHVoR2ozXG5vZHhMZ3lxR2pXdVNvR0NMNVZibkI2WHNXRmtBM3lja2lNSTJJTGtRb3FQSVNDOGwrTEYxWC8yUTJYUXhIbkF0XG5IMHlHVEI1bjNraUQzUm52bGNERXZGOXUwdmYxbDhYS0RkdFduVXBSQW9HQVBlUnZCR3NUWEQwYzYyRkFRN0N0XG5IN2U3SWxxUzBpS2ZSVjUvY21VRGV1RkQ4UkJLNGlaRlRsQ0FWcWFrZG1qVWxmSlBiNjBEM3h3bEpwQ29aU0tpXG4ybFk5Umo3eXBSaVRVb1QzNW5WVkh3OGVqd1lCTWF3bzRHa2FxZDE5OG1ZeFVvZ0p2T3VUY0dKNTA5RGRUYWNrXG5Sc2FjU3RMQ1IxalVjNkV6YUNhajYxdz1cbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsImNsaWVudF9lbWFpbCI6InNvbWUtc2VydmljZS1hY2NvdW50QHNvbWUtcHJvamVjdC1pZC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsImNsaWVudF9pZCI6InNvbWUtY2xpZW50LWlkIiwiYXV0aF91cmkiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCIsInRva2VuX3VyaSI6Imh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwiYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwiY2xpZW50X3g1MDlfY2VydF91cmwiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9yb2JvdC92MS9tZXRhZGF0YS94NTA5L3NvbWUtc2VydmljZS1hY2NvdW50JTQwc29tZS1wcm9qZWN0LWlkLmlhbS5nc2VydmljZWFjY291bnQuY29tIn0=`,
   437  		},
   438  		{
   439  			name:  "Base64 (different whitespace)",
   440  			input: `ewoJInR5cGUiOiAic2VydmljZV9hY2NvdW50IiwKCSJwcm9qZWN0X2lkIjogInNvbWUtcHJvamVjdC1pZCIsCgkicHJpdmF0ZV9rZXlfaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3OCIsCgkicHJpdmF0ZV9rZXkiOiAiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdlFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLY3dnZ1NqQWdFQUFvSUJBUUNzUWZRNTI0alNDdEFpXG4wUmJ6V3VvM1M2akpqVHlkWWVTTy9jS291RU9taEtMb1V4V1ZFWEdDNzBNRkwvZWQ1WHFwUjgyYW1KWnd6eExOXG50V1FBQndMR0xrZkQ0YUQ0TUFXcHJTalJBdjlZU1VJNXMrTmppcWdwek51bHlzZ1FtS0R5M3pncTRjQVF0S3puXG5qV2daak1yWFZRejFVaFJaQWlPL3hEYi94NnN3LzRETUpwdHcyekh2eHhNblJSL285M1VNK2Z5SjZMOTlVTmhDXG56TElwOUlUOEpRRWhRdTY4UGJncmh1MDRzeXJVT1lQcldMdHBDRGM4MGhQVzlBL1VKaVdZa1pjeGhIU0VYdHNOXG5kTkdsQjVTK2pJRVpEcXlMYUhSSjJ2YXVkNUNFZDhDVFJQaElNMUFTbmozNitGeVFBMllSYUZ2Sm9mdzc2TjFXXG5KOUJNckphZEFnTUJBQUVDZ2dFQUN2MUdMRzdDQXN4bnpPRFQrd0NBMHJoRDgxL01UeW9RbjhLMnFYYmY4ZjZpXG5PZm9hOVdDZ2dqN3JZcWhWdnNBR0hFaVZhRmgxdUlxdFkyeEFEZlJraStvbDcrdzBEY0ZhaXlHZDZmK3I5S0R2XG4xYWlSU0NkdlpRTkp2QUQ4MUhvNFFtWlZPZjhlOXJIZ0dnR2VjNHJVNGZudUVyU0MwYzdlSXZ6TW1YTE9qQmlWXG4zY2g5Q0hPN2lLcDBrckxmc1NuQUhuSzNvdmU1a0dCQTZBM3NZd1IrLzc2ODBpL2FvQzdsM2d0WGgwTVcyRTloXG5ra0xLYzlWcVplbnJNbFhvTVFuZ0k2YzBJaS9BbnRRYmIzYWtvbW5xbGFqSWEwT2liQkxZVEpidjI2Q2hVbHNOXG5BNlNHUUhJWGVtTStIdWlBaC9VNkFBdmxYa1RTR1FzTzc4ZkV0d3ZDN1FLQmdRRG5sTklUM0NrcVRtZXYrcCtvXG5SMzRSbVQvYys4TkxDVXY4cmRCdFVORXJZNC95L0xhZ2cwb3E2blB1L3ArS0xuUzczeWNHaHNTQlViQWM4K3d5XG5vRWd5NEI0ZTkyanptME54RnY4aTNjWTI5TzRxeHRuOTlrZktyZnNjc01jcXljcHhiZG9UcFBnUnloRkdzSVR1XG5aOGxCcUZEVVVsY293RU51Sm1Ebk5iUXc0d0tCZ1FDK2E4ZzBBYU1IaTNRQnoyMktmTFdlOUhEeThEYXdZL3p4XG5IYWpvbysvYTVjOEJPbDJaV1QrWWRuUVJXc3ZyMzcweVBjU05Xa2c2TndtbVN4MURGM1BUcFJUaUlVRmE2YXpCXG5tN2FFeFlIWFN1bVZVc0RxbXUyVERNUlZCd2I2bENRU1RZMFF5U3d2ZjIza1BUK2FkWU52dExkdlZONnNMcHd3XG5ucjRmMXhReWZ3S0JnUUNrNUVwUTZjcEYzVjNtNThVV3hSRDI1dSthSVltRXZESG0wTHcvbWZQVnVTYWVGV0xVXG5GNmVQdHpDbFU1ZTFoQzZLTnZKS3ExcnYyWUpVbXpuck1rVTJORzQrRGx3a1dNRkVuT005cUR1aWxmT2ZjY2QyXG5GUTQ1T25nNmpZVEM2cnZDMkQwWEQ3ZXlzdlpxSnZYLzZ0WmFjY1piNStVM2x1NXNWOWRYeWQxcmtRS0JnQjVoXG5ZOWVvU3pKdzlWazBsdTE1YUNDc0x6a1RTaVpxVFhqS21xQkRSNGxORVBISk5oVzVQNFE3b2RrQyszWHVoR2ozXG5vZHhMZ3lxR2pXdVNvR0NMNVZibkI2WHNXRmtBM3lja2lNSTJJTGtRb3FQSVNDOGwrTEYxWC8yUTJYUXhIbkF0XG5IMHlHVEI1bjNraUQzUm52bGNERXZGOXUwdmYxbDhYS0RkdFduVXBSQW9HQVBlUnZCR3NUWEQwYzYyRkFRN0N0XG5IN2U3SWxxUzBpS2ZSVjUvY21VRGV1RkQ4UkJLNGlaRlRsQ0FWcWFrZG1qVWxmSlBiNjBEM3h3bEpwQ29aU0tpXG4ybFk5Umo3eXBSaVRVb1QzNW5WVkh3OGVqd1lCTWF3bzRHa2FxZDE5OG1ZeFVvZ0p2T3VUY0dKNTA5RGRUYWNrXG5Sc2FjU3RMQ1IxalVjNkV6YUNhajYxdz1cbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsCgkiY2xpZW50X2VtYWlsIjogInNvbWUtc2VydmljZS1hY2NvdW50QHNvbWUtcHJvamVjdC1pZC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCgkiY2xpZW50X2lkIjogInNvbWUtY2xpZW50LWlkIiwKCSJhdXRoX3VyaSI6ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCIsCgkidG9rZW5fdXJpIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwKCSJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwKCSJjbGllbnRfeDUwOV9jZXJ0X3VybCI6ICJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9yb2JvdC92MS9tZXRhZGF0YS94NTA5L3NvbWUtc2VydmljZS1hY2NvdW50JTQwc29tZS1wcm9qZWN0LWlkLmlhbS5nc2VydmljZWFjY291bnQuY29tIgp9`,
   441  		},
   442  		{
   443  			name: "Python_dict_(single_quotes)",
   444  			input: `{
   445  			'type': 'service_account',
   446  			'project_id': 'some-project-id',
   447  			'private_key_id': '123456789abcdef0123456789abcdef012345678',
   448  			'private_key': '-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n',
   449  			'client_email': 'some-service-account@some-project-id.iam.gserviceaccount.com',
   450  			'client_id': 'some-client-id',
   451  			'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
   452  			'token_uri': 'https://oauth2.googleapis.com/token',
   453  			'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
   454  			'client_x509_cert_url': 'https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com',
   455  		}`,
   456  		},
   457  		{
   458  			name: "GCL",
   459  			input: `  service_account = {
   460  				type = 'service_account',
   461  				project_id = 'some-project-id',
   462  				private_key_id = '123456789abcdef0123456789abcdef012345678',
   463  				private_key = '-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsQfQ524jSCtAi\n0RbzWuo3S6jJjTydYeSO/cKouEOmhKLoUxWVEXGC70MFL/ed5XqpR82amJZwzxLN\ntWQABwLGLkfD4aD4MAWprSjRAv9YSUI5s+NjiqgpzNulysgQmKDy3zgq4cAQtKzn\njWgZjMrXVQz1UhRZAiO/xDb/x6sw/4DMJptw2zHvxxMnRR/o93UM+fyJ6L99UNhC\nzLIp9IT8JQEhQu68Pbgrhu04syrUOYPrWLtpCDc80hPW9A/UJiWYkZcxhHSEXtsN\ndNGlB5S+jIEZDqyLaHRJ2vaud5CEd8CTRPhIM1ASnj36+FyQA2YRaFvJofw76N1W\nJ9BMrJadAgMBAAECggEACv1GLG7CAsxnzODT+wCA0rhD81/MTyoQn8K2qXbf8f6i\nOfoa9WCggj7rYqhVvsAGHEiVaFh1uIqtY2xADfRki+ol7+w0DcFaiyGd6f+r9KDv\n1aiRSCdvZQNJvAD81Ho4QmZVOf8e9rHgGgGec4rU4fnuErSC0c7eIvzMmXLOjBiV\n3ch9CHO7iKp0krLfsSnAHnK3ove5kGBA6A3sYwR+/7680i/aoC7l3gtXh0MW2E9h\nkkLKc9VqZenrMlXoMQngI6c0Ii/AntQbb3akomnqlajIa0OibBLYTJbv26ChUlsN\nA6SGQHIXemM+HuiAh/U6AAvlXkTSGQsO78fEtwvC7QKBgQDnlNIT3CkqTmev+p+o\nR34RmT/c+8NLCUv8rdBtUNErY4/y/Lagg0oq6nPu/p+KLnS73ycGhsSBUbAc8+wy\noEgy4B4e92jzm0NxFv8i3cY29O4qxtn99kfKrfscsMcqycpxbdoTpPgRyhFGsITu\nZ8lBqFDUUlcowENuJmDnNbQw4wKBgQC+a8g0AaMHi3QBz22KfLWe9HDy8DawY/zx\nHajoo+/a5c8BOl2ZWT+YdnQRWsvr370yPcSNWkg6NwmmSx1DF3PTpRTiIUFa6azB\nm7aExYHXSumVUsDqmu2TDMRVBwb6lCQSTY0QySwvf23kPT+adYNvtLdvVN6sLpww\nnr4f1xQyfwKBgQCk5EpQ6cpF3V3m58UWxRD25u+aIYmEvDHm0Lw/mfPVuSaeFWLU\nF6ePtzClU5e1hC6KNvJKq1rv2YJUmznrMkU2NG4+DlwkWMFEnOM9qDuilfOfccd2\nFQ45Ong6jYTC6rvC2D0XD7eysvZqJvX/6tZaccZb5+U3lu5sV9dXyd1rkQKBgB5h\nY9eoSzJw9Vk0lu15aCCsLzkTSiZqTXjKmqBDR4lNEPHJNhW5P4Q7odkC+3XuhGj3\nodxLgyqGjWuSoGCL5VbnB6XsWFkA3yckiMI2ILkQoqPISC8l+LF1X/2Q2XQxHnAt\nH0yGTB5n3kiD3RnvlcDEvF9u0vf1l8XKDdtWnUpRAoGAPeRvBGsTXD0c62FAQ7Ct\nH7e7IlqS0iKfRV5/cmUDeuFD8RBK4iZFTlCAVqakdmjUlfJPb60D3xwlJpCoZSKi\n2lY9Rj7ypRiTUoT35nVVHw8ejwYBMawo4Gkaqd198mYxUogJvOuTcGJ509DdTack\nRsacStLCR1jUc6EzaCaj61w=\n-----END PRIVATE KEY-----\n',
   464  				client_email = 'some-service-account@some-project-id.iam.gserviceaccount.com',
   465  				client_id = 'some-client-id',
   466  				auth_uri = 'https://accounts.google.com/o/oauth2/auth',
   467  				token_uri = 'https://oauth2.googleapis.com/token',
   468  				auth_provider_x509_cert_url = 'https://www.googleapis.com/oauth2/v1/certs',
   469  				client_x509_cert_url = 'https://www.googleapis.com/robot/v1/metadata/x509/some-service-account%40some-project-id.iam.gserviceaccount.com'
   470  			}`,
   471  		},
   472  	}
   473  	var want []veles.Secret
   474  	for _, tc := range cases {
   475  		t.Run(tc.name, func(t *testing.T) {
   476  			t.Parallel()
   477  			got, err := engine.Detect(t.Context(), strings.NewReader(tc.input))
   478  			if err != nil {
   479  				t.Errorf("Detect() error: %v, want nil", err)
   480  			}
   481  			if diff := cmp.Diff(want, got, cmpopts.EquateEmpty()); diff != "" {
   482  				t.Errorf("Detect() diff (-want +got):\n%s", diff)
   483  			}
   484  		})
   485  	}
   486  }