vcomply-workflow-engine 3.0.281 → 3.1.1
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/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +19 -18
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +19 -28
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +9 -17
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +58 -14
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +20 -28
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +19 -16
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +20 -30
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +20 -18
- package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +25 -43
- package/fesm2015/vcomply-workflow-engine.mjs +257 -247
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +236 -240
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +4 -4
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +8 -2
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +5 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +5 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -15,22 +15,12 @@ export class FrequencyDialogContainerComponent {
|
|
|
15
15
|
this.frequencyService = frequencyService;
|
|
16
16
|
this.snackbar = snackbar;
|
|
17
17
|
this.currentTab = 'WEEKLY';
|
|
18
|
-
// @Input() frequencyDetails: any;
|
|
19
18
|
this.frequencyDetails = {
|
|
20
19
|
pattern: '',
|
|
21
20
|
window: 0,
|
|
22
21
|
timeIn12hr: '',
|
|
23
22
|
};
|
|
24
|
-
this.mode = '';
|
|
25
|
-
this.selectedFrequency = new EventEmitter();
|
|
26
|
-
this.closeFrequency = new EventEmitter();
|
|
27
23
|
this.isNextDisabled = false;
|
|
28
|
-
// constructor() { }
|
|
29
|
-
// ngOnInit(): void {
|
|
30
|
-
// }
|
|
31
|
-
// switchTab(tab:string){
|
|
32
|
-
// this.frequencyTab = tab;
|
|
33
|
-
// }
|
|
34
24
|
this.frequencyTab = 'weekly';
|
|
35
25
|
this.currentTabName = 'a weekly';
|
|
36
26
|
this.frequencyList = [
|
|
@@ -75,12 +65,14 @@ export class FrequencyDialogContainerComponent {
|
|
|
75
65
|
type: 'ongoing',
|
|
76
66
|
},
|
|
77
67
|
];
|
|
68
|
+
this.mode = '';
|
|
69
|
+
this.selectedFrequency = new EventEmitter();
|
|
70
|
+
this.closeFrequency = new EventEmitter();
|
|
78
71
|
}
|
|
79
72
|
set getFrequencyDetails(frequency) {
|
|
80
73
|
this.frequencyDetails['pattern'] = frequency?.frequency;
|
|
81
74
|
this.frequencyDetails['window'] = frequency?.remind_before_days;
|
|
82
75
|
this.frequencyDetails['failedTime'] = frequency?.frequency_time;
|
|
83
|
-
console.log('frequencyDetailsfrequencyDetailsfrequencyDetails', this.frequencyDetails);
|
|
84
76
|
}
|
|
85
77
|
ngOnInit() {
|
|
86
78
|
if (this.frequencyDetails?.pattern != '') {
|
|
@@ -95,7 +87,6 @@ export class FrequencyDialogContainerComponent {
|
|
|
95
87
|
this.closeFrequency.emit();
|
|
96
88
|
}
|
|
97
89
|
onFrequencySelected(event) {
|
|
98
|
-
console.log('event.....', event);
|
|
99
90
|
this.frequencyData = event;
|
|
100
91
|
this.isNextDisabled = this.isInvalid();
|
|
101
92
|
}
|
|
@@ -275,8 +266,9 @@ export class FrequencyDialogContainerComponent {
|
|
|
275
266
|
frequency_time: this.frequencyData?.timeIn12hr,
|
|
276
267
|
remind_before_days: this.frequencyData?.window,
|
|
277
268
|
placeholder: this.frequencyData?.placeholder,
|
|
269
|
+
failed_after_days: this.frequencyData?.failed_after_days,
|
|
270
|
+
can_assess_before_days: this.frequencyData?.can_assess_before_days,
|
|
278
271
|
};
|
|
279
|
-
console.log('frequency_detailsfrequency_details', frequency_details);
|
|
280
272
|
this.selectedFrequency.emit(frequency_details);
|
|
281
273
|
this.closeFrequency.emit();
|
|
282
274
|
}
|
|
@@ -288,12 +280,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
288
280
|
args: [{ selector: 'app-frequency-dialog-container', template: "<div class=\"frequency-dialog\">\r\n <div class=\"frequency-dialog-head vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\">\r\n <div class=\"frequency-dialog-title vx-fs-14 vx-fw-500 vx-label-txt\">Set a Reassessment Frequency</div>\r\n </div>\r\n <div class=\"frequency-dialog-body\">\r\n <div class=\"frequency-dialog-tab vx-mb-3 vx-d-flex\">\r\n <button (click)=\"switchTab('weekly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'weekly'\">WEEKLY</button>\r\n <button (click)=\"switchTab('monthly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'monthly'\">MONTHLY</button>\r\n <button (click)=\"switchTab('quarterly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'quarterly'\">QUARTERLY</button>\r\n <button (click)=\"switchTab('biannual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'biannual'\">BIANNUAL</button>\r\n <button (click)=\"switchTab('annual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'annual'\">ANNUAL</button>\r\n <button (click)=\"switchTab('oneTime')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'oneTime'\">ONE TIME</button>\r\n </div>\r\n\r\n <div class=\"frequency-dialog-container\">\r\n <!-- <app-frequency-dialog-weekly *ngIf=\"frequencyTab === 'WEEKLY'\"></app-frequency-dialog-weekly> -->\r\n <app-frequency-dialog-weekly *ngIf=\"frequencyTab === 'weekly'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\"\r\n ></app-frequency-dialog-weekly>\r\n <!-- <app-frequency-dialog-monthly *ngIf=\"frequencyTab === 'MONTHLY'\"></app-frequency-dialog-monthly> -->\r\n <app-frequency-dialog-monthly *ngIf=\"frequencyTab === 'monthly'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\">\r\n </app-frequency-dialog-monthly>\r\n <!-- <app-frequency-dialog-quarterly *ngIf=\"frequencyTab === 'QUARTERLY'\"></app-frequency-dialog-quarterly>\r\n <app-frequency-dialog-biannual *ngIf=\"frequencyTab === 'BIANNUAL'\"></app-frequency-dialog-biannual>\r\n <app-frequency-dialog-annual *ngIf=\"frequencyTab === 'ANNUAL'\"></app-frequency-dialog-annual>\r\n <app-frequency-dialog-one-time *ngIf=\"frequencyTab === 'ONETIME'\"></app-frequency-dialog-one-time> -->\r\n <app-frequency-dialog-quarterly \r\n *ngIf=\"frequencyTab === 'quarterly'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\">\r\n </app-frequency-dialog-quarterly>\r\n <app-frequency-dialog-biannual \r\n *ngIf=\"frequencyTab === 'biannual'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\">\r\n </app-frequency-dialog-biannual>\r\n <app-frequency-dialog-annual \r\n *ngIf=\"frequencyTab === 'annual'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\">\r\n </app-frequency-dialog-annual>\r\n <app-frequency-dialog-one-time \r\n *ngIf=\"frequencyTab === 'oneTime'\"\r\n [mode]=\"mode\"\r\n (frequencyDetails)=\"onFrequencySelected($event)\"\r\n [frequencyData]=\"frequencyDetails\">\r\n </app-frequency-dialog-one-time>\r\n </div>\r\n </div>\r\n <div class=\"frequency-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-3\">\r\n <div class=\"vx-fs-12 vx-paragraph-txt\">You have selected <span class=\"vx-fw-500 vx-label-txt\">{{currentTabName}}</span> frequency.</div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-7\" (click)=\"close()\">CANCEL</button>\r\n <button class=\"next-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-3 vx-d-flex vx-align-center vx-lh-7\" [class.disabled]=\"isNextDisabled\" (click)=\"save()\">NEXT <i class=\"icons vx-fs-14 vx-ml-2\"></i></button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog{border-top:3px solid #1E5DD3;position:fixed;top:0;right:31.25rem;bottom:0;left:0;z-index:11}::ng-deep .frequency-dialog-head{background:#FBFBFB;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-dialog-body{padding:1rem 2rem!important;height:calc(100vh - 7.75rem);overflow:auto}::ng-deep .frequency-dialog-container{padding:1rem}@media screen and (max-width: 1366px){::ng-deep .frequency-dialog-container{padding:0!important}}::ng-deep .frequency-dialog-tab{border-bottom:1px solid #f1f1f1}::ng-deep .frequency-dialog-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;margin-right:1.75rem!important}::ng-deep .frequency-dialog-tab button.active.tab-btn{color:#1e5dd3;border-color:#1e5dd3}::ng-deep .frequency-dialog-footer{background:#fff;border-radius:.25rem;box-shadow:0 6px 12px #4681ef40;height:3rem;margin:0 2rem}::ng-deep .frequency-dialog-footer button{border-radius:.125rem;border:none}::ng-deep .frequency-dialog-footer button.cancel-btn{background:transparent}::ng-deep .frequency-dialog-footer button.next-btn{background:#1E5DD3}::ng-deep .frequency-dialog-footer button.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none}\n"] }]
|
|
289
281
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }, { type: i2.SnackBarService }]; }, propDecorators: { mode: [{
|
|
290
282
|
type: Input
|
|
283
|
+
}], getFrequencyDetails: [{
|
|
284
|
+
type: Input,
|
|
285
|
+
args: ['frequencyDetails']
|
|
291
286
|
}], selectedFrequency: [{
|
|
292
287
|
type: Output
|
|
293
288
|
}], closeFrequency: [{
|
|
294
289
|
type: Output
|
|
295
|
-
}], getFrequencyDetails: [{
|
|
296
|
-
type: Input,
|
|
297
|
-
args: ['frequencyDetails']
|
|
298
290
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkMsTUFBTSxPQUFPLGlDQUFpQztJQXNGNUMsWUFDVSxnQkFBa0MsRUFDbEMsUUFBeUI7UUFEekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQXZGbkMsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUV0QixrQ0FBa0M7UUFDbEMscUJBQWdCLEdBQVE7WUFDdEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQztZQUNULFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUNPLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVU5QyxtQkFBYyxH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QWEsRUFBRSxXQUFXO1NBQzdDLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7OEhBblRVLGlDQUFpQztrSEFBakMsaUNBQWlDLDhRQ1Y5QyxvcEtBZ0VNOzJGRHRETyxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsZ0NBQWdDO3FJQWFqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ3dCLG1CQUFtQjtzQkFBakQsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGN1cnJlbnRUYWIgPSAnV0VFS0xZJztcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIGZyZXF1ZW5jeURldGFpbHM6IGFueSA9IHtcclxuICAgIHBhdHRlcm46ICcnLFxyXG4gICAgd2luZG93OiAwLFxyXG4gICAgdGltZUluMTJocjogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCdmcmVxdWVuY3lEZXRhaWxzJykgc2V0IGdldEZyZXF1ZW5jeURldGFpbHMoZnJlcXVlbmN5OiBhbnkpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1sncGF0dGVybiddID0gZnJlcXVlbmN5Py5mcmVxdWVuY3k7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ3dpbmRvdyddID0gZnJlcXVlbmN5Py5yZW1pbmRfYmVmb3JlX2RheXM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ2ZhaWxlZFRpbWUnXSA9IGZyZXF1ZW5jeT8uZnJlcXVlbmN5X3RpbWU7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ2ZyZXF1ZW5jeURldGFpbHNmcmVxdWVuY3lEZXRhaWxzZnJlcXVlbmN5RGV0YWlscycsXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcbiAgaXNOZXh0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBzd2l0Y2hUYWIodGFiOnN0cmluZyl7XHJcbiAgLy8gICB0aGlzLmZyZXF1ZW5jeVRhYiA9IHRhYjtcclxuICAvLyB9XHJcblxyXG4gIGZyZXF1ZW5jeVRhYiA9ICd3ZWVrbHknO1xyXG4gIGN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIC8vIEBPdXRwdXQoKSBzZWxlY3RlZEZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBJbnB1dCgpIG1vZGU6IGFueT0nJztcclxuXHJcbiAgZnJlcXVlbmN5RGF0YTogYW55O1xyXG5cclxuICBmcmVxdWVuY3lMaXN0ID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRGFpbHknLFxyXG4gICAgICB0eXBlOiAnZGFpbHknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1dlZWtseScsXHJcbiAgICAgIHR5cGU6ICd3ZWVrbHknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ01vbnRobHknLFxyXG4gICAgICB0eXBlOiAnbW9udGhseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUXVhcnRlcmx5JyxcclxuICAgICAgdHlwZTogJ3F1YXJ0ZXJseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQmlhbm51YWwnLFxyXG4gICAgICB0eXBlOiAnYmlhbm51YWwnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0FubnVhbCcsXHJcbiAgICAgIHR5cGU6ICdhbm51YWwnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uZSBUaW1lJyxcclxuICAgICAgdHlwZTogJ29uZVRpbWUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1JhbmRvbScsXHJcbiAgICAgIHR5cGU6ICdyYW5kb20nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uIENvbXBsZXRpb24gT2YnLFxyXG4gICAgICB0eXBlOiAnb25Db21wbGV0aW9uT2YnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uZ29pbmcnLFxyXG4gICAgICB0eXBlOiAnb25nb2luZycsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHNlbGVjdGVkRnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gIT0gJycpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRnJlcXVlbmN5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Li4uLi4nLCBldmVudCk7XHJcblxyXG4gICAgdGhpcy5mcmVxdWVuY3lEYXRhID0gZXZlbnQ7XHJcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgZnJlcXVlbmN5UGF0dGVybiA9IHBhcnNlSW50KFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4uc3BsaXQoJ34nKVswXVxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25lVGltZSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnd2Vla2x5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ21vbnRobHknO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBhbm51YWwgJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA1OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25Db21wbGV0aW9uT2YnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydF9pZCA9IHRoaXMuZnJlcXVlbmN5RGV0YWlscy5zZWxlY3RlZFJlcG9ydDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA3OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3F1YXJ0ZXJseSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIHF1YXJ0ZXJseSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgODpcclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdyYW5kb20nO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDk6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBiaWFubnVhbCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25nb2luZyc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBvbmdvaW5nJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHN3aXRjaFRhYihmcmVxdWVuY3k6IGFueSkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3k7XHJcbiAgICBpZiAoZnJlcXVlbmN5ID09ICdvbmVUaW1lJykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XHJcbiAgICAgICAgZnJlcXVlbmN5LnN0YXJ0c1dpdGgoJ09uJykgfHwgZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCkgPT09ICdhbm51YWwnXHJcbiAgICAgICAgICA/ICdhbiAnICsgZnJlcXVlbmN5XHJcbiAgICAgICAgICA6ICdhICcgKyBmcmVxdWVuY3k7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICBjb25zdCBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpO1xyXG4gICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICBjYXNlICdkYWlseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dlZWtseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1sxXSA9PSAnJyB8fFxyXG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHxcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbW9udGhseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYmlhbm51YWwnOlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXS5zcGxpdCgnLCcpPy5sZW5ndGggPCAyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZVRpbWUnOlxyXG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFRpbWUgPSBtb21lbnQoXHJcbiAgICAgICAgICAgIGAke2ZyZXF1ZW5jeURldGFpbHNbM119LSR7ZnJlcXVlbmN5RGV0YWlsc1syXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzFdfSAke3RoaXMuZnJlcXVlbmN5RGF0YS50aW1lSW4xMmhyfWAsXHJcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICAgICApLnVuaXgoKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwID5cclxuICAgICAgICAgICAgc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uQ29tcGxldGlvbk9mJzpcclxuICAgICAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydElkID4gMCkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAncmFuZG9tJzpcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwYXJzZUludChmcmVxdWVuY3lEZXRhaWxzWzFdKSA9PSAyICYmXHJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxyXG4gICAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDQpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGxldCBmcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5OiB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4sXHJcbiAgICAgIHN0YXJ0ZWRfYXQ6IHRoaXMuZnJlcXVlbmN5U2VydmljZT8uY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSlcclxuICAgICAgICA/IG1vbWVudCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2U/LmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpKT8uZm9ybWF0KFxyXG4gICAgICAgICAgICAnWVlZWS1NTS1ERCdcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5mcmVxdWVuY3lEYXRhPy50aW1lSW4xMmhyLFxyXG4gICAgICByZW1pbmRfYmVmb3JlX2RheXM6IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93LFxyXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5mcmVxdWVuY3lEYXRhPy5wbGFjZWhvbGRlcixcclxuICAgIH07XHJcbiAgICBjb25zb2xlLmxvZygnZnJlcXVlbmN5X2RldGFpbHNmcmVxdWVuY3lfZGV0YWlscycsIGZyZXF1ZW5jeV9kZXRhaWxzKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGcmVxdWVuY3kuZW1pdChmcmVxdWVuY3lfZGV0YWlscyk7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWhlYWQgdngtcGwtMyB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2V0IGEgUmVhc3Nlc3NtZW50IEZyZXF1ZW5jeTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctdGFiIHZ4LW1iLTMgdngtZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignd2Vla2x5JylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICd3ZWVrbHknXCI+V0VFS0xZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignbW9udGhseScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnbW9udGhseSdcIj5NT05USExZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYigncXVhcnRlcmx5JylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdxdWFydGVybHknXCI+UVVBUlRFUkxZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignYmlhbm51YWwnKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ2JpYW5udWFsJ1wiPkJJQU5OVUFMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignYW5udWFsJylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdhbm51YWwnXCI+QU5OVUFMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignb25lVGltZScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnb25lVGltZSdcIj5PTkUgVElNRTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnV0VFS0xZJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5PiAtLT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ3dlZWtseSdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXHJcbiAgICAgICAgICAgID48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseT5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ01PTlRITFknXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1tb250aGx5PiAtLT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLW1vbnRobHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdtb250aGx5J1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseT5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnUVVBUlRFUkxZJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5PlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdCSUFOTlVBTCdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnQU5OVUFMJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdPTkVUSU1FJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWU+IC0tPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5IFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdxdWFydGVybHknXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHk+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbCBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnYmlhbm51YWwnXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbD5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnYW5udWFsJ1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ29uZVRpbWUnXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+WW91IGhhdmUgc2VsZWN0ZWQgPHNwYW4gY2xhc3M9XCJ2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+e3tjdXJyZW50VGFiTmFtZX19PC9zcGFuPiBmcmVxdWVuY3kuPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1yZWQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtN1wiIChjbGljayk9XCJjbG9zZSgpXCI+Q0FOQ0VMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMiB2eC1wci0yIHZ4LW0tMCB2eC1tbC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtN1wiIFtjbGFzcy5kaXNhYmxlZF09XCJpc05leHREaXNhYmxlZFwiIChjbGljayk9XCJzYXZlKClcIj5ORVhUIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTQgdngtbWwtMlwiPiYjeGU5MWU7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkMsTUFBTSxPQUFPLGlDQUFpQztJQWlFNUMsWUFDVSxnQkFBa0MsRUFDbEMsUUFBeUI7UUFEekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQWxFbkMsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN0QixxQkFBZ0IsR0FBUTtZQUN0QixPQUFPLEVBQUUsRUFBRTtZQUNYLE1BQU0sRUFBRSxDQUFDO1lBQ1QsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDO1FBQ0YsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxVQUFVLENBQUM7UUFFNUIsa0JBQWEsR0FBRztZQUNkO2dCQUNFLElBQUksRUFBRSxPQUFPO2dC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Q0FBQztJQUM3QixDQUFDOzs4SEExUlUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsOFFDVjlDLG9wS0FnRU07MkZEdERPLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7cUlBMkRqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3lCLG1CQUFtQjtzQkFBakQsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBTWYsaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGN1cnJlbnRUYWIgPSAnV0VFS0xZJztcclxuICBmcmVxdWVuY3lEZXRhaWxzOiBhbnkgPSB7XHJcbiAgICBwYXR0ZXJuOiAnJyxcclxuICAgIHdpbmRvdzogMCxcclxuICAgIHRpbWVJbjEyaHI6ICcnLFxyXG4gIH07XHJcbiAgaXNOZXh0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmcmVxdWVuY3lUYWIgPSAnd2Vla2x5JztcclxuICBjdXJyZW50VGFiTmFtZSA9ICdhIHdlZWtseSc7XHJcbiAgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGZyZXF1ZW5jeUxpc3QgPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdEYWlseScsXHJcbiAgICAgIHR5cGU6ICdkYWlseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnV2Vla2x5JyxcclxuICAgICAgdHlwZTogJ3dlZWtseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTW9udGhseScsXHJcbiAgICAgIHR5cGU6ICdtb250aGx5JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdRdWFydGVybHknLFxyXG4gICAgICB0eXBlOiAncXVhcnRlcmx5JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdCaWFubnVhbCcsXHJcbiAgICAgIHR5cGU6ICdiaWFubnVhbCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQW5udWFsJyxcclxuICAgICAgdHlwZTogJ2FubnVhbCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT25lIFRpbWUnLFxyXG4gICAgICB0eXBlOiAnb25lVGltZScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUmFuZG9tJyxcclxuICAgICAgdHlwZTogJ3JhbmRvbScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT24gQ29tcGxldGlvbiBPZicsXHJcbiAgICAgIHR5cGU6ICdvbkNvbXBsZXRpb25PZicsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT25nb2luZycsXHJcbiAgICAgIHR5cGU6ICdvbmdvaW5nJyxcclxuICAgIH0sXHJcbiAgXTtcclxuICBzZWxlY3RlZEZyZXF1ZW5jeURhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcbiAgQElucHV0KCdmcmVxdWVuY3lEZXRhaWxzJykgc2V0IGdldEZyZXF1ZW5jeURldGFpbHMoZnJlcXVlbmN5OiBhbnkpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1sncGF0dGVybiddID0gZnJlcXVlbmN5Py5mcmVxdWVuY3k7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ3dpbmRvdyddID0gZnJlcXVlbmN5Py5yZW1pbmRfYmVmb3JlX2RheXM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ2ZhaWxlZFRpbWUnXSA9IGZyZXF1ZW5jeT8uZnJlcXVlbmN5X3RpbWU7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gIT0gJycpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRnJlcXVlbmN5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEYXRhID0gZXZlbnQ7XHJcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgZnJlcXVlbmN5UGF0dGVybiA9IHBhcnNlSW50KFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4uc3BsaXQoJ34nKVswXVxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25lVGltZSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnd2Vla2x5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ21vbnRobHknO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBhbm51YWwgJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA1OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25Db21wbGV0aW9uT2YnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydF9pZCA9IHRoaXMuZnJlcXVlbmN5RGV0YWlscy5zZWxlY3RlZFJlcG9ydDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA3OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3F1YXJ0ZXJseSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIHF1YXJ0ZXJseSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgODpcclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdyYW5kb20nO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDk6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBiaWFubnVhbCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25nb2luZyc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBvbmdvaW5nJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHN3aXRjaFRhYihmcmVxdWVuY3k6IGFueSkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3k7XHJcbiAgICBpZiAoZnJlcXVlbmN5ID09ICdvbmVUaW1lJykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XHJcbiAgICAgICAgZnJlcXVlbmN5LnN0YXJ0c1dpdGgoJ09uJykgfHwgZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCkgPT09ICdhbm51YWwnXHJcbiAgICAgICAgICA/ICdhbiAnICsgZnJlcXVlbmN5XHJcbiAgICAgICAgICA6ICdhICcgKyBmcmVxdWVuY3k7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICBjb25zdCBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpO1xyXG4gICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICBjYXNlICdkYWlseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dlZWtseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzFdID09ICcnIHx8XHJcbiAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1sxXSB8fFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vbnRobHknOlxyXG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcclxuICAgICAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnSW5wdXQgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAxLicsICdhbGVydCcpO1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYmlhbm51YWwnOlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXS5zcGxpdCgnLCcpPy5sZW5ndGggPCAyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZVRpbWUnOlxyXG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFRpbWUgPSBtb21lbnQoXHJcbiAgICAgICAgICAgIGAke2ZyZXF1ZW5jeURldGFpbHNbM119LSR7ZnJlcXVlbmN5RGV0YWlsc1syXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzFdfSAke3RoaXMuZnJlcXVlbmN5RGF0YS50aW1lSW4xMmhyfWAsXHJcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICAgICApLnVuaXgoKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwID5cclxuICAgICAgICAgICAgc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uQ29tcGxldGlvbk9mJzpcclxuICAgICAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydElkID4gMCkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAncmFuZG9tJzpcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwYXJzZUludChmcmVxdWVuY3lEZXRhaWxzWzFdKSA9PSAyICYmXHJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxyXG4gICAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDQpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGxldCBmcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5OiB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4sXHJcbiAgICAgIHN0YXJ0ZWRfYXQ6IHRoaXMuZnJlcXVlbmN5U2VydmljZT8uY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSlcclxuICAgICAgICA/IG1vbWVudCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2U/LmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpKT8uZm9ybWF0KFxyXG4gICAgICAgICAgICAnWVlZWS1NTS1ERCdcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5mcmVxdWVuY3lEYXRhPy50aW1lSW4xMmhyLFxyXG4gICAgICByZW1pbmRfYmVmb3JlX2RheXM6IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93LFxyXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5mcmVxdWVuY3lEYXRhPy5wbGFjZWhvbGRlcixcclxuICAgICAgZmFpbGVkX2FmdGVyX2RheXM6IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkX2FmdGVyX2RheXMsXHJcbiAgICAgIGNhbl9hc3Nlc3NfYmVmb3JlX2RheXM6IHRoaXMuZnJlcXVlbmN5RGF0YT8uY2FuX2Fzc2Vzc19iZWZvcmVfZGF5cyxcclxuICAgIH07XHJcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5LmVtaXQoZnJlcXVlbmN5X2RldGFpbHMpO1xyXG4gICAgdGhpcy5jbG9zZUZyZXF1ZW5jeS5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1oZWFkIHZ4LXBsLTMgdngtcHItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctdGl0bGUgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNldCBhIFJlYXNzZXNzbWVudCBGcmVxdWVuY3k8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXRhYiB2eC1tYi0zIHZ4LWQtZmxleFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ3dlZWtseScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnd2Vla2x5J1wiPldFRUtMWTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ21vbnRobHknKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ21vbnRobHknXCI+TU9OVEhMWTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ3F1YXJ0ZXJseScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAncXVhcnRlcmx5J1wiPlFVQVJURVJMWTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ2JpYW5udWFsJylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdiaWFubnVhbCdcIj5CSUFOTlVBTDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ2FubnVhbCcpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnYW5udWFsJ1wiPkFOTlVBTDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ29uZVRpbWUnKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ29uZVRpbWUnXCI+T05FIFRJTUU8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ1dFRUtMWSdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseT4gLS0+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICd3ZWVrbHknXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxyXG4gICAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHk+XHJcbiAgICAgICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLW1vbnRobHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdNT05USExZJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseT4gLS0+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1tb250aGx5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnbW9udGhseSdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLW1vbnRobHk+XHJcbiAgICAgICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ1FVQVJURVJMWSdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnQklBTk5VQUwnXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbD5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ0FOTlVBTCdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbD5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnT05FVElNRSdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lPiAtLT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseSBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAncXVhcnRlcmx5J1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5PlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ2JpYW5udWFsJ1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWw+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ2FubnVhbCdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbD5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdvbmVUaW1lJ1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWZvb3RlciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dFwiPllvdSBoYXZlIHNlbGVjdGVkIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7Y3VycmVudFRhYk5hbWV9fTwvc3Bhbj4gZnJlcXVlbmN5LjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtcmVkIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMiB2eC1wci0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTdcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNBTkNFTDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBsLTIgdngtcHItMiB2eC1tLTAgdngtbWwtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTdcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNOZXh0RGlzYWJsZWRcIiAoY2xpY2spPVwic2F2ZSgpXCI+TkVYVCA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTE0IHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -3,28 +3,24 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/forms";
|
|
4
4
|
export class FrequencyDialogDueDateComponent {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.mode = '';
|
|
7
6
|
this.defaultWindow = 1;
|
|
8
7
|
this.defaultFailed = 0;
|
|
9
8
|
this.defaultDeactivate = 0;
|
|
9
|
+
this.mode = '';
|
|
10
10
|
this.completedValue = 5; // take input for completed
|
|
11
11
|
this.deactivateValue = 15;
|
|
12
12
|
this.isDeactivated = false;
|
|
13
13
|
this.id = 0;
|
|
14
14
|
this.pageName = '';
|
|
15
|
+
this.windowCloses = 2;
|
|
15
16
|
this.valueChange = new EventEmitter();
|
|
17
|
+
this.windowOpenChange = new EventEmitter();
|
|
18
|
+
this.extensionValueChange = new EventEmitter();
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
;
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
}
|
|
20
|
+
ngOnInit() { }
|
|
21
21
|
onValueChange(event, actionType) {
|
|
22
|
-
if (!Number.isNaN(Number(event?.target?.value)) &&
|
|
23
|
-
|
|
24
|
-
type: actionType,
|
|
25
|
-
value: Number(event?.target?.value),
|
|
26
|
-
pageName: this.pageName,
|
|
27
|
-
}, "dsdsdsdsdsd");
|
|
22
|
+
if (!Number.isNaN(Number(event?.target?.value)) &&
|
|
23
|
+
parseInt(event?.target?.value) > 0) {
|
|
28
24
|
this.valueChange.emit({
|
|
29
25
|
type: actionType,
|
|
30
26
|
value: Number(event?.target?.value),
|
|
@@ -42,12 +38,52 @@ export class FrequencyDialogDueDateComponent {
|
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
}
|
|
41
|
+
onWindowOpenChange(event, actionType) {
|
|
42
|
+
if (!Number.isNaN(Number(event?.target?.value)) &&
|
|
43
|
+
parseInt(event?.target?.value) > 0) {
|
|
44
|
+
this.windowOpenChange.emit({
|
|
45
|
+
type: actionType,
|
|
46
|
+
value: Number(event?.target?.value),
|
|
47
|
+
pageName: this.pageName,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
if (actionType === 'window open') {
|
|
52
|
+
this.completedValue = this.defaultWindow;
|
|
53
|
+
this.windowOpenChange.emit({
|
|
54
|
+
type: actionType,
|
|
55
|
+
value: this.defaultWindow,
|
|
56
|
+
pageName: this.pageName,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
onExtensionValueChange(event, actionType) {
|
|
62
|
+
if (!Number.isNaN(Number(event?.target?.value)) &&
|
|
63
|
+
parseInt(event?.target?.value) > 0) {
|
|
64
|
+
this.extensionValueChange.emit({
|
|
65
|
+
type: actionType,
|
|
66
|
+
value: Number(event?.target?.value),
|
|
67
|
+
pageName: this.pageName,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
if (actionType === 'extension') {
|
|
72
|
+
this.completedValue = this.defaultWindow;
|
|
73
|
+
this.extensionValueChange.emit({
|
|
74
|
+
type: actionType,
|
|
75
|
+
value: this.defaultWindow,
|
|
76
|
+
pageName: this.pageName,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
45
81
|
}
|
|
46
82
|
FrequencyDialogDueDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogDueDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
FrequencyDialogDueDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: { mode: "mode", completedValue: "completedValue", deactivateValue: "deactivateValue", isDeactivated: "isDeactivated", id: "id", pageName: "pageName" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "
|
|
83
|
+
FrequencyDialogDueDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: { mode: "mode", completedValue: "completedValue", deactivateValue: "deactivateValue", isDeactivated: "isDeactivated", id: "id", pageName: "pageName", windowCloses: "windowCloses", assessWindowOpen: "assessWindowOpen" }, outputs: { valueChange: "valueChange", windowOpenChange: "windowOpenChange", extensionValueChange: "extensionValueChange" }, ngImport: i0, template: "<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Assessment window opens\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk can be assessed on the assessment due date and\r\n <input\r\n class=\"countNum\"\r\n [id]=\"'complete-' + id\"\r\n type=\"number\"\r\n [(ngModel)]=\"assessWindowOpen\"\r\n (change)=\"onWindowOpenChange($event, 'window open')\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n days before the assessment due date. .\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Extension\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk can be assessed\r\n <input\r\n class=\"countNum\"\r\n type=\"number\"\r\n [id]=\"'not-completed-' + id\"\r\n [(ngModel)]=\"windowCloses\"\r\n (change)=\"onExtensionValueChange($event, 'extension')\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n days after the assessment due date.\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Assessment window closes:\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk cannot be assessed\r\n <span class=\"vx-fw-500 vx-label-txt\">{{windowCloses}}</span>\r\n days after the assessment due date.\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n REASSESSMENT EMAIL NOTIFICATION:\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n VComply will send an email reminder\r\n <input\r\n class=\"countNum\"\r\n [id]=\"'complete-' + id\"\r\n type=\"number\"\r\n [(ngModel)]=\"completedValue\"\r\n (change)=\"onValueChange($event, 'completed')\"\r\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\r\n {{ completedValue < 2 ? 'day' : 'days' }} before the risk assessment due date if it is not done.\r\n </div>\r\n</div>\r\n\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-bottom-item-box{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-bottom-item-box input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-bottom-item-box input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-bottom-item-box input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-bottom-item-box .completed-text{color:#34aa44}::ng-deep .frequency-bottom-item-box .delay-text{color:#f0b819}::ng-deep .frequency-bottom-item-box .notcompleted-text{color:#d93b41}::ng-deep .frequency-dialog-due-date-item{border-top:1px solid #f1f1f1;height:3.5rem}::ng-deep .frequency-dialog-due-date-item:first-of-type,::ng-deep .frequency-dialog-due-date-item:only-child{border-top:none}::ng-deep .frequency-dialog-due-date-item input[type=number]{background:transparent;border-radius:0;border:none;border-bottom:1px solid #dbdbdb;color:#161b2f;font-size:13px;height:1.5rem;width:3rem;text-align:center;outline:none}::ng-deep .frequency-dialog-due-date-item input[type=number]::-webkit-outer-spin-button,::ng-deep .frequency-dialog-due-date-item input[type=number]::-webkit-inner-spin-button{-moz-appearance:none;-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
48
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogDueDateComponent, decorators: [{
|
|
49
85
|
type: Component,
|
|
50
|
-
args: [{ selector: 'app-frequency-dialog-due-date', template: "
|
|
86
|
+
args: [{ selector: 'app-frequency-dialog-due-date', template: "<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Assessment window opens\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk can be assessed on the assessment due date and\r\n <input\r\n class=\"countNum\"\r\n [id]=\"'complete-' + id\"\r\n type=\"number\"\r\n [(ngModel)]=\"assessWindowOpen\"\r\n (change)=\"onWindowOpenChange($event, 'window open')\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n days before the assessment due date. .\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Extension\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk can be assessed\r\n <input\r\n class=\"countNum\"\r\n type=\"number\"\r\n [id]=\"'not-completed-' + id\"\r\n [(ngModel)]=\"windowCloses\"\r\n (change)=\"onExtensionValueChange($event, 'extension')\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n days after the assessment due date.\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n Assessment window closes:\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n The risk cannot be assessed\r\n <span class=\"vx-fw-500 vx-label-txt\">{{windowCloses}}</span>\r\n days after the assessment due date.\r\n </div>\r\n</div>\r\n\r\n<div class=\"frequency-bottom-item vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n REASSESSMENT EMAIL NOTIFICATION:\r\n </div>\r\n <div\r\n class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\r\n >\r\n VComply will send an email reminder\r\n <input\r\n class=\"countNum\"\r\n [id]=\"'complete-' + id\"\r\n type=\"number\"\r\n [(ngModel)]=\"completedValue\"\r\n (change)=\"onValueChange($event, 'completed')\"\r\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\r\n {{ completedValue < 2 ? 'day' : 'days' }} before the risk assessment due date if it is not done.\r\n </div>\r\n</div>\r\n\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-bottom-item-box{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-bottom-item-box input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-bottom-item-box input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-bottom-item-box input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-bottom-item-box .completed-text{color:#34aa44}::ng-deep .frequency-bottom-item-box .delay-text{color:#f0b819}::ng-deep .frequency-bottom-item-box .notcompleted-text{color:#d93b41}::ng-deep .frequency-dialog-due-date-item{border-top:1px solid #f1f1f1;height:3.5rem}::ng-deep .frequency-dialog-due-date-item:first-of-type,::ng-deep .frequency-dialog-due-date-item:only-child{border-top:none}::ng-deep .frequency-dialog-due-date-item input[type=number]{background:transparent;border-radius:0;border:none;border-bottom:1px solid #dbdbdb;color:#161b2f;font-size:13px;height:1.5rem;width:3rem;text-align:center;outline:none}::ng-deep .frequency-dialog-due-date-item input[type=number]::-webkit-outer-spin-button,::ng-deep .frequency-dialog-due-date-item input[type=number]::-webkit-inner-spin-button{-moz-appearance:none;-webkit-appearance:none;margin:0}\n"] }]
|
|
51
87
|
}], ctorParameters: function () { return []; }, propDecorators: { mode: [{
|
|
52
88
|
type: Input
|
|
53
89
|
}], completedValue: [{
|
|
@@ -60,7 +96,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
60
96
|
type: Input
|
|
61
97
|
}], pageName: [{
|
|
62
98
|
type: Input
|
|
99
|
+
}], windowCloses: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], assessWindowOpen: [{
|
|
102
|
+
type: Input
|
|
63
103
|
}], valueChange: [{
|
|
64
104
|
type: Output
|
|
105
|
+
}], windowOpenChange: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], extensionValueChange: [{
|
|
108
|
+
type: Output
|
|
65
109
|
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlL2ZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTywrQkFBK0I7SUFFMUM7UUFDUyxTQUFJLEdBQUMsRUFBRSxDQUFDO1FBRWpCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUVyQixtQkFBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtRQUMvQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUViLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFiOUMsQ0FBQztJQUlTLENBQUM7SUFDRyxDQUFDO0lBVS9CLFFBQVE7SUFDUixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVUsRUFBRSxVQUFlO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JGLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QixFQUFFLGFBQWEsQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLFVBQVUsS0FBSyxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLElBQUksRUFBRSxVQUFVO29CQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDeEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7OzRIQTFDVSwrQkFBK0I7Z0hBQS9CLCtCQUErQiw4UUNQNUMsdzVDQW1CTTsyRkRaTywrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsK0JBQStCOzBFQU9oQyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ0R1ZURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gIEBJbnB1dCgpIG1vZGU9Jyc7XHJcblxyXG4gIGRlZmF1bHRXaW5kb3c6IG51bWJlciA9IDE7XHJcbiAgZGVmYXVsdEZhaWxlZDogbnVtYmVyID0gMDs7XHJcbiAgZGVmYXVsdERlYWN0aXZhdGU6IG51bWJlciA9IDA7O1xyXG5cclxuICBASW5wdXQoKSBjb21wbGV0ZWRWYWx1ZSA9IDU7IC8vIHRha2UgaW5wdXQgZm9yIGNvbXBsZXRlZFxyXG4gIEBJbnB1dCgpIGRlYWN0aXZhdGVWYWx1ZSA9IDE1O1xyXG4gIEBJbnB1dCgpIGlzRGVhY3RpdmF0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpZCA9IDA7XHJcbiAgQElucHV0KCkgcGFnZU5hbWUgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnksIGFjdGlvblR5cGU6IGFueSkge1xyXG4gICAgaWYgKCFOdW1iZXIuaXNOYU4oTnVtYmVyKGV2ZW50Py50YXJnZXQ/LnZhbHVlKSkgJiYgcGFyc2VJbnQoZXZlbnQ/LnRhcmdldD8udmFsdWUpID4gMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyh7XHJcbiAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICB2YWx1ZTogTnVtYmVyKGV2ZW50Py50YXJnZXQ/LnZhbHVlKSxcclxuICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgfSwgXCJkc2RzZHNkc2RzZFwiKVxyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHR5cGU6IGFjdGlvblR5cGUsXHJcbiAgICAgICAgdmFsdWU6IE51bWJlcihldmVudD8udGFyZ2V0Py52YWx1ZSksXHJcbiAgICAgICAgcGFnZU5hbWU6IHRoaXMucGFnZU5hbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZWRWYWx1ZSA9IHRoaXMuZGVmYXVsdFdpbmRvdztcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmRlZmF1bHRXaW5kb3csXHJcbiAgICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS1pdGVtIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0yXCI+VkNvbXBseSB3aWxsIHNlbmQgZW1haWwgcmVtaW5kZXJzIGV2ZXJ5PC9kaXY+XHJcbiAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHZhbHVlPVwiNVwiIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCI+ZGF5cyB0byA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPmNvbXBsZXRlPC9zcGFuPiB0aGUgcmlzayBhc3Nlc3NtZW50IGlmIGl0IGlzIG5vdCBkb25lLjwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGUtaXRlbSB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMlwiPlZDb21wbHkgd2lsbCBzZW5kIGVtYWlsIHJlbWluZGVycyBldmVyeTwvZGl2PlxyXG4gICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiB2YWx1ZT1cIjEwXCIgLz5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj5kYXlzIHRvIDxzcGFuIGNsYXNzPVwidngtZnctNTAwXCI+bm90IGNvbXBsZXRlPC9zcGFuPiB0aGUgcmlzayBhc3Nlc3NtZW50IGlmIGl0IGlzIG5vdCBkb25lLjwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS1pdGVtIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0yXCI+VkNvbXBseSB3aWxsIHNlbmQgYW4gZW1haWwgcmVtaW5kZXI8L2Rpdj5cclxuICAgIDxpbnB1dCBbaWRdPVwiJ2NvbXBsZXRlLScgKyBpZFwiIFxyXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIiBcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImNvbXBsZXRlZFZhbHVlXCIgXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ2NvbXBsZXRlZCcpXCJcclxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIiAvPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPnt7IGNvbXBsZXRlZFZhbHVlIDwgMiA/ICdkYXknIDogJ2RheXMnIH19IGJlZm9yZSB0aGUgcmlzayBhc3Nlc3NtZW50IGR1ZSBkYXRlIGlmIGl0IGlzIG5vdCBkb25lLjwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlL2ZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTywrQkFBK0I7SUFDMUM7UUFFQSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFFckIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLG1CQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1FBQy9DLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDUCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFHeEIsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCx5QkFBb0IsR0FB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O1NBQ0Y7SUFDSCxDQUFDOzs0SEF0RlUsK0JBQStCO2dIQUEvQiwrQkFBK0Isc2FDUDVDLG1yRkE0RUE7MkZEckVhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwrQkFBK0I7MEVBV2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nRHVlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBkZWZhdWx0V2luZG93OiBudW1iZXIgPSAxO1xyXG4gIGRlZmF1bHRGYWlsZWQ6IG51bWJlciA9IDA7XHJcbiAgZGVmYXVsdERlYWN0aXZhdGU6IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIG1vZGUgPSAnJztcclxuICBASW5wdXQoKSBjb21wbGV0ZWRWYWx1ZSA9IDU7IC8vIHRha2UgaW5wdXQgZm9yIGNvbXBsZXRlZFxyXG4gIEBJbnB1dCgpIGRlYWN0aXZhdGVWYWx1ZSA9IDE1O1xyXG4gIEBJbnB1dCgpIGlzRGVhY3RpdmF0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpZCA9IDA7XHJcbiAgQElucHV0KCkgcGFnZU5hbWUgPSAnJztcclxuICBASW5wdXQoKSB3aW5kb3dDbG9zZXM6IG51bWJlciA9IDI7XHJcbiAgQElucHV0KCkgYXNzZXNzV2luZG93T3BlbiE6IG51bWJlcjtcclxuXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgd2luZG93T3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4dGVuc2lvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnksIGFjdGlvblR5cGU6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcihldmVudD8udGFyZ2V0Py52YWx1ZSkpICYmXHJcbiAgICAgIHBhcnNlSW50KGV2ZW50Py50YXJnZXQ/LnZhbHVlKSA+IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHR5cGU6IGFjdGlvblR5cGUsXHJcbiAgICAgICAgdmFsdWU6IE51bWJlcihldmVudD8udGFyZ2V0Py52YWx1ZSksXHJcbiAgICAgICAgcGFnZU5hbWU6IHRoaXMucGFnZU5hbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZWRWYWx1ZSA9IHRoaXMuZGVmYXVsdFdpbmRvdztcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmRlZmF1bHRXaW5kb3csXHJcbiAgICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25XaW5kb3dPcGVuQ2hhbmdlKGV2ZW50OiBhbnksIGFjdGlvblR5cGU6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcihldmVudD8udGFyZ2V0Py52YWx1ZSkpICYmXHJcbiAgICAgIHBhcnNlSW50KGV2ZW50Py50YXJnZXQ/LnZhbHVlKSA+IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLndpbmRvd09wZW5DaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICB2YWx1ZTogTnVtYmVyKGV2ZW50Py50YXJnZXQ/LnZhbHVlKSxcclxuICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWN0aW9uVHlwZSA9PT0gJ3dpbmRvdyBvcGVuJykge1xyXG4gICAgICAgIHRoaXMuY29tcGxldGVkVmFsdWUgPSB0aGlzLmRlZmF1bHRXaW5kb3c7XHJcbiAgICAgICAgdGhpcy53aW5kb3dPcGVuQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmRlZmF1bHRXaW5kb3csXHJcbiAgICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25FeHRlbnNpb25WYWx1ZUNoYW5nZShldmVudDogYW55LCBhY3Rpb25UeXBlOiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgIU51bWJlci5pc05hTihOdW1iZXIoZXZlbnQ/LnRhcmdldD8udmFsdWUpKSAmJlxyXG4gICAgICBwYXJzZUludChldmVudD8udGFyZ2V0Py52YWx1ZSkgPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5leHRlbnNpb25WYWx1ZUNoYW5nZS5lbWl0KHtcclxuICAgICAgICB0eXBlOiBhY3Rpb25UeXBlLFxyXG4gICAgICAgIHZhbHVlOiBOdW1iZXIoZXZlbnQ/LnRhcmdldD8udmFsdWUpLFxyXG4gICAgICAgIHBhZ2VOYW1lOiB0aGlzLnBhZ2VOYW1lLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhY3Rpb25UeXBlID09PSAnZXh0ZW5zaW9uJykge1xyXG4gICAgICAgIHRoaXMuY29tcGxldGVkVmFsdWUgPSB0aGlzLmRlZmF1bHRXaW5kb3c7XHJcbiAgICAgICAgdGhpcy5leHRlbnNpb25WYWx1ZUNoYW5nZS5lbWl0KHtcclxuICAgICAgICAgIHR5cGU6IGFjdGlvblR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5kZWZhdWx0V2luZG93LFxyXG4gICAgICAgICAgcGFnZU5hbWU6IHRoaXMucGFnZU5hbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbSB2eC1tdC01XCI+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgIEFzc2Vzc21lbnQgd2luZG93IG9wZW5zXHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0tYm94IHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtcC0zIHZ4LXB0LTQgdngtcGItNCB2eC1kLWJsb2NrXCJcclxuICA+XHJcbiAgICBUaGUgcmlzayBjYW4gYmUgYXNzZXNzZWQgb24gdGhlIGFzc2Vzc21lbnQgZHVlIGRhdGUgYW5kXHJcbiAgICA8aW5wdXRcclxuICAgICAgY2xhc3M9XCJjb3VudE51bVwiXHJcbiAgICAgIFtpZF09XCInY29tcGxldGUtJyArIGlkXCJcclxuICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiYXNzZXNzV2luZG93T3BlblwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25XaW5kb3dPcGVuQ2hhbmdlKCRldmVudCwgJ3dpbmRvdyBvcGVuJylcIlxyXG4gICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgbWluPVwiMFwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgLz5cclxuICAgIGRheXMgYmVmb3JlIHRoZSBhc3Nlc3NtZW50IGR1ZSBkYXRlLiAuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbSB2eC1tdC01XCI+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgIEV4dGVuc2lvblxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtLWJveCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMyB2eC1wdC00IHZ4LXBiLTQgdngtZC1ibG9ja1wiXHJcbiAgPlxyXG4gIFRoZSByaXNrIGNhbiBiZSBhc3Nlc3NlZFxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiY291bnROdW1cIlxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgW2lkXT1cIidub3QtY29tcGxldGVkLScgKyBpZFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwid2luZG93Q2xvc2VzXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkV4dGVuc2lvblZhbHVlQ2hhbmdlKCRldmVudCwgJ2V4dGVuc2lvbicpXCJcclxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgIG1pbj1cIjBcIlxyXG4gICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgIC8+XHJcbiAgICBkYXlzIGFmdGVyIHRoZSBhc3Nlc3NtZW50IGR1ZSBkYXRlLlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0gdngtbXQtNVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICBBc3Nlc3NtZW50IHdpbmRvdyBjbG9zZXM6XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0tYm94IHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtcC0zIHZ4LXB0LTQgdngtcGItNCB2eC1kLWJsb2NrXCJcclxuICA+XHJcbiAgICBUaGUgcmlzayBjYW5ub3QgYmUgYXNzZXNzZWRcclxuICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7d2luZG93Q2xvc2VzfX08L3NwYW4+XHJcbiAgICBkYXlzIGFmdGVyIHRoZSBhc3Nlc3NtZW50IGR1ZSBkYXRlLlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0gdngtbXQtNVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICBSRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtLWJveCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMyB2eC1wdC00IHZ4LXBiLTQgdngtZC1ibG9ja1wiXHJcbiAgPlxyXG4gICAgVkNvbXBseSB3aWxsIHNlbmQgYW4gZW1haWwgcmVtaW5kZXJcclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImNvdW50TnVtXCJcclxuICAgICAgW2lkXT1cIidjb21wbGV0ZS0nICsgaWRcIlxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJjb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdjb21wbGV0ZWQnKVwiXHJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XHJcbiAgICAgIHt7IGNvbXBsZXRlZFZhbHVlIDwgMiA/ICdkYXknIDogJ2RheXMnIH19IGJlZm9yZSB0aGUgcmlzayBhc3Nlc3NtZW50IGR1ZSBkYXRlIGlmIGl0IGlzIG5vdCBkb25lLlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|