@brainfish-ai/devdoc 0.1.31 → 0.1.32
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/cli/commands/domain.js +31 -10
- package/package.json +1 -1
|
@@ -77,13 +77,22 @@ async function domainAdd(customDomain, options) {
|
|
|
77
77
|
// Load config
|
|
78
78
|
const config = loadDevDocConfig(projectRoot);
|
|
79
79
|
if (!config) {
|
|
80
|
-
logger_1.logger.error('
|
|
80
|
+
logger_1.logger.error('Project not initialized.');
|
|
81
|
+
console.log('');
|
|
82
|
+
logger_1.logger.info('Run "devdoc init" to initialize, then "devdoc deploy" to deploy.');
|
|
81
83
|
process.exit(1);
|
|
82
84
|
}
|
|
83
|
-
// Get API key
|
|
85
|
+
// Get API key - required because custom domains need a deployed project
|
|
84
86
|
const apiKey = getApiKey(options, config);
|
|
85
87
|
if (!apiKey) {
|
|
86
|
-
logger_1.logger.error('
|
|
88
|
+
logger_1.logger.error('Project not deployed yet.');
|
|
89
|
+
console.log('');
|
|
90
|
+
console.log(' Custom domains require a deployed project.');
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(' To set up a custom domain:');
|
|
93
|
+
console.log(' 1. Deploy your project first: devdoc deploy');
|
|
94
|
+
console.log(' 2. Then add your domain: devdoc domain add ' + customDomain);
|
|
95
|
+
console.log('');
|
|
87
96
|
process.exit(1);
|
|
88
97
|
}
|
|
89
98
|
// Normalize and validate domain
|
|
@@ -143,13 +152,17 @@ async function domainStatus(options) {
|
|
|
143
152
|
// Load config
|
|
144
153
|
const config = loadDevDocConfig(projectRoot);
|
|
145
154
|
if (!config) {
|
|
146
|
-
logger_1.logger.error('
|
|
155
|
+
logger_1.logger.error('Project not initialized.');
|
|
156
|
+
console.log('');
|
|
157
|
+
logger_1.logger.info('Run "devdoc init" to initialize, then "devdoc deploy" to deploy.');
|
|
147
158
|
process.exit(1);
|
|
148
159
|
}
|
|
149
160
|
// Get API key
|
|
150
161
|
const apiKey = getApiKey(options, config);
|
|
151
162
|
if (!apiKey) {
|
|
152
|
-
logger_1.logger.error('
|
|
163
|
+
logger_1.logger.error('Project not deployed yet.');
|
|
164
|
+
console.log('');
|
|
165
|
+
logger_1.logger.info('Deploy your project first with "devdoc deploy"');
|
|
153
166
|
process.exit(1);
|
|
154
167
|
}
|
|
155
168
|
try {
|
|
@@ -250,13 +263,17 @@ async function domainVerify(options) {
|
|
|
250
263
|
// Load config
|
|
251
264
|
const config = loadDevDocConfig(projectRoot);
|
|
252
265
|
if (!config) {
|
|
253
|
-
logger_1.logger.error('
|
|
266
|
+
logger_1.logger.error('Project not initialized.');
|
|
267
|
+
console.log('');
|
|
268
|
+
logger_1.logger.info('Run "devdoc init" to initialize, then "devdoc deploy" to deploy.');
|
|
254
269
|
process.exit(1);
|
|
255
270
|
}
|
|
256
271
|
// Get API key
|
|
257
272
|
const apiKey = getApiKey(options, config);
|
|
258
273
|
if (!apiKey) {
|
|
259
|
-
logger_1.logger.error('
|
|
274
|
+
logger_1.logger.error('Project not deployed yet.');
|
|
275
|
+
console.log('');
|
|
276
|
+
logger_1.logger.info('Deploy your project first with "devdoc deploy"');
|
|
260
277
|
process.exit(1);
|
|
261
278
|
}
|
|
262
279
|
try {
|
|
@@ -342,13 +359,17 @@ async function domainRemove(customDomain, options) {
|
|
|
342
359
|
// Load config
|
|
343
360
|
const config = loadDevDocConfig(projectRoot);
|
|
344
361
|
if (!config) {
|
|
345
|
-
logger_1.logger.error('
|
|
362
|
+
logger_1.logger.error('Project not initialized.');
|
|
363
|
+
console.log('');
|
|
364
|
+
logger_1.logger.info('Run "devdoc init" to initialize, then "devdoc deploy" to deploy.');
|
|
346
365
|
process.exit(1);
|
|
347
366
|
}
|
|
348
367
|
// Get API key
|
|
349
368
|
const apiKey = getApiKey(options, config);
|
|
350
369
|
if (!apiKey) {
|
|
351
|
-
logger_1.logger.error('
|
|
370
|
+
logger_1.logger.error('Project not deployed yet.');
|
|
371
|
+
console.log('');
|
|
372
|
+
logger_1.logger.info('Deploy your project first with "devdoc deploy"');
|
|
352
373
|
process.exit(1);
|
|
353
374
|
}
|
|
354
375
|
try {
|
|
@@ -383,4 +404,4 @@ async function domainRemove(customDomain, options) {
|
|
|
383
404
|
process.exit(1);
|
|
384
405
|
}
|
|
385
406
|
}
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9kb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF3SUEsOEJBcUVDO0FBU0Qsb0NBeUZDO0FBNkJELG9DQTRGQztBQVNELG9DQXVEQztBQXhlRCxnREFBdUI7QUFDdkIsd0RBQXlCO0FBQ3pCLCtDQUEyQztBQUMzQywrQ0FBaUQ7QUFrRWpEOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFtQjtJQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUN6RCxJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxPQUFPLGtCQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBaUIsQ0FBQTtJQUNwRCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsT0FBc0IsRUFBRSxNQUEyQjtJQUNwRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUE7QUFDL0UsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxNQUFjO0lBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ3RELENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLENBQUE7SUFDeEUsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixNQUFNLFdBQVcsR0FBRyx3REFBd0QsQ0FBQTtJQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxrREFBa0QsRUFBRSxDQUFBO0lBQ3BGLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ3pELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsRUFBRSxDQUFBO0lBQ3ZFLENBQUM7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFBO0FBQ3hCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLE1BQWM7SUFDckMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzVDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNuRCxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyQyxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLHFCQUFxQjtBQUNyQixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLFlBQW9CLEVBQUUsT0FBc0I7SUFDMUUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksMkJBQWUsQ0FBQTtJQUUzRSxlQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFeEMsY0FBYztJQUNkLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLGVBQU0sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQTtRQUN0RixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixlQUFNLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7UUFDckYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM1QyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLGVBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQU0sQ0FBQyxDQUFBO1FBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGVBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFZixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLE1BQU0sa0JBQWtCLEVBQUU7WUFDeEQsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsZUFBZSxFQUFFLFVBQVUsTUFBTSxFQUFFO2FBQ3BDO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDL0MsQ0FBQyxDQUFBO1FBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUF1QixDQUFBO1FBRXpELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLGVBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxzQkFBc0IsQ0FBQyxDQUFBO1lBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELGVBQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxNQUFNLFNBQVMsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUE7UUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixlQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFakIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEUsZUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLHdCQUF3QjtBQUN4QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUFDLE9BQXNCO0lBQ3ZELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLDJCQUFlLENBQUE7SUFFM0UsY0FBYztJQUNkLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLGVBQU0sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQTtRQUN0RixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixlQUFNLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7UUFDckYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxNQUFNLHFCQUFxQixFQUFFO1lBQzNELE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSxVQUFVLE1BQU0sRUFBRTthQUNwQztTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBMEIsQ0FBQTtRQUU1RCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLGVBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSw2QkFBNkIsQ0FBQyxDQUFBO1lBQzNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtZQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxlQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLGVBQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7WUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLE9BQU07UUFDUixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDekUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVmLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7WUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxXQUFXLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1lBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7WUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLGVBQU0sQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQTtRQUNwRSxDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2YsZUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRWpCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RFLGVBQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFjO0lBQ3RDLFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLGVBQU0sQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNyRCxLQUFLLGNBQWM7WUFDakIsT0FBTyxlQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7UUFDM0QsS0FBSyxrQkFBa0I7WUFDckIsT0FBTyxlQUFNLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7UUFDMUQsS0FBSyxRQUFRO1lBQ1gsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2pDLEtBQUssT0FBTztZQUNWLE9BQU8sZUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM5QjtZQUNFLE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLHdCQUF3QjtBQUN4QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUFDLE9BQXNCO0lBQ3ZELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLDJCQUFlLENBQUE7SUFFM0UsZUFBTSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBRS9DLGNBQWM7SUFDZCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM1QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixlQUFNLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUE7UUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsY0FBYztJQUNkLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osZUFBTSxDQUFDLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFBO1FBQ3JGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsTUFBTSxxQkFBcUIsRUFBRTtZQUMzRCxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxlQUFlLEVBQUUsVUFBVSxNQUFNLEVBQUU7YUFDcEM7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFBO1FBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUEwQixDQUFBO1FBRTVELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakIsZUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLHlCQUF5QixDQUFDLENBQUE7WUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWYsY0FBYztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUM5QixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDN0UsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLGVBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1lBQzFGLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sZUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxDQUFDO1FBRUQsWUFBWTtRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDekMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sZUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbEQsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLGVBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUE7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sZUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM5RCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVmLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLGVBQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2YsZUFBTSxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFBO1FBQy9FLENBQUM7YUFBTSxDQUFDO1lBQ04sZUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNmLGVBQU0sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQTtZQUM1RCxlQUFNLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7UUFDeEQsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFakIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEUsZUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLHdCQUF3QjtBQUN4QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUFDLFlBQWdDLEVBQUUsT0FBc0I7SUFDekYsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksMkJBQWUsQ0FBQTtJQUUzRSxlQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFFMUMsY0FBYztJQUNkLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLGVBQU0sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQTtRQUN0RixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixlQUFNLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7UUFDckYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQTJCLEVBQUUsQ0FBQTtRQUN2QyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLE1BQU0scUJBQXFCLEVBQUU7WUFDM0QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLGVBQWUsRUFBRSxVQUFVLE1BQU0sRUFBRTthQUNwQztZQUNELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUMzQixDQUFDLENBQUE7UUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQTBCLENBQUE7UUFFNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsZUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLHlCQUF5QixDQUFDLENBQUE7WUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO1FBRUQsZUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLE1BQU0sQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFBO1FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7UUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLGVBQU0sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQTtRQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7UUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVqQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sT0FBTyxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0RSxlQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJ1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nZ2VyJ1xuaW1wb3J0IHsgREVGQVVMVF9BUElfVVJMIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJ1xuXG5pbnRlcmZhY2UgRG9tYWluT3B0aW9ucyB7XG4gIHVybD86IHN0cmluZ1xuICBhcGlLZXk/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIERldkRvY0NvbmZpZyB7XG4gIHByb2plY3RJZD86IHN0cmluZ1xuICBuYW1lPzogc3RyaW5nXG4gIHNsdWc/OiBzdHJpbmdcbiAgc3ViZG9tYWluPzogc3RyaW5nXG4gIGFwaUtleT86IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbiAgbGFzdERlcGxveWVkPzogc3RyaW5nXG4gIGNyZWF0ZWRBdD86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRG9tYWluQWRkUmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuXG4gIGRvbWFpbjogc3RyaW5nXG4gIHByb2plY3RTbHVnOiBzdHJpbmdcbiAgc3RhdHVzOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uOiB7XG4gICAgY25hbWU6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB0eHQ6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1cbiAgfVxuICBpbnN0cnVjdGlvbnM6IHN0cmluZ1tdXG4gIGVycm9yPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBEb21haW5TdGF0dXNSZXNwb25zZSB7XG4gIGhhc0N1c3RvbURvbWFpbjogYm9vbGVhblxuICBkb21haW4/OiBzdHJpbmdcbiAgc3RhdHVzPzogc3RyaW5nXG4gIHByb2plY3RTbHVnOiBzdHJpbmdcbiAgcHJvamVjdFVybDogc3RyaW5nXG4gIGN1c3RvbVVybD86IHN0cmluZ1xuICBtZXNzYWdlPzogc3RyaW5nXG4gIGRuc1JlY29yZHM/OiB7XG4gICAgY25hbWU6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1cbiAgICB0eHQ6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1cbiAgfVxuICBuZXh0U3RlcD86IHN0cmluZ1xuICBlcnJvcj86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRG9tYWluVmVyaWZ5UmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuXG4gIGRvbWFpbjogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIG1lc3NhZ2U6IHN0cmluZ1xuICBjaGVja3M6IHtcbiAgICBjbmFtZTogeyBmb3VuZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB8IG51bGw7IHZhbGlkOiBib29sZWFuOyBleHBlY3RlZDogc3RyaW5nIH1cbiAgICB0eHQ6IHsgZm91bmQ6IGJvb2xlYW47IHZlcmlmaWVkOiBib29sZWFuOyBleHBlY3RlZDogc3RyaW5nIH1cbiAgfVxuICBlcnJvcj86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRG9tYWluUmVtb3ZlUmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuXG4gIG1lc3NhZ2U6IHN0cmluZ1xuICBkb21haW46IHN0cmluZ1xuICBlcnJvcj86IHN0cmluZ1xufVxuXG4vKipcbiAqIExvYWQgLmRldmRvYy5qc29uIGFuZCBnZXQgQVBJIGtleVxuICovXG5mdW5jdGlvbiBsb2FkRGV2RG9jQ29uZmlnKHByb2plY3RSb290OiBzdHJpbmcpOiBEZXZEb2NDb25maWcgfCBudWxsIHtcbiAgY29uc3QgY29uZmlnUGF0aCA9IHBhdGguam9pbihwcm9qZWN0Um9vdCwgJy5kZXZkb2MuanNvbicpXG4gIGlmICghZnMuZXhpc3RzU3luYyhjb25maWdQYXRoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEpzb25TeW5jKGNvbmZpZ1BhdGgpIGFzIERldkRvY0NvbmZpZ1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbi8qKlxuICogR2V0IEFQSSBrZXkgZnJvbSBvcHRpb25zLCBlbnYsIG9yIGNvbmZpZ1xuICovXG5mdW5jdGlvbiBnZXRBcGlLZXkob3B0aW9uczogRG9tYWluT3B0aW9ucywgY29uZmlnOiBEZXZEb2NDb25maWcgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBvcHRpb25zLmFwaUtleSB8fCBwcm9jZXNzLmVudi5ERVZET0NfQVBJX0tFWSB8fCBjb25maWc/LmFwaUtleSB8fCBudWxsXG59XG5cbi8qKlxuICogVmFsaWRhdGUgZG9tYWluIGZvcm1hdFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkRG9tYWluRm9ybWF0KGRvbWFpbjogc3RyaW5nKTogeyB2YWxpZDogYm9vbGVhbjsgZXJyb3I/OiBzdHJpbmcgfSB7XG4gIGlmICghZG9tYWluKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ0RvbWFpbiBpcyByZXF1aXJlZCcgfVxuICB9XG4gIFxuICBpZiAoZG9tYWluLmxlbmd0aCA8IDQpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnRG9tYWluIG11c3QgYmUgYXQgbGVhc3QgNCBjaGFyYWN0ZXJzJyB9XG4gIH1cbiAgXG4gIC8vIEJhc2ljIGRvbWFpbiBmb3JtYXQgY2hlY2tcbiAgY29uc3QgZG9tYWluUmVnZXggPSAvXig/IS0pW2EtekEtWjAtOS1dKyg/OlxcLlthLXpBLVowLTktXSspKlxcLlthLXpBLVpdezIsfSQvXG4gIGlmICghZG9tYWluUmVnZXgudGVzdChkb21haW4pKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ0ludmFsaWQgZG9tYWluIGZvcm1hdC4gRXhhbXBsZTogZG9jcy5leGFtcGxlLmNvbScgfVxuICB9XG4gIFxuICAvLyBDaGVjayBmb3IgcmVzZXJ2ZWQgZG9tYWluc1xuICBjb25zdCByZXNlcnZlZCA9IFsnZGV2ZG9jLnNoJywgJ2RldmRvYy5pbycsICdkZXZkb2MuY29tJ11cbiAgaWYgKHJlc2VydmVkLnNvbWUociA9PiBkb21haW4gPT09IHIgfHwgZG9tYWluLmVuZHNXaXRoKGAuJHtyfWApKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdDYW5ub3QgdXNlIGEgcmVzZXJ2ZWQgRGV2RG9jIGRvbWFpbicgfVxuICB9XG4gIFxuICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGRvbWFpbiAobG93ZXJjYXNlLCByZW1vdmUgcHJvdG9jb2wvcGF0aClcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRG9tYWluKGRvbWFpbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IG5vcm1hbGl6ZWQgPSBkb21haW4udG9Mb3dlckNhc2UoKS50cmltKClcbiAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXmh0dHBzPzpcXC9cXC8vLCAnJylcbiAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKVswXVxuICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zcGxpdCgnOicpWzBdXG4gIHJldHVybiBub3JtYWxpemVkXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEb21haW4gQWRkIENvbW1hbmRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQWRkIGEgY3VzdG9tIGRvbWFpbiB0byB0aGUgcHJvamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9tYWluQWRkKGN1c3RvbURvbWFpbjogc3RyaW5nLCBvcHRpb25zOiBEb21haW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByb2plY3RSb290ID0gcHJvY2Vzcy5jd2QoKVxuICBjb25zdCBhcGlVcmwgPSBvcHRpb25zLnVybCB8fCBwcm9jZXNzLmVudi5ERVZET0NfQVBJX1VSTCB8fCBERUZBVUxUX0FQSV9VUkxcbiAgXG4gIGxvZ2dlci5pbmZvKCdBZGRpbmcgY3VzdG9tIGRvbWFpbi4uLlxcbicpXG4gIFxuICAvLyBMb2FkIGNvbmZpZ1xuICBjb25zdCBjb25maWcgPSBsb2FkRGV2RG9jQ29uZmlnKHByb2plY3RSb290KVxuICBpZiAoIWNvbmZpZykge1xuICAgIGxvZ2dlci5lcnJvcignLmRldmRvYy5qc29uIG5vdCBmb3VuZC4gRGVwbG95IHlvdXIgcHJvamVjdCBmaXJzdCB3aXRoIFwiZGV2ZG9jIGRlcGxveVwiJylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgLy8gR2V0IEFQSSBrZXlcbiAgY29uc3QgYXBpS2V5ID0gZ2V0QXBpS2V5KG9wdGlvbnMsIGNvbmZpZylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ0FQSSBrZXkgbm90IGZvdW5kLiBEZXBsb3kgeW91ciBwcm9qZWN0IGZpcnN0IG9yIHByb3ZpZGUgdmlhIC0tYXBpLWtleScpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgXG4gIC8vIE5vcm1hbGl6ZSBhbmQgdmFsaWRhdGUgZG9tYWluXG4gIGNvbnN0IGRvbWFpbiA9IG5vcm1hbGl6ZURvbWFpbihjdXN0b21Eb21haW4pXG4gIGNvbnN0IHZhbGlkYXRpb24gPSBpc1ZhbGlkRG9tYWluRm9ybWF0KGRvbWFpbilcbiAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgbG9nZ2VyLmVycm9yKHZhbGlkYXRpb24uZXJyb3IhKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICBsb2dnZXIuaW5mbyhgRG9tYWluOiAke2RvbWFpbn1gKVxuICBjb25zb2xlLmxvZygnJylcbiAgXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHthcGlVcmx9L2FwaS9kb21haW5zL2FkZGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGN1c3RvbURvbWFpbjogZG9tYWluIH0pLFxuICAgIH0pXG4gICAgXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIERvbWFpbkFkZFJlc3BvbnNlXG4gICAgXG4gICAgaWYgKCFyZXNwb25zZS5vayB8fCAhcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihyZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byBhZGQgZG9tYWluJylcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICBcbiAgICBsb2dnZXIuc3VjY2Vzcyhg4pyTIERvbWFpbiAke2RvbWFpbn0gYWRkZWQhYClcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICBOZXh0LCBhZGQgdGhlc2UgRE5TIHJlY29yZHMgdG8geW91ciBkb21haW4gcHJvdmlkZXI6JylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICAxLiBDTkFNRSBSZWNvcmQ6JylcbiAgICBjb25zb2xlLmxvZyhgICAgICBOYW1lOiAgJHtyZXN1bHQudmVyaWZpY2F0aW9uLmNuYW1lLm5hbWV9YClcbiAgICBjb25zb2xlLmxvZyhgICAgICBWYWx1ZTogJHtyZXN1bHQudmVyaWZpY2F0aW9uLmNuYW1lLnZhbHVlfWApXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coJyAgMi4gVFhUIFJlY29yZCAoZm9yIHZlcmlmaWNhdGlvbik6JylcbiAgICBjb25zb2xlLmxvZyhgICAgICBOYW1lOiAgJHtyZXN1bHQudmVyaWZpY2F0aW9uLnR4dC5uYW1lfWApXG4gICAgY29uc29sZS5sb2coYCAgICAgVmFsdWU6ICR7cmVzdWx0LnZlcmlmaWNhdGlvbi50eHQudmFsdWV9YClcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBsb2dnZXIuaW5mbygnQWZ0ZXIgYWRkaW5nIEROUyByZWNvcmRzLCBydW46JylcbiAgICBjb25zb2xlLmxvZygnICBkZXZkb2MgZG9tYWluIHZlcmlmeScpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKVxuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIGFkZCBkb21haW46ICR7bWVzc2FnZX1gKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEb21haW4gU3RhdHVzIENvbW1hbmRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2hlY2sgc3RhdHVzIG9mIGN1c3RvbSBkb21haW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvbWFpblN0YXR1cyhvcHRpb25zOiBEb21haW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByb2plY3RSb290ID0gcHJvY2Vzcy5jd2QoKVxuICBjb25zdCBhcGlVcmwgPSBvcHRpb25zLnVybCB8fCBwcm9jZXNzLmVudi5ERVZET0NfQVBJX1VSTCB8fCBERUZBVUxUX0FQSV9VUkxcbiAgXG4gIC8vIExvYWQgY29uZmlnXG4gIGNvbnN0IGNvbmZpZyA9IGxvYWREZXZEb2NDb25maWcocHJvamVjdFJvb3QpXG4gIGlmICghY29uZmlnKSB7XG4gICAgbG9nZ2VyLmVycm9yKCcuZGV2ZG9jLmpzb24gbm90IGZvdW5kLiBEZXBsb3kgeW91ciBwcm9qZWN0IGZpcnN0IHdpdGggXCJkZXZkb2MgZGVwbG95XCInKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICAvLyBHZXQgQVBJIGtleVxuICBjb25zdCBhcGlLZXkgPSBnZXRBcGlLZXkob3B0aW9ucywgY29uZmlnKVxuICBpZiAoIWFwaUtleSkge1xuICAgIGxvZ2dlci5lcnJvcignQVBJIGtleSBub3QgZm91bmQuIERlcGxveSB5b3VyIHByb2plY3QgZmlyc3Qgb3IgcHJvdmlkZSB2aWEgLS1hcGkta2V5JylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2FwaVVybH0vYXBpL2RvbWFpbnMvc3RhdHVzYCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgIH0pXG4gICAgXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIERvbWFpblN0YXR1c1Jlc3BvbnNlXG4gICAgXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbG9nZ2VyLmVycm9yKHJlc3VsdC5lcnJvciB8fCAnRmFpbGVkIHRvIGdldCBkb21haW4gc3RhdHVzJylcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICBcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICBDdXN0b20gRG9tYWluIFN0YXR1cycpXG4gICAgY29uc29sZS5sb2coJyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0nKVxuICAgIFxuICAgIGlmICghcmVzdWx0Lmhhc0N1c3RvbURvbWFpbikge1xuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBjb25zb2xlLmxvZygnICBObyBjdXN0b20gZG9tYWluIGNvbmZpZ3VyZWQuJylcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coJyAgWW91ciBkb2NzIGFyZSBhdmFpbGFibGUgYXQ6JylcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7bG9nZ2VyLmN5YW4ocmVzdWx0LnByb2plY3RVcmwpfWApXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGxvZ2dlci5pbmZvKCdUbyBhZGQgYSBjdXN0b20gZG9tYWluLCBydW46JylcbiAgICAgIGNvbnNvbGUubG9nKCcgIGRldmRvYyBkb21haW4gYWRkIGRvY3MueW91cmRvbWFpbi5jb20nKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coYCAgRG9tYWluOiAgJHtyZXN1bHQuZG9tYWlufWApXG4gICAgY29uc29sZS5sb2coYCAgU3RhdHVzOiAgJHtnZXRTdGF0dXNEaXNwbGF5KHJlc3VsdC5zdGF0dXMgfHwgJ3Vua25vd24nKX1gKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSAnYWN0aXZlJykge1xuICAgICAgY29uc29sZS5sb2coJyAgWW91ciBkb2NzIGFyZSBhdmFpbGFibGUgYXQ6JylcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7bG9nZ2VyLmN5YW4ocmVzdWx0LmN1c3RvbVVybCB8fCBgaHR0cHM6Ly8ke3Jlc3VsdC5kb21haW59YCl9YClcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coJyAgQWxzbyBhY2Nlc3NpYmxlIGF0OicpXG4gICAgICBjb25zb2xlLmxvZyhgICAke3Jlc3VsdC5wcm9qZWN0VXJsfWApXG4gICAgfSBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycgJiYgcmVzdWx0LmRuc1JlY29yZHMpIHtcbiAgICAgIGNvbnNvbGUubG9nKCcgIEFkZCB0aGVzZSBETlMgcmVjb3JkcyB0byB5b3VyIGRvbWFpbjonKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBjb25zb2xlLmxvZygnICBDTkFNRSBSZWNvcmQ6JylcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgTmFtZTogICR7cmVzdWx0LmRuc1JlY29yZHMuY25hbWUubmFtZX1gKVxuICAgICAgY29uc29sZS5sb2coYCAgICBWYWx1ZTogJHtyZXN1bHQuZG5zUmVjb3Jkcy5jbmFtZS52YWx1ZX1gKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBjb25zb2xlLmxvZygnICBUWFQgUmVjb3JkOicpXG4gICAgICBjb25zb2xlLmxvZyhgICAgIE5hbWU6ICAke3Jlc3VsdC5kbnNSZWNvcmRzLnR4dC5uYW1lfWApXG4gICAgICBjb25zb2xlLmxvZyhgICAgIFZhbHVlOiAke3Jlc3VsdC5kbnNSZWNvcmRzLnR4dC52YWx1ZX1gKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBsb2dnZXIuaW5mbygnQWZ0ZXIgYWRkaW5nIEROUyByZWNvcmRzLCBydW46IGRldmRvYyBkb21haW4gdmVyaWZ5JylcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5tZXNzYWdlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAke3Jlc3VsdC5tZXNzYWdlfWApXG4gICAgfVxuICAgIFxuICAgIGlmIChyZXN1bHQubmV4dFN0ZXApIHtcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgbG9nZ2VyLmluZm8oYE5leHQ6ICR7cmVzdWx0Lm5leHRTdGVwfWApXG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcilcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBnZXQgZG9tYWluIHN0YXR1czogJHttZXNzYWdlfWApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgZGlzcGxheSBzdHJpbmcgZm9yIHN0YXR1c1xuICovXG5mdW5jdGlvbiBnZXRTdGF0dXNEaXNwbGF5KHN0YXR1czogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgIHJldHVybiBsb2dnZXIueWVsbG93KCfij7MgUGVuZGluZyBETlMgY29uZmlndXJhdGlvbicpXG4gICAgY2FzZSAnZG5zX3ZlcmlmaWVkJzpcbiAgICAgIHJldHVybiBsb2dnZXIuY3lhbign4pyTIEROUyB2ZXJpZmllZCwgU1NMIHByb3Zpc2lvbmluZy4uLicpXG4gICAgY2FzZSAnc3NsX3Byb3Zpc2lvbmluZyc6XG4gICAgICByZXR1cm4gbG9nZ2VyLmN5YW4oJ/CflJIgU1NMIGNlcnRpZmljYXRlIHByb3Zpc2lvbmluZy4uLicpXG4gICAgY2FzZSAnYWN0aXZlJzpcbiAgICAgIHJldHVybiBsb2dnZXIuZ3JlZW4oJ+KckyBBY3RpdmUnKVxuICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgIHJldHVybiBsb2dnZXIucmVkKCfinJcgRXJyb3InKVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdHVzXG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERvbWFpbiBWZXJpZnkgQ29tbWFuZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJpZnkgRE5TIGNvbmZpZ3VyYXRpb24gZm9yIGN1c3RvbSBkb21haW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvbWFpblZlcmlmeShvcHRpb25zOiBEb21haW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHByb2plY3RSb290ID0gcHJvY2Vzcy5jd2QoKVxuICBjb25zdCBhcGlVcmwgPSBvcHRpb25zLnVybCB8fCBwcm9jZXNzLmVudi5ERVZET0NfQVBJX1VSTCB8fCBERUZBVUxUX0FQSV9VUkxcbiAgXG4gIGxvZ2dlci5pbmZvKCdWZXJpZnlpbmcgRE5TIGNvbmZpZ3VyYXRpb24uLi5cXG4nKVxuICBcbiAgLy8gTG9hZCBjb25maWdcbiAgY29uc3QgY29uZmlnID0gbG9hZERldkRvY0NvbmZpZyhwcm9qZWN0Um9vdClcbiAgaWYgKCFjb25maWcpIHtcbiAgICBsb2dnZXIuZXJyb3IoJy5kZXZkb2MuanNvbiBub3QgZm91bmQuIERlcGxveSB5b3VyIHByb2plY3QgZmlyc3Qgd2l0aCBcImRldmRvYyBkZXBsb3lcIicpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgXG4gIC8vIEdldCBBUEkga2V5XG4gIGNvbnN0IGFwaUtleSA9IGdldEFwaUtleShvcHRpb25zLCBjb25maWcpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgbG9nZ2VyLmVycm9yKCdBUEkga2V5IG5vdCBmb3VuZC4gRGVwbG95IHlvdXIgcHJvamVjdCBmaXJzdCBvciBwcm92aWRlIHZpYSAtLWFwaS1rZXknKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YXBpVXJsfS9hcGkvZG9tYWlucy92ZXJpZnlgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe30pLFxuICAgIH0pXG4gICAgXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIERvbWFpblZlcmlmeVJlc3BvbnNlXG4gICAgXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbG9nZ2VyLmVycm9yKHJlc3VsdC5lcnJvciB8fCAnRmFpbGVkIHRvIHZlcmlmeSBkb21haW4nKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKCcgIEROUyBWZXJpZmljYXRpb24gUmVzdWx0cycpXG4gICAgY29uc29sZS5sb2coJyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZyhgICBEb21haW46ICR7cmVzdWx0LmRvbWFpbn1gKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICAgIC8vIENOQU1FIGNoZWNrXG4gICAgY29uc29sZS5sb2coJyAgQ05BTUUgUmVjb3JkOicpXG4gICAgaWYgKHJlc3VsdC5jaGVja3MuY25hbWUudmFsaWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtsb2dnZXIuZ3JlZW4oJ+KckycpfSBGb3VuZDogJHtyZXN1bHQuY2hlY2tzLmNuYW1lLnZhbHVlfWApXG4gICAgfSBlbHNlIGlmIChyZXN1bHQuY2hlY2tzLmNuYW1lLmZvdW5kKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICR7bG9nZ2VyLnllbGxvdygnIScpfSBGb3VuZCBidXQgaW5jb3JyZWN0OiAke3Jlc3VsdC5jaGVja3MuY25hbWUudmFsdWV9YClcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgICBFeHBlY3RlZDogJHtyZXN1bHQuY2hlY2tzLmNuYW1lLmV4cGVjdGVkfWApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtsb2dnZXIucmVkKCfinJcnKX0gTm90IGZvdW5kYClcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgICBFeHBlY3RlZDogJHtyZXN1bHQuY2hlY2tzLmNuYW1lLmV4cGVjdGVkfWApXG4gICAgfVxuICAgIFxuICAgIC8vIFRYVCBjaGVja1xuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKCcgIFRYVCBWZXJpZmljYXRpb24gUmVjb3JkOicpXG4gICAgaWYgKHJlc3VsdC5jaGVja3MudHh0LnZlcmlmaWVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICR7bG9nZ2VyLmdyZWVuKCfinJMnKX0gVmVyaWZpZWRgKVxuICAgIH0gZWxzZSBpZiAocmVzdWx0LmNoZWNrcy50eHQuZm91bmQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtsb2dnZXIueWVsbG93KCchJyl9IEZvdW5kIGJ1dCB2YWx1ZSBkb2Vzbid0IG1hdGNoYClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYCAgICAke2xvZ2dlci5yZWQoJ+KclycpfSBOb3QgZm91bmRgKVxuICAgICAgY29uc29sZS5sb2coYCAgICAgIEV4cGVjdGVkOiAke3Jlc3VsdC5jaGVja3MudHh0LmV4cGVjdGVkfWApXG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ0ROUyB2ZXJpZmllZCEnKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBjb25zb2xlLmxvZyhgICAke3Jlc3VsdC5tZXNzYWdlfWApXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGxvZ2dlci5pbmZvKCdSdW4gXCJkZXZkb2MgZG9tYWluIHN0YXR1c1wiIHRvIGNoZWNrIFNTTCBwcm92aXNpb25pbmcgcHJvZ3Jlc3MuJylcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nZ2VyLndhcm4oJ0ROUyB2ZXJpZmljYXRpb24gaW5jb21wbGV0ZScpXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7cmVzdWx0Lm1lc3NhZ2V9YClcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgbG9nZ2VyLmluZm8oJ0ROUyBjaGFuZ2VzIGNhbiB0YWtlIDEtMjQgaG91cnMgdG8gcHJvcGFnYXRlLicpXG4gICAgICBsb2dnZXIuaW5mbygnUnVuIFwiZGV2ZG9jIGRvbWFpbiB2ZXJpZnlcIiBhZ2FpbiBsYXRlci4nKVxuICAgIH1cbiAgICBcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gdmVyaWZ5IGRvbWFpbjogJHttZXNzYWdlfWApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERvbWFpbiBSZW1vdmUgQ29tbWFuZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZW1vdmUgY3VzdG9tIGRvbWFpbiBmcm9tIHByb2plY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvbWFpblJlbW92ZShjdXN0b21Eb21haW46IHN0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9uczogRG9tYWluT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IHByb2Nlc3MuY3dkKClcbiAgY29uc3QgYXBpVXJsID0gb3B0aW9ucy51cmwgfHwgcHJvY2Vzcy5lbnYuREVWRE9DX0FQSV9VUkwgfHwgREVGQVVMVF9BUElfVVJMXG4gIFxuICBsb2dnZXIuaW5mbygnUmVtb3ZpbmcgY3VzdG9tIGRvbWFpbi4uLlxcbicpXG4gIFxuICAvLyBMb2FkIGNvbmZpZ1xuICBjb25zdCBjb25maWcgPSBsb2FkRGV2RG9jQ29uZmlnKHByb2plY3RSb290KVxuICBpZiAoIWNvbmZpZykge1xuICAgIGxvZ2dlci5lcnJvcignLmRldmRvYy5qc29uIG5vdCBmb3VuZC4gRGVwbG95IHlvdXIgcHJvamVjdCBmaXJzdCB3aXRoIFwiZGV2ZG9jIGRlcGxveVwiJylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgLy8gR2V0IEFQSSBrZXlcbiAgY29uc3QgYXBpS2V5ID0gZ2V0QXBpS2V5KG9wdGlvbnMsIGNvbmZpZylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ0FQSSBrZXkgbm90IGZvdW5kLiBEZXBsb3kgeW91ciBwcm9qZWN0IGZpcnN0IG9yIHByb3ZpZGUgdmlhIC0tYXBpLWtleScpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgXG4gIHRyeSB7XG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gICAgaWYgKGN1c3RvbURvbWFpbikge1xuICAgICAgYm9keS5jdXN0b21Eb21haW4gPSBub3JtYWxpemVEb21haW4oY3VzdG9tRG9tYWluKVxuICAgIH1cbiAgICBcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2FwaVVybH0vYXBpL2RvbWFpbnMvcmVtb3ZlYCwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgfSlcbiAgICBcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCkgYXMgRG9tYWluUmVtb3ZlUmVzcG9uc2VcbiAgICBcbiAgICBpZiAoIXJlc3BvbnNlLm9rIHx8ICFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgbG9nZ2VyLmVycm9yKHJlc3VsdC5lcnJvciB8fCAnRmFpbGVkIHRvIHJlbW92ZSBkb21haW4nKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIFxuICAgIGxvZ2dlci5zdWNjZXNzKGDinJMgRG9tYWluICR7cmVzdWx0LmRvbWFpbn0gcmVtb3ZlZGApXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coJyAgWW91ciBkb2NzIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IHRoZSBkZWZhdWx0IHN1YmRvbWFpbi4nKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGxvZ2dlci5pbmZvKCdZb3UgY2FuIGFkZCBhIG5ldyBjdXN0b20gZG9tYWluIGFueXRpbWUgd2l0aDonKVxuICAgIGNvbnNvbGUubG9nKCcgIGRldmRvYyBkb21haW4gYWRkIGRvY3MueW91cmRvbWFpbi5jb20nKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcilcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byByZW1vdmUgZG9tYWluOiAke21lc3NhZ2V9YClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxufVxuIl19
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9kb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF3SUEsOEJBOEVDO0FBU0Qsb0NBNkZDO0FBNkJELG9DQWdHQztBQVNELG9DQTJEQztBQTdmRCxnREFBdUI7QUFDdkIsd0RBQXlCO0FBQ3pCLCtDQUEyQztBQUMzQywrQ0FBaUQ7QUFrRWpEOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFtQjtJQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUN6RCxJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxPQUFPLGtCQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBaUIsQ0FBQTtJQUNwRCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsT0FBc0IsRUFBRSxNQUEyQjtJQUNwRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUE7QUFDL0UsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxNQUFjO0lBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ3RELENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxF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QUFRLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLGVBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELGVBQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxNQUFNLENBQUMsTUFBTSxVQUFVLENBQUMsQ0FBQTtRQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO1FBQ3RFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDZixlQUFNLENBQUMsSUFBSSxDQUFDLCtDQUErQyxDQUFDLENBQUE7UUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFakIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEUsZUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZ2dlcidcbmltcG9ydCB7IERFRkFVTFRfQVBJX1VSTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cydcblxuaW50ZXJmYWNlIERvbWFpbk9wdGlvbnMge1xuICB1cmw/OiBzdHJpbmdcbiAgYXBpS2V5Pzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBEZXZEb2NDb25maWcge1xuICBwcm9qZWN0SWQ/OiBzdHJpbmdcbiAgbmFtZT86IHN0cmluZ1xuICBzbHVnPzogc3RyaW5nXG4gIHN1YmRvbWFpbj86IHN0cmluZ1xuICBhcGlLZXk/OiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG4gIGxhc3REZXBsb3llZD86IHN0cmluZ1xuICBjcmVhdGVkQXQ/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIERvbWFpbkFkZFJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhblxuICBkb21haW46IHN0cmluZ1xuICBwcm9qZWN0U2x1Zzogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIHZlcmlmaWNhdGlvbjoge1xuICAgIGNuYW1lOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9XG4gICAgdHh0OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9XG4gIH1cbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmdbXVxuICBlcnJvcj86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRG9tYWluU3RhdHVzUmVzcG9uc2Uge1xuICBoYXNDdXN0b21Eb21haW46IGJvb2xlYW5cbiAgZG9tYWluPzogc3RyaW5nXG4gIHN0YXR1cz86IHN0cmluZ1xuICBwcm9qZWN0U2x1Zzogc3RyaW5nXG4gIHByb2plY3RVcmw6IHN0cmluZ1xuICBjdXN0b21Vcmw/OiBzdHJpbmdcbiAgbWVzc2FnZT86IHN0cmluZ1xuICBkbnNSZWNvcmRzPzoge1xuICAgIGNuYW1lOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9XG4gICAgdHh0OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9XG4gIH1cbiAgbmV4dFN0ZXA/OiBzdHJpbmdcbiAgZXJyb3I/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIERvbWFpblZlcmlmeVJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhblxuICBkb21haW46IHN0cmluZ1xuICBzdGF0dXM6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbiAgY2hlY2tzOiB7XG4gICAgY25hbWU6IHsgZm91bmQ6IGJvb2xlYW47IHZhbHVlOiBzdHJpbmcgfCBudWxsOyB2YWxpZDogYm9vbGVhbjsgZXhwZWN0ZWQ6IHN0cmluZyB9XG4gICAgdHh0OiB7IGZvdW5kOiBib29sZWFuOyB2ZXJpZmllZDogYm9vbGVhbjsgZXhwZWN0ZWQ6IHN0cmluZyB9XG4gIH1cbiAgZXJyb3I/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIERvbWFpblJlbW92ZVJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhblxuICBtZXNzYWdlOiBzdHJpbmdcbiAgZG9tYWluOiBzdHJpbmdcbiAgZXJyb3I/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBMb2FkIC5kZXZkb2MuanNvbiBhbmQgZ2V0IEFQSSBrZXlcbiAqL1xuZnVuY3Rpb24gbG9hZERldkRvY0NvbmZpZyhwcm9qZWN0Um9vdDogc3RyaW5nKTogRGV2RG9jQ29uZmlnIHwgbnVsbCB7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBwYXRoLmpvaW4ocHJvamVjdFJvb3QsICcuZGV2ZG9jLmpzb24nKVxuICBpZiAoIWZzLmV4aXN0c1N5bmMoY29uZmlnUGF0aCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZzLnJlYWRKc29uU3luYyhjb25maWdQYXRoKSBhcyBEZXZEb2NDb25maWdcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG4vKipcbiAqIEdldCBBUEkga2V5IGZyb20gb3B0aW9ucywgZW52LCBvciBjb25maWdcbiAqL1xuZnVuY3Rpb24gZ2V0QXBpS2V5KG9wdGlvbnM6IERvbWFpbk9wdGlvbnMsIGNvbmZpZzogRGV2RG9jQ29uZmlnIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gb3B0aW9ucy5hcGlLZXkgfHwgcHJvY2Vzcy5lbnYuREVWRE9DX0FQSV9LRVkgfHwgY29uZmlnPy5hcGlLZXkgfHwgbnVsbFxufVxuXG4vKipcbiAqIFZhbGlkYXRlIGRvbWFpbiBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZERvbWFpbkZvcm1hdChkb21haW46IHN0cmluZyk6IHsgdmFsaWQ6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0ge1xuICBpZiAoIWRvbWFpbikge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdEb21haW4gaXMgcmVxdWlyZWQnIH1cbiAgfVxuICBcbiAgaWYgKGRvbWFpbi5sZW5ndGggPCA0KSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ0RvbWFpbiBtdXN0IGJlIGF0IGxlYXN0IDQgY2hhcmFjdGVycycgfVxuICB9XG4gIFxuICAvLyBCYXNpYyBkb21haW4gZm9ybWF0IGNoZWNrXG4gIGNvbnN0IGRvbWFpblJlZ2V4ID0gL14oPyEtKVthLXpBLVowLTktXSsoPzpcXC5bYS16QS1aMC05LV0rKSpcXC5bYS16QS1aXXsyLH0kL1xuICBpZiAoIWRvbWFpblJlZ2V4LnRlc3QoZG9tYWluKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdJbnZhbGlkIGRvbWFpbiBmb3JtYXQuIEV4YW1wbGU6IGRvY3MuZXhhbXBsZS5jb20nIH1cbiAgfVxuICBcbiAgLy8gQ2hlY2sgZm9yIHJlc2VydmVkIGRvbWFpbnNcbiAgY29uc3QgcmVzZXJ2ZWQgPSBbJ2RldmRvYy5zaCcsICdkZXZkb2MuaW8nLCAnZGV2ZG9jLmNvbSddXG4gIGlmIChyZXNlcnZlZC5zb21lKHIgPT4gZG9tYWluID09PSByIHx8IGRvbWFpbi5lbmRzV2l0aChgLiR7cn1gKSkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnQ2Fubm90IHVzZSBhIHJlc2VydmVkIERldkRvYyBkb21haW4nIH1cbiAgfVxuICBcbiAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBkb21haW4gKGxvd2VyY2FzZSwgcmVtb3ZlIHByb3RvY29sL3BhdGgpXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURvbWFpbihkb21haW46IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBub3JtYWxpemVkID0gZG9tYWluLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnJlcGxhY2UoL15odHRwcz86XFwvXFwvLywgJycpXG4gIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNwbGl0KCcvJylbMF1cbiAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3BsaXQoJzonKVswXVxuICByZXR1cm4gbm9ybWFsaXplZFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRG9tYWluIEFkZCBDb21tYW5kXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFkZCBhIGN1c3RvbSBkb21haW4gdG8gdGhlIHByb2plY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvbWFpbkFkZChjdXN0b21Eb21haW46IHN0cmluZywgb3B0aW9uczogRG9tYWluT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IHByb2Nlc3MuY3dkKClcbiAgY29uc3QgYXBpVXJsID0gb3B0aW9ucy51cmwgfHwgcHJvY2Vzcy5lbnYuREVWRE9DX0FQSV9VUkwgfHwgREVGQVVMVF9BUElfVVJMXG4gIFxuICBsb2dnZXIuaW5mbygnQWRkaW5nIGN1c3RvbSBkb21haW4uLi5cXG4nKVxuICBcbiAgLy8gTG9hZCBjb25maWdcbiAgY29uc3QgY29uZmlnID0gbG9hZERldkRvY0NvbmZpZyhwcm9qZWN0Um9vdClcbiAgaWYgKCFjb25maWcpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ1Byb2plY3Qgbm90IGluaXRpYWxpemVkLicpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgbG9nZ2VyLmluZm8oJ1J1biBcImRldmRvYyBpbml0XCIgdG8gaW5pdGlhbGl6ZSwgdGhlbiBcImRldmRvYyBkZXBsb3lcIiB0byBkZXBsb3kuJylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgLy8gR2V0IEFQSSBrZXkgLSByZXF1aXJlZCBiZWNhdXNlIGN1c3RvbSBkb21haW5zIG5lZWQgYSBkZXBsb3llZCBwcm9qZWN0XG4gIGNvbnN0IGFwaUtleSA9IGdldEFwaUtleShvcHRpb25zLCBjb25maWcpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgbG9nZ2VyLmVycm9yKCdQcm9qZWN0IG5vdCBkZXBsb3llZCB5ZXQuJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICBDdXN0b20gZG9tYWlucyByZXF1aXJlIGEgZGVwbG95ZWQgcHJvamVjdC4nKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKCcgIFRvIHNldCB1cCBhIGN1c3RvbSBkb21haW46JylcbiAgICBjb25zb2xlLmxvZygnICAgIDEuIERlcGxveSB5b3VyIHByb2plY3QgZmlyc3Q6ICBkZXZkb2MgZGVwbG95JylcbiAgICBjb25zb2xlLmxvZygnICAgIDIuIFRoZW4gYWRkIHlvdXIgZG9tYWluOiAgICAgICBkZXZkb2MgZG9tYWluIGFkZCAnICsgY3VzdG9tRG9tYWluKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICAvLyBOb3JtYWxpemUgYW5kIHZhbGlkYXRlIGRvbWFpblxuICBjb25zdCBkb21haW4gPSBub3JtYWxpemVEb21haW4oY3VzdG9tRG9tYWluKVxuICBjb25zdCB2YWxpZGF0aW9uID0gaXNWYWxpZERvbWFpbkZvcm1hdChkb21haW4pXG4gIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgIGxvZ2dlci5lcnJvcih2YWxpZGF0aW9uLmVycm9yISlcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgbG9nZ2VyLmluZm8oYERvbWFpbjogJHtkb21haW59YClcbiAgY29uc29sZS5sb2coJycpXG4gIFxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YXBpVXJsfS9hcGkvZG9tYWlucy9hZGRgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBjdXN0b21Eb21haW46IGRvbWFpbiB9KSxcbiAgICB9KVxuICAgIFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBEb21haW5BZGRSZXNwb25zZVxuICAgIFxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICBsb2dnZXIuZXJyb3IocmVzdWx0LmVycm9yIHx8ICdGYWlsZWQgdG8gYWRkIGRvbWFpbicpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG4gICAgXG4gICAgbG9nZ2VyLnN1Y2Nlc3MoYOKckyBEb21haW4gJHtkb21haW59IGFkZGVkIWApXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coJyAgTmV4dCwgYWRkIHRoZXNlIEROUyByZWNvcmRzIHRvIHlvdXIgZG9tYWluIHByb3ZpZGVyOicpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coJyAgMS4gQ05BTUUgUmVjb3JkOicpXG4gICAgY29uc29sZS5sb2coYCAgICAgTmFtZTogICR7cmVzdWx0LnZlcmlmaWNhdGlvbi5jbmFtZS5uYW1lfWApXG4gICAgY29uc29sZS5sb2coYCAgICAgVmFsdWU6ICR7cmVzdWx0LnZlcmlmaWNhdGlvbi5jbmFtZS52YWx1ZX1gKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKCcgIDIuIFRYVCBSZWNvcmQgKGZvciB2ZXJpZmljYXRpb24pOicpXG4gICAgY29uc29sZS5sb2coYCAgICAgTmFtZTogICR7cmVzdWx0LnZlcmlmaWNhdGlvbi50eHQubmFtZX1gKVxuICAgIGNvbnNvbGUubG9nKGAgICAgIFZhbHVlOiAke3Jlc3VsdC52ZXJpZmljYXRpb24udHh0LnZhbHVlfWApXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgbG9nZ2VyLmluZm8oJ0FmdGVyIGFkZGluZyBETlMgcmVjb3JkcywgcnVuOicpXG4gICAgY29uc29sZS5sb2coJyAgZGV2ZG9jIGRvbWFpbiB2ZXJpZnknKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIFxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcilcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBhZGQgZG9tYWluOiAke21lc3NhZ2V9YClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRG9tYWluIFN0YXR1cyBDb21tYW5kXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENoZWNrIHN0YXR1cyBvZiBjdXN0b20gZG9tYWluXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb21haW5TdGF0dXMob3B0aW9uczogRG9tYWluT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IHByb2Nlc3MuY3dkKClcbiAgY29uc3QgYXBpVXJsID0gb3B0aW9ucy51cmwgfHwgcHJvY2Vzcy5lbnYuREVWRE9DX0FQSV9VUkwgfHwgREVGQVVMVF9BUElfVVJMXG4gIFxuICAvLyBMb2FkIGNvbmZpZ1xuICBjb25zdCBjb25maWcgPSBsb2FkRGV2RG9jQ29uZmlnKHByb2plY3RSb290KVxuICBpZiAoIWNvbmZpZykge1xuICAgIGxvZ2dlci5lcnJvcignUHJvamVjdCBub3QgaW5pdGlhbGl6ZWQuJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBsb2dnZXIuaW5mbygnUnVuIFwiZGV2ZG9jIGluaXRcIiB0byBpbml0aWFsaXplLCB0aGVuIFwiZGV2ZG9jIGRlcGxveVwiIHRvIGRlcGxveS4nKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICAvLyBHZXQgQVBJIGtleVxuICBjb25zdCBhcGlLZXkgPSBnZXRBcGlLZXkob3B0aW9ucywgY29uZmlnKVxuICBpZiAoIWFwaUtleSkge1xuICAgIGxvZ2dlci5lcnJvcignUHJvamVjdCBub3QgZGVwbG95ZWQgeWV0LicpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgbG9nZ2VyLmluZm8oJ0RlcGxveSB5b3VyIHByb2plY3QgZmlyc3Qgd2l0aCBcImRldmRvYyBkZXBsb3lcIicpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHthcGlVcmx9L2FwaS9kb21haW5zL3N0YXR1c2AsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICB9KVxuICAgIFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBEb21haW5TdGF0dXNSZXNwb25zZVxuICAgIFxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGxvZ2dlci5lcnJvcihyZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byBnZXQgZG9tYWluIHN0YXR1cycpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coJyAgQ3VzdG9tIERvbWFpbiBTdGF0dXMnKVxuICAgIGNvbnNvbGUubG9nKCcgIC0tLS0tLS0tLS0tLS0tLS0tLS0tJylcbiAgICBcbiAgICBpZiAoIXJlc3VsdC5oYXNDdXN0b21Eb21haW4pIHtcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coJyAgTm8gY3VzdG9tIGRvbWFpbiBjb25maWd1cmVkLicpXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGNvbnNvbGUubG9nKCcgIFlvdXIgZG9jcyBhcmUgYXZhaWxhYmxlIGF0OicpXG4gICAgICBjb25zb2xlLmxvZyhgICAke2xvZ2dlci5jeWFuKHJlc3VsdC5wcm9qZWN0VXJsKX1gKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBsb2dnZXIuaW5mbygnVG8gYWRkIGEgY3VzdG9tIGRvbWFpbiwgcnVuOicpXG4gICAgICBjb25zb2xlLmxvZygnICBkZXZkb2MgZG9tYWluIGFkZCBkb2NzLnlvdXJkb21haW4uY29tJylcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKGAgIERvbWFpbjogICR7cmVzdWx0LmRvbWFpbn1gKVxuICAgIGNvbnNvbGUubG9nKGAgIFN0YXR1czogICR7Z2V0U3RhdHVzRGlzcGxheShyZXN1bHQuc3RhdHVzIHx8ICd1bmtub3duJyl9YClcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ2FjdGl2ZScpIHtcbiAgICAgIGNvbnNvbGUubG9nKCcgIFlvdXIgZG9jcyBhcmUgYXZhaWxhYmxlIGF0OicpXG4gICAgICBjb25zb2xlLmxvZyhgICAke2xvZ2dlci5jeWFuKHJlc3VsdC5jdXN0b21VcmwgfHwgYGh0dHBzOi8vJHtyZXN1bHQuZG9tYWlufWApfWApXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGNvbnNvbGUubG9nKCcgIEFsc28gYWNjZXNzaWJsZSBhdDonKVxuICAgICAgY29uc29sZS5sb2coYCAgJHtyZXN1bHQucHJvamVjdFVybH1gKVxuICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnICYmIHJlc3VsdC5kbnNSZWNvcmRzKSB7XG4gICAgICBjb25zb2xlLmxvZygnICBBZGQgdGhlc2UgRE5TIHJlY29yZHMgdG8geW91ciBkb21haW46JylcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coJyAgQ05BTUUgUmVjb3JkOicpXG4gICAgICBjb25zb2xlLmxvZyhgICAgIE5hbWU6ICAke3Jlc3VsdC5kbnNSZWNvcmRzLmNuYW1lLm5hbWV9YClcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgVmFsdWU6ICR7cmVzdWx0LmRuc1JlY29yZHMuY25hbWUudmFsdWV9YClcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coJyAgVFhUIFJlY29yZDonKVxuICAgICAgY29uc29sZS5sb2coYCAgICBOYW1lOiAgJHtyZXN1bHQuZG5zUmVjb3Jkcy50eHQubmFtZX1gKVxuICAgICAgY29uc29sZS5sb2coYCAgICBWYWx1ZTogJHtyZXN1bHQuZG5zUmVjb3Jkcy50eHQudmFsdWV9YClcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgbG9nZ2VyLmluZm8oJ0FmdGVyIGFkZGluZyBETlMgcmVjb3JkcywgcnVuOiBkZXZkb2MgZG9tYWluIHZlcmlmeScpXG4gICAgfSBlbHNlIGlmIChyZXN1bHQubWVzc2FnZSkge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtyZXN1bHQubWVzc2FnZX1gKVxuICAgIH1cbiAgICBcbiAgICBpZiAocmVzdWx0Lm5leHRTdGVwKSB7XG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGxvZ2dlci5pbmZvKGBOZXh0OiAke3Jlc3VsdC5uZXh0U3RlcH1gKVxuICAgIH1cbiAgICBcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gZ2V0IGRvbWFpbiBzdGF0dXM6ICR7bWVzc2FnZX1gKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG59XG5cbi8qKlxuICogR2V0IGRpc3BsYXkgc3RyaW5nIGZvciBzdGF0dXNcbiAqL1xuZnVuY3Rpb24gZ2V0U3RhdHVzRGlzcGxheShzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSAncGVuZGluZyc6XG4gICAgICByZXR1cm4gbG9nZ2VyLnllbGxvdygn4o+zIFBlbmRpbmcgRE5TIGNvbmZpZ3VyYXRpb24nKVxuICAgIGNhc2UgJ2Ruc192ZXJpZmllZCc6XG4gICAgICByZXR1cm4gbG9nZ2VyLmN5YW4oJ+KckyBETlMgdmVyaWZpZWQsIFNTTCBwcm92aXNpb25pbmcuLi4nKVxuICAgIGNhc2UgJ3NzbF9wcm92aXNpb25pbmcnOlxuICAgICAgcmV0dXJuIGxvZ2dlci5jeWFuKCfwn5SSIFNTTCBjZXJ0aWZpY2F0ZSBwcm92aXNpb25pbmcuLi4nKVxuICAgIGNhc2UgJ2FjdGl2ZSc6XG4gICAgICByZXR1cm4gbG9nZ2VyLmdyZWVuKCfinJMgQWN0aXZlJylcbiAgICBjYXNlICdlcnJvcic6XG4gICAgICByZXR1cm4gbG9nZ2VyLnJlZCgn4pyXIEVycm9yJylcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXR1c1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEb21haW4gVmVyaWZ5IENvbW1hbmRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVmVyaWZ5IEROUyBjb25maWd1cmF0aW9uIGZvciBjdXN0b20gZG9tYWluXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb21haW5WZXJpZnkob3B0aW9uczogRG9tYWluT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IHByb2Nlc3MuY3dkKClcbiAgY29uc3QgYXBpVXJsID0gb3B0aW9ucy51cmwgfHwgcHJvY2Vzcy5lbnYuREVWRE9DX0FQSV9VUkwgfHwgREVGQVVMVF9BUElfVVJMXG4gIFxuICBsb2dnZXIuaW5mbygnVmVyaWZ5aW5nIEROUyBjb25maWd1cmF0aW9uLi4uXFxuJylcbiAgXG4gIC8vIExvYWQgY29uZmlnXG4gIGNvbnN0IGNvbmZpZyA9IGxvYWREZXZEb2NDb25maWcocHJvamVjdFJvb3QpXG4gIGlmICghY29uZmlnKSB7XG4gICAgbG9nZ2VyLmVycm9yKCdQcm9qZWN0IG5vdCBpbml0aWFsaXplZC4nKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGxvZ2dlci5pbmZvKCdSdW4gXCJkZXZkb2MgaW5pdFwiIHRvIGluaXRpYWxpemUsIHRoZW4gXCJkZXZkb2MgZGVwbG95XCIgdG8gZGVwbG95LicpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgXG4gIC8vIEdldCBBUEkga2V5XG4gIGNvbnN0IGFwaUtleSA9IGdldEFwaUtleShvcHRpb25zLCBjb25maWcpXG4gIGlmICghYXBpS2V5KSB7XG4gICAgbG9nZ2VyLmVycm9yKCdQcm9qZWN0IG5vdCBkZXBsb3llZCB5ZXQuJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBsb2dnZXIuaW5mbygnRGVwbG95IHlvdXIgcHJvamVjdCBmaXJzdCB3aXRoIFwiZGV2ZG9jIGRlcGxveVwiJylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2FwaVVybH0vYXBpL2RvbWFpbnMvdmVyaWZ5YCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHt9KSxcbiAgICB9KVxuICAgIFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBEb21haW5WZXJpZnlSZXNwb25zZVxuICAgIFxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGxvZ2dlci5lcnJvcihyZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byB2ZXJpZnkgZG9tYWluJylcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICBcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICBETlMgVmVyaWZpY2F0aW9uIFJlc3VsdHMnKVxuICAgIGNvbnNvbGUubG9nKCcgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgY29uc29sZS5sb2coYCAgRG9tYWluOiAke3Jlc3VsdC5kb21haW59YClcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgICAvLyBDTkFNRSBjaGVja1xuICAgIGNvbnNvbGUubG9nKCcgIENOQU1FIFJlY29yZDonKVxuICAgIGlmIChyZXN1bHQuY2hlY2tzLmNuYW1lLnZhbGlkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICR7bG9nZ2VyLmdyZWVuKCfinJMnKX0gRm91bmQ6ICR7cmVzdWx0LmNoZWNrcy5jbmFtZS52YWx1ZX1gKVxuICAgIH0gZWxzZSBpZiAocmVzdWx0LmNoZWNrcy5jbmFtZS5mb3VuZCkge1xuICAgICAgY29uc29sZS5sb2coYCAgICAke2xvZ2dlci55ZWxsb3coJyEnKX0gRm91bmQgYnV0IGluY29ycmVjdDogJHtyZXN1bHQuY2hlY2tzLmNuYW1lLnZhbHVlfWApXG4gICAgICBjb25zb2xlLmxvZyhgICAgICAgRXhwZWN0ZWQ6ICR7cmVzdWx0LmNoZWNrcy5jbmFtZS5leHBlY3RlZH1gKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICR7bG9nZ2VyLnJlZCgn4pyXJyl9IE5vdCBmb3VuZGApXG4gICAgICBjb25zb2xlLmxvZyhgICAgICAgRXhwZWN0ZWQ6ICR7cmVzdWx0LmNoZWNrcy5jbmFtZS5leHBlY3RlZH1gKVxuICAgIH1cbiAgICBcbiAgICAvLyBUWFQgY2hlY2tcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBjb25zb2xlLmxvZygnICBUWFQgVmVyaWZpY2F0aW9uIFJlY29yZDonKVxuICAgIGlmIChyZXN1bHQuY2hlY2tzLnR4dC52ZXJpZmllZCkge1xuICAgICAgY29uc29sZS5sb2coYCAgICAke2xvZ2dlci5ncmVlbign4pyTJyl9IFZlcmlmaWVkYClcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5jaGVja3MudHh0LmZvdW5kKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICR7bG9nZ2VyLnllbGxvdygnIScpfSBGb3VuZCBidXQgdmFsdWUgZG9lc24ndCBtYXRjaGApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtsb2dnZXIucmVkKCfinJcnKX0gTm90IGZvdW5kYClcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgICBFeHBlY3RlZDogJHtyZXN1bHQuY2hlY2tzLnR4dC5leHBlY3RlZH1gKVxuICAgIH1cbiAgICBcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKCdETlMgdmVyaWZpZWQhJylcbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgICAgY29uc29sZS5sb2coYCAgJHtyZXN1bHQubWVzc2FnZX1gKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBsb2dnZXIuaW5mbygnUnVuIFwiZGV2ZG9jIGRvbWFpbiBzdGF0dXNcIiB0byBjaGVjayBTU0wgcHJvdmlzaW9uaW5nIHByb2dyZXNzLicpXG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci53YXJuKCdETlMgdmVyaWZpY2F0aW9uIGluY29tcGxldGUnKVxuICAgICAgY29uc29sZS5sb2coJycpXG4gICAgICBjb25zb2xlLmxvZyhgICAke3Jlc3VsdC5tZXNzYWdlfWApXG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICAgIGxvZ2dlci5pbmZvKCdETlMgY2hhbmdlcyBjYW4gdGFrZSAxLTI0IGhvdXJzIHRvIHByb3BhZ2F0ZS4nKVxuICAgICAgbG9nZ2VyLmluZm8oJ1J1biBcImRldmRvYyBkb21haW4gdmVyaWZ5XCIgYWdhaW4gbGF0ZXIuJylcbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKVxuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHZlcmlmeSBkb21haW46ICR7bWVzc2FnZX1gKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEb21haW4gUmVtb3ZlIENvbW1hbmRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVtb3ZlIGN1c3RvbSBkb21haW4gZnJvbSBwcm9qZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb21haW5SZW1vdmUoY3VzdG9tRG9tYWluOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM6IERvbWFpbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBwcm9jZXNzLmN3ZCgpXG4gIGNvbnN0IGFwaVVybCA9IG9wdGlvbnMudXJsIHx8IHByb2Nlc3MuZW52LkRFVkRPQ19BUElfVVJMIHx8IERFRkFVTFRfQVBJX1VSTFxuICBcbiAgbG9nZ2VyLmluZm8oJ1JlbW92aW5nIGN1c3RvbSBkb21haW4uLi5cXG4nKVxuICBcbiAgLy8gTG9hZCBjb25maWdcbiAgY29uc3QgY29uZmlnID0gbG9hZERldkRvY0NvbmZpZyhwcm9qZWN0Um9vdClcbiAgaWYgKCFjb25maWcpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ1Byb2plY3Qgbm90IGluaXRpYWxpemVkLicpXG4gICAgY29uc29sZS5sb2coJycpXG4gICAgbG9nZ2VyLmluZm8oJ1J1biBcImRldmRvYyBpbml0XCIgdG8gaW5pdGlhbGl6ZSwgdGhlbiBcImRldmRvYyBkZXBsb3lcIiB0byBkZXBsb3kuJylcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBcbiAgLy8gR2V0IEFQSSBrZXlcbiAgY29uc3QgYXBpS2V5ID0gZ2V0QXBpS2V5KG9wdGlvbnMsIGNvbmZpZylcbiAgaWYgKCFhcGlLZXkpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ1Byb2plY3Qgbm90IGRlcGxveWVkIHlldC4nKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGxvZ2dlci5pbmZvKCdEZXBsb3kgeW91ciBwcm9qZWN0IGZpcnN0IHdpdGggXCJkZXZkb2MgZGVwbG95XCInKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIFxuICB0cnkge1xuICAgIGNvbnN0IGJvZHk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICAgIGlmIChjdXN0b21Eb21haW4pIHtcbiAgICAgIGJvZHkuY3VzdG9tRG9tYWluID0gbm9ybWFsaXplRG9tYWluKGN1c3RvbURvbWFpbilcbiAgICB9XG4gICAgXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHthcGlVcmx9L2FwaS9kb21haW5zL3JlbW92ZWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgIH0pXG4gICAgXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIERvbWFpblJlbW92ZVJlc3BvbnNlXG4gICAgXG4gICAgaWYgKCFyZXNwb25zZS5vayB8fCAhcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihyZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byByZW1vdmUgZG9tYWluJylcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICBcbiAgICBsb2dnZXIuc3VjY2Vzcyhg4pyTIERvbWFpbiAke3Jlc3VsdC5kb21haW59IHJlbW92ZWRgKVxuICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIGNvbnNvbGUubG9nKCcgIFlvdXIgZG9jcyByZW1haW4gYWNjZXNzaWJsZSBhdCB0aGUgZGVmYXVsdCBzdWJkb21haW4uJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBsb2dnZXIuaW5mbygnWW91IGNhbiBhZGQgYSBuZXcgY3VzdG9tIGRvbWFpbiBhbnl0aW1lIHdpdGg6JylcbiAgICBjb25zb2xlLmxvZygnICBkZXZkb2MgZG9tYWluIGFkZCBkb2NzLnlvdXJkb21haW4uY29tJylcbiAgICBjb25zb2xlLmxvZygnJylcbiAgICBcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gcmVtb3ZlIGRvbWFpbjogJHttZXNzYWdlfWApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED