gitlab-ci-local 4.65.1 → 4.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -19
- package/dist/index.js +340 -0
- package/dist/index.js.map +480 -0
- package/package.json +26 -80
- package/src/argv.js +0 -307
- package/src/commander.js +0 -247
- package/src/data-expander.js +0 -220
- package/src/executor.js +0 -104
- package/src/git-data.js +0 -168
- package/src/gitlab-preset.js +0 -24
- package/src/global.js +0 -40
- package/src/handler.js +0 -119
- package/src/index.js +0 -364
- package/src/job.js +0 -1463
- package/src/mutex.js +0 -20
- package/src/parallel.js +0 -46
- package/src/parser-includes.js +0 -387
- package/src/parser.js +0 -357
- package/src/predefined-variables.js +0 -67
- package/src/producers.js +0 -42
- package/src/schema/index.js +0 -19
- package/src/schema/schema.js +0 -3190
- package/src/schema-error.js +0 -114
- package/src/state.js +0 -22
- package/src/utils.js +0 -485
- package/src/validator.js +0 -151
- package/src/variables-from-files.js +0 -143
- package/src/write-streams.js +0 -51
package/src/schema/schema.js
DELETED
|
@@ -1,3190 +0,0 @@
|
|
|
1
|
-
export const schema = {
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://gitlab.com/.gitlab-ci.yml",
|
|
4
|
-
"markdownDescription": "GitLab has a built-in solution for doing CI called GitLab CI. It is configured by supplying a file called `.gitlab-ci.yml`, which will list all the jobs that are going to run for the project. A full list of all options can be found [here](https://docs.gitlab.com/ci/yaml/). [Learn More](https://docs.gitlab.com/ci/).",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"$schema": {
|
|
8
|
-
"type": "string",
|
|
9
|
-
"format": "uri",
|
|
10
|
-
},
|
|
11
|
-
"spec": {
|
|
12
|
-
"type": "object",
|
|
13
|
-
"markdownDescription": "Specification for pipeline configuration. Must be declared at the top of a configuration file, in a header section separated from the rest of the configuration with `---`. [Learn More](https://docs.gitlab.com/ci/yaml/#spec).",
|
|
14
|
-
"properties": {
|
|
15
|
-
"inputs": {
|
|
16
|
-
"$ref": "#/definitions/configInputs",
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
"additionalProperties": false,
|
|
20
|
-
},
|
|
21
|
-
"image": {
|
|
22
|
-
"$ref": "#/definitions/image",
|
|
23
|
-
"markdownDescription": "Defining `image` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
|
|
24
|
-
},
|
|
25
|
-
"services": {
|
|
26
|
-
"$ref": "#/definitions/services",
|
|
27
|
-
"markdownDescription": "Defining `services` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
|
|
28
|
-
},
|
|
29
|
-
"before_script": {
|
|
30
|
-
"$ref": "#/definitions/before_script",
|
|
31
|
-
"markdownDescription": "Defining `before_script` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
|
|
32
|
-
},
|
|
33
|
-
"after_script": {
|
|
34
|
-
"$ref": "#/definitions/after_script",
|
|
35
|
-
"markdownDescription": "Defining `after_script` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
|
|
36
|
-
},
|
|
37
|
-
"variables": {
|
|
38
|
-
"$ref": "#/definitions/globalVariables",
|
|
39
|
-
},
|
|
40
|
-
"cache": {
|
|
41
|
-
"$ref": "#/definitions/cache",
|
|
42
|
-
"markdownDescription": "Defining `cache` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
|
|
43
|
-
},
|
|
44
|
-
"!reference": {
|
|
45
|
-
"$ref": "#/definitions/!reference",
|
|
46
|
-
},
|
|
47
|
-
"default": {
|
|
48
|
-
"type": "object",
|
|
49
|
-
"properties": {
|
|
50
|
-
"after_script": {
|
|
51
|
-
"$ref": "#/definitions/after_script",
|
|
52
|
-
},
|
|
53
|
-
"artifacts": {
|
|
54
|
-
"$ref": "#/definitions/artifacts",
|
|
55
|
-
},
|
|
56
|
-
"before_script": {
|
|
57
|
-
"$ref": "#/definitions/before_script",
|
|
58
|
-
},
|
|
59
|
-
"hooks": {
|
|
60
|
-
"$ref": "#/definitions/hooks",
|
|
61
|
-
},
|
|
62
|
-
"cache": {
|
|
63
|
-
"$ref": "#/definitions/cache",
|
|
64
|
-
},
|
|
65
|
-
"image": {
|
|
66
|
-
"$ref": "#/definitions/image",
|
|
67
|
-
},
|
|
68
|
-
"interruptible": {
|
|
69
|
-
"$ref": "#/definitions/interruptible",
|
|
70
|
-
},
|
|
71
|
-
"id_tokens": {
|
|
72
|
-
"$ref": "#/definitions/id_tokens",
|
|
73
|
-
},
|
|
74
|
-
"identity": {
|
|
75
|
-
"$ref": "#/definitions/identity",
|
|
76
|
-
},
|
|
77
|
-
"retry": {
|
|
78
|
-
"$ref": "#/definitions/retry",
|
|
79
|
-
},
|
|
80
|
-
"services": {
|
|
81
|
-
"$ref": "#/definitions/services",
|
|
82
|
-
},
|
|
83
|
-
"tags": {
|
|
84
|
-
"$ref": "#/definitions/tags",
|
|
85
|
-
},
|
|
86
|
-
"timeout": {
|
|
87
|
-
"$ref": "#/definitions/timeout",
|
|
88
|
-
},
|
|
89
|
-
"!reference": {
|
|
90
|
-
"$ref": "#/definitions/!reference",
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
"additionalProperties": false,
|
|
94
|
-
},
|
|
95
|
-
"stages": {
|
|
96
|
-
"type": "array",
|
|
97
|
-
"markdownDescription": "Groups jobs into stages. All jobs in one stage must complete before next stage is executed. Defaults to ['build', 'test', 'deploy']. [Learn More](https://docs.gitlab.com/ci/yaml/#stages).",
|
|
98
|
-
"default": [
|
|
99
|
-
"build",
|
|
100
|
-
"test",
|
|
101
|
-
"deploy",
|
|
102
|
-
],
|
|
103
|
-
"items": {
|
|
104
|
-
"anyOf": [
|
|
105
|
-
{
|
|
106
|
-
"type": "string",
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"type": "array",
|
|
110
|
-
"items": {
|
|
111
|
-
"type": "string",
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
],
|
|
115
|
-
},
|
|
116
|
-
"uniqueItems": true,
|
|
117
|
-
"minItems": 1,
|
|
118
|
-
},
|
|
119
|
-
"include": {
|
|
120
|
-
"markdownDescription": "Can be `IncludeItem` or `IncludeItem[]`. Each `IncludeItem` will be a string, or an object with properties for the method if including external YAML file. The external content will be fetched, included and evaluated along the `.gitlab-ci.yml`. [Learn More](https://docs.gitlab.com/ci/yaml/#include).",
|
|
121
|
-
"oneOf": [
|
|
122
|
-
{
|
|
123
|
-
"$ref": "#/definitions/include_item",
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"type": "array",
|
|
127
|
-
"items": {
|
|
128
|
-
"$ref": "#/definitions/include_item",
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
"pages": {
|
|
134
|
-
"$ref": "#/definitions/job",
|
|
135
|
-
"markdownDescription": "A special job used to upload static sites to GitLab pages. Requires a `public/` directory with `artifacts.path` pointing to it. [Learn More](https://docs.gitlab.com/ci/yaml/#pages).",
|
|
136
|
-
},
|
|
137
|
-
"workflow": {
|
|
138
|
-
"type": "object",
|
|
139
|
-
"properties": {
|
|
140
|
-
"name": {
|
|
141
|
-
"$ref": "#/definitions/workflowName",
|
|
142
|
-
},
|
|
143
|
-
"auto_cancel": {
|
|
144
|
-
"$ref": "#/definitions/workflowAutoCancel",
|
|
145
|
-
},
|
|
146
|
-
"rules": {
|
|
147
|
-
"type": "array",
|
|
148
|
-
"items": {
|
|
149
|
-
"anyOf": [
|
|
150
|
-
{
|
|
151
|
-
"type": "object",
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
"type": "array",
|
|
155
|
-
"minItems": 1,
|
|
156
|
-
"items": {
|
|
157
|
-
"type": "string",
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
"properties": {
|
|
162
|
-
"if": {
|
|
163
|
-
"$ref": "#/definitions/if",
|
|
164
|
-
},
|
|
165
|
-
"changes": {
|
|
166
|
-
"$ref": "#/definitions/changes",
|
|
167
|
-
},
|
|
168
|
-
"exists": {
|
|
169
|
-
"$ref": "#/definitions/exists",
|
|
170
|
-
},
|
|
171
|
-
"variables": {
|
|
172
|
-
"$ref": "#/definitions/rulesVariables",
|
|
173
|
-
},
|
|
174
|
-
"when": {
|
|
175
|
-
"type": "string",
|
|
176
|
-
"enum": [
|
|
177
|
-
"always",
|
|
178
|
-
"never",
|
|
179
|
-
],
|
|
180
|
-
},
|
|
181
|
-
"auto_cancel": {
|
|
182
|
-
"$ref": "#/definitions/workflowAutoCancel",
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
"additionalProperties": false,
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
"patternProperties": {
|
|
192
|
-
"^[.]": {
|
|
193
|
-
"description": "Hidden keys.",
|
|
194
|
-
"anyOf": [
|
|
195
|
-
{
|
|
196
|
-
"$ref": "#/definitions/job_template",
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"description": "Arbitrary YAML anchor.",
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
"additionalProperties": {
|
|
205
|
-
"$ref": "#/definitions/job",
|
|
206
|
-
},
|
|
207
|
-
"definitions": {
|
|
208
|
-
"artifacts": {
|
|
209
|
-
"type": [
|
|
210
|
-
"object",
|
|
211
|
-
"null",
|
|
212
|
-
],
|
|
213
|
-
"markdownDescription": "Used to specify a list of files and directories that should be attached to the job if it succeeds. Artifacts are sent to GitLab where they can be downloaded. [Learn More](https://docs.gitlab.com/ci/yaml/#artifacts).",
|
|
214
|
-
"additionalProperties": false,
|
|
215
|
-
"properties": {
|
|
216
|
-
"paths": {
|
|
217
|
-
"type": "array",
|
|
218
|
-
"markdownDescription": "A list of paths to files/folders that should be included in the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactspaths).",
|
|
219
|
-
"items": {
|
|
220
|
-
"type": "string",
|
|
221
|
-
},
|
|
222
|
-
"minItems": 1,
|
|
223
|
-
},
|
|
224
|
-
"exclude": {
|
|
225
|
-
"type": "array",
|
|
226
|
-
"markdownDescription": "A list of paths to files/folders that should be excluded in the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexclude).",
|
|
227
|
-
"items": {
|
|
228
|
-
"type": "string",
|
|
229
|
-
},
|
|
230
|
-
"minItems": 1,
|
|
231
|
-
},
|
|
232
|
-
"expose_as": {
|
|
233
|
-
"type": "string",
|
|
234
|
-
"markdownDescription": "Can be used to expose job artifacts in the merge request UI. GitLab will add a link <expose_as> to the relevant merge request that points to the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexpose_as).",
|
|
235
|
-
},
|
|
236
|
-
"name": {
|
|
237
|
-
"type": "string",
|
|
238
|
-
"markdownDescription": "Name for the archive created on job success. Can use variables in the name, e.g. '$CI_JOB_NAME' [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsname).",
|
|
239
|
-
},
|
|
240
|
-
"untracked": {
|
|
241
|
-
"type": "boolean",
|
|
242
|
-
"markdownDescription": "Whether to add all untracked files (along with 'artifacts.paths') to the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsuntracked).",
|
|
243
|
-
"default": false,
|
|
244
|
-
},
|
|
245
|
-
"when": {
|
|
246
|
-
"markdownDescription": "Configure when artifacts are uploaded depended on job status. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactswhen).",
|
|
247
|
-
"default": "on_success",
|
|
248
|
-
"type": "string",
|
|
249
|
-
"enum": [
|
|
250
|
-
"on_success",
|
|
251
|
-
"on_failure",
|
|
252
|
-
"always",
|
|
253
|
-
],
|
|
254
|
-
},
|
|
255
|
-
"access": {
|
|
256
|
-
"markdownDescription": "Configure who can access the artifacts. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsaccess).",
|
|
257
|
-
"default": "all",
|
|
258
|
-
"type": "string",
|
|
259
|
-
"enum": [
|
|
260
|
-
"none",
|
|
261
|
-
"developer",
|
|
262
|
-
"all",
|
|
263
|
-
],
|
|
264
|
-
},
|
|
265
|
-
"expire_in": {
|
|
266
|
-
"type": "string",
|
|
267
|
-
"markdownDescription": "How long artifacts should be kept. They are saved 30 days by default. Artifacts that have expired are removed periodically via cron job. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexpire_in).",
|
|
268
|
-
"default": "30 days",
|
|
269
|
-
},
|
|
270
|
-
"reports": {
|
|
271
|
-
"type": "object",
|
|
272
|
-
"markdownDescription": "Reports will be uploaded as artifacts, and often displayed in the GitLab UI, such as in merge requests. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsreports).",
|
|
273
|
-
"additionalProperties": false,
|
|
274
|
-
"properties": {
|
|
275
|
-
"accessibility": {
|
|
276
|
-
"type": "string",
|
|
277
|
-
"description": "Path to JSON file with accessibility report.",
|
|
278
|
-
},
|
|
279
|
-
"annotations": {
|
|
280
|
-
"type": "string",
|
|
281
|
-
"description": "Path to JSON file with annotations report.",
|
|
282
|
-
},
|
|
283
|
-
"junit": {
|
|
284
|
-
"description": "Path for file(s) that should be parsed as JUnit XML result",
|
|
285
|
-
"oneOf": [
|
|
286
|
-
{
|
|
287
|
-
"type": "string",
|
|
288
|
-
"description": "Path to a single XML file",
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
"type": "array",
|
|
292
|
-
"description": "A list of paths to XML files that will automatically be concatenated into a single file",
|
|
293
|
-
"items": {
|
|
294
|
-
"type": "string",
|
|
295
|
-
},
|
|
296
|
-
"minItems": 1,
|
|
297
|
-
},
|
|
298
|
-
],
|
|
299
|
-
},
|
|
300
|
-
"browser_performance": {
|
|
301
|
-
"type": "string",
|
|
302
|
-
"description": "Path to a single file with browser performance metric report(s).",
|
|
303
|
-
},
|
|
304
|
-
"coverage_report": {
|
|
305
|
-
"type": [
|
|
306
|
-
"object",
|
|
307
|
-
"null",
|
|
308
|
-
],
|
|
309
|
-
"description": "Used to collect coverage reports from the job.",
|
|
310
|
-
"properties": {
|
|
311
|
-
"coverage_format": {
|
|
312
|
-
"description": "Code coverage format used by the test framework.",
|
|
313
|
-
"enum": [
|
|
314
|
-
"cobertura",
|
|
315
|
-
"jacoco",
|
|
316
|
-
],
|
|
317
|
-
},
|
|
318
|
-
"path": {
|
|
319
|
-
"description": "Path to the coverage report file that should be parsed.",
|
|
320
|
-
"type": "string",
|
|
321
|
-
"minLength": 1,
|
|
322
|
-
},
|
|
323
|
-
},
|
|
324
|
-
},
|
|
325
|
-
"codequality": {
|
|
326
|
-
"$ref": "#/definitions/string_file_list",
|
|
327
|
-
"description": "Path to file or list of files with code quality report(s) (such as Code Climate).",
|
|
328
|
-
},
|
|
329
|
-
"dotenv": {
|
|
330
|
-
"$ref": "#/definitions/string_file_list",
|
|
331
|
-
"description": "Path to file or list of files containing runtime-created variables for this job.",
|
|
332
|
-
},
|
|
333
|
-
"lsif": {
|
|
334
|
-
"$ref": "#/definitions/string_file_list",
|
|
335
|
-
"description": "Path to file or list of files containing code intelligence (Language Server Index Format).",
|
|
336
|
-
},
|
|
337
|
-
"sast": {
|
|
338
|
-
"$ref": "#/definitions/string_file_list",
|
|
339
|
-
"description": "Path to file or list of files with SAST vulnerabilities report(s).",
|
|
340
|
-
},
|
|
341
|
-
"dependency_scanning": {
|
|
342
|
-
"$ref": "#/definitions/string_file_list",
|
|
343
|
-
"description": "Path to file or list of files with Dependency scanning vulnerabilities report(s).",
|
|
344
|
-
},
|
|
345
|
-
"container_scanning": {
|
|
346
|
-
"$ref": "#/definitions/string_file_list",
|
|
347
|
-
"description": "Path to file or list of files with Container scanning vulnerabilities report(s).",
|
|
348
|
-
},
|
|
349
|
-
"dast": {
|
|
350
|
-
"$ref": "#/definitions/string_file_list",
|
|
351
|
-
"description": "Path to file or list of files with DAST vulnerabilities report(s).",
|
|
352
|
-
},
|
|
353
|
-
"license_management": {
|
|
354
|
-
"$ref": "#/definitions/string_file_list",
|
|
355
|
-
"description": "Deprecated in 12.8: Path to file or list of files with license report(s).",
|
|
356
|
-
},
|
|
357
|
-
"license_scanning": {
|
|
358
|
-
"$ref": "#/definitions/string_file_list",
|
|
359
|
-
"description": "Path to file or list of files with license report(s).",
|
|
360
|
-
},
|
|
361
|
-
"requirements": {
|
|
362
|
-
"$ref": "#/definitions/string_file_list",
|
|
363
|
-
"description": "Path to file or list of files with requirements report(s).",
|
|
364
|
-
},
|
|
365
|
-
"secret_detection": {
|
|
366
|
-
"$ref": "#/definitions/string_file_list",
|
|
367
|
-
"description": "Path to file or list of files with secret detection report(s).",
|
|
368
|
-
},
|
|
369
|
-
"metrics": {
|
|
370
|
-
"$ref": "#/definitions/string_file_list",
|
|
371
|
-
"description": "Path to file or list of files with custom metrics report(s).",
|
|
372
|
-
},
|
|
373
|
-
"terraform": {
|
|
374
|
-
"$ref": "#/definitions/string_file_list",
|
|
375
|
-
"description": "Path to file or list of files with terraform plan(s).",
|
|
376
|
-
},
|
|
377
|
-
"cyclonedx": {
|
|
378
|
-
"$ref": "#/definitions/string_file_list",
|
|
379
|
-
"markdownDescription": "Path to file or list of files with cyclonedx report(s). [Learn More](https://docs.gitlab.com/ci/yaml/artifacts_reports/#artifactsreportscyclonedx).",
|
|
380
|
-
},
|
|
381
|
-
"load_performance": {
|
|
382
|
-
"$ref": "#/definitions/string_file_list",
|
|
383
|
-
"markdownDescription": "Path to file or list of files with load performance testing report(s). [Learn More](https://docs.gitlab.com/ci/yaml/artifacts_reports/#artifactsreportsload_performance).",
|
|
384
|
-
},
|
|
385
|
-
"repository_xray": {
|
|
386
|
-
"$ref": "#/definitions/string_file_list",
|
|
387
|
-
"description": "Path to file or list of files with Repository X-Ray report(s).",
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
},
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
"string_file_list": {
|
|
394
|
-
"oneOf": [
|
|
395
|
-
{
|
|
396
|
-
"type": "string",
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"type": "array",
|
|
400
|
-
"items": {
|
|
401
|
-
"type": "string",
|
|
402
|
-
},
|
|
403
|
-
},
|
|
404
|
-
],
|
|
405
|
-
},
|
|
406
|
-
"baseInput": {
|
|
407
|
-
"type": "object",
|
|
408
|
-
"properties": {
|
|
409
|
-
"type": {
|
|
410
|
-
"type": "string",
|
|
411
|
-
"markdownDescription": "Input type. Defaults to 'string' when not specified.",
|
|
412
|
-
"enum": [
|
|
413
|
-
"array",
|
|
414
|
-
"boolean",
|
|
415
|
-
"number",
|
|
416
|
-
"string",
|
|
417
|
-
],
|
|
418
|
-
"default": "string",
|
|
419
|
-
},
|
|
420
|
-
"description": {
|
|
421
|
-
"type": "string",
|
|
422
|
-
"markdownDescription": "Human-readable explanation of the parameter.",
|
|
423
|
-
"maxLength": 1024,
|
|
424
|
-
},
|
|
425
|
-
"options": {
|
|
426
|
-
"type": "array",
|
|
427
|
-
"markdownDescription": "List of allowed values for this input.",
|
|
428
|
-
"items": {
|
|
429
|
-
"oneOf": [
|
|
430
|
-
{
|
|
431
|
-
"type": "string",
|
|
432
|
-
},
|
|
433
|
-
{
|
|
434
|
-
"type": "number",
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
"type": "boolean",
|
|
438
|
-
},
|
|
439
|
-
],
|
|
440
|
-
},
|
|
441
|
-
},
|
|
442
|
-
"regex": {
|
|
443
|
-
"type": "string",
|
|
444
|
-
"markdownDescription": "Regular expression that string values must match.",
|
|
445
|
-
},
|
|
446
|
-
"default": {
|
|
447
|
-
"markdownDescription": "Default value for this input.",
|
|
448
|
-
},
|
|
449
|
-
},
|
|
450
|
-
"additionalProperties": false,
|
|
451
|
-
},
|
|
452
|
-
"configInputs": {
|
|
453
|
-
"type": "object",
|
|
454
|
-
"markdownDescription": "Define input parameters for reusable CI/CD configuration. Config inputs can optionally specify defaults. [Learn More](https://docs.gitlab.com/ci/inputs/).",
|
|
455
|
-
"patternProperties": {
|
|
456
|
-
".*": {
|
|
457
|
-
"oneOf": [
|
|
458
|
-
{
|
|
459
|
-
"allOf": [
|
|
460
|
-
{
|
|
461
|
-
"$ref": "#/definitions/baseInput",
|
|
462
|
-
},
|
|
463
|
-
{
|
|
464
|
-
"properties": {
|
|
465
|
-
"rules": {
|
|
466
|
-
"type": "array",
|
|
467
|
-
"markdownDescription": "Conditional rules for this input.",
|
|
468
|
-
"items": {
|
|
469
|
-
"type": "object",
|
|
470
|
-
},
|
|
471
|
-
},
|
|
472
|
-
},
|
|
473
|
-
},
|
|
474
|
-
{
|
|
475
|
-
"allOf": [
|
|
476
|
-
{
|
|
477
|
-
"if": {
|
|
478
|
-
"properties": {
|
|
479
|
-
"type": {
|
|
480
|
-
"enum": [
|
|
481
|
-
"string",
|
|
482
|
-
],
|
|
483
|
-
},
|
|
484
|
-
},
|
|
485
|
-
},
|
|
486
|
-
"then": {
|
|
487
|
-
"properties": {
|
|
488
|
-
"default": {
|
|
489
|
-
"type": [
|
|
490
|
-
"string",
|
|
491
|
-
"null",
|
|
492
|
-
],
|
|
493
|
-
},
|
|
494
|
-
},
|
|
495
|
-
},
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
"if": {
|
|
499
|
-
"properties": {
|
|
500
|
-
"type": {
|
|
501
|
-
"enum": [
|
|
502
|
-
"number",
|
|
503
|
-
],
|
|
504
|
-
},
|
|
505
|
-
},
|
|
506
|
-
},
|
|
507
|
-
"then": {
|
|
508
|
-
"properties": {
|
|
509
|
-
"default": {
|
|
510
|
-
"type": [
|
|
511
|
-
"number",
|
|
512
|
-
"null",
|
|
513
|
-
],
|
|
514
|
-
},
|
|
515
|
-
},
|
|
516
|
-
},
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
"if": {
|
|
520
|
-
"properties": {
|
|
521
|
-
"type": {
|
|
522
|
-
"enum": [
|
|
523
|
-
"boolean",
|
|
524
|
-
],
|
|
525
|
-
},
|
|
526
|
-
},
|
|
527
|
-
},
|
|
528
|
-
"then": {
|
|
529
|
-
"properties": {
|
|
530
|
-
"default": {
|
|
531
|
-
"type": [
|
|
532
|
-
"boolean",
|
|
533
|
-
"null",
|
|
534
|
-
],
|
|
535
|
-
},
|
|
536
|
-
},
|
|
537
|
-
},
|
|
538
|
-
},
|
|
539
|
-
{
|
|
540
|
-
"if": {
|
|
541
|
-
"properties": {
|
|
542
|
-
"type": {
|
|
543
|
-
"enum": [
|
|
544
|
-
"array",
|
|
545
|
-
],
|
|
546
|
-
},
|
|
547
|
-
},
|
|
548
|
-
},
|
|
549
|
-
"then": {
|
|
550
|
-
"properties": {
|
|
551
|
-
"default": {
|
|
552
|
-
"oneOf": [
|
|
553
|
-
{
|
|
554
|
-
"type": "array",
|
|
555
|
-
},
|
|
556
|
-
{
|
|
557
|
-
"type": "null",
|
|
558
|
-
},
|
|
559
|
-
],
|
|
560
|
-
},
|
|
561
|
-
},
|
|
562
|
-
},
|
|
563
|
-
},
|
|
564
|
-
],
|
|
565
|
-
},
|
|
566
|
-
],
|
|
567
|
-
},
|
|
568
|
-
{
|
|
569
|
-
"type": "null",
|
|
570
|
-
},
|
|
571
|
-
],
|
|
572
|
-
},
|
|
573
|
-
},
|
|
574
|
-
},
|
|
575
|
-
"jobInputs": {
|
|
576
|
-
"type": "object",
|
|
577
|
-
"markdownDescription": "Define input parameters for a job. Job inputs must always include a `default` value. [Learn More](https://docs.gitlab.com/ci/yaml/#inputs).",
|
|
578
|
-
"maxProperties": 50,
|
|
579
|
-
"patternProperties": {
|
|
580
|
-
".*": {
|
|
581
|
-
"allOf": [
|
|
582
|
-
{
|
|
583
|
-
"$ref": "#/definitions/baseInput",
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
"required": [
|
|
587
|
-
"default",
|
|
588
|
-
],
|
|
589
|
-
},
|
|
590
|
-
{
|
|
591
|
-
"allOf": [
|
|
592
|
-
{
|
|
593
|
-
"if": {
|
|
594
|
-
"properties": {
|
|
595
|
-
"type": {
|
|
596
|
-
"enum": [
|
|
597
|
-
"string",
|
|
598
|
-
],
|
|
599
|
-
},
|
|
600
|
-
},
|
|
601
|
-
},
|
|
602
|
-
"then": {
|
|
603
|
-
"properties": {
|
|
604
|
-
"default": {
|
|
605
|
-
"type": "string",
|
|
606
|
-
},
|
|
607
|
-
},
|
|
608
|
-
},
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
"if": {
|
|
612
|
-
"properties": {
|
|
613
|
-
"type": {
|
|
614
|
-
"enum": [
|
|
615
|
-
"number",
|
|
616
|
-
],
|
|
617
|
-
},
|
|
618
|
-
},
|
|
619
|
-
},
|
|
620
|
-
"then": {
|
|
621
|
-
"properties": {
|
|
622
|
-
"default": {
|
|
623
|
-
"type": "number",
|
|
624
|
-
},
|
|
625
|
-
},
|
|
626
|
-
},
|
|
627
|
-
},
|
|
628
|
-
{
|
|
629
|
-
"if": {
|
|
630
|
-
"properties": {
|
|
631
|
-
"type": {
|
|
632
|
-
"enum": [
|
|
633
|
-
"boolean",
|
|
634
|
-
],
|
|
635
|
-
},
|
|
636
|
-
},
|
|
637
|
-
},
|
|
638
|
-
"then": {
|
|
639
|
-
"properties": {
|
|
640
|
-
"default": {
|
|
641
|
-
"type": "boolean",
|
|
642
|
-
},
|
|
643
|
-
},
|
|
644
|
-
},
|
|
645
|
-
},
|
|
646
|
-
{
|
|
647
|
-
"if": {
|
|
648
|
-
"properties": {
|
|
649
|
-
"type": {
|
|
650
|
-
"enum": [
|
|
651
|
-
"array",
|
|
652
|
-
],
|
|
653
|
-
},
|
|
654
|
-
},
|
|
655
|
-
},
|
|
656
|
-
"then": {
|
|
657
|
-
"properties": {
|
|
658
|
-
"default": {
|
|
659
|
-
"type": "array",
|
|
660
|
-
},
|
|
661
|
-
},
|
|
662
|
-
},
|
|
663
|
-
},
|
|
664
|
-
],
|
|
665
|
-
},
|
|
666
|
-
],
|
|
667
|
-
},
|
|
668
|
-
},
|
|
669
|
-
},
|
|
670
|
-
"include_item": {
|
|
671
|
-
"oneOf": [
|
|
672
|
-
{
|
|
673
|
-
"description": "Will infer the method based on the value. E.g. `https://...` strings will be of type `include:remote`, and `/templates/...` or `templates/...` will be of type `include:local`.",
|
|
674
|
-
"type": "string",
|
|
675
|
-
"format": "uri-reference",
|
|
676
|
-
"anyOf": [
|
|
677
|
-
{},
|
|
678
|
-
{
|
|
679
|
-
"not": {},
|
|
680
|
-
},
|
|
681
|
-
],
|
|
682
|
-
},
|
|
683
|
-
{
|
|
684
|
-
"type": "object",
|
|
685
|
-
"additionalProperties": false,
|
|
686
|
-
"properties": {
|
|
687
|
-
"local": {
|
|
688
|
-
"description": "Relative path from local repository root (`/`) to the `yaml`/`yml` file template. The file must be on the same branch, and does not work across git submodules.",
|
|
689
|
-
"type": "string",
|
|
690
|
-
"format": "uri-reference",
|
|
691
|
-
},
|
|
692
|
-
"rules": {
|
|
693
|
-
"$ref": "#/definitions/includeRules",
|
|
694
|
-
},
|
|
695
|
-
"inputs": {
|
|
696
|
-
"$ref": "#/definitions/inputs",
|
|
697
|
-
},
|
|
698
|
-
},
|
|
699
|
-
"required": [
|
|
700
|
-
"local",
|
|
701
|
-
],
|
|
702
|
-
},
|
|
703
|
-
{
|
|
704
|
-
"type": "object",
|
|
705
|
-
"additionalProperties": false,
|
|
706
|
-
"properties": {
|
|
707
|
-
"project": {
|
|
708
|
-
"description": "Path to the project, e.g. `group/project`, or `group/sub-group/project` [Learn more](https://docs.gitlab.com/ci/yaml/#includeproject).",
|
|
709
|
-
"type": "string",
|
|
710
|
-
},
|
|
711
|
-
"ref": {
|
|
712
|
-
"description": "Branch/Tag/Commit-hash for the target project.",
|
|
713
|
-
"type": "string",
|
|
714
|
-
},
|
|
715
|
-
"file": {
|
|
716
|
-
"oneOf": [
|
|
717
|
-
{
|
|
718
|
-
"description": "Relative path from project root (`/`) to the `yaml`/`yml` file template.",
|
|
719
|
-
"type": "string",
|
|
720
|
-
},
|
|
721
|
-
{
|
|
722
|
-
"description": "List of files by relative path from project root (`/`) to the `yaml`/`yml` file template.",
|
|
723
|
-
"type": "array",
|
|
724
|
-
"items": {
|
|
725
|
-
"type": "string",
|
|
726
|
-
},
|
|
727
|
-
},
|
|
728
|
-
],
|
|
729
|
-
},
|
|
730
|
-
"rules": {
|
|
731
|
-
"$ref": "#/definitions/includeRules",
|
|
732
|
-
},
|
|
733
|
-
"inputs": {
|
|
734
|
-
"$ref": "#/definitions/inputs",
|
|
735
|
-
},
|
|
736
|
-
},
|
|
737
|
-
"required": [
|
|
738
|
-
"project",
|
|
739
|
-
"file",
|
|
740
|
-
],
|
|
741
|
-
},
|
|
742
|
-
{
|
|
743
|
-
"type": "object",
|
|
744
|
-
"additionalProperties": false,
|
|
745
|
-
"properties": {
|
|
746
|
-
"template": {
|
|
747
|
-
"description": "Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`.",
|
|
748
|
-
"type": "string",
|
|
749
|
-
"format": "uri-reference",
|
|
750
|
-
},
|
|
751
|
-
"rules": {
|
|
752
|
-
"$ref": "#/definitions/includeRules",
|
|
753
|
-
},
|
|
754
|
-
"inputs": {
|
|
755
|
-
"$ref": "#/definitions/inputs",
|
|
756
|
-
},
|
|
757
|
-
},
|
|
758
|
-
"required": [
|
|
759
|
-
"template",
|
|
760
|
-
],
|
|
761
|
-
},
|
|
762
|
-
{
|
|
763
|
-
"type": "object",
|
|
764
|
-
"additionalProperties": false,
|
|
765
|
-
"properties": {
|
|
766
|
-
"component": {
|
|
767
|
-
"description": "Local path to component directory or full path to external component directory.",
|
|
768
|
-
"type": "string",
|
|
769
|
-
"format": "uri-reference",
|
|
770
|
-
},
|
|
771
|
-
"rules": {
|
|
772
|
-
"$ref": "#/definitions/includeRules",
|
|
773
|
-
},
|
|
774
|
-
"inputs": {
|
|
775
|
-
"$ref": "#/definitions/inputs",
|
|
776
|
-
},
|
|
777
|
-
},
|
|
778
|
-
"required": [
|
|
779
|
-
"component",
|
|
780
|
-
],
|
|
781
|
-
},
|
|
782
|
-
{
|
|
783
|
-
"type": "object",
|
|
784
|
-
"additionalProperties": false,
|
|
785
|
-
"properties": {
|
|
786
|
-
"remote": {
|
|
787
|
-
"description": "URL to a `yaml`/`yml` template file using HTTP/HTTPS.",
|
|
788
|
-
"type": "string",
|
|
789
|
-
"format": "uri-reference",
|
|
790
|
-
},
|
|
791
|
-
"integrity": {
|
|
792
|
-
"description": "SHA256 integrity hash of the remote file content.",
|
|
793
|
-
"type": "string",
|
|
794
|
-
},
|
|
795
|
-
"rules": {
|
|
796
|
-
"$ref": "#/definitions/includeRules",
|
|
797
|
-
},
|
|
798
|
-
"inputs": {
|
|
799
|
-
"$ref": "#/definitions/inputs",
|
|
800
|
-
},
|
|
801
|
-
},
|
|
802
|
-
"required": [
|
|
803
|
-
"remote",
|
|
804
|
-
],
|
|
805
|
-
},
|
|
806
|
-
],
|
|
807
|
-
},
|
|
808
|
-
"!reference": {
|
|
809
|
-
"type": "array",
|
|
810
|
-
"items": {
|
|
811
|
-
"type": "string",
|
|
812
|
-
"minLength": 1,
|
|
813
|
-
},
|
|
814
|
-
},
|
|
815
|
-
"image": {
|
|
816
|
-
"oneOf": [
|
|
817
|
-
{
|
|
818
|
-
"type": "string",
|
|
819
|
-
"minLength": 1,
|
|
820
|
-
"description": "Full name of the image that should be used. It should contain the Registry part if needed.",
|
|
821
|
-
},
|
|
822
|
-
{
|
|
823
|
-
"type": "object",
|
|
824
|
-
"description": "Specifies the docker image to use for the job or globally for all jobs. Job configuration takes precedence over global setting. Requires a certain kind of GitLab runner executor.",
|
|
825
|
-
"additionalProperties": false,
|
|
826
|
-
"properties": {
|
|
827
|
-
"name": {
|
|
828
|
-
"type": "string",
|
|
829
|
-
"minLength": 1,
|
|
830
|
-
"description": "Full name of the image that should be used. It should contain the Registry part if needed.",
|
|
831
|
-
},
|
|
832
|
-
"entrypoint": {
|
|
833
|
-
"type": "array",
|
|
834
|
-
"description": "Command or script that should be executed as the container's entrypoint. It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.",
|
|
835
|
-
"minItems": 1,
|
|
836
|
-
},
|
|
837
|
-
"docker": {
|
|
838
|
-
"type": "object",
|
|
839
|
-
"markdownDescription": "Options to pass to Runners Docker Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagedocker)",
|
|
840
|
-
"additionalProperties": false,
|
|
841
|
-
"properties": {
|
|
842
|
-
"platform": {
|
|
843
|
-
"type": "string",
|
|
844
|
-
"minLength": 1,
|
|
845
|
-
"description": "Image architecture to pull.",
|
|
846
|
-
},
|
|
847
|
-
"user": {
|
|
848
|
-
"type": "string",
|
|
849
|
-
"minLength": 1,
|
|
850
|
-
"maxLength": 255,
|
|
851
|
-
"description": "Username or UID to use for the container.",
|
|
852
|
-
},
|
|
853
|
-
},
|
|
854
|
-
},
|
|
855
|
-
"kubernetes": {
|
|
856
|
-
"type": "object",
|
|
857
|
-
"markdownDescription": "Options to pass to Runners Kubernetes Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagekubernetes)",
|
|
858
|
-
"additionalProperties": false,
|
|
859
|
-
"properties": {
|
|
860
|
-
"user": {
|
|
861
|
-
"type": [
|
|
862
|
-
"string",
|
|
863
|
-
"integer",
|
|
864
|
-
],
|
|
865
|
-
"minLength": 1,
|
|
866
|
-
"maxLength": 255,
|
|
867
|
-
"description": "Username or UID to use for the container. It also supports the UID:GID format.",
|
|
868
|
-
},
|
|
869
|
-
},
|
|
870
|
-
},
|
|
871
|
-
"pull_policy": {
|
|
872
|
-
"markdownDescription": "Specifies how to pull the image in Runner. It can be one of `always`, `never` or `if-not-present`. The default value is `always`. [Learn more](https://docs.gitlab.com/ci/yaml/#imagepull_policy).",
|
|
873
|
-
"default": "always",
|
|
874
|
-
"oneOf": [
|
|
875
|
-
{
|
|
876
|
-
"type": "string",
|
|
877
|
-
"enum": [
|
|
878
|
-
"always",
|
|
879
|
-
"never",
|
|
880
|
-
"if-not-present",
|
|
881
|
-
],
|
|
882
|
-
},
|
|
883
|
-
{
|
|
884
|
-
"type": "array",
|
|
885
|
-
"items": {
|
|
886
|
-
"type": "string",
|
|
887
|
-
"enum": [
|
|
888
|
-
"always",
|
|
889
|
-
"never",
|
|
890
|
-
"if-not-present",
|
|
891
|
-
],
|
|
892
|
-
},
|
|
893
|
-
"minItems": 1,
|
|
894
|
-
"uniqueItems": true,
|
|
895
|
-
},
|
|
896
|
-
],
|
|
897
|
-
},
|
|
898
|
-
},
|
|
899
|
-
"required": [
|
|
900
|
-
"name",
|
|
901
|
-
],
|
|
902
|
-
},
|
|
903
|
-
],
|
|
904
|
-
"markdownDescription": "Specifies the docker image to use for the job or globally for all jobs. Job configuration takes precedence over global setting. Requires a certain kind of GitLab runner executor. [Learn More](https://docs.gitlab.com/ci/yaml/#image).",
|
|
905
|
-
},
|
|
906
|
-
"services": {
|
|
907
|
-
"type": "array",
|
|
908
|
-
"markdownDescription": "Similar to `image` property, but will link the specified services to the `image` container. [Learn More](https://docs.gitlab.com/ci/yaml/#services).",
|
|
909
|
-
"items": {
|
|
910
|
-
"oneOf": [
|
|
911
|
-
{
|
|
912
|
-
"type": "string",
|
|
913
|
-
"minLength": 1,
|
|
914
|
-
"description": "Full name of the image that should be used. It should contain the Registry part if needed.",
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"type": "object",
|
|
918
|
-
"description": "",
|
|
919
|
-
"additionalProperties": false,
|
|
920
|
-
"properties": {
|
|
921
|
-
"name": {
|
|
922
|
-
"type": "string",
|
|
923
|
-
"description": "Full name of the image that should be used. It should contain the Registry part if needed.",
|
|
924
|
-
"minLength": 1,
|
|
925
|
-
},
|
|
926
|
-
"entrypoint": {
|
|
927
|
-
"type": "array",
|
|
928
|
-
"markdownDescription": "Command or script that should be executed as the container's entrypoint. It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
|
|
929
|
-
"minItems": 1,
|
|
930
|
-
"items": {
|
|
931
|
-
"type": "string",
|
|
932
|
-
},
|
|
933
|
-
},
|
|
934
|
-
"docker": {
|
|
935
|
-
"type": "object",
|
|
936
|
-
"markdownDescription": "Options to pass to Runners Docker Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#servicesdocker)",
|
|
937
|
-
"additionalProperties": false,
|
|
938
|
-
"properties": {
|
|
939
|
-
"platform": {
|
|
940
|
-
"type": "string",
|
|
941
|
-
"minLength": 1,
|
|
942
|
-
"description": "Image architecture to pull.",
|
|
943
|
-
},
|
|
944
|
-
"user": {
|
|
945
|
-
"type": "string",
|
|
946
|
-
"minLength": 1,
|
|
947
|
-
"maxLength": 255,
|
|
948
|
-
"description": "Username or UID to use for the container.",
|
|
949
|
-
},
|
|
950
|
-
},
|
|
951
|
-
},
|
|
952
|
-
"kubernetes": {
|
|
953
|
-
"type": "object",
|
|
954
|
-
"markdownDescription": "Options to pass to Runners Kubernetes Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagekubernetes)",
|
|
955
|
-
"additionalProperties": false,
|
|
956
|
-
"properties": {
|
|
957
|
-
"user": {
|
|
958
|
-
"type": [
|
|
959
|
-
"string",
|
|
960
|
-
"integer",
|
|
961
|
-
],
|
|
962
|
-
"minLength": 1,
|
|
963
|
-
"maxLength": 255,
|
|
964
|
-
"description": "Username or UID to use for the container. It also supports the UID:GID format.",
|
|
965
|
-
},
|
|
966
|
-
},
|
|
967
|
-
},
|
|
968
|
-
"pull_policy": {
|
|
969
|
-
"markdownDescription": "Specifies how to pull the image in Runner. It can be one of `always`, `never` or `if-not-present`. The default value is `always`. [Learn more](https://docs.gitlab.com/ci/yaml/#servicespull_policy).",
|
|
970
|
-
"default": "always",
|
|
971
|
-
"oneOf": [
|
|
972
|
-
{
|
|
973
|
-
"type": "string",
|
|
974
|
-
"enum": [
|
|
975
|
-
"always",
|
|
976
|
-
"never",
|
|
977
|
-
"if-not-present",
|
|
978
|
-
],
|
|
979
|
-
},
|
|
980
|
-
{
|
|
981
|
-
"type": "array",
|
|
982
|
-
"items": {
|
|
983
|
-
"type": "string",
|
|
984
|
-
"enum": [
|
|
985
|
-
"always",
|
|
986
|
-
"never",
|
|
987
|
-
"if-not-present",
|
|
988
|
-
],
|
|
989
|
-
},
|
|
990
|
-
"minItems": 1,
|
|
991
|
-
"uniqueItems": true,
|
|
992
|
-
},
|
|
993
|
-
],
|
|
994
|
-
},
|
|
995
|
-
"command": {
|
|
996
|
-
"markdownDescription": "Command or script that should be used as the container's command. It will be translated to arguments passed to Docker after the image's name. The syntax is similar to Dockerfile's CMD directive, where each shell token is a separate string in the array. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
|
|
997
|
-
"$ref": "#/definitions/script",
|
|
998
|
-
},
|
|
999
|
-
"alias": {
|
|
1000
|
-
"type": "string",
|
|
1001
|
-
"markdownDescription": "Additional alias that can be used to access the service from the job's container. Read Accessing the services for more information. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
|
|
1002
|
-
"minLength": 1,
|
|
1003
|
-
},
|
|
1004
|
-
"variables": {
|
|
1005
|
-
"$ref": "#/definitions/jobVariables",
|
|
1006
|
-
"markdownDescription": "Additional environment variables that are passed exclusively to the service. Service variables cannot reference themselves. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
|
|
1007
|
-
},
|
|
1008
|
-
},
|
|
1009
|
-
"required": [
|
|
1010
|
-
"name",
|
|
1011
|
-
],
|
|
1012
|
-
},
|
|
1013
|
-
],
|
|
1014
|
-
},
|
|
1015
|
-
},
|
|
1016
|
-
"id_tokens": {
|
|
1017
|
-
"type": "object",
|
|
1018
|
-
"markdownDescription": "Defines JWTs to be injected as environment variables.",
|
|
1019
|
-
"patternProperties": {
|
|
1020
|
-
".*": {
|
|
1021
|
-
"type": "object",
|
|
1022
|
-
"properties": {
|
|
1023
|
-
"aud": {
|
|
1024
|
-
"oneOf": [
|
|
1025
|
-
{
|
|
1026
|
-
"type": "string",
|
|
1027
|
-
},
|
|
1028
|
-
{
|
|
1029
|
-
"type": "array",
|
|
1030
|
-
"items": {
|
|
1031
|
-
"type": "string",
|
|
1032
|
-
},
|
|
1033
|
-
"minItems": 1,
|
|
1034
|
-
"uniqueItems": true,
|
|
1035
|
-
},
|
|
1036
|
-
],
|
|
1037
|
-
},
|
|
1038
|
-
},
|
|
1039
|
-
"required": [
|
|
1040
|
-
"aud",
|
|
1041
|
-
],
|
|
1042
|
-
"additionalProperties": false,
|
|
1043
|
-
},
|
|
1044
|
-
},
|
|
1045
|
-
},
|
|
1046
|
-
"identity": {
|
|
1047
|
-
"type": "string",
|
|
1048
|
-
"markdownDescription": "Sets a workload identity (experimental), allowing automatic authentication with the external system. [Learn More](https://docs.gitlab.com/ci/yaml/#identity).",
|
|
1049
|
-
"enum": [
|
|
1050
|
-
"google_cloud",
|
|
1051
|
-
],
|
|
1052
|
-
},
|
|
1053
|
-
"secrets": {
|
|
1054
|
-
"type": "object",
|
|
1055
|
-
"markdownDescription": "Defines secrets to be injected as environment variables. [Learn More](https://docs.gitlab.com/ci/yaml/#secrets).",
|
|
1056
|
-
"patternProperties": {
|
|
1057
|
-
".*": {
|
|
1058
|
-
"type": "object",
|
|
1059
|
-
"properties": {
|
|
1060
|
-
"vault": {
|
|
1061
|
-
"oneOf": [
|
|
1062
|
-
{
|
|
1063
|
-
"type": "string",
|
|
1064
|
-
"markdownDescription": "The secret to be fetched from Vault (e.g. 'production/db/password@ops' translates to secret 'ops/data/production/db', field `password`). [Learn More](https://docs.gitlab.com/ci/yaml/#secretsvault)",
|
|
1065
|
-
},
|
|
1066
|
-
{
|
|
1067
|
-
"type": "object",
|
|
1068
|
-
"properties": {
|
|
1069
|
-
"engine": {
|
|
1070
|
-
"type": "object",
|
|
1071
|
-
"properties": {
|
|
1072
|
-
"name": {
|
|
1073
|
-
"type": "string",
|
|
1074
|
-
},
|
|
1075
|
-
"path": {
|
|
1076
|
-
"type": "string",
|
|
1077
|
-
},
|
|
1078
|
-
},
|
|
1079
|
-
"required": [
|
|
1080
|
-
"name",
|
|
1081
|
-
"path",
|
|
1082
|
-
],
|
|
1083
|
-
},
|
|
1084
|
-
"path": {
|
|
1085
|
-
"type": "string",
|
|
1086
|
-
},
|
|
1087
|
-
"field": {
|
|
1088
|
-
"type": "string",
|
|
1089
|
-
},
|
|
1090
|
-
},
|
|
1091
|
-
"required": [
|
|
1092
|
-
"engine",
|
|
1093
|
-
"path",
|
|
1094
|
-
"field",
|
|
1095
|
-
],
|
|
1096
|
-
"additionalProperties": false,
|
|
1097
|
-
},
|
|
1098
|
-
],
|
|
1099
|
-
},
|
|
1100
|
-
"gcp_secret_manager": {
|
|
1101
|
-
"type": "object",
|
|
1102
|
-
"markdownDescription": "Defines the secret version to be fetched from GCP Secret Manager. Name refers to the secret name in GCP secret manager. Version refers to the desired secret version (defaults to 'latest').",
|
|
1103
|
-
"properties": {
|
|
1104
|
-
"name": {
|
|
1105
|
-
"type": "string",
|
|
1106
|
-
},
|
|
1107
|
-
"version": {
|
|
1108
|
-
"oneOf": [
|
|
1109
|
-
{
|
|
1110
|
-
"type": "string",
|
|
1111
|
-
},
|
|
1112
|
-
{
|
|
1113
|
-
"type": "integer",
|
|
1114
|
-
},
|
|
1115
|
-
],
|
|
1116
|
-
"default": "version",
|
|
1117
|
-
},
|
|
1118
|
-
},
|
|
1119
|
-
"required": [
|
|
1120
|
-
"name",
|
|
1121
|
-
],
|
|
1122
|
-
"additionalProperties": false,
|
|
1123
|
-
},
|
|
1124
|
-
"azure_key_vault": {
|
|
1125
|
-
"type": "object",
|
|
1126
|
-
"properties": {
|
|
1127
|
-
"name": {
|
|
1128
|
-
"type": "string",
|
|
1129
|
-
},
|
|
1130
|
-
"version": {
|
|
1131
|
-
"type": "string",
|
|
1132
|
-
},
|
|
1133
|
-
},
|
|
1134
|
-
"required": [
|
|
1135
|
-
"name",
|
|
1136
|
-
],
|
|
1137
|
-
"additionalProperties": false,
|
|
1138
|
-
},
|
|
1139
|
-
"aws_secrets_manager": {
|
|
1140
|
-
"oneOf": [
|
|
1141
|
-
{
|
|
1142
|
-
"type": "string",
|
|
1143
|
-
"description": "The ARN or name of the secret to retrieve. To retrieve a secret from another account, you must use an ARN.",
|
|
1144
|
-
},
|
|
1145
|
-
{
|
|
1146
|
-
"type": "object",
|
|
1147
|
-
"markdownDescription": "Defines the secret to be fetched from AWS Secrets Manager. The secret_id refers to the ARN or name of the secret in AWS Secrets Manager. Version_id and version_stage are optional parameters that can be used to specify a specific version of the secret, else AWSCURRENT version will be returned.",
|
|
1148
|
-
"properties": {
|
|
1149
|
-
"secret_id": {
|
|
1150
|
-
"type": "string",
|
|
1151
|
-
"description": "The ARN or name of the secret to retrieve. To retrieve a secret from another account, you must use an ARN.",
|
|
1152
|
-
},
|
|
1153
|
-
"version_id": {
|
|
1154
|
-
"type": "string",
|
|
1155
|
-
"description": "The unique identifier of the version of the secret to retrieve. If you include both this parameter and VersionStage, the two parameters must refer to the same secret version. If you don't specify either a VersionStage or VersionId, Secrets Manager returns the AWSCURRENT version.",
|
|
1156
|
-
},
|
|
1157
|
-
"version_stage": {
|
|
1158
|
-
"type": "string",
|
|
1159
|
-
"description": "The staging label of the version of the secret to retrieve. If you include both this parameter and VersionStage, the two parameters must refer to the same secret version. If you don't specify either a VersionStage or VersionId, Secrets Manager returns the AWSCURRENT version.",
|
|
1160
|
-
},
|
|
1161
|
-
"region": {
|
|
1162
|
-
"type": "string",
|
|
1163
|
-
"description": "The AWS region where the secret is stored. Use this to override the region for a specific secret. Defaults to AWS_REGION variable.",
|
|
1164
|
-
},
|
|
1165
|
-
"role_arn": {
|
|
1166
|
-
"type": "string",
|
|
1167
|
-
"description": "The ARN of the IAM role to assume before retrieving the secret. Use this to override the ARN. Defaults to AWS_ROLE_ARN variable.",
|
|
1168
|
-
},
|
|
1169
|
-
"role_session_name": {
|
|
1170
|
-
"type": "string",
|
|
1171
|
-
"description": "The name of the session to use when assuming the role. Use this to override the session name. Defaults to AWS_ROLE_SESSION_NAME variable.",
|
|
1172
|
-
},
|
|
1173
|
-
"field": {
|
|
1174
|
-
"type": "string",
|
|
1175
|
-
"description": "The name of the field to retrieve from the secret. If not specified, the entire secret is retrieved.",
|
|
1176
|
-
},
|
|
1177
|
-
},
|
|
1178
|
-
"required": [
|
|
1179
|
-
"secret_id",
|
|
1180
|
-
],
|
|
1181
|
-
"additionalProperties": false,
|
|
1182
|
-
},
|
|
1183
|
-
],
|
|
1184
|
-
},
|
|
1185
|
-
"file": {
|
|
1186
|
-
"type": "boolean",
|
|
1187
|
-
"default": true,
|
|
1188
|
-
"markdownDescription": "Configures the secret to be stored as either a file or variable type CI/CD variable. [Learn More](https://docs.gitlab.com/ci/yaml/#secretsfile)",
|
|
1189
|
-
},
|
|
1190
|
-
"token": {
|
|
1191
|
-
"type": "string",
|
|
1192
|
-
"description": "Specifies the JWT variable that should be used to authenticate with the secret provider.",
|
|
1193
|
-
},
|
|
1194
|
-
},
|
|
1195
|
-
"anyOf": [
|
|
1196
|
-
{
|
|
1197
|
-
"required": [
|
|
1198
|
-
"vault",
|
|
1199
|
-
],
|
|
1200
|
-
},
|
|
1201
|
-
{
|
|
1202
|
-
"required": [
|
|
1203
|
-
"azure_key_vault",
|
|
1204
|
-
],
|
|
1205
|
-
},
|
|
1206
|
-
{
|
|
1207
|
-
"required": [
|
|
1208
|
-
"gcp_secret_manager",
|
|
1209
|
-
],
|
|
1210
|
-
},
|
|
1211
|
-
{
|
|
1212
|
-
"required": [
|
|
1213
|
-
"aws_secrets_manager",
|
|
1214
|
-
],
|
|
1215
|
-
},
|
|
1216
|
-
],
|
|
1217
|
-
"dependencies": {
|
|
1218
|
-
"gcp_secret_manager": [
|
|
1219
|
-
"token",
|
|
1220
|
-
],
|
|
1221
|
-
},
|
|
1222
|
-
"additionalProperties": false,
|
|
1223
|
-
},
|
|
1224
|
-
},
|
|
1225
|
-
},
|
|
1226
|
-
"script": {
|
|
1227
|
-
"oneOf": [
|
|
1228
|
-
{
|
|
1229
|
-
"type": "string",
|
|
1230
|
-
"minLength": 1,
|
|
1231
|
-
},
|
|
1232
|
-
{
|
|
1233
|
-
"type": "array",
|
|
1234
|
-
"items": {
|
|
1235
|
-
"anyOf": [
|
|
1236
|
-
{
|
|
1237
|
-
"type": "string",
|
|
1238
|
-
},
|
|
1239
|
-
{
|
|
1240
|
-
"type": "array",
|
|
1241
|
-
"items": {
|
|
1242
|
-
"type": "string",
|
|
1243
|
-
},
|
|
1244
|
-
},
|
|
1245
|
-
],
|
|
1246
|
-
},
|
|
1247
|
-
"minItems": 1,
|
|
1248
|
-
},
|
|
1249
|
-
],
|
|
1250
|
-
},
|
|
1251
|
-
"steps": {
|
|
1252
|
-
"type": "array",
|
|
1253
|
-
"items": {
|
|
1254
|
-
"$ref": "#/definitions/step",
|
|
1255
|
-
},
|
|
1256
|
-
},
|
|
1257
|
-
"optional_script": {
|
|
1258
|
-
"oneOf": [
|
|
1259
|
-
{
|
|
1260
|
-
"type": "string",
|
|
1261
|
-
},
|
|
1262
|
-
{
|
|
1263
|
-
"type": "array",
|
|
1264
|
-
"items": {
|
|
1265
|
-
"anyOf": [
|
|
1266
|
-
{
|
|
1267
|
-
"type": "string",
|
|
1268
|
-
},
|
|
1269
|
-
{
|
|
1270
|
-
"type": "array",
|
|
1271
|
-
"items": {
|
|
1272
|
-
"type": "string",
|
|
1273
|
-
},
|
|
1274
|
-
},
|
|
1275
|
-
],
|
|
1276
|
-
},
|
|
1277
|
-
},
|
|
1278
|
-
],
|
|
1279
|
-
},
|
|
1280
|
-
"before_script": {
|
|
1281
|
-
"$ref": "#/definitions/optional_script",
|
|
1282
|
-
"markdownDescription": "Defines scripts that should run *before* the job. Can be set globally or per job. [Learn More](https://docs.gitlab.com/ci/yaml/#before_script).",
|
|
1283
|
-
},
|
|
1284
|
-
"after_script": {
|
|
1285
|
-
"$ref": "#/definitions/optional_script",
|
|
1286
|
-
"markdownDescription": "Defines scripts that should run *after* the job. Can be set globally or per job. [Learn More](https://docs.gitlab.com/ci/yaml/#after_script).",
|
|
1287
|
-
},
|
|
1288
|
-
"rules": {
|
|
1289
|
-
"type": [
|
|
1290
|
-
"array",
|
|
1291
|
-
"null",
|
|
1292
|
-
],
|
|
1293
|
-
"markdownDescription": "Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job. [Learn More](https://docs.gitlab.com/ci/yaml/#rules).",
|
|
1294
|
-
"items": {
|
|
1295
|
-
"anyOf": [
|
|
1296
|
-
{
|
|
1297
|
-
"type": "object",
|
|
1298
|
-
"additionalProperties": false,
|
|
1299
|
-
"properties": {
|
|
1300
|
-
"if": {
|
|
1301
|
-
"$ref": "#/definitions/if",
|
|
1302
|
-
},
|
|
1303
|
-
"changes": {
|
|
1304
|
-
"$ref": "#/definitions/changes",
|
|
1305
|
-
},
|
|
1306
|
-
"exists": {
|
|
1307
|
-
"$ref": "#/definitions/exists",
|
|
1308
|
-
},
|
|
1309
|
-
"variables": {
|
|
1310
|
-
"$ref": "#/definitions/rulesVariables",
|
|
1311
|
-
},
|
|
1312
|
-
"when": {
|
|
1313
|
-
"$ref": "#/definitions/when",
|
|
1314
|
-
},
|
|
1315
|
-
"start_in": {
|
|
1316
|
-
"$ref": "#/definitions/start_in",
|
|
1317
|
-
},
|
|
1318
|
-
"allow_failure": {
|
|
1319
|
-
"$ref": "#/definitions/allow_failure",
|
|
1320
|
-
},
|
|
1321
|
-
"needs": {
|
|
1322
|
-
"$ref": "#/definitions/rulesNeeds",
|
|
1323
|
-
},
|
|
1324
|
-
"interruptible": {
|
|
1325
|
-
"$ref": "#/definitions/interruptible",
|
|
1326
|
-
},
|
|
1327
|
-
},
|
|
1328
|
-
},
|
|
1329
|
-
{
|
|
1330
|
-
"type": "string",
|
|
1331
|
-
"minLength": 1,
|
|
1332
|
-
},
|
|
1333
|
-
{
|
|
1334
|
-
"type": "array",
|
|
1335
|
-
"minItems": 1,
|
|
1336
|
-
"items": {
|
|
1337
|
-
"type": "string",
|
|
1338
|
-
},
|
|
1339
|
-
},
|
|
1340
|
-
],
|
|
1341
|
-
},
|
|
1342
|
-
},
|
|
1343
|
-
"includeRules": {
|
|
1344
|
-
"type": [
|
|
1345
|
-
"array",
|
|
1346
|
-
"null",
|
|
1347
|
-
],
|
|
1348
|
-
"markdownDescription": "You can use rules to conditionally include other configuration files. [Learn More](https://docs.gitlab.com/ci/yaml/includes/#use-rules-with-include).",
|
|
1349
|
-
"items": {
|
|
1350
|
-
"anyOf": [
|
|
1351
|
-
{
|
|
1352
|
-
"type": "object",
|
|
1353
|
-
"additionalProperties": false,
|
|
1354
|
-
"properties": {
|
|
1355
|
-
"if": {
|
|
1356
|
-
"$ref": "#/definitions/if",
|
|
1357
|
-
},
|
|
1358
|
-
"changes": {
|
|
1359
|
-
"$ref": "#/definitions/changes",
|
|
1360
|
-
},
|
|
1361
|
-
"exists": {
|
|
1362
|
-
"$ref": "#/definitions/exists",
|
|
1363
|
-
},
|
|
1364
|
-
"when": {
|
|
1365
|
-
"markdownDescription": "Use `when: never` to exclude the configuration file if the condition matches. [Learn More](https://docs.gitlab.com/ci/yaml/includes/#include-with-rulesif).",
|
|
1366
|
-
"oneOf": [
|
|
1367
|
-
{
|
|
1368
|
-
"type": "string",
|
|
1369
|
-
"enum": [
|
|
1370
|
-
"never",
|
|
1371
|
-
"always",
|
|
1372
|
-
],
|
|
1373
|
-
},
|
|
1374
|
-
{
|
|
1375
|
-
"type": "null",
|
|
1376
|
-
},
|
|
1377
|
-
],
|
|
1378
|
-
},
|
|
1379
|
-
},
|
|
1380
|
-
},
|
|
1381
|
-
{
|
|
1382
|
-
"type": "string",
|
|
1383
|
-
"minLength": 1,
|
|
1384
|
-
},
|
|
1385
|
-
{
|
|
1386
|
-
"type": "array",
|
|
1387
|
-
"minItems": 1,
|
|
1388
|
-
"items": {
|
|
1389
|
-
"type": "string",
|
|
1390
|
-
},
|
|
1391
|
-
},
|
|
1392
|
-
],
|
|
1393
|
-
},
|
|
1394
|
-
},
|
|
1395
|
-
"workflowName": {
|
|
1396
|
-
"type": "string",
|
|
1397
|
-
"markdownDescription": "Defines the pipeline name. [Learn More](https://docs.gitlab.com/ci/yaml/#workflowname).",
|
|
1398
|
-
"minLength": 1,
|
|
1399
|
-
"maxLength": 255,
|
|
1400
|
-
},
|
|
1401
|
-
"workflowAutoCancel": {
|
|
1402
|
-
"type": "object",
|
|
1403
|
-
"description": "Define the rules for when pipeline should be automatically cancelled.",
|
|
1404
|
-
"additionalProperties": false,
|
|
1405
|
-
"properties": {
|
|
1406
|
-
"on_job_failure": {
|
|
1407
|
-
"markdownDescription": "Define which jobs to stop after a job fails.",
|
|
1408
|
-
"default": "none",
|
|
1409
|
-
"type": "string",
|
|
1410
|
-
"enum": [
|
|
1411
|
-
"none",
|
|
1412
|
-
"all",
|
|
1413
|
-
],
|
|
1414
|
-
},
|
|
1415
|
-
"on_new_commit": {
|
|
1416
|
-
"markdownDescription": "Configure the behavior of the auto-cancel redundant pipelines feature. [Learn More](https://docs.gitlab.com/ci/yaml/#workflowauto_cancelon_new_commit)",
|
|
1417
|
-
"type": "string",
|
|
1418
|
-
"enum": [
|
|
1419
|
-
"conservative",
|
|
1420
|
-
"interruptible",
|
|
1421
|
-
"none",
|
|
1422
|
-
],
|
|
1423
|
-
},
|
|
1424
|
-
},
|
|
1425
|
-
},
|
|
1426
|
-
"globalVariables": {
|
|
1427
|
-
"markdownDescription": "Defines default variables for all jobs. Job level property overrides global variables. [Learn More](https://docs.gitlab.com/ci/yaml/#variables).",
|
|
1428
|
-
"type": "object",
|
|
1429
|
-
"patternProperties": {
|
|
1430
|
-
".*": {
|
|
1431
|
-
"oneOf": [
|
|
1432
|
-
{
|
|
1433
|
-
"type": [
|
|
1434
|
-
"boolean",
|
|
1435
|
-
"number",
|
|
1436
|
-
"string",
|
|
1437
|
-
],
|
|
1438
|
-
},
|
|
1439
|
-
{
|
|
1440
|
-
"type": "object",
|
|
1441
|
-
"properties": {
|
|
1442
|
-
"value": {
|
|
1443
|
-
"type": "string",
|
|
1444
|
-
"markdownDescription": "Default value of the variable. If used with `options`, `value` must be included in the array. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesvalue)",
|
|
1445
|
-
},
|
|
1446
|
-
"options": {
|
|
1447
|
-
"type": "array",
|
|
1448
|
-
"items": {
|
|
1449
|
-
"type": "string",
|
|
1450
|
-
},
|
|
1451
|
-
"minItems": 1,
|
|
1452
|
-
"uniqueItems": true,
|
|
1453
|
-
"markdownDescription": "A list of predefined values that users can select from in the **Run pipeline** page when running a pipeline manually. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesoptions)",
|
|
1454
|
-
},
|
|
1455
|
-
"description": {
|
|
1456
|
-
"type": "string",
|
|
1457
|
-
"markdownDescription": "Explains what the variable is used for, what the acceptable values are. Variables with `description` are prefilled when running a pipeline manually. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesdescription).",
|
|
1458
|
-
},
|
|
1459
|
-
"expand": {
|
|
1460
|
-
"type": "boolean",
|
|
1461
|
-
"markdownDescription": "If the variable is expandable or not. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesexpand).",
|
|
1462
|
-
},
|
|
1463
|
-
},
|
|
1464
|
-
"additionalProperties": false,
|
|
1465
|
-
},
|
|
1466
|
-
],
|
|
1467
|
-
},
|
|
1468
|
-
},
|
|
1469
|
-
},
|
|
1470
|
-
"jobVariables": {
|
|
1471
|
-
"markdownDescription": "Defines variables for a job. [Learn More](https://docs.gitlab.com/ci/yaml/#variables).",
|
|
1472
|
-
"type": "object",
|
|
1473
|
-
"patternProperties": {
|
|
1474
|
-
".*": {
|
|
1475
|
-
"oneOf": [
|
|
1476
|
-
{
|
|
1477
|
-
"type": [
|
|
1478
|
-
"boolean",
|
|
1479
|
-
"number",
|
|
1480
|
-
"string",
|
|
1481
|
-
],
|
|
1482
|
-
},
|
|
1483
|
-
{
|
|
1484
|
-
"type": "object",
|
|
1485
|
-
"properties": {
|
|
1486
|
-
"value": {
|
|
1487
|
-
"type": "string",
|
|
1488
|
-
},
|
|
1489
|
-
"expand": {
|
|
1490
|
-
"type": "boolean",
|
|
1491
|
-
"markdownDescription": "Defines if the variable is expandable or not. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesexpand).",
|
|
1492
|
-
},
|
|
1493
|
-
},
|
|
1494
|
-
"additionalProperties": false,
|
|
1495
|
-
},
|
|
1496
|
-
],
|
|
1497
|
-
},
|
|
1498
|
-
},
|
|
1499
|
-
},
|
|
1500
|
-
"rulesVariables": {
|
|
1501
|
-
"markdownDescription": "Defines variables for a rule result. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesvariables).",
|
|
1502
|
-
"type": "object",
|
|
1503
|
-
"patternProperties": {
|
|
1504
|
-
".*": {
|
|
1505
|
-
"type": [
|
|
1506
|
-
"boolean",
|
|
1507
|
-
"number",
|
|
1508
|
-
"string",
|
|
1509
|
-
],
|
|
1510
|
-
},
|
|
1511
|
-
},
|
|
1512
|
-
},
|
|
1513
|
-
"if": {
|
|
1514
|
-
"type": "string",
|
|
1515
|
-
"markdownDescription": "Expression to evaluate whether additional attributes should be provided to the job. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesif).",
|
|
1516
|
-
},
|
|
1517
|
-
"changes": {
|
|
1518
|
-
"markdownDescription": "Additional attributes will be provided to job if any of the provided paths matches a modified file. [Learn More](https://docs.gitlab.com/ci/yaml/#ruleschanges).",
|
|
1519
|
-
"anyOf": [
|
|
1520
|
-
{
|
|
1521
|
-
"type": "object",
|
|
1522
|
-
"additionalProperties": false,
|
|
1523
|
-
"required": [
|
|
1524
|
-
"paths",
|
|
1525
|
-
],
|
|
1526
|
-
"properties": {
|
|
1527
|
-
"paths": {
|
|
1528
|
-
"type": "array",
|
|
1529
|
-
"description": "List of file paths.",
|
|
1530
|
-
"items": {
|
|
1531
|
-
"type": "string",
|
|
1532
|
-
},
|
|
1533
|
-
},
|
|
1534
|
-
"compare_to": {
|
|
1535
|
-
"type": "string",
|
|
1536
|
-
"description": "Ref for comparing changes.",
|
|
1537
|
-
},
|
|
1538
|
-
},
|
|
1539
|
-
},
|
|
1540
|
-
{
|
|
1541
|
-
"type": "array",
|
|
1542
|
-
"items": {
|
|
1543
|
-
"type": "string",
|
|
1544
|
-
},
|
|
1545
|
-
},
|
|
1546
|
-
],
|
|
1547
|
-
},
|
|
1548
|
-
"exists": {
|
|
1549
|
-
"markdownDescription": "Additional attributes will be provided to job if any of the provided paths matches an existing file in the repository. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesexists).",
|
|
1550
|
-
"anyOf": [
|
|
1551
|
-
{
|
|
1552
|
-
"type": "array",
|
|
1553
|
-
"items": {
|
|
1554
|
-
"type": "string",
|
|
1555
|
-
},
|
|
1556
|
-
},
|
|
1557
|
-
{
|
|
1558
|
-
"type": "object",
|
|
1559
|
-
"additionalProperties": false,
|
|
1560
|
-
"required": [
|
|
1561
|
-
"paths",
|
|
1562
|
-
],
|
|
1563
|
-
"properties": {
|
|
1564
|
-
"paths": {
|
|
1565
|
-
"type": "array",
|
|
1566
|
-
"description": "List of file paths.",
|
|
1567
|
-
"items": {
|
|
1568
|
-
"type": "string",
|
|
1569
|
-
},
|
|
1570
|
-
},
|
|
1571
|
-
"project": {
|
|
1572
|
-
"type": "string",
|
|
1573
|
-
"description": "Path of the project to search in.",
|
|
1574
|
-
},
|
|
1575
|
-
},
|
|
1576
|
-
},
|
|
1577
|
-
{
|
|
1578
|
-
"type": "object",
|
|
1579
|
-
"additionalProperties": false,
|
|
1580
|
-
"required": [
|
|
1581
|
-
"paths",
|
|
1582
|
-
"project",
|
|
1583
|
-
],
|
|
1584
|
-
"properties": {
|
|
1585
|
-
"paths": {
|
|
1586
|
-
"type": "array",
|
|
1587
|
-
"description": "List of file paths.",
|
|
1588
|
-
"items": {
|
|
1589
|
-
"type": "string",
|
|
1590
|
-
},
|
|
1591
|
-
},
|
|
1592
|
-
"project": {
|
|
1593
|
-
"type": "string",
|
|
1594
|
-
"description": "Path of the project to search in.",
|
|
1595
|
-
},
|
|
1596
|
-
"ref": {
|
|
1597
|
-
"type": "string",
|
|
1598
|
-
"description": "Ref of the project to search in.",
|
|
1599
|
-
},
|
|
1600
|
-
},
|
|
1601
|
-
},
|
|
1602
|
-
],
|
|
1603
|
-
},
|
|
1604
|
-
"timeout": {
|
|
1605
|
-
"type": "string",
|
|
1606
|
-
"markdownDescription": "Allows you to configure a timeout for a specific job (e.g. `1 minute`, `1h 30m 12s`). [Learn More](https://docs.gitlab.com/ci/yaml/#timeout).",
|
|
1607
|
-
"minLength": 1,
|
|
1608
|
-
},
|
|
1609
|
-
"start_in": {
|
|
1610
|
-
"type": "string",
|
|
1611
|
-
"markdownDescription": "Used in conjunction with 'when: delayed' to set how long to delay before starting a job. e.g. '5', 5 seconds, 30 minutes, 1 week, etc. [Learn More](https://docs.gitlab.com/ci/jobs/job_control/#run-a-job-after-a-delay).",
|
|
1612
|
-
"minLength": 1,
|
|
1613
|
-
},
|
|
1614
|
-
"rulesNeeds": {
|
|
1615
|
-
"markdownDescription": "Use needs in rules to update job needs for specific conditions. When a condition matches a rule, the job's needs configuration is completely replaced with the needs in the rule. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesneeds).",
|
|
1616
|
-
"type": "array",
|
|
1617
|
-
"items": {
|
|
1618
|
-
"oneOf": [
|
|
1619
|
-
{
|
|
1620
|
-
"type": "string",
|
|
1621
|
-
},
|
|
1622
|
-
{
|
|
1623
|
-
"type": "object",
|
|
1624
|
-
"additionalProperties": false,
|
|
1625
|
-
"properties": {
|
|
1626
|
-
"job": {
|
|
1627
|
-
"type": "string",
|
|
1628
|
-
"minLength": 1,
|
|
1629
|
-
"description": "Name of a job that is defined in the pipeline.",
|
|
1630
|
-
},
|
|
1631
|
-
"artifacts": {
|
|
1632
|
-
"type": "boolean",
|
|
1633
|
-
"description": "Download artifacts of the job in needs.",
|
|
1634
|
-
},
|
|
1635
|
-
"optional": {
|
|
1636
|
-
"type": "boolean",
|
|
1637
|
-
"description": "Whether the job needs to be present in the pipeline to run ahead of the current job.",
|
|
1638
|
-
},
|
|
1639
|
-
},
|
|
1640
|
-
"required": [
|
|
1641
|
-
"job",
|
|
1642
|
-
],
|
|
1643
|
-
},
|
|
1644
|
-
],
|
|
1645
|
-
},
|
|
1646
|
-
},
|
|
1647
|
-
"allow_failure": {
|
|
1648
|
-
"markdownDescription": "Allow job to fail. A failed job does not cause the pipeline to fail. [Learn More](https://docs.gitlab.com/ci/yaml/#allow_failure).",
|
|
1649
|
-
"oneOf": [
|
|
1650
|
-
{
|
|
1651
|
-
"description": "Setting this option to true will allow the job to fail while still letting the pipeline pass.",
|
|
1652
|
-
"type": "boolean",
|
|
1653
|
-
"default": false,
|
|
1654
|
-
},
|
|
1655
|
-
{
|
|
1656
|
-
"description": "Exit code that are not considered failure. The job fails for any other exit code.",
|
|
1657
|
-
"type": "object",
|
|
1658
|
-
"additionalProperties": false,
|
|
1659
|
-
"required": [
|
|
1660
|
-
"exit_codes",
|
|
1661
|
-
],
|
|
1662
|
-
"properties": {
|
|
1663
|
-
"exit_codes": {
|
|
1664
|
-
"type": "integer",
|
|
1665
|
-
},
|
|
1666
|
-
},
|
|
1667
|
-
},
|
|
1668
|
-
{
|
|
1669
|
-
"description": "You can list which exit codes are not considered failures. The job fails for any other exit code.",
|
|
1670
|
-
"type": "object",
|
|
1671
|
-
"additionalProperties": false,
|
|
1672
|
-
"required": [
|
|
1673
|
-
"exit_codes",
|
|
1674
|
-
],
|
|
1675
|
-
"properties": {
|
|
1676
|
-
"exit_codes": {
|
|
1677
|
-
"type": "array",
|
|
1678
|
-
"minItems": 1,
|
|
1679
|
-
"uniqueItems": true,
|
|
1680
|
-
"items": {
|
|
1681
|
-
"type": "integer",
|
|
1682
|
-
},
|
|
1683
|
-
},
|
|
1684
|
-
},
|
|
1685
|
-
},
|
|
1686
|
-
],
|
|
1687
|
-
},
|
|
1688
|
-
"parallel": {
|
|
1689
|
-
"description": "Splits up a single job into multiple that run in parallel. Provides `CI_NODE_INDEX` and `CI_NODE_TOTAL` environment variables to the jobs.",
|
|
1690
|
-
"oneOf": [
|
|
1691
|
-
{
|
|
1692
|
-
"type": "integer",
|
|
1693
|
-
"description": "Creates N instances of the job that run in parallel.",
|
|
1694
|
-
"default": 0,
|
|
1695
|
-
"minimum": 1,
|
|
1696
|
-
"maximum": 200,
|
|
1697
|
-
},
|
|
1698
|
-
{
|
|
1699
|
-
"type": "object",
|
|
1700
|
-
"properties": {
|
|
1701
|
-
"matrix": {
|
|
1702
|
-
"type": "array",
|
|
1703
|
-
"description": "Defines different variables for jobs that are running in parallel.",
|
|
1704
|
-
"items": {
|
|
1705
|
-
"type": "object",
|
|
1706
|
-
"description": "Defines the variables for a specific job.",
|
|
1707
|
-
"additionalProperties": {
|
|
1708
|
-
"type": [
|
|
1709
|
-
"string",
|
|
1710
|
-
"number",
|
|
1711
|
-
"array",
|
|
1712
|
-
],
|
|
1713
|
-
},
|
|
1714
|
-
},
|
|
1715
|
-
"maxItems": 200,
|
|
1716
|
-
},
|
|
1717
|
-
},
|
|
1718
|
-
"additionalProperties": false,
|
|
1719
|
-
"required": [
|
|
1720
|
-
"matrix",
|
|
1721
|
-
],
|
|
1722
|
-
},
|
|
1723
|
-
],
|
|
1724
|
-
},
|
|
1725
|
-
"parallel_matrix": {
|
|
1726
|
-
"description": "Use the `needs:parallel:matrix` keyword to specify parallelized jobs needed to be completed for the job to run. [Learn More](https://docs.gitlab.com/ci/yaml/#needsparallelmatrix)",
|
|
1727
|
-
"oneOf": [
|
|
1728
|
-
{
|
|
1729
|
-
"type": "object",
|
|
1730
|
-
"properties": {
|
|
1731
|
-
"matrix": {
|
|
1732
|
-
"type": "array",
|
|
1733
|
-
"description": "Defines different variables for jobs that are running in parallel.",
|
|
1734
|
-
"items": {
|
|
1735
|
-
"type": "object",
|
|
1736
|
-
"description": "Defines the variables for a specific job.",
|
|
1737
|
-
"additionalProperties": {
|
|
1738
|
-
"type": [
|
|
1739
|
-
"string",
|
|
1740
|
-
"number",
|
|
1741
|
-
"array",
|
|
1742
|
-
],
|
|
1743
|
-
},
|
|
1744
|
-
},
|
|
1745
|
-
"maxItems": 200,
|
|
1746
|
-
},
|
|
1747
|
-
},
|
|
1748
|
-
"additionalProperties": false,
|
|
1749
|
-
"required": [
|
|
1750
|
-
"matrix",
|
|
1751
|
-
],
|
|
1752
|
-
},
|
|
1753
|
-
],
|
|
1754
|
-
},
|
|
1755
|
-
"when": {
|
|
1756
|
-
"markdownDescription": "Describes the conditions for when to run the job. Defaults to 'on_success'. [Learn More](https://docs.gitlab.com/ci/yaml/#when).",
|
|
1757
|
-
"default": "on_success",
|
|
1758
|
-
"type": "string",
|
|
1759
|
-
"enum": [
|
|
1760
|
-
"on_success",
|
|
1761
|
-
"on_failure",
|
|
1762
|
-
"always",
|
|
1763
|
-
"never",
|
|
1764
|
-
"manual",
|
|
1765
|
-
"delayed",
|
|
1766
|
-
],
|
|
1767
|
-
},
|
|
1768
|
-
"cache": {
|
|
1769
|
-
"markdownDescription": "Use `cache` to specify a list of files and directories to cache between jobs. You can only use paths that are in the local working copy. [Learn More](https://docs.gitlab.com/ci/yaml/#cache)",
|
|
1770
|
-
"oneOf": [
|
|
1771
|
-
{
|
|
1772
|
-
"$ref": "#/definitions/cache_item",
|
|
1773
|
-
},
|
|
1774
|
-
{
|
|
1775
|
-
"type": "array",
|
|
1776
|
-
"items": {
|
|
1777
|
-
"$ref": "#/definitions/cache_item",
|
|
1778
|
-
},
|
|
1779
|
-
},
|
|
1780
|
-
],
|
|
1781
|
-
},
|
|
1782
|
-
"cache_item": {
|
|
1783
|
-
"type": "object",
|
|
1784
|
-
"properties": {
|
|
1785
|
-
"key": {
|
|
1786
|
-
"markdownDescription": "Use the `cache:key` keyword to give each cache a unique identifying key. All jobs that use the same cache key use the same cache, including in different pipelines. Must be used with `cache:path`, or nothing is cached. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekey).",
|
|
1787
|
-
"oneOf": [
|
|
1788
|
-
{
|
|
1789
|
-
"type": "string",
|
|
1790
|
-
},
|
|
1791
|
-
{
|
|
1792
|
-
"type": "object",
|
|
1793
|
-
"properties": {
|
|
1794
|
-
"files": {
|
|
1795
|
-
"markdownDescription": "Use the `cache:key:files` keyword to generate a new cache key when specified file content changes. Cache keys remain stable across branches with identical file content. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyfiles)",
|
|
1796
|
-
"type": "array",
|
|
1797
|
-
"items": {
|
|
1798
|
-
"type": "string",
|
|
1799
|
-
},
|
|
1800
|
-
"minItems": 1,
|
|
1801
|
-
"maxItems": 2,
|
|
1802
|
-
},
|
|
1803
|
-
"files_commits": {
|
|
1804
|
-
"markdownDescription": "Use the `cache:key:files_commits` keyword to generate a new cache key when the latest commit changes for the specified files. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyfiles_commits)",
|
|
1805
|
-
"type": "array",
|
|
1806
|
-
"items": {
|
|
1807
|
-
"type": "string",
|
|
1808
|
-
},
|
|
1809
|
-
"minItems": 1,
|
|
1810
|
-
"maxItems": 2,
|
|
1811
|
-
},
|
|
1812
|
-
"prefix": {
|
|
1813
|
-
"markdownDescription": "Use `cache:key:prefix` to combine a prefix with the SHA computed for `cache:key:files` or `cache:key:files_commits`. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyprefix)",
|
|
1814
|
-
"type": "string",
|
|
1815
|
-
},
|
|
1816
|
-
},
|
|
1817
|
-
},
|
|
1818
|
-
],
|
|
1819
|
-
},
|
|
1820
|
-
"paths": {
|
|
1821
|
-
"type": "array",
|
|
1822
|
-
"markdownDescription": "Use the `cache:paths` keyword to choose which files or directories to cache. [Learn More](https://docs.gitlab.com/ci/yaml/#cachepaths)",
|
|
1823
|
-
"items": {
|
|
1824
|
-
"type": "string",
|
|
1825
|
-
},
|
|
1826
|
-
},
|
|
1827
|
-
"policy": {
|
|
1828
|
-
"type": "string",
|
|
1829
|
-
"markdownDescription": "Determines the strategy for downloading and updating the cache. [Learn More](https://docs.gitlab.com/ci/yaml/#cachepolicy)",
|
|
1830
|
-
"default": "pull-push",
|
|
1831
|
-
},
|
|
1832
|
-
"unprotect": {
|
|
1833
|
-
"type": "boolean",
|
|
1834
|
-
"markdownDescription": "Use `unprotect: true` to set a cache to be shared between protected and unprotected branches.",
|
|
1835
|
-
"default": false,
|
|
1836
|
-
},
|
|
1837
|
-
"untracked": {
|
|
1838
|
-
"type": "boolean",
|
|
1839
|
-
"markdownDescription": "Use `untracked: true` to cache all files that are untracked in your Git repository. [Learn More](https://docs.gitlab.com/ci/yaml/#cacheuntracked)",
|
|
1840
|
-
"default": false,
|
|
1841
|
-
},
|
|
1842
|
-
"when": {
|
|
1843
|
-
"type": "string",
|
|
1844
|
-
"markdownDescription": "Defines when to save the cache, based on the status of the job. [Learn More](https://docs.gitlab.com/ci/yaml/#cachewhen).",
|
|
1845
|
-
"default": "on_success",
|
|
1846
|
-
"enum": [
|
|
1847
|
-
"on_success",
|
|
1848
|
-
"on_failure",
|
|
1849
|
-
"always",
|
|
1850
|
-
],
|
|
1851
|
-
},
|
|
1852
|
-
"fallback_keys": {
|
|
1853
|
-
"type": "array",
|
|
1854
|
-
"markdownDescription": "List of keys to download cache from if no cache hit occurred for key",
|
|
1855
|
-
"items": {
|
|
1856
|
-
"type": "string",
|
|
1857
|
-
},
|
|
1858
|
-
"maxItems": 5,
|
|
1859
|
-
},
|
|
1860
|
-
},
|
|
1861
|
-
},
|
|
1862
|
-
"filter_refs": {
|
|
1863
|
-
"type": "array",
|
|
1864
|
-
"description": "Filter job by different keywords that determine origin or state, or by supplying string/regex to check against branch/tag names.",
|
|
1865
|
-
"items": {
|
|
1866
|
-
"anyOf": [
|
|
1867
|
-
{
|
|
1868
|
-
"oneOf": [
|
|
1869
|
-
{
|
|
1870
|
-
"enum": [
|
|
1871
|
-
"branches",
|
|
1872
|
-
],
|
|
1873
|
-
"description": "When a branch is pushed.",
|
|
1874
|
-
},
|
|
1875
|
-
{
|
|
1876
|
-
"enum": [
|
|
1877
|
-
"tags",
|
|
1878
|
-
],
|
|
1879
|
-
"description": "When a tag is pushed.",
|
|
1880
|
-
},
|
|
1881
|
-
{
|
|
1882
|
-
"enum": [
|
|
1883
|
-
"api",
|
|
1884
|
-
],
|
|
1885
|
-
"description": "When a pipeline has been triggered by a second pipelines API (not triggers API).",
|
|
1886
|
-
},
|
|
1887
|
-
{
|
|
1888
|
-
"enum": [
|
|
1889
|
-
"external",
|
|
1890
|
-
],
|
|
1891
|
-
"description": "When using CI services other than GitLab",
|
|
1892
|
-
},
|
|
1893
|
-
{
|
|
1894
|
-
"enum": [
|
|
1895
|
-
"pipelines",
|
|
1896
|
-
],
|
|
1897
|
-
"description": "For multi-project triggers, created using the API with 'CI_JOB_TOKEN'.",
|
|
1898
|
-
},
|
|
1899
|
-
{
|
|
1900
|
-
"enum": [
|
|
1901
|
-
"pushes",
|
|
1902
|
-
],
|
|
1903
|
-
"description": "Pipeline is triggered by a `git push` by the user",
|
|
1904
|
-
},
|
|
1905
|
-
{
|
|
1906
|
-
"enum": [
|
|
1907
|
-
"schedules",
|
|
1908
|
-
],
|
|
1909
|
-
"description": "For scheduled pipelines.",
|
|
1910
|
-
},
|
|
1911
|
-
{
|
|
1912
|
-
"enum": [
|
|
1913
|
-
"triggers",
|
|
1914
|
-
],
|
|
1915
|
-
"description": "For pipelines created using a trigger token.",
|
|
1916
|
-
},
|
|
1917
|
-
{
|
|
1918
|
-
"enum": [
|
|
1919
|
-
"web",
|
|
1920
|
-
],
|
|
1921
|
-
"description": "For pipelines created using *Run pipeline* button in GitLab UI (under your project's *Pipelines*).",
|
|
1922
|
-
},
|
|
1923
|
-
],
|
|
1924
|
-
},
|
|
1925
|
-
{
|
|
1926
|
-
"type": "string",
|
|
1927
|
-
"description": "String or regular expression to match against tag or branch names.",
|
|
1928
|
-
},
|
|
1929
|
-
],
|
|
1930
|
-
},
|
|
1931
|
-
},
|
|
1932
|
-
"filter": {
|
|
1933
|
-
"oneOf": [
|
|
1934
|
-
{
|
|
1935
|
-
"type": "null",
|
|
1936
|
-
},
|
|
1937
|
-
{
|
|
1938
|
-
"$ref": "#/definitions/filter_refs",
|
|
1939
|
-
},
|
|
1940
|
-
{
|
|
1941
|
-
"type": "object",
|
|
1942
|
-
"additionalProperties": false,
|
|
1943
|
-
"properties": {
|
|
1944
|
-
"refs": {
|
|
1945
|
-
"$ref": "#/definitions/filter_refs",
|
|
1946
|
-
},
|
|
1947
|
-
"kubernetes": {
|
|
1948
|
-
"enum": [
|
|
1949
|
-
"active",
|
|
1950
|
-
],
|
|
1951
|
-
"description": "Filter job based on if Kubernetes integration is active.",
|
|
1952
|
-
},
|
|
1953
|
-
"variables": {
|
|
1954
|
-
"type": "array",
|
|
1955
|
-
"markdownDescription": "Filter job by checking comparing values of CI/CD variables. [Learn More](https://docs.gitlab.com/ci/jobs/job_control/#cicd-variable-expressions).",
|
|
1956
|
-
"items": {
|
|
1957
|
-
"type": "string",
|
|
1958
|
-
},
|
|
1959
|
-
},
|
|
1960
|
-
"changes": {
|
|
1961
|
-
"type": "array",
|
|
1962
|
-
"description": "Filter job creation based on files that were modified in a git push.",
|
|
1963
|
-
"items": {
|
|
1964
|
-
"type": "string",
|
|
1965
|
-
},
|
|
1966
|
-
},
|
|
1967
|
-
},
|
|
1968
|
-
},
|
|
1969
|
-
],
|
|
1970
|
-
},
|
|
1971
|
-
"retry": {
|
|
1972
|
-
"markdownDescription": "Retry a job if it fails. Can be a simple integer or object definition. [Learn More](https://docs.gitlab.com/ci/yaml/#retry).",
|
|
1973
|
-
"oneOf": [
|
|
1974
|
-
{
|
|
1975
|
-
"$ref": "#/definitions/retry_max",
|
|
1976
|
-
},
|
|
1977
|
-
{
|
|
1978
|
-
"type": "object",
|
|
1979
|
-
"additionalProperties": false,
|
|
1980
|
-
"properties": {
|
|
1981
|
-
"max": {
|
|
1982
|
-
"$ref": "#/definitions/retry_max",
|
|
1983
|
-
},
|
|
1984
|
-
"when": {
|
|
1985
|
-
"markdownDescription": "Either a single or array of error types to trigger job retry. [Learn More](https://docs.gitlab.com/ci/yaml/#retrywhen).",
|
|
1986
|
-
"oneOf": [
|
|
1987
|
-
{
|
|
1988
|
-
"$ref": "#/definitions/retry_errors",
|
|
1989
|
-
},
|
|
1990
|
-
{
|
|
1991
|
-
"type": "array",
|
|
1992
|
-
"items": {
|
|
1993
|
-
"$ref": "#/definitions/retry_errors",
|
|
1994
|
-
},
|
|
1995
|
-
},
|
|
1996
|
-
],
|
|
1997
|
-
},
|
|
1998
|
-
"exit_codes": {
|
|
1999
|
-
"markdownDescription": "Either a single or array of exit codes to trigger job retry on. [Learn More](https://docs.gitlab.com/ci/yaml/#retryexit_codes).",
|
|
2000
|
-
"oneOf": [
|
|
2001
|
-
{
|
|
2002
|
-
"description": "Retry when the job exit code is included in the array's values.",
|
|
2003
|
-
"type": "array",
|
|
2004
|
-
"minItems": 1,
|
|
2005
|
-
"uniqueItems": true,
|
|
2006
|
-
"items": {
|
|
2007
|
-
"type": "integer",
|
|
2008
|
-
},
|
|
2009
|
-
},
|
|
2010
|
-
{
|
|
2011
|
-
"description": "Retry when the job exit code is equal to.",
|
|
2012
|
-
"type": "integer",
|
|
2013
|
-
},
|
|
2014
|
-
],
|
|
2015
|
-
},
|
|
2016
|
-
},
|
|
2017
|
-
},
|
|
2018
|
-
],
|
|
2019
|
-
},
|
|
2020
|
-
"retry_max": {
|
|
2021
|
-
"type": "integer",
|
|
2022
|
-
"description": "The number of times the job will be retried if it fails. Defaults to 0 and can max be retried 2 times (3 times total).",
|
|
2023
|
-
"default": 0,
|
|
2024
|
-
"minimum": 0,
|
|
2025
|
-
"maximum": 2,
|
|
2026
|
-
},
|
|
2027
|
-
"retry_errors": {
|
|
2028
|
-
"oneOf": [
|
|
2029
|
-
{
|
|
2030
|
-
"const": "always",
|
|
2031
|
-
"description": "Retry on any failure (default).",
|
|
2032
|
-
},
|
|
2033
|
-
{
|
|
2034
|
-
"const": "unknown_failure",
|
|
2035
|
-
"description": "Retry when the failure reason is unknown.",
|
|
2036
|
-
},
|
|
2037
|
-
{
|
|
2038
|
-
"const": "script_failure",
|
|
2039
|
-
"description": "Retry when the script failed.",
|
|
2040
|
-
},
|
|
2041
|
-
{
|
|
2042
|
-
"const": "api_failure",
|
|
2043
|
-
"description": "Retry on API failure.",
|
|
2044
|
-
},
|
|
2045
|
-
{
|
|
2046
|
-
"const": "stuck_or_timeout_failure",
|
|
2047
|
-
"description": "Retry when the job got stuck or timed out.",
|
|
2048
|
-
},
|
|
2049
|
-
{
|
|
2050
|
-
"const": "runner_system_failure",
|
|
2051
|
-
"description": "Retry if there is a runner system failure (for example, job setup failed).",
|
|
2052
|
-
},
|
|
2053
|
-
{
|
|
2054
|
-
"const": "runner_unsupported",
|
|
2055
|
-
"description": "Retry if the runner is unsupported.",
|
|
2056
|
-
},
|
|
2057
|
-
{
|
|
2058
|
-
"const": "stale_schedule",
|
|
2059
|
-
"description": "Retry if a delayed job could not be executed.",
|
|
2060
|
-
},
|
|
2061
|
-
{
|
|
2062
|
-
"const": "job_execution_timeout",
|
|
2063
|
-
"description": "Retry if the script exceeded the maximum execution time set for the job.",
|
|
2064
|
-
},
|
|
2065
|
-
{
|
|
2066
|
-
"const": "archived_failure",
|
|
2067
|
-
"description": "Retry if the job is archived and can’t be run.",
|
|
2068
|
-
},
|
|
2069
|
-
{
|
|
2070
|
-
"const": "unmet_prerequisites",
|
|
2071
|
-
"description": "Retry if the job failed to complete prerequisite tasks.",
|
|
2072
|
-
},
|
|
2073
|
-
{
|
|
2074
|
-
"const": "scheduler_failure",
|
|
2075
|
-
"description": "Retry if the scheduler failed to assign the job to a runner.",
|
|
2076
|
-
},
|
|
2077
|
-
{
|
|
2078
|
-
"const": "data_integrity_failure",
|
|
2079
|
-
"description": "Retry if there is an unknown job problem.",
|
|
2080
|
-
},
|
|
2081
|
-
],
|
|
2082
|
-
},
|
|
2083
|
-
"interruptible": {
|
|
2084
|
-
"type": "boolean",
|
|
2085
|
-
"markdownDescription": "Interruptible is used to indicate that a job should be canceled if made redundant by a newer pipeline run. [Learn More](https://docs.gitlab.com/ci/yaml/#interruptible).",
|
|
2086
|
-
"default": false,
|
|
2087
|
-
},
|
|
2088
|
-
"inputs": {
|
|
2089
|
-
"markdownDescription": "Used to pass input values to included templates, components, downstream pipelines, or child pipelines. [Learn More](https://docs.gitlab.com/ci/inputs/).",
|
|
2090
|
-
"type": "object",
|
|
2091
|
-
"patternProperties": {
|
|
2092
|
-
"^[a-zA-Z0-9_-]+$": {
|
|
2093
|
-
"description": "Input parameter value that matches parameter names defined in spec:inputs of the included configuration.",
|
|
2094
|
-
"oneOf": [
|
|
2095
|
-
{
|
|
2096
|
-
"type": "string",
|
|
2097
|
-
"maxLength": 1024,
|
|
2098
|
-
},
|
|
2099
|
-
{
|
|
2100
|
-
"type": "number",
|
|
2101
|
-
},
|
|
2102
|
-
{
|
|
2103
|
-
"type": "boolean",
|
|
2104
|
-
},
|
|
2105
|
-
{
|
|
2106
|
-
"type": "array",
|
|
2107
|
-
"items": {
|
|
2108
|
-
"oneOf": [
|
|
2109
|
-
{
|
|
2110
|
-
"type": "string",
|
|
2111
|
-
},
|
|
2112
|
-
{
|
|
2113
|
-
"type": "number",
|
|
2114
|
-
},
|
|
2115
|
-
{
|
|
2116
|
-
"type": "boolean",
|
|
2117
|
-
},
|
|
2118
|
-
{
|
|
2119
|
-
"type": "object",
|
|
2120
|
-
"additionalProperties": true,
|
|
2121
|
-
},
|
|
2122
|
-
{
|
|
2123
|
-
"type": "array",
|
|
2124
|
-
"items": {
|
|
2125
|
-
"additionalProperties": true,
|
|
2126
|
-
},
|
|
2127
|
-
},
|
|
2128
|
-
],
|
|
2129
|
-
},
|
|
2130
|
-
},
|
|
2131
|
-
{
|
|
2132
|
-
"type": "object",
|
|
2133
|
-
"additionalProperties": true,
|
|
2134
|
-
},
|
|
2135
|
-
{
|
|
2136
|
-
"type": "null",
|
|
2137
|
-
},
|
|
2138
|
-
],
|
|
2139
|
-
},
|
|
2140
|
-
},
|
|
2141
|
-
"additionalProperties": false,
|
|
2142
|
-
},
|
|
2143
|
-
"job": {
|
|
2144
|
-
"allOf": [
|
|
2145
|
-
{
|
|
2146
|
-
"$ref": "#/definitions/job_template",
|
|
2147
|
-
},
|
|
2148
|
-
],
|
|
2149
|
-
},
|
|
2150
|
-
"job_template": {
|
|
2151
|
-
"type": "object",
|
|
2152
|
-
"additionalProperties": false,
|
|
2153
|
-
"properties": {
|
|
2154
|
-
"image": {
|
|
2155
|
-
"$ref": "#/definitions/image",
|
|
2156
|
-
},
|
|
2157
|
-
"services": {
|
|
2158
|
-
"$ref": "#/definitions/services",
|
|
2159
|
-
},
|
|
2160
|
-
"before_script": {
|
|
2161
|
-
"$ref": "#/definitions/before_script",
|
|
2162
|
-
},
|
|
2163
|
-
"after_script": {
|
|
2164
|
-
"$ref": "#/definitions/after_script",
|
|
2165
|
-
},
|
|
2166
|
-
"hooks": {
|
|
2167
|
-
"$ref": "#/definitions/hooks",
|
|
2168
|
-
},
|
|
2169
|
-
"rules": {
|
|
2170
|
-
"$ref": "#/definitions/rules",
|
|
2171
|
-
},
|
|
2172
|
-
"variables": {
|
|
2173
|
-
"$ref": "#/definitions/jobVariables",
|
|
2174
|
-
},
|
|
2175
|
-
"cache": {
|
|
2176
|
-
"$ref": "#/definitions/cache",
|
|
2177
|
-
},
|
|
2178
|
-
"id_tokens": {
|
|
2179
|
-
"$ref": "#/definitions/id_tokens",
|
|
2180
|
-
},
|
|
2181
|
-
"identity": {
|
|
2182
|
-
"$ref": "#/definitions/identity",
|
|
2183
|
-
},
|
|
2184
|
-
"inputs": {
|
|
2185
|
-
"$ref": "#/definitions/jobInputs",
|
|
2186
|
-
},
|
|
2187
|
-
"secrets": {
|
|
2188
|
-
"$ref": "#/definitions/secrets",
|
|
2189
|
-
},
|
|
2190
|
-
"script": {
|
|
2191
|
-
"$ref": "#/definitions/script",
|
|
2192
|
-
"markdownDescription": "Shell scripts executed by the Runner. The only required property of jobs. Be careful with special characters (e.g. `:`, `{`, `}`, `&`) and use single or double quotes to avoid issues. [Learn More](https://docs.gitlab.com/ci/yaml/#script)",
|
|
2193
|
-
},
|
|
2194
|
-
"run": {
|
|
2195
|
-
"$ref": "#/definitions/steps",
|
|
2196
|
-
"markdownDescription": "Specifies a list of steps to execute in the job. The `run` keyword is an alternative to `script` and allows for more advanced job configuration. Each step is an object that defines a single task or command. Use either `run` or `script` in a job, but not both, otherwise the pipeline will error out.",
|
|
2197
|
-
},
|
|
2198
|
-
"stage": {
|
|
2199
|
-
"description": "Define what stage the job will run in.",
|
|
2200
|
-
"anyOf": [
|
|
2201
|
-
{
|
|
2202
|
-
"type": "string",
|
|
2203
|
-
"minLength": 1,
|
|
2204
|
-
},
|
|
2205
|
-
{
|
|
2206
|
-
"type": "array",
|
|
2207
|
-
"minItems": 1,
|
|
2208
|
-
"items": {
|
|
2209
|
-
"type": "string",
|
|
2210
|
-
},
|
|
2211
|
-
},
|
|
2212
|
-
],
|
|
2213
|
-
},
|
|
2214
|
-
"only": {
|
|
2215
|
-
"$ref": "#/definitions/filter",
|
|
2216
|
-
"description": "Job will run *only* when these filtering options match.",
|
|
2217
|
-
},
|
|
2218
|
-
"extends": {
|
|
2219
|
-
"description": "The name of one or more jobs to inherit configuration from.",
|
|
2220
|
-
"oneOf": [
|
|
2221
|
-
{
|
|
2222
|
-
"type": "string",
|
|
2223
|
-
},
|
|
2224
|
-
{
|
|
2225
|
-
"type": "array",
|
|
2226
|
-
"items": {
|
|
2227
|
-
"type": "string",
|
|
2228
|
-
},
|
|
2229
|
-
"minItems": 1,
|
|
2230
|
-
},
|
|
2231
|
-
],
|
|
2232
|
-
},
|
|
2233
|
-
"needs": {
|
|
2234
|
-
"description": "The list of jobs in previous stages whose sole completion is needed to start the current job.",
|
|
2235
|
-
"type": "array",
|
|
2236
|
-
"items": {
|
|
2237
|
-
"oneOf": [
|
|
2238
|
-
{
|
|
2239
|
-
"type": "string",
|
|
2240
|
-
},
|
|
2241
|
-
{
|
|
2242
|
-
"type": "object",
|
|
2243
|
-
"additionalProperties": false,
|
|
2244
|
-
"properties": {
|
|
2245
|
-
"job": {
|
|
2246
|
-
"type": "string",
|
|
2247
|
-
},
|
|
2248
|
-
"artifacts": {
|
|
2249
|
-
"type": "boolean",
|
|
2250
|
-
},
|
|
2251
|
-
"optional": {
|
|
2252
|
-
"type": "boolean",
|
|
2253
|
-
},
|
|
2254
|
-
"parallel": {
|
|
2255
|
-
"$ref": "#/definitions/parallel_matrix",
|
|
2256
|
-
},
|
|
2257
|
-
},
|
|
2258
|
-
"required": [
|
|
2259
|
-
"job",
|
|
2260
|
-
],
|
|
2261
|
-
},
|
|
2262
|
-
{
|
|
2263
|
-
"type": "object",
|
|
2264
|
-
"additionalProperties": false,
|
|
2265
|
-
"properties": {
|
|
2266
|
-
"pipeline": {
|
|
2267
|
-
"type": "string",
|
|
2268
|
-
},
|
|
2269
|
-
"job": {
|
|
2270
|
-
"type": "string",
|
|
2271
|
-
},
|
|
2272
|
-
"artifacts": {
|
|
2273
|
-
"type": "boolean",
|
|
2274
|
-
},
|
|
2275
|
-
"parallel": {
|
|
2276
|
-
"$ref": "#/definitions/parallel_matrix",
|
|
2277
|
-
},
|
|
2278
|
-
},
|
|
2279
|
-
"required": [
|
|
2280
|
-
"job",
|
|
2281
|
-
"pipeline",
|
|
2282
|
-
],
|
|
2283
|
-
},
|
|
2284
|
-
{
|
|
2285
|
-
"type": "object",
|
|
2286
|
-
"additionalProperties": false,
|
|
2287
|
-
"properties": {
|
|
2288
|
-
"job": {
|
|
2289
|
-
"type": "string",
|
|
2290
|
-
},
|
|
2291
|
-
"project": {
|
|
2292
|
-
"type": "string",
|
|
2293
|
-
},
|
|
2294
|
-
"ref": {
|
|
2295
|
-
"type": "string",
|
|
2296
|
-
},
|
|
2297
|
-
"artifacts": {
|
|
2298
|
-
"type": "boolean",
|
|
2299
|
-
},
|
|
2300
|
-
"parallel": {
|
|
2301
|
-
"$ref": "#/definitions/parallel_matrix",
|
|
2302
|
-
},
|
|
2303
|
-
},
|
|
2304
|
-
"required": [
|
|
2305
|
-
"job",
|
|
2306
|
-
"project",
|
|
2307
|
-
"ref",
|
|
2308
|
-
],
|
|
2309
|
-
},
|
|
2310
|
-
{
|
|
2311
|
-
"$ref": "#/definitions/!reference",
|
|
2312
|
-
},
|
|
2313
|
-
],
|
|
2314
|
-
},
|
|
2315
|
-
},
|
|
2316
|
-
"except": {
|
|
2317
|
-
"$ref": "#/definitions/filter",
|
|
2318
|
-
"description": "Job will run *except* for when these filtering options match.",
|
|
2319
|
-
},
|
|
2320
|
-
"tags": {
|
|
2321
|
-
"$ref": "#/definitions/tags",
|
|
2322
|
-
},
|
|
2323
|
-
"allow_failure": {
|
|
2324
|
-
"$ref": "#/definitions/allow_failure",
|
|
2325
|
-
},
|
|
2326
|
-
"timeout": {
|
|
2327
|
-
"$ref": "#/definitions/timeout",
|
|
2328
|
-
},
|
|
2329
|
-
"when": {
|
|
2330
|
-
"$ref": "#/definitions/when",
|
|
2331
|
-
},
|
|
2332
|
-
"start_in": {
|
|
2333
|
-
"$ref": "#/definitions/start_in",
|
|
2334
|
-
},
|
|
2335
|
-
"manual_confirmation": {
|
|
2336
|
-
"markdownDescription": "Describes the Custom confirmation message for a manual job [Learn More](https://docs.gitlab.com/ci/yaml/#when).",
|
|
2337
|
-
"type": "string",
|
|
2338
|
-
},
|
|
2339
|
-
"dependencies": {
|
|
2340
|
-
"type": "array",
|
|
2341
|
-
"description": "Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.",
|
|
2342
|
-
"items": {
|
|
2343
|
-
"type": "string",
|
|
2344
|
-
},
|
|
2345
|
-
},
|
|
2346
|
-
"artifacts": {
|
|
2347
|
-
"$ref": "#/definitions/artifacts",
|
|
2348
|
-
},
|
|
2349
|
-
"environment": {
|
|
2350
|
-
"description": "Used to associate environment metadata with a deploy. Environment can have a name and URL attached to it, and will be displayed under /environments under the project.",
|
|
2351
|
-
"oneOf": [
|
|
2352
|
-
{
|
|
2353
|
-
"type": "string",
|
|
2354
|
-
},
|
|
2355
|
-
{
|
|
2356
|
-
"type": "object",
|
|
2357
|
-
"additionalProperties": false,
|
|
2358
|
-
"properties": {
|
|
2359
|
-
"name": {
|
|
2360
|
-
"type": "string",
|
|
2361
|
-
"description": "The name of the environment, e.g. 'qa', 'staging', 'production'.",
|
|
2362
|
-
"minLength": 1,
|
|
2363
|
-
},
|
|
2364
|
-
"url": {
|
|
2365
|
-
"type": "string",
|
|
2366
|
-
"description": "When set, this will expose buttons in various places for the current environment in GitLab, that will take you to the defined URL.",
|
|
2367
|
-
"format": "uri",
|
|
2368
|
-
},
|
|
2369
|
-
"on_stop": {
|
|
2370
|
-
"type": "string",
|
|
2371
|
-
"description": "The name of a job to execute when the environment is about to be stopped.",
|
|
2372
|
-
},
|
|
2373
|
-
"action": {
|
|
2374
|
-
"enum": [
|
|
2375
|
-
"start",
|
|
2376
|
-
"prepare",
|
|
2377
|
-
"stop",
|
|
2378
|
-
"verify",
|
|
2379
|
-
"access",
|
|
2380
|
-
],
|
|
2381
|
-
"description": "Specifies what this job will do. 'start' (default) indicates the job will start the deployment. 'prepare'/'verify'/'access' indicates this will not affect the deployment. 'stop' indicates this will stop the deployment.",
|
|
2382
|
-
"default": "start",
|
|
2383
|
-
},
|
|
2384
|
-
"auto_stop_in": {
|
|
2385
|
-
"type": "string",
|
|
2386
|
-
"description": "The amount of time it should take before GitLab will automatically stop the environment. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.",
|
|
2387
|
-
},
|
|
2388
|
-
"kubernetes": {
|
|
2389
|
-
"type": "object",
|
|
2390
|
-
"description": "Used to configure the kubernetes deployment for this environment. This is currently not supported for kubernetes clusters that are managed by GitLab.",
|
|
2391
|
-
"properties": {
|
|
2392
|
-
"agent": {
|
|
2393
|
-
"type": "string",
|
|
2394
|
-
"description": "Specifies the GitLab Agent for Kubernetes. The format is `path/to/agent/project:agent-name`.",
|
|
2395
|
-
},
|
|
2396
|
-
"namespace": {
|
|
2397
|
-
"type": "string",
|
|
2398
|
-
"description": "Deprecated. Use `dashboard.namespace` instead. The kubernetes namespace where this environment's dashboard should be deployed to.",
|
|
2399
|
-
"minLength": 1,
|
|
2400
|
-
},
|
|
2401
|
-
"flux_resource_path": {
|
|
2402
|
-
"type": "string",
|
|
2403
|
-
"description": "Deprecated. Use `dashboard.flux_resource_path` instead. The Flux resource path to associate with this environment. This must be the full resource path. For example, 'helm.toolkit.fluxcd.io/v2/namespaces/gitlab-agent/helmreleases/gitlab-agent'.",
|
|
2404
|
-
},
|
|
2405
|
-
"managed_resources": {
|
|
2406
|
-
"type": "object",
|
|
2407
|
-
"description": "Used to configure the managed resources for this environment.",
|
|
2408
|
-
"properties": {
|
|
2409
|
-
"enabled": {
|
|
2410
|
-
"type": "boolean",
|
|
2411
|
-
"description": "Indicates whether the managed resources are enabled for this environment.",
|
|
2412
|
-
"default": true,
|
|
2413
|
-
},
|
|
2414
|
-
},
|
|
2415
|
-
},
|
|
2416
|
-
"dashboard": {
|
|
2417
|
-
"type": "object",
|
|
2418
|
-
"description": "Used to configure the dashboard for this environment.",
|
|
2419
|
-
"properties": {
|
|
2420
|
-
"namespace": {
|
|
2421
|
-
"type": "string",
|
|
2422
|
-
"description": "The kubernetes namespace where the dashboard for this environment should be deployed to.",
|
|
2423
|
-
"minLength": 1,
|
|
2424
|
-
},
|
|
2425
|
-
"flux_resource_path": {
|
|
2426
|
-
"type": "string",
|
|
2427
|
-
"description": "The Flux resource path to associate with this environment. This must be the full resource path. For example, 'helm.toolkit.fluxcd.io/v2/namespaces/gitlab-agent/helmreleases/gitlab-agent'.",
|
|
2428
|
-
},
|
|
2429
|
-
},
|
|
2430
|
-
},
|
|
2431
|
-
},
|
|
2432
|
-
},
|
|
2433
|
-
"deployment_tier": {
|
|
2434
|
-
"type": "string",
|
|
2435
|
-
"description": "Explicitly specifies the tier of the deployment environment if non-standard environment name is used.",
|
|
2436
|
-
},
|
|
2437
|
-
},
|
|
2438
|
-
"required": [
|
|
2439
|
-
"name",
|
|
2440
|
-
],
|
|
2441
|
-
},
|
|
2442
|
-
],
|
|
2443
|
-
},
|
|
2444
|
-
"release": {
|
|
2445
|
-
"type": "object",
|
|
2446
|
-
"description": "Indicates that the job creates a Release.",
|
|
2447
|
-
"additionalProperties": false,
|
|
2448
|
-
"properties": {
|
|
2449
|
-
"tag_name": {
|
|
2450
|
-
"type": "string",
|
|
2451
|
-
"description": "The tag_name must be specified. It can refer to an existing Git tag or can be specified by the user.",
|
|
2452
|
-
"minLength": 1,
|
|
2453
|
-
},
|
|
2454
|
-
"tag_message": {
|
|
2455
|
-
"type": "string",
|
|
2456
|
-
"description": "Message to use if creating a new annotated tag.",
|
|
2457
|
-
},
|
|
2458
|
-
"description": {
|
|
2459
|
-
"type": "string",
|
|
2460
|
-
"description": "Specifies the longer description of the Release.",
|
|
2461
|
-
"minLength": 1,
|
|
2462
|
-
},
|
|
2463
|
-
"name": {
|
|
2464
|
-
"type": "string",
|
|
2465
|
-
"description": "The Release name. If omitted, it is populated with the value of release: tag_name.",
|
|
2466
|
-
},
|
|
2467
|
-
"ref": {
|
|
2468
|
-
"type": "string",
|
|
2469
|
-
"description": "If the release: tag_name doesn’t exist yet, the release is created from ref. ref can be a commit SHA, another tag name, or a branch name.",
|
|
2470
|
-
},
|
|
2471
|
-
"milestones": {
|
|
2472
|
-
"type": "array",
|
|
2473
|
-
"description": "The title of each milestone the release is associated with.",
|
|
2474
|
-
"items": {
|
|
2475
|
-
"type": "string",
|
|
2476
|
-
},
|
|
2477
|
-
},
|
|
2478
|
-
"released_at": {
|
|
2479
|
-
"type": "string",
|
|
2480
|
-
"description": "The date and time when the release is ready. Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.",
|
|
2481
|
-
"format": "date-time",
|
|
2482
|
-
},
|
|
2483
|
-
"assets": {
|
|
2484
|
-
"type": "object",
|
|
2485
|
-
"additionalProperties": false,
|
|
2486
|
-
"properties": {
|
|
2487
|
-
"links": {
|
|
2488
|
-
"type": "array",
|
|
2489
|
-
"description": "Include asset links in the release.",
|
|
2490
|
-
"items": {
|
|
2491
|
-
"type": "object",
|
|
2492
|
-
"additionalProperties": false,
|
|
2493
|
-
"properties": {
|
|
2494
|
-
"name": {
|
|
2495
|
-
"type": "string",
|
|
2496
|
-
"description": "The name of the link.",
|
|
2497
|
-
"minLength": 1,
|
|
2498
|
-
},
|
|
2499
|
-
"url": {
|
|
2500
|
-
"type": "string",
|
|
2501
|
-
"description": "The URL to download a file.",
|
|
2502
|
-
"minLength": 1,
|
|
2503
|
-
},
|
|
2504
|
-
"filepath": {
|
|
2505
|
-
"type": "string",
|
|
2506
|
-
"description": "The redirect link to the url.",
|
|
2507
|
-
},
|
|
2508
|
-
"link_type": {
|
|
2509
|
-
"type": "string",
|
|
2510
|
-
"description": "The content kind of what users can download via url.",
|
|
2511
|
-
"enum": [
|
|
2512
|
-
"runbook",
|
|
2513
|
-
"package",
|
|
2514
|
-
"image",
|
|
2515
|
-
"other",
|
|
2516
|
-
],
|
|
2517
|
-
},
|
|
2518
|
-
},
|
|
2519
|
-
"required": [
|
|
2520
|
-
"name",
|
|
2521
|
-
"url",
|
|
2522
|
-
],
|
|
2523
|
-
},
|
|
2524
|
-
"minItems": 1,
|
|
2525
|
-
},
|
|
2526
|
-
},
|
|
2527
|
-
"required": [
|
|
2528
|
-
"links",
|
|
2529
|
-
],
|
|
2530
|
-
},
|
|
2531
|
-
},
|
|
2532
|
-
"required": [
|
|
2533
|
-
"tag_name",
|
|
2534
|
-
"description",
|
|
2535
|
-
],
|
|
2536
|
-
},
|
|
2537
|
-
"coverage": {
|
|
2538
|
-
"type": "string",
|
|
2539
|
-
"description": "Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'. Example: '/Code coverage: \\d+\\.\\d+/'",
|
|
2540
|
-
"format": "regex",
|
|
2541
|
-
},
|
|
2542
|
-
"retry": {
|
|
2543
|
-
"$ref": "#/definitions/retry",
|
|
2544
|
-
},
|
|
2545
|
-
"parallel": {
|
|
2546
|
-
"$ref": "#/definitions/parallel",
|
|
2547
|
-
},
|
|
2548
|
-
"interruptible": {
|
|
2549
|
-
"$ref": "#/definitions/interruptible",
|
|
2550
|
-
},
|
|
2551
|
-
"resource_group": {
|
|
2552
|
-
"type": "string",
|
|
2553
|
-
"description": "Limit job concurrency. Can be used to ensure that the Runner will not run certain jobs simultaneously.",
|
|
2554
|
-
},
|
|
2555
|
-
"trigger": {
|
|
2556
|
-
"markdownDescription": "Trigger allows you to define downstream pipeline trigger. When a job created from trigger definition is started by GitLab, a downstream pipeline gets created. [Learn More](https://docs.gitlab.com/ci/yaml/#trigger).",
|
|
2557
|
-
"oneOf": [
|
|
2558
|
-
{
|
|
2559
|
-
"type": "object",
|
|
2560
|
-
"markdownDescription": "Trigger a multi-project pipeline. [Learn More](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#multi-project-pipelines).",
|
|
2561
|
-
"additionalProperties": false,
|
|
2562
|
-
"properties": {
|
|
2563
|
-
"project": {
|
|
2564
|
-
"description": "Path to the project, e.g. `group/project`, or `group/sub-group/project`.",
|
|
2565
|
-
"type": "string",
|
|
2566
|
-
},
|
|
2567
|
-
"branch": {
|
|
2568
|
-
"description": "The branch name that a downstream pipeline will use",
|
|
2569
|
-
"type": "string",
|
|
2570
|
-
},
|
|
2571
|
-
"strategy": {
|
|
2572
|
-
"description": "You can mirror or depend on the pipeline status from the triggered pipeline to the source bridge job by using strategy: `depend` or `mirror`",
|
|
2573
|
-
"type": "string",
|
|
2574
|
-
"enum": [
|
|
2575
|
-
"depend",
|
|
2576
|
-
"mirror",
|
|
2577
|
-
],
|
|
2578
|
-
},
|
|
2579
|
-
"inputs": {
|
|
2580
|
-
"$ref": "#/definitions/inputs",
|
|
2581
|
-
},
|
|
2582
|
-
"forward": {
|
|
2583
|
-
"description": "Specify what to forward to the downstream pipeline.",
|
|
2584
|
-
"type": "object",
|
|
2585
|
-
"additionalProperties": false,
|
|
2586
|
-
"properties": {
|
|
2587
|
-
"yaml_variables": {
|
|
2588
|
-
"type": "boolean",
|
|
2589
|
-
"description": "Variables defined in the trigger job are passed to downstream pipelines.",
|
|
2590
|
-
"default": true,
|
|
2591
|
-
},
|
|
2592
|
-
"pipeline_variables": {
|
|
2593
|
-
"type": "boolean",
|
|
2594
|
-
"description": "Variables added for manual pipeline runs and scheduled pipelines are passed to downstream pipelines.",
|
|
2595
|
-
"default": false,
|
|
2596
|
-
},
|
|
2597
|
-
},
|
|
2598
|
-
},
|
|
2599
|
-
},
|
|
2600
|
-
"required": [
|
|
2601
|
-
"project",
|
|
2602
|
-
],
|
|
2603
|
-
"dependencies": {
|
|
2604
|
-
"branch": [
|
|
2605
|
-
"project",
|
|
2606
|
-
],
|
|
2607
|
-
},
|
|
2608
|
-
},
|
|
2609
|
-
{
|
|
2610
|
-
"type": "object",
|
|
2611
|
-
"description": "Trigger a child pipeline. [Learn More](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#parent-child-pipelines).",
|
|
2612
|
-
"additionalProperties": false,
|
|
2613
|
-
"properties": {
|
|
2614
|
-
"include": {
|
|
2615
|
-
"oneOf": [
|
|
2616
|
-
{
|
|
2617
|
-
"description": "Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.",
|
|
2618
|
-
"type": "string",
|
|
2619
|
-
"format": "uri-reference",
|
|
2620
|
-
},
|
|
2621
|
-
{
|
|
2622
|
-
"type": "array",
|
|
2623
|
-
"description": "References a local file or an artifact from another job to define the pipeline configuration.",
|
|
2624
|
-
"maxItems": 3,
|
|
2625
|
-
"items": {
|
|
2626
|
-
"oneOf": [
|
|
2627
|
-
{
|
|
2628
|
-
"type": "object",
|
|
2629
|
-
"additionalProperties": false,
|
|
2630
|
-
"properties": {
|
|
2631
|
-
"local": {
|
|
2632
|
-
"description": "Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.",
|
|
2633
|
-
"type": "string",
|
|
2634
|
-
"format": "uri-reference",
|
|
2635
|
-
},
|
|
2636
|
-
"inputs": {
|
|
2637
|
-
"$ref": "#/definitions/inputs",
|
|
2638
|
-
},
|
|
2639
|
-
},
|
|
2640
|
-
"required": [
|
|
2641
|
-
"local",
|
|
2642
|
-
],
|
|
2643
|
-
},
|
|
2644
|
-
{
|
|
2645
|
-
"type": "object",
|
|
2646
|
-
"additionalProperties": false,
|
|
2647
|
-
"properties": {
|
|
2648
|
-
"template": {
|
|
2649
|
-
"description": "Name of the template YAML file to use in the pipeline configuration.",
|
|
2650
|
-
"type": "string",
|
|
2651
|
-
"format": "uri-reference",
|
|
2652
|
-
},
|
|
2653
|
-
"inputs": {
|
|
2654
|
-
"$ref": "#/definitions/inputs",
|
|
2655
|
-
},
|
|
2656
|
-
},
|
|
2657
|
-
"required": [
|
|
2658
|
-
"template",
|
|
2659
|
-
],
|
|
2660
|
-
},
|
|
2661
|
-
{
|
|
2662
|
-
"type": "object",
|
|
2663
|
-
"additionalProperties": false,
|
|
2664
|
-
"properties": {
|
|
2665
|
-
"artifact": {
|
|
2666
|
-
"description": "Relative path to the generated YAML file which is extracted from the artifacts and used as the configuration for triggering the child pipeline.",
|
|
2667
|
-
"type": "string",
|
|
2668
|
-
"format": "uri-reference",
|
|
2669
|
-
},
|
|
2670
|
-
"job": {
|
|
2671
|
-
"description": "Job name which generates the artifact",
|
|
2672
|
-
"type": "string",
|
|
2673
|
-
},
|
|
2674
|
-
"inputs": {
|
|
2675
|
-
"$ref": "#/definitions/inputs",
|
|
2676
|
-
},
|
|
2677
|
-
},
|
|
2678
|
-
"required": [
|
|
2679
|
-
"artifact",
|
|
2680
|
-
"job",
|
|
2681
|
-
],
|
|
2682
|
-
},
|
|
2683
|
-
{
|
|
2684
|
-
"type": "object",
|
|
2685
|
-
"additionalProperties": false,
|
|
2686
|
-
"properties": {
|
|
2687
|
-
"project": {
|
|
2688
|
-
"description": "Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`.",
|
|
2689
|
-
"type": "string",
|
|
2690
|
-
},
|
|
2691
|
-
"ref": {
|
|
2692
|
-
"description": "Branch/Tag/Commit hash for the target project.",
|
|
2693
|
-
"minLength": 1,
|
|
2694
|
-
"type": "string",
|
|
2695
|
-
},
|
|
2696
|
-
"file": {
|
|
2697
|
-
"description": "Relative path from repository root (`/`) to the pipeline configuration YAML file.",
|
|
2698
|
-
"type": "string",
|
|
2699
|
-
"format": "uri-reference",
|
|
2700
|
-
},
|
|
2701
|
-
"inputs": {
|
|
2702
|
-
"$ref": "#/definitions/inputs",
|
|
2703
|
-
},
|
|
2704
|
-
},
|
|
2705
|
-
"required": [
|
|
2706
|
-
"project",
|
|
2707
|
-
"file",
|
|
2708
|
-
],
|
|
2709
|
-
},
|
|
2710
|
-
{
|
|
2711
|
-
"type": "object",
|
|
2712
|
-
"additionalProperties": false,
|
|
2713
|
-
"properties": {
|
|
2714
|
-
"component": {
|
|
2715
|
-
"description": "Local path to component directory or full path to external component directory.",
|
|
2716
|
-
"type": "string",
|
|
2717
|
-
"format": "uri-reference",
|
|
2718
|
-
},
|
|
2719
|
-
"inputs": {
|
|
2720
|
-
"$ref": "#/definitions/inputs",
|
|
2721
|
-
},
|
|
2722
|
-
},
|
|
2723
|
-
"required": [
|
|
2724
|
-
"component",
|
|
2725
|
-
],
|
|
2726
|
-
},
|
|
2727
|
-
{
|
|
2728
|
-
"type": "object",
|
|
2729
|
-
"additionalProperties": false,
|
|
2730
|
-
"properties": {
|
|
2731
|
-
"remote": {
|
|
2732
|
-
"description": "URL to a `yaml`/`yml` template file using HTTP/HTTPS.",
|
|
2733
|
-
"type": "string",
|
|
2734
|
-
"format": "uri-reference",
|
|
2735
|
-
},
|
|
2736
|
-
"inputs": {
|
|
2737
|
-
"$ref": "#/definitions/inputs",
|
|
2738
|
-
},
|
|
2739
|
-
},
|
|
2740
|
-
"required": [
|
|
2741
|
-
"remote",
|
|
2742
|
-
],
|
|
2743
|
-
},
|
|
2744
|
-
],
|
|
2745
|
-
},
|
|
2746
|
-
},
|
|
2747
|
-
],
|
|
2748
|
-
},
|
|
2749
|
-
"strategy": {
|
|
2750
|
-
"description": "You can mirror or depend on the pipeline status from the triggered pipeline to the source bridge job by using strategy: `depend` or `mirror`",
|
|
2751
|
-
"type": "string",
|
|
2752
|
-
"enum": [
|
|
2753
|
-
"depend",
|
|
2754
|
-
"mirror",
|
|
2755
|
-
],
|
|
2756
|
-
},
|
|
2757
|
-
"forward": {
|
|
2758
|
-
"description": "Specify what to forward to the downstream pipeline.",
|
|
2759
|
-
"type": "object",
|
|
2760
|
-
"additionalProperties": false,
|
|
2761
|
-
"properties": {
|
|
2762
|
-
"yaml_variables": {
|
|
2763
|
-
"type": "boolean",
|
|
2764
|
-
"description": "Variables defined in the trigger job are passed to downstream pipelines.",
|
|
2765
|
-
"default": true,
|
|
2766
|
-
},
|
|
2767
|
-
"pipeline_variables": {
|
|
2768
|
-
"type": "boolean",
|
|
2769
|
-
"description": "Variables added for manual pipeline runs and scheduled pipelines are passed to downstream pipelines.",
|
|
2770
|
-
"default": false,
|
|
2771
|
-
},
|
|
2772
|
-
},
|
|
2773
|
-
},
|
|
2774
|
-
},
|
|
2775
|
-
},
|
|
2776
|
-
{
|
|
2777
|
-
"markdownDescription": "Path to the project, e.g. `group/project`, or `group/sub-group/project`. [Learn More](https://docs.gitlab.com/ci/yaml/#trigger).",
|
|
2778
|
-
"type": "string",
|
|
2779
|
-
},
|
|
2780
|
-
],
|
|
2781
|
-
},
|
|
2782
|
-
"inherit": {
|
|
2783
|
-
"type": "object",
|
|
2784
|
-
"markdownDescription": "Controls inheritance of globally-defined defaults and variables. Boolean values control inheritance of all default: or variables: keywords. To inherit only a subset of default: or variables: keywords, specify what you wish to inherit. Anything not listed is not inherited. [Learn More](https://docs.gitlab.com/ci/yaml/#inherit).",
|
|
2785
|
-
"properties": {
|
|
2786
|
-
"default": {
|
|
2787
|
-
"markdownDescription": "Whether to inherit all globally-defined defaults or not. Or subset of inherited defaults. [Learn more](https://docs.gitlab.com/ci/yaml/#inheritdefault).",
|
|
2788
|
-
"oneOf": [
|
|
2789
|
-
{
|
|
2790
|
-
"type": "boolean",
|
|
2791
|
-
},
|
|
2792
|
-
{
|
|
2793
|
-
"type": "array",
|
|
2794
|
-
"items": {
|
|
2795
|
-
"type": "string",
|
|
2796
|
-
"enum": [
|
|
2797
|
-
"after_script",
|
|
2798
|
-
"artifacts",
|
|
2799
|
-
"before_script",
|
|
2800
|
-
"cache",
|
|
2801
|
-
"image",
|
|
2802
|
-
"interruptible",
|
|
2803
|
-
"retry",
|
|
2804
|
-
"services",
|
|
2805
|
-
"tags",
|
|
2806
|
-
"timeout",
|
|
2807
|
-
],
|
|
2808
|
-
},
|
|
2809
|
-
},
|
|
2810
|
-
],
|
|
2811
|
-
},
|
|
2812
|
-
"variables": {
|
|
2813
|
-
"markdownDescription": "Whether to inherit all globally-defined variables or not. Or subset of inherited variables. [Learn More](https://docs.gitlab.com/ci/yaml/#inheritvariables).",
|
|
2814
|
-
"oneOf": [
|
|
2815
|
-
{
|
|
2816
|
-
"type": "boolean",
|
|
2817
|
-
},
|
|
2818
|
-
{
|
|
2819
|
-
"type": "array",
|
|
2820
|
-
"items": {
|
|
2821
|
-
"type": "string",
|
|
2822
|
-
},
|
|
2823
|
-
},
|
|
2824
|
-
],
|
|
2825
|
-
},
|
|
2826
|
-
},
|
|
2827
|
-
"additionalProperties": false,
|
|
2828
|
-
},
|
|
2829
|
-
"publish": {
|
|
2830
|
-
"description": "Deprecated. Use `pages.publish` instead. A path to a directory that contains the files to be published with Pages.",
|
|
2831
|
-
"type": "string",
|
|
2832
|
-
},
|
|
2833
|
-
"pages": {
|
|
2834
|
-
"oneOf": [
|
|
2835
|
-
{
|
|
2836
|
-
"type": "object",
|
|
2837
|
-
"additionalProperties": false,
|
|
2838
|
-
"properties": {
|
|
2839
|
-
"path_prefix": {
|
|
2840
|
-
"type": "string",
|
|
2841
|
-
"markdownDescription": "The GitLab Pages URL path prefix used in this version of pages. The given value is converted to lowercase, shortened to 63 bytes, and everything except alphanumeric characters is replaced with a hyphen. Leading and trailing hyphens are not permitted.",
|
|
2842
|
-
},
|
|
2843
|
-
"expire_in": {
|
|
2844
|
-
"type": "string",
|
|
2845
|
-
"markdownDescription": "How long the deployment should be active. Deployments that have expired are no longer available on the web. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'. Set to 'never' to prevent extra deployments from expiring. [Learn More](https://docs.gitlab.com/ci/yaml/#pagesexpire_in).",
|
|
2846
|
-
},
|
|
2847
|
-
"publish": {
|
|
2848
|
-
"type": "string",
|
|
2849
|
-
"markdownDescription": "A path to a directory that contains the files to be published with Pages.",
|
|
2850
|
-
},
|
|
2851
|
-
},
|
|
2852
|
-
},
|
|
2853
|
-
{
|
|
2854
|
-
"type": "boolean",
|
|
2855
|
-
"markdownDescription": "Whether this job should trigger a Pages deploy (Replaces the need to name the job `pages`)",
|
|
2856
|
-
"default": false,
|
|
2857
|
-
},
|
|
2858
|
-
],
|
|
2859
|
-
},
|
|
2860
|
-
},
|
|
2861
|
-
"oneOf": [
|
|
2862
|
-
{
|
|
2863
|
-
"properties": {
|
|
2864
|
-
"when": {
|
|
2865
|
-
"enum": [
|
|
2866
|
-
"delayed",
|
|
2867
|
-
],
|
|
2868
|
-
},
|
|
2869
|
-
},
|
|
2870
|
-
"required": [
|
|
2871
|
-
"when",
|
|
2872
|
-
"start_in",
|
|
2873
|
-
],
|
|
2874
|
-
},
|
|
2875
|
-
{
|
|
2876
|
-
"properties": {
|
|
2877
|
-
"when": {
|
|
2878
|
-
"not": {
|
|
2879
|
-
"enum": [
|
|
2880
|
-
"delayed",
|
|
2881
|
-
],
|
|
2882
|
-
},
|
|
2883
|
-
},
|
|
2884
|
-
},
|
|
2885
|
-
},
|
|
2886
|
-
],
|
|
2887
|
-
},
|
|
2888
|
-
"tags": {
|
|
2889
|
-
"type": "array",
|
|
2890
|
-
"minItems": 1,
|
|
2891
|
-
"markdownDescription": "Used to select runners from the list of available runners. A runner must have all tags listed here to run the job. [Learn More](https://docs.gitlab.com/ci/yaml/#tags).",
|
|
2892
|
-
"items": {
|
|
2893
|
-
"anyOf": [
|
|
2894
|
-
{
|
|
2895
|
-
"type": "string",
|
|
2896
|
-
"minLength": 1,
|
|
2897
|
-
},
|
|
2898
|
-
{
|
|
2899
|
-
"type": "array",
|
|
2900
|
-
"minItems": 1,
|
|
2901
|
-
"items": {
|
|
2902
|
-
"type": "string",
|
|
2903
|
-
},
|
|
2904
|
-
},
|
|
2905
|
-
],
|
|
2906
|
-
},
|
|
2907
|
-
},
|
|
2908
|
-
"hooks": {
|
|
2909
|
-
"type": "object",
|
|
2910
|
-
"markdownDescription": "Specifies lists of commands to execute on the runner at certain stages of job execution. [Learn More](https://docs.gitlab.com/ci/yaml/#hooks).",
|
|
2911
|
-
"properties": {
|
|
2912
|
-
"pre_get_sources_script": {
|
|
2913
|
-
"$ref": "#/definitions/optional_script",
|
|
2914
|
-
"markdownDescription": "Specifies a list of commands to execute on the runner before updating the Git repository and any submodules. [Learn More](https://docs.gitlab.com/ci/yaml/#hookspre_get_sources_script).",
|
|
2915
|
-
},
|
|
2916
|
-
},
|
|
2917
|
-
"additionalProperties": false,
|
|
2918
|
-
},
|
|
2919
|
-
"step": {
|
|
2920
|
-
"description": "Any of these step use cases are valid.",
|
|
2921
|
-
"oneOf": [
|
|
2922
|
-
{
|
|
2923
|
-
"description": "Run a referenced step.",
|
|
2924
|
-
"type": "object",
|
|
2925
|
-
"additionalProperties": false,
|
|
2926
|
-
"required": [
|
|
2927
|
-
"name",
|
|
2928
|
-
"step",
|
|
2929
|
-
],
|
|
2930
|
-
"properties": {
|
|
2931
|
-
"name": {
|
|
2932
|
-
"$ref": "#/definitions/stepName",
|
|
2933
|
-
},
|
|
2934
|
-
"env": {
|
|
2935
|
-
"$ref": "#/definitions/stepNamedStrings",
|
|
2936
|
-
},
|
|
2937
|
-
"inputs": {
|
|
2938
|
-
"$ref": "#/definitions/stepNamedValues",
|
|
2939
|
-
},
|
|
2940
|
-
"step": {
|
|
2941
|
-
"oneOf": [
|
|
2942
|
-
{
|
|
2943
|
-
"type": "string",
|
|
2944
|
-
},
|
|
2945
|
-
{
|
|
2946
|
-
"$ref": "#/definitions/stepGitReference",
|
|
2947
|
-
},
|
|
2948
|
-
{
|
|
2949
|
-
"$ref": "#/definitions/stepOciReference",
|
|
2950
|
-
},
|
|
2951
|
-
],
|
|
2952
|
-
},
|
|
2953
|
-
},
|
|
2954
|
-
},
|
|
2955
|
-
{
|
|
2956
|
-
"description": "Run a sequence of steps.",
|
|
2957
|
-
"oneOf": [
|
|
2958
|
-
{
|
|
2959
|
-
"type": "object",
|
|
2960
|
-
"additionalProperties": false,
|
|
2961
|
-
"required": [
|
|
2962
|
-
"run",
|
|
2963
|
-
],
|
|
2964
|
-
"properties": {
|
|
2965
|
-
"env": {
|
|
2966
|
-
"$ref": "#/definitions/stepNamedStrings",
|
|
2967
|
-
},
|
|
2968
|
-
"run": {
|
|
2969
|
-
"type": "array",
|
|
2970
|
-
"items": {
|
|
2971
|
-
"$ref": "#/definitions/step",
|
|
2972
|
-
},
|
|
2973
|
-
},
|
|
2974
|
-
"outputs": {
|
|
2975
|
-
"$ref": "#/definitions/stepNamedValues",
|
|
2976
|
-
},
|
|
2977
|
-
"delegate": {
|
|
2978
|
-
"type": "string",
|
|
2979
|
-
},
|
|
2980
|
-
},
|
|
2981
|
-
},
|
|
2982
|
-
],
|
|
2983
|
-
},
|
|
2984
|
-
{
|
|
2985
|
-
"description": "Run an action.",
|
|
2986
|
-
"type": "object",
|
|
2987
|
-
"additionalProperties": false,
|
|
2988
|
-
"required": [
|
|
2989
|
-
"name",
|
|
2990
|
-
"action",
|
|
2991
|
-
],
|
|
2992
|
-
"properties": {
|
|
2993
|
-
"name": {
|
|
2994
|
-
"$ref": "#/definitions/stepName",
|
|
2995
|
-
},
|
|
2996
|
-
"env": {
|
|
2997
|
-
"$ref": "#/definitions/stepNamedStrings",
|
|
2998
|
-
},
|
|
2999
|
-
"inputs": {
|
|
3000
|
-
"$ref": "#/definitions/stepNamedValues",
|
|
3001
|
-
},
|
|
3002
|
-
"action": {
|
|
3003
|
-
"type": "string",
|
|
3004
|
-
"minLength": 1,
|
|
3005
|
-
},
|
|
3006
|
-
},
|
|
3007
|
-
},
|
|
3008
|
-
{
|
|
3009
|
-
"description": "Run a script.",
|
|
3010
|
-
"type": "object",
|
|
3011
|
-
"additionalProperties": false,
|
|
3012
|
-
"required": [
|
|
3013
|
-
"name",
|
|
3014
|
-
"script",
|
|
3015
|
-
],
|
|
3016
|
-
"properties": {
|
|
3017
|
-
"name": {
|
|
3018
|
-
"$ref": "#/definitions/stepName",
|
|
3019
|
-
},
|
|
3020
|
-
"env": {
|
|
3021
|
-
"$ref": "#/definitions/stepNamedStrings",
|
|
3022
|
-
},
|
|
3023
|
-
"script": {
|
|
3024
|
-
"type": "string",
|
|
3025
|
-
"minLength": 1,
|
|
3026
|
-
},
|
|
3027
|
-
},
|
|
3028
|
-
},
|
|
3029
|
-
{
|
|
3030
|
-
"description": "Exec a binary.",
|
|
3031
|
-
"type": "object",
|
|
3032
|
-
"additionalProperties": false,
|
|
3033
|
-
"required": [
|
|
3034
|
-
"exec",
|
|
3035
|
-
],
|
|
3036
|
-
"properties": {
|
|
3037
|
-
"env": {
|
|
3038
|
-
"$ref": "#/definitions/stepNamedStrings",
|
|
3039
|
-
},
|
|
3040
|
-
"exec": {
|
|
3041
|
-
"description": "Exec is a command to run.",
|
|
3042
|
-
"$ref": "#/definitions/stepExec",
|
|
3043
|
-
},
|
|
3044
|
-
},
|
|
3045
|
-
},
|
|
3046
|
-
],
|
|
3047
|
-
},
|
|
3048
|
-
"stepName": {
|
|
3049
|
-
"type": "string",
|
|
3050
|
-
},
|
|
3051
|
-
"stepNamedStrings": {
|
|
3052
|
-
"type": "object",
|
|
3053
|
-
"patternProperties": {
|
|
3054
|
-
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
|
|
3055
|
-
"type": "string",
|
|
3056
|
-
},
|
|
3057
|
-
},
|
|
3058
|
-
"additionalProperties": false,
|
|
3059
|
-
},
|
|
3060
|
-
"stepNamedValues": {
|
|
3061
|
-
"type": "object",
|
|
3062
|
-
"patternProperties": {
|
|
3063
|
-
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
|
|
3064
|
-
"type": [
|
|
3065
|
-
"string",
|
|
3066
|
-
"number",
|
|
3067
|
-
"boolean",
|
|
3068
|
-
"null",
|
|
3069
|
-
"array",
|
|
3070
|
-
"object",
|
|
3071
|
-
],
|
|
3072
|
-
},
|
|
3073
|
-
},
|
|
3074
|
-
"additionalProperties": false,
|
|
3075
|
-
},
|
|
3076
|
-
"stepGitReference": {
|
|
3077
|
-
"type": "object",
|
|
3078
|
-
"description": "GitReference is a reference to a step in a Git repository.",
|
|
3079
|
-
"additionalProperties": false,
|
|
3080
|
-
"required": [
|
|
3081
|
-
"git",
|
|
3082
|
-
],
|
|
3083
|
-
"properties": {
|
|
3084
|
-
"git": {
|
|
3085
|
-
"type": "object",
|
|
3086
|
-
"additionalProperties": false,
|
|
3087
|
-
"required": [
|
|
3088
|
-
"url",
|
|
3089
|
-
"rev",
|
|
3090
|
-
],
|
|
3091
|
-
"properties": {
|
|
3092
|
-
"url": {
|
|
3093
|
-
"type": "string",
|
|
3094
|
-
},
|
|
3095
|
-
"dir": {
|
|
3096
|
-
"type": "string",
|
|
3097
|
-
},
|
|
3098
|
-
"rev": {
|
|
3099
|
-
"type": "string",
|
|
3100
|
-
},
|
|
3101
|
-
"file": {
|
|
3102
|
-
"type": "string",
|
|
3103
|
-
},
|
|
3104
|
-
},
|
|
3105
|
-
},
|
|
3106
|
-
},
|
|
3107
|
-
},
|
|
3108
|
-
"stepOciReference": {
|
|
3109
|
-
"type": "object",
|
|
3110
|
-
"description": "OCIReference is a reference to a step hosted in an OCI repository.",
|
|
3111
|
-
"additionalProperties": false,
|
|
3112
|
-
"required": [
|
|
3113
|
-
"oci",
|
|
3114
|
-
],
|
|
3115
|
-
"properties": {
|
|
3116
|
-
"oci": {
|
|
3117
|
-
"type": "object",
|
|
3118
|
-
"additionalProperties": false,
|
|
3119
|
-
"required": [
|
|
3120
|
-
"registry",
|
|
3121
|
-
"repository",
|
|
3122
|
-
"tag",
|
|
3123
|
-
],
|
|
3124
|
-
"properties": {
|
|
3125
|
-
"registry": {
|
|
3126
|
-
"type": "string",
|
|
3127
|
-
"description": "The <host>[:<port>] of the container registry server.",
|
|
3128
|
-
"examples": [
|
|
3129
|
-
"registry.gitlab.com",
|
|
3130
|
-
],
|
|
3131
|
-
},
|
|
3132
|
-
"repository": {
|
|
3133
|
-
"type": "string",
|
|
3134
|
-
"description": "A path within the registry containing related OCI images. Typically the namespace, project, and image name.",
|
|
3135
|
-
"examples": [
|
|
3136
|
-
"my_group/my_project/image",
|
|
3137
|
-
],
|
|
3138
|
-
},
|
|
3139
|
-
"tag": {
|
|
3140
|
-
"type": "string",
|
|
3141
|
-
"description": "A pointer to the image manifest hosted in the OCI repository.",
|
|
3142
|
-
"examples": [
|
|
3143
|
-
"latest",
|
|
3144
|
-
"1",
|
|
3145
|
-
"1.5",
|
|
3146
|
-
"1.5.0",
|
|
3147
|
-
],
|
|
3148
|
-
},
|
|
3149
|
-
"dir": {
|
|
3150
|
-
"type": "string",
|
|
3151
|
-
"description": "A directory inside the OCI image where the step can be found.",
|
|
3152
|
-
"examples": [
|
|
3153
|
-
"/my_steps/hello_world",
|
|
3154
|
-
],
|
|
3155
|
-
},
|
|
3156
|
-
"file": {
|
|
3157
|
-
"type": "string",
|
|
3158
|
-
"description": "The name of the file that defines the step, defaults to step.yml.",
|
|
3159
|
-
"examples": [
|
|
3160
|
-
"step.yml",
|
|
3161
|
-
],
|
|
3162
|
-
},
|
|
3163
|
-
},
|
|
3164
|
-
},
|
|
3165
|
-
},
|
|
3166
|
-
},
|
|
3167
|
-
"stepExec": {
|
|
3168
|
-
"type": "object",
|
|
3169
|
-
"additionalProperties": false,
|
|
3170
|
-
"required": [
|
|
3171
|
-
"command",
|
|
3172
|
-
],
|
|
3173
|
-
"properties": {
|
|
3174
|
-
"command": {
|
|
3175
|
-
"type": "array",
|
|
3176
|
-
"description": "Command are the parameters to the system exec API. It does not invoke a shell.",
|
|
3177
|
-
"items": {
|
|
3178
|
-
"type": "string",
|
|
3179
|
-
},
|
|
3180
|
-
"minItems": 1,
|
|
3181
|
-
},
|
|
3182
|
-
"work_dir": {
|
|
3183
|
-
"type": "string",
|
|
3184
|
-
"description": "WorkDir is the working directly in which `command` will be exec'ed.",
|
|
3185
|
-
},
|
|
3186
|
-
},
|
|
3187
|
-
},
|
|
3188
|
-
},
|
|
3189
|
-
};
|
|
3190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNsQixTQUFTLEVBQUUseUNBQXlDO0lBQ3BELEtBQUssRUFBRSxtQ0FBbUM7SUFDMUMscUJBQXFCLEVBQUUsOFRBQThUO0lBQ3JWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRTtRQUNWLFNBQVMsRUFBRTtZQUNQLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxLQUFLO1NBQ2xCO1FBQ0QsTUFBTSxFQUFFO1lBQ0osTUFBTSxFQUFFLFFBQVE7WUFDaEIscUJBQXFCLEVBQUUsa09BQWtPO1lBQ3pQLFlBQVksRUFBRTtnQkFDVixRQUFRLEVBQUU7b0JBQ04sTUFBTSxFQUFFLDRCQUE0QjtpQkFDdkM7YUFDSjtZQUNELHNCQUFzQixFQUFFLEtBQUs7U0FDaEM7UUFDRCxPQUFPLEVBQUU7WUFDTCxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLHFCQUFxQixFQUFFLDhOQUE4TjtTQUN4UDtRQUNELFVBQVUsRUFBRTtZQUNSLE1BQU0sRUFBRSx3QkFBd0I7WUFDaEMscUJBQXFCLEVBQUUsaU9BQWlPO1NBQzNQO1FBQ0QsZUFBZSxFQUFFO1lBQ2IsTUFBTSxFQUFFLDZCQUE2QjtZQUNyQyxxQkFBcUIsRUFBRSxzT0FBc087U0FDaFE7UUFDRCxjQUFjLEVBQUU7WUFDWixNQUFNLEVBQUUsNEJBQTRCO1lBQ3BDLHFCQUFxQixFQUFFLHFPQUFxTztTQUMvUDtRQUNELFdBQVcsRUFBRTtZQUNULE1BQU0sRUFBRSwrQkFBK0I7U0FDMUM7UUFDRCxPQUFPLEVBQUU7WUFDTCxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLHFCQUFxQixFQUFFLDhOQUE4TjtTQUN4UDtRQUNELFlBQVksRUFBRTtZQUNWLE1BQU0sRUFBRSwwQkFBMEI7U0FDckM7UUFDRCxTQUFTLEVBQUU7WUFDUCxNQUFN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aEIsYUFBYSxFQUFFLCtEQUErRDs0QkFDOUUsVUFBVSxFQUFFO2dDQUNSLFFBQVE7Z0NBQ1IsR0FBRztnQ0FDSCxLQUFLO2dDQUNMLE9BQU87NkJBQ1Y7eUJBQ0o7d0JBQ0QsS0FBSyxFQUFFOzRCQUNILE1BQU0sRUFBRSxRQUFROzRCQUNoQixhQUFhLEVBQUUsK0RBQStEOzRCQUM5RSxVQUFVLEVBQUU7Z0NBQ1IsdUJBQXVCOzZCQUMxQjt5QkFDSjt3QkFDRCxNQUFNLEVBQUU7NEJBQ0osTUFBTSxFQUFFLFFBQVE7NEJBQ2hCLGFBQWEsRUFBRSxtRUFBbUU7NEJBQ2xGLFVBQVUsRUFBRTtnQ0FDUixVQUFVOzZCQUNiO3lCQUNKO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSjtRQUNELFVBQVUsRUFBRTtZQUNSLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsVUFBVSxFQUFFO2dCQUNSLFNBQVM7YUFDWjtZQUNELFlBQVksRUFBRTtnQkFDVixTQUFTLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLE9BQU87b0JBQ2YsYUFBYSxFQUFFLGdGQUFnRjtvQkFDL0YsT0FBTyxFQUFFO3dCQUNMLE1BQU0sRUFBRSxRQUFRO3FCQUNuQjtvQkFDRCxVQUFVLEVBQUUsQ0FBQztpQkFDaEI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNSLE1BQU0sRUFBRSxRQUFRO29CQUNoQixhQUFhLEVBQUUscUVBQXFFO2lCQUN2RjthQUNKO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2NoZW1hID0ge1xuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hI1wiLFxuICAgIFwiJGlkXCI6IFwiaHR0cHM6Ly9naXRsYWIuY29tLy5naXRsYWItY2kueW1sXCIsXG4gICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiR2l0TGFiIGhhcyBhIGJ1aWx0LWluIHNvbHV0aW9uIGZvciBkb2luZyBDSSBjYWxsZWQgR2l0TGFiIENJLiBJdCBpcyBjb25maWd1cmVkIGJ5IHN1cHBseWluZyBhIGZpbGUgY2FsbGVkIGAuZ2l0bGFiLWNpLnltbGAsIHdoaWNoIHdpbGwgbGlzdCBhbGwgdGhlIGpvYnMgdGhhdCBhcmUgZ29pbmcgdG8gcnVuIGZvciB0aGUgcHJvamVjdC4gQSBmdWxsIGxpc3Qgb2YgYWxsIG9wdGlvbnMgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLykuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS8pLlwiLFxuICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNwZWNpZmljYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uIE11c3QgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBvZiBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgaW4gYSBoZWFkZXIgc2VjdGlvbiBzZXBhcmF0ZWQgZnJvbSB0aGUgcmVzdCBvZiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIGAtLS1gLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jc3BlYykuXCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb25maWdJbnB1dHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5pbmcgYGltYWdlYCBnbG9iYWxseSBpcyBkZXByZWNhdGVkLiBVc2UgW2BkZWZhdWx0YF0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZGVmYXVsdCkgaW5zdGVhZC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2dsb2JhbGx5LWRlZmluZWQtaW1hZ2Utc2VydmljZXMtY2FjaGUtYmVmb3JlX3NjcmlwdC1hZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInNlcnZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VydmljZXNcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluaW5nIGBzZXJ2aWNlc2AgZ2xvYmFsbHkgaXMgZGVwcmVjYXRlZC4gVXNlIFtgZGVmYXVsdGBdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2RlZmF1bHQpIGluc3RlYWQuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNnbG9iYWxseS1kZWZpbmVkLWltYWdlLXNlcnZpY2VzLWNhY2hlLWJlZm9yZV9zY3JpcHQtYWZ0ZXJfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJiZWZvcmVfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5pbmcgYGJlZm9yZV9zY3JpcHRgIGdsb2JhbGx5IGlzIGRlcHJlY2F0ZWQuIFVzZSBbYGRlZmF1bHRgXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNkZWZhdWx0KSBpbnN0ZWFkLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZ2xvYmFsbHktZGVmaW5lZC1pbWFnZS1zZXJ2aWNlcy1jYWNoZS1iZWZvcmVfc2NyaXB0LWFmdGVyX3NjcmlwdCkuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYWZ0ZXJfc2NyaXB0XCIsXG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmluZyBgYWZ0ZXJfc2NyaXB0YCBnbG9iYWxseSBpcyBkZXByZWNhdGVkLiBVc2UgW2BkZWZhdWx0YF0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZGVmYXVsdCkgaW5zdGVhZC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2dsb2JhbGx5LWRlZmluZWQtaW1hZ2Utc2VydmljZXMtY2FjaGUtYmVmb3JlX3NjcmlwdC1hZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2dsb2JhbFZhcmlhYmxlc1wiLFxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluaW5nIGBjYWNoZWAgZ2xvYmFsbHkgaXMgZGVwcmVjYXRlZC4gVXNlIFtgZGVmYXVsdGBdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2RlZmF1bHQpIGluc3RlYWQuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNnbG9iYWxseS1kZWZpbmVkLWltYWdlLXNlcnZpY2VzLWNhY2hlLWJlZm9yZV9zY3JpcHQtYWZ0ZXJfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvIXJlZmVyZW5jZVwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9hZnRlcl9zY3JpcHRcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9hcnRpZmFjdHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJob29rc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaG9va3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NhY2hlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImlkX3Rva2Vuc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWRfdG9rZW5zXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImlkZW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZGVudGl0eVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZXRyeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmV0cnlcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlcnZpY2VzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3RhZ3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGltZW91dFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy8hcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcInN0YWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiR3JvdXBzIGpvYnMgaW50byBzdGFnZXMuIEFsbCBqb2JzIGluIG9uZSBzdGFnZSBtdXN0IGNvbXBsZXRlIGJlZm9yZSBuZXh0IHN0YWdlIGlzIGV4ZWN1dGVkLiBEZWZhdWx0cyB0byBbJ2J1aWxkJywgJ3Rlc3QnLCAnZGVwbG95J10uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzdGFnZXMpLlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFtcbiAgICAgICAgICAgICAgICBcImJ1aWxkXCIsXG4gICAgICAgICAgICAgICAgXCJ0ZXN0XCIsXG4gICAgICAgICAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDYW4gYmUgYEluY2x1ZGVJdGVtYCBvciBgSW5jbHVkZUl0ZW1bXWAuIEVhY2ggYEluY2x1ZGVJdGVtYCB3aWxsIGJlIGEgc3RyaW5nLCBvciBhbiBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIGZvciB0aGUgbWV0aG9kIGlmIGluY2x1ZGluZyBleHRlcm5hbCBZQU1MIGZpbGUuIFRoZSBleHRlcm5hbCBjb250ZW50IHdpbGwgYmUgZmV0Y2hlZCwgaW5jbHVkZWQgYW5kIGV2YWx1YXRlZCBhbG9uZyB0aGUgYC5naXRsYWItY2kueW1sYC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2luY2x1ZGUpLlwiLFxuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW5jbHVkZV9pdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFnZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgc3BlY2lhbCBqb2IgdXNlZCB0byB1cGxvYWQgc3RhdGljIHNpdGVzIHRvIEdpdExhYiBwYWdlcy4gUmVxdWlyZXMgYSBgcHVibGljL2AgZGlyZWN0b3J5IHdpdGggYGFydGlmYWN0cy5wYXRoYCBwb2ludGluZyB0byBpdC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3BhZ2VzKS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3b3JrZmxvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy93b3JrZmxvd05hbWVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXV0b19jYW5jZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3dvcmtmbG93QXV0b0NhbmNlbFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jaGFuZ2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhpc3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcnVsZXNWYXJpYWJsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2hlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmV2ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b19jYW5jZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3dvcmtmbG93QXV0b0NhbmNlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl5bLl1cIjoge1xuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkhpZGRlbiBrZXlzLlwiLFxuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2pvYl90ZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQXJiaXRyYXJ5IFlBTUwgYW5jaG9yLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iXCIsXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IgaWYgaXQgc3VjY2VlZHMuIEFydGlmYWN0cyBhcmUgc2VudCB0byBHaXRMYWIgd2hlcmUgdGhleSBjYW4gYmUgZG93bmxvYWRlZC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2FydGlmYWN0cykuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInBhdGhzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzcGF0aHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV4Y2x1ZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgcGF0aHMgdG8gZmlsZXMvZm9sZGVycyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBpbiB0aGUgYXJ0aWZhY3QuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNleGNsdWRlKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleHBvc2VfYXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ2FuIGJlIHVzZWQgdG8gZXhwb3NlIGpvYiBhcnRpZmFjdHMgaW4gdGhlIG1lcmdlIHJlcXVlc3QgVUkuIEdpdExhYiB3aWxsIGFkZCBhIGxpbmsgPGV4cG9zZV9hcz4gdG8gdGhlIHJlbGV2YW50IG1lcmdlIHJlcXVlc3QgdGhhdCBwb2ludHMgdG8gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzZXhwb3NlX2FzKS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJOYW1lIGZvciB0aGUgYXJjaGl2ZSBjcmVhdGVkIG9uIGpvYiBzdWNjZXNzLiBDYW4gdXNlIHZhcmlhYmxlcyBpbiB0aGUgbmFtZSwgZS5nLiAnJENJX0pPQl9OQU1FJyBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzbmFtZSkuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVudHJhY2tlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0byBhZGQgYWxsIHVudHJhY2tlZCBmaWxlcyAoYWxvbmcgd2l0aCAnYXJ0aWZhY3RzLnBhdGhzJykgdG8gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzdW50cmFja2VkKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlIHdoZW4gYXJ0aWZhY3RzIGFyZSB1cGxvYWRlZCBkZXBlbmRlZCBvbiBqb2Igc3RhdHVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3Rzd2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIm9uX3N1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uX3N1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib25fZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWNjZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlIHdobyBjYW4gYWNjZXNzIHRoZSBhcnRpZmFjdHMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNhY2Nlc3MpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGV2ZWxvcGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleHBpcmVfaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSG93IGxvbmcgYXJ0aWZhY3RzIHNob3VsZCBiZSBrZXB0LiBUaGV5IGFyZSBzYXZlZCAzMCBkYXlzIGJ5IGRlZmF1bHQuIEFydGlmYWN0cyB0aGF0IGhhdmUgZXhwaXJlZCBhcmUgcmVtb3ZlZCBwZXJpb2RpY2FsbHkgdmlhIGNyb24gam9iLiBTdXBwb3J0cyBhIHdpZGUgdmFyaWV0eSBvZiBmb3JtYXRzLCBlLmcuICcxIHdlZWsnLCAnMyBtaW5zIDQgc2VjJywgJzIgaHJzIDIwIG1pbicsICcyaDIwbWluJywgJzYgbW9zIDEgZGF5JywgJzQ3IHlycyA2IG1vcyBhbmQgNGQnLCAnMyB3ZWVrcyBhbmQgMiBkYXlzJy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2FydGlmYWN0c2V4cGlyZV9pbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIjMwIGRheXNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVwb3J0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJSZXBvcnRzIHdpbGwgYmUgdXBsb2FkZWQgYXMgYXJ0aWZhY3RzLCBhbmQgb2Z0ZW4gZGlzcGxheWVkIGluIHRoZSBHaXRMYWIgVUksIHN1Y2ggYXMgaW4gbWVyZ2UgcmVxdWVzdHMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNyZXBvcnRzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWNjZXNzaWJpbGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gSlNPTiBmaWxlIHdpdGggYWNjZXNzaWJpbGl0eSByZXBvcnQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbm5vdGF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gSlNPTiBmaWxlIHdpdGggYW5ub3RhdGlvbnMgcmVwb3J0LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwianVuaXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIGZvciBmaWxlKHMpIHRoYXQgc2hvdWxkIGJlIHBhcnNlZCBhcyBKVW5pdCBYTUwgcmVzdWx0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gYSBzaW5nbGUgWE1MIGZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgcGF0aHMgdG8gWE1MIGZpbGVzIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbmNhdGVuYXRlZCBpbnRvIGEgc2luZ2xlIGZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJvd3Nlcl9wZXJmb3JtYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gYSBzaW5nbGUgZmlsZSB3aXRoIGJyb3dzZXIgcGVyZm9ybWFuY2UgbWV0cmljIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvdmVyYWdlX3JlcG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb2xsZWN0IGNvdmVyYWdlIHJlcG9ydHMgZnJvbSB0aGUgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY292ZXJhZ2VfZm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb2RlIGNvdmVyYWdlIGZvcm1hdCB1c2VkIGJ5IHRoZSB0ZXN0IGZyYW1ld29yay5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2JlcnR1cmFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImphY29jb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIHRoZSBjb3ZlcmFnZSByZXBvcnQgZmlsZSB0aGF0IHNob3VsZCBiZSBwYXJzZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvZGVxdWFsaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjb2RlIHF1YWxpdHkgcmVwb3J0KHMpIChzdWNoIGFzIENvZGUgQ2xpbWF0ZSkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkb3RlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyBjb250YWluaW5nIHJ1bnRpbWUtY3JlYXRlZCB2YXJpYWJsZXMgZm9yIHRoaXMgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibHNpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIGNvbnRhaW5pbmcgY29kZSBpbnRlbGxpZ2VuY2UgKExhbmd1YWdlIFNlcnZlciBJbmRleCBGb3JtYXQpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2FzdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggU0FTVCB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVwZW5kZW5jeV9zY2FubmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggRGVwZW5kZW5jeSBzY2FubmluZyB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udGFpbmVyX3NjYW5uaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBDb250YWluZXIgc2Nhbm5pbmcgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhc3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIERBU1QgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxpY2Vuc2VfbWFuYWdlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQgaW4gMTIuODogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBsaWNlbnNlIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxpY2Vuc2Vfc2Nhbm5pbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZW1lbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCByZXF1aXJlbWVudHMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VjcmV0X2RldGVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggc2VjcmV0IGRldGVjdGlvbiByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZXRyaWNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjdXN0b20gbWV0cmljcyByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXJyYWZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHRlcnJhZm9ybSBwbGFuKHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY3ljbG9uZWR4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGN5Y2xvbmVkeCByZXBvcnQocykuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sL2FydGlmYWN0c19yZXBvcnRzLyNhcnRpZmFjdHNyZXBvcnRzY3ljbG9uZWR4KS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvYWRfcGVyZm9ybWFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggbG9hZCBwZXJmb3JtYW5jZSB0ZXN0aW5nIHJlcG9ydChzKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvYXJ0aWZhY3RzX3JlcG9ydHMvI2FydGlmYWN0c3JlcG9ydHNsb2FkX3BlcmZvcm1hbmNlKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlfeHJheVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggUmVwb3NpdG9yeSBYLVJheSByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ19maWxlX2xpc3RcIjoge1xuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJiYXNlSW5wdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJJbnB1dCB0eXBlLiBEZWZhdWx0cyB0byAnc3RyaW5nJyB3aGVuIG5vdCBzcGVjaWZpZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSHVtYW4tcmVhZGFibGUgZXhwbGFuYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTAyNCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMgZm9yIHRoaXMgaW5wdXQuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVnZXhcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiUmVndWxhciBleHByZXNzaW9uIHRoYXQgc3RyaW5nIHZhbHVlcyBtdXN0IG1hdGNoLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBpbnB1dC5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29uZmlnSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIGlucHV0IHBhcmFtZXRlcnMgZm9yIHJldXNhYmxlIENJL0NEIGNvbmZpZ3VyYXRpb24uIENvbmZpZyBpbnB1dHMgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBkZWZhdWx0cy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL2lucHV0cy8pLlwiLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2Jhc2VJbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb25kaXRpb25hbCBydWxlcyBmb3IgdGhpcyBpbnB1dC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGxPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGhlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiam9iSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIGlucHV0IHBhcmFtZXRlcnMgZm9yIGEgam9iLiBKb2IgaW5wdXRzIG11c3QgYWx3YXlzIGluY2x1ZGUgYSBgZGVmYXVsdGAgdmFsdWUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbnB1dHMpLlwiLFxuICAgICAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IDUwLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmFzZUlucHV0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsbE9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbmNsdWRlX2l0ZW1cIjoge1xuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2lsbCBpbmZlciB0aGUgbWV0aG9kIGJhc2VkIG9uIHRoZSB2YWx1ZS4gRS5nLiBgaHR0cHM6Ly8uLi5gIHN0cmluZ3Mgd2lsbCBiZSBvZiB0eXBlIGBpbmNsdWRlOnJlbW90ZWAsIGFuZCBgL3RlbXBsYXRlcy8uLi5gIG9yIGB0ZW1wbGF0ZXMvLi4uYCB3aWxsIGJlIG9mIHR5cGUgYGluY2x1ZGU6bG9jYWxgLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJub3RcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBgeWFtbGAvYHltbGAgZmlsZSB0ZW1wbGF0ZS4gVGhlIGZpbGUgbXVzdCBiZSBvbiB0aGUgc2FtZSBicmFuY2gsIGFuZCBkb2VzIG5vdCB3b3JrIGFjcm9zcyBnaXQgc3VibW9kdWxlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVSdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAgW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2luY2x1ZGVwcm9qZWN0KS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkJyYW5jaC9UYWcvQ29tbWl0LWhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aCBmcm9tIHByb2plY3Qgcm9vdCAoYC9gKSB0byB0aGUgYHlhbWxgL2B5bWxgIGZpbGUgdGVtcGxhdGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgZmlsZXMgYnkgcmVsYXRpdmUgcGF0aCBmcm9tIHByb2plY3Qgcm9vdCAoYC9gKSB0byB0aGUgYHlhbWxgL2B5bWxgIGZpbGUgdGVtcGxhdGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlIGEgYC5naXRsYWItY2kueW1sYCB0ZW1wbGF0ZSBhcyBhIGJhc2UsIGUuZy4gYE5vZGVqcy5naXRsYWItY2kueW1sYC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVSdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRlbXBsYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb21wb25lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJMb2NhbCBwYXRoIHRvIGNvbXBvbmVudCBkaXJlY3Rvcnkgb3IgZnVsbCBwYXRoIHRvIGV4dGVybmFsIGNvbXBvbmVudCBkaXJlY3RvcnkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb21wb25lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlbW90ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVSTCB0byBhIGB5YW1sYC9geW1sYCB0ZW1wbGF0ZSBmaWxlIHVzaW5nIEhUVFAvSFRUUFMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlZ3JpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTSEEyNTYgaW50ZWdyaXR5IGhhc2ggb2YgdGhlIHJlbW90ZSBmaWxlIGNvbnRlbnQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZW1vdGVcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbWFnZVwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHRoZSBkb2NrZXIgaW1hZ2UgdG8gdXNlIGZvciB0aGUgam9iIG9yIGdsb2JhbGx5IGZvciBhbGwgam9icy4gSm9iIGNvbmZpZ3VyYXRpb24gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdsb2JhbCBzZXR0aW5nLiBSZXF1aXJlcyBhIGNlcnRhaW4ga2luZCBvZiBHaXRMYWIgcnVubmVyIGV4ZWN1dG9yLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVudHJ5cG9pbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkb2NrZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIk9wdGlvbnMgdG8gcGFzcyB0byBSdW5uZXJzIERvY2tlciBFeGVjdXRvci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ltYWdlZG9ja2VyKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW1hZ2UgYXJjaGl0ZWN0dXJlIHRvIHB1bGwuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlcm5hbWUgb3IgVUlEIHRvIHVzZSBmb3IgdGhlIGNvbnRhaW5lci5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiT3B0aW9ucyB0byBwYXNzIHRvIFJ1bm5lcnMgS3ViZXJuZXRlcyBFeGVjdXRvci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ltYWdla3ViZXJuZXRlcylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDI1NSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJVc2VybmFtZSBvciBVSUQgdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLiBJdCBhbHNvIHN1cHBvcnRzIHRoZSBVSUQ6R0lEIGZvcm1hdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHVsbF9wb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNwZWNpZmllcyBob3cgdG8gcHVsbCB0aGUgaW1hZ2UgaW4gUnVubmVyLiBJdCBjYW4gYmUgb25lIG9mIGBhbHdheXNgLCBgbmV2ZXJgIG9yIGBpZi1ub3QtcHJlc2VudGAuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBhbHdheXNgLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW1hZ2VwdWxsX3BvbGljeSkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmV2ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIGRvY2tlciBpbWFnZSB0byB1c2UgZm9yIHRoZSBqb2Igb3IgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiBKb2IgY29uZmlndXJhdGlvbiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZ2xvYmFsIHNldHRpbmcuIFJlcXVpcmVzIGEgY2VydGFpbiBraW5kIG9mIEdpdExhYiBydW5uZXIgZXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbWFnZSkuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNpbWlsYXIgdG8gYGltYWdlYCBwcm9wZXJ0eSwgYnV0IHdpbGwgbGluayB0aGUgc3BlY2lmaWVkIHNlcnZpY2VzIHRvIHRoZSBgaW1hZ2VgIGNvbnRhaW5lci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlcnZpY2VzKS5cIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW50cnlwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3NlcnZpY2VzLyNhdmFpbGFibGUtc2V0dGluZ3MtZm9yLXNlcnZpY2VzKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRvY2tlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJPcHRpb25zIHRvIHBhc3MgdG8gUnVubmVycyBEb2NrZXIgRXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZXJ2aWNlc2RvY2tlcilcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkltYWdlIGFyY2hpdGVjdHVyZSB0byBwdWxsLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZXJuYW1lIG9yIFVJRCB0byB1c2UgZm9yIHRoZSBjb250YWluZXIuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJrdWJlcm5ldGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIk9wdGlvbnMgdG8gcGFzcyB0byBSdW5uZXJzIEt1YmVybmV0ZXMgRXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbWFnZWt1YmVybmV0ZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZXJuYW1lIG9yIFVJRCB0byB1c2UgZm9yIHRoZSBjb250YWluZXIuIEl0IGFsc28gc3VwcG9ydHMgdGhlIFVJRDpHSUQgZm9ybWF0LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVsbF9wb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgaG93IHRvIHB1bGwgdGhlIGltYWdlIGluIFJ1bm5lci4gSXQgY2FuIGJlIG9uZSBvZiBgYWx3YXlzYCwgYG5ldmVyYCBvciBgaWYtbm90LXByZXNlbnRgLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYWx3YXlzYC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlcnZpY2VzcHVsbF9wb2xpY3kpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZi1ub3QtcHJlc2VudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbW1hbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb21tYW5kIG9yIHNjcmlwdCB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBjb250YWluZXIncyBjb21tYW5kLiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gYXJndW1lbnRzIHBhc3NlZCB0byBEb2NrZXIgYWZ0ZXIgdGhlIGltYWdlJ3MgbmFtZS4gVGhlIHN5bnRheCBpcyBzaW1pbGFyIHRvIERvY2tlcmZpbGUncyBDTUQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3NlcnZpY2VzLyNhdmFpbGFibGUtc2V0dGluZ3MtZm9yLXNlcnZpY2VzKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGlhc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBZGRpdGlvbmFsIGFsaWFzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBzZXJ2aWNlIGZyb20gdGhlIGpvYidzIGNvbnRhaW5lci4gUmVhZCBBY2Nlc3NpbmcgdGhlIHNlcnZpY2VzIGZvciBtb3JlIGluZm9ybWF0aW9uLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kvc2VydmljZXMvI2F2YWlsYWJsZS1zZXR0aW5ncy1mb3Itc2VydmljZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIHBhc3NlZCBleGNsdXNpdmVseSB0byB0aGUgc2VydmljZS4gU2VydmljZSB2YXJpYWJsZXMgY2Fubm90IHJlZmVyZW5jZSB0aGVtc2VsdmVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kvc2VydmljZXMvI2F2YWlsYWJsZS1zZXR0aW5ncy1mb3Itc2VydmljZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiaWRfdG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBKV1RzIHRvIGJlIGluamVjdGVkIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy5cIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdWRcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNldHMgYSB3b3JrbG9hZCBpZGVudGl0eSAoZXhwZXJpbWVudGFsKSwgYWxsb3dpbmcgYXV0b21hdGljIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIGV4dGVybmFsIHN5c3RlbS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2lkZW50aXR5KS5cIixcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgXCJnb29nbGVfY2xvdWRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VjcmV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgc2VjcmV0cyB0byBiZSBpbmplY3RlZCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZWNyZXRzKS5cIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlRoZSBzZWNyZXQgdG8gYmUgZmV0Y2hlZCBmcm9tIFZhdWx0IChlLmcuICdwcm9kdWN0aW9uL2RiL3Bhc3N3b3JkQG9wcycgdHJhbnNsYXRlcyB0byBzZWNyZXQgJ29wcy9kYXRhL3Byb2R1Y3Rpb24vZGInLCBmaWVsZCBgcGFzc3dvcmRgKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlY3JldHN2YXVsdClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW5naW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmllbGRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW5naW5lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImdjcF9zZWNyZXRfbWFuYWdlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyB0aGUgc2VjcmV0IHZlcnNpb24gdG8gYmUgZmV0Y2hlZCBmcm9tIEdDUCBTZWNyZXQgTWFuYWdlci4gTmFtZSByZWZlcnMgdG8gdGhlIHNlY3JldCBuYW1lIGluIEdDUCBzZWNyZXQgbWFuYWdlci4gVmVyc2lvbiByZWZlcnMgdG8gdGhlIGRlc2lyZWQgc2VjcmV0IHZlcnNpb24gKGRlZmF1bHRzIHRvICdsYXRlc3QnKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2ZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXp1cmVfa2V5X3ZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nfc2VjcmV0c19tYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIEFSTiBvciBuYW1lIG9mIHRoZSBzZWNyZXQgdG8gcmV0cmlldmUuIFRvIHJldHJpZXZlIGEgc2VjcmV0IGZyb20gYW5vdGhlciBhY2NvdW50LCB5b3UgbXVzdCB1c2UgYW4gQVJOLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHNlY3JldCB0byBiZSBmZXRjaGVkIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlci4gVGhlIHNlY3JldF9pZCByZWZlcnMgdG8gdGhlIEFSTiBvciBuYW1lIG9mIHRoZSBzZWNyZXQgaW4gQVdTIFNlY3JldHMgTWFuYWdlci4gVmVyc2lvbl9pZCBhbmQgdmVyc2lvbl9zdGFnZSBhcmUgb3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoZSBzZWNyZXQsIGVsc2UgQVdTQ1VSUkVOVCB2ZXJzaW9uIHdpbGwgYmUgcmV0dXJuZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VjcmV0X2lkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgQVJOIG9yIG5hbWUgb2YgdGhlIHNlY3JldCB0byByZXRyaWV2ZS4gVG8gcmV0cmlldmUgYSBzZWNyZXQgZnJvbSBhbm90aGVyIGFjY291bnQsIHlvdSBtdXN0IHVzZSBhbiBBUk4uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZlcnNpb25faWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdmVyc2lvbiBvZiB0aGUgc2VjcmV0IHRvIHJldHJpZXZlLiBJZiB5b3UgaW5jbHVkZSBib3RoIHRoaXMgcGFyYW1ldGVyIGFuZCBWZXJzaW9uU3RhZ2UsIHRoZSB0d28gcGFyYW1ldGVycyBtdXN0IHJlZmVyIHRvIHRoZSBzYW1lIHNlY3JldCB2ZXJzaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBlaXRoZXIgYSBWZXJzaW9uU3RhZ2Ugb3IgVmVyc2lvbklkLCBTZWNyZXRzIE1hbmFnZXIgcmV0dXJucyB0aGUgQVdTQ1VSUkVOVCB2ZXJzaW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2ZXJzaW9uX3N0YWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgc3RhZ2luZyBsYWJlbCBvZiB0aGUgdmVyc2lvbiBvZiB0aGUgc2VjcmV0IHRvIHJldHJpZXZlLiBJZiB5b3UgaW5jbHVkZSBib3RoIHRoaXMgcGFyYW1ldGVyIGFuZCBWZXJzaW9uU3RhZ2UsIHRoZSB0d28gcGFyYW1ldGVycyBtdXN0IHJlZmVyIHRvIHRoZSBzYW1lIHNlY3JldCB2ZXJzaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBlaXRoZXIgYSBWZXJzaW9uU3RhZ2Ugb3IgVmVyc2lvbklkLCBTZWNyZXRzIE1hbmFnZXIgcmV0dXJucyB0aGUgQVdTQ1VSUkVOVCB2ZXJzaW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBzZWNyZXQgaXMgc3RvcmVkLiBVc2UgdGhpcyB0byBvdmVycmlkZSB0aGUgcmVnaW9uIGZvciBhIHNwZWNpZmljIHNlY3JldC4gRGVmYXVsdHMgdG8gQVdTX1JFR0lPTiB2YXJpYWJsZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicm9sZV9hcm5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBBUk4gb2YgdGhlIElBTSByb2xlIHRvIGFzc3VtZSBiZWZvcmUgcmV0cmlldmluZyB0aGUgc2VjcmV0LiBVc2UgdGhpcyB0byBvdmVycmlkZSB0aGUgQVJOLiBEZWZhdWx0cyB0byBBV1NfUk9MRV9BUk4gdmFyaWFibGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJvbGVfc2Vzc2lvbl9uYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgcm9sZS4gVXNlIHRoaXMgdG8gb3ZlcnJpZGUgdGhlIHNlc3Npb24gbmFtZS4gRGVmYXVsdHMgdG8gQVdTX1JPTEVfU0VTU0lPTl9OQU1FIHZhcmlhYmxlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWVsZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlIGZyb20gdGhlIHNlY3JldC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGVudGlyZSBzZWNyZXQgaXMgcmV0cmlldmVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzZWNyZXRfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlcyB0aGUgc2VjcmV0IHRvIGJlIHN0b3JlZCBhcyBlaXRoZXIgYSBmaWxlIG9yIHZhcmlhYmxlIHR5cGUgQ0kvQ0QgdmFyaWFibGUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZWNyZXRzZmlsZSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHRoZSBKV1QgdmFyaWFibGUgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgc2VjcmV0IHByb3ZpZGVyLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhenVyZV9rZXlfdmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJnY3Bfc2VjcmV0X21hbmFnZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nfc2VjcmV0c19tYW5hZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ2NwX3NlY3JldF9tYW5hZ2VyXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRva2VuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInNjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcIm9wdGlvbmFsX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wdGlvbmFsX3NjcmlwdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiB0aGUgam9iLiBDYW4gYmUgc2V0IGdsb2JhbGx5IG9yIHBlciBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNiZWZvcmVfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZnRlcl9zY3JpcHRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcHRpb25hbF9zY3JpcHRcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiB0aGUgam9iLiBDYW4gYmUgc2V0IGdsb2JhbGx5IG9yIHBlciBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlJ1bGVzIGFsbG93cyBmb3IgYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBydWxlIG9iamVjdHMgdG8gYmUgZXZhbHVhdGVkIGluIG9yZGVyLCB1bnRpbCBvbmUgbWF0Y2hlcyBhbmQgZHluYW1pY2FsbHkgcHJvdmlkZXMgYXR0cmlidXRlcyB0byB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jcnVsZXMpLlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2hhbmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2hhbmdlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleGlzdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4aXN0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3doZW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RhcnRfaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0YXJ0X2luXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsbG93X2ZhaWx1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FsbG93X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmVlZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzTmVlZHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW50ZXJydXB0aWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW50ZXJydXB0aWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5jbHVkZVJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gdXNlIHJ1bGVzIHRvIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBvdGhlciBjb25maWd1cmF0aW9uIGZpbGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC9pbmNsdWRlcy8jdXNlLXJ1bGVzLXdpdGgtaW5jbHVkZSkuXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jaGFuZ2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhpc3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgYHdoZW46IG5ldmVyYCB0byBleGNsdWRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgaWYgdGhlIGNvbmRpdGlvbiBtYXRjaGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC9pbmNsdWRlcy8jaW5jbHVkZS13aXRoLXJ1bGVzaWYpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5ldmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcIndvcmtmbG93TmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHBpcGVsaW5lIG5hbWUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN3b3JrZmxvd25hbWUpLlwiLFxuICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDI1NSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3b3JrZmxvd0F1dG9DYW5jZWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIHRoZSBydWxlcyBmb3Igd2hlbiBwaXBlbGluZSBzaG91bGQgYmUgYXV0b21hdGljYWxseSBjYW5jZWxsZWQuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm9uX2pvYl9mYWlsdXJlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIHdoaWNoIGpvYnMgdG8gc3RvcCBhZnRlciBhIGpvYiBmYWlscy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib25fbmV3X2NvbW1pdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGF1dG8tY2FuY2VsIHJlZHVuZGFudCBwaXBlbGluZXMgZmVhdHVyZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3dvcmtmbG93YXV0b19jYW5jZWxvbl9uZXdfY29tbWl0KVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uc2VydmF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImludGVycnVwdGlibGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImdsb2JhbFZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIGRlZmF1bHQgdmFyaWFibGVzIGZvciBhbGwgam9icy4gSm9iIGxldmVsIHByb3BlcnR5IG92ZXJyaWRlcyBnbG9iYWwgdmFyaWFibGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzKS5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZhdWx0IHZhbHVlIG9mIHRoZSB2YXJpYWJsZS4gSWYgdXNlZCB3aXRoIGBvcHRpb25zYCwgYHZhbHVlYCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3ZhcmlhYmxlc3ZhbHVlKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBwcmVkZWZpbmVkIHZhbHVlcyB0aGF0IHVzZXJzIGNhbiBzZWxlY3QgZnJvbSBpbiB0aGUgKipSdW4gcGlwZWxpbmUqKiBwYWdlIHdoZW4gcnVubmluZyBhIHBpcGVsaW5lIG1hbnVhbGx5LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzb3B0aW9ucylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkV4cGxhaW5zIHdoYXQgdGhlIHZhcmlhYmxlIGlzIHVzZWQgZm9yLCB3aGF0IHRoZSBhY2NlcHRhYmxlIHZhbHVlcyBhcmUuIFZhcmlhYmxlcyB3aXRoIGBkZXNjcmlwdGlvbmAgYXJlIHByZWZpbGxlZCB3aGVuIHJ1bm5pbmcgYSBwaXBlbGluZSBtYW51YWxseS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3ZhcmlhYmxlc2Rlc2NyaXB0aW9uKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHBhbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSWYgdGhlIHZhcmlhYmxlIGlzIGV4cGFuZGFibGUgb3Igbm90LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzZXhwYW5kKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImpvYlZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIHZhcmlhYmxlcyBmb3IgYSBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN2YXJpYWJsZXMpLlwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIi4qXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHBhbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBpZiB0aGUgdmFyaWFibGUgaXMgZXhwYW5kYWJsZSBvciBub3QuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN2YXJpYWJsZXNleHBhbmQpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVsZXNWYXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyB2YXJpYWJsZXMgZm9yIGEgcnVsZSByZXN1bHQuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc3ZhcmlhYmxlcykuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkV4cHJlc3Npb24gdG8gZXZhbHVhdGUgd2hldGhlciBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc2lmKS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFkZGl0aW9uYWwgYXR0cmlidXRlcyB3aWxsIGJlIHByb3ZpZGVkIHRvIGpvYiBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIHBhdGhzIG1hdGNoZXMgYSBtb2RpZmllZCBmaWxlLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jcnVsZXNjaGFuZ2VzKS5cIixcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTGlzdCBvZiBmaWxlIHBhdGhzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29tcGFyZV90b1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlZiBmb3IgY29tcGFyaW5nIGNoYW5nZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgd2lsbCBiZSBwcm92aWRlZCB0byBqb2IgaWYgYW55IG9mIHRoZSBwcm92aWRlZCBwYXRocyBtYXRjaGVzIGFuIGV4aXN0aW5nIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc2V4aXN0cykuXCIsXG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgZmlsZSBwYXRocy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIG9mIHRoZSBwcm9qZWN0IHRvIHNlYXJjaCBpbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTGlzdCBvZiBmaWxlIHBhdGhzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggb2YgdGhlIHByb2plY3QgdG8gc2VhcmNoIGluLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVmIG9mIHRoZSBwcm9qZWN0IHRvIHNlYXJjaCBpbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFsbG93cyB5b3UgdG8gY29uZmlndXJlIGEgdGltZW91dCBmb3IgYSBzcGVjaWZpYyBqb2IgKGUuZy4gYDEgbWludXRlYCwgYDFoIDMwbSAxMnNgKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3RpbWVvdXQpLlwiLFxuICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGFydF9pblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnd2hlbjogZGVsYXllZCcgdG8gc2V0IGhvdyBsb25nIHRvIGRlbGF5IGJlZm9yZSBzdGFydGluZyBhIGpvYi4gZS5nLiAnNScsIDUgc2Vjb25kcywgMzAgbWludXRlcywgMSB3ZWVrLCBldGMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9qb2JzL2pvYl9jb250cm9sLyNydW4tYS1qb2ItYWZ0ZXItYS1kZWxheSkuXCIsXG4gICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICB9LFxuICAgICAgICBcInJ1bGVzTmVlZHNcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIG5lZWRzIGluIHJ1bGVzIHRvIHVwZGF0ZSBqb2IgbmVlZHMgZm9yIHNwZWNpZmljIGNvbmRpdGlvbnMuIFdoZW4gYSBjb25kaXRpb24gbWF0Y2hlcyBhIHJ1bGUsIHRoZSBqb2IncyBuZWVkcyBjb25maWd1cmF0aW9uIGlzIGNvbXBsZXRlbHkgcmVwbGFjZWQgd2l0aCB0aGUgbmVlZHMgaW4gdGhlIHJ1bGUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc25lZWRzKS5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk5hbWUgb2YgYSBqb2IgdGhhdCBpcyBkZWZpbmVkIGluIHRoZSBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRG93bmxvYWQgYXJ0aWZhY3RzIG9mIHRoZSBqb2IgaW4gbmVlZHMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbmFsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0aGUgam9iIG5lZWRzIHRvIGJlIHByZXNlbnQgaW4gdGhlIHBpcGVsaW5lIHRvIHJ1biBhaGVhZCBvZiB0aGUgY3VycmVudCBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd19mYWlsdXJlXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFsbG93IGpvYiB0byBmYWlsLiBBIGZhaWxlZCBqb2IgZG9lcyBub3QgY2F1c2UgdGhlIHBpcGVsaW5lIHRvIGZhaWwuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhbGxvd19mYWlsdXJlKS5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNldHRpbmcgdGhpcyBvcHRpb24gdG8gdHJ1ZSB3aWxsIGFsbG93IHRoZSBqb2IgdG8gZmFpbCB3aGlsZSBzdGlsbCBsZXR0aW5nIHRoZSBwaXBlbGluZSBwYXNzLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4aXQgY29kZSB0aGF0IGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXIgZXhpdCBjb2RlLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4aXRfY29kZXNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhpdF9jb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gbGlzdCB3aGljaCBleGl0IGNvZGVzIGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlcy4gVGhlIGpvYiBmYWlscyBmb3IgYW55IG90aGVyIGV4aXQgY29kZS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJleGl0X2NvZGVzXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4aXRfY29kZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGxpdHMgdXAgYSBzaW5nbGUgam9iIGludG8gbXVsdGlwbGUgdGhhdCBydW4gaW4gcGFyYWxsZWwuIFByb3ZpZGVzIGBDSV9OT0RFX0lOREVYYCBhbmQgYENJX05PREVfVE9UQUxgIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byB0aGUgam9icy5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQ3JlYXRlcyBOIGluc3RhbmNlcyBvZiB0aGUgam9iIHRoYXQgcnVuIGluIHBhcmFsbGVsLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogMCxcbiAgICAgICAgICAgICAgICAgICAgXCJtaW5pbXVtXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwibWF4aW11bVwiOiAyMDAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRyaXhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgZGlmZmVyZW50IHZhcmlhYmxlcyBmb3Igam9icyB0aGF0IGFyZSBydW5uaW5nIGluIHBhcmFsbGVsLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHZhcmlhYmxlcyBmb3IgYSBzcGVjaWZpYyBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWF4SXRlbXNcIjogMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hdHJpeFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFsbGVsX21hdHJpeFwiOiB7XG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgbmVlZHM6cGFyYWxsZWw6bWF0cml4YCBrZXl3b3JkIHRvIHNwZWNpZnkgcGFyYWxsZWxpemVkIGpvYnMgbmVlZGVkIHRvIGJlIGNvbXBsZXRlZCBmb3IgdGhlIGpvYiB0byBydW4uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNuZWVkc3BhcmFsbGVsbWF0cml4KVwiLFxuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWF0cml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIGRpZmZlcmVudCB2YXJpYWJsZXMgZm9yIGpvYnMgdGhhdCBhcmUgcnVubmluZyBpbiBwYXJhbGxlbC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIHRoZSB2YXJpYWJsZXMgZm9yIGEgc3BlY2lmaWMgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRyaXhcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jd2hlbikuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJvbl9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICBcIm5ldmVyXCIsXG4gICAgICAgICAgICAgICAgXCJtYW51YWxcIixcbiAgICAgICAgICAgICAgICBcImRlbGF5ZWRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIGBjYWNoZWAgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGUpXCIsXG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlX2l0ZW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgY2FjaGU6a2V5YCBrZXl3b3JkIHRvIGdpdmUgZWFjaCBjYWNoZSBhIHVuaXF1ZSBpZGVudGlmeWluZyBrZXkuIEFsbCBqb2JzIHRoYXQgdXNlIHRoZSBzYW1lIGNhY2hlIGtleSB1c2UgdGhlIHNhbWUgY2FjaGUsIGluY2x1ZGluZyBpbiBkaWZmZXJlbnQgcGlwZWxpbmVzLiBNdXN0IGJlIHVzZWQgd2l0aCBgY2FjaGU6cGF0aGAsIG9yIG5vdGhpbmcgaXMgY2FjaGVkLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGVrZXkpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgdGhlIGBjYWNoZTprZXk6ZmlsZXNgIGtleXdvcmQgdG8gZ2VuZXJhdGUgYSBuZXcgY2FjaGUga2V5IHdoZW4gc3BlY2lmaWVkIGZpbGUgY29udGVudCBjaGFuZ2VzLiBDYWNoZSBrZXlzIHJlbWFpbiBzdGFibGUgYWNyb3NzIGJyYW5jaGVzIHdpdGggaWRlbnRpY2FsIGZpbGUgY29udGVudC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXhJdGVtc1wiOiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVzX2NvbW1pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgY2FjaGU6a2V5OmZpbGVzX2NvbW1pdHNgIGtleXdvcmQgdG8gZ2VuZXJhdGUgYSBuZXcgY2FjaGUga2V5IHdoZW4gdGhlIGxhdGVzdCBjb21taXQgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCBmaWxlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXNfY29tbWl0cylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSBgY2FjaGU6a2V5OnByZWZpeGAgdG8gY29tYmluZSBhIHByZWZpeCB3aXRoIHRoZSBTSEEgY29tcHV0ZWQgZm9yIGBjYWNoZTprZXk6ZmlsZXNgIG9yIGBjYWNoZTprZXk6ZmlsZXNfY29tbWl0c2AuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNjYWNoZWtleXByZWZpeClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSB0aGUgYGNhY2hlOnBhdGhzYCBrZXl3b3JkIHRvIGNob29zZSB3aGljaCBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBjYWNoZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hlcGF0aHMpXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBvbGljeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBzdHJhdGVneSBmb3IgZG93bmxvYWRpbmcgYW5kIHVwZGF0aW5nIHRoZSBjYWNoZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hlcG9saWN5KVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJwdWxsLXB1c2hcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidW5wcm90ZWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgYHVucHJvdGVjdDogdHJ1ZWAgdG8gc2V0IGEgY2FjaGUgdG8gYmUgc2hhcmVkIGJldHdlZW4gcHJvdGVjdGVkIGFuZCB1bnByb3RlY3RlZCBicmFuY2hlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1bnRyYWNrZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSBgdW50cmFja2VkOiB0cnVlYCB0byBjYWNoZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNjYWNoZXVudHJhY2tlZClcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGV3aGVuKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwib25fc3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZhbGxiYWNrX2tleXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJMaXN0IG9mIGtleXMgdG8gZG93bmxvYWQgY2FjaGUgZnJvbSBpZiBubyBjYWNoZSBoaXQgb2NjdXJyZWQgZm9yIGtleVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmlsdGVyX3JlZnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGaWx0ZXIgam9iIGJ5IGRpZmZlcmVudCBrZXl3b3JkcyB0aGF0IGRldGVybWluZSBvcmlnaW4gb3Igc3RhdGUsIG9yIGJ5IHN1cHBseWluZyBzdHJpbmcvcmVnZXggdG8gY2hlY2sgYWdhaW5zdCBicmFuY2gvdGFnIG5hbWVzLlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJhbmNoZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldoZW4gYSBicmFuY2ggaXMgcHVzaGVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGVuIGEgdGFnIGlzIHB1c2hlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXBpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGVuIGEgcGlwZWxpbmUgaGFzIGJlZW4gdHJpZ2dlcmVkIGJ5IGEgc2Vjb25kIHBpcGVsaW5lcyBBUEkgKG5vdCB0cmlnZ2VycyBBUEkpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHRlcm5hbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2hlbiB1c2luZyBDSSBzZXJ2aWNlcyBvdGhlciB0aGFuIEdpdExhYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZvciBtdWx0aS1wcm9qZWN0IHRyaWdnZXJzLCBjcmVhdGVkIHVzaW5nIHRoZSBBUEkgd2l0aCAnQ0lfSk9CX1RPS0VOJy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVzaGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQaXBlbGluZSBpcyB0cmlnZ2VyZWQgYnkgYSBgZ2l0IHB1c2hgIGJ5IHRoZSB1c2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVkdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRm9yIHNjaGVkdWxlZCBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyaWdnZXJzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGb3IgcGlwZWxpbmVzIGNyZWF0ZWQgdXNpbmcgYSB0cmlnZ2VyIHRva2VuLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ3ZWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZvciBwaXBlbGluZXMgY3JlYXRlZCB1c2luZyAqUnVuIHBpcGVsaW5lKiBidXR0b24gaW4gR2l0TGFiIFVJICh1bmRlciB5b3VyIHByb2plY3QncyAqUGlwZWxpbmVzKikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggYWdhaW5zdCB0YWcgb3IgYnJhbmNoIG5hbWVzLlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bGxcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9maWx0ZXJfcmVmc1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9maWx0ZXJfcmVmc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhY3RpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGaWx0ZXIgam9iIGJhc2VkIG9uIGlmIEt1YmVybmV0ZXMgaW50ZWdyYXRpb24gaXMgYWN0aXZlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkZpbHRlciBqb2IgYnkgY2hlY2tpbmcgY29tcGFyaW5nIHZhbHVlcyBvZiBDSS9DRCB2YXJpYWJsZXMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9qb2JzL2pvYl9jb250cm9sLyNjaWNkLXZhcmlhYmxlLWV4cHJlc3Npb25zKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNoYW5nZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZpbHRlciBqb2IgY3JlYXRpb24gYmFzZWQgb24gZmlsZXMgdGhhdCB3ZXJlIG1vZGlmaWVkIGluIGEgZ2l0IHB1c2guXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInJldHJ5XCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlJldHJ5IGEgam9iIGlmIGl0IGZhaWxzLiBDYW4gYmUgYSBzaW1wbGUgaW50ZWdlciBvciBvYmplY3QgZGVmaW5pdGlvbi4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3JldHJ5KS5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXRyeV9tYXhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1heFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXRyeV9tYXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkVpdGhlciBhIHNpbmdsZSBvciBhcnJheSBvZiBlcnJvciB0eXBlcyB0byB0cmlnZ2VyIGpvYiByZXRyeS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3JldHJ5d2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmV0cnlfZXJyb3JzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3JldHJ5X2Vycm9yc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhpdF9jb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRWl0aGVyIGEgc2luZ2xlIG9yIGFycmF5IG9mIGV4aXQgY29kZXMgdG8gdHJpZ2dlciBqb2IgcmV0cnkgb24uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNyZXRyeWV4aXRfY29kZXMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgd2hlbiB0aGUgam9iIGV4aXQgY29kZSBpcyBpbmNsdWRlZCBpbiB0aGUgYXJyYXkncyB2YWx1ZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIGpvYiBleGl0IGNvZGUgaXMgZXF1YWwgdG8uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV0cnlfbWF4XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBqb2Igd2lsbCBiZSByZXRyaWVkIGlmIGl0IGZhaWxzLiBEZWZhdWx0cyB0byAwIGFuZCBjYW4gbWF4IGJlIHJldHJpZWQgMiB0aW1lcyAoMyB0aW1lcyB0b3RhbCkuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogMCxcbiAgICAgICAgICAgIFwibWluaW11bVwiOiAwLFxuICAgICAgICAgICAgXCJtYXhpbXVtXCI6IDIsXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV0cnlfZXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb25zdFwiOiBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgb24gYW55IGZhaWx1cmUgKGRlZmF1bHQpLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwidW5rbm93bl9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSB3aGVuIHRoZSBmYWlsdXJlIHJlYXNvbiBpcyB1bmtub3duLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic2NyaXB0X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIHNjcmlwdCBmYWlsZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiY29uc3RcIjogXCJhcGlfZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgb24gQVBJIGZhaWx1cmUuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiY29uc3RcIjogXCJzdHVja19vcl90aW1lb3V0X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIGpvYiBnb3Qgc3R1Y2sgb3IgdGltZWQgb3V0LlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwicnVubmVyX3N5c3RlbV9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGVyZSBpcyBhIHJ1bm5lciBzeXN0ZW0gZmFpbHVyZSAoZm9yIGV4YW1wbGUsIGpvYiBzZXR1cCBmYWlsZWQpLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwicnVubmVyX3Vuc3VwcG9ydGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGUgcnVubmVyIGlzIHVuc3VwcG9ydGVkLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic3RhbGVfc2NoZWR1bGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIGEgZGVsYXllZCBqb2IgY291bGQgbm90IGJlIGV4ZWN1dGVkLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwiam9iX2V4ZWN1dGlvbl90aW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGUgc2NyaXB0IGV4Y2VlZGVkIHRoZSBtYXhpbXVtIGV4ZWN1dGlvbiB0aW1lIHNldCBmb3IgdGhlIGpvYi5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb25zdFwiOiBcImFyY2hpdmVkX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIHRoZSBqb2IgaXMgYXJjaGl2ZWQgYW5kIGNhbuKAmXQgYmUgcnVuLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwidW5tZXRfcHJlcmVxdWlzaXRlc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgaWYgdGhlIGpvYiBmYWlsZWQgdG8gY29tcGxldGUgcHJlcmVxdWlzaXRlIHRhc2tzLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic2NoZWR1bGVyX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIHRoZSBzY2hlZHVsZXIgZmFpbGVkIHRvIGFzc2lnbiB0aGUgam9iIHRvIGEgcnVubmVyLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwiZGF0YV9pbnRlZ3JpdHlfZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgaWYgdGhlcmUgaXMgYW4gdW5rbm93biBqb2IgcHJvYmxlbS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkludGVycnVwdGlibGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCBpZiBtYWRlIHJlZHVuZGFudCBieSBhIG5ld2VyIHBpcGVsaW5lIHJ1bi4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ludGVycnVwdGlibGUpLlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2VkIHRvIHBhc3MgaW5wdXQgdmFsdWVzIHRvIGluY2x1ZGVkIHRlbXBsYXRlcywgY29tcG9uZW50cywgZG93bnN0cmVhbSBwaXBlbGluZXMsIG9yIGNoaWxkIHBpcGVsaW5lcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL2lucHV0cy8pLlwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aMC05Xy1dKyRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5wdXQgcGFyYW1ldGVyIHZhbHVlIHRoYXQgbWF0Y2hlcyBwYXJhbWV0ZXIgbmFtZXMgZGVmaW5lZCBpbiBzcGVjOmlucHV0cyBvZiB0aGUgaW5jbHVkZWQgY29uZmlndXJhdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTAyNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JfdGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJqb2JfdGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzZXJ2aWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VydmljZXNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhZnRlcl9zY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FmdGVyX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJob29rc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaG9va3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jYWNoZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpZF90b2tlbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lkX3Rva2Vuc1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpZGVudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWRlbnRpdHlcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JJbnB1dHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2VjcmV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjcmV0c1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTaGVsbCBzY3JpcHRzIGV4ZWN1dGVkIGJ5IHRoZSBSdW5uZXIuIFRoZSBvbmx5IHJlcXVpcmVkIHByb3BlcnR5IG9mIGpvYnMuIEJlIGNhcmVmdWwgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgKGUuZy4gYDpgLCBge2AsIGB9YCwgYCZgKSBhbmQgdXNlIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzIHRvIGF2b2lkIGlzc3Vlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NjcmlwdClcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgYSBsaXN0IG9mIHN0ZXBzIHRvIGV4ZWN1dGUgaW4gdGhlIGpvYi4gVGhlIGBydW5gIGtleXdvcmQgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gYHNjcmlwdGAgYW5kIGFsbG93cyBmb3IgbW9yZSBhZHZhbmNlZCBqb2IgY29uZmlndXJhdGlvbi4gRWFjaCBzdGVwIGlzIGFuIG9iamVjdCB0aGF0IGRlZmluZXMgYSBzaW5nbGUgdGFzayBvciBjb21tYW5kLiBVc2UgZWl0aGVyIGBydW5gIG9yIGBzY3JpcHRgIGluIGEgam9iLCBidXQgbm90IGJvdGgsIG90aGVyd2lzZSB0aGUgcGlwZWxpbmUgd2lsbCBlcnJvciBvdXQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZSB3aGF0IHN0YWdlIHRoZSBqb2Igd2lsbCBydW4gaW4uXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib25seVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZmlsdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJKb2Igd2lsbCBydW4gKm9ubHkqIHdoZW4gdGhlc2UgZmlsdGVyaW5nIG9wdGlvbnMgbWF0Y2guXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV4dGVuZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2Ygb25lIG9yIG1vcmUgam9icyB0byBpbmhlcml0IGNvbmZpZ3VyYXRpb24gZnJvbS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibmVlZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGxpc3Qgb2Ygam9icyBpbiBwcmV2aW91cyBzdGFnZXMgd2hvc2Ugc29sZSBjb21wbGV0aW9uIGlzIG5lZWRlZCB0byBzdGFydCB0aGUgY3VycmVudCBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbmFsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXJhbGxlbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbGxlbF9tYXRyaXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFsbGVsX21hdHJpeFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGFyYWxsZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYWxsZWxfbWF0cml4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiam9iXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvIXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleGNlcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2ZpbHRlclwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSm9iIHdpbGwgcnVuICpleGNlcHQqIGZvciB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy90YWdzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFsbG93X2ZhaWx1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FsbG93X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGltZW91dFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy93aGVuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YXJ0X2luXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGFydF9pblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtYW51YWxfY29uZmlybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVzY3JpYmVzIHRoZSBDdXN0b20gY29uZmlybWF0aW9uIG1lc3NhZ2UgZm9yIGEgbWFudWFsIGpvYiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jd2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmeSBhIGxpc3Qgb2Ygam9iIG5hbWVzIGZyb20gZWFybGllciBzdGFnZXMgZnJvbSB3aGljaCBhcnRpZmFjdHMgc2hvdWxkIGJlIGxvYWRlZC4gQnkgZGVmYXVsdCwgYWxsIHByZXZpb3VzIGFydGlmYWN0cyBhcmUgcGFzc2VkLiBVc2UgYW4gZW1wdHkgYXJyYXkgdG8gc2tpcCBkb3dubG9hZGluZyBhcnRpZmFjdHMuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYXJ0aWZhY3RzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gYXNzb2NpYXRlIGVudmlyb25tZW50IG1ldGFkYXRhIHdpdGggYSBkZXBsb3kuIEVudmlyb25tZW50IGNhbiBoYXZlIGEgbmFtZSBhbmQgVVJMIGF0dGFjaGVkIHRvIGl0LCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgdW5kZXIgL2Vudmlyb25tZW50cyB1bmRlciB0aGUgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCwgZS5nLiAncWEnLCAnc3RhZ2luZycsICdwcm9kdWN0aW9uJy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldoZW4gc2V0LCB0aGlzIHdpbGwgZXhwb3NlIGJ1dHRvbnMgaW4gdmFyaW91cyBwbGFjZXMgZm9yIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGluIEdpdExhYiwgdGhhdCB3aWxsIHRha2UgeW91IHRvIHRoZSBkZWZpbmVkIFVSTC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25fc3RvcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiBhIGpvYiB0byBleGVjdXRlIHdoZW4gdGhlIGVudmlyb25tZW50IGlzIGFib3V0IHRvIGJlIHN0b3BwZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlcGFyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RvcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyaWZ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhY2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHdoYXQgdGhpcyBqb2Igd2lsbCBkby4gJ3N0YXJ0JyAoZGVmYXVsdCkgaW5kaWNhdGVzIHRoZSBqb2Igd2lsbCBzdGFydCB0aGUgZGVwbG95bWVudC4gJ3ByZXBhcmUnLyd2ZXJpZnknLydhY2Nlc3MnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlcyB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b19zdG9wX2luXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBhbW91bnQgb2YgdGltZSBpdCBzaG91bGQgdGFrZSBiZWZvcmUgR2l0TGFiIHdpbGwgYXV0b21hdGljYWxseSBzdG9wIHRoZSBlbnZpcm9ubWVudC4gU3VwcG9ydHMgYSB3aWRlIHZhcmlldHkgb2YgZm9ybWF0cywgZS5nLiAnMSB3ZWVrJywgJzMgbWlucyA0IHNlYycsICcyIGhycyAyMCBtaW4nLCAnMmgyMG1pbicsICc2IG1vcyAxIGRheScsICc0NyB5cnMgNiBtb3MgYW5kIDRkJywgJzMgd2Vla3MgYW5kIDIgZGF5cycuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBrdWJlcm5ldGVzIGNsdXN0ZXJzIHRoYXQgYXJlIG1hbmFnZWQgYnkgR2l0TGFiLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFnZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIEdpdExhYiBBZ2VudCBmb3IgS3ViZXJuZXRlcy4gVGhlIGZvcm1hdCBpcyBgcGF0aC90by9hZ2VudC9wcm9qZWN0OmFnZW50LW5hbWVgLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQuIFVzZSBgZGFzaGJvYXJkLm5hbWVzcGFjZWAgaW5zdGVhZC4gVGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIHdoZXJlIHRoaXMgZW52aXJvbm1lbnQncyBkYXNoYm9hcmQgc2hvdWxkIGJlIGRlcGxveWVkIHRvLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmbHV4X3Jlc291cmNlX3BhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQuIFVzZSBgZGFzaGJvYXJkLmZsdXhfcmVzb3VyY2VfcGF0aGAgaW5zdGVhZC4gVGhlIEZsdXggcmVzb3VyY2UgcGF0aCB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGVudmlyb25tZW50LiBUaGlzIG11c3QgYmUgdGhlIGZ1bGwgcmVzb3VyY2UgcGF0aC4gRm9yIGV4YW1wbGUsICdoZWxtLnRvb2xraXQuZmx1eGNkLmlvL3YyL25hbWVzcGFjZXMvZ2l0bGFiLWFnZW50L2hlbG1yZWxlYXNlcy9naXRsYWItYWdlbnQnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYW5hZ2VkX3Jlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb25maWd1cmUgdGhlIG1hbmFnZWQgcmVzb3VyY2VzIGZvciB0aGlzIGVudmlyb25tZW50LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkluZGljYXRlcyB3aGV0aGVyIHRoZSBtYW5hZ2VkIHJlc291cmNlcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBlbnZpcm9ubWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhc2hib2FyZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb25maWd1cmUgdGhlIGRhc2hib2FyZCBmb3IgdGhpcyBlbnZpcm9ubWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIHdoZXJlIHRoZSBkYXNoYm9hcmQgZm9yIHRoaXMgZW52aXJvbm1lbnQgc2hvdWxkIGJlIGRlcGxveWVkIHRvLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmbHV4X3Jlc291cmNlX3BhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgRmx1eCByZXNvdXJjZSBwYXRoIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZW52aXJvbm1lbnQuIFRoaXMgbXVzdCBiZSB0aGUgZnVsbCByZXNvdXJjZSBwYXRoLiBGb3IgZXhhbXBsZSwgJ2hlbG0udG9vbGtpdC5mbHV4Y2QuaW8vdjIvbmFtZXNwYWNlcy9naXRsYWItYWdlbnQvaGVsbXJlbGVhc2VzL2dpdGxhYi1hZ2VudCcuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGxveW1lbnRfdGllclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnQgbmFtZSBpcyB1c2VkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWxlYXNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJbmRpY2F0ZXMgdGhhdCB0aGUgam9iIGNyZWF0ZXMgYSBSZWxlYXNlLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWdfbmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0YWdfbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4gSXQgY2FuIHJlZmVyIHRvIGFuIGV4aXN0aW5nIEdpdCB0YWcgb3IgY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlci5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGFnX21lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJNZXNzYWdlIHRvIHVzZSBpZiBjcmVhdGluZyBhIG5ldyBhbm5vdGF0ZWQgdGFnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgUmVsZWFzZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBSZWxlYXNlIG5hbWUuIElmIG9taXR0ZWQsIGl0IGlzIHBvcHVsYXRlZCB3aXRoIHRoZSB2YWx1ZSBvZiByZWxlYXNlOiB0YWdfbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklmIHRoZSByZWxlYXNlOiB0YWdfbmFtZSBkb2VzbuKAmXQgZXhpc3QgeWV0LCB0aGUgcmVsZWFzZSBpcyBjcmVhdGVkIGZyb20gcmVmLiByZWYgY2FuIGJlIGEgY29tbWl0IFNIQSwgYW5vdGhlciB0YWcgbmFtZSwgb3IgYSBicmFuY2ggbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbGVzdG9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0aXRsZSBvZiBlYWNoIG1pbGVzdG9uZSB0aGUgcmVsZWFzZSBpcyBhc3NvY2lhdGVkIHdpdGguXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWxlYXNlZF9hdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHJlbGVhc2UgaXMgcmVhZHkuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaWYgbm90IGRlZmluZWQuIFNob3VsZCBiZSBlbmNsb3NlZCBpbiBxdW90ZXMgYW5kIGV4cHJlc3NlZCBpbiBJU08gODYwMSBmb3JtYXQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJkYXRlLXRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFzc2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxpbmtzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5jbHVkZSBhc3NldCBsaW5rcyBpbiB0aGUgcmVsZWFzZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBsaW5rLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCB0byBkb3dubG9hZCBhIGZpbGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVwYXRoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSByZWRpcmVjdCBsaW5rIHRvIHRoZSB1cmwuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibGlua190eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJydW5ib29rXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYWNrYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbWFnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3RoZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsaW5rc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGFnX25hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk11c3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24sIG9wdGlvbmFsbHkgYnV0IHJlY29tbWVuZGVkIHRvIGJlIHF1b3RlZCwgYW5kIG11c3QgYmUgc3Vycm91bmRlZCB3aXRoICcvJy4gRXhhbXBsZTogJy9Db2RlIGNvdmVyYWdlOiBcXFxcZCtcXFxcLlxcXFxkKy8nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwicmVnZXhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmV0cnlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3JldHJ5XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbGxlbFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlX2dyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJMaW1pdCBqb2IgY29uY3VycmVuY3kuIENhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBSdW5uZXIgd2lsbCBub3QgcnVuIGNlcnRhaW4gam9icyBzaW11bHRhbmVvdXNseS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidHJpZ2dlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlRyaWdnZXIgYWxsb3dzIHlvdSB0byBkZWZpbmUgZG93bnN0cmVhbSBwaXBlbGluZSB0cmlnZ2VyLiBXaGVuIGEgam9iIGNyZWF0ZWQgZnJvbSB0cmlnZ2VyIGRlZmluaXRpb24gaXMgc3RhcnRlZCBieSBHaXRMYWIsIGEgZG93bnN0cmVhbSBwaXBlbGluZSBnZXRzIGNyZWF0ZWQuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN0cmlnZ2VyKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVHJpZ2dlciBhIG11bHRpLXByb2plY3QgcGlwZWxpbmUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9waXBlbGluZXMvZG93bnN0cmVhbV9waXBlbGluZXMvI211bHRpLXByb2plY3QtcGlwZWxpbmVzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJicmFuY2hcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBicmFuY2ggbmFtZSB0aGF0IGEgZG93bnN0cmVhbSBwaXBlbGluZSB3aWxsIHVzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gbWlycm9yIG9yIGRlcGVuZCBvbiB0aGUgcGlwZWxpbmUgc3RhdHVzIGZyb20gdGhlIHRyaWdnZXJlZCBwaXBlbGluZSB0byB0aGUgc291cmNlIGJyaWRnZSBqb2IgYnkgdXNpbmcgc3RyYXRlZ3k6IGBkZXBlbmRgIG9yIGBtaXJyb3JgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXBlbmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3J3YXJkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZ5IHdoYXQgdG8gZm9yd2FyZCB0byB0aGUgZG93bnN0cmVhbSBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ5YW1sX3ZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSB0cmlnZ2VyIGpvYiBhcmUgcGFzc2VkIHRvIGRvd25zdHJlYW0gcGlwZWxpbmVzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGlwZWxpbmVfdmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVmFyaWFibGVzIGFkZGVkIGZvciBtYW51YWwgcGlwZWxpbmUgcnVucyBhbmQgc2NoZWR1bGVkIHBpcGVsaW5lcyBhcmUgcGFzc2VkIHRvIGRvd25zdHJlYW0gcGlwZWxpbmVzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJhbmNoXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUcmlnZ2VyIGEgY2hpbGQgcGlwZWxpbmUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9waXBlbGluZXMvZG93bnN0cmVhbV9waXBlbGluZXMvI3BhcmVudC1jaGlsZC1waXBlbGluZXMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbmNsdWRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGxvY2FsIFlBTUwgZmlsZSB0byBkZWZpbmUgdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlZmVyZW5jZXMgYSBsb2NhbCBmaWxlIG9yIGFuIGFydGlmYWN0IGZyb20gYW5vdGhlciBqb2IgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBsb2NhbCBZQU1MIGZpbGUgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk5hbWUgb2YgdGhlIHRlbXBsYXRlIFlBTUwgZmlsZSB0byB1c2UgaW4gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW5wdXRzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFydGlmYWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aCB0byB0aGUgZ2VuZXJhdGVkIFlBTUwgZmlsZSB3aGljaCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3RzIGFuZCB1c2VkIGFzIHRoZSBjb25maWd1cmF0aW9uIGZvciB0cmlnZ2VyaW5nIHRoZSBjaGlsZCBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkpvYiBuYW1lIHdoaWNoIGdlbmVyYXRlcyB0aGUgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGFub3RoZXIgcHJpdmF0ZSBwcm9qZWN0IHVuZGVyIHRoZSBzYW1lIEdpdExhYiBpbnN0YW5jZSwgbGlrZSBgZ3JvdXAvcHJvamVjdGAgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkJyYW5jaC9UYWcvQ29tbWl0IGhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlbGF0aXZlIHBhdGggZnJvbSByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24gWUFNTCBmaWxlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29tcG9uZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTG9jYWwgcGF0aCB0byBjb21wb25lbnQgZGlyZWN0b3J5IG9yIGZ1bGwgcGF0aCB0byBleHRlcm5hbCBjb21wb25lbnQgZGlyZWN0b3J5LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbXBvbmVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVtb3RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVVJMIHRvIGEgYHlhbWxgL2B5bWxgIHRlbXBsYXRlIGZpbGUgdXNpbmcgSFRUUC9IVFRQUy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZW1vdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJhdGVneVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiWW91IGNhbiBtaXJyb3Igb3IgZGVwZW5kIG9uIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYiBieSB1c2luZyBzdHJhdGVneTogYGRlcGVuZGAgb3IgYG1pcnJvcmBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGVuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWlycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcndhcmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNwZWNpZnkgd2hhdCB0byBmb3J3YXJkIHRvIHRoZSBkb3duc3RyZWFtIHBpcGVsaW5lLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInlhbWxfdmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIHRyaWdnZXIgam9iIGFyZSBwYXNzZWQgdG8gZG93bnN0cmVhbSBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZV92YXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJWYXJpYWJsZXMgYWRkZWQgZm9yIG1hbnVhbCBwaXBlbGluZSBydW5zIGFuZCBzY2hlZHVsZWQgcGlwZWxpbmVzIGFyZSBwYXNzZWQgdG8gZG93bnN0cmVhbSBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIHRoZSBwcm9qZWN0LCBlLmcuIGBncm91cC9wcm9qZWN0YCwgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3RyaWdnZXIpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaW5oZXJpdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb250cm9scyBpbmhlcml0YW5jZSBvZiBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIGFuZCB2YXJpYWJsZXMuIEJvb2xlYW4gdmFsdWVzIGNvbnRyb2wgaW5oZXJpdGFuY2Ugb2YgYWxsIGRlZmF1bHQ6IG9yIHZhcmlhYmxlczoga2V5d29yZHMuIFRvIGluaGVyaXQgb25seSBhIHN1YnNldCBvZiBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLCBzcGVjaWZ5IHdoYXQgeW91IHdpc2ggdG8gaW5oZXJpdC4gQW55dGhpbmcgbm90IGxpc3RlZCBpcyBub3QgaW5oZXJpdGVkLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW5oZXJpdCkuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIldoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgZGVmYXVsdHMuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbmhlcml0ZGVmYXVsdCkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhY2hlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmV0cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzZXJ2aWNlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRhZ3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0byBpbmhlcml0IGFsbCBnbG9iYWxseS1kZWZpbmVkIHZhcmlhYmxlcyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgdmFyaWFibGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW5oZXJpdHZhcmlhYmxlcykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHVibGlzaFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXByZWNhdGVkLiBVc2UgYHBhZ2VzLnB1Ymxpc2hgIGluc3RlYWQuIEEgcGF0aCB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBmaWxlcyB0byBiZSBwdWJsaXNoZWQgd2l0aCBQYWdlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhdGhfcHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVGhlIEdpdExhYiBQYWdlcyBVUkwgcGF0aCBwcmVmaXggdXNlZCBpbiB0aGlzIHZlcnNpb24gb2YgcGFnZXMuIFRoZSBnaXZlbiB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlLCBzaG9ydGVuZWQgdG8gNjMgYnl0ZXMsIGFuZCBldmVyeXRoaW5nIGV4Y2VwdCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBpcyByZXBsYWNlZCB3aXRoIGEgaHlwaGVuLiBMZWFkaW5nIGFuZCB0cmFpbGluZyBoeXBoZW5zIGFyZSBub3QgcGVybWl0dGVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4cGlyZV9pblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkhvdyBsb25nIHRoZSBkZXBsb3ltZW50IHNob3VsZCBiZSBhY3RpdmUuIERlcGxveW1lbnRzIHRoYXQgaGF2ZSBleHBpcmVkIGFyZSBubyBsb25nZXIgYXZhaWxhYmxlIG9uIHRoZSB3ZWIuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiBTZXQgdG8gJ25ldmVyJyB0byBwcmV2ZW50IGV4dHJhIGRlcGxveW1lbnRzIGZyb20gZXhwaXJpbmcuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNwYWdlc2V4cGlyZV9pbikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVibGlzaFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgcGF0aCB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBmaWxlcyB0byBiZSBwdWJsaXNoZWQgd2l0aCBQYWdlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0aGlzIGpvYiBzaG91bGQgdHJpZ2dlciBhIFBhZ2VzIGRlcGxveSAoUmVwbGFjZXMgdGhlIG5lZWQgdG8gbmFtZSB0aGUgam9iIGBwYWdlc2ApXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwid2hlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWxheWVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ3aGVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0YXJ0X2luXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibm90XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVsYXllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gc2VsZWN0IHJ1bm5lcnMgZnJvbSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgcnVubmVycy4gQSBydW5uZXIgbXVzdCBoYXZlIGFsbCB0YWdzIGxpc3RlZCBoZXJlIHRvIHJ1biB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdGFncykuXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImhvb2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIGxpc3RzIG9mIGNvbW1hbmRzIHRvIGV4ZWN1dGUgb24gdGhlIHJ1bm5lciBhdCBjZXJ0YWluIHN0YWdlcyBvZiBqb2IgZXhlY3V0aW9uLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaG9va3MpLlwiLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInByZV9nZXRfc291cmNlc19zY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wdGlvbmFsX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgYSBsaXN0IG9mIGNvbW1hbmRzIHRvIGV4ZWN1dGUgb24gdGhlIHJ1bm5lciBiZWZvcmUgdXBkYXRpbmcgdGhlIEdpdCByZXBvc2l0b3J5IGFuZCBhbnkgc3VibW9kdWxlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2hvb2tzcHJlX2dldF9zb3VyY2VzX3NjcmlwdCkuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBcIjoge1xuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFueSBvZiB0aGVzZSBzdGVwIHVzZSBjYXNlcyBhcmUgdmFsaWQuXCIsXG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSdW4gYSByZWZlcmVuY2VkIHN0ZXAuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVudlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwTmFtZWRTdHJpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkVmFsdWVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcEdpdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBPY2lSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJ1biBhIHNlcXVlbmNlIG9mIHN0ZXBzLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJ1blwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwTmFtZWRTdHJpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lZFZhbHVlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlbGVnYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUnVuIGFuIGFjdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lZFZhbHVlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJ1biBhIHNjcmlwdC5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NyaXB0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4ZWMgYSBiaW5hcnkuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhlY1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhlY1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4ZWMgaXMgYSBjb21tYW5kIHRvIHJ1bi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBFeGVjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBOYW1lZFN0cmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aX11bYS16QS1aMC05X10qJFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwTmFtZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aX11bYS16QS1aMC05X10qJFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwR2l0UmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkdpdFJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSB0byBhIHN0ZXAgaW4gYSBHaXQgcmVwb3NpdG9yeS5cIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImdpdFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJnaXRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInVybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXZcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBPY2lSZWZlcmVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT0NJUmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIHRvIGEgc3RlcCBob3N0ZWQgaW4gYW4gT0NJIHJlcG9zaXRvcnkuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJvY2lcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwib2NpXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpc3RyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRhZ1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpc3RyeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSA8aG9zdD5bOjxwb3J0Pl0gb2YgdGhlIGNvbnRhaW5lciByZWdpc3RyeSBzZXJ2ZXIuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleGFtcGxlc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVnaXN0cnkuZ2l0bGFiLmNvbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBwYXRoIHdpdGhpbiB0aGUgcmVnaXN0cnkgY29udGFpbmluZyByZWxhdGVkIE9DSSBpbWFnZXMuIFR5cGljYWxseSB0aGUgbmFtZXNwYWNlLCBwcm9qZWN0LCBhbmQgaW1hZ2UgbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJteV9ncm91cC9teV9wcm9qZWN0L2ltYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRhZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgcG9pbnRlciB0byB0aGUgaW1hZ2UgbWFuaWZlc3QgaG9zdGVkIGluIHRoZSBPQ0kgcmVwb3NpdG9yeS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsYXRlc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMS41XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMS41LjBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBkaXJlY3RvcnkgaW5zaWRlIHRoZSBPQ0kgaW1hZ2Ugd2hlcmUgdGhlIHN0ZXAgY2FuIGJlIGZvdW5kLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhhbXBsZXNcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIi9teV9zdGVwcy9oZWxsb193b3JsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBzdGVwLCBkZWZhdWx0cyB0byBzdGVwLnltbC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwLnltbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBFeGVjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiY29tbWFuZFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgYXJlIHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBzeXN0ZW0gZXhlYyBBUEkuIEl0IGRvZXMgbm90IGludm9rZSBhIHNoZWxsLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIndvcmtfZGlyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXb3JrRGlyIGlzIHRoZSB3b3JraW5nIGRpcmVjdGx5IGluIHdoaWNoIGBjb21tYW5kYCB3aWxsIGJlIGV4ZWMnZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=
|