vcomply-workflow-engine 6.1.77 → 6.1.78
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/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +11 -6
- package/fesm2022/vcomply-workflow-engine.mjs +10 -6
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs
CHANGED
|
@@ -268,7 +268,6 @@ export class FrequencyContainerComponent {
|
|
|
268
268
|
onFrequencySelected(event) {
|
|
269
269
|
this.frequencyData = event;
|
|
270
270
|
this.isNextDisabled = this.isInvalid();
|
|
271
|
-
console.log(this.frequencyData, 'On Completiioon');
|
|
272
271
|
}
|
|
273
272
|
openedRadio(event) {
|
|
274
273
|
this.openedRadioForm = event;
|
|
@@ -303,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
303
302
|
}], onCompletionResponsibility: [{
|
|
304
303
|
type: Input
|
|
305
304
|
}] } });
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktY29udGFpbmVyL2ZyZXF1ZW5jeS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWNvbnRhaW5lci9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU25DLE1BQU0sT0FBTywyQkFBMkI7SUE2RHRDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFFBQXlCO1FBRHpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUE5RG5DLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsU0FBUyxDQUFDO1FBR2pCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixhQUFRLEdBQWdDLGdCQUFnQixDQUFDO1FBS2xFLGtCQUFhLEdBQUc7WUFDZDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2Qs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SUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLElBQUk7SUFFSixJQUFJO0lBRUosSUFBSTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTlTVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwrVUNqQnhDLDZyUkF1SU07OzRGRHRITywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO3FJQVExQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIGZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gIGN1cnJlbnRUYWJOYW1lID0gJ2EgRGFpbHknO1xuXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURldGFpbHM6IGFueTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcbiAgQElucHV0KCkgb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHk6IGFueTtcblxuICBmcmVxdWVuY3lEYXRhOiBhbnk7XG5cbiAgZnJlcXVlbmN5TGlzdCA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnRGFpbHknLFxuICAgICAgdHlwZTogJ2RhaWx5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdXZWVrbHknLFxuICAgICAgdHlwZTogJ3dlZWtseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnTW9udGhseScsXG4gICAgICB0eXBlOiAnbW9udGhseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUXVhcnRlcmx5JyxcbiAgICAgIHR5cGU6ICdxdWFydGVybHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0JpYW5udWFsJyxcbiAgICAgIHR5cGU6ICdiaWFubnVhbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQW5udWFsJyxcbiAgICAgIHR5cGU6ICdhbm51YWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZSBUaW1lJyxcbiAgICAgIHR5cGU6ICdvbmVUaW1lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdSYW5kb20nLFxuICAgICAgdHlwZTogJ3JhbmRvbScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnT24gQ29tcGxldGlvbiBPZicsXG4gICAgICB0eXBlOiAnb25fY29tcGxldGUnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZ29pbmcnLFxuICAgICAgdHlwZTogJ29uZ29pbmcnLFxuICAgIH0sXG4gIF07XG5cbiAgc2VsZWN0ZWRGcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGlzTmV4dERpc2FibGVkOiBhbnkgPSBmYWxzZTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBvcGVuZWRSYWRpb0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEZXRhaWxzLnBhdHRlcm4gIT0gJycpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9XG4gICAgY29uc3QgaGlkZUVsZW1lbnRzID0gWydyYW5kb20nLCAnb25fY29tcGxldGUnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScpIHtcbiAgICAgIGhpZGVFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZyZXF1ZW5jeUxpc3QuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50SW5kZXg6IGFueSkgPT4gZWxlbWVudEluZGV4LnR5cGUgPT0gZWxlbWVudFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZyZXF1ZW5jeUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBoaWRlRWxlbWVudHMyID0gWydkYWlseScsICdyYW5kb20nLCAnb25fY29tcGxldGUnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3Jldmlld2VyRnJlcXVlbmN5Jykge1xuICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPVxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gPT0gJycgPyAnd2Vla2x5JyA6IHRoaXMuZnJlcXVlbmN5VGFiO1xuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybiA9PSAnJyA/ICdhIHdlZWtseScgOiB0aGlzLmN1cnJlbnRUYWJOYW1lO1xuXG4gICAgICBoaWRlRWxlbWVudHMyLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZnJlcXVlbmN5TGlzdC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnRJbmRleDogYW55KSA9PiBlbGVtZW50SW5kZXgudHlwZSA9PSBlbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xuICAgIHRoaXMuZnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lQYXR0ZXJuID0gcGFyc2VJbnQoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMucGF0dGVybi5zcGxpdCgnficpWzBdXG4gICAgKTtcblxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xuICAgICAgY2FzZSAwOlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbmVUaW1lJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIGRhaWx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3dlZWtseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSB3ZWVrbHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnbW9udGhseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gYW5udWFsICc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBkYWlseSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA2OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbl9jb21wbGV0ZSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5yZXBvcnRfaWQgPSB0aGlzLmZyZXF1ZW5jeURldGFpbHMuc2VsZWN0ZWRSZXBvcnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA3OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdxdWFydGVybHknO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgcXVhcnRlcmx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDg6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3JhbmRvbSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgOTpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgYmlhbm51YWwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTA6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uZ29pbmcnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2FuIG9uZ29pbmcnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeTogYW55KSB7XG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3kudHlwZTtcblxuICAgIGlmIChmcmVxdWVuY3kubmFtZSA9PSAnT25lIFRpbWUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID1cbiAgICAgICAgZnJlcXVlbmN5Lm5hbWUuc3RhcnRzV2l0aCgnT24nKSB8fFxuICAgICAgICBmcmVxdWVuY3kubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYW5udWFsJ1xuICAgICAgICAgID8gJ2FuICcgKyBmcmVxdWVuY3kubmFtZVxuICAgICAgICAgIDogJ2EgJyArIGZyZXF1ZW5jeS5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgY29uc3QgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybj8uc3BsaXQoJ34nKTtcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XG4gICAgICBjYXNlICdkYWlseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dlZWtseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzFdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbW9udGhseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmlhbm51YWwnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMl0uc3BsaXQoJywnKT8ubGVuZ3RoIDwgMlxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb25lVGltZSc6XG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaW1lID0gbW9tZW50KFxuICAgICAgICAgICAgYCR7ZnJlcXVlbmN5RGV0YWlsc1szXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzJdfS0ke2ZyZXF1ZW5jeURldGFpbHNbMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhLnRpbWVJbjEyaHJ9YCxcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgICAgICAgKS51bml4KCk7XG4gICAgICAgICAgaWYgKERhdGUubm93KCkgLyAxMDAwID4gc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbl9jb21wbGV0ZSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEub25Db21wbGV0aW9uPy5yZXNwb25zaWJpbGl0eSA+IDApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyYW5kb20nOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFyc2VJbnQoZnJlcXVlbmN5RGV0YWlsc1sxXSkgPT0gMiAmJlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxuICAgICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KVxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBpc0ludmFsaWQ7XG4gIH1cblxuICBvbkZyZXF1ZW5jeVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBldmVudDtcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZyZXF1ZW5jeURhdGEsICdPbiBDb21wbGV0aWlvb24nKTtcbiAgfVxuXG4gIG9wZW5lZFJhZGlvKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wZW5lZFJhZGlvRm9ybSA9IGV2ZW50O1xuICB9XG5cbiAgLy8gICBjaGVja05leHRWYWxpZGl0eSgpXG4gIC8vIHtcblxuICAvLyB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5LmVtaXQodGhpcy5mcmVxdWVuY3lEYXRhKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knXCI+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWhlYWQgdngtcC0zIHZ4LW1iLTQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2V0IGEgRnJlcXVlbmN5PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keSB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHktaW5uZXJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmcmVxdWVuY3lUeXBlIG9mIGZyZXF1ZW5jeUxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZUZyZXF1ZW5jeVRhYihmcmVxdWVuY3lUeXBlKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUeXBlPy50eXBlID09IGZyZXF1ZW5jeVRhYlwiPnt7IGZyZXF1ZW5jeVR5cGU/Lm5hbWUgfX08L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiLWJvdHRvbSB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kYWlseSAqbmdTd2l0Y2hDYXNlPVwiJ2RhaWx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1kYWlseT5cbiAgICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBXZWVrbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXdlZWtseSAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWtseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktd2Vla2x5PlxuICAgICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1tb250aGx5ICpuZ1N3aXRjaENhc2U9XCInbW9udGhseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktbW9udGhseT5cbiAgICAgICAgICA8IS0tIE1vbnRobHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcXVhcnRlcmx5ICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcmx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcXVhcnRlcmx5PlxuICAgICAgICAgIDwhLS0gUXVhcnRlcmx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktYmlhbm51YWwgKm5nU3dpdGNoQ2FzZT1cIidiaWFubnVhbCdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWJpYW5udWFsPlxuICAgICAgICAgIDwhLS0gQmlhbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktYW5udWFsICpuZ1N3aXRjaENhc2U9XCInYW5udWFsJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1hbm51YWw+XG4gICAgICAgICAgPCEtLSBBbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmUtdGltZSAqbmdTd2l0Y2hDYXNlPVwiJ29uZVRpbWUnXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmUtdGltZT5cbiAgICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXJhbmRvbSAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmRvbSdcIiBbbW9kZV09XCJtb2RlXCIgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcmFuZG9tPlxuICAgICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mICpuZ1N3aXRjaENhc2U9XCInb25fY29tcGxldGUnXCIgW21vZGVdPVwibW9kZVwiIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgICAgICBbb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHldPVwib25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgKHJhZGlvRm9ybSk9XCJvcGVuZWRSYWRpbygkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2Y+XG4gICAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBPbmdvaW5nIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmdvaW5nICpuZ1N3aXRjaENhc2U9XCInb25nb2luZydcIiAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmdvaW5nPlxuICAgICAgICAgIDwhLS0gT25nb2luZyBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyXCIgKm5nSWY9XCIhb3BlbmVkUmFkaW9Gb3JtXCI+XG4gICAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2hvd0ZyZXF1ZW5jeVRleHRdPVwidHJ1ZVwiIFtjdXJyZW50RnJlcXVlbmN5XT1cImN1cnJlbnRUYWJOYW1lXCIgW2lzRGlzYWJsZWRdPVwiaXNOZXh0RGlzYWJsZWRcIlxuICAgICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIiAoY2xvc2VMaXN0KT1cImNsb3NlKClcIj48L2FwcC1mbG9hdGluZy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48IS0tIFdoZW4gcmVzcG9uc2liaWxpdHkgbGlzdCBzaG93IHRoZW4gaGlkZSBmcmVxdWVuY3ktZGlhbG9nIGh0bWwgLS0+XG5cbjwhLS0gRm9yIFBvbGljeSAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1oZWFkIHZ4LXAtMyB2eC1tYi00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZXQgYSBGcmVxdWVuY3k8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHkgdngtcGwtNCB2eC1wci00XCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keS1pbm5lclwiIFtuZ1N3aXRjaF09XCJmcmVxdWVuY3lUYWJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZnJlcXVlbmN5VHlwZSBvZiBmcmVxdWVuY3lMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeVR5cGUpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VHlwZT8udHlwZSA9PSBmcmVxdWVuY3lUYWJcIj57eyBmcmVxdWVuY3lUeXBlPy5uYW1lIH19PC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYi1ib3R0b20gdngtcGwtNCB2eC1wci00XCI+XG4gICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kYWlseSAqbmdTd2l0Y2hDYXNlPVwiJ2RhaWx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktZGFpbHk+XG4gICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBXZWVrbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS13ZWVrbHkgKm5nU3dpdGNoQ2FzZT1cIid3ZWVrbHknXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS13ZWVrbHk+XG4gICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gTW9udGhseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW1vbnRobHkgKm5nU3dpdGNoQ2FzZT1cIidtb250aGx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktbW9udGhseT5cbiAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gUXVhcnRlcmx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktcXVhcnRlcmx5ICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcmx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcXVhcnRlcmx5PlxuICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktYmlhbm51YWwgKm5nU3dpdGNoQ2FzZT1cIidiaWFubnVhbCdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWJpYW5udWFsPlxuICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gQW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktYW5udWFsICpuZ1N3aXRjaENhc2U9XCInYW5udWFsJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktYW5udWFsPlxuICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktb25lLXRpbWUgKm5nU3dpdGNoQ2FzZT1cIidvbmVUaW1lJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb25lLXRpbWU+XG4gICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1yYW5kb20gKm5nU3dpdGNoQ2FzZT1cIidyYW5kb20nXCIgW21vZGVdPVwibW9kZVwiIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1yYW5kb20+XG4gICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gT24gQ29tcGxldGlvbiBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YgKm5nU3dpdGNoQ2FzZT1cIidvbl9jb21wbGV0ZSdcIiBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZj5cbiAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gT25nb2luZyBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZ29pbmcgKm5nU3dpdGNoQ2FzZT1cIidvbmdvaW5nJ1wiIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmdvaW5nPlxuICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyXCI+XG4gICAgPGFwcC1mbG9hdGluZy1iYXIgW3Nob3dGcmVxdWVuY3lUZXh0XT1cInRydWVcIiBbY3VycmVudEZyZXF1ZW5jeV09XCJjdXJyZW50VGFiTmFtZVwiIFtpc0Rpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktY29udGFpbmVyL2ZyZXF1ZW5jeS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWNvbnRhaW5lci9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU25DLE1BQU0sT0FBTywyQkFBMkI7SUE2RHRDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFFBQXlCO1FBRHpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUE5RG5DLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsU0FBUyxDQUFDO1FBR2pCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixhQUFRLEdBQWdDLGdCQUFnQixDQUFDO1FBS2xFLGtCQUFhLEdBQUc7WUFDZDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2Qs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SUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLElBQUk7SUFFSixJQUFJO0lBRUosSUFBSTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTdTVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwrVUNqQnhDLDZyUkF1SU07OzRGRHRITywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO3FJQVExQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIGZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gIGN1cnJlbnRUYWJOYW1lID0gJ2EgRGFpbHknO1xuXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURldGFpbHM6IGFueTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcbiAgQElucHV0KCkgb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHk6IGFueTtcblxuICBmcmVxdWVuY3lEYXRhOiBhbnk7XG5cbiAgZnJlcXVlbmN5TGlzdCA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnRGFpbHknLFxuICAgICAgdHlwZTogJ2RhaWx5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdXZWVrbHknLFxuICAgICAgdHlwZTogJ3dlZWtseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnTW9udGhseScsXG4gICAgICB0eXBlOiAnbW9udGhseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUXVhcnRlcmx5JyxcbiAgICAgIHR5cGU6ICdxdWFydGVybHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0JpYW5udWFsJyxcbiAgICAgIHR5cGU6ICdiaWFubnVhbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQW5udWFsJyxcbiAgICAgIHR5cGU6ICdhbm51YWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZSBUaW1lJyxcbiAgICAgIHR5cGU6ICdvbmVUaW1lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdSYW5kb20nLFxuICAgICAgdHlwZTogJ3JhbmRvbScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnT24gQ29tcGxldGlvbiBPZicsXG4gICAgICB0eXBlOiAnb25fY29tcGxldGUnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZ29pbmcnLFxuICAgICAgdHlwZTogJ29uZ29pbmcnLFxuICAgIH0sXG4gIF07XG5cbiAgc2VsZWN0ZWRGcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGlzTmV4dERpc2FibGVkOiBhbnkgPSBmYWxzZTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBvcGVuZWRSYWRpb0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEZXRhaWxzLnBhdHRlcm4gIT0gJycpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9XG4gICAgY29uc3QgaGlkZUVsZW1lbnRzID0gWydyYW5kb20nLCAnb25fY29tcGxldGUnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScpIHtcbiAgICAgIGhpZGVFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZyZXF1ZW5jeUxpc3QuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50SW5kZXg6IGFueSkgPT4gZWxlbWVudEluZGV4LnR5cGUgPT0gZWxlbWVudFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZyZXF1ZW5jeUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBoaWRlRWxlbWVudHMyID0gWydkYWlseScsICdyYW5kb20nLCAnb25fY29tcGxldGUnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3Jldmlld2VyRnJlcXVlbmN5Jykge1xuICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPVxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gPT0gJycgPyAnd2Vla2x5JyA6IHRoaXMuZnJlcXVlbmN5VGFiO1xuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybiA9PSAnJyA/ICdhIHdlZWtseScgOiB0aGlzLmN1cnJlbnRUYWJOYW1lO1xuXG4gICAgICBoaWRlRWxlbWVudHMyLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZnJlcXVlbmN5TGlzdC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnRJbmRleDogYW55KSA9PiBlbGVtZW50SW5kZXgudHlwZSA9PSBlbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xuICAgIHRoaXMuZnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lQYXR0ZXJuID0gcGFyc2VJbnQoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMucGF0dGVybi5zcGxpdCgnficpWzBdXG4gICAgKTtcblxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xuICAgICAgY2FzZSAwOlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbmVUaW1lJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIGRhaWx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3dlZWtseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSB3ZWVrbHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnbW9udGhseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gYW5udWFsICc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBkYWlseSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA2OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbl9jb21wbGV0ZSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5yZXBvcnRfaWQgPSB0aGlzLmZyZXF1ZW5jeURldGFpbHMuc2VsZWN0ZWRSZXBvcnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA3OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdxdWFydGVybHknO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgcXVhcnRlcmx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDg6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3JhbmRvbSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgOTpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgYmlhbm51YWwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTA6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uZ29pbmcnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2FuIG9uZ29pbmcnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeTogYW55KSB7XG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3kudHlwZTtcblxuICAgIGlmIChmcmVxdWVuY3kubmFtZSA9PSAnT25lIFRpbWUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID1cbiAgICAgICAgZnJlcXVlbmN5Lm5hbWUuc3RhcnRzV2l0aCgnT24nKSB8fFxuICAgICAgICBmcmVxdWVuY3kubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYW5udWFsJ1xuICAgICAgICAgID8gJ2FuICcgKyBmcmVxdWVuY3kubmFtZVxuICAgICAgICAgIDogJ2EgJyArIGZyZXF1ZW5jeS5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgY29uc3QgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybj8uc3BsaXQoJ34nKTtcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XG4gICAgICBjYXNlICdkYWlseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dlZWtseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzFdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbW9udGhseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmlhbm51YWwnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMl0uc3BsaXQoJywnKT8ubGVuZ3RoIDwgMlxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb25lVGltZSc6XG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaW1lID0gbW9tZW50KFxuICAgICAgICAgICAgYCR7ZnJlcXVlbmN5RGV0YWlsc1szXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzJdfS0ke2ZyZXF1ZW5jeURldGFpbHNbMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhLnRpbWVJbjEyaHJ9YCxcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgICAgICAgKS51bml4KCk7XG4gICAgICAgICAgaWYgKERhdGUubm93KCkgLyAxMDAwID4gc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbl9jb21wbGV0ZSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEub25Db21wbGV0aW9uPy5yZXNwb25zaWJpbGl0eSA+IDApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyYW5kb20nOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFyc2VJbnQoZnJlcXVlbmN5RGV0YWlsc1sxXSkgPT0gMiAmJlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxuICAgICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KVxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBpc0ludmFsaWQ7XG4gIH1cblxuICBvbkZyZXF1ZW5jeVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBldmVudDtcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcbiAgfVxuXG4gIG9wZW5lZFJhZGlvKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wZW5lZFJhZGlvRm9ybSA9IGV2ZW50O1xuICB9XG5cbiAgLy8gICBjaGVja05leHRWYWxpZGl0eSgpXG4gIC8vIHtcblxuICAvLyB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5LmVtaXQodGhpcy5mcmVxdWVuY3lEYXRhKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knXCI+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWhlYWQgdngtcC0zIHZ4LW1iLTQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2V0IGEgRnJlcXVlbmN5PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keSB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHktaW5uZXJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmcmVxdWVuY3lUeXBlIG9mIGZyZXF1ZW5jeUxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZUZyZXF1ZW5jeVRhYihmcmVxdWVuY3lUeXBlKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUeXBlPy50eXBlID09IGZyZXF1ZW5jeVRhYlwiPnt7IGZyZXF1ZW5jeVR5cGU/Lm5hbWUgfX08L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiLWJvdHRvbSB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kYWlseSAqbmdTd2l0Y2hDYXNlPVwiJ2RhaWx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1kYWlseT5cbiAgICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBXZWVrbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXdlZWtseSAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWtseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktd2Vla2x5PlxuICAgICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1tb250aGx5ICpuZ1N3aXRjaENhc2U9XCInbW9udGhseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktbW9udGhseT5cbiAgICAgICAgICA8IS0tIE1vbnRobHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcXVhcnRlcmx5ICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcmx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcXVhcnRlcmx5PlxuICAgICAgICAgIDwhLS0gUXVhcnRlcmx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktYmlhbm51YWwgKm5nU3dpdGNoQ2FzZT1cIidiaWFubnVhbCdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWJpYW5udWFsPlxuICAgICAgICAgIDwhLS0gQmlhbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktYW5udWFsICpuZ1N3aXRjaENhc2U9XCInYW5udWFsJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1hbm51YWw+XG4gICAgICAgICAgPCEtLSBBbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmUtdGltZSAqbmdTd2l0Y2hDYXNlPVwiJ29uZVRpbWUnXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmUtdGltZT5cbiAgICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXJhbmRvbSAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmRvbSdcIiBbbW9kZV09XCJtb2RlXCIgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcmFuZG9tPlxuICAgICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mICpuZ1N3aXRjaENhc2U9XCInb25fY29tcGxldGUnXCIgW21vZGVdPVwibW9kZVwiIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgICAgICBbb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHldPVwib25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgKHJhZGlvRm9ybSk9XCJvcGVuZWRSYWRpbygkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2Y+XG4gICAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBPbmdvaW5nIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmdvaW5nICpuZ1N3aXRjaENhc2U9XCInb25nb2luZydcIiAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmdvaW5nPlxuICAgICAgICAgIDwhLS0gT25nb2luZyBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyXCIgKm5nSWY9XCIhb3BlbmVkUmFkaW9Gb3JtXCI+XG4gICAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2hvd0ZyZXF1ZW5jeVRleHRdPVwidHJ1ZVwiIFtjdXJyZW50RnJlcXVlbmN5XT1cImN1cnJlbnRUYWJOYW1lXCIgW2lzRGlzYWJsZWRdPVwiaXNOZXh0RGlzYWJsZWRcIlxuICAgICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIiAoY2xvc2VMaXN0KT1cImNsb3NlKClcIj48L2FwcC1mbG9hdGluZy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48IS0tIFdoZW4gcmVzcG9uc2liaWxpdHkgbGlzdCBzaG93IHRoZW4gaGlkZSBmcmVxdWVuY3ktZGlhbG9nIGh0bWwgLS0+XG5cbjwhLS0gRm9yIFBvbGljeSAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1oZWFkIHZ4LXAtMyB2eC1tYi00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZXQgYSBGcmVxdWVuY3k8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHkgdngtcGwtNCB2eC1wci00XCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keS1pbm5lclwiIFtuZ1N3aXRjaF09XCJmcmVxdWVuY3lUYWJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZnJlcXVlbmN5VHlwZSBvZiBmcmVxdWVuY3lMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeVR5cGUpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VHlwZT8udHlwZSA9PSBmcmVxdWVuY3lUYWJcIj57eyBmcmVxdWVuY3lUeXBlPy5uYW1lIH19PC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYi1ib3R0b20gdngtcGwtNCB2eC1wci00XCI+XG4gICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kYWlseSAqbmdTd2l0Y2hDYXNlPVwiJ2RhaWx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktZGFpbHk+XG4gICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBXZWVrbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS13ZWVrbHkgKm5nU3dpdGNoQ2FzZT1cIid3ZWVrbHknXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS13ZWVrbHk+XG4gICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gTW9udGhseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW1vbnRobHkgKm5nU3dpdGNoQ2FzZT1cIidtb250aGx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktbW9udGhseT5cbiAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gUXVhcnRlcmx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktcXVhcnRlcmx5ICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcmx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcXVhcnRlcmx5PlxuICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktYmlhbm51YWwgKm5nU3dpdGNoQ2FzZT1cIidiaWFubnVhbCdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWJpYW5udWFsPlxuICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gQW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktYW5udWFsICpuZ1N3aXRjaENhc2U9XCInYW5udWFsJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktYW5udWFsPlxuICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktb25lLXRpbWUgKm5nU3dpdGNoQ2FzZT1cIidvbmVUaW1lJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb25lLXRpbWU+XG4gICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1yYW5kb20gKm5nU3dpdGNoQ2FzZT1cIidyYW5kb20nXCIgW21vZGVdPVwibW9kZVwiIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1yYW5kb20+XG4gICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gT24gQ29tcGxldGlvbiBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YgKm5nU3dpdGNoQ2FzZT1cIidvbl9jb21wbGV0ZSdcIiBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZj5cbiAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gT25nb2luZyBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZ29pbmcgKm5nU3dpdGNoQ2FzZT1cIidvbmdvaW5nJ1wiIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1vbmdvaW5nPlxuICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyXCI+XG4gICAgPGFwcC1mbG9hdGluZy1iYXIgW3Nob3dGcmVxdWVuY3lUZXh0XT1cInRydWVcIiBbY3VycmVudEZyZXF1ZW5jeV09XCJjdXJyZW50VGFiTmFtZVwiIFtpc0Rpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -150,10 +150,13 @@ export class FrequencyResponsibilityListComponent {
|
|
|
150
150
|
let assigneeDetails = (item.assigneeDetails || [])
|
|
151
151
|
.filter((ad) => ad.status && ad.status.toLowerCase() === 'active');
|
|
152
152
|
if (assigneeDetails?.length === 0 && item?.assigneeType === 'any' && [null, 'any'].includes(item?.rcType)) {
|
|
153
|
-
assigneeDetails =
|
|
154
|
-
|
|
153
|
+
assigneeDetails = item.assignees?.activeUserId?.map((id) => {
|
|
154
|
+
return {
|
|
155
|
+
...item.assigneeDetails[0],
|
|
155
156
|
status: 'active',
|
|
156
|
-
|
|
157
|
+
assignee: id,
|
|
158
|
+
};
|
|
159
|
+
});
|
|
157
160
|
}
|
|
158
161
|
assigneeDetails = assigneeDetails.map((ad) => ({
|
|
159
162
|
...ad,
|
|
@@ -166,6 +169,8 @@ export class FrequencyResponsibilityListComponent {
|
|
|
166
169
|
id: item.id,
|
|
167
170
|
title: item.title,
|
|
168
171
|
controlId: item?.controlId ? '[CID-' + item?.controlId + '] ' : '',
|
|
172
|
+
assigneeType: item?.assigneeType,
|
|
173
|
+
rcType: item?.rcType,
|
|
169
174
|
assigneeDetails,
|
|
170
175
|
allAssignee,
|
|
171
176
|
allRc
|
|
@@ -215,11 +220,11 @@ export class FrequencyResponsibilityListComponent {
|
|
|
215
220
|
this.selectedResponsibilityValues = event;
|
|
216
221
|
}
|
|
217
222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, deps: [{ token: i1.FrequencyService }, { token: i2.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\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/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\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i10.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i11.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i13.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo", "selectedResponsibility"], outputs: ["onCompletionChange"] }, { kind: "component", type: i14.AvatarV2Component, selector: "lib-avatar-v2", inputs: ["avatarList", "type"] }] }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\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/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\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i10.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i11.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i13.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo", "selectedResponsibility"], outputs: ["onCompletionChange"] }, { kind: "component", type: i14.AvatarV2Component, selector: "lib-avatar-v2", inputs: ["avatarList", "type"] }] }); }
|
|
219
224
|
}
|
|
220
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, decorators: [{
|
|
221
226
|
type: Component,
|
|
222
|
-
args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\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/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\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
|
|
227
|
+
args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\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/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\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
|
|
223
228
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }, { type: i2.CommonService }]; }, propDecorators: { selectedResponsibilityDetails: [{
|
|
224
229
|
type: Input
|
|
225
230
|
}], backButton: [{
|
|
@@ -227,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
227
232
|
}], selectedResponsibility: [{
|
|
228
233
|
type: Output
|
|
229
234
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLG9DQUFvQztJQTRDL0MsWUFDVSxnQkFBa0MsRUFDbEMsYUFBNEI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdDN0Isa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBRXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMvQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsNkJBQXdC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OzRGRDNKTyxvQ0FBb0M7a0JBTGhELFNBQVM7K0JBQ0UsbUNBQW1DO21JQUtwQyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IHNsaWNlIH0gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5UmVzcG9uc2liaWxpdHlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IHt9O1xuXG4gIEBPdXRwdXQoKSBiYWNrQnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnkgPSB7fTtcbiAgcmVzcG9uc2liaWxpdHlMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkOiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlczogYW55O1xuICBcbiAgcmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcbiAgcmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgaXNWYWxpZE9iaiA9IGZhbHNlO1xuXG4gIHJlc3BvbnNpYmlsaXR5UGF5bG9hZCA9IHtcbiAgICB0eXBlOiAnYWN0aXZlJyxcbiAgICBwYWdpbmF0aW9uVHlwZTogJ2xhcmdlJyxcbiAgICBhOiAnJyxcbiAgICBzZWFyY2hUZXJtOiAnJyxcbiAgICBmaWx0ZXJEYXRhOiB7XG4gICAgICBhcHBMaXN0OiBbXSxcbiAgICAgIHJpc2tJZHM6IFtdLFxuICAgICAgcmV2aWV3ZXJJZDogW10sXG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogW10sXG4gICAgICBlbnRydXN0ZWRCeTogW10sXG4gICAgICBlbnRydXN0ZWRUbzogW10sXG4gICAgICByZXNwb25zaWJpbGl0eUNhdGVnb3J5OiBbXSxcbiAgICAgIGNvbXBsaWFuY2VUeXBlOiBbMV0sXG4gICAgfSxcbiAgICBwYWdlTm86IDEsXG4gICAgc29ydE9iajoge1xuICAgICAgc29ydEJ5OiAnJyxcbiAgICAgIHR5cGU6ICcnLFxuICAgIH0sXG4gICAgcGFnZU5hbWU6ICdvdmVydmlldycsXG4gIH07XG4gIHJlc3BvbnNpYmlsaXR5TGlzdDogYW55O1xuICBjbG9zZTogYW55O1xuICBvcGVuZWRSZXNwb25zaWJpbGl0eTogYW55W10gPSBbXTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSxcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgICB0aGlzLnBvcHVsYXRlUmVzcG9uc2liaWxpdHkoKTtcbiAgfVxuXG4gIGJhY2soKSB7XG4gICAgdGhpcy5iYWNrQnV0dG9uLmVtaXQoJ2JhY2tUb09uQ29tcGxldGlvbicpO1xuICB9XG5cblxuICBnZXRSZXNwb25zaWJpbGl0eUxpc3QoKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXG4gICAgICA/LmdldFJlc3BvbnNpYmlsaXR5TGlzdCh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGEgPSByZXM/LmRhdGE7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0UGFnaW5hdGlvbihyZXM/LmRhdGEpO1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhWydwYWdpbmF0aW9uJ10gPSBwYWdpbmF0aW9uO1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhWydyZXNwb25zaWJpbGl0aWVzJ10gPSB0aGlzLm1hcFJlc3BvbnNpYmlsaXR5RGF0YSggdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSlcblxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGhhc1Jlc3BvbnNpYmlsaXR5ID0gdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8uZmluZCgocmVzcG9uc2liaWxpdHk6IGFueSkgPT4gcmVzcG9uc2liaWxpdHkuaWQgPT09IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkKTtcbiAgICAgICAgaWYoaGFzUmVzcG9uc2liaWxpdHkpIHtcbiAgICAgICAgICB0aGlzLm9uVG9nZ2xlUmVzcG9uc2liaWxpdHkoaGFzUmVzcG9uc2liaWxpdHkpO1xuICAgICAgICB9XG4gICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIGNvbnNvbGUubG9nKHsgZXJyb3IgfSwgXCJFcnJvciBpbiBnZXR0aW5nIHJlc3BvbnNpYmlsaXR5IGxpc3RcIik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnBhZ2VObyA9IHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXJtID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG5cbiAgZGVsZXRlSXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSB7fTtcbiAgICB0aGlzLmlzVmFsaWRPYmogPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZCA9IFtdO1xuICB9XG4gIHNhdmUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuYmFja0J1dHRvbi5lbWl0KCdiYWNrVG9PbkNvbXBsZXRpb24nKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkuZW1pdCh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMpO1xuICB9XG5cblxuICBzZWFyY2goKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGVybSA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuIFxuICBcbiAgb25Ub2dnbGVSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eTogYW55KSB7XG4gICAgaWYodGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5pZCkpIHtcbiAgICAgIHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkgPSB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LmZpbHRlcigoaWQ6IGFueSkgPT4gaWQgIT09IHJlc3BvbnNpYmlsaXR5LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eS5wdXNoKHJlc3BvbnNpYmlsaXR5LmlkKTtcbiAgICB9XG4gIH1cblxuXG4gICAgLy8gTWFpbiBtZXRob2QgZXhwb3NlZCBvdXRzaWRlXG4gICAgcHVibGljIG1hcFJlc3BvbnNpYmlsaXR5RGF0YShyZXNwb25zaWJpbGl0eTogYW55KTogYW55W10ge1xuICAgICAgaWYgKCFyZXNwb25zaWJpbGl0eSkgcmV0dXJuIFtdO1xuICBcbiAgICAgIGNvbnN0IHVzZXJzID0gdGhpcy5tYXBTaG9ydE5hbWVzKHJlc3BvbnNpYmlsaXR5LnVzZXJzLCB0aGlzLm1hcFNob3J0TmFtZSk7XG4gICAgICBjb25zdCB1c2VyTWFwID0gdGhpcy5idWlsZE1hcCh1c2Vycyk7XG4gICAgICBjb25zdCByY01hcCA9IHRoaXMuYnVpbGRNYXAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdHlDZW50ZXJzKTtcbiAgXG4gICAgICByZXR1cm4gKHJlc3BvbnNpYmlsaXR5LnJlc3BvbnNpYmlsaXRpZXMgfHwgW10pLm1hcCgoaXRlbTogYW55KSA9PlxuICAgICAgICB0aGlzLm1hcFJlc3BvbnNpYmlsaXR5SXRlbShpdGVtLCB1c2VyTWFwLCByY01hcClcbiAgICAgICk7XG4gICAgfVxuICBcbiAgICAvLyBIZWxwZXIgbWV0aG9kcyBiZWxvdzpcbiAgXG4gICAgcHJpdmF0ZSBtYXBTaG9ydE5hbWVzKHVzZXJzOiBhbnlbXSwgbWFwU2hvcnROYW1lOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICByZXR1cm4gKHVzZXJzIHx8IFtdKS5tYXAodXNlciA9PiAoe1xuICAgICAgICAuLi51c2VyLFxuICAgICAgICBzaG9ydE5hbWU6IG1hcFNob3J0TmFtZSh1c2VyLm5hbWUpLFxuICAgICAgfSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBidWlsZE1hcChhcnI6IGFueVtdKTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgICByZXR1cm4gbmV3IE1hcCgoYXJyIHx8IFtdKS5tYXAoaXRlbSA9PiBbaXRlbS5pZCwgaXRlbV0pKTtcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgbWFwQXNzaWduZWVVc2Vycyhhc3NpZ25lZTogYW55LCBhY3RpdmVVc2VySWRzOiBzdHJpbmdbXSwgdXNlck1hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUuYXNzaWduZWUpIHtcbiAgICAgICAgcmV0dXJuIChhY3RpdmVVc2VySWRzIHx8IFtdKS5tYXAoaWQgPT4gdXNlck1hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLmFzc2lnbmVlKSA/IGFzc2lnbmVlLmFzc2lnbmVlIDogW2Fzc2lnbmVlLmFzc2lnbmVlXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiB1c2VyTWFwLmdldCgoaWQpKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0eUNlbnRlcnMoYXNzaWduZWU6IGFueSwgaXRlbVJDSWRzOiBzdHJpbmdbXSwgcmNNYXA6IE1hcDxzdHJpbmcsIGFueT4pOiBhbnlbXSB7XG4gICAgICBpZiAoIWFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSB7XG4gICAgICAgIHJldHVybiAoaXRlbVJDSWRzIHx8IFtdKS5tYXAoaWQgPT4gcmNNYXAuZ2V0KGlkKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShhc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlcikgPyBhc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA6IFthc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlcl07XG4gICAgICByZXR1cm4gaWRzLm1hcCgoaWQ6IGFueSkgPT4gcmNNYXAuZ2V0KGlkKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0eUl0ZW0oaXRlbTogYW55LCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+LCByY01hcDogTWFwPHN0cmluZywgYW55Pik6IGFueSB7XG5cbiAgICAgIGxldCAgYXNzaWduZWVEZXRhaWxzID0gKGl0ZW0uYXNzaWduZWVEZXRhaWxzIHx8IFtdKVxuICAgICAgICAuZmlsdGVyKChhZDogYW55KSA9PiBhZC5zdGF0dXMgJiYgYWQuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdhY3RpdmUnKVxuICAgICAgICBpZihhc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA9PT0gMCAmJiBpdGVtPy5hc3NpZ25lZVR5cGUgPT09ICdhbnknICYmIFtudWxsLCAnYW55J10uaW5jbHVkZXMoaXRlbT8ucmNUeXBlKSkge1xuICAgICAgICAgIGFzc2lnbmVlRGV0YWlscyA9IFt7XG4gICAgICAgICAgICAuLi5pdGVtLmFzc2lnbmVlRGV0YWlscyxcbiAgICAgICAgICAgIHN0YXR1czogJ2FjdGl2ZScsXG4gICAgICAgICAgfV1cbiAgICAgICAgfVxuICAgICAgICBhc3NpZ25lZURldGFpbHMgPSAgYXNzaWduZWVEZXRhaWxzLm1hcCgoYWQ6IGFueSkgPT4gKHtcbiAgICAgICAgICAuLi5hZCxcbiAgICAgICAgICBhc3NpZ25lZUluZm86IHRoaXMubWFwQXNzaWduZWVVc2VycyhhZCwgaXRlbS5hc3NpZ25lZXM/LmFjdGl2ZVVzZXJJZCB8fCBbXSwgdXNlck1hcCksXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJJbmZvOiB0aGlzLm1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhZCwgaXRlbS5yZXNwb25zaWJpbGl0eUNlbnRlcnMgfHwgW10sIHJjTWFwKSxcbiAgICAgICAgfSkpO1xuICAgICAgICBjb25zdCBhbGxBc3NpZ25lZSA9IHRoaXMucmVtb3ZlRHVwbGljYXRlQXNzaWduZWUoYXNzaWduZWVEZXRhaWxzKS5tYXAoKGFkOiBhbnkpID0+IGFkLmFzc2lnbmVlSW5mb1swXSk7XG4gICAgICAgIGNvbnN0IGFsbFJjID0gdGhpcy5tYXBSY3MoaXRlbS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICBjb250cm9sSWQ6IGl0ZW0/LmNvbnRyb2xJZCA/ICdbQ0lELScgKyBpdGVtPy5jb250cm9sSWQgKyAnXSAnIDogJycsXG4gICAgICAgIGFzc2lnbmVlRGV0YWlscyxcbiAgICAgICAgIGFsbEFzc2lnbmVlLFxuICAgICAgICAgYWxsUmNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmVtb3ZlRHVwbGljYXRlQXNzaWduZWUoYXNzaWduZWVEZXRhaWxzOiBhbnkpIHtcbiAgICAgIGNvbnN0IHVuaXF1ZU1hcCA9IG5ldyBNYXAoKTtcbiAgICAgIGFzc2lnbmVlRGV0YWlscy5mb3JFYWNoKChvYmo6IGFueSkgPT4ge1xuICAgICAgICB1bmlxdWVNYXAuc2V0KG9iai5hc3NpZ25lZSwgb2JqKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdW5pcXVlQXJyYXkgPSBBcnJheS5mcm9tKHVuaXF1ZU1hcC52YWx1ZXMoKSk7XG4gICAgICAgICAgcmV0dXJuIHVuaXF1ZUFycmF5O1xuICAgICAgICB9XG5cbiAgICAgIG1hcFJjcyhyY3M6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzPy5maWx0ZXIoKHJjOiBhbnkpID0+IHJjcz8uaW5jbHVkZXMocmM/LmlkKSk7XG4gICAgICB9XG4gIFxuICBtYXBTaG9ydE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmFtZUFycmF5ID0gbmFtZT8uc3BsaXQoJyAnKTtcbiAgICBpZihuYW1lQXJyYXk/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBuYW1lQXJyYXlbMF0/LmNoYXJBdCgwKSArIG5hbWVBcnJheVtuYW1lQXJyYXk/Lmxlbmd0aCAtIDFdPy5jaGFyQXQoMCk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lQXJyYXlbMF0/LmNoYXJBdCgwKSArIG5hbWVBcnJheVswXT8uY2hhckF0KDEpPy50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgcG9wdWxhdGVSZXNwb25zaWJpbGl0eSgpIHtcbiAgICBpZighdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uYXNzaWduZWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0gIHtcbiAgICAgIGVhY2hBc3NpZ25lZToge1xuICAgICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMucmVzcG9uc2liaWxpdHlDZW50ZXIsXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2liaWxpdHk6IHtcbiAgICAgICAgdGl0bGU6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMudGl0bGUsXG4gICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLmlkLFxuICAgICAgICBhbGxSQzogW10sXG4gICAgICAgIGFsbEFzc2lnbmVlOiBbXSxcbiAgICAgICAgYXNzaWduZWVEZXRhaWxzOiBbe1xuICAgICAgICAgIGFzc2lnbmVlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLmFzc2lnbmVlLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnJlc3BvbnNpYmlsaXR5Q2VudGVyLFxuICAgICAgICB9XSxcbiAgICAgICAgZWFjaEFzc2lnbmVlOiB7fSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNvbXBsZXRpb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IGV2ZW50XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdFwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtaGVhZCB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyBhcnJvdyB2eC1mcy0xNiB2eC1sYWJlbC10eHQgdngtbXItMVwiIChjbGljayk9XCJiYWNrKClcIj4mI3hlOTFkOzwvaT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgUmVzcG9uc2liaWxpdHk8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1ib2R5XCI+XG4gICAgPCEtLSA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJvdGhlcnNDb3VudCA9PT0gMFwiPjwvYXBwLWxvYWRlci1pbmxpbmU+IC0tPlxuXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LXNlYXJjaCB2eC1tYi0yXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyXCI+JiN4ZTkwYjs8L2k+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInJlc3BvbnNpYmlsaXR5U2VhcmNoVGV4dFwiIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXRpZXNcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8ucGFnaW5hdGlvbiBhcyBwYWdpbmF0aW9uXCI+XG4gICAgICA8YXBwLXBhZ2luYXRpb24gKm5nSWY9XCJwYWdpbmF0aW9uPy50b3RhbF9wYWdlcyA+IDFcIiBbc3RhcnRdPVwicGFnaW5hdGlvbj8ucmVzcG9uc2liaWxpdGllc19mcm9tXCJcbiAgICAgICAgW2VuZF09XCJwYWdpbmF0aW9uPy5yZXNwb25zaWJpbGl0aWVzX3RvXCIgW3RvdGFsXT1cInBhZ2luYXRpb24/LnRvdGFsX3Jlc3BvbnNpYmlsaXRpZXNcIlxuICAgICAgICBbcGFnZUNvdW50XT1cInBhZ2luYXRpb24/LnRvdGFsX3BhZ2VzXCIgW2N1cnJlbnRQYWdlXT1cInJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2VcIlxuICAgICAgICAoc2VsZWN0ZWRQYWdlKT1cInJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2FwcC1wYWdpbmF0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwicmVzcG9uc2liaWxpdHlMb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1taWQgdngtbWItNFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiXG4gICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcGFnZXMgPiAxXG4gICAgICBcIj5cbiAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCIgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiIFtub0RhdGFUZXh0XT1cIidObyBEYXRhIHRvIERpc3BsYXknXCI+PC9hcHAtbm8tZGF0YT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlclxuICAgICAgICBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAjXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5XCI+XG4gICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRJRVNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktY2VudGVyXCI+XG4gICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRZIENFTlRFUlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhY3Rpb25cIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICA8IS0tIHdoZW4gY2xpY2sgb24gcmFkaW8gdGhlbiBhY3RpdmUgY2xhc3Mgc2hvdWxkIGJlIHRydWUgLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzO1xuICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIocmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2UgKiByZXNwb25zaWJpbGl0aWVzRGF0YT8ubGltaXQgLVxuICAgICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0ICtcbiAgICAgICAgICAgIGkgK1xuICAgICAgICAgICAgMSkgYXMgc3JOb1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCIgW2NsYXNzLnJlc3BdPVwicmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxXCIgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQgPT09IHJlc3BvbnNpYmlsaXR5Py5pZCAmJiByZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgXCIgW2NsYXNzLndpdGgtc3ViLXJlc3BvbnNpYmlsaXR5XT1cIm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5Py5pZClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscyBhcyBhc3NpZ25lZURldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzci1ub1wiIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNyTm8gIFxuICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3tzck5vfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKm5nSWY9XCJhc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA9PT0gMVwiIFtuYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkID09PSByZXNwb25zaWJpbGl0eT8uaWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIm9uQ29tcGxldGlvbkNoYW5nZSh7ZWFjaEFzc2lnbmVlOiBhc3NpZ25lZURldGFpbHNbMF0sIHJlc3BvbnNpYmlsaXR5fSlcIj48L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5IHdpdGgtcmNcIj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LXByLTUgIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWxpc3QgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1hdmF0YXItdjIgW2F2YXRhckxpc3RdPVwicmVzcG9uc2liaWxpdHk/LmFsbEFzc2lnbmVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ1NJTkdMRV9BVkFUQVInXCI+PC9saWItYXZhdGFyLXYyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZS10ZXh0IHZ4LW1sLTEgcmVzcC1uYW1lXCIgW2FwcFRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8uY29udHJvbElkIH19IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8udGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdHk/LmFsbFJjIGFzIHJjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0taW5uZXIgdngtZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0tdmFsdWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IHZ4LXByLTVcIiBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyByY1swXT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICctLSdcbiAgICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJjWzBdPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCItLVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGggXG4gICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwicmM/Lmxlbmd0aCA+IDFcIiBhcHBQb3BvdmVyIChjbGljayk9XCJyY1BvcHVwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3JhbS1jb3VudCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICt7eyByYz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjcmNQb3B1cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSBvZiByYz8uc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW2FwcFRvb2x0aXBdPVwiZGF0YT8ubmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57eyBkYXRhPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID4gMTsgZWxzZSBjbG9zZUljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjbG9zZUljb25cbiAgICAgICAgICAgICAgICAgICAgICBcIiBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTllNzs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+ICYjeGU5ZTg7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bGliLXN1Yi1yZXNwb25zaWJpbGl0eSAqbmdJZj1cIm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LmlkKVwiXG4gICAgICAgICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5XT1cInJlc3BvbnNpYmlsaXR5XCIgW3NyTm9dPVwic3JOb1wiIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5XT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIChvbkNvbXBsZXRpb25DaGFuZ2UpPVwib25Db21wbGV0aW9uQ2hhbmdlKCRldmVudClcIj48L2xpYi1zdWItcmVzcG9uc2liaWxpdHk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2VsZWN0ZWREYXRhXT1cIltzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eV1cIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiJ3RpdGxlJ1wiXG4gICAgICAoY2xvc2VMaXN0KT1cImJhY2soKVwiIChjbG9zZUV2ZW50KT1cInNhdmUoJGV2ZW50KVwiIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZFwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLG9DQUFvQztJQTRDL0MsWUFDVSxnQkFBa0MsRUFDbEMsYUFBNEI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdDN0Isa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBRXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMvQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsNkJBQXdC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QkFBb0I7cUJBQzlFLENBQUM7Z0JBQ0YsWUFBWSxFQUFFLEVBQUU7YUFDakI7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtJQUMzQyxDQUFDOytHQWxQVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyw4T0NYakQsZ25TQXVLTTs7NEZENUpPLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxtQ0FBbUM7bUlBS3BDLDZCQUE2QjtzQkFBckMsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2xpY2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsczogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGJhY2tCdXR0b24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eUxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ6IGFueSA9IFtdO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzOiBhbnk7XG4gIFxuICByZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBpc1ZhbGlkT2JqID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhY3RpdmUnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRlcm06ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnk7XG4gIGNsb3NlOiBhbnk7XG4gIG9wZW5lZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICAgIHRoaXMucG9wdWxhdGVSZXNwb25zaWJpbGl0eSgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gIH1cblxuXG4gIGdldFJlc3BvbnNpYmlsaXR5TGlzdCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSA9IHJlcz8uZGF0YTtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMuY29tbW9uU2VydmljZS5zZXRQYWdpbmF0aW9uKHJlcz8uZGF0YSk7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3BhZ2luYXRpb24nXSA9IHBhZ2luYXRpb247XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3Jlc3BvbnNpYmlsaXRpZXMnXSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdHlEYXRhKCB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhKVxuXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaGFzUmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5maW5kKChyZXNwb25zaWJpbGl0eTogYW55KSA9PiByZXNwb25zaWJpbGl0eS5pZCA9PT0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQpO1xuICAgICAgICBpZihoYXNSZXNwb25zaWJpbGl0eSkge1xuICAgICAgICAgIHRoaXMub25Ub2dnbGVSZXNwb25zaWJpbGl0eShoYXNSZXNwb25zaWJpbGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coeyBlcnJvciB9LCBcIkVycm9yIGluIGdldHRpbmcgcmVzcG9uc2liaWxpdHkgbGlzdFwiKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVzcG9uc2liaWxpdHlQYWdlQ2hhbmdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnNlYXJjaFRlcm0gPSB0aGlzLnJlc3BvbnNpYmlsaXR5U2VhcmNoVGV4dDtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICB9XG5cblxuICBkZWxldGVJdGVtKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IHt9O1xuICAgIHRoaXMuaXNWYWxpZE9iaiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkID0gW107XG4gIH1cbiAgc2F2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5iYWNrQnV0dG9uLmVtaXQoJ2JhY2tUb09uQ29tcGxldGlvbicpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eS5lbWl0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyk7XG4gIH1cblxuXG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXJtID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG4gXG4gIFxuICBvblRvZ2dsZVJlc3BvbnNpYmlsaXR5KHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcbiAgICBpZih0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LmlkKSkge1xuICAgICAgdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eSA9IHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkuZmlsdGVyKChpZDogYW55KSA9PiBpZCAhPT0gcmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LnB1c2gocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH1cbiAgfVxuXG5cbiAgICAvLyBNYWluIG1ldGhvZCBleHBvc2VkIG91dHNpZGVcbiAgICBwdWJsaWMgbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgICBpZiAoIXJlc3BvbnNpYmlsaXR5KSByZXR1cm4gW107XG4gIFxuICAgICAgY29uc3QgdXNlcnMgPSB0aGlzLm1hcFNob3J0TmFtZXMocmVzcG9uc2liaWxpdHkudXNlcnMsIHRoaXMubWFwU2hvcnROYW1lKTtcbiAgICAgIGNvbnN0IHVzZXJNYXAgPSB0aGlzLmJ1aWxkTWFwKHVzZXJzKTtcbiAgICAgIGNvbnN0IHJjTWFwID0gdGhpcy5idWlsZE1hcChyZXNwb25zaWJpbGl0eS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICBcbiAgICAgIHJldHVybiAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdGllcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHRoaXMubWFwUmVzcG9uc2liaWxpdHlJdGVtKGl0ZW0sIHVzZXJNYXAsIHJjTWFwKVxuICAgICAgKTtcbiAgICB9XG4gIFxuICAgIC8vIEhlbHBlciBtZXRob2RzIGJlbG93OlxuICBcbiAgICBwcml2YXRlIG1hcFNob3J0TmFtZXModXNlcnM6IGFueVtdLCBtYXBTaG9ydE5hbWU6IChuYW1lOiBzdHJpbmcpID0+IHN0cmluZyk6IGFueVtdIHtcbiAgICAgIHJldHVybiAodXNlcnMgfHwgW10pLm1hcCh1c2VyID0+ICh7XG4gICAgICAgIC4uLnVzZXIsXG4gICAgICAgIHNob3J0TmFtZTogbWFwU2hvcnROYW1lKHVzZXIubmFtZSksXG4gICAgICB9KSk7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIGJ1aWxkTWFwKGFycjogYW55W10pOiBNYXA8c3RyaW5nLCBhbnk+IHtcbiAgICAgIHJldHVybiBuZXcgTWFwKChhcnIgfHwgW10pLm1hcChpdGVtID0+IFtpdGVtLmlkLCBpdGVtXSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBBc3NpZ25lZVVzZXJzKGFzc2lnbmVlOiBhbnksIGFjdGl2ZVVzZXJJZHM6IHN0cmluZ1tdLCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55W10ge1xuICAgICAgaWYgKCFhc3NpZ25lZS5hc3NpZ25lZSkge1xuICAgICAgICByZXR1cm4gKGFjdGl2ZVVzZXJJZHMgfHwgW10pLm1hcChpZCA9PiB1c2VyTWFwLmdldChpZCkpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoYXNzaWduZWUuYXNzaWduZWUpID8gYXNzaWduZWUuYXNzaWduZWUgOiBbYXNzaWduZWUuYXNzaWduZWVdO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBhbnkpID0+IHVzZXJNYXAuZ2V0KChpZCkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhc3NpZ25lZTogYW55LCBpdGVtUkNJZHM6IHN0cmluZ1tdLCByY01hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUucmVzcG9uc2liaWxpdHlDZW50ZXIpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtUkNJZHMgfHwgW10pLm1hcChpZCA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSA/IGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyIDogW2Fzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5SXRlbShpdGVtOiBhbnksIHVzZXJNYXA6IE1hcDxzdHJpbmcsIGFueT4sIHJjTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55IHtcblxuICAgICAgbGV0ICBhc3NpZ25lZURldGFpbHMgPSAoaXRlbS5hc3NpZ25lZURldGFpbHMgfHwgW10pXG4gICAgICAgIC5maWx0ZXIoKGFkOiBhbnkpID0+IGFkLnN0YXR1cyAmJiBhZC5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2FjdGl2ZScpXG4gICAgICAgIGlmKGFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAwICYmIGl0ZW0/LmFzc2lnbmVlVHlwZSA9PT0gJ2FueScgJiYgW251bGwsICdhbnknXS5pbmNsdWRlcyhpdGVtPy5yY1R5cGUpKSB7XG5cbiAgICAgICAgICBhc3NpZ25lZURldGFpbHMgPSAgaXRlbS5hc3NpZ25lZXM/LmFjdGl2ZVVzZXJJZD8ubWFwKChpZDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5pdGVtLmFzc2lnbmVlRGV0YWlsc1swXSxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAgICAgICAgICAgYXNzaWduZWU6IGlkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGFzc2lnbmVlRGV0YWlscyA9ICBhc3NpZ25lZURldGFpbHMubWFwKChhZDogYW55KSA9PiAoe1xuICAgICAgICAgIC4uLmFkLFxuICAgICAgICAgIGFzc2lnbmVlSW5mbzogdGhpcy5tYXBBc3NpZ25lZVVzZXJzKGFkLCBpdGVtLmFzc2lnbmVlcz8uYWN0aXZlVXNlcklkIHx8IFtdLCB1c2VyTWFwKSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlckluZm86IHRoaXMubWFwUmVzcG9uc2liaWxpdHlDZW50ZXJzKGFkLCBpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXSwgcmNNYXApLFxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGFsbEFzc2lnbmVlID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVBc3NpZ25lZShhc3NpZ25lZURldGFpbHMpLm1hcCgoYWQ6IGFueSkgPT4gYWQuYXNzaWduZWVJbmZvWzBdKTtcbiAgICAgICAgY29uc3QgYWxsUmMgPSB0aGlzLm1hcFJjcyhpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIGNvbnRyb2xJZDogaXRlbT8uY29udHJvbElkID8gJ1tDSUQtJyArIGl0ZW0/LmNvbnRyb2xJZCArICddICcgOiAnJyxcbiAgICAgICAgYXNzaWduZWVUeXBlOiBpdGVtPy5hc3NpZ25lZVR5cGUsXG4gICAgICAgIHJjVHlwZTogaXRlbT8ucmNUeXBlLFxuICAgICAgICBhc3NpZ25lZURldGFpbHMsXG4gICAgICAgICBhbGxBc3NpZ25lZSxcbiAgICAgICAgIGFsbFJjXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJlbW92ZUR1cGxpY2F0ZUFzc2lnbmVlKGFzc2lnbmVlRGV0YWlsczogYW55KSB7XG4gICAgICBjb25zdCB1bmlxdWVNYXAgPSBuZXcgTWFwKCk7XG4gICAgICBhc3NpZ25lZURldGFpbHMuZm9yRWFjaCgob2JqOiBhbnkpID0+IHtcbiAgICAgICAgdW5pcXVlTWFwLnNldChvYmouYXNzaWduZWUsIG9iaik7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHVuaXF1ZUFycmF5ID0gQXJyYXkuZnJvbSh1bmlxdWVNYXAudmFsdWVzKCkpO1xuICAgICAgICAgIHJldHVybiB1bmlxdWVBcnJheTtcbiAgICAgICAgfVxuXG4gICAgICBtYXBSY3MocmNzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycz8uZmlsdGVyKChyYzogYW55KSA9PiByY3M/LmluY2x1ZGVzKHJjPy5pZCkpO1xuICAgICAgfVxuICBcbiAgbWFwU2hvcnROYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5hbWVBcnJheSA9IG5hbWU/LnNwbGl0KCcgJyk7XG4gICAgaWYobmFtZUFycmF5Py5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbbmFtZUFycmF5Py5sZW5ndGggLSAxXT8uY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbMF0/LmNoYXJBdCgxKT8udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzcG9uc2liaWxpdHkoKSB7XG4gICAgaWYoIXRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LmFzc2lnbmVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9ICB7XG4gICAgICBlYWNoQXNzaWduZWU6IHtcbiAgICAgICAgYXNzaWduZWU6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMuYXNzaWduZWUsXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnJlc3BvbnNpYmlsaXR5Q2VudGVyLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5OiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnRpdGxlLFxuICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5pZCxcbiAgICAgICAgYWxsUkM6IFtdLFxuICAgICAgICBhbGxBc3NpZ25lZTogW10sXG4gICAgICAgIGFzc2lnbmVlRGV0YWlsczogW3tcbiAgICAgICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5yZXNwb25zaWJpbGl0eUNlbnRlcixcbiAgICAgICAgfV0sXG4gICAgICAgIGVhY2hBc3NpZ25lZToge30sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db21wbGV0aW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSBldmVudFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWhlYWQgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTYgdngtbGFiZWwtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiYmFjaygpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtYm9keVwiPlxuICAgIDwhLS0gPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwib3RoZXJzQ291bnQgPT09IDBcIj48L2FwcC1sb2FkZXItaW5saW5lPiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJyZXNwb25zaWJpbGl0eVNlYXJjaFRleHRcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2luYXRpb24gYXMgcGFnaW5hdGlvblwiPlxuICAgICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwicGFnaW5hdGlvbj8udG90YWxfcGFnZXMgPiAxXCIgW3N0YXJ0XT1cInBhZ2luYXRpb24/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbVwiXG4gICAgICAgIFtlbmRdPVwicGFnaW5hdGlvbj8ucmVzcG9uc2liaWxpdGllc190b1wiIFt0b3RhbF09XCJwYWdpbmF0aW9uPy50b3RhbF9yZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgICAgW3BhZ2VDb3VudF09XCJwYWdpbmF0aW9uPy50b3RhbF9wYWdlc1wiIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlXCJcbiAgICAgICAgKHNlbGVjdGVkUGFnZSk9XCJyZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cInJlc3BvbnNpYmlsaXR5TG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtbWlkIHZ4LW1iLTRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIlxuICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzID4gMVxuICAgICAgXCI+XG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXG4gICAgICAgIFwiIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gRGF0YSB0byBEaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgI1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eVwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUSUVTXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPCEtLSB3aGVuIGNsaWNrIG9uIHJhZGlvIHRoZW4gYWN0aXZlIGNsYXNzIHNob3VsZCBiZSB0cnVlIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcztcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5wYWdlICogcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0IC1cbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5saW1pdCArXG4gICAgICAgICAgICBpICtcbiAgICAgICAgICAgIDEpIGFzIHNyTm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiIFtjbGFzcy5yZXNwXT1cInJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA9PT0gMVwiIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkID09PSByZXNwb25zaWJpbGl0eT8uaWQgJiYgcmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgIFwiIFtjbGFzcy53aXRoLXN1Yi1yZXNwb25zaWJpbGl0eV09XCJvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eT8uaWQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHMgYXMgYXNzaWduZWVEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBzck5vICBcbiAgICAgICAgICAgICAgICAgICAgXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c3JOb319XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICpuZ0lmPVwiYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPT09IDFcIiBbbmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJvbkNvbXBsZXRpb25DaGFuZ2Uoe2VhY2hBc3NpZ25lZTogYXNzaWduZWVEZXRhaWxzWzBdLCByZXNwb25zaWJpbGl0eX0pXCI+PC9hcHAtY3MtcmFkaW8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eSB3aXRoLXJjXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1wci01ICB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1saXN0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItYXZhdGFyLXYyIFthdmF0YXJMaXN0XT1cInJlc3BvbnNpYmlsaXR5Py5hbGxBc3NpZ25lZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidTSU5HTEVfQVZBVEFSJ1wiPjwvbGliLWF2YXRhci12Mj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUtdGV4dCB2eC1tbC0xIHJlc3AtbmFtZVwiIFthcHBUb29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LmNvbnRyb2xJZCB9fSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5Py5hbGxSYyBhcyByY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWlubmVyIHZ4LWQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLXZhbHVlIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCB2eC1wci01XCIgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcmNbMF0/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nXG4gICAgICAgICAgICAgICAgICAgICAgXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyByY1swXT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiLS1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoIFxuICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJjPy5sZW5ndGggPiAxXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmNQb3B1cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyYW0tY291bnQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAre3sgcmM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3JjUG9wdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgb2YgcmM/LnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFthcHBUb29sdGlwXT1cImRhdGE/Lm5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3sgZGF0YT8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHkpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID4gMSAmJiAhKHJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZVR5cGUgPT09ICdhbnknICYmIFtudWxsLCAnYW55J10uaW5jbHVkZXMocmVzcG9uc2liaWxpdHk/LnJjVHlwZSkpOyBlbHNlIGNsb3NlSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNsb3NlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIFwiIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOWU3OzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nsb3NlSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4gJiN4ZTllODs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxsaWItc3ViLXJlc3BvbnNpYmlsaXR5ICpuZ0lmPVwib3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpXCJcbiAgICAgICAgICAgICAgICBbcmVzcG9uc2liaWxpdHldPVwicmVzcG9uc2liaWxpdHlcIiBbc3JOb109XCJzck5vXCIgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgKG9uQ29tcGxldGlvbkNoYW5nZSk9XCJvbkNvbXBsZXRpb25DaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXN1Yi1yZXNwb25zaWJpbGl0eT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtZmxvYXRpbmctYmFyIFtzZWxlY3RlZERhdGFdPVwiW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5XVwiIFtkaXNwbGF5RWxlbWVudEtleV09XCIndGl0bGUnXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiYmFjaygpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgkZXZlbnQpXCIgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkXCI+PC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|