@qbs-origin/origin-form 0.8.3 → 0.8.6
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/esm2022/lib/action-step-handler.mjs +7 -3
- package/esm2022/lib/enums/label.keys.mjs +2 -1
- package/esm2022/lib/formly/formly-field-stepper/formly-field-stepper.component.mjs +3 -1
- package/esm2022/lib/models/flux.model.mjs +2 -2
- package/esm2022/lib/models/forms.model.mjs +13 -2
- package/esm2022/lib/origin-form-auth.service.mjs +2 -3
- package/esm2022/lib/origin-form.component.mjs +32 -1
- package/esm2022/lib/origin-form.module.mjs +2 -13
- package/esm2022/lib/others/flux-helper.mjs +31 -1
- package/esm2022/lib/others/translations-helper.mjs +7 -1
- package/fesm2022/qbs-origin-origin-form.mjs +91 -47
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/enums/label.keys.d.ts +1 -0
- package/lib/formly/formly-enrol-card/formly-enrol-card.component.d.ts +1 -0
- package/lib/models/forms.model.d.ts +11 -2
- package/lib/origin-form-auth.service.d.ts +1 -1
- package/lib/origin-form.component.d.ts +5 -0
- package/lib/others/flux-helper.d.ts +1 -0
- package/lib/others/translations-helper.d.ts +1 -0
- package/package.json +1 -1
|
@@ -21,6 +21,14 @@ export class ParentChildConfig {
|
|
|
21
21
|
this.notificationConfig = new NotificationConfig();
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
export class ContactMethodConfig {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.emailFieldId = null;
|
|
27
|
+
this.phoneFieldId = null;
|
|
28
|
+
this.preferredMethod = 'email';
|
|
29
|
+
this.continuationBaseUrl = '';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
24
32
|
export class FormModel {
|
|
25
33
|
}
|
|
26
34
|
export class AppDataControl {
|
|
@@ -544,6 +552,7 @@ export var FluxType;
|
|
|
544
552
|
FluxType[FluxType["NETOPIA"] = 15] = "NETOPIA";
|
|
545
553
|
FluxType[FluxType["EUPLATESC"] = 16] = "EUPLATESC";
|
|
546
554
|
FluxType[FluxType["OpenBanking"] = 17] = "OpenBanking";
|
|
555
|
+
FluxType[FluxType["Validation"] = 18] = "Validation";
|
|
547
556
|
})(FluxType || (FluxType = {}));
|
|
548
557
|
export var SectionType;
|
|
549
558
|
(function (SectionType) {
|
|
@@ -593,9 +602,10 @@ export var ApiMethodType;
|
|
|
593
602
|
ApiMethodType[ApiMethodType["Validation"] = 2] = "Validation";
|
|
594
603
|
})(ApiMethodType || (ApiMethodType = {}));
|
|
595
604
|
export class StatusModel {
|
|
596
|
-
constructor(id, denumire, ordine, final, isActive, actions, childApplicationUuids = []) {
|
|
605
|
+
constructor(id, denumire, ordine, final, isActive, actions, childApplicationUuids = [], sendNotifications = false) {
|
|
597
606
|
this.actions = [];
|
|
598
607
|
this.childApplicationUuids = [];
|
|
608
|
+
this.sendNotifications = false;
|
|
599
609
|
this.id = id;
|
|
600
610
|
this.name = denumire;
|
|
601
611
|
this.order = ordine;
|
|
@@ -603,6 +613,7 @@ export class StatusModel {
|
|
|
603
613
|
this.isActive = isActive;
|
|
604
614
|
this.actions = actions;
|
|
605
615
|
this.childApplicationUuids = childApplicationUuids || [];
|
|
616
|
+
this.sendNotifications = sendNotifications;
|
|
606
617
|
}
|
|
607
618
|
}
|
|
608
619
|
export class StatusAction {
|
|
@@ -659,4 +670,4 @@ export var AppDataStatus;
|
|
|
659
670
|
AppDataStatus[AppDataStatus["new"] = 0] = "new";
|
|
660
671
|
AppDataStatus[AppDataStatus["finished"] = 1] = "finished";
|
|
661
672
|
})(AppDataStatus || (AppDataStatus = {}));
|
|
662
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL21vZGVscy9mb3Jtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBVyw2QkFBNkIsQ0FBQztRQUN0RCxvQkFBZSxHQUNiLDJEQUEyRCxDQUFDO0lBQ2hFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSwwQkFBcUIsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxTQUFTO0NBZ0JyQjtBQUVELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ0UsWUFBb0IsRUFBRSxFQUN0QixZQUFvQixFQUFFLEVBQ3RCLGNBQXNCLEVBQUUsRUFDeEIsVUFBcUIsRUFDckIsWUFBdUI7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFB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QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUFPLENBQUE7SUFDUCx5REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFiZWxJbmZvIH0gZnJvbSAnLi9sYWJlbC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcnRuZXIgfSBmcm9tICcuL3BhcnRuZXIubW9kZWwnO1xuaW1wb3J0IHsgRGljdGlvbmFyeUxhYmVsSW5mbyB9IGZyb20gJy4uL290aGVycy9kaWN0aW9uYXJ5LWxhYmVsLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25NYXBwaW5ncyB9IGZyb20gJy4vYXBwbGljYXRpb24tdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBDc3NSdWxlcyB9IGZyb20gJy4uL290aGVycy91dGlscyc7XG5pbXBvcnQgeyBGbHV4SGVscGVyIH0gZnJvbSAnLi4vb3RoZXJzL2ZsdXgtaGVscGVyJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRyb2wsIFNlY3Rpb25EYXRhLCBTdGVwRGF0YSB9IGZyb20gJy4vZmx1eC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db25maWcge1xuICBlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHRpdGxlVGVtcGxhdGU6IHN0cmluZyA9ICdTdGF0dXMgdXBkYXRlOiB7c3RhdHVzTmFtZX0nO1xuICBtZXNzYWdlVGVtcGxhdGU6IHN0cmluZyA9XG4gICAgJ1lvdXIgYXBwbGljYXRpb24gc3RhdHVzIGhhcyBiZWVuIHVwZGF0ZWQgdG86IHtzdGF0dXNOYW1lfSc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbmhlcml0ZWRGaWVsZCB7XG4gIGlkOiBzdHJpbmcgPSAnJztcbiAgZmllbGROYW1lOiBzdHJpbmcgPSAnJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcmVudENoaWxkQ29uZmlnIHtcbiAgcGFyZW50QXBwbGljYXRpb25VdWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaW5oZXJpdGVkRmllbGRzOiBJbmhlcml0ZWRGaWVsZFtdID0gW107XG4gIG5vdGlmaWNhdGlvbkNvbmZpZzogTm90aWZpY2F0aW9uQ29uZmlnID0gbmV3IE5vdGlmaWNhdGlvbkNvbmZpZygpO1xufVxuXG5leHBvcnQgY2xhc3MgRm9ybU1vZGVsIHtcbiAgYXBwbGljYXRpb25JZDogbnVtYmVyO1xuICBhcHBsaWNhdGlvblV1aWQ6IHN0cmluZztcbiAgZ2VuZXJhbERhdGE6IEdlbmVyYWxEYXRhTW9kZWw7XG4gIGRlc2lnbjogRGVzaWduTW9kZWw7XG4gIGZsdXg6IFN0ZXBEYXRhW107XG4gIGFwaTogQXBpRGF0YTtcbiAgcGFydG5lcnM6IEFwcFBhcnRuZXJbXTtcbiAgZG9jdW1lbnRzOiBBcHBEb2N1bWVudFtdO1xuICBzdGF0dXNlczogU3RhdHVzTW9kZWxbXTtcbiAgZGlzcGxheTogRGlzcGxheU1vZGVsO1xuICBnZW5lcmF0ZWRDc3M6IENzc1J1bGVzO1xuICBtZXRhZGF0YUZpZWxkczogW107XG4gIGVycm9yczogeyBbdGFiTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgYXBwbGljYXRpb25NYXBwaW5nczogQXBwbGljYXRpb25NYXBwaW5ncztcbiAgcGFyZW50Q2hpbGRDb25maWc/OiBQYXJlbnRDaGlsZENvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFDb250cm9sIHtcbiAgY29udHJvbElkOiBzdHJpbmc7XG4gIGZpbGxWYWx1ZTogc3RyaW5nO1xuICBmaWxsVmFsdWVJZDogc3RyaW5nO1xuICBmaWxsVmFsdWVzPzogc3RyaW5nW107XG4gIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRyb2xJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlOiBzdHJpbmcgPSAnJyxcbiAgICBmaWxsVmFsdWVJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlcz86IHN0cmluZ1tdLFxuICAgIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdXG4gICkge1xuICAgIHRoaXMuY29udHJvbElkID0gY29udHJvbElkIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlID0gZmlsbFZhbHVlIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlSWQgPSBmaWxsVmFsdWVJZCB8fCAnJztcbiAgICB0aGlzLmZpbGxWYWx1ZXMgPSBmaWxsVmFsdWVzO1xuICAgIHRoaXMuZmlsbFZhbHVlSWRzID0gZmlsbFZhbHVlSWRzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU2VjdGlvbiB7XG4gIHNlY3Rpb25JZDogc3RyaW5nO1xuICBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXTtcblxuICBjb25zdHJ1Y3RvcihzZWN0aW9uSWQ6IHN0cmluZyA9ICcnLCBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXSA9IFtdKSB7XG4gICAgdGhpcy5zZWN0aW9uSWQgPSBzZWN0aW9uSWQgfHwgJyc7XG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2xzIHx8IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU3RlcCB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICB0eXBlOiBudW1iZXI7XG4gIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0ZXBJZDogc3RyaW5nID0gJycsXG4gICAgdHlwZTogbnVtYmVyLFxuICAgIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdID0gW11cbiAgKSB7XG4gICAgdGhpcy5zdGVwSWQgPSBzdGVwSWQgfHwgJyc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnNlY3Rpb25zID0gc2VjdGlvbnMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFGaWxsIHtcbiAgbWV0YWRhdGE6IHtcbiAgICBhcHBEYXRhSWQ6IHN0cmluZztcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZztcbiAgICBjdXJyZW50U3RlcElkOiBzdHJpbmc7XG4gICAgc3RhdHVzSWQ6IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIG9mZmVySWQ6IHN0cmluZztcbiAgICBpc1N1Ym1pdHRlZDogYm9vbGVhbjtcbiAgICBwYXJlbnRBcHBEYXRhVXVpZD86IHN0cmluZztcbiAgfTtcbiAgZmx1eDogQXBwRGF0YVN0ZXBbXTtcbiAgaW5pdEZsb3dWYWx1ZXM/OiBhbnk7XG4gIGluaGVyaXRlZEZpZWxkcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXBwRGF0YUlkOiBzdHJpbmcgPSAnJyxcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZyA9ICcnLFxuICAgIGN1cnJlbnRTdGVwSWQ6IHN0cmluZyA9ICcnLFxuICAgIHN0YXR1c0lkOiBzdHJpbmcgPSAnJyxcbiAgICBsYW5ndWFnZTogc3RyaW5nID0gJycsXG4gICAgZmx1eDogQXBwRGF0YVN0ZXBbXSA9IFtdLFxuICAgIG9mZmVySWQ6IHN0cmluZyA9ICcnLFxuICAgIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgcGFyZW50QXBwRGF0YVV1aWQ6IHN0cmluZyA9ICcnXG4gICkge1xuICAgIHRoaXMubWV0YWRhdGEgPSB7XG4gICAgICBhcHBEYXRhSWQ6IGFwcERhdGFJZCB8fCAnJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25JZDogY29uZmlndXJhdGlvbklkIHx8ICcnLFxuICAgICAgY3VycmVudFN0ZXBJZDogY3VycmVudFN0ZXBJZCB8fCAnJyxcbiAgICAgIHN0YXR1c0lkOiBzdGF0dXNJZCB8fCAnJyxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSB8fCAnJyxcbiAgICAgIG9mZmVySWQ6IG9mZmVySWQgfHwgJycsXG4gICAgICBpc1N1Ym1pdHRlZDogaXNTdWJtaXR0ZWQgfHwgZmFsc2UsXG4gICAgICBwYXJlbnRBcHBEYXRhVXVpZDogcGFyZW50QXBwRGF0YVV1aWQgfHwgJydcbiAgICB9O1xuICAgIHRoaXMuZmx1eCA9IGZsdXggfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGEge1xuICBpZD86IG51bWJlcjtcbiAgYXBwRGF0YUlkOiBzdHJpbmc7XG4gIGFwcENvbmZpZ3VyYXRpb25JZDogbnVtYmVyO1xuICBmaWxsRGF0YT86IEFwcERhdGFGaWxsO1xuICBpbml0Rmxvd1ZhbHVlcz86IHN0cmluZztcbiAgd2l0aE5leHRTdGVwOiBib29sZWFuO1xuICBibG9ja1ByZXZpb3VzU3RlcDogYm9vbGVhbjtcbiAgZW52OiBzdHJpbmc7XG4gIHN0YXR1czogQXBwRGF0YVN0YXR1cztcbiAgcGFyZW50QXBwRGF0YVV1aWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YToge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIGFwcERhdGFJZDogc3RyaW5nO1xuICAgIGFwcENvbmZpZ3VyYXRpb25JZDogbnVtYmVyO1xuICAgIGZpbGxEYXRhPzogQXBwRGF0YUZpbGw7XG4gICAgaW5pdEZsb3dWYWx1ZXM/OiBzdHJpbmc7XG4gICAgd2l0aE5leHRTdGVwOiBib29sZWFuO1xuICAgIGJsb2NrUHJldmlvdXNTdGVwOiBib29sZWFuO1xuICAgIGVudjogc3RyaW5nO1xuICAgIHBhcmVudEFwcERhdGFVdWlkPzogc3RyaW5nO1xuICB9KSB7XG4gICAgKCh0aGlzLmlkID0gZGF0YS5pZCA/PyB1bmRlZmluZWQpLCAodGhpcy5hcHBEYXRhSWQgPSBkYXRhLmFwcERhdGFJZCB8fCAnJykpO1xuICAgIHRoaXMuYXBwQ29uZmlndXJhdGlvbklkID0gZGF0YS5hcHBDb25maWd1cmF0aW9uSWQgfHwgMDtcbiAgICB0aGlzLmZpbGxEYXRhID0gZGF0YS5maWxsRGF0YTtcbiAgICB0aGlzLmluaXRGbG93VmFsdWVzID0gZGF0YS5pbml0Rmxvd1ZhbHVlcztcbiAgICB0aGlzLndpdGhOZXh0U3RlcCA9IGRhdGEud2l0aE5leHRTdGVwO1xuICAgIHRoaXMuYmxvY2tQcmV2aW91c1N0ZXAgPSBkYXRhLmJsb2NrUHJldmlvdXNTdGVwO1xuICAgIHRoaXMucGFyZW50QXBwRGF0YVV1aWQgPSBkYXRhLnBhcmVudEFwcERhdGFVdWlkO1xuICAgIGlmICghZGF0YS5lbnYpIHtcbiAgICAgIHRoaXMuZW52ID0gJ0NvbmZpZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW52ID0gZGF0YS5lbnY7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtTW9kZWxFeHRlbnhpb25zIHtcbiAgZm9ybU1vZGVsOiBGb3JtTW9kZWw7XG5cbiAgY29uc3RydWN0b3IobW9kZWw6IEZvcm1Nb2RlbCkge1xuICAgIHRoaXMuZm9ybU1vZGVsID0gbW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRGbG93VmFsdWVzSXRlbXMoaXRlbXM6IE1ldGhvZEZpZWxkW10pOiB2b2lkIHtcbiAgICBjb25zdCBpbml0Rmxvd1ZhbHVlc1JhdyA9ICh0aGlzLmZvcm1Nb2RlbCBhcyBhbnkpPy5nZW5lcmFsRGF0YVxuICAgICAgPy5pbml0Rmxvd1ZhbHVlcztcbiAgICBpZiAoaW5pdEZsb3dWYWx1ZXNSYXcgPT09IG51bGwgfHwgaW5pdEZsb3dWYWx1ZXNSYXcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwYXJzZWQ6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIGluaXRGbG93VmFsdWVzUmF3ID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IGluaXRGbG93VmFsdWVzUmF3LnRyaW0oKTtcbiAgICAgIGlmICghdHJpbW1lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRyaW1tZWQpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElmIGNvbmZpZyBjb250YWlucyBpbnZhbGlkIEpTT04sIGRvIG5vdCBleHBvc2UgYW55IGluaXRGbG93VmFsdWVzIGZpZWxkcy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWQgPSBpbml0Rmxvd1ZhbHVlc1JhdztcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQoaXRlbXMubWFwKChpKSA9PiBpLmlkKSk7XG4gICAgY29uc3Qgb3V0OiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGU6IGFueSwgcGF0aFBhcnRzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwYXRoUGFydHMubGVuZ3RoID4gMCkgb3V0LnB1c2godGhpcy5idWlsZEluaXRGbG93RmllbGQocGF0aFBhcnRzKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoKChjaGlsZCwgaWR4KSA9PiB3YWxrKGNoaWxkLCBbLi4ucGF0aFBhcnRzLCBTdHJpbmcoaWR4KV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG5vZGUpLmZvckVhY2goKGtleSkgPT5cbiAgICAgICAgICB3YWxrKG5vZGVba2V5XSwgWy4uLnBhdGhQYXJ0cywga2V5XSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocGF0aFBhcnRzLmxlbmd0aCA+IDApIG91dC5wdXNoKHRoaXMuYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0cykpO1xuICAgIH07XG5cbiAgICB3YWxrKHBhcnNlZCwgW10pO1xuXG4gICAgZm9yIChjb25zdCBmIG9mIG91dCkge1xuICAgICAgaWYgKCFleGlzdGluZ0lkcy5oYXMoZi5pZCkpIHtcbiAgICAgICAgaXRlbXMucHVzaChmKTtcbiAgICAgICAgZXhpc3RpbmdJZHMuYWRkKGYuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0czogc3RyaW5nW10pOiBNZXRob2RGaWVsZCB7XG4gICAgY29uc3QgdW5kZXJzY29yZVBhdGggPSBwYXRoUGFydHMuam9pbignXycpO1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZE5hbWU6IGBpbml0Rmxvd1ZhbHVlc18ke3VuZGVyc2NvcmVQYXRofWAsXG4gICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5NZXRhZGF0YSxcbiAgICAgIGlkOiBgaW5pdEZsb3dWYWx1ZXNfJHt1bmRlcnNjb3JlUGF0aH1gXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBmbHV4SXRlbXMoXG4gICAgdW50aWxTdGVwSWRlbnRpZmllcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gICk6IE1ldGhvZEZpZWxkW10ge1xuICAgIGxldCBpdGVtczogTWV0aG9kRmllbGRbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZm9ybU1vZGVsLm1ldGFkYXRhRmllbGRzKSB7XG4gICAgICB0aGlzLmZvcm1Nb2RlbC5tZXRhZGF0YUZpZWxkcy5mb3JFYWNoKChmaWVsZFZhbHVlKSA9PiB7XG4gICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgIGZpZWxkTmFtZTogZmllbGRWYWx1ZSxcbiAgICAgICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5NZXRhZGF0YSxcbiAgICAgICAgICBpZDogYG1ldGFkYXRhLiR7ZmllbGRWYWx1ZX1gXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRJbml0Rmxvd1ZhbHVlc0l0ZW1zKGl0ZW1zKTtcblxuICAgIGlmICghdGhpcy5mb3JtTW9kZWw/LmZsdXgpIHtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtTW9kZWwuZG9jdW1lbnRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdCh0aGlzLmV4dHJhY3REb2N1bWVudHNGbHV4SXRlbXModGhpcy5mb3JtTW9kZWwuZmx1eCkpO1xuICAgIH1cbiAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChcbiAgICAgIHRoaXMuZXh0cmFjdFNlY3Rpb25zRmx1eEl0ZW1zKHRoaXMuZm9ybU1vZGVsLmZsdXgsIHVudGlsU3RlcElkZW50aWZpZXIpXG4gICAgKTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuICBwcml2YXRlIGV4dHJhY3RTZWN0aW9uc0ZsdXhJdGVtcyhcbiAgICBzdGVwczogU3RlcERhdGFbXSxcbiAgICB1bnRpbFN0ZXBJZGVudGlmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zOiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBmb3IgKGxldCBzdGVwIG9mIHN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcC5zZWN0aW9ucykge1xuICAgICAgICBpZiAodW50aWxTdGVwSWRlbnRpZmllciAmJiBzdGVwLmlkZW50aWZpZXIgPT09IHVudGlsU3RlcElkZW50aWZpZXIpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBzdGVwLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoc2VjdGlvbi5jb250cm9scykge1xuICAgICAgICAgICAgc2VjdGlvbi5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuQnV0dG9ucyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5OZXdSb3csXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuRmx1eEluZm8sXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuUGFyYWdyYXBoXG4gICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhjb250cm9sLnR5cGUpID09IGZhbHNlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7c2VjdGlvbi50aXRsZX0gLT4gJHtjb250cm9sLnRpdGxlfWAsXG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICAgICAgICAgIG1hbnVsSW5wdXRDb250cm9sVHlwZTogY29udHJvbC5zcGVjaWZpY0NvbnRyb2xEYXRhPy50eXBlLFxuICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRyb2wuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdERvY3VtZW50c0ZsdXhJdGVtcyhzdGVwRGF0YTogU3RlcERhdGFbXSk6IE1ldGhvZEZpZWxkW10ge1xuICAgIGxldCBpdGVtczogTWV0aG9kRmllbGRbXSA9IFtdO1xuXG4gICAgc3RlcERhdGE/LmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLlVwbG9hZERvY3VtZW50KSB7XG4gICAgICAgIHN0ZXAuY29uZmlnPy5kb2N1bWVudHM/LmZvckVhY2goXG4gICAgICAgICAgKGRvY3VtZW50OiB7IGRvY3VtZW50SWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudD8uZG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgKSB8fCBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IHN0ZXAudHlwZSxcbiAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5kb2N1bWVudElkXG4gICAgICAgICAgICAgICAgPyBgdXBsb2FkLiR7ZG9jdW1lbnQuZG9jdW1lbnRJZH1gXG4gICAgICAgICAgICAgICAgOiBgJHtzdGVwLnR5cGV9LiR7c3RlcC5uYW1lfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoc3RlcC50eXBlID09PSBGbHV4VHlwZS5HZW5lcmF0ZURvY3VtZW50KSB7XG4gICAgICAgIHN0ZXAuY29uZmlnPy5nZW5lcmF0ZWREb2N1bWVudHM/LmZvckVhY2goXG4gICAgICAgICAgKGRvY3VtZW50OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgRmx1eEhlbHBlci5nZXREb2N1bWVudE5hbWVCeUlkKGRvY3VtZW50Py5pZCwgdGhpcy5mb3JtTW9kZWwpIHx8XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgZmllbGRUeXBlOiBzdGVwLnR5cGUsXG4gICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICA/IGBnZW5lcmF0ZS4ke2RvY3VtZW50LmlkfWBcbiAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLlNpZ24pIHtcbiAgICAgICAgaWYgKHN0ZXAuY29uZmlnPy5kb2N1bWVudHMpIHtcbiAgICAgICAgICBzdGVwLmNvbmZpZz8uZG9jdW1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICAgID8gYHNpZ24uJHtkb2N1bWVudC5pZH1gXG4gICAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0ZXAuY29uZmlnPy5zeXN0ZW1Eb2N1bWVudHMpIHtcbiAgICAgICAgICBzdGVwLmNvbmZpZz8uc3lzdGVtRG9jdW1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICAgID8gYHN5c3RlbS4ke2RvY3VtZW50LmlkfWBcbiAgICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwdWJsaWMgZmx1eEl0ZW1zV2l0aEdldEFwaU1ldGhvZHMoXG4gICAgZXhjbHVkZWRNZXRob2RJZDogc3RyaW5nID0gJydcbiAgKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zID0gdGhpcy5mbHV4SXRlbXMoKTtcbiAgICB0aGlzLmZvcm1Nb2RlbC5hcGkuZ2V0SXRlbXMuZm9yRWFjaCgoYXBpTWV0aG9kKSA9PiB7XG4gICAgICBpZiAoYXBpTWV0aG9kLmlkICE9PSBleGNsdWRlZE1ldGhvZElkKSB7XG4gICAgICAgIGFwaU1ldGhvZC5maWVsZHM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkTmFtZTogYCR7YXBpTWV0aG9kLm1ldGhvZH0gLT4gJHtmLmZpZWxkTmFtZX1gLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUuQXBpTWV0aG9kRmllbGQsXG4gICAgICAgICAgICBpZDogZi5pZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBvZmZlck1ldGhvZHNJdGVtcygpOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGxldCBvZmZlck1ldGhvZHNJZHM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5mb3JtTW9kZWwucGFydG5lcnM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIHAuZ2VuZXJhbFNldHRpbmdzLm9mZmVycz8uZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBvZmZlck1ldGhvZHNJZHMucHVzaChvLmFwaU1ldGhvZElkKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgb2ZmZXJNZXRob2RzSWRzID0gWy4uLm5ldyBTZXQob2ZmZXJNZXRob2RzSWRzKV07XG5cbiAgICBjb25zdCBhbGxBcGlJdGVtcyA9IFtcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS5nZXRJdGVtcyxcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS52YWxpZGF0aW9uSXRlbXMsXG4gICAgICAuLi50aGlzLmZvcm1Nb2RlbC5hcGkuc2VuZEl0ZW1zXG4gICAgXTtcblxuICAgIG9mZmVyTWV0aG9kc0lkcy5mb3JFYWNoKChtZXRob2RJZCkgPT4ge1xuICAgICAgY29uc3QgYXBpTWV0aG9kID0gYWxsQXBpSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gbWV0aG9kSWQpO1xuICAgICAgaWYgKGFwaU1ldGhvZCkge1xuICAgICAgICBhcGlNZXRob2QuZmllbGRzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZE5hbWU6IGAke2FwaU1ldGhvZC5tZXRob2R9IC0+ICR7Zi5maWVsZE5hbWV9YCxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmx1eFR5cGUuVmlld09mZmVyLFxuICAgICAgICAgICAgaWQ6IGBhcGlfJHthcGlNZXRob2QuaWR9IC0+ICR7Zi5pZH1gXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlEYXRhIHtcbiAgZ2V0SXRlbXM6IEdldEFwaUl0ZW1bXTtcbiAgdmFsaWRhdGlvbkl0ZW1zOiBBcGlJdGVtW107XG4gIHNlbmRJdGVtczogQXBpSXRlbVtdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBmaWVsZHM6IE1ldGhvZEZpZWxkW107XG4gIHR5cGU6IEFwaU1ldGhvZFR5cGU7XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRBcGlJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIGZpZWxkczogR2V0TWV0aG9kRmllbGRbXTtcbiAgdHlwZTogQXBpTWV0aG9kVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBEZXNpZ25Nb2RlbCB7XG4gIGZvbnRzOiBGb250Q29uZmlnW10gPSBbXTtcbiAgYnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcbiAgb3RwQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcbiAgY29tcG9uZW50czogQ29tcG9uZW50Q29uZmlnW10gPSBbXTtcbiAgdGFibGVzOiBUYWJsZUNvbmZpZ1tdID0gW107XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBidXR0b25zSG9yaXpvbnRhbFBvc2l0aW9uOiBzdHJpbmc7XG4gIGJ1dHRvbnNWZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmc7XG4gIG1heFdpZHRoOiBzdHJpbmc7XG4gIG1hcmdpbkxlZnQ6IHN0cmluZztcbiAgbWFyZ2luUmlnaHQ6IHN0cmluZztcbiAgbWFyZ2luVG9wOiBzdHJpbmc7XG4gIG1hcmdpbkJvdHRvbTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGRhdGEuZm9udHMpIHtcbiAgICAgICAgdGhpcy5mb250cyA9IGRhdGEuZm9udHMubWFwKChmb250OiBhbnkpID0+IG5ldyBGb250Q29uZmlnKGZvbnQpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEuYnV0dG9ucykge1xuICAgICAgICB0aGlzLmJ1dHRvbnMgPSBkYXRhLmJ1dHRvbnMubWFwKFxuICAgICAgICAgIChidXR0b246IGFueSkgPT4gbmV3IEJ1dHRvbkNvbmZpZyhidXR0b24pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLmNvbXBvbmVudHMpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gZGF0YS5jb21wb25lbnRzLm1hcChcbiAgICAgICAgICAoY29tcG9uZW50OiBhbnkpID0+IG5ldyBDb21wb25lbnRDb25maWcoY29tcG9uZW50KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS50YWJsZXMpIHtcbiAgICAgICAgdGhpcy50YWJsZXMgPSBkYXRhLnRhYmxlcy5tYXAoKHRhYmxlOiBhbnkpID0+IG5ldyBUYWJsZUNvbmZpZyh0YWJsZSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmJ1dHRvbnNIb3Jpem9udGFsUG9zaXRpb24gPSBkYXRhLmhvcml6b250YWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuYnV0dG9uc1ZlcnRpY2FsUG9zaXRpb24gPSBkYXRhLnZlcnRpY2FsUG9zaXRpb247XG4gICAgICB0aGlzLm1heFdpZHRoID0gZGF0YS5tYXhXaWR0aDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvbnRDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgZm9udFNpemU6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgZm9udFdlaWdodDogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMuZm9udFdlaWdodCA9IGRhdGEuZm9udFdlaWdodDtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBib3JkZXI6IHN0cmluZztcbiAgYm9yZGVyQ29sb3I6IHN0cmluZztcbiAgYm9yZGVyUmFkaXVzOiBzdHJpbmc7XG4gIGhvcml6b250YWxQYWRkaW5nOiBzdHJpbmc7XG4gIHZlcnRpY2FsUGFkZGluZzogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGxldHRlclNwYWNpbmc6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG4gIG1pbldpZHRoOiBzdHJpbmc7XG4gIG1pbkhlaWdodDogc3RyaW5nO1xuICBtYXhXaWR0aDogc3RyaW5nO1xuICBtYXhIZWlnaHQ6IHN0cmluZztcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMuYm9yZGVyQ29sb3IgPSBkYXRhLmJvcmRlckNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXJSYWRpdXMgPSBkYXRhLmJvcmRlclJhZGl1cztcbiAgICAgIHRoaXMuaG9yaXpvbnRhbFBhZGRpbmcgPSBkYXRhLmhvcml6b250YWxQYWRkaW5nO1xuICAgICAgdGhpcy52ZXJ0aWNhbFBhZGRpbmcgPSBkYXRhLnZlcnRpY2FsUGFkZGluZztcbiAgICAgIHRoaXMuZm9udEZhbWlseSA9IGRhdGEuZm9udEZhbWlseTtcbiAgICAgIHRoaXMuZm9udFNpemUgPSBkYXRhLmZvbnRTaXplO1xuICAgICAgdGhpcy5sZXR0ZXJTcGFjaW5nID0gZGF0YS5sZXR0ZXJTcGFjaW5nO1xuICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgICAgdGhpcy5taW5XaWR0aCA9IGRhdGEubWluV2lkdGg7XG4gICAgICB0aGlzLm1pbkhlaWdodCA9IGRhdGEubWluSGVpZ2h0O1xuICAgICAgdGhpcy5tYXhXaWR0aCA9IGRhdGEubWF4V2lkdGg7XG4gICAgICB0aGlzLm1heEhlaWdodCA9IGRhdGEubWF4SGVpZ2h0O1xuICAgICAgdGhpcy5ob3Jpem9udGFsUG9zaXRpb24gPSBkYXRhLmhvcml6b250YWxQb3NpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnIHtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG4gIGRldGFpbENvbmZpZzogRGV0YWlsQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlPzogYW55KSB7XG4gICAgaWYgKHRhYmxlKSB7XG4gICAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRhYmxlLmhlYWRlckNvbmZpZztcbiAgICAgIHRoaXMuZGV0YWlsQ29uZmlnID0gdGFibGUuZGV0YWlsQ29uZmlnO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHBhZGRpbmc6IHN0cmluZztcbiAgYm9yZGVyQ29sbGFwc2U6IHN0cmluZztcbiAgYm9yZGVyU3BhY2luZzogc3RyaW5nO1xuICB2ZXJ0aWNhbEFsaWduOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMudGV4dENvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMuYm9yZGVyID0gZGF0YS5ib3JkZXI7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgICB0aGlzLnBhZGRpbmcgPSBkYXRhLnBhZGRpbmc7XG4gICAgICB0aGlzLmJvcmRlckNvbGxhcHNlID0gZGF0YS5ib3JkZXJDb2xsYXBzZTtcbiAgICAgIHRoaXMuYm9yZGVyU3BhY2luZyA9IGRhdGEuYm9yZGVyU3BhY2luZztcbiAgICAgIHRoaXMudmVydGljYWxBbGlnbiA9IGRhdGEudmVydGljYWxBbGlnbjtcbiAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgdGhpcy5oZWlnaHQgPSBkYXRhLmhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERldGFpbENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuICBwYWRkaW5nOiBzdHJpbmc7XG4gIHJvd0JvcmRlcjogc3RyaW5nO1xuICByb3dCb3JkZXJDb2xvcjogc3RyaW5nO1xuICBob3ZlckJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB2ZXJ0aWNhbEFsaWduOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy50ZXh0Q29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy50ZXh0QWxpZ24gPSBkYXRhLnRleHRBbGlnbjtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICAgIHRoaXMucGFkZGluZyA9IGRhdGEucGFkZGluZztcbiAgICAgIHRoaXMucm93Qm9yZGVyID0gZGF0YS5yb3dCb3JkZXI7XG4gICAgICB0aGlzLmhvdmVyQmFja2dyb3VuZENvbG9yID0gZGF0YS5ob3ZlckJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMudmVydGljYWxBbGlnbiA9IGRhdGEudmVydGljYWxBbGlnbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJSYWRpdXM6IHN0cmluZztcbiAgbGFiZWxTdHlsZTogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGJvcmRlckNvbG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB3ZWlnaHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHN0YXJ0Q29sb3I/OiBzdHJpbmc7XG4gIGVuZENvbG9yPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMuYm9yZGVyUmFkaXVzID0gZGF0YS5ib3JkZXJSYWRpdXM7XG4gICAgICB0aGlzLmxhYmVsU3R5bGUgPSBkYXRhLmxhYmVsU3R5bGU7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLndlaWdodCA9IGRhdGEud2VpZ2h0O1xuICAgICAgdGhpcy5zdGFydENvbG9yID0gZGF0YS5zdGFydENvbG9yO1xuICAgICAgdGhpcy5lbmRDb2xvciA9IGRhdGEuZW5kQ29sb3I7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuZXhwb3J0IGNsYXNzIERpc3BsYXlNb2RlbCB7XG4gIHNlY3Rpb25zOiBTZWN0aW9uRGF0YVtdO1xufVxuXG5leHBvcnQgY2xhc3MgR2VuZXJhbERhdGFNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXBwbGljYXRpb25UeXBlOiBudW1iZXI7XG4gIGxhbmd1YWdlczogc3RyaW5nW107XG4gIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICBjb250aW51ZVdpdGhPZmZlcjogYm9vbGVhbjtcbiAgc2hvd0NvdW50ZXJTdGVwOiBib29sZWFuO1xuICBzaG93TmFtZVN0ZXA6IGJvb2xlYW47XG4gIHNob3dBbGxTdGVwczogYm9vbGVhbjtcbiAgc2hvd1Byb2dyZXNzQmFyOiBib29sZWFuO1xuICBpbml0Rmxvd1ZhbHVlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1N0YXRlIHtcbiAgZGF0YTogRm9ybU1vZGVsO1xuICBzZWxlY3RlZFRhYjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNhbkdldEZyb21Qcm9kOiBib29sZWFuO1xuICBjYW5HZXRGcm9tVGVzdDogYm9vbGVhbjtcbiAgY2FuUHVibGlzaEluUHJvZDogYm9vbGVhbjtcbiAgY2FuUHVibGlzaEluVGVzdDogYm9vbGVhbjtcbiAgYXBwbGljYXRpb25VdWlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsRm9ybXVsYXJlU3RhdGU6IEZvcm1zU3RhdGUgPSB7XG4gIGRhdGE6IHtcbiAgICBhcHBsaWNhdGlvbklkOiAwLFxuICAgIGFwcGxpY2F0aW9uVXVpZDogJycsXG4gICAgZ2VuZXJhbERhdGE6IHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgYXBwbGljYXRpb25UeXBlOiAwLFxuICAgICAgbGFuZ3VhZ2VzOiBbXSxcbiAgICAgIGRlZmF1bHRMYW5ndWFnZTogJycsXG4gICAgICBjb250aW51ZVdpdGhPZmZlcjogZmFsc2UsXG4gICAgICBzaG93Q291bnRlclN0ZXA6IGZhbHNlLFxuICAgICAgc2hvd05hbWVTdGVwOiBmYWxzZSxcbiAgICAgIHNob3dBbGxTdGVwczogZmFsc2UsXG4gICAgICBzaG93UHJvZ3Jlc3NCYXI6IGZhbHNlLFxuICAgICAgaW5pdEZsb3dWYWx1ZXM6ICcnXG4gICAgfSxcbiAgICBkZXNpZ246IHtcbiAgICAgIGZvbnRzOiBbXSxcbiAgICAgIGJ1dHRvbnM6IFtdLFxuICAgICAgb3RwQWN0aW9uQnV0dG9uczogW10sXG4gICAgICBjb21wb25lbnRzOiBbXSxcbiAgICAgIHRhYmxlczogW10sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnLFxuICAgICAgZm9udFNpemU6ICcnLFxuICAgICAgYnV0dG9uc0hvcml6b250YWxQb3NpdGlvbjogJycsXG4gICAgICBidXR0b25zVmVydGljYWxQb3NpdGlvbjogJycsXG4gICAgICBtYXhXaWR0aDogJycsXG4gICAgICBtYXJnaW5MZWZ0OiAnJyxcbiAgICAgIG1hcmdpblJpZ2h0OiAnJyxcbiAgICAgIG1hcmdpblRvcDogJycsXG4gICAgICBtYXJnaW5Cb3R0b206ICcnXG4gICAgfSxcbiAgICBmbHV4OiBbXSxcbiAgICBhcGk6IHsgZ2V0SXRlbXM6IFtdLCB2YWxpZGF0aW9uSXRlbXM6IFtdLCBzZW5kSXRlbXM6IFtdIH0sXG4gICAgcGFydG5lcnM6IFtdLFxuICAgIGRvY3VtZW50czogW10sXG4gICAgc3RhdHVzZXM6IFtdLFxuICAgIGRpc3BsYXk6IHtcbiAgICAgIHNlY3Rpb25zOiBbXVxuICAgIH0sXG4gICAgZ2VuZXJhdGVkQ3NzOiB7fSxcbiAgICBtZXRhZGF0YUZpZWxkczogW10sXG4gICAgZXJyb3JzOiB7fSxcbiAgICBhcHBsaWNhdGlvbk1hcHBpbmdzOiB7XG4gICAgICBhcHBsaWNhdGlvblR5cGVJZDogMCxcbiAgICAgIGNvbHVtbk1hcHBpbmdzOiBbXVxuICAgIH0sXG4gICAgcGFyZW50Q2hpbGRDb25maWc6IHVuZGVmaW5lZFxuICB9LFxuICBzZWxlY3RlZFRhYjogJ0RhdGUgZ2VuZXJhbGUnLFxuICBjYW5HZXRGcm9tUHJvZDogZmFsc2UsXG4gIGNhbkdldEZyb21UZXN0OiBmYWxzZSxcbiAgY2FuUHVibGlzaEluUHJvZDogZmFsc2UsXG4gIGNhblB1Ymxpc2hJblRlc3Q6IGZhbHNlLFxuICBhcHBsaWNhdGlvblV1aWQ6ICcnLFxuICB2ZXJzaW9uOiAnJ1xufTtcblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJEaWN0aW9uYXJ5TWFwcGluZyB7XG4gIGRpY3Rpb25hcnlJZDogc3RyaW5nO1xuICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nO1xuICBtYXBwaW5nczogUGFydG5lcktleVZhbHVlSXRlbVtdO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lclNldHRpbmdzIHtcbiAgcGFydG5lck1ldGhvZHNBcGk6IFBhcnRuZXJNZXRob2RBcGlbXSA9IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lck1ldGhvZEFwaSB7XG4gIG1ldGhvZElkOiBzdHJpbmc7XG4gIG1ldGhvZFR5cGU6IHN0cmluZztcbiAgY2FsbFR5cGU6IHN0cmluZztcbiAgYm9keUNvbmZpZ3VyYXRpb246IFBhcnRuZXJNZXRob2RCb2R5O1xuICByZXNwb25zZUNvbmZpZ3VyYXRpb246IFBhcnRuZXJNZXRob2RSZXNwb25zZTtcbiAgdXJsQ29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZFVybDtcbiAgYXV0aFZhbHVlOiBQYXJ0bmVyTWV0aG9kQXBpQXV0aDtcbiAgaGVhZGVyczogUGFydG5lcktleVZhbHVlSXRlbVtdO1xuICAvLyBJTkJPVU5ELXNwZWNpZmljIHByb3BlcnRpZXNcbiAgaW5ib3VuZE1ldGhvZFR5cGU/OiBJbmJvdW5kTWV0aG9kVHlwZTsgLy8gVHlwZSBvZiBJTkJPVU5EIG1ldGhvZFxufVxuXG5leHBvcnQgZW51bSBJbmJvdW5kTWV0aG9kVHlwZSB7XG4gIFN0YW5kYXJkID0gJ1N0YW5kYXJkJyxcbiAgU3RhdHVzTWV0aG9kID0gJ1N0YXR1c01ldGhvZCdcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RBcGlBdXRoIHtcbiAgaGVhZGVyTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXBpS2V5OiBzdHJpbmcgfCBudWxsO1xuICBhdXRoVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lcktleVZhbHVlSXRlbSB7XG4gIGtleTogc3RyaW5nO1xuICBrZXlOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBhcnRuZXJTdGF0dXNNYXBwaW5nIHtcbiAgcGFydG5lclN0YXR1czogc3RyaW5nO1xuICBhcHBTdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RVcmwge1xuICB1cmxWYWx1ZTogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIHRlc3RVcmw6IHN0cmluZztcbiAgcHJvZFVybDogc3RyaW5nO1xuICBwYXJhbWV0ZXJNYXBwaW5nczogVXJsTWFwRmllbGRzW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kUmVzcG9uc2Uge1xuICBjb250ZW50VHlwZTogc3RyaW5nO1xuICBqc29uVmFsdWU6IHN0cmluZztcbiAgcmVzcG9uc2VNYXBGaWVsZHM6IEZpZWxkc01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVybE1hcEZpZWxkcyB7XG4gIHVybFBhcmFtZXRlcjogc3RyaW5nO1xuICBmbHV4RmllbGQ6IHN0cmluZztcbiAgZmx1eEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kQm9keSB7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIGpzb25WYWx1ZTogc3RyaW5nO1xuICBib2R5TWFwRmllbGRzOiBGaWVsZHNNYXBwaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBGaWVsZHNNYXBwaW5nIHtcbiAgcGFydG5lckZpZWxkOiBzdHJpbmc7XG4gIGZsdXhGaWVsZElkOiBzdHJpbmc7XG4gIG1ldGhvZEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRob2RGaWVsZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpZWxkTmFtZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZSB8IEZsdXhUeXBlIHwgc3RyaW5nO1xuICBtYW51bElucHV0Q29udHJvbFR5cGU/OiBNYW51YWxJbnB1dENvbnRyb2xUeXBlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBmaWVsZFZhbHVlPzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBleHBlY3RlZFZhbHVlPzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgR2V0TWV0aG9kRmllbGQge1xuICBpZDogc3RyaW5nO1xuICBmaWVsZE5hbWU6IHN0cmluZztcbiAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUgfCBGbHV4VHlwZSB8IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFudWFsSW5wdXRDb250cm9sRGF0YSB7XG4gIHR5cGU6IE1hbnVhbElucHV0Q29udHJvbFR5cGU7XG4gIGlzU2ltcGxlVmFsaWRhdGlvbjogYm9vbGVhbjtcbiAgaXNBcGlWYWxpZGF0aW9uOiBib29sZWFuO1xuICBhcGlWYWxpZGF0aW9uTWV0aG9kPzogc3RyaW5nIHwgbnVsbDtcbiAgYXBpVmFsaWRhdGlvblBhcnRuZXI/OiBzdHJpbmcgfCBudWxsO1xuICBhbGxvd2VkQ2hhcmFjdGVycz86IHN0cmluZztcbiAgbWF4Q2hhcmFjdGVycz86IG51bWJlcjtcbiAgbWluVmFsdWU/OiBudW1iZXI7XG4gIG1heFZhbHVlPzogbnVtYmVyO1xuICBhbGxvd09ubHlQYXN0PzogYm9vbGVhbjtcbiAgYWxsb3dPbmx5RnV0dXJlPzogYm9vbGVhbjtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzUHJlY29tcGxldGFibGU/OiBib29sZWFuO1xuICBwcmVjb21wbGV0aW9uRmllbGRJZD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGhDb250cm9sRGF0YSB7XG4gIGRlc2NyaXB0aW9uVHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzTWFuZGF0b3J5VHJhbnNsYXRpb25zPzogTGFiZWxJbmZvW107XG59XG5cbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5Q29udHJvbERhdGEge1xuICBkaWN0aW9uYXJ5VVVJRDogc3RyaW5nO1xuICBzaG93QXNSYWRpb0J1dHRvbnNMaXN0OiBib29sZWFuO1xuICByZWxhdGVkRGljdGlvbmFyaWVzVHJhbnNsYXRpb25zOiBEaWN0aW9uYXJ5TGFiZWxJbmZvW107XG4gIGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZD86IG51bWJlciB8IG51bGw7XG4gIHNlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllczogc3RyaW5nW107XG4gIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24/OiBib29sZWFuO1xuICBpc01hbmRhdG9yeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZsdXhUeXBlIHtcbiAgS3ljID0gMCxcbiAgRW1haWwgPSAxLFxuICBQaG9uZSA9IDIsXG4gIFNpZ24gPSAzLFxuICBTdGF0dXMgPSA0LFxuICBDdXN0b20gPSA1LFxuICBQYXVzZSA9IDYsXG4gIElkU2NhbiA9IDcsXG4gIEdlbmVyYXRlRG9jdW1lbnQgPSA4LFxuICBBY3Rpb24gPSA5LFxuICBVcGxvYWREb2N1bWVudCA9IDEwLFxuICBEb3dubG9hZERvY3VtZW50ID0gMTEsXG4gIFZpZXdPZmZlciA9IDEyLFxuICBGaW5hbCA9IDEzLFxuICBWaWV3RG9jdW1lbnQgPSAxNCxcbiAgTkVUT1BJQSA9IDE1LFxuICBFVVBMQVRFU0MgPSAxNixcbiAgT3BlbkJhbmtpbmcgPSAxN1xufVxuXG5leHBvcnQgZW51bSBTZWN0aW9uVHlwZSB7XG4gIFByZXNlbnRhdGlvbixcbiAgQ29sbGVjdCxcbiAgRGlzcGxheVxufVxuXG5leHBvcnQgZW51bSBTdGVwQ29udHJvbFR5cGUge1xuICBNYW51YWxJbnB1dCA9IDAsXG4gIFBhcmFncmFwaCA9IDEsXG4gIENoZWNrQm94ID0gMixcbiAgRGljdGlvbmFyeSA9IDMsXG4gIEJ1dHRvbnMgPSA0LFxuICBGbHV4SW5mbyA9IDUsXG4gIE5ld1JvdyA9IDYsXG4gIE1ldGFkYXRhID0gNyxcbiAgQXBpTWV0aG9kRmllbGQgPSA4LFxuICBEb3dubG9hZERvY3VtZW50cyA9IDksXG4gIFZpZXdEb2N1bWVudHMgPSAxMCxcbiAgVXBsb2FkRG9jdW1lbnRzID0gMTFcbn1cblxuZXhwb3J0IGVudW0gRGltZW5zaW9uVHlwZSB7XG4gIFBlcmNlbnRhZ2UsXG4gIFBpeGVsc1xufVxuXG5leHBvcnQgZW51bSBNYW51YWxJbnB1dENvbnRyb2xUeXBlIHtcbiAgVGV4dCxcbiAgTnVtZXJpYyxcbiAgRGF0ZVRpbWUsXG4gIEVtYWlsLFxuICBQaG9uZSxcbiAgVGV4dEFyZWFcbn1cblxuZXhwb3J0IGVudW0gU2lnbmF0dXJlVHlwZSB7XG4gIEVsZWN0cm9uaWMsXG4gIEhhbmR3cml0dGVuLFxuICBRdWFsaWZpZWRcbn1cblxuZXhwb3J0IGVudW0gQXBpTWV0aG9kVHlwZSB7XG4gIEdldERhdGEsXG4gIFNlbmREYXRhLFxuICBWYWxpZGF0aW9uXG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0dXNNb2RlbCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgZmluYWw6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBhY3Rpb25zOiBTdGF0dXNBY3Rpb25bXSA9IFtdO1xuICBjaGlsZEFwcGxpY2F0aW9uVXVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkZW51bWlyZTogc3RyaW5nLFxuICAgIG9yZGluZTogbnVtYmVyLFxuICAgIGZpbmFsOiBib29sZWFuLFxuICAgIGlzQWN0aXZlOiBib29sZWFuLFxuICAgIGFjdGlvbnM6IFN0YXR1c0FjdGlvbltdLFxuICAgIGNoaWxkQXBwbGljYXRpb25VdWlkczogc3RyaW5nW10gPSBbXVxuICApIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5uYW1lID0gZGVudW1pcmU7XG4gICAgdGhpcy5vcmRlciA9IG9yZGluZTtcbiAgICB0aGlzLmZpbmFsID0gZmluYWw7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGlzQWN0aXZlO1xuICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgdGhpcy5jaGlsZEFwcGxpY2F0aW9uVXVpZHMgPSBjaGlsZEFwcGxpY2F0aW9uVXVpZHMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0YXR1c0FjdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICBhY3Rpb25UaXRsZTogc3RyaW5nO1xuICBhcGlNZXRob2RJZDogc3RyaW5nO1xuICBwYXJ0bmVySWRzOiBudW1iZXJbXSA9IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uUGFyYWdyYXBoQ29udHJvbCBleHRlbmRzIFByZXNlbnRhdGlvbkNvbnRyb2wge1xuICBkZXNjcmlwdGlvblRyYW5zbGF0aW9uczogTGFiZWxJbmZvW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyIGV4dGVuZHMgUGFydG5lciB7XG4gIGRvY3VtZW50cz86IEFwcFBhcnRuZXJEb2N1bWVudHNbXSA9IFtdO1xuICBnZW5lcmFsU2V0dGluZ3M6IEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3M7XG4gIHBhcnRuZXJTZXR0aW5nczogUGFydG5lclNldHRpbmdzO1xuICBwYXJ0bmVyRGljdGlvbmFyeU1hcHBpbmc6IFBhcnRuZXJEaWN0aW9uYXJ5TWFwcGluZ1tdO1xuICBwYXJ0bmVyU3RhdHVzTWFwcGluZzogUGFydG5lclN0YXR1c01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3Mge1xuICBhY2NlcHRNdWx0aXBsZU9mZmVyczogYm9vbGVhbjtcbiAgb2ZmZXJzOiBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzT2ZmZXJbXSA9IFtdO1xuICByZWNlaXZlZE9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc1JlY2VpdmVkT2ZmZXJbXSA9IFtdO1xuICB2YWxhYmlsaXR5OiBudW1iZXI7XG4gIGhhc0N1c3RvbVZhbGFiaWxpdHk6IGJvb2xlYW47XG4gIHN0YXR1c1dvcmtlclNldHRpbmdzOiBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncztcbn1cbmV4cG9ydCBjbGFzcyBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncyB7XG4gIG1heFJldHJpZXM6IG51bWJlcjtcbiAgbG9vcEludGVydmFsOiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhcGlNZXRob2RJZDogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGN1c3RvbVZhbGFiaWxpdHk/OiBudW1iZXI7XG4gIGFwaU1ldGhvZEZpZWxkcz86IGFueVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzUmVjZWl2ZWRPZmZlciB7XG4gIGlkOiBzdHJpbmc7XG4gIG9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyRG9jdW1lbnRzIHtcbiAgaWQ6IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERvY3VtZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xuICBnZW5lcmF0ZWRCeUFwcDogYm9vbGVhbjtcbiAgaXNTdGF0aWM6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICB2ZXJzaW9uczogQXBwRG9jdW1lbnRWZXJzaW9uW10gPSBbXTtcbn1cbmV4cG9ydCBjbGFzcyBTaWduZWREb2N1bWVudCBleHRlbmRzIEFwcERvY3VtZW50IHtcbiAgc291cmNlRG9jdW1lbnRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBEb2N1bWVudEV4dGVuZGVkIGV4dGVuZHMgQXBwRG9jdW1lbnQge1xuICBpc0FwaURvY3VtZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERvY3VtZW50VmVyc2lvbiB7XG4gIGlkOiBudW1iZXI7XG4gIGFwcGxpY2F0aW9uSWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgdmFsaWRGcm9tOiBEYXRlO1xuICB2YWxpZFRvOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBpc0VkaXRNb2RlOiBib29sZWFuO1xuICBkYXRhOiBzdHJpbmcgfCBudWxsO1xuICBmbHV4Qm9va21hcmtzOiBCb29rbWFya01hcHBpbmdbXTtcbiAgaXNUZW1wb3Jhcnk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBCb29rbWFya01hcHBpbmcge1xuICBib29rbWFyazogc3RyaW5nO1xuICBjb250cm9sSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yVHJhbnNsYXRpb25zIHtcbiAgY29kZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xufVxuXG5leHBvcnQgY2xhc3MgVXBsb2FkRG9jdW1lbnQge1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVEYXRhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWREb2N1bWVudERldGFpbHMgZXh0ZW5kcyBVcGxvYWREb2N1bWVudCB7XG4gIGRvY3VtZW50TmFtZTogc3RyaW5nO1xuICBkb2N1bWVudEV4dGVuc2lvbnM6IHN0cmluZztcbiAgZG9jdW1lbnRNYXhTaXplOiBudW1iZXI7XG4gIGlzTWFuZGF0b3J5OiBib29sZWFuO1xuICBpc1VwbG9hZGluZzogYm9vbGVhbjtcbiAgaXNVcGxvYWRTdWNjZXNzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU3RlcHNTZXR0aW5ncyB7XG4gIHNob3dDb3VudGVyOiBib29sZWFuO1xuICBzaG93TGFiZWxzOiBib29sZWFuO1xuICBzaG93QWxsU3RlcHM6IGJvb2xlYW47XG4gIHNob3dQcm9ncmVzc0JhcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQXBwRGF0YVN0YXR1cyB7XG4gIG5ldyA9IDAsXG4gIGZpbmlzaGVkID0gMVxufVxuIl19
|
|
673
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL21vZGVscy9mb3Jtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBVyw2QkFBNkIsQ0FBQztRQUN0RCxvQkFBZSxHQUNiLDJEQUEyRCxDQUFDO0lBQ2hFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSwwQkFBcUIsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDRSxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQ25DLG9CQUFlLEdBQStCLE9BQU8sQ0FBQztRQUN0RCx3QkFBbUIsR0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FpQnJCO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFDRSxZQUFvQixFQUFFLEVBQ3RCLFlBQW9CLEVBQUUsRUFDdEIsY0FBc0Is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VztJQUF4QjtRQU9FLGFBQVEsR0FBeUIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FBQTtBQUNELE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztDQUU5QztBQU1ELE1BQU0sT0FBTyxrQkFBa0I7Q0FZOUI7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUczQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7Q0FHN0I7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUkxQjtBQUVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxjQUFjO0NBT3hEO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FLekI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUFPLENBQUE7SUFDUCx5REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFiZWxJbmZvIH0gZnJvbSAnLi9sYWJlbC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcnRuZXIgfSBmcm9tICcuL3BhcnRuZXIubW9kZWwnO1xuaW1wb3J0IHsgRGljdGlvbmFyeUxhYmVsSW5mbyB9IGZyb20gJy4uL290aGVycy9kaWN0aW9uYXJ5LWxhYmVsLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25NYXBwaW5ncyB9IGZyb20gJy4vYXBwbGljYXRpb24tdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBDc3NSdWxlcyB9IGZyb20gJy4uL290aGVycy91dGlscyc7XG5pbXBvcnQgeyBGbHV4SGVscGVyIH0gZnJvbSAnLi4vb3RoZXJzL2ZsdXgtaGVscGVyJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRyb2wsIFNlY3Rpb25EYXRhLCBTdGVwRGF0YSB9IGZyb20gJy4vZmx1eC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db25maWcge1xuICBlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHRpdGxlVGVtcGxhdGU6IHN0cmluZyA9ICdTdGF0dXMgdXBkYXRlOiB7c3RhdHVzTmFtZX0nO1xuICBtZXNzYWdlVGVtcGxhdGU6IHN0cmluZyA9XG4gICAgJ1lvdXIgYXBwbGljYXRpb24gc3RhdHVzIGhhcyBiZWVuIHVwZGF0ZWQgdG86IHtzdGF0dXNOYW1lfSc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbmhlcml0ZWRGaWVsZCB7XG4gIGlkOiBzdHJpbmcgPSAnJztcbiAgZmllbGROYW1lOiBzdHJpbmcgPSAnJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcmVudENoaWxkQ29uZmlnIHtcbiAgcGFyZW50QXBwbGljYXRpb25VdWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaW5oZXJpdGVkRmllbGRzOiBJbmhlcml0ZWRGaWVsZFtdID0gW107XG4gIG5vdGlmaWNhdGlvbkNvbmZpZzogTm90aWZpY2F0aW9uQ29uZmlnID0gbmV3IE5vdGlmaWNhdGlvbkNvbmZpZygpO1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGFjdE1ldGhvZENvbmZpZyB7XG4gIGVtYWlsRmllbGRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHBob25lRmllbGRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByZWZlcnJlZE1ldGhvZDogJ2VtYWlsJyB8ICdwaG9uZScgfCAnYm90aCcgPSAnZW1haWwnO1xuICBjb250aW51YXRpb25CYXNlVXJsOiBzdHJpbmcgPSAnJztcbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Nb2RlbCB7XG4gIGFwcGxpY2F0aW9uSWQ6IG51bWJlcjtcbiAgYXBwbGljYXRpb25VdWlkOiBzdHJpbmc7XG4gIGdlbmVyYWxEYXRhOiBHZW5lcmFsRGF0YU1vZGVsO1xuICBkZXNpZ246IERlc2lnbk1vZGVsO1xuICBmbHV4OiBTdGVwRGF0YVtdO1xuICBhcGk6IEFwaURhdGE7XG4gIHBhcnRuZXJzOiBBcHBQYXJ0bmVyW107XG4gIGRvY3VtZW50czogQXBwRG9jdW1lbnRbXTtcbiAgc3RhdHVzZXM6IFN0YXR1c01vZGVsW107XG4gIGRpc3BsYXk6IERpc3BsYXlNb2RlbDtcbiAgZ2VuZXJhdGVkQ3NzOiBDc3NSdWxlcztcbiAgbWV0YWRhdGFGaWVsZHM6IFtdO1xuICBlcnJvcnM6IHsgW3RhYk5hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIGFwcGxpY2F0aW9uTWFwcGluZ3M6IEFwcGxpY2F0aW9uTWFwcGluZ3M7XG4gIHBhcmVudENoaWxkQ29uZmlnPzogUGFyZW50Q2hpbGRDb25maWc7XG4gIGNvbnRhY3RNZXRob2RDb25maWc/OiBDb250YWN0TWV0aG9kQ29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwRGF0YUNvbnRyb2wge1xuICBjb250cm9sSWQ6IHN0cmluZztcbiAgZmlsbFZhbHVlOiBzdHJpbmc7XG4gIGZpbGxWYWx1ZUlkOiBzdHJpbmc7XG4gIGZpbGxWYWx1ZXM/OiBzdHJpbmdbXTtcbiAgZmlsbFZhbHVlSWRzPzogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29udHJvbElkOiBzdHJpbmcgPSAnJyxcbiAgICBmaWxsVmFsdWU6IHN0cmluZyA9ICcnLFxuICAgIGZpbGxWYWx1ZUlkOiBzdHJpbmcgPSAnJyxcbiAgICBmaWxsVmFsdWVzPzogc3RyaW5nW10sXG4gICAgZmlsbFZhbHVlSWRzPzogc3RyaW5nW11cbiAgKSB7XG4gICAgdGhpcy5jb250cm9sSWQgPSBjb250cm9sSWQgfHwgJyc7XG4gICAgdGhpcy5maWxsVmFsdWUgPSBmaWxsVmFsdWUgfHwgJyc7XG4gICAgdGhpcy5maWxsVmFsdWVJZCA9IGZpbGxWYWx1ZUlkIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlcyA9IGZpbGxWYWx1ZXM7XG4gICAgdGhpcy5maWxsVmFsdWVJZHMgPSBmaWxsVmFsdWVJZHM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFTZWN0aW9uIHtcbiAgc2VjdGlvbklkOiBzdHJpbmc7XG4gIGNvbnRyb2xzOiBBcHBEYXRhQ29udHJvbFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3Rpb25JZDogc3RyaW5nID0gJycsIGNvbnRyb2xzOiBBcHBEYXRhQ29udHJvbFtdID0gW10pIHtcbiAgICB0aGlzLnNlY3Rpb25JZCA9IHNlY3Rpb25JZCB8fCAnJztcbiAgICB0aGlzLmNvbnRyb2xzID0gY29udHJvbHMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFTdGVwIHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHR5cGU6IG51bWJlcjtcbiAgc2VjdGlvbnM6IEFwcERhdGFTZWN0aW9uW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RlcElkOiBzdHJpbmcgPSAnJyxcbiAgICB0eXBlOiBudW1iZXIsXG4gICAgc2VjdGlvbnM6IEFwcERhdGFTZWN0aW9uW10gPSBbXVxuICApIHtcbiAgICB0aGlzLnN0ZXBJZCA9IHN0ZXBJZCB8fCAnJztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc2VjdGlvbnMgPSBzZWN0aW9ucyB8fCBbXTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBwRGF0YUZpbGwge1xuICBtZXRhZGF0YToge1xuICAgIGFwcERhdGFJZDogc3RyaW5nO1xuICAgIGNvbmZpZ3VyYXRpb25JZDogc3RyaW5nO1xuICAgIGN1cnJlbnRTdGVwSWQ6IHN0cmluZztcbiAgICBzdGF0dXNJZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgb2ZmZXJJZDogc3RyaW5nO1xuICAgIGlzU3VibWl0dGVkOiBib29sZWFuO1xuICAgIHBhcmVudEFwcERhdGFVdWlkPzogc3RyaW5nO1xuICB9O1xuICBmbHV4OiBBcHBEYXRhU3RlcFtdO1xuICBpbml0Rmxvd1ZhbHVlcz86IGFueTtcbiAgaW5oZXJpdGVkRmllbGRzPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhcHBEYXRhSWQ6IHN0cmluZyA9ICcnLFxuICAgIGNvbmZpZ3VyYXRpb25JZDogc3RyaW5nID0gJycsXG4gICAgY3VycmVudFN0ZXBJZDogc3RyaW5nID0gJycsXG4gICAgc3RhdHVzSWQ6IHN0cmluZyA9ICcnLFxuICAgIGxhbmd1YWdlOiBzdHJpbmcgPSAnJyxcbiAgICBmbHV4OiBBcHBEYXRhU3RlcFtdID0gW10sXG4gICAgb2ZmZXJJZDogc3RyaW5nID0gJycsXG4gICAgaXNTdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBwYXJlbnRBcHBEYXRhVXVpZDogc3RyaW5nID0gJydcbiAgKSB7XG4gICAgdGhpcy5tZXRhZGF0YSA9IHtcbiAgICAgIGFwcERhdGFJZDogYXBwRGF0YUlkIHx8ICcnLFxuICAgICAgY29uZmlndXJhdGlvbklkOiBjb25maWd1cmF0aW9uSWQgfHwgJycsXG4gICAgICBjdXJyZW50U3RlcElkOiBjdXJyZW50U3RlcElkIHx8ICcnLFxuICAgICAgc3RhdHVzSWQ6IHN0YXR1c0lkIHx8ICcnLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlIHx8ICcnLFxuICAgICAgb2ZmZXJJZDogb2ZmZXJJZCB8fCAnJyxcbiAgICAgIGlzU3VibWl0dGVkOiBpc1N1Ym1pdHRlZCB8fCBmYWxzZSxcbiAgICAgIHBhcmVudEFwcERhdGFVdWlkOiBwYXJlbnRBcHBEYXRhVXVpZCB8fCAnJ1xuICAgIH07XG4gICAgdGhpcy5mbHV4ID0gZmx1eCB8fCBbXTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBwRGF0YSB7XG4gIGlkPzogbnVtYmVyO1xuICBhcHBEYXRhSWQ6IHN0cmluZztcbiAgYXBwQ29uZmlndXJhdGlvbklkOiBudW1iZXI7XG4gIGZpbGxEYXRhPzogQXBwRGF0YUZpbGw7XG4gIGluaXRGbG93VmFsdWVzPzogc3RyaW5nO1xuICB3aXRoTmV4dFN0ZXA6IGJvb2xlYW47XG4gIGJsb2NrUHJldmlvdXNTdGVwOiBib29sZWFuO1xuICBlbnY6IHN0cmluZztcbiAgc3RhdHVzOiBBcHBEYXRhU3RhdHVzO1xuICBwYXJlbnRBcHBEYXRhVXVpZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhOiB7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgYXBwRGF0YUlkOiBzdHJpbmc7XG4gICAgYXBwQ29uZmlndXJhdGlvbklkOiBudW1iZXI7XG4gICAgZmlsbERhdGE/OiBBcHBEYXRhRmlsbDtcbiAgICBpbml0Rmxvd1ZhbHVlcz86IHN0cmluZztcbiAgICB3aXRoTmV4dFN0ZXA6IGJvb2xlYW47XG4gICAgYmxvY2tQcmV2aW91c1N0ZXA6IGJvb2xlYW47XG4gICAgZW52OiBzdHJpbmc7XG4gICAgcGFyZW50QXBwRGF0YVV1aWQ/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICAoKHRoaXMuaWQgPSBkYXRhLmlkID8/IHVuZGVmaW5lZCksICh0aGlzLmFwcERhdGFJZCA9IGRhdGEuYXBwRGF0YUlkIHx8ICcnKSk7XG4gICAgdGhpcy5hcHBDb25maWd1cmF0aW9uSWQgPSBkYXRhLmFwcENvbmZpZ3VyYXRpb25JZCB8fCAwO1xuICAgIHRoaXMuZmlsbERhdGEgPSBkYXRhLmZpbGxEYXRhO1xuICAgIHRoaXMuaW5pdEZsb3dWYWx1ZXMgPSBkYXRhLmluaXRGbG93VmFsdWVzO1xuICAgIHRoaXMud2l0aE5leHRTdGVwID0gZGF0YS53aXRoTmV4dFN0ZXA7XG4gICAgdGhpcy5ibG9ja1ByZXZpb3VzU3RlcCA9IGRhdGEuYmxvY2tQcmV2aW91c1N0ZXA7XG4gICAgdGhpcy5wYXJlbnRBcHBEYXRhVXVpZCA9IGRhdGEucGFyZW50QXBwRGF0YVV1aWQ7XG4gICAgaWYgKCFkYXRhLmVudikge1xuICAgICAgdGhpcy5lbnYgPSAnQ29uZmlnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnYgPSBkYXRhLmVudjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Nb2RlbEV4dGVueGlvbnMge1xuICBmb3JtTW9kZWw6IEZvcm1Nb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihtb2RlbDogRm9ybU1vZGVsKSB7XG4gICAgdGhpcy5mb3JtTW9kZWwgPSBtb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdEZsb3dWYWx1ZXNJdGVtcyhpdGVtczogTWV0aG9kRmllbGRbXSk6IHZvaWQge1xuICAgIGNvbnN0IGluaXRGbG93VmFsdWVzUmF3ID0gKHRoaXMuZm9ybU1vZGVsIGFzIGFueSk/LmdlbmVyYWxEYXRhXG4gICAgICA/LmluaXRGbG93VmFsdWVzO1xuICAgIGlmIChpbml0Rmxvd1ZhbHVlc1JhdyA9PT0gbnVsbCB8fCBpbml0Rmxvd1ZhbHVlc1JhdyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBhcnNlZDogYW55ID0gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgaW5pdEZsb3dWYWx1ZXNSYXcgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCB0cmltbWVkID0gaW5pdEZsb3dWYWx1ZXNSYXcudHJpbSgpO1xuICAgICAgaWYgKCF0cmltbWVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZCA9IEpTT04ucGFyc2UodHJpbW1lZCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWYgY29uZmlnIGNvbnRhaW5zIGludmFsaWQgSlNPTiwgZG8gbm90IGV4cG9zZSBhbnkgaW5pdEZsb3dWYWx1ZXMgZmllbGRzLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlZCA9IGluaXRGbG93VmFsdWVzUmF3O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChpdGVtcy5tYXAoKGkpID0+IGkuaWQpKTtcbiAgICBjb25zdCBvdXQ6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGNvbnN0IHdhbGsgPSAobm9kZTogYW55LCBwYXRoUGFydHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBpZiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHBhdGhQYXJ0cy5sZW5ndGggPiAwKSBvdXQucHVzaCh0aGlzLmJ1aWxkSW5pdEZsb3dGaWVsZChwYXRoUGFydHMpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgICAgICBub2RlLmZvckVhY2goKGNoaWxkLCBpZHgpID0+IHdhbGsoY2hpbGQsIFsuLi5wYXRoUGFydHMsIFN0cmluZyhpZHgpXSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgT2JqZWN0LmtleXMobm9kZSkuZm9yRWFjaCgoa2V5KSA9PlxuICAgICAgICAgIHdhbGsobm9kZVtrZXldLCBbLi4ucGF0aFBhcnRzLCBrZXldKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXRoUGFydHMubGVuZ3RoID4gMCkgb3V0LnB1c2godGhpcy5idWlsZEluaXRGbG93RmllbGQocGF0aFBhcnRzKSk7XG4gICAgfTtcblxuICAgIHdhbGsocGFyc2VkLCBbXSk7XG5cbiAgICBmb3IgKGNvbnN0IGYgb2Ygb3V0KSB7XG4gICAgICBpZiAoIWV4aXN0aW5nSWRzLmhhcyhmLmlkKSkge1xuICAgICAgICBpdGVtcy5wdXNoKGYpO1xuICAgICAgICBleGlzdGluZ0lkcy5hZGQoZi5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEluaXRGbG93RmllbGQocGF0aFBhcnRzOiBzdHJpbmdbXSk6IE1ldGhvZEZpZWxkIHtcbiAgICBjb25zdCB1bmRlcnNjb3JlUGF0aCA9IHBhdGhQYXJ0cy5qb2luKCdfJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpZWxkTmFtZTogYGluaXRGbG93VmFsdWVzXyR7dW5kZXJzY29yZVBhdGh9YCxcbiAgICAgIGZpZWxkVHlwZTogU3RlcENvbnRyb2xUeXBlLk1ldGFkYXRhLFxuICAgICAgaWQ6IGBpbml0Rmxvd1ZhbHVlc18ke3VuZGVyc2NvcmVQYXRofWBcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGZsdXhJdGVtcyhcbiAgICB1bnRpbFN0ZXBJZGVudGlmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zOiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBpZiAodGhpcy5mb3JtTW9kZWwubWV0YWRhdGFGaWVsZHMpIHtcbiAgICAgIHRoaXMuZm9ybU1vZGVsLm1ldGFkYXRhRmllbGRzLmZvckVhY2goKGZpZWxkVmFsdWUpID0+IHtcbiAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgZmllbGROYW1lOiBmaWVsZFZhbHVlLFxuICAgICAgICAgIGZpZWxkVHlwZTogU3RlcENvbnRyb2xUeXBlLk1ldGFkYXRhLFxuICAgICAgICAgIGlkOiBgbWV0YWRhdGEuJHtmaWVsZFZhbHVlfWBcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZEluaXRGbG93VmFsdWVzSXRlbXMoaXRlbXMpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm1Nb2RlbD8uZmx1eCkge1xuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1Nb2RlbC5kb2N1bWVudHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KHRoaXMuZXh0cmFjdERvY3VtZW50c0ZsdXhJdGVtcyh0aGlzLmZvcm1Nb2RlbC5mbHV4KSk7XG4gICAgfVxuICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KFxuICAgICAgdGhpcy5leHRyYWN0U2VjdGlvbnNGbHV4SXRlbXModGhpcy5mb3JtTW9kZWwuZmx1eCwgdW50aWxTdGVwSWRlbnRpZmllcilcbiAgICApO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG4gIHByaXZhdGUgZXh0cmFjdFNlY3Rpb25zRmx1eEl0ZW1zKFxuICAgIHN0ZXBzOiBTdGVwRGF0YVtdLFxuICAgIHVudGlsU3RlcElkZW50aWZpZXI6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICApOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGZvciAobGV0IHN0ZXAgb2Ygc3RlcHMpIHtcbiAgICAgIGlmIChzdGVwLnNlY3Rpb25zKSB7XG4gICAgICAgIGlmICh1bnRpbFN0ZXBJZGVudGlmaWVyICYmIHN0ZXAuaWRlbnRpZmllciA9PT0gdW50aWxTdGVwSWRlbnRpZmllcikge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHN0ZXAuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChzZWN0aW9uLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBzZWN0aW9uLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5CdXR0b25zLFxuICAgICAgICAgICAgICAgICAgU3RlcENvbnRyb2xUeXBlLk5ld1JvdyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5GbHV4SW5mbyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5QYXJhZ3JhcGhcbiAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKGNvbnRyb2wudHlwZSkgPT0gZmFsc2VcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtzZWN0aW9uLnRpdGxlfSAtPiAke2NvbnRyb2wudGl0bGV9YCxcbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogY29udHJvbC50eXBlLFxuICAgICAgICAgICAgICAgICAgbWFudWxJbnB1dENvbnRyb2xUeXBlOiBjb250cm9sLnNwZWNpZmljQ29udHJvbERhdGE/LnR5cGUsXG4gICAgICAgICAgICAgICAgICBpZDogY29udHJvbC5pZGVudGlmaWVyXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0RG9jdW1lbnRzRmx1eEl0ZW1zKHN0ZXBEYXRhOiBTdGVwRGF0YVtdKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zOiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBzdGVwRGF0YT8uZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgaWYgKHN0ZXAudHlwZSA9PT0gRmx1eFR5cGUuVXBsb2FkRG9jdW1lbnQpIHtcbiAgICAgICAgc3RlcC5jb25maWc/LmRvY3VtZW50cz8uZm9yRWFjaChcbiAgICAgICAgICAoZG9jdW1lbnQ6IHsgZG9jdW1lbnRJZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogYCR7c3RlcC5uYW1lfSAtPiAke1xuICAgICAgICAgICAgICAgIEZsdXhIZWxwZXIuZ2V0RG9jdW1lbnROYW1lQnlJZChcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5kb2N1bWVudElkLFxuICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICApIHx8IGRvY3VtZW50Lm5hbWVcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICBpZDogZG9jdW1lbnQ/LmRvY3VtZW50SWRcbiAgICAgICAgICAgICAgICA/IGB1cGxvYWQuJHtkb2N1bWVudC5kb2N1bWVudElkfWBcbiAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLkdlbmVyYXRlRG9jdW1lbnQpIHtcbiAgICAgICAgc3RlcC5jb25maWc/LmdlbmVyYXRlZERvY3VtZW50cz8uZm9yRWFjaChcbiAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoZG9jdW1lbnQ/LmlkLCB0aGlzLmZvcm1Nb2RlbCkgfHxcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IHN0ZXAudHlwZSxcbiAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5pZFxuICAgICAgICAgICAgICAgID8gYGdlbmVyYXRlLiR7ZG9jdW1lbnQuaWR9YFxuICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHN0ZXAudHlwZSA9PT0gRmx1eFR5cGUuU2lnbikge1xuICAgICAgICBpZiAoc3RlcC5jb25maWc/LmRvY3VtZW50cykge1xuICAgICAgICAgIHN0ZXAuY29uZmlnPy5kb2N1bWVudHMuZm9yRWFjaChcbiAgICAgICAgICAgIChkb2N1bWVudDogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICAgIEZsdXhIZWxwZXIuZ2V0RG9jdW1lbnROYW1lQnlJZChcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ/LmlkLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Nb2RlbFxuICAgICAgICAgICAgICAgICAgKSB8fCBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgZmllbGRUeXBlOiBzdGVwLnR5cGUsXG4gICAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5pZFxuICAgICAgICAgICAgICAgICAgPyBgc2lnbi4ke2RvY3VtZW50LmlkfWBcbiAgICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RlcC5jb25maWc/LnN5c3RlbURvY3VtZW50cykge1xuICAgICAgICAgIHN0ZXAuY29uZmlnPy5zeXN0ZW1Eb2N1bWVudHMuZm9yRWFjaChcbiAgICAgICAgICAgIChkb2N1bWVudDogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICAgIEZsdXhIZWxwZXIuZ2V0RG9jdW1lbnROYW1lQnlJZChcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ/LmlkLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Nb2RlbFxuICAgICAgICAgICAgICAgICAgKSB8fCBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgZmllbGRUeXBlOiBzdGVwLnR5cGUsXG4gICAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5pZFxuICAgICAgICAgICAgICAgICAgPyBgc3lzdGVtLiR7ZG9jdW1lbnQuaWR9YFxuICAgICAgICAgICAgICAgICAgOiBgJHtzdGVwLnR5cGV9LiR7c3RlcC5uYW1lfWBcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBmbHV4SXRlbXNXaXRoR2V0QXBpTWV0aG9kcyhcbiAgICBleGNsdWRlZE1ldGhvZElkOiBzdHJpbmcgPSAnJ1xuICApOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmZsdXhJdGVtcygpO1xuICAgIHRoaXMuZm9ybU1vZGVsLmFwaS5nZXRJdGVtcy5mb3JFYWNoKChhcGlNZXRob2QpID0+IHtcbiAgICAgIGlmIChhcGlNZXRob2QuaWQgIT09IGV4Y2x1ZGVkTWV0aG9kSWQpIHtcbiAgICAgICAgYXBpTWV0aG9kLmZpZWxkcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgZmllbGROYW1lOiBgJHthcGlNZXRob2QubWV0aG9kfSAtPiAke2YuZmllbGROYW1lfWAsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5BcGlNZXRob2RGaWVsZCxcbiAgICAgICAgICAgIGlkOiBmLmlkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHVibGljIG9mZmVyTWV0aG9kc0l0ZW1zKCk6IE1ldGhvZEZpZWxkW10ge1xuICAgIGxldCBpdGVtczogTWV0aG9kRmllbGRbXSA9IFtdO1xuXG4gICAgbGV0IG9mZmVyTWV0aG9kc0lkczogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmZvcm1Nb2RlbC5wYXJ0bmVycz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgcC5nZW5lcmFsU2V0dGluZ3Mub2ZmZXJzPy5mb3JFYWNoKChvKSA9PiB7XG4gICAgICAgIG9mZmVyTWV0aG9kc0lkcy5wdXNoKG8uYXBpTWV0aG9kSWQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBvZmZlck1ldGhvZHNJZHMgPSBbLi4ubmV3IFNldChvZmZlck1ldGhvZHNJZHMpXTtcblxuICAgIGNvbnN0IGFsbEFwaUl0ZW1zID0gW1xuICAgICAgLi4udGhpcy5mb3JtTW9kZWwuYXBpLmdldEl0ZW1zLFxuICAgICAgLi4udGhpcy5mb3JtTW9kZWwuYXBpLnZhbGlkYXRpb25JdGVtcyxcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS5zZW5kSXRlbXNcbiAgICBdO1xuXG4gICAgb2ZmZXJNZXRob2RzSWRzLmZvckVhY2goKG1ldGhvZElkKSA9PiB7XG4gICAgICBjb25zdCBhcGlNZXRob2QgPSBhbGxBcGlJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBtZXRob2RJZCk7XG4gICAgICBpZiAoYXBpTWV0aG9kKSB7XG4gICAgICAgIGFwaU1ldGhvZC5maWVsZHM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkTmFtZTogYCR7YXBpTWV0aG9kLm1ldGhvZH0gLT4gJHtmLmZpZWxkTmFtZX1gLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBGbHV4VHlwZS5WaWV3T2ZmZXIsXG4gICAgICAgICAgICBpZDogYGFwaV8ke2FwaU1ldGhvZC5pZH0gLT4gJHtmLmlkfWBcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwaURhdGEge1xuICBnZXRJdGVtczogR2V0QXBpSXRlbVtdO1xuICB2YWxpZGF0aW9uSXRlbXM6IEFwaUl0ZW1bXTtcbiAgc2VuZEl0ZW1zOiBBcGlJdGVtW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIGZpZWxkczogTWV0aG9kRmllbGRbXTtcbiAgdHlwZTogQXBpTWV0aG9kVHlwZTtcbn1cblxuZXhwb3J0IGNsYXNzIEdldEFwaUl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgZmllbGRzOiBHZXRNZXRob2RGaWVsZFtdO1xuICB0eXBlOiBBcGlNZXRob2RUeXBlO1xufVxuZXhwb3J0IGNsYXNzIERlc2lnbk1vZGVsIHtcbiAgZm9udHM6IEZvbnRDb25maWdbXSA9IFtdO1xuICBidXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xuICBvdHBBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xuICBjb21wb25lbnRzOiBDb21wb25lbnRDb25maWdbXSA9IFtdO1xuICB0YWJsZXM6IFRhYmxlQ29uZmlnW10gPSBbXTtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGJ1dHRvbnNIb3Jpem9udGFsUG9zaXRpb246IHN0cmluZztcbiAgYnV0dG9uc1ZlcnRpY2FsUG9zaXRpb246IHN0cmluZztcbiAgbWF4V2lkdGg6IHN0cmluZztcbiAgbWFyZ2luTGVmdDogc3RyaW5nO1xuICBtYXJnaW5SaWdodDogc3RyaW5nO1xuICBtYXJnaW5Ub3A6IHN0cmluZztcbiAgbWFyZ2luQm90dG9tOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAoZGF0YS5mb250cykge1xuICAgICAgICB0aGlzLmZvbnRzID0gZGF0YS5mb250cy5tYXAoKGZvbnQ6IGFueSkgPT4gbmV3IEZvbnRDb25maWcoZm9udCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5idXR0b25zKSB7XG4gICAgICAgIHRoaXMuYnV0dG9ucyA9IGRhdGEuYnV0dG9ucy5tYXAoXG4gICAgICAgICAgKGJ1dHRvbjogYW55KSA9PiBuZXcgQnV0dG9uQ29uZmlnKGJ1dHRvbilcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEuY29tcG9uZW50cykge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSBkYXRhLmNvbXBvbmVudHMubWFwKFxuICAgICAgICAgIChjb21wb25lbnQ6IGFueSkgPT4gbmV3IENvbXBvbmVudENvbmZpZyhjb21wb25lbnQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLnRhYmxlcykge1xuICAgICAgICB0aGlzLnRhYmxlcyA9IGRhdGEudGFibGVzLm1hcCgodGFibGU6IGFueSkgPT4gbmV3IFRhYmxlQ29uZmlnKHRhYmxlKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMuYnV0dG9uc0hvcml6b250YWxQb3NpdGlvbiA9IGRhdGEuaG9yaXpvbnRhbFBvc2l0aW9uO1xuICAgICAgdGhpcy5idXR0b25zVmVydGljYWxQb3NpdGlvbiA9IGRhdGEudmVydGljYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMubWF4V2lkdGggPSBkYXRhLm1heFdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9udENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb250V2VpZ2h0OiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHk7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5mb250V2VpZ2h0ID0gZGF0YS5mb250V2VpZ2h0O1xuICAgICAgdGhpcy50ZXh0QWxpZ24gPSBkYXRhLnRleHRBbGlnbjtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICBib3JkZXJSYWRpdXM6IHN0cmluZztcbiAgaG9yaXpvbnRhbFBhZGRpbmc6IHN0cmluZztcbiAgdmVydGljYWxQYWRkaW5nOiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgZm9udFNpemU6IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgbWluV2lkdGg6IHN0cmluZztcbiAgbWluSGVpZ2h0OiBzdHJpbmc7XG4gIG1heFdpZHRoOiBzdHJpbmc7XG4gIG1heEhlaWdodDogc3RyaW5nO1xuICBob3Jpem9udGFsUG9zaXRpb24/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLmJvcmRlciA9IGRhdGEuYm9yZGVyO1xuICAgICAgdGhpcy5ib3JkZXJDb2xvciA9IGRhdGEuYm9yZGVyQ29sb3I7XG4gICAgICB0aGlzLmJvcmRlclJhZGl1cyA9IGRhdGEuYm9yZGVyUmFkaXVzO1xuICAgICAgdGhpcy5ob3Jpem9udGFsUGFkZGluZyA9IGRhdGEuaG9yaXpvbnRhbFBhZGRpbmc7XG4gICAgICB0aGlzLnZlcnRpY2FsUGFkZGluZyA9IGRhdGEudmVydGljYWxQYWRkaW5nO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgICB0aGlzLndpZHRoID0gZGF0YS53aWR0aDtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XG4gICAgICB0aGlzLm1pbldpZHRoID0gZGF0YS5taW5XaWR0aDtcbiAgICAgIHRoaXMubWluSGVpZ2h0ID0gZGF0YS5taW5IZWlnaHQ7XG4gICAgICB0aGlzLm1heFdpZHRoID0gZGF0YS5tYXhXaWR0aDtcbiAgICAgIHRoaXMubWF4SGVpZ2h0ID0gZGF0YS5tYXhIZWlnaHQ7XG4gICAgICB0aGlzLmhvcml6b250YWxQb3NpdGlvbiA9IGRhdGEuaG9yaXpvbnRhbFBvc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWcge1xuICBoZWFkZXJDb25maWc6IEhlYWRlckNvbmZpZztcbiAgZGV0YWlsQ29uZmlnOiBEZXRhaWxDb25maWc7XG5cbiAgY29uc3RydWN0b3IodGFibGU/OiBhbnkpIHtcbiAgICBpZiAodGFibGUpIHtcbiAgICAgIHRoaXMuaGVhZGVyQ29uZmlnID0gdGFibGUuaGVhZGVyQ29uZmlnO1xuICAgICAgdGhpcy5kZXRhaWxDb25maWcgPSB0YWJsZS5kZXRhaWxDb25maWc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIZWFkZXJDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGxldHRlclNwYWNpbmc6IHN0cmluZztcbiAgcGFkZGluZzogc3RyaW5nO1xuICBib3JkZXJDb2xsYXBzZTogc3RyaW5nO1xuICBib3JkZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHZlcnRpY2FsQWxpZ246IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy50ZXh0Q29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHk7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICAgIHRoaXMucGFkZGluZyA9IGRhdGEucGFkZGluZztcbiAgICAgIHRoaXMuYm9yZGVyQ29sbGFwc2UgPSBkYXRhLmJvcmRlckNvbGxhcHNlO1xuICAgICAgdGhpcy5ib3JkZXJTcGFjaW5nID0gZGF0YS5ib3JkZXJTcGFjaW5nO1xuICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduID0gZGF0YS52ZXJ0aWNhbEFsaWduO1xuICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV0YWlsQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHBhZGRpbmc6IHN0cmluZztcbiAgcm93Qm9yZGVyOiBzdHJpbmc7XG4gIHJvd0JvcmRlckNvbG9yOiBzdHJpbmc7XG4gIGhvdmVyQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHZlcnRpY2FsQWxpZ246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLnRleHRDb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5sZXR0ZXJTcGFjaW5nID0gZGF0YS5sZXR0ZXJTcGFjaW5nO1xuICAgICAgdGhpcy5wYWRkaW5nID0gZGF0YS5wYWRkaW5nO1xuICAgICAgdGhpcy5yb3dCb3JkZXIgPSBkYXRhLnJvd0JvcmRlcjtcbiAgICAgIHRoaXMuaG92ZXJCYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmhvdmVyQmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduID0gZGF0YS52ZXJ0aWNhbEFsaWduO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50Q29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGJvcmRlclJhZGl1czogc3RyaW5nO1xuICBsYWJlbFN0eWxlOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgYm9yZGVyQ29sb3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHdlaWdodD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgc3RhcnRDb2xvcj86IHN0cmluZztcbiAgZW5kQ29sb3I/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLmJvcmRlciA9IGRhdGEuYm9yZGVyO1xuICAgICAgdGhpcy5ib3JkZXJSYWRpdXMgPSBkYXRhLmJvcmRlclJhZGl1cztcbiAgICAgIHRoaXMubGFiZWxTdHlsZSA9IGRhdGEubGFiZWxTdHlsZTtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMud2VpZ2h0ID0gZGF0YS53ZWlnaHQ7XG4gICAgICB0aGlzLnN0YXJ0Q29sb3IgPSBkYXRhLnN0YXJ0Q29sb3I7XG4gICAgICB0aGlzLmVuZENvbG9yID0gZGF0YS5lbmRDb2xvcjtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5leHBvcnQgY2xhc3MgRGlzcGxheU1vZGVsIHtcbiAgc2VjdGlvbnM6IFNlY3Rpb25EYXRhW107XG59XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmFsRGF0YU1vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcHBsaWNhdGlvblR5cGU6IG51bWJlcjtcbiAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgZGVmYXVsdExhbmd1YWdlOiBzdHJpbmc7XG4gIGNvbnRpbnVlV2l0aE9mZmVyOiBib29sZWFuO1xuICBzaG93Q291bnRlclN0ZXA6IGJvb2xlYW47XG4gIHNob3dOYW1lU3RlcDogYm9vbGVhbjtcbiAgc2hvd0FsbFN0ZXBzOiBib29sZWFuO1xuICBzaG93UHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG4gIGluaXRGbG93VmFsdWVzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1zU3RhdGUge1xuICBkYXRhOiBGb3JtTW9kZWw7XG4gIHNlbGVjdGVkVGFiOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY2FuR2V0RnJvbVByb2Q6IGJvb2xlYW47XG4gIGNhbkdldEZyb21UZXN0OiBib29sZWFuO1xuICBjYW5QdWJsaXNoSW5Qcm9kOiBib29sZWFuO1xuICBjYW5QdWJsaXNoSW5UZXN0OiBib29sZWFuO1xuICBhcHBsaWNhdGlvblV1aWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxGb3JtdWxhcmVTdGF0ZTogRm9ybXNTdGF0ZSA9IHtcbiAgZGF0YToge1xuICAgIGFwcGxpY2F0aW9uSWQ6IDAsXG4gICAgYXBwbGljYXRpb25VdWlkOiAnJyxcbiAgICBnZW5lcmFsRGF0YToge1xuICAgICAgbmFtZTogJycsXG4gICAgICBhcHBsaWNhdGlvblR5cGU6IDAsXG4gICAgICBsYW5ndWFnZXM6IFtdLFxuICAgICAgZGVmYXVsdExhbmd1YWdlOiAnJyxcbiAgICAgIGNvbnRpbnVlV2l0aE9mZmVyOiBmYWxzZSxcbiAgICAgIHNob3dDb3VudGVyU3RlcDogZmFsc2UsXG4gICAgICBzaG93TmFtZVN0ZXA6IGZhbHNlLFxuICAgICAgc2hvd0FsbFN0ZXBzOiBmYWxzZSxcbiAgICAgIHNob3dQcm9ncmVzc0JhcjogZmFsc2UsXG4gICAgICBpbml0Rmxvd1ZhbHVlczogJydcbiAgICB9LFxuICAgIGRlc2lnbjoge1xuICAgICAgZm9udHM6IFtdLFxuICAgICAgYnV0dG9uczogW10sXG4gICAgICBvdHBBY3Rpb25CdXR0b25zOiBbXSxcbiAgICAgIGNvbXBvbmVudHM6IFtdLFxuICAgICAgdGFibGVzOiBbXSxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJycsXG4gICAgICBmb250U2l6ZTogJycsXG4gICAgICBidXR0b25zSG9yaXpvbnRhbFBvc2l0aW9uOiAnJyxcbiAgICAgIGJ1dHRvbnNWZXJ0aWNhbFBvc2l0aW9uOiAnJyxcbiAgICAgIG1heFdpZHRoOiAnJyxcbiAgICAgIG1hcmdpbkxlZnQ6ICcnLFxuICAgICAgbWFyZ2luUmlnaHQ6ICcnLFxuICAgICAgbWFyZ2luVG9wOiAnJyxcbiAgICAgIG1hcmdpbkJvdHRvbTogJydcbiAgICB9LFxuICAgIGZsdXg6IFtdLFxuICAgIGFwaTogeyBnZXRJdGVtczogW10sIHZhbGlkYXRpb25JdGVtczogW10sIHNlbmRJdGVtczogW10gfSxcbiAgICBwYXJ0bmVyczogW10sXG4gICAgZG9jdW1lbnRzOiBbXSxcbiAgICBzdGF0dXNlczogW10sXG4gICAgZGlzcGxheToge1xuICAgICAgc2VjdGlvbnM6IFtdXG4gICAgfSxcbiAgICBnZW5lcmF0ZWRDc3M6IHt9LFxuICAgIG1ldGFkYXRhRmllbGRzOiBbXSxcbiAgICBlcnJvcnM6IHt9LFxuICAgIGFwcGxpY2F0aW9uTWFwcGluZ3M6IHtcbiAgICAgIGFwcGxpY2F0aW9uVHlwZUlkOiAwLFxuICAgICAgY29sdW1uTWFwcGluZ3M6IFtdXG4gICAgfSxcbiAgICBwYXJlbnRDaGlsZENvbmZpZzogdW5kZWZpbmVkXG4gIH0sXG4gIHNlbGVjdGVkVGFiOiAnRGF0ZSBnZW5lcmFsZScsXG4gIGNhbkdldEZyb21Qcm9kOiBmYWxzZSxcbiAgY2FuR2V0RnJvbVRlc3Q6IGZhbHNlLFxuICBjYW5QdWJsaXNoSW5Qcm9kOiBmYWxzZSxcbiAgY2FuUHVibGlzaEluVGVzdDogZmFsc2UsXG4gIGFwcGxpY2F0aW9uVXVpZDogJycsXG4gIHZlcnNpb246ICcnXG59O1xuXG5leHBvcnQgY2xhc3MgUGFydG5lckRpY3Rpb25hcnlNYXBwaW5nIHtcbiAgZGljdGlvbmFyeUlkOiBzdHJpbmc7XG4gIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmc7XG4gIG1hcHBpbmdzOiBQYXJ0bmVyS2V5VmFsdWVJdGVtW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyU2V0dGluZ3Mge1xuICBwYXJ0bmVyTWV0aG9kc0FwaTogUGFydG5lck1ldGhvZEFwaVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kQXBpIHtcbiAgbWV0aG9kSWQ6IHN0cmluZztcbiAgbWV0aG9kVHlwZTogc3RyaW5nO1xuICBjYWxsVHlwZTogc3RyaW5nO1xuICBib2R5Q29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZEJvZHk7XG4gIHJlc3BvbnNlQ29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZFJlc3BvbnNlO1xuICB1cmxDb25maWd1cmF0aW9uOiBQYXJ0bmVyTWV0aG9kVXJsO1xuICBhdXRoVmFsdWU6IFBhcnRuZXJNZXRob2RBcGlBdXRoO1xuICBoZWFkZXJzOiBQYXJ0bmVyS2V5VmFsdWVJdGVtW107XG4gIC8vIElOQk9VTkQtc3BlY2lmaWMgcHJvcGVydGllc1xuICBpbmJvdW5kTWV0aG9kVHlwZT86IEluYm91bmRNZXRob2RUeXBlOyAvLyBUeXBlIG9mIElOQk9VTkQgbWV0aG9kXG59XG5cbmV4cG9ydCBlbnVtIEluYm91bmRNZXRob2RUeXBlIHtcbiAgU3RhbmRhcmQgPSAnU3RhbmRhcmQnLFxuICBTdGF0dXNNZXRob2QgPSAnU3RhdHVzTWV0aG9kJ1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lck1ldGhvZEFwaUF1dGgge1xuICBoZWFkZXJOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBhcGlLZXk6IHN0cmluZyB8IG51bGw7XG4gIGF1dGhUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyS2V5VmFsdWVJdGVtIHtcbiAga2V5OiBzdHJpbmc7XG4gIGtleU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUGFydG5lclN0YXR1c01hcHBpbmcge1xuICBwYXJ0bmVyU3RhdHVzOiBzdHJpbmc7XG4gIGFwcFN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lck1ldGhvZFVybCB7XG4gIHVybFZhbHVlOiBzdHJpbmc7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbiAgdGVzdFVybDogc3RyaW5nO1xuICBwcm9kVXJsOiBzdHJpbmc7XG4gIHBhcmFtZXRlck1hcHBpbmdzOiBVcmxNYXBGaWVsZHNbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RSZXNwb25zZSB7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIGpzb25WYWx1ZTogc3RyaW5nO1xuICByZXNwb25zZU1hcEZpZWxkczogRmllbGRzTWFwcGluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgVXJsTWFwRmllbGRzIHtcbiAgdXJsUGFyYW1ldGVyOiBzdHJpbmc7XG4gIGZsdXhGaWVsZDogc3RyaW5nO1xuICBmbHV4RmllbGRJZDogc3RyaW5nO1xuICBmaWVsZFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RCb2R5IHtcbiAgY29udGVudFR5cGU6IHN0cmluZztcbiAganNvblZhbHVlOiBzdHJpbmc7XG4gIGJvZHlNYXBGaWVsZHM6IEZpZWxkc01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkc01hcHBpbmcge1xuICBwYXJ0bmVyRmllbGQ6IHN0cmluZztcbiAgZmx1eEZpZWxkSWQ6IHN0cmluZztcbiAgbWV0aG9kRmllbGRJZDogc3RyaW5nO1xuICBmaWVsZFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1ldGhvZEZpZWxkIHtcbiAgaWQ6IHN0cmluZztcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIGZpZWxkVHlwZTogU3RlcENvbnRyb2xUeXBlIHwgRmx1eFR5cGUgfCBzdHJpbmc7XG4gIG1hbnVsSW5wdXRDb250cm9sVHlwZT86IE1hbnVhbElucHV0Q29udHJvbFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGZpZWxkVmFsdWU/OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGV4cGVjdGVkVmFsdWU/OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNZXRob2RGaWVsZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpZWxkTmFtZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZSB8IEZsdXhUeXBlIHwgc3RyaW5nO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNYW51YWxJbnB1dENvbnRyb2xEYXRhIHtcbiAgdHlwZTogTWFudWFsSW5wdXRDb250cm9sVHlwZTtcbiAgaXNTaW1wbGVWYWxpZGF0aW9uOiBib29sZWFuO1xuICBpc0FwaVZhbGlkYXRpb246IGJvb2xlYW47XG4gIGFwaVZhbGlkYXRpb25NZXRob2Q/OiBzdHJpbmcgfCBudWxsO1xuICBhcGlWYWxpZGF0aW9uUGFydG5lcj86IHN0cmluZyB8IG51bGw7XG4gIGFsbG93ZWRDaGFyYWN0ZXJzPzogc3RyaW5nO1xuICBtYXhDaGFyYWN0ZXJzPzogbnVtYmVyO1xuICBtaW5WYWx1ZT86IG51bWJlcjtcbiAgbWF4VmFsdWU/OiBudW1iZXI7XG4gIGFsbG93T25seVBhc3Q/OiBib29sZWFuO1xuICBhbGxvd09ubHlGdXR1cmU/OiBib29sZWFuO1xuICBpc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgaXNQcmVjb21wbGV0YWJsZT86IGJvb2xlYW47XG4gIHByZWNvbXBsZXRpb25GaWVsZElkPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaENvbnRyb2xEYXRhIHtcbiAgZGVzY3JpcHRpb25UcmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xuICBpc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgaXNNYW5kYXRvcnlUcmFuc2xhdGlvbnM/OiBMYWJlbEluZm9bXTtcbn1cblxuZXhwb3J0IGNsYXNzIERpY3Rpb25hcnlDb250cm9sRGF0YSB7XG4gIGRpY3Rpb25hcnlVVUlEOiBzdHJpbmc7XG4gIHNob3dBc1JhZGlvQnV0dG9uc0xpc3Q6IGJvb2xlYW47XG4gIHJlbGF0ZWREaWN0aW9uYXJpZXNUcmFuc2xhdGlvbnM6IERpY3Rpb25hcnlMYWJlbEluZm9bXTtcbiAgZGljdGlvbmFyeURlZmF1bHRWYWx1ZUlkPzogbnVtYmVyIHwgbnVsbDtcbiAgc2VsZWN0ZWRSZWxhdGVkRGljdGlvbmFyaWVzOiBzdHJpbmdbXTtcbiAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbj86IGJvb2xlYW47XG4gIGlzTWFuZGF0b3J5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRmx1eFR5cGUge1xuICBLeWMgPSAwLFxuICBFbWFpbCA9IDEsXG4gIFBob25lID0gMixcbiAgU2lnbiA9IDMsXG4gIFN0YXR1cyA9IDQsXG4gIEN1c3RvbSA9IDUsXG4gIFBhdXNlID0gNixcbiAgSWRTY2FuID0gNyxcbiAgR2VuZXJhdGVEb2N1bWVudCA9IDgsXG4gIEFjdGlvbiA9IDksXG4gIFVwbG9hZERvY3VtZW50ID0gMTAsXG4gIERvd25sb2FkRG9jdW1lbnQgPSAxMSxcbiAgVmlld09mZmVyID0gMTIsXG4gIEZpbmFsID0gMTMsXG4gIFZpZXdEb2N1bWVudCA9IDE0LFxuICBORVRPUElBID0gMTUsXG4gIEVVUExBVEVTQyA9IDE2LFxuICBPcGVuQmFua2luZyA9IDE3LFxuICBWYWxpZGF0aW9uID0gMThcbn1cblxuZXhwb3J0IGVudW0gU2VjdGlvblR5cGUge1xuICBQcmVzZW50YXRpb24sXG4gIENvbGxlY3QsXG4gIERpc3BsYXlcbn1cblxuZXhwb3J0IGVudW0gU3RlcENvbnRyb2xUeXBlIHtcbiAgTWFudWFsSW5wdXQgPSAwLFxuICBQYXJhZ3JhcGggPSAxLFxuICBDaGVja0JveCA9IDIsXG4gIERpY3Rpb25hcnkgPSAzLFxuICBCdXR0b25zID0gNCxcbiAgRmx1eEluZm8gPSA1LFxuICBOZXdSb3cgPSA2LFxuICBNZXRhZGF0YSA9IDcsXG4gIEFwaU1ldGhvZEZpZWxkID0gOCxcbiAgRG93bmxvYWREb2N1bWVudHMgPSA5LFxuICBWaWV3RG9jdW1lbnRzID0gMTAsXG4gIFVwbG9hZERvY3VtZW50cyA9IDExXG59XG5cbmV4cG9ydCBlbnVtIERpbWVuc2lvblR5cGUge1xuICBQZXJjZW50YWdlLFxuICBQaXhlbHNcbn1cblxuZXhwb3J0IGVudW0gTWFudWFsSW5wdXRDb250cm9sVHlwZSB7XG4gIFRleHQsXG4gIE51bWVyaWMsXG4gIERhdGVUaW1lLFxuICBFbWFpbCxcbiAgUGhvbmUsXG4gIFRleHRBcmVhXG59XG5cbmV4cG9ydCBlbnVtIFNpZ25hdHVyZVR5cGUge1xuICBFbGVjdHJvbmljLFxuICBIYW5kd3JpdHRlbixcbiAgUXVhbGlmaWVkXG59XG5cbmV4cG9ydCBlbnVtIEFwaU1ldGhvZFR5cGUge1xuICBHZXREYXRhLFxuICBTZW5kRGF0YSxcbiAgVmFsaWRhdGlvblxufVxuXG5leHBvcnQgY2xhc3MgU3RhdHVzTW9kZWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGZpbmFsOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgYWN0aW9uczogU3RhdHVzQWN0aW9uW10gPSBbXTtcbiAgY2hpbGRBcHBsaWNhdGlvblV1aWRzOiBzdHJpbmdbXSA9IFtdO1xuICBzZW5kTm90aWZpY2F0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGVudW1pcmU6IHN0cmluZyxcbiAgICBvcmRpbmU6IG51bWJlcixcbiAgICBmaW5hbDogYm9vbGVhbixcbiAgICBpc0FjdGl2ZTogYm9vbGVhbixcbiAgICBhY3Rpb25zOiBTdGF0dXNBY3Rpb25bXSxcbiAgICBjaGlsZEFwcGxpY2F0aW9uVXVpZHM6IHN0cmluZ1tdID0gW10sXG4gICAgc2VuZE5vdGlmaWNhdGlvbnM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5uYW1lID0gZGVudW1pcmU7XG4gICAgdGhpcy5vcmRlciA9IG9yZGluZTtcbiAgICB0aGlzLmZpbmFsID0gZmluYWw7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGlzQWN0aXZlO1xuICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgdGhpcy5jaGlsZEFwcGxpY2F0aW9uVXVpZHMgPSBjaGlsZEFwcGxpY2F0aW9uVXVpZHMgfHwgW107XG4gICAgdGhpcy5zZW5kTm90aWZpY2F0aW9ucyA9IHNlbmROb3RpZmljYXRpb25zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0dXNBY3Rpb24ge1xuICBpZD86IHN0cmluZztcbiAgYWN0aW9uVGl0bGU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgcGFydG5lcklkczogbnVtYmVyW10gPSBbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFByZXNlbnRhdGlvblBhcmFncmFwaENvbnRyb2wgZXh0ZW5kcyBQcmVzZW50YXRpb25Db250cm9sIHtcbiAgZGVzY3JpcHRpb25UcmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwUGFydG5lciBleHRlbmRzIFBhcnRuZXIge1xuICBkb2N1bWVudHM/OiBBcHBQYXJ0bmVyRG9jdW1lbnRzW10gPSBbXTtcbiAgZ2VuZXJhbFNldHRpbmdzOiBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzO1xuICBwYXJ0bmVyU2V0dGluZ3M6IFBhcnRuZXJTZXR0aW5ncztcbiAgcGFydG5lckRpY3Rpb25hcnlNYXBwaW5nOiBQYXJ0bmVyRGljdGlvbmFyeU1hcHBpbmdbXTtcbiAgcGFydG5lclN0YXR1c01hcHBpbmc6IFBhcnRuZXJTdGF0dXNNYXBwaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzIHtcbiAgYWNjZXB0TXVsdGlwbGVPZmZlcnM6IGJvb2xlYW47XG4gIG9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyW10gPSBbXTtcbiAgcmVjZWl2ZWRPZmZlcnM6IEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3NSZWNlaXZlZE9mZmVyW10gPSBbXTtcbiAgdmFsYWJpbGl0eTogbnVtYmVyO1xuICBoYXNDdXN0b21WYWxhYmlsaXR5OiBib29sZWFuO1xuICBzdGF0dXNXb3JrZXJTZXR0aW5nczogQXBwU3RhdHVzV29ya2VyU2V0dGluZ3M7XG59XG5leHBvcnQgY2xhc3MgQXBwU3RhdHVzV29ya2VyU2V0dGluZ3Mge1xuICBtYXhSZXRyaWVzOiBudW1iZXI7XG4gIGxvb3BJbnRlcnZhbDogbnVtYmVyO1xufVxuZXhwb3J0IGNsYXNzIEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3NPZmZlciB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjdXN0b21WYWxhYmlsaXR5PzogbnVtYmVyO1xuICBhcGlNZXRob2RGaWVsZHM/OiBhbnlbXSA9IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc1JlY2VpdmVkT2ZmZXIge1xuICBpZDogc3RyaW5nO1xuICBvZmZlcnM6IEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3NPZmZlcltdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwUGFydG5lckRvY3VtZW50cyB7XG4gIGlkOiBzdHJpbmc7XG4gIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgZG9jdW1lbnROYW1lOiBzdHJpbmc7XG4gIGFwaU1ldGhvZElkOiBzdHJpbmc7XG4gIGlzRWRpdE1vZGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEb2N1bWVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbiAgZ2VuZXJhdGVkQnlBcHA6IGJvb2xlYW47XG4gIGlzU3RhdGljOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgdmVyc2lvbnM6IEFwcERvY3VtZW50VmVyc2lvbltdID0gW107XG59XG5leHBvcnQgY2xhc3MgU2lnbmVkRG9jdW1lbnQgZXh0ZW5kcyBBcHBEb2N1bWVudCB7XG4gIHNvdXJjZURvY3VtZW50czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwRG9jdW1lbnRFeHRlbmRlZCBleHRlbmRzIEFwcERvY3VtZW50IHtcbiAgaXNBcGlEb2N1bWVudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEb2N1bWVudFZlcnNpb24ge1xuICBpZDogbnVtYmVyO1xuICBhcHBsaWNhdGlvbklkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIHZhbGlkRnJvbTogRGF0ZTtcbiAgdmFsaWRUbzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbiAgZGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgZmx1eEJvb2ttYXJrczogQm9va21hcmtNYXBwaW5nW107XG4gIGlzVGVtcG9yYXJ5OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQm9va21hcmtNYXBwaW5nIHtcbiAgYm9va21hcms6IHN0cmluZztcbiAgY29udHJvbElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvclRyYW5zbGF0aW9ucyB7XG4gIGNvZGU6IHN0cmluZztcbiAgdHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVwbG9hZERvY3VtZW50IHtcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBmaWxlRGF0YTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgVXBsb2FkRG9jdW1lbnREZXRhaWxzIGV4dGVuZHMgVXBsb2FkRG9jdW1lbnQge1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgZG9jdW1lbnRFeHRlbnNpb25zOiBzdHJpbmc7XG4gIGRvY3VtZW50TWF4U2l6ZTogbnVtYmVyO1xuICBpc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgaXNVcGxvYWRpbmc6IGJvb2xlYW47XG4gIGlzVXBsb2FkU3VjY2VzczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0ZXBzU2V0dGluZ3Mge1xuICBzaG93Q291bnRlcjogYm9vbGVhbjtcbiAgc2hvd0xhYmVsczogYm9vbGVhbjtcbiAgc2hvd0FsbFN0ZXBzOiBib29sZWFuO1xuICBzaG93UHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEFwcERhdGFTdGF0dXMge1xuICBuZXcgPSAwLFxuICBmaW5pc2hlZCA9IDFcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject,
|
|
2
|
+
import { BehaviorSubject, of, throwError, } from 'rxjs';
|
|
3
3
|
import { switchMap, catchError, tap } from 'rxjs/operators';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./auth-client.service";
|
|
@@ -12,7 +12,6 @@ export class OriginFormAuthService {
|
|
|
12
12
|
async setTokens(token, refreshToken) {
|
|
13
13
|
this.tokenSubject.next(token);
|
|
14
14
|
this.refreshTokenSubject.next(refreshToken);
|
|
15
|
-
return await firstValueFrom(this.refreshToken());
|
|
16
15
|
}
|
|
17
16
|
getToken() {
|
|
18
17
|
return this.tokenSubject.getValue();
|
|
@@ -37,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
37
36
|
providedIn: 'root',
|
|
38
37
|
}]
|
|
39
38
|
}], ctorParameters: () => [{ type: i1.AuthenticationClient }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWZvcm0tYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9vcmlnaW4tZm9ybS1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsZUFBZSxFQUdmLEVBQUUsRUFDRixVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzVELE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFBb0IsVUFBZ0M7UUFBaEMsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFINUMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQyx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFeEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBb0I7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUNwRCxHQUFHLENBQUMsQ0FBQyxRQUF5QixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLFFBQXlCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDbkUsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBOUJVLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uQ2xpZW50IH0gZnJvbSAnLi9hdXRoLWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhSZXNwb25zZUR0byB9IGZyb20gJy4vbW9kZWxzL2F1dGgvdXNlcnMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3JpZ2luRm9ybUF1dGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0b2tlblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIHJlZnJlc2hUb2tlblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aENsaWVudDogQXV0aGVudGljYXRpb25DbGllbnQpIHt9XG5cbiAgYXN5bmMgc2V0VG9rZW5zKHRva2VuOiBzdHJpbmcsIHJlZnJlc2hUb2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQocmVmcmVzaFRva2VuKTtcbiAgfVxuXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5TdWJqZWN0LmdldFZhbHVlKCk7XG4gIH1cblxuICByZWZyZXNoVG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5TdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgcmV0dXJuIHRoaXMuYXV0aENsaWVudC5yZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKS5waXBlKFxuICAgICAgdGFwKChyZXNwb25zZTogQXV0aFJlc3BvbnNlRHRvKSA9PiB7XG4gICAgICAgIHRoaXMudG9rZW5TdWJqZWN0Lm5leHQocmVzcG9uc2UuYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQocmVzcG9uc2UucmVmcmVzaF90b2tlbik7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2U6IEF1dGhSZXNwb25zZUR0bykgPT4gb2YocmVzcG9uc2UuYWNjZXNzX3Rva2VuKSksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRocm93RXJyb3IoKCkgPT4gZXJyKSlcbiAgICApO1xuICB9XG5cbiAgdG9rZW5PYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
|