vcomply-workflow-engine 2.4.9 → 2.4.21
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/bundles/vcomply-workflow-engine.umd.js +64 -49
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +2 -2
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +19 -18
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +12 -11
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +48 -35
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +155 -159
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +6 -5
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +231 -232
- package/fesm2015/vcomply-workflow-engine.js +64 -49
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/package.json +2 -2
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js
CHANGED
|
@@ -278,7 +278,7 @@ export class ImportAnAssessmentComponent {
|
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
280
|
generateDateTime(type, question, index) {
|
|
281
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7
|
|
281
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
|
|
282
282
|
return {
|
|
283
283
|
type: type, name: `Question_${index}`, page: 1,
|
|
284
284
|
hasValidation: false, validationType: '',
|
|
@@ -286,16 +286,16 @@ export class ImportAnAssessmentComponent {
|
|
|
286
286
|
hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100,
|
|
287
287
|
title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
|
|
288
288
|
hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
|
|
289
|
-
hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.
|
|
290
|
-
randomize: question[(
|
|
289
|
+
hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.comment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString().trim(),
|
|
290
|
+
randomize: question[(_v = this.colMap) === null || _v === void 0 ? void 0 : _v.randomize] === 'Yes' ? true : false, hasOther: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.other] === 'Yes' ? true : false,
|
|
291
291
|
otherValue: 'Other',
|
|
292
|
-
alignment: question[(
|
|
292
|
+
alignment: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.alignment] === 'Yes' ? true : false,
|
|
293
293
|
reverse: false,
|
|
294
|
-
isRespondentAttachment: question[(
|
|
294
|
+
isRespondentAttachment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.userattachment] === 'Yes' ? true : false,
|
|
295
295
|
userAttachedFiles: [],
|
|
296
296
|
visibilityLogic: [],
|
|
297
|
-
isRespondentComment: question[(
|
|
298
|
-
otherConfig: { color: "#000000", isFailed: false, score: (
|
|
297
|
+
isRespondentComment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.usercomment] === 'Yes' ? true : false,
|
|
298
|
+
otherConfig: { color: "#000000", isFailed: false, score: (_1 = question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.score]) !== null && _1 !== void 0 ? _1 : 1 },
|
|
299
299
|
choices: [{
|
|
300
300
|
title: '',
|
|
301
301
|
value: 1,
|
|
@@ -304,7 +304,7 @@ export class ImportAnAssessmentComponent {
|
|
|
304
304
|
hasHelpingLabel: false,
|
|
305
305
|
helpingLabel: "",
|
|
306
306
|
isFailed: false,
|
|
307
|
-
score: (
|
|
307
|
+
score: (_3 = question[(_2 = this.colMap) === null || _2 === void 0 ? void 0 : _2.score]) !== null && _3 !== void 0 ? _3 : 1,
|
|
308
308
|
color: "#000000"
|
|
309
309
|
}],
|
|
310
310
|
hasDate: true,
|
|
@@ -312,11 +312,11 @@ export class ImportAnAssessmentComponent {
|
|
|
312
312
|
dateFormat: "DD/MM/YYYY",
|
|
313
313
|
timeFormat: 24,
|
|
314
314
|
date: {
|
|
315
|
-
title: (
|
|
315
|
+
title: (_5 = question[(_4 = this.colMap) === null || _4 === void 0 ? void 0 : _4.placeholder]) !== null && _5 !== void 0 ? _5 : 'Select Date',
|
|
316
316
|
value: ""
|
|
317
317
|
},
|
|
318
318
|
time: {
|
|
319
|
-
title: (
|
|
319
|
+
title: (_7 = question[(_6 = this.colMap) === null || _6 === void 0 ? void 0 : _6.placeholder]) !== null && _7 !== void 0 ? _7 : 'Select Time',
|
|
320
320
|
value: ""
|
|
321
321
|
},
|
|
322
322
|
};
|
|
@@ -400,6 +400,7 @@ export class ImportAnAssessmentComponent {
|
|
|
400
400
|
checkFormat(assessmentData) {
|
|
401
401
|
var _a;
|
|
402
402
|
const orgInTemplate = this.categoryData[0][5];
|
|
403
|
+
console.log("temp", orgInTemplate, this.organizationId);
|
|
403
404
|
//Completly blank excel sheet
|
|
404
405
|
if (assessmentData.length === 0 || orgInTemplate !== this.organizationId) {
|
|
405
406
|
this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
@@ -561,4 +562,4 @@ ImportAnAssessmentComponent.propDecorators = {
|
|
|
561
562
|
closeWorkflow: [{ type: Output }],
|
|
562
563
|
disconnectRefresh: [{ type: Output }]
|
|
563
564
|
};
|
|
564
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFLL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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USxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0IsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUFFLGlCQUFpQixFQUFFLEVBQUU7WUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMvTCxlQUFlLEVBQUUsRUFBRTtZQUNuQixXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLG1DQUFJLENBQUMsRUFBRTtZQUM1RixPQUFPLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsQ0FBQztvQkFDUixVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLENBQUM7b0JBQ1gsZUFBZSxFQUFFLEtBQUs7b0JBQ3RCLFlBQVksRUFBRSxFQUFFO29CQUNoQixRQUFRLEVBQUUsS0FBSztvQkFDZixLQUFLLEVBQUUsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsbUNBQUksQ0FBQztvQkFDeEMsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVcsRUFBQyxRQUFhLEVBQUUsS0FBVTs7UUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDL0IsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUMsYUFBYSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUM5RyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEdBQUc7WUFBRSxLQUFLLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SSxjQUFjLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN2SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLE9BQU8sQ0FBQywwQ0FBRSxRQUFRLEdBQUcsSUFBSSxFQUFFO1lBQ25KLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUFFLFVBQVUsRUFBRSxPQUFPO1lBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLEtBQUs7WUFDaFAsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsY0FBYyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxpQkFBaUIsRUFBRSxFQUFFO1lBQzdHLGVBQWUsRUFBRSxFQUFFO1lBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDckcsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxtQ0FBSSxDQUFDLEVBQUU7WUFDNUYsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1NBQ3hDLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBVyxFQUFDLFFBQWEsRUFBRSxLQUFVOztRQUNwRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFO1lBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFFBQVEsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzlHLGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsR0FBRztZQUFFLEtBQUssRUFBRSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSxtQ0FBSSxFQUFFO1lBQ3hJLGNBQWMsRUFBRSxDQUFBLE1BQUEsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFLDBDQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQUEsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFLG1DQUFJLEVBQUU7WUFDeEssV0FBVyxFQUFFLENBQUEsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLE9BQU8sQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFO1lBQ3hKLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUFFLFVBQVUsRUFBRSxPQUFPO1lBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLEtBQUs7WUFDaFAsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsY0FBYyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxpQkFBaUIsRUFBRSxFQUFFO1lBQzdHLGVBQWUsRUFBRSxFQUFFO1lBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDckcsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxtQ0FBSSxDQUFDLEVBQUU7WUFDNUYsT0FBTyxFQUFFLENBQUM7b0JBQ1IsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLENBQUM7b0JBQ1IsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxDQUFDO29CQUNYLGVBQWUsRUFBRSxLQUFLO29CQUN0QixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLG1DQUFJLENBQUM7b0JBQ3hDLEtBQUssRUFBRSxTQUFTO2lCQUNqQixDQUFDO1lBQ0YsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsS0FBSztZQUNkLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQyxtQ0FBSSxhQUFhO2dCQUMxRCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQyxtQ0FBSSxhQUFhO2dCQUMxRCxLQUFLLEVBQUUsRUFBRTthQUNWO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxRQUFhLEVBQUUsS0FBVTs7UUFFMUMsT0FBTztZQUNMLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdkQsYUFBYSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hLLGtCQUFrQixFQUFFLEdBQUc7WUFBRSxLQUFLLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN0RixjQUFjLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSxtQ0FBSSxFQUFFO1lBQ3hLLFdBQVcsRUFBRSxDQUFBLE1BQUEsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFdBQVcsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFLDBDQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRTtZQUN4SixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxVQUFVLEVBQUUsT0FBTztZQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFB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R0FBVyxDQUFDO1lBQ2hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNoRCxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO2FBQy9EO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7YUFDM0U7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RSxJQUFJLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBRWhEO0lBQ0gsQ0FBQzs7O1lBbmpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsK3pFQUFvRDs7YUFFckQ7OztZQVpRLFdBQVc7WUFDWCxpQkFBaUI7Ozt5QkFjdkIsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBQ3JDLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXNzZXNzbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcblxyXG50eXBlIEFPQSA9IGFueVtdW107XHJcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7IElNUE9SVF9NT1JFOiBcIklNUE9SVF9NT1JFXCIsIFZJRVdfQVNTRVNTTUVOVFM6IFwiVklFV19BU1NFU1NNRU5UU1wiIH1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb250ITogQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudDtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2VcclxuICApIHsgXHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbklkID0gIHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25JZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsdGhpcy5jYXRlZ29yeURhdGEpXHJcbiAgICAgIHRoaXMuc2hlZXREYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7XHJcbiAgICAgICAgaGVhZGVyOiAxLFxyXG4gICAgICB9KSBhcyBBT0E7XHJcblxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ2F0ZWdvcnlMaXN0KHRoaXMuY2F0ZWdvcnlEYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB0aGlzLnNoZWV0RGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG5cclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW1wXCIsIHRoaXMuY2hlY2tGb3JtYXQodGhpcy5hc3Nlc3NtZW50RGF0YSkpXHJcbiAgICAgIGlmICghdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSkge1xyXG4gICAgICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCIpO1xyXG4gICAgICAgICBpZiAoY2xvc2VCdG4pIGNsb3NlQnRuLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUVkaXRvclBheWxvYWQodGhpcy5hc3Nlc3NtZW50RGF0YSk7XHJcbiAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaXNVcGxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdG9yQ29udC50cmlnZ2VyUHJldmlld1dpdGhWYWxpZGF0aW9uKCl9LDEwMClcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgb3JnSW5UZW1wbGF0ZSA9ICB0aGlzLmNhdGVnb3J5RGF0YVswXVs1XTtcclxuICAgIC8vQ29tcGxldGx5IGJsYW5rIGV4Y2VsIHNoZWV0XHJcbiAgICBpZiAoYXNzZXNzbWVudERhdGEubGVuZ3RoID09PSAwIHx8IG9yZ0luVGVtcGxhdGUgIT09IHRoaXMub3JnYW5pemF0aW9uSWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vSW52YWxpZCBUZW1wYWx0ZVxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhWzJdWzBdICE9PSBcIkFzc2Vzc21lbnQgTmFtZVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbM11bMF0gIT09IFwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzRdWzBdICE9PSBcIkFzc2Vzc21lbnQgQ2F0ZWdvcnlcXCpcIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzVdWzBdICE9PSBcIlF1ZXN0aW9uIFR5cGVcXCpcIlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NoZWNrIEFzc2Vzc21lbnQgbmFtZVxyXG4gICAgdHJ5e1xyXG4gICAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzJdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1jYXRjaHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9jYXRlZ29yeSBub3Qgc2VsZWN0ZWRcclxuICAgdHJ5e1xyXG4gICAgaWYgKCFhc3Nlc3NtZW50RGF0YVs0XVsxXSB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gXCJcIiB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1NlbGVjdCB0aGUgQXNzZXNzbWVudCBDYXRlZ29yeS4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgfWNhdGNoe1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgIH1cclxuXHJcbiAgICAvL0RvZXMgbm90IGNvbnRhaW5zIGFueSBxdWVzdGlvbnNcclxuICAgIHRyeXtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhLnNsaWNlKDcpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIGEgYmxhbmsgdGVtcGxhdGUuIFBsZWFzZSBhZGQgcXVlc3Rpb25zIHRvIHRoaXMgdGVtcGxhdGUgYW5kIHVwbG9hZCBpdCBhZ2Fpbi4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vaGFuZGxlIHR5cGUgb2YgcXVlc3Rpb24gYW5kIG9wdGlvbnMgY291bnRcclxuICAgIGZvciAobGV0IGkgPSA3OyBpIDw9IGFzc2Vzc21lbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdNdWx0aXBsZSBDaG9pY2UnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdDaGVja2JveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0Ryb3Bkb3duJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnU2luZ2xlIFRleHRib3gnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEYXRlICYgVGltZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0ZpbGUgVXBsb2FkJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gaWYgKGFzc2Vzc21lbnREYXRhW2ldWzFdID09PSAnJykge1xyXG4gICAgICAvLyAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIC8vICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgLy8gICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG1heFNjb3JlOiAxMCxcclxuICAgICAgc2VnbWVudHM6IFtdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3N0QXNzZXNzbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuaXNTaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudERldGFpbHMocmVzcG9uc2UuX2lkLCBkYXRhLm1vZGUsIGRhdGEuYXNzZXNzbWVudERldGFpbHMpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50RGV0YWlscyhpZDogYW55LCBtb2RlOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5pc1VwbG9hZGVkJywgdGhpcy5pc1VwbG9hZGVkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgcXVlc3Rpb246IGFzc2Vzc21lbnREZXRhaWxzLFxyXG4gICAgICBhY3Rpb246IFwicXVlc3Rpb25zX3NhdmVcIixcclxuICAgICAgc3RhdGU6IG1vZGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLnNhdmVBc3Nlc3NtZW50RGV0YWlscyhpZCwgcGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbihpZDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhpZClcclxuICAgIGlmIChpZCA9PT0gc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTKSB7XHJcbiAgICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICAgIC8vIFRPRE86IE5hdmlnYXRlIHRvICcvbWFuYWdlLWFzc2Vzc21lbnQnXHJcbiAgICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL21hbmFnZS1hc3Nlc3NtZW50JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2Fzc2Vzc21lbnQvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xyXG4gICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiKTtcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
565
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFLL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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USxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0Is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QUssQ0FBQywwQ0FBRSxRQUFRLEVBQUUsMENBQUUsSUFBSSxFQUFFLG1DQUFJLEVBQUU7WUFDdEYsY0FBYyxFQUFFLENBQUEsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FB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QkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMseUNBQXlDO1lBQ3pDLElBQUksR0FBVyxDQUFDO1lBQ2hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNoRCxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO2FBQy9EO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7YUFDM0U7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RSxJQUFJLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBRWhEO0lBQ0gsQ0FBQzs7O1lBcGpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsK3pFQUFvRDs7YUFFckQ7OztZQVpRLFdBQVc7WUFDWCxpQkFBaUI7Ozt5QkFjdkIsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBQ3JDLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXNzZXNzbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcblxyXG50eXBlIEFPQSA9IGFueVtdW107XHJcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7IElNUE9SVF9NT1JFOiBcIklNUE9SVF9NT1JFXCIsIFZJRVdfQVNTRVNTTUVOVFM6IFwiVklFV19BU1NFU1NNRU5UU1wiIH1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb250ITogQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudDtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2VcclxuICApIHsgXHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbklkID0gIHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25JZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsdGhpcy5jYXRlZ29yeURhdGEpXHJcbiAgICAgIHRoaXMuc2hlZXREYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7XHJcbiAgICAgICAgaGVhZGVyOiAxLFxyXG4gICAgICB9KSBhcyBBT0E7XHJcblxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ2F0ZWdvcnlMaXN0KHRoaXMuY2F0ZWdvcnlEYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB0aGlzLnNoZWV0RGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG5cclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW1wXCIsIHRoaXMuY2hlY2tGb3JtYXQodGhpcy5hc3Nlc3NtZW50RGF0YSkpXHJcbiAgICAgIGlmICghdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSkge1xyXG4gICAgICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCIpO1xyXG4gICAgICAgICBpZiAoY2xvc2VCdG4pIGNsb3NlQnRuLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUVkaXRvclBheWxvYWQodGhpcy5hc3Nlc3NtZW50RGF0YSk7XHJcbiAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaXNVcGxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdG9yQ29udC50cmlnZ2VyUHJldmlld1dpdGhWYWxpZGF0aW9uKCl9LDEwMClcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKS50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XSxcclxuICAgICAgaGFzRGF0ZTogdHJ1ZSxcclxuICAgICAgaGFzVGltZTogZmFsc2UsXHJcbiAgICAgIGRhdGVGb3JtYXQ6IFwiREQvTU0vWVlZWVwiLFxyXG4gICAgICB0aW1lRm9ybWF0OiAyNCxcclxuICAgICAgZGF0ZToge1xyXG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgRGF0ZScsXHJcbiAgICAgICAgdmFsdWU6IFwiXCJcclxuICAgICAgfSxcclxuICAgICAgdGltZToge1xyXG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgVGltZScsXHJcbiAgICAgICAgdmFsdWU6IFwiXCJcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdlbmVyYXRlRmlsZVVwbG9hZChxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ2ZpbGUtdXBsb2FkJywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XSxcclxuICAgICAgYWxsb3dlZEZpbGVUeXBlczoge1xyXG4gICAgICAgIHBkZjogdHJ1ZSxcclxuICAgICAgICBkb2M6IHRydWUsXHJcbiAgICAgICAgcG5nOiB0cnVlLFxyXG4gICAgICAgIGpwZzogdHJ1ZSxcclxuICAgICAgICBnaWY6IHRydWVcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNob2ljZXMocXVlc3Rpb246IGFueSkge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IFtxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0MV0sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQyXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDNdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0NF0sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ1XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDZdXS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUpO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChlbGU6YW55KSA9PntcclxuICAgICAgaWYoZWxlKXtcclxuICAgICAgICBlbGUudG9TdHJpbmcoKT8udHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKG9wdGlvbnM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBvcHRpb25zLnB1c2goJycpXHJcbiAgICB9XHJcbiAgICBjb25zdCBvcHRpb25NYXA6IGFueSA9IHtcclxuICAgICAgJ09wdGlvbiAxJzogMyxcclxuICAgICAgJ09wdGlvbiAyJzogNCxcclxuICAgICAgJ09wdGlvbiAzJzogNSxcclxuICAgICAgJ09wdGlvbiA0JzogNixcclxuICAgICAgJ09wdGlvbiA1JzogNyxcclxuICAgICAgJ09wdGlvbiA2JzogOCxcclxuICAgIH1cclxuICAgIG9wdGlvbnMuZm9yRWFjaCgoY2hvaWNlOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgdGl0bGU6IChjaG9pY2UgJiYgdHlwZW9mIChjaG9pY2UpID09ICdzdHJpbmcnKT8gY2hvaWNlIDogY2hvaWNlLnRvU3RyaW5nKCkgPz8gJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IChjaG9pY2U/LnRvU3RyaW5nKCk/LnRyaW0oKSA9PSBxdWVzdGlvbltvcHRpb25NYXBbcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmZhaWxlZF1dXSkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCJcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXR0aW5nczogYW55ID0ge1xyXG4gICAgYXNzZXNzbWVudE1vZGU6IGZhbHNlLFxyXG4gICAgZGVmYXVsdFNjb3JlOiAxLFxyXG4gICAgbmVnYXRpdmVTY29yZUNyaXRlcmlhOiAnRkFJTEVEJyxcclxuICAgIG5lZ2F0aXZlU2NvcmU6IDAsXHJcbiAgICB3ZWlnaHRhZ2VFbmFibGVkOiBmYWxzZSxcclxuICAgIHNldHRpbmdzRW5hYmxlZDogZmFsc2VcclxuICB9XHJcblxyXG4gIGNoZWNrRm9ybWF0KGFzc2Vzc21lbnREYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG9yZ0luVGVtcGxhdGUgPSAgdGhpcy5jYXRlZ29yeURhdGFbMF1bNV07XHJcbiAgIGNvbnNvbGUubG9nKFwidGVtcFwiLG9yZ0luVGVtcGxhdGUsdGhpcy5vcmdhbml6YXRpb25JZClcclxuICAgIC8vQ29tcGxldGx5IGJsYW5rIGV4Y2VsIHNoZWV0XHJcbiAgICBpZiAoYXNzZXNzbWVudERhdGEubGVuZ3RoID09PSAwIHx8IG9yZ0luVGVtcGxhdGUgIT09IHRoaXMub3JnYW5pemF0aW9uSWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vSW52YWxpZCBUZW1wYWx0ZVxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhWzJdWzBdICE9PSBcIkFzc2Vzc21lbnQgTmFtZVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbM11bMF0gIT09IFwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzRdWzBdICE9PSBcIkFzc2Vzc21lbnQgQ2F0ZWdvcnlcXCpcIlxyXG4gICAgICAgIHx8IGFzc2Vzc21lbnREYXRhWzVdWzBdICE9PSBcIlF1ZXN0aW9uIFR5cGVcXCpcIlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NoZWNrIEFzc2Vzc21lbnQgbmFtZVxyXG4gICAgdHJ5e1xyXG4gICAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzJdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1jYXRjaHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9jYXRlZ29yeSBub3Qgc2VsZWN0ZWRcclxuICAgdHJ5e1xyXG4gICAgaWYgKCFhc3Nlc3NtZW50RGF0YVs0XVsxXSB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gXCJcIiB8fCBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1NlbGVjdCB0aGUgQXNzZXNzbWVudCBDYXRlZ29yeS4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgfWNhdGNoe1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgIH1cclxuXHJcbiAgICAvL0RvZXMgbm90IGNvbnRhaW5zIGFueSBxdWVzdGlvbnNcclxuICAgIHRyeXtcclxuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhLnNsaWNlKDcpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIGEgYmxhbmsgdGVtcGxhdGUuIFBsZWFzZSBhZGQgcXVlc3Rpb25zIHRvIHRoaXMgdGVtcGxhdGUgYW5kIHVwbG9hZCBpdCBhZ2Fpbi4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vaGFuZGxlIHR5cGUgb2YgcXVlc3Rpb24gYW5kIG9wdGlvbnMgY291bnRcclxuICAgIGZvciAobGV0IGkgPSA3OyBpIDw9IGFzc2Vzc21lbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdNdWx0aXBsZSBDaG9pY2UnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdDaGVja2JveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0Ryb3Bkb3duJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnU2luZ2xlIFRleHRib3gnICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEYXRlICYgVGltZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0ZpbGUgVXBsb2FkJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xyXG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gaWYgKGFzc2Vzc21lbnREYXRhW2ldWzFdID09PSAnJykge1xyXG4gICAgICAvLyAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIC8vICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgLy8gICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG1heFNjb3JlOiAxMCxcclxuICAgICAgc2VnbWVudHM6IFtdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3N0QXNzZXNzbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuaXNTaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudERldGFpbHMocmVzcG9uc2UuX2lkLCBkYXRhLm1vZGUsIGRhdGEuYXNzZXNzbWVudERldGFpbHMpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50RGV0YWlscyhpZDogYW55LCBtb2RlOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5pc1VwbG9hZGVkJywgdGhpcy5pc1VwbG9hZGVkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgcXVlc3Rpb246IGFzc2Vzc21lbnREZXRhaWxzLFxyXG4gICAgICBhY3Rpb246IFwicXVlc3Rpb25zX3NhdmVcIixcclxuICAgICAgc3RhdGU6IG1vZGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLnNhdmVBc3Nlc3NtZW50RGV0YWlscyhpZCwgcGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbihpZDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhpZClcclxuICAgIGlmIChpZCA9PT0gc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTKSB7XHJcbiAgICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICAgIC8vIFRPRE86IE5hdmlnYXRlIHRvICcvbWFuYWdlLWFzc2Vzc21lbnQnXHJcbiAgICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL21hbmFnZS1hc3Nlc3NtZW50JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2Fzc2Vzc21lbnQvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xyXG4gICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiKTtcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|