@cubist-labs/cubesigner-sdk 0.4.204 → 0.4.205
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/dist/package.json +1 -1
- package/dist/src/scopes.d.ts.map +1 -1
- package/dist/src/scopes.js +13 -3
- package/package.json +1 -1
- package/src/scopes.ts +14 -2
package/dist/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/sdk"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.205",
|
|
9
9
|
"description": "CubeSigner TypeScript SDK",
|
|
10
10
|
"license": "MIT OR Apache-2.0",
|
|
11
11
|
"author": "Cubist, Inc.",
|
package/dist/src/scopes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,GAAG,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,mDAAmD;AACnD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAqLnD,CAAC;
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,GAAG,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,mDAAmD;AACnD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAqLnD,CAAC;AAyFF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAA4C,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eApTsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;;;;CA+UtD,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;eArVsB,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;;eAA3B,MAAM;gBAAU,SAAS,EAAE;;CAyVjF,CAAC"}
|
package/dist/src/scopes.js
CHANGED
|
@@ -196,18 +196,28 @@ const CATEGORY_LABELS = {
|
|
|
196
196
|
/**
|
|
197
197
|
* Finds the parent scope for a given scope.
|
|
198
198
|
* A parent is a scope ending with '*' that is a prefix of the current scope.
|
|
199
|
+
* Returns the longest matching parent (closest ancestor), excluding the scope itself.
|
|
199
200
|
*
|
|
200
201
|
* @param scope The scope to find the parent for.
|
|
201
202
|
* @param allScopes The list of all scopes.
|
|
202
203
|
* @returns The parent scope or null if no parent is found.
|
|
203
204
|
*/
|
|
204
205
|
function findParent(scope, allScopes) {
|
|
206
|
+
let parent = null;
|
|
207
|
+
let maxLength = 0;
|
|
205
208
|
for (const candidate of allScopes) {
|
|
209
|
+
// Skip the scope itself
|
|
210
|
+
if (candidate === scope)
|
|
211
|
+
continue;
|
|
206
212
|
if (candidate.endsWith("*") && scope.startsWith(candidate.slice(0, -1))) {
|
|
207
|
-
|
|
213
|
+
// Prefer the longest matching parent (closest ancestor)
|
|
214
|
+
if (candidate.length > maxLength) {
|
|
215
|
+
parent = candidate;
|
|
216
|
+
maxLength = candidate.length;
|
|
217
|
+
}
|
|
208
218
|
}
|
|
209
219
|
}
|
|
210
|
-
return
|
|
220
|
+
return parent;
|
|
211
221
|
}
|
|
212
222
|
/**
|
|
213
223
|
* Computes the scopes dictionary from AllScopes.
|
|
@@ -319,4 +329,4 @@ exports.userScopesDictionary = {
|
|
|
319
329
|
sign: exports.allScopesDictionary.sign,
|
|
320
330
|
mmi: exports.allScopesDictionary.mmi,
|
|
321
331
|
};
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Njb3Blcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDOzs7QUFZaEMsbURBQW1EO0FBQ3RDLFFBQUEsU0FBUztBQUNwQixrQkFBa0I7QUFDbEI7SUFDQSxRQUFRLEVBQXdDLHVHQUF1RztJQUN2SixVQUFVLEVBQXNDLDBDQUEwQztJQUMxRixXQUFXLEVBQXFDLDJDQUEyQztJQUMzRixvQkFBb0IsRUFBNEIsd0pBQXdKO0lBQ3hNLFlBQVksRUFBb0Msb0NBQW9DO0lBQ3BGLGlCQUFpQixFQUErQiwrREFBK0Q7SUFDL0csa0JBQWtCLEVBQThCLGdFQUFnRTtJQUNoSCxpQkFBaUIsRUFBK0IsNkRBQTZEO0lBQzdHLG9CQUFvQixFQUE0QiwwREFBMEQ7SUFDMUcsc0JBQXNCLEVBQTBCLDREQUE0RDtJQUM1RyxzQkFBc0IsRUFBMEIsNERBQTREO0lBQzVHLHVCQUF1QixFQUF5Qiw2REFBNkQ7SUFDN0cseUJBQXlCLEVBQXVCLHFFQUFxRTtJQUNySCxvQkFBb0IsRUFBNEIsb0VBQW9FO0lBQ3BILHlCQUF5QixFQUF1QixtRUFBbUU7SUFDbkgseUJBQXlCLEVBQXVCLG1FQUFtRTtJQUNuSCxnQkFBZ0IsRUFBZ0Msd0NBQXdDO0lBQ3hGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0YsMEJBQTBCLEVBQXNCLHFEQUFxRDtJQUNyRyx3QkFBd0IsRUFBd0IsNENBQTRDO0lBQzVGLHdCQUF3QixFQUF3QiwwRUFBMEU7SUFDMUgsOEJBQThCLEVBQWtCLDREQUE0RDtJQUM1Ryw2QkFBNkIsRUFBbUIsNkRBQTZEO0lBQzdHLCtCQUErQixFQUFpQiwrREFBK0Q7SUFDL0csNEJBQTRCLEVBQW9CLDJFQUEyRTtJQUMzSCwyQkFBMkIsRUFBcUIsZ0VBQWdFO0lBQ2hILHVCQUF1QixFQUF5QixvRUFBb0U7SUFDcEgsWUFBWSxFQUFvQywyQ0FBMkM7SUFDM0YsYUFBYSxFQUFt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R0FBRztJQUNsQyxNQUFNLEVBQUUsMkJBQW1CLENBQUMsTUFBTTtJQUNsQyxJQUFJLEVBQUUsMkJBQW1CLENBQUMsSUFBSTtJQUM5QixHQUFHLEVBQUUsMkJBQW1CLENBQUMsR0FBRztDQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgc3BhY2VkLWNvbW1lbnRcblxuaW1wb3J0IHsgdHlwZSBFeHBsaWNpdFNjb3BlIH0gZnJvbSBcIi5cIjtcblxuZXhwb3J0IHR5cGUgU2NvcGVzRGljdGlvbmFyeSA9IFJlY29yZDxzdHJpbmcsIHsgbGFiZWw6IHN0cmluZzsgc2NvcGVzOiBTY29wZUl0ZW1bXSB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBTY29wZUl0ZW0ge1xuICB2YWx1ZTogRXhwbGljaXRTY29wZTtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY2hpbGRyZW4/OiBTY29wZUl0ZW1bXTtcbn1cblxuLyoqIE1hcHBpbmcgZnJvbSBzY29wZSBuYW1lIHRvIHNjb3BlIGRlc2NyaXB0aW9uICovXG5leHBvcnQgY29uc3QgQWxsU2NvcGVzOiBSZWNvcmQ8RXhwbGljaXRTY29wZSwgc3RyaW5nPiA9XG4gIC8vIHByZXR0aWVyLWlnbm9yZVxuICB7XG4gIFwic2lnbjoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzaWduZXIgZW5kcG9pbnRzIChlLmcuLCBzaWduIGJsb2IsIHNpZ24gYml0Y29pbi9hdmFsYW5jaGUvZXZtIHRyYW5zYWN0aW9uLCBldGMuKVwiLFxuICBcInNpZ246YXZhXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnYXZhJyBlbmRwb2ludFwiLFxuICBcInNpZ246YmxvYlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnYmxvYicgZW5kcG9pbnRcIixcbiAgXCJzaWduOmRpZmZpZUhlbGxtYW5cIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIERpZmZpZS1IZWxsbWFuIGVuZHBvaW50LiBUaGlzIGlzIG5vdCByZWFsbHkgc2lnbmluZywgYnV0IHdlIHB1dCBpdCB1bmRlciB0aGUgYHNpZ25gIGhpZXJhcmNoeSBiZWNhdXNlIGl0IGlzIGNvbmNlcHR1YWxseSBzaW1pbGFyLlwiLFxuICBcInNpZ246YnRjOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgQlRDIGVuZHBvaW50c1wiLFxuICBcInNpZ246YnRjOnNlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3Igc2Vnd2l0IHRyYW5zYWN0aW9uc1wiLFxuICBcInNpZ246YnRjOnRhcHJvb3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgdGFwcm9vdCB0cmFuc2FjdGlvbnNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgYW55IGtleSB0eXBlXCIsXG4gIFwic2lnbjpidGM6cHNidDpkb2dlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIERvZ2Uga2V5c1wiLFxuICBcInNpZ246YnRjOnBzYnQ6bGVnYWN5XCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBsZWdhY3kga2V5c1wiLFxuICBcInNpZ246YnRjOnBzYnQ6c2Vnd2l0XCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBzZWd3aXQga2V5c1wiLFxuICBcInNpZ246YnRjOnBzYnQ6dGFwcm9vdFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciB0YXByb290IGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0Omx0Y1NlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgTGl0ZWNvaW4gc2Vnd2l0IGtleXNcIixcbiAgXCJzaWduOmJ0YzptZXNzYWdlOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEJUQyBtZXNzYWdlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGFueSBrZXkgdHlwZVwiLFxuICBcInNpZ246YnRjOm1lc3NhZ2U6c2Vnd2l0XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgQlRDIG1lc3NhZ2Ugc2lnbmluZyBlbmRwb2ludCBmb3Igc2Vnd2l0IGtleXNcIixcbiAgXCJzaWduOmJ0YzptZXNzYWdlOmxlZ2FjeVwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEJUQyBtZXNzYWdlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGxlZ2FjeSBrZXlzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBCYWJ5bG9uIGVuZHBvaW50c1wiLFxuICBcInNpZ246YmFieWxvbjplb3RzOipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgQmFieWxvbiBFT1RTIGVuZHBvaW50c1wiLFxuICBcInNpZ246YmFieWxvbjplb3RzOm5vbmNlc1wiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgRU9UUyBub25jZSBnZW5lcmF0aW9uIGVuZHBvaW50XCIsXG4gIFwic2lnbjpiYWJ5bG9uOmVvdHM6c2lnblwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBFT1RTIHNpZ25pbmcgZW5kcG9pbnRcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzoqXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGFsbCBCYWJ5bG9uIHN0YWtpbmcgb3BlcmF0aW9uc1wiLFxuICBcInNpZ246YmFieWxvbjpzdGFraW5nOmRlcG9zaXRcIiAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiBkZXBvc2l0c1wiLFxuICBcInNpZ246YmFieWxvbjpzdGFraW5nOnVuYm9uZFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiB1bmJvbmRpbmdcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzp3aXRoZHJhd1wiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gd2l0aGRyYXdhbHNcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzpzbGFzaFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gc2xhc2hpbmcgcHJlLXNpZ25hdHVyZXNcIixcbiAgXCJzaWduOmJhYnlsb246cmVnaXN0cmF0aW9uXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gcmVnaXN0cmF0aW9uXCIsXG4gIFwic2lnbjpiYWJ5bG9uOmNvdmVuYW50XCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIGNvdmVuYW50IHNpZ25pbmdcIixcbiAgXCJzaWduOmV2bToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHNpZ24gJ2V2bScgZW5kcG9pbnRzXCIsXG4gIFwic2lnbjpldm06dHhcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBldm0gdHJhbnNhY3Rpb25zXCIsXG4gIFwic2lnbjpldm06ZWlwMTkxXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBFSVAtMTkxIHBlcnNvbmFsX21lc3NhZ2UgZGF0YVwiLFxuICBcInNpZ246ZXZtOmVpcDcxMlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBFSVAtNzEyIHR5cGVkIGRhdGFcIixcbiAgXCJzaWduOmV0aDI6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHNpZ24gJ2V0aDInIGVuZHBvaW50c1wiLFxuICBcInNpZ246ZXRoMjp2YWxpZGF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiBldGgyICd2YWxpZGF0ZScgZW5kcG9pbnRcIixcbiAgXCJzaWduOmV0aDI6c3Rha2VcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gZXRoMiAnc3Rha2UnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpldGgyOnVuc3Rha2VcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduIGV0aDIgJ3Vuc3Rha2UnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpzb2xhbmFcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICdzb2xhbmEnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpzdWlcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICdzdWknIGVuZHBvaW50XCIsXG4gIFwic2lnbjp0ZW5kZXJtaW50XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduICd0ZW5kZXJtaW50JyBlbmRwb2ludFwiLFxuICBcInNpZ246bW1pXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnbW1pJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgbWFuYWdlbWVudCBlbmRwb2ludHMgKGUuZy4sIGNyZWF0ZSByb2xlLCBjcmVhdGUga2V5LCBhZGQga2V5IHRvIHJvbGUsIGV0Yy4pXCIsXG4gIFwibWFuYWdlOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBtYW5hZ2VtZW50IHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTplbWFpbFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBlbWFpbCBtYW5hZ2VtZW50IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTptZmE6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIE1GQSBlbmRwb2ludHMgKGUuZy4sIGdldC9hcHByb3ZlIGV4aXN0aW5nIE1GQSByZXF1ZXN0KVwiLFxuICBcIm1hbmFnZTptZmE6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIE1GQSByZWFkb25seSBlbmRwb2ludHMgKGUuZy4sIGdldC9saXN0IGV4aXN0aW5nIE1GQSByZXF1ZXN0KHMpKVwiLFxuICBcIm1hbmFnZTptZmE6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgbGlzdCBlbmRwb2ludCAobGlzdCBleGlzdGluZyBNRkEgcmVxdWVzdHMpXCIsXG4gIFwibWFuYWdlOm1mYTp2b3RlOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBNRkEgdm90ZSBlbmRwb2ludHMgKHZvdGUgdXNpbmcgY3VycmVudCBDdWJlU2lnbmVyIHNlc3Npb24sIFRPVFAsIG9yIEZJRE8pXCIsXG4gIFwibWFuYWdlOm1mYTp2b3RlOmNzXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndm90ZSB3aXRoIEN1YmVTaWduZXInIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp2b3RlOmVtYWlsXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndm90ZSB3aXRoIGVtYWlsJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTpmaWRvXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBUT1RQJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTp0b3RwXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBGSURPJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6KlwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgTUZBIHJlZ2lzdGVyIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6Zmlkb1wiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3JlZ2lzdGVyIFRPVFAnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTpyZWdpc3Rlcjp0b3RwXCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAncmVnaXN0ZXIgRklETycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOmVtYWlsXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdyZWdpc3RlciB2ZXJpZmllZCBlbWFpbCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSB1bnJlZ2lzdGVyIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTptZmE6dW5yZWdpc3RlcjpmaWRvXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ2RlbGV0ZSBUT1RQJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dW5yZWdpc3Rlcjp0b3RwXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ2RlbGV0ZSBGSURPJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dmVyaWZ5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgTUZBIHZlcmlmeSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOnZlcmlmeTp0b3RwXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2ZXJpZnkgVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIGtleSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6a2V5OnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIGtleSByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6a2V5OmF0dGVzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdhdHRlc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6bGlzdFJvbGVzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2xpc3RSb2xlcycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6aGlzdG9yeTp0eDpsaXN0XCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2xpc3RfaGlzdG9yaWNhbF90eCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5OmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byBrZXkgY3JlYXRpb24gZW5kcG9pbnRzIChlLmcuLCAnY3JlYXRlJyBhbmQgJ2Rlcml2ZScpXCIsXG4gIFwibWFuYWdlOmtleTppbXBvcnRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnaW1wb3J0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQsIHdpdGhpbiB3aGljaCBhbGxvd2luZyBhbGwgcG9zc2libGUgdXBkYXRlc1wiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOm93bmVyXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBrZXkgb3duZXIgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTpwb2xpY3lcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUga2V5IHBvbGljeSBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOmVuYWJsZWRcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBrZXkgZW5hYmxlZCBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTprZXk6dXBkYXRlOm1ldGFkYXRhXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ3VwZGF0ZScgZW5kcG9pbnQgYW5kIHJlc3RyaWN0cyB1cGRhdGVzIHRvIHRoZSBrZXkgbWV0YWRhdGEgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50IGFuZCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgJ2VkaXRfcG9saWN5JyBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTprZXk6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2RlbGV0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHBvbGljeSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IGNyZWF0aW9uIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBgZGVsZXRlYCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOipcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIHdpdGhpbiB3aGljaCBhbGxvd2luZyBhbGwgcG9zc2libGUgdXBkYXRlc1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOmFjbFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBwb2xpY3kgQUNMXCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6b3duZXJcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHBvbGljeSBvd25lciBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOm5hbWVcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBwb2xpY3kgbmFtZVwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSAnZWRpdF9wb2xpY3knIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6bWV0YWRhdGFcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlICdtZXRhZGF0YScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpydWxlXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IHJ1bGUgaXRzZWxmXCIsXG4gIFwibWFuYWdlOnBvbGljeTppbnZva2VcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAnaW52b2tlJyBlbmRwb2ludC5cIixcbiAgXCJtYW5hZ2U6cG9saWN5Ondhc206KlwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHdhc20gcG9saWN5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6d2FzbTp1cGxvYWRcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSB3YXNtIHBvbGljeSAndXBsb2FkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czoqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcG9saWN5IHNlY3JldHMgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOmdldFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBzZWNyZXRzICdnZXQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZToqXCIgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBwb2xpY3kgc2VjcmV0cyAndXBkYXRlJyBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOnZhbHVlc1wiICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBzZWNyZXRzIGtleXMgYW5kIHZhbHVlc1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6ZWRpdFBvbGljeVwiICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgc2VjcmV0cyAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIGBlZGl0X3BvbGljeWAgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIGNvbnRhY3QgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6Y3JlYXRlXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBjb250YWN0ICdjcmVhdGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBjb250YWN0IGBnZXRgIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBjb250YWN0IGBsaXN0YCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgZGVsZXRlYCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZToqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOm5hbWVcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICduYW1lJyBmaWVsZC5cIixcbiAgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6YWRkcmVzc2VzXCIgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0cyB1cGRhdGVzIHRvIHRoZSBjb250YWN0J3MgJ2FkZHJlc3NlcycgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOm93bmVyXCIgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdvd25lcicgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOm1ldGFkYXRhXCIgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdtZXRhZGF0YScgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdlZGl0X3BvbGljeScgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6bG9va3VwOipcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBjb250YWN0IGBsb29rdXBgIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDphZGRyZXNzXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICdsb29rdXAgYnkgYWRkcmVzcycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OmNyZWF0ZUltcG9ydEtleVwiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IGtleSBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcm9sZSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cm9sZTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgcmVhZG9ubHkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6Y3JlYXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2NyZWF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAnZGVsZXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdnZXQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6Z2V0OmtleXNcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICdsaXN0IGtleXMnIGFuZCAnZ2V0IGtleScgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6Z2V0OmtleXM6bGlzdFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICdsaXN0IGtleXMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6Z2V0OmtleXM6Z2V0XCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICdnZXQga2V5JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDp1c2Vyc1wiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCB1c2VycycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAnbGlzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTplbmFibGVkXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcm9sZSAnZW5hYmxlZCcgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6cG9saWN5XCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHJvbGUgJ3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6ZWRpdFBvbGljeVwiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHJvbGUgJ2VkaXRfcG9saWN5JyBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6KlwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcm9sZSAndXBkYXRlOmtleScgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleTphZGRcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICd1cGRhdGU6a2V5czphZGQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOmtleTpyZW1vdmVcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICd1cGRhdGU6a2V5czpyZW1vdmUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnVzZXI6KlwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCByb2xlICd1cGRhdGU6dXNlcicgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnVzZXI6YWRkXCIgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICd1cGRhdGU6dXNlcjphZGQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnVzZXI6cmVtb3ZlXCIgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSByb2xlICd1cGRhdGU6dXNlcjpyZW1vdmUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6aGlzdG9yeTp0eDpsaXN0XCIgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2xpc3RfaGlzdG9yaWNhbF90eCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIGlkZW50aXR5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTppZGVudGl0eTp2ZXJpZnlcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBpZGVudGl0eSAndmVyaWZ5JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTppZGVudGl0eTphZGRcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBpZGVudGl0eSAnYWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTppZGVudGl0eTpyZW1vdmVcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBpZGVudGl0eSAncmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTppZGVudGl0eTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBpZGVudGl0eSAnbGlzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6b3JnOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIG9yZyBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6b3JnOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIG9yZyAnY3JlYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpvcmc6bWV0cmljczpxdWVyeVwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byByZXRyaWV2aW5nIG9yZyBtZXRyaWNzXCIsXG4gIFwibWFuYWdlOm9yZzpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBvcmcgcmVhZG9ubHkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm9yZzphZGRVc2VyXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgYWRkaW5nIGFuIE9JREMgdXNlciB0byB0aGUgb3JnXCIsXG4gIFwibWFuYWdlOm9yZzppbnZpdGVVc2VyXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgaW52aXRpbmcgYSBuZXcgbWVtYmVyIG9yIG9yZyBvd25lciB0byB0aGUgb3JnXCIsXG4gIFwibWFuYWdlOm9yZzppbnZpdGVBbGllblwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgaW52aXRpbmcgYSBuZXcgYWxpZW4gdXNlciB0byB0aGUgb3JnXCIsXG4gIFwibWFuYWdlOm9yZzp1cGRhdGVNZW1iZXJzaGlwXCIgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgdXBkYXRpbmcgZXhpc3RpbmcgdXNlcidzIG9yZyBtZW1iZXJzaGlwXCIsXG4gIFwibWFuYWdlOm9yZzpsaXN0VXNlcnNcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgbGlzdGluZyBhbGwgb3JnIHVzZXJzIChtZW1iZXJzKVwiLFxuICBcIm1hbmFnZTpvcmc6dXNlcjpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnRzIGZvciBnZXR0aW5nIHVzZXJzIGJ5IGlkIG9yIGVtYWlsXCIsXG4gIFwibWFuYWdlOm9yZzpkZWxldGVVc2VyXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIG9yZyBlbmRwb2ludCBmb3IgZGVsZXRpbmcgYW4gT0lEQyB1c2VyXCIsXG4gIFwibWFuYWdlOm9yZzpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHJldHJpZXZpbmcgb3JnYW5pemF0aW9uIGluZm9ybWF0aW9uXCIsXG4gIFwibWFuYWdlOm9yZzp1c2VyOnJlc2V0TWZhXCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYW4gb3duZXIgdG8gaW5pdGlhdGUgYW4gTUZBIHJlc2V0IGZvciBhIHVzZXJcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHNlc3Npb24gZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnNlc3Npb246cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzZXNzaW9uIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdnZXQnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnNlc3Npb246bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHNlc3Npb24gJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnNlc3Npb246Y3JlYXRlXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHNlc3Npb24gJ2NyZWF0ZScgZW5kcG9pbnQsIGJ1dCB3aXRob3V0IHRoZSBhYmlsaXR5IHRvIGV4dGVuZCBzZXNzaW9uIGxpZmV0aW1lc1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmV4dGVuZFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdjcmVhdGUnIGVuZHBvaW50LCBpbmNsdWRpbmcgdGhlIGFiaWxpdHkgdG8gZXh0ZW5kIHNlc3Npb24gbGlmZXRpbWVzXCIsXG4gIFwibWFuYWdlOnNlc3Npb246cmV2b2tlXCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHNlc3Npb24gJ3Jldm9rZScgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmV4cG9ydDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBleHBvcnQgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmV4cG9ydDpvcmc6KlwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBvcmctZXhwb3J0IG1hbmFnZW1lbnQgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmV4cG9ydDpvcmc6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBvcmctZXhwb3J0IGRvd25sb2FkIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmV4cG9ydDp1c2VyOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCB1c2VyLWV4cG9ydCBtYW5hZ2VtZW50IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6dXNlcjpkZWxldGVcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGRlbGV0aW5nIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcIixcbiAgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBsaXN0aW5nIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RzXCIsXG4gIFwibWFuYWdlOmF1dGhNaWdyYXRpb246KlwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWxsIGF1dGggbWlncmF0aW9uIHNjb3Blc1wiLFxuICBcIm1hbmFnZTphdXRoTWlncmF0aW9uOmlkZW50aXR5OmFkZFwiICAgICAgICAgICA6IFwiQWxsb3dzIGFkZGluZyBpZGVudGl0aWVzIHRvIGV4aXN0aW5nIHVzZXJzIGR1cmluZyBhbiBhdXRoIG1pZ3JhdGlvblwiLFxuICBcIm1hbmFnZTphdXRoTWlncmF0aW9uOmlkZW50aXR5OnJlbW92ZVwiICAgICAgICA6IFwiQWxsb3dzIHJlbW92aW5nIGlkZW50aXRpZXMgZnJvbSBleGlzdGluZyB1c2VycyBkdXJpbmcgYW4gYXV0aCBtaWdyYXRpb25cIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjp1c2VyOnVwZGF0ZVwiICAgICAgICAgICAgOiBcIkFsbG93cyB1cGRhdGluZyBleGlzdGluZyB1c2VycycgcHJvZmlsZXNcIixcbiAgXCJtYW5hZ2U6bW1pOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhbGwgQ1JVRCBvcGVyYXRpb25zIG9uIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwibWFuYWdlOm1taTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWxsIHJlYWRvbmx5IG9wZXJhdGlvbnMgb24gTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyByZXRyaWV2aW5nIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwibWFuYWdlOm1taTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgbGlzdGluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6cmVqZWN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIHJlamVjdGluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGRlbGV0aW5nIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwiZXhwb3J0OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBleHBvcnQgZW5kcG9pbnRzXCIsXG4gIFwiZXhwb3J0OnVzZXI6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCB1c2VyLWV4cG9ydCBleGVjdXRpb24gZW5kcG9pbnRzXCIsXG4gIFwiZXhwb3J0OnVzZXI6aW5pdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgaW5pdGlhdGluZyBhIG5ldyB1c2VyLWV4cG9ydCByZXF1ZXN0XCIsXG4gIFwiZXhwb3J0OnVzZXI6Y29tcGxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgY29tcGxldGluZyBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XCIsXG4gIFwibW1pOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgY2FsbHMgdG8gdGhlIE1NSSBlbmRwb2ludFwiLFxuICBcIm9yZ0FjY2VzczoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBjZXJ0YWluIG9yZ3Mgb3RoZXIgdGhhbiB0aGUgY3VycmVudCBzZXNzaW9uJ3NcIixcbiAgXCJvcmdBY2Nlc3M6Y2hpbGQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhIHNlc3Npb24gdG8gYmUgdXNlZCBmb3IgYWNjZXNzIHRvIG9yZ3MgdHJhbnNpdGl2ZWx5IHBhcmVudGVkIGJ5IHRoZSBzZXNzaW9uJ3Mgb3JnLlwiLFxufTtcblxuLy8gQ29uc3QgZm9yIHNjb3BlIGNhdGVnb3J5IGxhYmVsc1xuY29uc3QgQ0FURUdPUllfTEFCRUxTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBzaWduOiBcIlNpZ25cIixcbiAgbWFuYWdlOiBcIk1hbmFnZVwiLFxuICBleHBvcnQ6IFwiRXhwb3J0XCIsXG4gIG1taTogXCJNTUlcIixcbiAgb3JnQWNjZXNzOiBcIk9yZyBBY2Nlc3NcIixcbn07XG5cbi8qKlxuICogRmluZHMgdGhlIHBhcmVudCBzY29wZSBmb3IgYSBnaXZlbiBzY29wZS5cbiAqIEEgcGFyZW50IGlzIGEgc2NvcGUgZW5kaW5nIHdpdGggJyonIHRoYXQgaXMgYSBwcmVmaXggb2YgdGhlIGN1cnJlbnQgc2NvcGUuXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSB0byBmaW5kIHRoZSBwYXJlbnQgZm9yLlxuICogQHBhcmFtIGFsbFNjb3BlcyBUaGUgbGlzdCBvZiBhbGwgc2NvcGVzLlxuICogQHJldHVybnMgVGhlIHBhcmVudCBzY29wZSBvciBudWxsIGlmIG5vIHBhcmVudCBpcyBmb3VuZC5cbiAqL1xuZnVuY3Rpb24gZmluZFBhcmVudChzY29wZTogRXhwbGljaXRTY29wZSwgYWxsU2NvcGVzOiBFeHBsaWNpdFNjb3BlW10pOiBFeHBsaWNpdFNjb3BlIHwgbnVsbCB7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGFsbFNjb3Blcykge1xuICAgIGlmIChjYW5kaWRhdGUuZW5kc1dpdGgoXCIqXCIpICYmIHNjb3BlLnN0YXJ0c1dpdGgoY2FuZGlkYXRlLnNsaWNlKDAsIC0xKSkpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBzY29wZXMgZGljdGlvbmFyeSBmcm9tIEFsbFNjb3Blcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgY29tcGxldGUgZGljdGlvbmFyeSBvZiBhbGwgYXZhaWxhYmxlIHNjb3BlcyBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVTY29wZXNEaWN0aW9uYXJ5KCk6IFNjb3Blc0RpY3Rpb25hcnkge1xuICBjb25zdCBhbGxTY29wZXMgPSBPYmplY3Qua2V5cyhBbGxTY29wZXMpIGFzIEV4cGxpY2l0U2NvcGVbXTtcbiAgY29uc3QgaXRlbXMgPSBuZXcgTWFwPEV4cGxpY2l0U2NvcGUsIFNjb3BlSXRlbT4oKTtcbiAgY29uc3QgcmVzdWx0OiBTY29wZXNEaWN0aW9uYXJ5ID0ge307XG5cbiAgLy8gRmlyc3QgcGFzczogY3JlYXRlIGFsbCBpdGVtc1xuICBmb3IgKGNvbnN0IHNjb3BlIG9mIGFsbFNjb3Blcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gc2NvcGUuc3BsaXQoXCI6XCIpWzBdO1xuICAgIGlmICghcmVzdWx0W2NhdGVnb3J5XSkge1xuICAgICAgcmVzdWx0W2NhdGVnb3J5XSA9IHsgbGFiZWw6IENBVEVHT1JZX0xBQkVMU1tjYXRlZ29yeV0gfHwgY2F0ZWdvcnksIHNjb3BlczogW10gfTtcbiAgICB9XG5cbiAgICBpdGVtcy5zZXQoc2NvcGUsIHtcbiAgICAgIHZhbHVlOiBzY29wZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBBbGxTY29wZXNbc2NvcGVdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gU2Vjb25kIHBhc3M6IGJ1aWxkIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzXG4gIGZvciAoY29uc3Qgc2NvcGUgb2YgYWxsU2NvcGVzKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBzY29wZS5zcGxpdChcIjpcIilbMF07XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zLmdldChzY29wZSkhO1xuICAgIGNvbnN0IHBhcmVudFNjb3BlID0gZmluZFBhcmVudChzY29wZSwgYWxsU2NvcGVzKTtcblxuICAgIGlmIChwYXJlbnRTY29wZSAmJiBwYXJlbnRTY29wZSAhPT0gc2NvcGUpIHtcbiAgICAgIGl0ZW1zLmdldChwYXJlbnRTY29wZSkhLmNoaWxkcmVuIS5wdXNoKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbY2F0ZWdvcnldLnNjb3Blcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvcnQgcm9vdHM6IHdpbGRjYXJkcyBmaXJzdFxuICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIE9iamVjdC52YWx1ZXMocmVzdWx0KSkge1xuICAgIGNhdGVnb3J5LnNjb3Blcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZiAoYS52YWx1ZS5lbmRzV2l0aChcIipcIikgJiYgIWIudmFsdWUuZW5kc1dpdGgoXCIqXCIpKSByZXR1cm4gLTE7XG4gICAgICBpZiAoIWEudmFsdWUuZW5kc1dpdGgoXCIqXCIpICYmIGIudmFsdWUuZW5kc1dpdGgoXCIqXCIpKSByZXR1cm4gMTtcbiAgICAgIHJldHVybiBhLnZhbHVlLmxvY2FsZUNvbXBhcmUoYi52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbXBsZXRlIGRpY3Rpb25hcnkgb2YgYWxsIGF2YWlsYWJsZSBzY29wZXMgb3JnYW5pemVkIGJ5IGNhdGVnb3J5LlxuICpcbiAqIFRoaXMgZGljdGlvbmFyeSBpcyBhdXRvbWF0aWNhbGx5IGNvbXB1dGVkIGZyb20ge0BsaW5rIEFsbFNjb3Blc30gYnkgaW5mZXJyaW5nXG4gKiB0aGUgaGllcmFyY2h5IGZyb20gc2NvcGUgbmFtZXMuIEEgc2NvcGUncyBwYXJlbnQgaXMgZGV0ZXJtaW5lZCBieSBmaW5kaW5nIGFcbiAqIHNjb3BlIGVuZGluZyB3aXRoICcqJyB0aGF0IGlzIGEgcHJlZml4IG9mIHRoZSBjdXJyZW50IHNjb3BlLlxuICpcbiAqIFRoZSBkaWN0aW9uYXJ5IGlzIG9yZ2FuaXplZCBpbnRvIHRoZSBmb2xsb3dpbmcgY2F0ZWdvcmllczpcbiAqIC0gYHNpZ25gOiBTY29wZXMgZm9yIHNpZ25pbmcgb3BlcmF0aW9ucyAoYmxvYiwgdHJhbnNhY3Rpb25zLCBldGMuKVxuICogLSBgbWFuYWdlYDogU2NvcGVzIGZvciBtYW5hZ2VtZW50IG9wZXJhdGlvbnMgKGtleXMsIHJvbGVzLCBwb2xpY2llcywgZXRjLilcbiAqIC0gYGV4cG9ydGA6IFNjb3BlcyBmb3IgZXhwb3J0IG9wZXJhdGlvbnNcbiAqIC0gYG1taWA6IFNjb3BlcyBmb3IgTWV0YU1hc2sgSW50ZWdyYXRpb25cbiAqIC0gYG9yZ0FjY2Vzc2A6IFNjb3BlcyBmb3IgY3Jvc3Mtb3JnYW5pemF0aW9uIGFjY2Vzc1xuICpcbiAqIFRoaXMgZGljdGlvbmFyeSBzZXJ2ZXMgYXMgdGhlIHNvdXJjZSBvZiB0cnV0aCBmb3Igc2NvcGUgZGVmaW5pdGlvbnMgYW5kIGlzIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHNjb3BlcyBmb3Igcm9sZSBhbmQgdXNlciBzZXNzaW9ucy4gSXQgaXMgYWxzbyByZWZlcmVuY2VkIGJ5XG4gKiB7QGxpbmsgcm9sZVNjb3Blc0RpY3Rpb25hcnl9IGFuZCB7QGxpbmsgdXNlclNjb3Blc0RpY3Rpb25hcnl9IHdoaWNoIHByb3ZpZGVcbiAqIGZpbHRlcmVkIHN1YnNldHMgb2YgdGhlc2Ugc2NvcGVzLlxuICpcbiAqIEBzZWUge0BsaW5rIEFsbFNjb3Blc30gLSBUaGUgc291cmNlIHJlY29yZCBjb250YWluaW5nIHNjb3BlIGRlc2NyaXB0aW9uc1xuICogQHNlZSB7QGxpbmsgcm9sZVNjb3Blc0RpY3Rpb25hcnl9IC0gUmVzdHJpY3RlZCBzY29wZXMgZm9yIHJvbGUgc2Vzc2lvbnNcbiAqIEBzZWUge0BsaW5rIHVzZXJTY29wZXNEaWN0aW9uYXJ5fSAtIFJlc3RyaWN0ZWQgc2NvcGVzIGZvciB1c2VyIHNlc3Npb25zXG4gKi9cbmV4cG9ydCBjb25zdCBhbGxTY29wZXNEaWN0aW9uYXJ5OiBTY29wZXNEaWN0aW9uYXJ5ID0gY29tcHV0ZVNjb3Blc0RpY3Rpb25hcnkoKTtcblxuLyoqXG4gKiBSZXN0cmljdGVkIHNjb3BlcyBkaWN0aW9uYXJ5IGZvciByb2xlLWJhc2VkIHNlc3Npb24gZ2VuZXJhdGlvbi5cbiAqIENvbnRhaW5zIG9ubHkgdGhlIHNjb3BlcyB0aGF0IGFyZSBhbGxvd2VkIGZvciByb2xlIHNlc3Npb25zLlxuICovXG5leHBvcnQgY29uc3Qgcm9sZVNjb3Blc0RpY3Rpb25hcnkgPSB7XG4gIHNpZ246IGFsbFNjb3Blc0RpY3Rpb25hcnkuc2lnbixcbiAgbW1pOiBhbGxTY29wZXNEaWN0aW9uYXJ5Lm1taSxcbiAgbWFuYWdlOiB7XG4gICAgbGFiZWw6IFwiTWFuYWdlXCIsXG4gICAgc2NvcGVzOiBbXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTptbWk6KlxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bW1pOipcIikhLFxuICAgICAgLy8gRmluZCBhbmQgaW5jbHVkZSBtYW5hZ2U6bWZhOmxpc3RcbiAgICAgIChhbGxTY29wZXNEaWN0aW9uYXJ5Lm1hbmFnZS5zY29wZXMgYXMgU2NvcGVJdGVtW10pXG4gICAgICAgIC5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOm1mYToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOm1mYTpsaXN0XCIpISxcbiAgICAgIC8vIEZpbmQgYW5kIGluY2x1ZGUgbWFuYWdlOmtleTpnZXRcbiAgICAgIChhbGxTY29wZXNEaWN0aW9uYXJ5Lm1hbmFnZS5zY29wZXMgYXMgU2NvcGVJdGVtW10pXG4gICAgICAgIC5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOmtleToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOmtleTpnZXRcIikhLFxuICAgICAgLy8gRmluZCBhbmQgaW5jbHVkZSBtYW5hZ2U6a2V5Omxpc3RcbiAgICAgIChhbGxTY29wZXNEaWN0aW9uYXJ5Lm1hbmFnZS5zY29wZXMgYXMgU2NvcGVJdGVtW10pXG4gICAgICAgIC5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOmtleToqXCIpIVxuICAgICAgICAuY2hpbGRyZW4hLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOmtleTpsaXN0XCIpISxcbiAgICBdLFxuICB9LFxufSBzYXRpc2ZpZXMgU2NvcGVzRGljdGlvbmFyeTtcblxuLyoqXG4gKiBSZXN0cmljdGVkIHNjb3BlcyBkaWN0aW9uYXJ5IGZvciB1c2VyIHNlc3Npb24gZ2VuZXJhdGlvbi5cbiAqIEV4Y2x1ZGVzIHNjb3BlcyB0aGF0IHJlcXVpcmUgZWxldmF0ZWQgcGVybWlzc2lvbnMgKG9yZ0FjY2VzcywgZXhwb3J0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZXJTY29wZXNEaWN0aW9uYXJ5ID0ge1xuICBtYW5hZ2U6IGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLFxuICBzaWduOiBhbGxTY29wZXNEaWN0aW9uYXJ5LnNpZ24sXG4gIG1taTogYWxsU2NvcGVzRGljdGlvbmFyeS5tbWksXG59O1xuIl19
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Njb3Blcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDOzs7QUFZaEMsbURBQW1EO0FBQ3RDLFFBQUEsU0FBUztBQUNwQixrQkFBa0I7QUFDbEI7SUFDQSxRQUFRLEVBQXdDLHVHQUF1RztJQUN2SixVQUFVLEVBQXNDLDBDQUEwQztJQUMxRixXQUFXLEVBQXFDLDJDQUEyQztJQUMzRixvQkFBb0IsRUFBNEIsd0pBQXdKO0lBQ3hNLFlBQVksRUFBb0Msb0NBQW9DO0lBQ3BGLGlCQUFpQixFQUErQiwrREFBK0Q7SUFDL0csa0JBQWtCLEVBQThCLGdFQUFnRTtJQUNoSCxpQkFBaUIsRUFBK0IsNkRBQTZEO0lBQzdHLG9CQUFvQixFQUE0QiwwREFBMEQ7SUFDMUcsc0JBQXNCLEVBQTBCLDREQUE0RDtJQUM1RyxzQkFBc0IsRUFBMEIsNERBQTREO0lBQzVHLHVCQUF1QixFQUF5Qiw2REFBNkQ7SUFDN0cseUJBQXlCLEVBQXVCLHFFQUFxRTtJQUNySCxvQkFBb0IsRUFBNEIsb0VBQW9FO0lBQ3BILHlCQUF5QixFQUF1QixtRUFBbUU7SUFDbkgseUJBQXlCLEVBQXVCLG1FQUFtRTtJQUNuSCxnQkFBZ0IsRUFBZ0Msd0NBQXdDO0lBQ3hGLHFCQUFxQixFQUEyQiw2Q0FBNkM7SUFDN0YsMEJBQTBCLEVBQXNCLHFEQUFxRDtJQUNyRyx3QkFBd0IsRUFBd0IsNENBQTRDO0lBQzVGLHdCQUF3QixFQUF3QiwwRUFBMEU7SUFDMUgsOEJBQThCLEVBQWtCLDREQUE0RDtJQUM1Ryw2QkFBNkIsRUFBbUIsNkRBQTZEO0lBQzdHLCtCQUErQixFQUFpQiwrREFBK0Q7SUFDL0csNEJBQTRCLEVBQW9CLDJFQUEyRTtJQUMzSCwyQkFBMkIsRUFBcUIsZ0VBQWdFO0lBQ2hILHVCQUF1QixFQUF5QixvRUFBb0U7SUFDcEgsWUFBWSxFQUFvQywyQ0FBMkM7SUFDM0YsYUFBYSxFQUFt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QVUsQ0FBRTtpQkFDcEMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUU7aUJBQ2xELFFBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssaUJBQWlCLENBQUU7U0FDekQ7S0FDRjtDQUN5QixDQUFDO0FBRTdCOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsTUFBTSxFQUFFLDJCQUFtQixDQUFDLE1BQU07SUFDbEMsSUFBSSxFQUFFLDJCQUFtQixDQUFDLElBQUk7SUFDOUIsR0FBRyxFQUFFLDJCQUFtQixDQUFDLEdBQUc7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlIHNwYWNlZC1jb21tZW50XG5cbmltcG9ydCB7IHR5cGUgRXhwbGljaXRTY29wZSB9IGZyb20gXCIuXCI7XG5cbmV4cG9ydCB0eXBlIFNjb3Blc0RpY3Rpb25hcnkgPSBSZWNvcmQ8c3RyaW5nLCB7IGxhYmVsOiBzdHJpbmc7IHNjb3BlczogU2NvcGVJdGVtW10gfT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcGVJdGVtIHtcbiAgdmFsdWU6IEV4cGxpY2l0U2NvcGU7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2NvcGVJdGVtW107XG59XG5cbi8qKiBNYXBwaW5nIGZyb20gc2NvcGUgbmFtZSB0byBzY29wZSBkZXNjcmlwdGlvbiAqL1xuZXhwb3J0IGNvbnN0IEFsbFNjb3BlczogUmVjb3JkPEV4cGxpY2l0U2NvcGUsIHN0cmluZz4gPVxuICAvLyBwcmV0dGllci1pZ25vcmVcbiAge1xuICBcInNpZ246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2lnbmVyIGVuZHBvaW50cyAoZS5nLiwgc2lnbiBibG9iLCBzaWduIGJpdGNvaW4vYXZhbGFuY2hlL2V2bSB0cmFuc2FjdGlvbiwgZXRjLilcIixcbiAgXCJzaWduOmF2YVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ2F2YScgZW5kcG9pbnRcIixcbiAgXCJzaWduOmJsb2JcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ2Jsb2InIGVuZHBvaW50XCIsXG4gIFwic2lnbjpkaWZmaWVIZWxsbWFuXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBEaWZmaWUtSGVsbG1hbiBlbmRwb2ludC4gVGhpcyBpcyBub3QgcmVhbGx5IHNpZ25pbmcsIGJ1dCB3ZSBwdXQgaXQgdW5kZXIgdGhlIGBzaWduYCBoaWVyYXJjaHkgYmVjYXVzZSBpdCBpcyBjb25jZXB0dWFsbHkgc2ltaWxhci5cIixcbiAgXCJzaWduOmJ0YzoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIEJUQyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJ0YzpzZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnNcIixcbiAgXCJzaWduOmJ0Yzp0YXByb290XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHRhcHJvb3QgdHJhbnNhY3Rpb25zXCIsXG4gIFwic2lnbjpidGM6cHNidDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIGFueSBrZXkgdHlwZVwiLFxuICBcInNpZ246YnRjOnBzYnQ6ZG9nZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgUFNCVCBzaWduaW5nIGVuZHBvaW50IGZvciBEb2dlIGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OmxlZ2FjeVwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgbGVnYWN5IGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OnNlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3Igc2Vnd2l0IGtleXNcIixcbiAgXCJzaWduOmJ0Yzpwc2J0OnRhcHJvb3RcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIFBTQlQgc2lnbmluZyBlbmRwb2ludCBmb3IgdGFwcm9vdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6cHNidDpsdGNTZWd3aXRcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBQU0JUIHNpZ25pbmcgZW5kcG9pbnQgZm9yIExpdGVjb2luIHNlZ3dpdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6bWVzc2FnZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBCVEMgbWVzc2FnZSBzaWduaW5nIGVuZHBvaW50IGZvciBhbnkga2V5IHR5cGVcIixcbiAgXCJzaWduOmJ0YzptZXNzYWdlOnNlZ3dpdFwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEJUQyBtZXNzYWdlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIHNlZ3dpdCBrZXlzXCIsXG4gIFwic2lnbjpidGM6bWVzc2FnZTpsZWdhY3lcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBCVEMgbWVzc2FnZSBzaWduaW5nIGVuZHBvaW50IGZvciBsZWdhY3kga2V5c1wiLFxuICBcInNpZ246YmFieWxvbjoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgQmFieWxvbiBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJhYnlsb246ZW90czoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIEJhYnlsb24gRU9UUyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmJhYnlsb246ZW90czpub25jZXNcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIEVPVFMgbm9uY2UgZ2VuZXJhdGlvbiBlbmRwb2ludFwiLFxuICBcInNpZ246YmFieWxvbjplb3RzOnNpZ25cIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgRU9UUyBzaWduaW5nIGVuZHBvaW50XCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6KlwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBhbGwgQmFieWxvbiBzdGFraW5nIG9wZXJhdGlvbnNcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzpkZXBvc2l0XCIgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gZGVwb3NpdHNcIixcbiAgXCJzaWduOmJhYnlsb246c3Rha2luZzp1bmJvbmRcIiAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcgZW5kcG9pbnQgZm9yIEJhYnlsb24gdW5ib25kaW5nXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6d2l0aGRyYXdcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHdpdGhkcmF3YWxzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnN0YWtpbmc6c2xhc2hcIiAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHNsYXNoaW5nIHByZS1zaWduYXR1cmVzXCIsXG4gIFwic2lnbjpiYWJ5bG9uOnJlZ2lzdHJhdGlvblwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduaW5nIGVuZHBvaW50IGZvciBCYWJ5bG9uIHJlZ2lzdHJhdGlvblwiLFxuICBcInNpZ246YmFieWxvbjpjb3ZlbmFudFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgQmFieWxvbiBjb3ZlbmFudCBzaWduaW5nXCIsXG4gIFwic2lnbjpldm06KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzaWduICdldm0nIGVuZHBvaW50c1wiLFxuICBcInNpZ246ZXZtOnR4XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgZXZtIHRyYW5zYWN0aW9uc1wiLFxuICBcInNpZ246ZXZtOmVpcDE5MVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgRUlQLTE5MSBwZXJzb25hbF9tZXNzYWdlIGRhdGFcIixcbiAgXCJzaWduOmV2bTplaXA3MTJcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2VzcyB0byB0aGUgc2lnbmluZyBlbmRwb2ludCBmb3IgRUlQLTcxMiB0eXBlZCBkYXRhXCIsXG4gIFwic2lnbjpldGgyOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzaWduICdldGgyJyBlbmRwb2ludHNcIixcbiAgXCJzaWduOmV0aDI6dmFsaWRhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gZXRoMiAndmFsaWRhdGUnIGVuZHBvaW50XCIsXG4gIFwic2lnbjpldGgyOnN0YWtlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBzaWduIGV0aDIgJ3N0YWtlJyBlbmRwb2ludFwiLFxuICBcInNpZ246ZXRoMjp1bnN0YWtlXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiBldGgyICd1bnN0YWtlJyBlbmRwb2ludFwiLFxuICBcInNpZ246c29sYW5hXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnc29sYW5hJyBlbmRwb2ludFwiLFxuICBcInNpZ246c3VpXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAnc3VpJyBlbmRwb2ludFwiLFxuICBcInNpZ246dGVuZGVybWludFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgc2lnbiAndGVuZGVybWludCcgZW5kcG9pbnRcIixcbiAgXCJzaWduOm1taVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNpZ24gJ21taScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIG1hbmFnZW1lbnQgZW5kcG9pbnRzIChlLmcuLCBjcmVhdGUgcm9sZSwgY3JlYXRlIGtleSwgYWRkIGtleSB0byByb2xlLCBldGMuKVwiLFxuICBcIm1hbmFnZTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgbWFuYWdlbWVudCByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6ZW1haWxcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgZW1haWwgbWFuYWdlbWVudCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byBNRkEgZW5kcG9pbnRzIChlLmcuLCBnZXQvYXBwcm92ZSBleGlzdGluZyBNRkEgcmVxdWVzdClcIixcbiAgXCJtYW5hZ2U6bWZhOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byBNRkEgcmVhZG9ubHkgZW5kcG9pbnRzIChlLmcuLCBnZXQvbGlzdCBleGlzdGluZyBNRkEgcmVxdWVzdChzKSlcIixcbiAgXCJtYW5hZ2U6bWZhOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBIGxpc3QgZW5kcG9pbnQgKGxpc3QgZXhpc3RpbmcgTUZBIHJlcXVlc3RzKVwiLFxuICBcIm1hbmFnZTptZmE6dm90ZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgTUZBIHZvdGUgZW5kcG9pbnRzICh2b3RlIHVzaW5nIGN1cnJlbnQgQ3ViZVNpZ25lciBzZXNzaW9uLCBUT1RQLCBvciBGSURPKVwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTpjc1wiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBDdWJlU2lnbmVyJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6dm90ZTplbWFpbFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3ZvdGUgd2l0aCBlbWFpbCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6Zmlkb1wiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZvdGU6dG90cFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICd2b3RlIHdpdGggRklETycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOipcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSByZWdpc3RlciBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOnJlZ2lzdGVyOmZpZG9cIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdyZWdpc3RlciBUT1RQJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTptZmE6cmVnaXN0ZXI6dG90cFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBNRkEgJ3JlZ2lzdGVyIEZJRE8nIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTpyZWdpc3RlcjplbWFpbFwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAncmVnaXN0ZXIgdmVyaWZpZWQgZW1haWwnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm1mYTp1bnJlZ2lzdGVyOipcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBNRkEgdW5yZWdpc3RlciBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6Zmlkb1wiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdkZWxldGUgVE9UUCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnVucmVnaXN0ZXI6dG90cFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgTUZBICdkZWxldGUgRklETycgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6bWZhOnZlcmlmeToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIE1GQSB2ZXJpZnkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm1mYTp2ZXJpZnk6dG90cFwiICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIE1GQSAndmVyaWZ5IFRPVFAnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBrZXkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmtleTpyZWFkb25seVwiICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBrZXkgcmVhZG9ubHkgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOmtleTphdHRlc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnYXR0ZXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTprZXk6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2dldCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5Omxpc3RSb2xlc1wiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdsaXN0Um9sZXMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpsaXN0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAnbGlzdCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5Omhpc3Rvcnk6dHg6bGlzdFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdsaXN0X2hpc3RvcmljYWxfdHgnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmtleTpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8ga2V5IGNyZWF0aW9uIGVuZHBvaW50cyAoZS5nLiwgJ2NyZWF0ZScgYW5kICdkZXJpdmUnKVwiLFxuICBcIm1hbmFnZTprZXk6aW1wb3J0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBrZXkgJ2ltcG9ydCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCB3aXRoaW4gd2hpY2ggYWxsb3dpbmcgYWxsIHBvc3NpYmxlIHVwZGF0ZXNcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUga2V5IG93bmVyIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6cG9saWN5XCIgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIGtleSBwb2xpY3kgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTplbmFibGVkXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUga2V5IGVuYWJsZWQgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICd1cGRhdGUnIGVuZHBvaW50IGFuZCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUga2V5IG1ldGFkYXRhIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmtleTp1cGRhdGU6ZWRpdFBvbGljeVwiICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGtleSAndXBkYXRlJyBlbmRwb2ludCBhbmQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6a2V5OmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUga2V5ICdkZWxldGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBwb2xpY3kgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBjcmVhdGlvbiBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ2dldCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgYGRlbGV0ZWAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZToqXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCB3aXRoaW4gd2hpY2ggYWxsb3dpbmcgYWxsIHBvc3NpYmxlIHVwZGF0ZXNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTphY2xcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IEFDTFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOm93bmVyXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBwb2xpY3kgb3duZXIgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTpuYW1lXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgcG9saWN5IG5hbWVcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgJ2VkaXRfcG9saWN5JyBwcm9wZXJ0eVwiLFxuICBcIm1hbmFnZTpwb2xpY3k6dXBkYXRlOm1ldGFkYXRhXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSAnbWV0YWRhdGEnIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnBvbGljeTp1cGRhdGU6cnVsZVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHBvbGljeSBydWxlIGl0c2VsZlwiLFxuICBcIm1hbmFnZTpwb2xpY3k6aW52b2tlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgJ2ludm9rZScgZW5kcG9pbnQuXCIsXG4gIFwibWFuYWdlOnBvbGljeTp3YXNtOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCB3YXNtIHBvbGljeSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6cG9saWN5Ondhc206dXBsb2FkXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgd2FzbSBwb2xpY3kgJ3VwbG9hZCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHBvbGljeSBzZWNyZXRzIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czpnZXRcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBwb2xpY3kgc2VjcmV0cyAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpwb2xpY3k6c2VjcmV0czp1cGRhdGU6KlwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnBvbGljeTpzZWNyZXRzOnVwZGF0ZTp2YWx1ZXNcIiAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBzZWNyZXRzICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RpbmcgdXBkYXRlcyB0byB0aGUgc2VjcmV0cyBrZXlzIGFuZCB2YWx1ZXNcIixcbiAgXCJtYW5hZ2U6cG9saWN5OnNlY3JldHM6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcG9saWN5IHNlY3JldHMgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSBgZWRpdF9wb2xpY3lgIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBjb250YWN0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpjb250YWN0OmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCAnY3JlYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OmdldFwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgZ2V0YCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbGlzdGAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpkZWxldGVcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIGNvbnRhY3QgYGRlbGV0ZWAgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDp1cGRhdGU6KlwiICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAndXBkYXRlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpuYW1lXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbmFtZScgZmllbGQuXCIsXG4gIFwibWFuYWdlOmNvbnRhY3Q6dXBkYXRlOmFkZHJlc3Nlc1wiICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIGNvbnRhY3QgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdHMgdXBkYXRlcyB0byB0aGUgY29udGFjdCdzICdhZGRyZXNzZXMnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTpvd25lclwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnb3duZXInIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTptZXRhZGF0YVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnbWV0YWRhdGEnIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0OnVwZGF0ZTplZGl0UG9saWN5XCIgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBjb250YWN0ICd1cGRhdGUnIGVuZHBvaW50LCBidXQgcmVzdHJpY3RzIHVwZGF0ZXMgdG8gdGhlIGNvbnRhY3QncyAnZWRpdF9wb2xpY3knIGZpZWxkLlwiLFxuICBcIm1hbmFnZTpjb250YWN0Omxvb2t1cDoqXCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgY29udGFjdCBgbG9va3VwYCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6Y29udGFjdDpsb29rdXA6YWRkcmVzc1wiICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgY29udGFjdCAnbG9va3VwIGJ5IGFkZHJlc3MnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnBvbGljeTpjcmVhdGVJbXBvcnRLZXlcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHBvbGljeSBrZXkgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOnJvbGU6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCByb2xlIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdjcmVhdGUnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2RlbGV0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBhbmQgJ2dldCBrZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmxpc3RcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnbGlzdCBrZXlzJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmdldDprZXlzOmdldFwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAnZ2V0IGtleScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTpnZXQ6dXNlcnNcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHJvbGUgJ2xpc3QgdXNlcnMnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOipcIiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlZFwiICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgcm9sZSAndXBkYXRlJyBlbmRwb2ludCwgYnV0IHJlc3RyaWN0aW5nIHVwZGF0ZXMgdG8gdGhlIHJvbGUgJ2VuYWJsZWQnIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeVwiICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdwb2xpY3knIHByb3BlcnR5XCIsXG4gIFwibWFuYWdlOnJvbGU6dXBkYXRlOmVkaXRQb2xpY3lcIiAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIG9ubHkgdG8gdGhlIHJvbGUgJ3VwZGF0ZScgZW5kcG9pbnQsIGJ1dCByZXN0cmljdGluZyB1cGRhdGVzIHRvIHRoZSByb2xlICdlZGl0X3BvbGljeScgcHJvcGVydHlcIixcbiAgXCJtYW5hZ2U6cm9sZTp1cGRhdGU6a2V5OipcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gYWxsIHJvbGUgJ3VwZGF0ZTprZXknIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6YWRkXCIgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTprZXk6cmVtb3ZlXCIgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOmtleXM6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOipcIiAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgcm9sZSAndXBkYXRlOnVzZXInIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOmFkZFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6YWRkJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOnVwZGF0ZTp1c2VyOnJlbW92ZVwiICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgcm9sZSAndXBkYXRlOnVzZXI6cmVtb3ZlJyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpyb2xlOmhpc3Rvcnk6dHg6bGlzdFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSByb2xlICdsaXN0X2hpc3RvcmljYWxfdHgnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOmlkZW50aXR5OipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBpZGVudGl0eSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6dmVyaWZ5XCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3ZlcmlmeScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6YWRkXCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2FkZCcgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6cmVtb3ZlXCIgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ3JlbW92ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6aWRlbnRpdHk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgaWRlbnRpdHkgJ2xpc3QnIGVuZHBvaW50XCIsXG4gIFwibWFuYWdlOm9yZzoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBvcmcgZW5kcG9pbnRzXCIsXG4gIFwibWFuYWdlOm9yZzpjcmVhdGVcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIHRoZSBvcmcgJ2NyZWF0ZScgZW5kcG9pbnRcIixcbiAgXCJtYW5hZ2U6b3JnOm1ldHJpY3M6cXVlcnlcIiAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gcmV0cmlldmluZyBvcmcgbWV0cmljc1wiLFxuICBcIm1hbmFnZTpvcmc6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnIHJlYWRvbmx5IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpvcmc6YWRkVXNlclwiICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGFkZGluZyBhbiBPSURDIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IG1lbWJlciBvciBvcmcgb3duZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6aW52aXRlQWxpZW5cIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGludml0aW5nIGEgbmV3IGFsaWVuIHVzZXIgdG8gdGhlIG9yZ1wiLFxuICBcIm1hbmFnZTpvcmc6dXBkYXRlTWVtYmVyc2hpcFwiICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIHVwZGF0aW5nIGV4aXN0aW5nIHVzZXIncyBvcmcgbWVtYmVyc2hpcFwiLFxuICBcIm1hbmFnZTpvcmc6bGlzdFVzZXJzXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGxpc3RpbmcgYWxsIG9yZyB1c2VycyAobWVtYmVycylcIixcbiAgXCJtYW5hZ2U6b3JnOnVzZXI6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgb3JnIGVuZHBvaW50cyBmb3IgZ2V0dGluZyB1c2VycyBieSBpZCBvciBlbWFpbFwiLFxuICBcIm1hbmFnZTpvcmc6ZGVsZXRlVXNlclwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBvcmcgZW5kcG9pbnQgZm9yIGRlbGV0aW5nIGFuIE9JREMgdXNlclwiLFxuICBcIm1hbmFnZTpvcmc6Z2V0XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byByZXRyaWV2aW5nIG9yZ2FuaXphdGlvbiBpbmZvcm1hdGlvblwiLFxuICBcIm1hbmFnZTpvcmc6dXNlcjpyZXNldE1mYVwiICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFuIG93bmVyIHRvIGluaXRpYXRlIGFuIE1GQSByZXNldCBmb3IgYSB1c2VyXCIsXG4gIFwibWFuYWdlOnNlc3Npb246KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWNjZXNzIHRvIGFsbCBzZXNzaW9uIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJlYWRvbmx5XCIgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgc2Vzc2lvbiByZWFkb25seSBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnZ2V0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdsaXN0JyBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpzZXNzaW9uOmNyZWF0ZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdjcmVhdGUnIGVuZHBvaW50LCBidXQgd2l0aG91dCB0aGUgYWJpbGl0eSB0byBleHRlbmQgc2Vzc2lvbiBsaWZldGltZXNcIixcbiAgXCJtYW5hZ2U6c2Vzc2lvbjpleHRlbmRcIiAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3Mgb25seSB0byB0aGUgc2Vzc2lvbiAnY3JlYXRlJyBlbmRwb2ludCwgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCBzZXNzaW9uIGxpZmV0aW1lc1wiLFxuICBcIm1hbmFnZTpzZXNzaW9uOnJldm9rZVwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyBvbmx5IHRvIHRoZSBzZXNzaW9uICdyZXZva2UnIGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOipcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgb3JnLWV4cG9ydCBtYW5hZ2VtZW50IGVuZHBvaW50c1wiLFxuICBcIm1hbmFnZTpleHBvcnQ6b3JnOmdldFwiICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byB0aGUgb3JnLWV4cG9ydCBkb3dubG9hZCBlbmRwb2ludFwiLFxuICBcIm1hbmFnZTpleHBvcnQ6dXNlcjoqXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgbWFuYWdlbWVudCBlbmRwb2ludHNcIixcbiAgXCJtYW5hZ2U6ZXhwb3J0OnVzZXI6ZGVsZXRlXCIgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XCIsXG4gIFwibWFuYWdlOmV4cG9ydDp1c2VyOmxpc3RcIiAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgbGlzdGluZyBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1wiLFxuICBcIm1hbmFnZTphdXRoTWlncmF0aW9uOipcIiAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCBhdXRoIG1pZ3JhdGlvbiBzY29wZXNcIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTphZGRcIiAgICAgICAgICAgOiBcIkFsbG93cyBhZGRpbmcgaWRlbnRpdGllcyB0byBleGlzdGluZyB1c2VycyBkdXJpbmcgYW4gYXV0aCBtaWdyYXRpb25cIixcbiAgXCJtYW5hZ2U6YXV0aE1pZ3JhdGlvbjppZGVudGl0eTpyZW1vdmVcIiAgICAgICAgOiBcIkFsbG93cyByZW1vdmluZyBpZGVudGl0aWVzIGZyb20gZXhpc3RpbmcgdXNlcnMgZHVyaW5nIGFuIGF1dGggbWlncmF0aW9uXCIsXG4gIFwibWFuYWdlOmF1dGhNaWdyYXRpb246dXNlcjp1cGRhdGVcIiAgICAgICAgICAgIDogXCJBbGxvd3MgdXBkYXRpbmcgZXhpc3RpbmcgdXNlcnMnIHByb2ZpbGVzXCIsXG4gIFwibWFuYWdlOm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYWxsIENSVUQgb3BlcmF0aW9ucyBvbiBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6cmVhZG9ubHlcIiAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFsbCByZWFkb25seSBvcGVyYXRpb25zIG9uIE1NSSBwZW5kaW5nIG1lc3NhZ2VzXCIsXG4gIFwibWFuYWdlOm1taTpnZXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgcmV0cmlldmluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcIm1hbmFnZTptbWk6bGlzdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGxpc3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOnJlamVjdFwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyByZWplY3RpbmcgTU1JIHBlbmRpbmcgbWVzc2FnZXNcIixcbiAgXCJtYW5hZ2U6bW1pOmRlbGV0ZVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBkZWxldGluZyBNTUkgcGVuZGluZyBtZXNzYWdlc1wiLFxuICBcImV4cG9ydDoqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgZXhwb3J0IGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGFjY2VzcyB0byBhbGwgdXNlci1leHBvcnQgZXhlY3V0aW9uIGVuZHBvaW50c1wiLFxuICBcImV4cG9ydDp1c2VyOmluaXRcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGluaXRpYXRpbmcgYSBuZXcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcImV4cG9ydDp1c2VyOmNvbXBsZXRlXCIgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNvbXBsZXRpbmcgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFwiLFxuICBcIm1taToqXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQWxsb3dzIGNhbGxzIHRvIHRoZSBNTUkgZW5kcG9pbnRcIixcbiAgXCJvcmdBY2Nlc3M6KlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkFsbG93cyBhY2Nlc3MgdG8gY2VydGFpbiBvcmdzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2Vzc2lvbidzXCIsXG4gIFwib3JnQWNjZXNzOmNoaWxkOipcIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJBbGxvd3MgYSBzZXNzaW9uIHRvIGJlIHVzZWQgZm9yIGFjY2VzcyB0byBvcmdzIHRyYW5zaXRpdmVseSBwYXJlbnRlZCBieSB0aGUgc2Vzc2lvbidzIG9yZy5cIixcbn07XG5cbi8vIENvbnN0IGZvciBzY29wZSBjYXRlZ29yeSBsYWJlbHNcbmNvbnN0IENBVEVHT1JZX0xBQkVMUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc2lnbjogXCJTaWduXCIsXG4gIG1hbmFnZTogXCJNYW5hZ2VcIixcbiAgZXhwb3J0OiBcIkV4cG9ydFwiLFxuICBtbWk6IFwiTU1JXCIsXG4gIG9yZ0FjY2VzczogXCJPcmcgQWNjZXNzXCIsXG59O1xuXG4vKipcbiAqIEZpbmRzIHRoZSBwYXJlbnQgc2NvcGUgZm9yIGEgZ2l2ZW4gc2NvcGUuXG4gKiBBIHBhcmVudCBpcyBhIHNjb3BlIGVuZGluZyB3aXRoICcqJyB0aGF0IGlzIGEgcHJlZml4IG9mIHRoZSBjdXJyZW50IHNjb3BlLlxuICogUmV0dXJucyB0aGUgbG9uZ2VzdCBtYXRjaGluZyBwYXJlbnQgKGNsb3Nlc3QgYW5jZXN0b3IpLCBleGNsdWRpbmcgdGhlIHNjb3BlIGl0c2VsZi5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIHRvIGZpbmQgdGhlIHBhcmVudCBmb3IuXG4gKiBAcGFyYW0gYWxsU2NvcGVzIFRoZSBsaXN0IG9mIGFsbCBzY29wZXMuXG4gKiBAcmV0dXJucyBUaGUgcGFyZW50IHNjb3BlIG9yIG51bGwgaWYgbm8gcGFyZW50IGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiBmaW5kUGFyZW50KHNjb3BlOiBFeHBsaWNpdFNjb3BlLCBhbGxTY29wZXM6IEV4cGxpY2l0U2NvcGVbXSk6IEV4cGxpY2l0U2NvcGUgfCBudWxsIHtcbiAgbGV0IHBhcmVudDogRXhwbGljaXRTY29wZSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4TGVuZ3RoID0gMDtcblxuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBhbGxTY29wZXMpIHtcbiAgICAvLyBTa2lwIHRoZSBzY29wZSBpdHNlbGZcbiAgICBpZiAoY2FuZGlkYXRlID09PSBzY29wZSkgY29udGludWU7XG5cbiAgICBpZiAoY2FuZGlkYXRlLmVuZHNXaXRoKFwiKlwiKSAmJiBzY29wZS5zdGFydHNXaXRoKGNhbmRpZGF0ZS5zbGljZSgwLCAtMSkpKSB7XG4gICAgICAvLyBQcmVmZXIgdGhlIGxvbmdlc3QgbWF0Y2hpbmcgcGFyZW50IChjbG9zZXN0IGFuY2VzdG9yKVxuICAgICAgaWYgKGNhbmRpZGF0ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgcGFyZW50ID0gY2FuZGlkYXRlO1xuICAgICAgICBtYXhMZW5ndGggPSBjYW5kaWRhdGUubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJlbnQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHNjb3BlcyBkaWN0aW9uYXJ5IGZyb20gQWxsU2NvcGVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBkaWN0aW9uYXJ5IG9mIGFsbCBhdmFpbGFibGUgc2NvcGVzIG9yZ2FuaXplZCBieSBjYXRlZ29yeS5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVNjb3Blc0RpY3Rpb25hcnkoKTogU2NvcGVzRGljdGlvbmFyeSB7XG4gIGNvbnN0IGFsbFNjb3BlcyA9IE9iamVjdC5rZXlzKEFsbFNjb3BlcykgYXMgRXhwbGljaXRTY29wZVtdO1xuICBjb25zdCBpdGVtcyA9IG5ldyBNYXA8RXhwbGljaXRTY29wZSwgU2NvcGVJdGVtPigpO1xuICBjb25zdCByZXN1bHQ6IFNjb3Blc0RpY3Rpb25hcnkgPSB7fTtcblxuICAvLyBGaXJzdCBwYXNzOiBjcmVhdGUgYWxsIGl0ZW1zXG4gIGZvciAoY29uc3Qgc2NvcGUgb2YgYWxsU2NvcGVzKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBzY29wZS5zcGxpdChcIjpcIilbMF07XG4gICAgaWYgKCFyZXN1bHRbY2F0ZWdvcnldKSB7XG4gICAgICByZXN1bHRbY2F0ZWdvcnldID0geyBsYWJlbDogQ0FURUdPUllfTEFCRUxTW2NhdGVnb3J5XSB8fCBjYXRlZ29yeSwgc2NvcGVzOiBbXSB9O1xuICAgIH1cblxuICAgIGl0ZW1zLnNldChzY29wZSwge1xuICAgICAgdmFsdWU6IHNjb3BlLFxuICAgICAgZGVzY3JpcHRpb246IEFsbFNjb3Blc1tzY29wZV0sXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSk7XG4gIH1cblxuICAvLyBTZWNvbmQgcGFzczogYnVpbGQgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcHNcbiAgZm9yIChjb25zdCBzY29wZSBvZiBhbGxTY29wZXMpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IHNjb3BlLnNwbGl0KFwiOlwiKVswXTtcbiAgICBjb25zdCBpdGVtID0gaXRlbXMuZ2V0KHNjb3BlKSE7XG4gICAgY29uc3QgcGFyZW50U2NvcGUgPSBmaW5kUGFyZW50KHNjb3BlLCBhbGxTY29wZXMpO1xuXG4gICAgaWYgKHBhcmVudFNjb3BlICYmIHBhcmVudFNjb3BlICE9PSBzY29wZSkge1xuICAgICAgaXRlbXMuZ2V0KHBhcmVudFNjb3BlKSEuY2hpbGRyZW4hLnB1c2goaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtjYXRlZ29yeV0uc2NvcGVzLnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU29ydCByb290czogd2lsZGNhcmRzIGZpcnN0XG4gIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgT2JqZWN0LnZhbHVlcyhyZXN1bHQpKSB7XG4gICAgY2F0ZWdvcnkuc2NvcGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLnZhbHVlLmVuZHNXaXRoKFwiKlwiKSAmJiAhYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAtMTtcbiAgICAgIGlmICghYS52YWx1ZS5lbmRzV2l0aChcIipcIikgJiYgYi52YWx1ZS5lbmRzV2l0aChcIipcIikpIHJldHVybiAxO1xuICAgICAgcmV0dXJuIGEudmFsdWUubG9jYWxlQ29tcGFyZShiLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcGxldGUgZGljdGlvbmFyeSBvZiBhbGwgYXZhaWxhYmxlIHNjb3BlcyBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IGlzIGF1dG9tYXRpY2FsbHkgY29tcHV0ZWQgZnJvbSB7QGxpbmsgQWxsU2NvcGVzfSBieSBpbmZlcnJpbmdcbiAqIHRoZSBoaWVyYXJjaHkgZnJvbSBzY29wZSBuYW1lcy4gQSBzY29wZSdzIHBhcmVudCBpcyBkZXRlcm1pbmVkIGJ5IGZpbmRpbmcgYVxuICogc2NvcGUgZW5kaW5nIHdpdGggJyonIHRoYXQgaXMgYSBwcmVmaXggb2YgdGhlIGN1cnJlbnQgc2NvcGUuXG4gKlxuICogVGhlIGRpY3Rpb25hcnkgaXMgb3JnYW5pemVkIGludG8gdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzOlxuICogLSBgc2lnbmA6IFNjb3BlcyBmb3Igc2lnbmluZyBvcGVyYXRpb25zIChibG9iLCB0cmFuc2FjdGlvbnMsIGV0Yy4pXG4gKiAtIGBtYW5hZ2VgOiBTY29wZXMgZm9yIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyAoa2V5cywgcm9sZXMsIHBvbGljaWVzLCBldGMuKVxuICogLSBgZXhwb3J0YDogU2NvcGVzIGZvciBleHBvcnQgb3BlcmF0aW9uc1xuICogLSBgbW1pYDogU2NvcGVzIGZvciBNZXRhTWFzayBJbnRlZ3JhdGlvblxuICogLSBgb3JnQWNjZXNzYDogU2NvcGVzIGZvciBjcm9zcy1vcmdhbml6YXRpb24gYWNjZXNzXG4gKlxuICogVGhpcyBkaWN0aW9uYXJ5IHNlcnZlcyBhcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciBzY29wZSBkZWZpbml0aW9ucyBhbmQgaXMgdXNlZFxuICogdG8gZ2VuZXJhdGUgc2NvcGVzIGZvciByb2xlIGFuZCB1c2VyIHNlc3Npb25zLiBJdCBpcyBhbHNvIHJlZmVyZW5jZWQgYnlcbiAqIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gYW5kIHtAbGluayB1c2VyU2NvcGVzRGljdGlvbmFyeX0gd2hpY2ggcHJvdmlkZVxuICogZmlsdGVyZWQgc3Vic2V0cyBvZiB0aGVzZSBzY29wZXMuXG4gKlxuICogQHNlZSB7QGxpbmsgQWxsU2NvcGVzfSAtIFRoZSBzb3VyY2UgcmVjb3JkIGNvbnRhaW5pbmcgc2NvcGUgZGVzY3JpcHRpb25zXG4gKiBAc2VlIHtAbGluayByb2xlU2NvcGVzRGljdGlvbmFyeX0gLSBSZXN0cmljdGVkIHNjb3BlcyBmb3Igcm9sZSBzZXNzaW9uc1xuICogQHNlZSB7QGxpbmsgdXNlclNjb3Blc0RpY3Rpb25hcnl9IC0gUmVzdHJpY3RlZCBzY29wZXMgZm9yIHVzZXIgc2Vzc2lvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGFsbFNjb3Blc0RpY3Rpb25hcnk6IFNjb3Blc0RpY3Rpb25hcnkgPSBjb21wdXRlU2NvcGVzRGljdGlvbmFyeSgpO1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHJvbGUtYmFzZWQgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogQ29udGFpbnMgb25seSB0aGUgc2NvcGVzIHRoYXQgYXJlIGFsbG93ZWQgZm9yIHJvbGUgc2Vzc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCByb2xlU2NvcGVzRGljdGlvbmFyeSA9IHtcbiAgc2lnbjogYWxsU2NvcGVzRGljdGlvbmFyeS5zaWduLFxuICBtbWk6IGFsbFNjb3Blc0RpY3Rpb25hcnkubW1pLFxuICBtYW5hZ2U6IHtcbiAgICBsYWJlbDogXCJNYW5hZ2VcIixcbiAgICBzY29wZXM6IFtcbiAgICAgIC8vIEZpbmQgYW5kIGluY2x1ZGUgbWFuYWdlOm1taToqXG4gICAgICAoYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2Uuc2NvcGVzIGFzIFNjb3BlSXRlbVtdKVxuICAgICAgICAuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6KlwiKSFcbiAgICAgICAgLmNoaWxkcmVuIS5maW5kKChzKSA9PiBzLnZhbHVlID09PSBcIm1hbmFnZTptbWk6KlwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTptZmE6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6bWZhOmxpc3RcIikhLFxuICAgICAgLy8gRmluZCBhbmQgaW5jbHVkZSBtYW5hZ2U6a2V5OmdldFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OmdldFwiKSEsXG4gICAgICAvLyBGaW5kIGFuZCBpbmNsdWRlIG1hbmFnZTprZXk6bGlzdFxuICAgICAgKGFsbFNjb3Blc0RpY3Rpb25hcnkubWFuYWdlLnNjb3BlcyBhcyBTY29wZUl0ZW1bXSlcbiAgICAgICAgLmZpbmQoKHMpID0+IHMudmFsdWUgPT09IFwibWFuYWdlOipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5OipcIikhXG4gICAgICAgIC5jaGlsZHJlbiEuZmluZCgocykgPT4gcy52YWx1ZSA9PT0gXCJtYW5hZ2U6a2V5Omxpc3RcIikhLFxuICAgIF0sXG4gIH0sXG59IHNhdGlzZmllcyBTY29wZXNEaWN0aW9uYXJ5O1xuXG4vKipcbiAqIFJlc3RyaWN0ZWQgc2NvcGVzIGRpY3Rpb25hcnkgZm9yIHVzZXIgc2Vzc2lvbiBnZW5lcmF0aW9uLlxuICogRXhjbHVkZXMgc2NvcGVzIHRoYXQgcmVxdWlyZSBlbGV2YXRlZCBwZXJtaXNzaW9ucyAob3JnQWNjZXNzLCBleHBvcnQpLlxuICovXG5leHBvcnQgY29uc3QgdXNlclNjb3Blc0RpY3Rpb25hcnkgPSB7XG4gIG1hbmFnZTogYWxsU2NvcGVzRGljdGlvbmFyeS5tYW5hZ2UsXG4gIHNpZ246IGFsbFNjb3Blc0RpY3Rpb25hcnkuc2lnbixcbiAgbW1pOiBhbGxTY29wZXNEaWN0aW9uYXJ5Lm1taSxcbn07XG4iXX0=
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/sdk"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.205",
|
|
9
9
|
"description": "CubeSigner TypeScript SDK",
|
|
10
10
|
"license": "MIT OR Apache-2.0",
|
|
11
11
|
"author": "Cubist, Inc.",
|
package/src/scopes.ts
CHANGED
|
@@ -206,18 +206,30 @@ const CATEGORY_LABELS: Record<string, string> = {
|
|
|
206
206
|
/**
|
|
207
207
|
* Finds the parent scope for a given scope.
|
|
208
208
|
* A parent is a scope ending with '*' that is a prefix of the current scope.
|
|
209
|
+
* Returns the longest matching parent (closest ancestor), excluding the scope itself.
|
|
209
210
|
*
|
|
210
211
|
* @param scope The scope to find the parent for.
|
|
211
212
|
* @param allScopes The list of all scopes.
|
|
212
213
|
* @returns The parent scope or null if no parent is found.
|
|
213
214
|
*/
|
|
214
215
|
function findParent(scope: ExplicitScope, allScopes: ExplicitScope[]): ExplicitScope | null {
|
|
216
|
+
let parent: ExplicitScope | null = null;
|
|
217
|
+
let maxLength = 0;
|
|
218
|
+
|
|
215
219
|
for (const candidate of allScopes) {
|
|
220
|
+
// Skip the scope itself
|
|
221
|
+
if (candidate === scope) continue;
|
|
222
|
+
|
|
216
223
|
if (candidate.endsWith("*") && scope.startsWith(candidate.slice(0, -1))) {
|
|
217
|
-
|
|
224
|
+
// Prefer the longest matching parent (closest ancestor)
|
|
225
|
+
if (candidate.length > maxLength) {
|
|
226
|
+
parent = candidate;
|
|
227
|
+
maxLength = candidate.length;
|
|
228
|
+
}
|
|
218
229
|
}
|
|
219
230
|
}
|
|
220
|
-
|
|
231
|
+
|
|
232
|
+
return parent;
|
|
221
233
|
}
|
|
222
234
|
|
|
223
235
|
/**
|