@tsi-developpement/tsi-shared-ui 1.9.6 → 1.9.8

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.
@@ -15,4 +15,4 @@ export class ExecuteImportRequest {
15
15
  }
16
16
  export class ImportResult {
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWV4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi9tb2RlbHMvaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFHSSx3QkFBbUIsR0FBZSxFQUFFLENBQUM7UUFDckMsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFFbEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUF0QztRQVdFLHdCQUFtQixHQUF3QixFQUFFLENBQUE7SUFDL0MsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQU85QjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7Q0FHaEM7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQVV4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBleGVjdXRlSW1wb3J0UmVzdWx0e1xyXG4gICAgbnVtYmVyT2ZBZGRlZFJvd3MgPzogbnVtYmVyO1xyXG4gICAgbnVtYmVyT2ZVbnVzZWRSb3dzID86IG51bWJlcjtcclxuICAgIGluZGV4ZXNPZlVudXNlZFJvd3MgPzogbnVtYmVyW10gPSBbXTtcclxuICAgIGVycm9yc01lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgdG90YWxMaW5lc051bWJlciA/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RlbGVJbXBvcnRDcmVhdGVSZXF1ZXN0e1xyXG4gIHVpZCA/OiBzdHJpbmc7XHJcbiAgZm9ybSA/OiBzdHJpbmc7XHJcbiAgY2xhc3NlID86IHN0cmluZztcclxuICBwcmVtaWVyZUxpZ25lSW1wb3J0ID86IG51bWJlclxyXG4gIGRlcm5pZXJMaWduZUltcG9ydCA/OiBudW1iZXJcclxuICBhcnJldGVQcmVtaWVyRXJyZXVyID86IGJvb2xlYW5cclxuICBvcmRyZU91VGl0cmVDb2xvbm5lID86IHN0cmluZ1xyXG4gIGZpbGVUeXBlID86IHN0cmluZ1xyXG4gIG5vbSA/OiBzdHJpbmdcclxuICBjc3ZGaWxlU2VwYXJhdG9yID86IHN0cmluZ1xyXG4gIG1vZGVsZUltcG9ydERldGFpbHMgOiBNb2RlbGVJbXBvcnREZXRhaWxbXT1bXVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTW9kZWxlSW1wb3J0RGV0YWlse1xyXG4gIHVpZCA/OiBzdHJpbmc7XHJcbiAgY29sb25uZUNsYXNzZSA/OiBzdHJpbmc7XHJcbiAgbnVtZXJvID86IG51bWJlcjtcclxuICBub21Db2xvbm5lRmljaGllciA/OiBzdHJpbmc7XHJcbiAgbm9tQ29sb25uZUNsZWZFdHJhbmdlcmUgPzogc3RyaW5nXHJcbiAgbm9tQ2xhc3NlRGV0YWlsID86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVJbXBvcnRSZXF1ZXN0IHtcclxuICBtb2RlbGVJbXBvcnRVaWQgPzogc3RyaW5nXHJcbiAgZmlsZU5hbWUgPzogc3RyaW5nIFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW1wb3J0UmVzdWx0IHtcclxuICB1aWQgOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgbW9kZWxlSW1wb3J0TGliZWxsZSA6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gIHVzZXJOYW1lIDogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgZmlsZU5hbWUgOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICBzdGFydERhdGUgOiBEYXRlIHwgdW5kZWZpbmVkXHJcbiAgZW5kRGF0ZSA6IERhdGUgfCB1bmRlZmluZWRcclxuICBzdGF0dXMgOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICBwcm9ncmVzcyA6IG51bWJlciB8IHVuZGVmaW5lZFxyXG4gIHRvdGFsTGluZXNOdW1iZXIgOiBudW1iZXIgfCB1bmRlZmluZWRcclxufSJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWV4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi9tb2RlbHMvaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFJSSx3QkFBbUIsR0FBZSxFQUFFLENBQUM7UUFDckMsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFFbEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUF0QztRQVlFLHdCQUFtQixHQUF3QixFQUFFLENBQUE7SUFDL0MsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQVE5QjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7Q0FHaEM7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQVV4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBleGVjdXRlSW1wb3J0UmVzdWx0e1xyXG4gICAgbnVtYmVyT2ZBZGRlZFJvd3MgPzogbnVtYmVyO1xyXG4gICAgbnVtYmVyT2ZVcGRhdGVkUm93cyA/OiBudW1iZXI7XHJcbiAgICBudW1iZXJPZlVudXNlZFJvd3MgPzogbnVtYmVyO1xyXG4gICAgaW5kZXhlc09mVW51c2VkUm93cyA/OiBudW1iZXJbXSA9IFtdO1xyXG4gICAgZXJyb3JzTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICB0b3RhbExpbmVzTnVtYmVyID86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGVsZUltcG9ydENyZWF0ZVJlcXVlc3R7XHJcbiAgdWlkID86IHN0cmluZztcclxuICBmb3JtID86IHN0cmluZztcclxuICBjbGFzc2UgPzogc3RyaW5nO1xyXG4gIHByZW1pZXJlTGlnbmVJbXBvcnQgPzogbnVtYmVyXHJcbiAgZGVybmllckxpZ25lSW1wb3J0ID86IG51bWJlclxyXG4gIGFycmV0ZVByZW1pZXJFcnJldXIgPzogYm9vbGVhblxyXG4gIG9yZHJlT3VUaXRyZUNvbG9ubmUgPzogc3RyaW5nXHJcbiAgZmlsZVR5cGUgPzogc3RyaW5nXHJcbiAgbm9tID86IHN0cmluZ1xyXG4gIGNzdkZpbGVTZXBhcmF0b3IgPzogc3RyaW5nXHJcbiAgbW9kZU1pc2VBSm91ciA/OiBib29sZWFuXHJcbiAgbW9kZWxlSW1wb3J0RGV0YWlscyA6IE1vZGVsZUltcG9ydERldGFpbFtdPVtdXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RlbGVJbXBvcnREZXRhaWx7XHJcbiAgdWlkID86IHN0cmluZztcclxuICBjb2xvbm5lQ2xhc3NlID86IHN0cmluZztcclxuICBudW1lcm8gPzogbnVtYmVyO1xyXG4gIG5vbUNvbG9ubmVGaWNoaWVyID86IHN0cmluZztcclxuICBub21Db2xvbm5lQ2xlZkV0cmFuZ2VyZSA/OiBzdHJpbmdcclxuICBub21DbGFzc2VEZXRhaWwgPzogc3RyaW5nO1xyXG4gIGNsZWZNaXNlQUpvdXIgPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVJbXBvcnRSZXF1ZXN0IHtcclxuICBtb2RlbGVJbXBvcnRVaWQgPzogc3RyaW5nXHJcbiAgZmlsZU5hbWUgPzogc3RyaW5nIFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW1wb3J0UmVzdWx0IHtcclxuICB1aWQgOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgbW9kZWxlSW1wb3J0TGliZWxsZSA6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gIHVzZXJOYW1lIDogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgZmlsZU5hbWUgOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICBzdGFydERhdGUgOiBEYXRlIHwgdW5kZWZpbmVkXHJcbiAgZW5kRGF0ZSA6IERhdGUgfCB1bmRlZmluZWRcclxuICBzdGF0dXMgOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICBwcm9ncmVzcyA6IG51bWJlciB8IHVuZGVmaW5lZFxyXG4gIHRvdGFsTGluZXNOdW1iZXIgOiBudW1iZXIgfCB1bmRlZmluZWRcclxufSJdfQ==
@@ -29,10 +29,10 @@ export class AlertImportMessageComponent {
29
29
  }
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertImportMessageComponent, deps: [{ token: i1.DynamicDialogConfig }, { token: i2.ModeleImportService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AlertImportMessageComponent, selector: "app-alert-import-message", ngImport: i0, template: "<div>\r\n <h3 [innerHTML]=\"'shared_execute_import_result_title' | localize\" ></h3>\r\n\r\n <div>\r\n <h6>{{ 'shared_execute_import_result_total_number_of_rows' | localize }}: {{ executeImportResult?.totalLinesNumber }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_added_rows' | localize }}: {{ executeImportResult?.numberOfAddedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_unused_rows' | localize }}: {{ executeImportResult?.numberOfUnusedRows }}</h6>\r\n \r\n <div *ngIf=\"executeImportResult?.errorsMessages && executeImportResult?.errorsMessages!.length > 0\">\r\n <h5 [innerHTML]=\"'shared_execute_import_result_detailled_errors' | localize\"></h5>\r\n <ul *ngFor=\"let message of executeImportResult?.errorsMessages\">\r\n <li [innerHTML]=\"message\"></li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.LocalizePipe, name: "localize" }] }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AlertImportMessageComponent, selector: "app-alert-import-message", ngImport: i0, template: "<div>\r\n <h3 [innerHTML]=\"'shared_execute_import_result_title' | localize\" ></h3>\r\n\r\n <div>\r\n <h6>{{ 'shared_execute_import_result_total_number_of_rows' | localize }}: {{ executeImportResult?.totalLinesNumber }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_added_rows' | localize }}: {{ executeImportResult?.numberOfAddedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_updated_rows' | localize }}: {{ executeImportResult?.numberOfUpdatedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_unused_rows' | localize }}: {{ executeImportResult?.numberOfUnusedRows }}</h6>\r\n \r\n <div *ngIf=\"executeImportResult?.errorsMessages && executeImportResult?.errorsMessages!.length > 0\">\r\n <h5 [innerHTML]=\"'shared_execute_import_result_detailled_errors' | localize\"></h5>\r\n <ul *ngFor=\"let message of executeImportResult?.errorsMessages\">\r\n <li [innerHTML]=\"message\"></li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.LocalizePipe, name: "localize" }] }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertImportMessageComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'app-alert-import-message', template: "<div>\r\n <h3 [innerHTML]=\"'shared_execute_import_result_title' | localize\" ></h3>\r\n\r\n <div>\r\n <h6>{{ 'shared_execute_import_result_total_number_of_rows' | localize }}: {{ executeImportResult?.totalLinesNumber }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_added_rows' | localize }}: {{ executeImportResult?.numberOfAddedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_unused_rows' | localize }}: {{ executeImportResult?.numberOfUnusedRows }}</h6>\r\n \r\n <div *ngIf=\"executeImportResult?.errorsMessages && executeImportResult?.errorsMessages!.length > 0\">\r\n <h5 [innerHTML]=\"'shared_execute_import_result_detailled_errors' | localize\"></h5>\r\n <ul *ngFor=\"let message of executeImportResult?.errorsMessages\">\r\n <li [innerHTML]=\"message\"></li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>" }]
36
+ args: [{ selector: 'app-alert-import-message', template: "<div>\r\n <h3 [innerHTML]=\"'shared_execute_import_result_title' | localize\" ></h3>\r\n\r\n <div>\r\n <h6>{{ 'shared_execute_import_result_total_number_of_rows' | localize }}: {{ executeImportResult?.totalLinesNumber }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_added_rows' | localize }}: {{ executeImportResult?.numberOfAddedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_updated_rows' | localize }}: {{ executeImportResult?.numberOfUpdatedRows }}</h6>\r\n <h6>{{ 'shared_execute_import_result_number_of_unused_rows' | localize }}: {{ executeImportResult?.numberOfUnusedRows }}</h6>\r\n \r\n <div *ngIf=\"executeImportResult?.errorsMessages && executeImportResult?.errorsMessages!.length > 0\">\r\n <h5 [innerHTML]=\"'shared_execute_import_result_detailled_errors' | localize\"></h5>\r\n <ul *ngFor=\"let message of executeImportResult?.errorsMessages\">\r\n <li [innerHTML]=\"message\"></li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>" }]
37
37
  }], ctorParameters: () => [{ type: i1.DynamicDialogConfig }, { type: i2.ModeleImportService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtaW1wb3J0LW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2FsZXJ0LWltcG9ydC1tZXNzYWdlL2FsZXJ0LWltcG9ydC1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9hbGVydC1pbXBvcnQtbWVzc2FnZS9hbGVydC1pbXBvcnQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU90QyxNQUFNLE9BQU8sMkJBQTJCO0lBS3RDLFlBQ1UsTUFBNEIsRUFDNUIsb0JBQTBDO1FBRDFDLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFFbEQsOERBQThEO1FBQzlELElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUN2QixJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ1osT0FBTTtRQUNSLENBQUM7UUFDRCxJQUFHLENBQUM7WUFDRixJQUFJLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsT0FBTSxLQUFLLEVBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQTdCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixnRUNYeEMsdzZCQWVNOzs0RkRKTywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBleGVjdXRlSW1wb3J0UmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ltcG9ydC1leHBvcnQvaW1wb3J0LWV4cG9ydCc7XHJcbmltcG9ydCB7IE1vZGVsZUltcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9JbXBvcnQtRXhwb3J0L21vZGVsZS1pbXBvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hbGVydC1pbXBvcnQtbWVzc2FnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWltcG9ydC1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbGVydC1pbXBvcnQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydEltcG9ydE1lc3NhZ2VDb21wb25lbnQge1xyXG5cclxuICBleGVjdXRlSW1wb3J0UmVzdWx0ID86IGV4ZWN1dGVJbXBvcnRSZXN1bHRcclxuICB1aWQgOiBzdHJpbmcgfCB1bmRlZmluZWRcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbmZpZyA6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIF9tb2RlbGVJbXBvcnRTZXJ2aWNlIDogTW9kZWxlSW1wb3J0U2VydmljZVxyXG4gICl7XHJcbiAgICAvLyB0aGlzLmV4ZWN1dGVJbXBvcnRSZXN1bHQgPSBjb25maWcuZGF0YT8uZXhlY3V0ZUltcG9ydFJlc3VsdFxyXG4gICAgdGhpcy51aWQgPSBjb25maWcuZGF0YT8uaWRcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudWlkKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKXtcclxuICAgIGF3YWl0IHRoaXMuZ2V0SW1wb3J0UmVzdWx0SW5mbygpXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRJbXBvcnRSZXN1bHRJbmZvKCl7XHJcbiAgICBpZighdGhpcy51aWQpe1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRyeXtcclxuICAgICAgbGV0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9tb2RlbGVJbXBvcnRTZXJ2aWNlLmdldEltcG9ydFJlc3VsdEJ5SWQodGhpcy51aWQpKVxyXG4gICAgICB0aGlzLmV4ZWN1dGVJbXBvcnRSZXN1bHQgPSBkYXRhXHJcbiAgICB9XHJcbiAgICBjYXRjaChlcnJvcil7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvciA6XCIsIGVycm9yKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdj5cclxuICAgIDxoMyBbaW5uZXJIVE1MXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfcmVzdWx0X3RpdGxlJyB8IGxvY2FsaXplXCIgPjwvaDM+XHJcblxyXG4gICAgPGRpdj5cclxuICAgICAgICA8aDY+e3sgJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9yZXN1bHRfdG90YWxfbnVtYmVyX29mX3Jvd3MnIHwgbG9jYWxpemUgfX06IHt7IGV4ZWN1dGVJbXBvcnRSZXN1bHQ/LnRvdGFsTGluZXNOdW1iZXIgfX08L2g2PlxyXG4gICAgICAgIDxoNj57eyAnc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X3Jlc3VsdF9udW1iZXJfb2ZfYWRkZWRfcm93cycgfCBsb2NhbGl6ZSB9fToge3sgZXhlY3V0ZUltcG9ydFJlc3VsdD8ubnVtYmVyT2ZBZGRlZFJvd3MgfX08L2g2PlxyXG4gICAgICAgIDxoNj57eyAnc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X3Jlc3VsdF9udW1iZXJfb2ZfdW51c2VkX3Jvd3MnIHwgbG9jYWxpemUgfX06IHt7IGV4ZWN1dGVJbXBvcnRSZXN1bHQ/Lm51bWJlck9mVW51c2VkUm93cyB9fTwvaDY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImV4ZWN1dGVJbXBvcnRSZXN1bHQ/LmVycm9yc01lc3NhZ2VzICYmIGV4ZWN1dGVJbXBvcnRSZXN1bHQ/LmVycm9yc01lc3NhZ2VzIS5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxoNSBbaW5uZXJIVE1MXT1cIidzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfcmVzdWx0X2RldGFpbGxlZF9lcnJvcnMnIHwgbG9jYWxpemVcIj48L2g1PlxyXG4gICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgZXhlY3V0ZUltcG9ydFJlc3VsdD8uZXJyb3JzTWVzc2FnZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VcIj48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtaW1wb3J0LW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2FsZXJ0LWltcG9ydC1tZXNzYWdlL2FsZXJ0LWltcG9ydC1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9hbGVydC1pbXBvcnQtbWVzc2FnZS9hbGVydC1pbXBvcnQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU90QyxNQUFNLE9BQU8sMkJBQTJCO0lBS3RDLFlBQ1UsTUFBNEIsRUFDNUIsb0JBQTBDO1FBRDFDLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFFbEQsOERBQThEO1FBQzlELElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUN2QixJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ1osT0FBTTtRQUNSLENBQUM7UUFDRCxJQUFHLENBQUM7WUFDRixJQUFJLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsT0FBTSxLQUFLLEVBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQTdCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixnRUNYeEMsbWpDQWdCTTs7NEZETE8sMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgZXhlY3V0ZUltcG9ydFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9pbXBvcnQtZXhwb3J0L2ltcG9ydC1leHBvcnQnO1xyXG5pbXBvcnQgeyBNb2RlbGVJbXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvSW1wb3J0LUV4cG9ydC9tb2RlbGUtaW1wb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWxlcnQtaW1wb3J0LW1lc3NhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1pbXBvcnQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQtaW1wb3J0LW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxlcnRJbXBvcnRNZXNzYWdlQ29tcG9uZW50IHtcclxuXHJcbiAgZXhlY3V0ZUltcG9ydFJlc3VsdCA/OiBleGVjdXRlSW1wb3J0UmVzdWx0XHJcbiAgdWlkIDogc3RyaW5nIHwgdW5kZWZpbmVkXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWcgOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBfbW9kZWxlSW1wb3J0U2VydmljZSA6IE1vZGVsZUltcG9ydFNlcnZpY2VcclxuICApe1xyXG4gICAgLy8gdGhpcy5leGVjdXRlSW1wb3J0UmVzdWx0ID0gY29uZmlnLmRhdGE/LmV4ZWN1dGVJbXBvcnRSZXN1bHRcclxuICAgIHRoaXMudWlkID0gY29uZmlnLmRhdGE/LmlkXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnVpZClcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCl7XHJcbiAgICBhd2FpdCB0aGlzLmdldEltcG9ydFJlc3VsdEluZm8oKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0SW1wb3J0UmVzdWx0SW5mbygpe1xyXG4gICAgaWYoIXRoaXMudWlkKXtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0cnl7XHJcbiAgICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fbW9kZWxlSW1wb3J0U2VydmljZS5nZXRJbXBvcnRSZXN1bHRCeUlkKHRoaXMudWlkKSlcclxuICAgICAgdGhpcy5leGVjdXRlSW1wb3J0UmVzdWx0ID0gZGF0YVxyXG4gICAgfVxyXG4gICAgY2F0Y2goZXJyb3Ipe1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3IgOlwiLCBlcnJvcilcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8aDMgW2lubmVySFRNTF09XCInc2hhcmVkX2V4ZWN1dGVfaW1wb3J0X3Jlc3VsdF90aXRsZScgfCBsb2NhbGl6ZVwiID48L2gzPlxyXG5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGg2Pnt7ICdzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfcmVzdWx0X3RvdGFsX251bWJlcl9vZl9yb3dzJyB8IGxvY2FsaXplIH19OiB7eyBleGVjdXRlSW1wb3J0UmVzdWx0Py50b3RhbExpbmVzTnVtYmVyIH19PC9oNj5cclxuICAgICAgICA8aDY+e3sgJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9yZXN1bHRfbnVtYmVyX29mX2FkZGVkX3Jvd3MnIHwgbG9jYWxpemUgfX06IHt7IGV4ZWN1dGVJbXBvcnRSZXN1bHQ/Lm51bWJlck9mQWRkZWRSb3dzIH19PC9oNj5cclxuICAgICAgICA8aDY+e3sgJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9yZXN1bHRfbnVtYmVyX29mX3VwZGF0ZWRfcm93cycgfCBsb2NhbGl6ZSB9fToge3sgZXhlY3V0ZUltcG9ydFJlc3VsdD8ubnVtYmVyT2ZVcGRhdGVkUm93cyB9fTwvaDY+XHJcbiAgICAgICAgPGg2Pnt7ICdzaGFyZWRfZXhlY3V0ZV9pbXBvcnRfcmVzdWx0X251bWJlcl9vZl91bnVzZWRfcm93cycgfCBsb2NhbGl6ZSB9fToge3sgZXhlY3V0ZUltcG9ydFJlc3VsdD8ubnVtYmVyT2ZVbnVzZWRSb3dzIH19PC9oNj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhlY3V0ZUltcG9ydFJlc3VsdD8uZXJyb3JzTWVzc2FnZXMgJiYgZXhlY3V0ZUltcG9ydFJlc3VsdD8uZXJyb3JzTWVzc2FnZXMhLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgPGg1IFtpbm5lckhUTUxdPVwiJ3NoYXJlZF9leGVjdXRlX2ltcG9ydF9yZXN1bHRfZGV0YWlsbGVkX2Vycm9ycycgfCBsb2NhbGl6ZVwiPjwvaDU+XHJcbiAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBleGVjdXRlSW1wb3J0UmVzdWx0Py5lcnJvcnNNZXNzYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpIFtpbm5lckhUTUxdPVwibWVzc2FnZVwiPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -138,6 +138,13 @@ export class CreateOrEditModeleImportComponent extends TsiFormComponentBaseCompo
138
138
  labelField: "value",
139
139
  isFiltered: false,
140
140
  },
141
+ {
142
+ field: "clefMiseAJour",
143
+ header: "Clé de mise à jour",
144
+ type: InputTypes.CHECKBOX,
145
+ watchForChanges: true,
146
+ isBinary: true
147
+ },
141
148
  ];
142
149
  }
143
150
  buildGetColummnForForeignKeyClass(currentRowItem) {
@@ -194,10 +201,10 @@ export class CreateOrEditModeleImportComponent extends TsiFormComponentBaseCompo
194
201
  }
195
202
  }
196
203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateOrEditModeleImportComponent, deps: [{ token: i1.ModeleImportService }, { token: i1.TsiNotificationService }, { token: i2.DynamicDialogConfig }, { token: i2.DynamicDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateOrEditModeleImportComponent, selector: "app-create-or-edit-modele-import", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" [isLoading]=\"isloading\" autocomplete=\"off\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'Mod\u00E8le import'\"\r\n (onCloseClick)=\"hide()\"></Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"grid\">\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Modele'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.nom\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'nomModele'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Form'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.form\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomForm'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Classe'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.classe\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomClasse'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Premiere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.premiereLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'premiereLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Derniere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.dernierLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'dernierLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Arrete lors de premier erreur '\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.arretePremierErreur\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'arretePremierErreur'\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Ordre Ou Titre Colonne'\"></Tsi-Label>\r\n <Tsi-Search-Combo (bindChange)=\"typeImportChange($event)\" class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getTypeNatureDocumentEnum()\r\n \" [(bind)]=\"modeleImport.ordreOuTitreColonne\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Type de fichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getImportFileTypeEnum()\r\n \" [(bind)]=\"modeleImport.fileType\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-3\"\r\n [labelValue]=\"'S\u00E9parateur de fichier CSV'\"></Tsi-Label>\r\n <Tsi-Search-Combo *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-9\"\r\n [listSourceUrl]=\"\r\n modeleImportEndPoints.getCsvFileSeparatorEnum()\r\n \" [(bind)]=\"modeleImport.csvFileSeparator\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showModeleImportDetails\">\r\n <Tsi-Generic-Editable-Grid [gridData]=\"modeleImport.modeleImportDetails\"\r\n [saveEvent]=\"eventsSubjectModeleImportDetail.asObservable()\"\r\n (rowDeletedEventEmitter)=\"onSaveModeleImportDetails($event)\" [columns]=\"modeleImportDetailColumns\"\r\n [parent]=\"this\" [showSaveButton]=\"false\" [key]=\"'numLigne'\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n\r\n\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"\r\n (onSaveClick)=\"save()\" [showSaveAndCloseButton]=\"mode == modeRef.delete\"></Tsi-Modal-Footer>\r\n\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "saveEvent", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "sizingMode", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: i5.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i6.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i10.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i11.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i12.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i13.ModalLabelPipe, name: "modalLabel" }] }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateOrEditModeleImportComponent, selector: "app-create-or-edit-modele-import", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" [isLoading]=\"isloading\" autocomplete=\"off\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'Mod\u00E8le import'\"\r\n (onCloseClick)=\"hide()\"></Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"grid\">\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Modele'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.nom\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'nomModele'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Form'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.form\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomForm'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Classe'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.classe\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomClasse'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Premiere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.premiereLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'premiereLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Derniere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.dernierLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'dernierLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Arrete lors de premier erreur '\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.arretePremierErreur\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'arretePremierErreur'\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Mode mise \u00E0 jour'\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.modeMiseAJour\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'modeMiseAJour'\" [isBinary]=\"true\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Ordre Ou Titre Colonne'\"></Tsi-Label>\r\n <Tsi-Search-Combo (bindChange)=\"typeImportChange($event)\" class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getTypeNatureDocumentEnum()\r\n \" [(bind)]=\"modeleImport.ordreOuTitreColonne\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Type de fichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getImportFileTypeEnum()\r\n \" [(bind)]=\"modeleImport.fileType\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-3\"\r\n [labelValue]=\"'S\u00E9parateur de fichier CSV'\"></Tsi-Label>\r\n <Tsi-Search-Combo *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-9\"\r\n [listSourceUrl]=\"\r\n modeleImportEndPoints.getCsvFileSeparatorEnum()\r\n \" [(bind)]=\"modeleImport.csvFileSeparator\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showModeleImportDetails\">\r\n <Tsi-Generic-Editable-Grid [gridData]=\"modeleImport.modeleImportDetails\"\r\n [saveEvent]=\"eventsSubjectModeleImportDetail.asObservable()\"\r\n (rowDeletedEventEmitter)=\"onSaveModeleImportDetails($event)\" [columns]=\"modeleImportDetailColumns\"\r\n [parent]=\"this\" [showSaveButton]=\"false\" [key]=\"'numLigne'\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n\r\n\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"\r\n (onSaveClick)=\"save()\" [showSaveAndCloseButton]=\"mode == modeRef.delete\"></Tsi-Modal-Footer>\r\n\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "saveEvent", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "sizingMode", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: i5.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i6.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i10.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i11.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i12.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i13.ModalLabelPipe, name: "modalLabel" }] }); }
198
205
  }
199
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateOrEditModeleImportComponent, decorators: [{
200
207
  type: Component,
201
- args: [{ selector: 'app-create-or-edit-modele-import', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" [isLoading]=\"isloading\" autocomplete=\"off\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'Mod\u00E8le import'\"\r\n (onCloseClick)=\"hide()\"></Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"grid\">\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Modele'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.nom\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'nomModele'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Form'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.form\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomForm'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Classe'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.classe\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomClasse'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Premiere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.premiereLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'premiereLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Derniere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.dernierLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'dernierLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Arrete lors de premier erreur '\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.arretePremierErreur\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'arretePremierErreur'\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Ordre Ou Titre Colonne'\"></Tsi-Label>\r\n <Tsi-Search-Combo (bindChange)=\"typeImportChange($event)\" class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getTypeNatureDocumentEnum()\r\n \" [(bind)]=\"modeleImport.ordreOuTitreColonne\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Type de fichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getImportFileTypeEnum()\r\n \" [(bind)]=\"modeleImport.fileType\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-3\"\r\n [labelValue]=\"'S\u00E9parateur de fichier CSV'\"></Tsi-Label>\r\n <Tsi-Search-Combo *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-9\"\r\n [listSourceUrl]=\"\r\n modeleImportEndPoints.getCsvFileSeparatorEnum()\r\n \" [(bind)]=\"modeleImport.csvFileSeparator\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showModeleImportDetails\">\r\n <Tsi-Generic-Editable-Grid [gridData]=\"modeleImport.modeleImportDetails\"\r\n [saveEvent]=\"eventsSubjectModeleImportDetail.asObservable()\"\r\n (rowDeletedEventEmitter)=\"onSaveModeleImportDetails($event)\" [columns]=\"modeleImportDetailColumns\"\r\n [parent]=\"this\" [showSaveButton]=\"false\" [key]=\"'numLigne'\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n\r\n\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"\r\n (onSaveClick)=\"save()\" [showSaveAndCloseButton]=\"mode == modeRef.delete\"></Tsi-Modal-Footer>\r\n\r\n</tsi-form>" }]
208
+ args: [{ selector: 'app-create-or-edit-modele-import', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" [isLoading]=\"isloading\" autocomplete=\"off\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'Mod\u00E8le import'\"\r\n (onCloseClick)=\"hide()\"></Tsi-Modal-Header>\r\n\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-8\">\r\n <div class=\"grid\">\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Modele'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.nom\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'nomModele'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Form'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.form\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomForm'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Nom Classe'\"></Tsi-Label>\r\n <Tsi-Text-Box [(inputField)]=\"modeleImport.classe\" [disabled]=\"true\" class=\"col-9\"\r\n [inputName]=\"'nomClasse'\"></Tsi-Text-Box>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Premiere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.premiereLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'premiereLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Derniere Ligne Import'\"></Tsi-Label>\r\n <Tsi-Integer [(inputField)]=\"modeleImport.dernierLigneImport\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'dernierLigneImport'\"></Tsi-Integer>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Arrete lors de premier erreur '\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.arretePremierErreur\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'arretePremierErreur'\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Mode mise \u00E0 jour'\"></Tsi-Label>\r\n <Tsi-CheckBox [(inputField)]=\"modeleImport.modeMiseAJour\" [disabled]=\"false\" class=\"col-9\"\r\n [inputName]=\"'modeMiseAJour'\" [isBinary]=\"true\"></Tsi-CheckBox>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Ordre Ou Titre Colonne'\"></Tsi-Label>\r\n <Tsi-Search-Combo (bindChange)=\"typeImportChange($event)\" class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getTypeNatureDocumentEnum()\r\n \" [(bind)]=\"modeleImport.ordreOuTitreColonne\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'Type de fichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-9\" [listSourceUrl]=\"\r\n modeleImportEndPoints.getImportFileTypeEnum()\r\n \" [(bind)]=\"modeleImport.fileType\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Label *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-3\"\r\n [labelValue]=\"'S\u00E9parateur de fichier CSV'\"></Tsi-Label>\r\n <Tsi-Search-Combo *ngIf=\"modeleImport.fileType == fileTypeImportEnumRef.CSV\" class=\"col-9\"\r\n [listSourceUrl]=\"\r\n modeleImportEndPoints.getCsvFileSeparatorEnum()\r\n \" [(bind)]=\"modeleImport.csvFileSeparator\" id-field=\"key\" label-field=\"value\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showModeleImportDetails\">\r\n <Tsi-Generic-Editable-Grid [gridData]=\"modeleImport.modeleImportDetails\"\r\n [saveEvent]=\"eventsSubjectModeleImportDetail.asObservable()\"\r\n (rowDeletedEventEmitter)=\"onSaveModeleImportDetails($event)\" [columns]=\"modeleImportDetailColumns\"\r\n [parent]=\"this\" [showSaveButton]=\"false\" [key]=\"'numLigne'\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n\r\n\r\n </fieldset>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\" (onCancelClick)=\"hide()\"\r\n (onSaveClick)=\"save()\" [showSaveAndCloseButton]=\"mode == modeRef.delete\"></Tsi-Modal-Footer>\r\n\r\n</tsi-form>" }]
202
209
  }], ctorParameters: () => [{ type: i1.ModeleImportService }, { type: i1.TsiNotificationService }, { type: i2.DynamicDialogConfig }, { type: i2.DynamicDialogRef }] });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydC9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0L2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRSxPQUFPLEVBQUUseUJBQXlCLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw2QkFBNkI7SUFjbEYsWUFBb0Isb0JBQXlDLEVBQ25ELG9CQUE0QyxFQUNwQyxNQUEyQixFQUFrQixH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QUcsS0FBSyxDQUFDO2dCQUN6QixDQUFDO2FBQ0YsQ0FDRixDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBM0xVLGlDQUFpQzttR0FBakMsaUNBQWlDLDJEQUZqQyxDQUFDLEdBQUcsWUFBWSxDQUFDLGlEQ2pCOUIsZ21JQTJFVzs7NEZEeERFLGlDQUFpQztrQkFON0MsU0FBUzsrQkFDRSxrQ0FBa0MsYUFHakMsQ0FBQyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi90c2ktYmFzZS9jb21wb25lbnRzL3RzaS1mb3JtLWJhc2UvdHNpLWZvcm0tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25LZXlzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2xvY2FsaXphdGlvbi1rZXknO1xyXG5pbXBvcnQgeyBNb2RlcywgVHlwZUltcG9ydEVudW0sIElucHV0VHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTW9kZWxlSW1wb3J0Q3JlYXRlUmVxdWVzdCwgTW9kZWxlSW1wb3J0RGV0YWlsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTW9kZWxlSW1wb3J0U2VydmljZSwgVHNpTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgSW1wb3J0RXhwb3J0RW5kUG9pbnRzIH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cy9pbXBvcnQtZXhwb3J0LWVuZHBvaW50JztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgRmlsZVR5cGVJbXBvcnRFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsZS10eXBlLWltcG9ydC1lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbLi4uYXBwUHJvdmlkZXJzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0TW9kZWxlSW1wb3J0Q29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBtb2RlbGVJbXBvcnREZXRhaWxDb2x1bW5zOiBBcnJheTxHcmlkQ29sdW1uPiA9IFtdO1xyXG4gIG1vZGVsZUltcG9ydDogTW9kZWxlSW1wb3J0Q3JlYXRlUmVxdWVzdCA9IG5ldyBNb2RlbGVJbXBvcnRDcmVhdGVSZXF1ZXN0KClcclxuICBnZXRDb2xvbm5lQnlDbGFzc05hbWVFbmRQb2ludDogc3RyaW5nID0gXCJcIlxyXG4gIGdldENsYXNzQ2hpbGRzQnlDbGFzc05hbWVFbmRQb2ludDogc3RyaW5nID0gXCJcIlxyXG4gIG1vZGVsZUltcG9ydEVuZFBvaW50cyA9IEltcG9ydEV4cG9ydEVuZFBvaW50c1xyXG4gIF9idXNpbm5lc3NDbGFzc05hbWU6IHN0cmluZyA9IFwiXCJcclxuICBldmVudHNTdWJqZWN0TW9kZWxlSW1wb3J0RGV0YWlsOiBTdWJqZWN0PHZvaWQ+O1xyXG4gIG9wZW5lZE1vZGU6IGFueVxyXG4gIHNob3dNb2RlbGVJbXBvcnREZXRhaWxzOiBib29sZWFuID0gZmFsc2VcclxuICBmaWxlVHlwZUltcG9ydEVudW1SZWYgPSBGaWxlVHlwZUltcG9ydEVudW1cclxuICBtb2RlUmVmID0gTW9kZXM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX21vZGVsZUltcG9ydFNlcnZpY2U6IE1vZGVsZUltcG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZywgcHVibGljIG92ZXJyaWRlIHJlZj86IER5bmFtaWNEaWFsb2dSZWYsKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgICB0aGlzLmV2ZW50c1N1YmplY3RNb2RlbGVJbXBvcnREZXRhaWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgdGhpcy5fYnVzaW5uZXNzQ2xhc3NOYW1lID0gY29uZmlnPy5kYXRhPy5lbnRpdHlCdXNpbmVzc0NsYXNzXHJcbiAgICB0aGlzLmdldENsYXNzQ2hpbGRzQnlDbGFzc05hbWVFbmRQb2ludCA9IEltcG9ydEV4cG9ydEVuZFBvaW50cy5nZXRDbGFzc0NoaWxkc0FzS2V5VmFsdWVQYWlyKHRoaXMuX2J1c2lubmVzc0NsYXNzTmFtZSlcclxuICAgIHRoaXMuaW5pdE1vZGVsZUltcG9ydERldGFpbENvbHVtbnMoKVxyXG4gICAgdGhpcy5vcGVuZWRNb2RlID0gdGhpcy5jb25maWcuZGF0YT8ubW9kZSBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU1vZGVsZUltcG9ydEZyb21HcmlkKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdWJqZWN0TW9kZWxlSW1wb3J0RGV0YWlsLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG9uU2F2ZU1vZGVsZUltcG9ydERldGFpbHMoZ3JpZERhdGE6IEFycmF5PE1vZGVsZUltcG9ydERldGFpbD4pIHtcclxuICAgIHRoaXMubW9kZWxlSW1wb3J0Lm1vZGVsZUltcG9ydERldGFpbHMgPSBncmlkRGF0YVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpXHJcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnQuY2xhc3NlID0gdGhpcy5jb25maWc/LmRhdGE/LmVudGl0eUJ1c2luZXNzQ2xhc3NcclxuICAgICAgdGhpcy5tb2RlbGVJbXBvcnQuZm9ybSA9IHRoaXMuZm9ybU5hbWVcclxuXHJcbiAgICAgIGlmICh0aGlzLm9wZW5lZE1vZGUgPT0gTW9kZXMuZWRpdCAmJiB0aGlzLmNvbmZpZy5kYXRhPy5pZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9tb2RlbGVJbXBvcnRTZXJ2aWNlLmdldEJ5SWQodGhpcy5jb25maWcuZGF0YT8uaWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZGVsZUltcG9ydCA9IGRhdGFcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlc1dpdGhQYXJlbnRDb2x1bU5hbWUoKVxyXG4gICAgICAgICAgICAgIHRoaXMudHlwZUltcG9ydENoYW5nZSh0aGlzLm1vZGVsZUltcG9ydC5vcmRyZU91VGl0cmVDb2xvbm5lKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZXNXaXRoUGFyZW50Q29sdW1OYW1lKCkge1xyXG4gICAgbGV0IGZpbHRyZWREYXRhID0gdGhpcy5tb2RlbGVJbXBvcnQubW9kZWxlSW1wb3J0RGV0YWlsc1xyXG4gICAgICAuZmlsdGVyKHggPT4geC5ub21DbGFzc2VEZXRhaWwgPT0gdW5kZWZpbmVkIHx8IHgubm9tQ2xhc3NlRGV0YWlsID09ICcnKVxyXG4gICAgZmlsdHJlZERhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaXRlbS5ub21DbGFzc2VEZXRhaWwgPSB0aGlzLl9idXNpbm5lc3NDbGFzc05hbWVcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB0eXBlSW1wb3J0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuaW5pdE1vZGVsZUltcG9ydERldGFpbENvbHVtbnMoKVxyXG4gICAgaWYgKGV2ZW50ID09IFR5cGVJbXBvcnRFbnVtLlRpdHJlQ29sb25uZSkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm1vZGVsZUltcG9ydERldGFpbENvbHVtbnMuZmluZEluZGV4KHggPT4geC5maWVsZCA9PSBcIm51bWVyb1wiKVxyXG4gICAgICBpZiAoaW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLm1vZGVsZUltcG9ydERldGFpbENvbHVtbnMuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09IFR5cGVJbXBvcnRFbnVtLk9yZHJlQ29sb25uZSkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm1vZGVsZUltcG9ydERldGFpbENvbHVtbnMuZmluZEluZGV4KHggPT4geC5maWVsZCA9PSBcIm5vbUNvbG9ubmVGaWNoaWVyXCIpXHJcbiAgICAgIGlmIChpbmRleCAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucy5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChldmVudCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zaG93TW9kZWxlSW1wb3J0RGV0YWlscyA9IHRydWVcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd01vZGVsZUltcG9ydERldGFpbHMgPSBmYWxzZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0TW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucygpIHtcclxuICAgIHRoaXMubW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiBcIm5vbUNsYXNzZURldGFpbFwiLFxyXG4gICAgICAgIGhlYWRlcjogXCJOb20gQ2xhc3NlIERldGFpbFwiLFxyXG4gICAgICAgIHR5cGU6IElucHV0VHlwZXMuU0VBUkNIX0NPTUJPLFxyXG4gICAgICAgIGxpc3RTb3VyY2VVcmw6IHRoaXMuZ2V0Q2xhc3NDaGlsZHNCeUNsYXNzTmFtZUVuZFBvaW50LFxyXG4gICAgICAgIGlkRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICBsYWJlbEZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgaXNGaWx0ZXJlZDogZmFsc2UsXHJcbiAgICAgICAgd2F0Y2hGb3JDaGFuZ2VzOiB0cnVlLFxyXG4gICAgICAgIHdpZHRoOiAnMjB2dydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiBcImNvbG9ubmVDbGFzc2VcIixcclxuICAgICAgICBoZWFkZXI6IFwiQ29sb25uZSBDbGFzc2VcIixcclxuICAgICAgICB0eXBlOiBJbnB1dFR5cGVzLlNFQVJDSF9DT01CTyxcclxuICAgICAgICBsaXN0U291cmNlVXJsOiB0aGlzLmJ1aWxkR2V0Q2hpbGRDbGFzc0NvbHVtbnMsXHJcbiAgICAgICAgaWRGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgIGxhYmVsRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICBpc0ZpbHRlcmVkOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiBcIm51bWVyb1wiLFxyXG4gICAgICAgIGhlYWRlcjogXCJPcmRyZVwiLFxyXG4gICAgICAgIHR5cGU6IElucHV0VHlwZXMuSU5URUdFUixcclxuICAgICAgICB3YXRjaEZvckNoYW5nZXM6IHRydWVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiBcIm5vbUNvbG9ubmVGaWNoaWVyXCIsXHJcbiAgICAgICAgaGVhZGVyOiBcIk5vbSBDb2xvbm5lIEZpY2hpZXJcIixcclxuICAgICAgICB0eXBlOiBJbnB1dFR5cGVzLlRFWFRfQk9YLFxyXG4gICAgICAgIHdhdGNoRm9yQ2hhbmdlczogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGQ6IFwibm9tQ29sb25uZUNsZWZFdHJhbmdlcmVcIixcclxuICAgICAgICBoZWFkZXI6IFwiTm9tIENvbG9ubmUgQ2xlIEV0cmFuZ8OocmVcIixcclxuICAgICAgICB3YXRjaEZvckNoYW5nZXM6IHRydWUsXHJcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlcy5TRUFSQ0hfQ09NQk8sXHJcbiAgICAgICAgbGlzdFNvdXJjZVVybDogdGhpcy5idWlsZEdldENvbHVtbW5Gb3JGb3JlaWduS2V5Q2xhc3MsXHJcbiAgICAgICAgaWRGaWVsZDogXCJrZXlcIixcclxuICAgICAgICBsYWJlbEZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgaXNGaWx0ZXJlZDogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBidWlsZEdldENvbHVtbW5Gb3JGb3JlaWduS2V5Q2xhc3MoY3VycmVudFJvd0l0ZW06IE1vZGVsZUltcG9ydERldGFpbCkge1xyXG4gICAgbGV0IGNvbHVtbk5hbWUgPSBjdXJyZW50Um93SXRlbT8uY29sb25uZUNsYXNzZSA/PyBcIlwiXHJcbiAgICBsZXQgcGFyZW50RW50aXR5TmFtZSA9IGN1cnJlbnRSb3dJdGVtPy5ub21DbGFzc2VEZXRhaWwgPz8gXCJcIlxyXG4gICAgcmV0dXJuIEltcG9ydEV4cG9ydEVuZFBvaW50cy5nZXRDb2xvbm5lc0J5Q2xhc3NOYW1lQXNLZXlWYWx1ZVBhaXIocGFyZW50RW50aXR5TmFtZSwgY29sdW1uTmFtZSlcclxuICB9XHJcblxyXG4gIGJ1aWxkR2V0Q2hpbGRDbGFzc0NvbHVtbnMoY3VycmVudFJvd0l0ZW06IE1vZGVsZUltcG9ydERldGFpbCkge1xyXG4gICAgbGV0IHBhcmVudEVudGl0eU5hbWUgPSBjdXJyZW50Um93SXRlbT8ubm9tQ2xhc3NlRGV0YWlsID8/IFwiXCJcclxuICAgIC8vIGlmIChwYXJlbnRFbnRpdHlOYW1lPy5lbmRzV2l0aCgncycpKSB7XHJcbiAgICAvLyAgIHBhcmVudEVudGl0eU5hbWUgPSBwYXJlbnRFbnRpdHlOYW1lLnNsaWNlKDAsIC0xKTtcclxuICAgIC8vIH1cclxuICAgIHJldHVybiBJbXBvcnRFeHBvcnRFbmRQb2ludHMuZ2V0Q29sb25uZXNCeUNsYXNzTmFtZUFzS2V5VmFsdWVQYWlyKHBhcmVudEVudGl0eU5hbWUsIFwiXCIpXHJcbiAgfVxyXG5cclxuICBidWlsZEdldENoaWxkQ2hpbGRDbGFzcyhjdXJyZW50Um93SXRlbTogTW9kZWxlSW1wb3J0RGV0YWlsKSB7XHJcbiAgICBsZXQgY2xhc3NOYW1lID0gY3VycmVudFJvd0l0ZW0/Lm5vbUNsYXNzZURldGFpbFxyXG4gICAgaWYgKGNsYXNzTmFtZT8uZW5kc1dpdGgoJ3MnKSkge1xyXG4gICAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUuc2xpY2UoMCwgLTEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEltcG9ydEV4cG9ydEVuZFBvaW50cy5nZXRDbGFzc0NoaWxkc0FzS2V5VmFsdWVQYWlyKGNsYXNzTmFtZSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVZhbHVlRnJvbVBhcmVudE1vZGVsKCkge1xyXG4gICAgbGV0IGZpbHRyZWREYXRhID0gdGhpcy5tb2RlbGVJbXBvcnQubW9kZWxlSW1wb3J0RGV0YWlsc1xyXG4gICAgICAuZmlsdGVyKHggPT4geC5ub21DbGFzc2VEZXRhaWwgPT0gdGhpcy5fYnVzaW5lc3NDbGFzcylcclxuICAgIGZpbHRyZWREYXRhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGl0ZW0ubm9tQ2xhc3NlRGV0YWlsID0gdW5kZWZpbmVkXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnNhdmUoKVxyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlXHJcbiAgICB0aGlzLmlzbG9hZGluZyA9IHRydWVcclxuICAgIHRoaXMuX3VwZGF0ZU1vZGVsZUltcG9ydEZyb21HcmlkKClcclxuICAgIHRoaXMuZGVsZXRlVmFsdWVGcm9tUGFyZW50TW9kZWwoKVxyXG4gICAgaWYgKHRoaXMub3BlbmVkTW9kZSA9PSBNb2Rlcy5jcmVhdGUpIHtcclxuICAgICAgdGhpcy5fbW9kZWxlSW1wb3J0U2VydmljZS5jcmVhdGUodGhpcy5tb2RlbGVJbXBvcnQpLnN1YnNjcmliZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2Vzcyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy5zYXZlZFN1Y2Nlc3NmdWxseSkpO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMub3BlbmVkTW9kZSA9PSBNb2Rlcy5lZGl0ICYmIHRoaXMubW9kZWxlSW1wb3J0LnVpZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5fbW9kZWxlSW1wb3J0U2VydmljZS51cGRhdGUodGhpcy5tb2RlbGVJbXBvcnQsIHRoaXMubW9kZWxlSW1wb3J0LnVpZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2Vzcyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy51cGRhdGVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5vblNhdmUuZW1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPHRzaS1mb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCIgW2lzTG9hZGluZ109XCJpc2xvYWRpbmdcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8VHNpLU1vZGFsLUhlYWRlciBbaW5wdXRUaXRsZV09XCJoZWFkZXIgfCBtb2RhbExhYmVsIDogbW9kZSA6ICdNb2TDqGxlIGltcG9ydCdcIlxyXG4gICAgKG9uQ2xvc2VDbGljayk9XCJoaWRlKClcIj48L1RzaS1Nb2RhbC1IZWFkZXI+XHJcblxyXG4gIDxmaWVsZHNldCBbZGlzYWJsZWRdPVwiaXNEZWxldGVNb2RlKCkgfHwgaXNDb25zdWx0TW9kZSgpIFwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ05vbSBNb2RlbGUnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggWyhpbnB1dEZpZWxkKV09XCJtb2RlbGVJbXBvcnQubm9tXCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgY2xhc3M9XCJjb2wtOVwiXHJcbiAgICAgICAgICAgICAgW2lucHV0TmFtZV09XCInbm9tTW9kZWxlJ1wiPjwvVHNpLVRleHQtQm94PlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ05vbSBGb3JtJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQm94IFsoaW5wdXRGaWVsZCldPVwibW9kZWxlSW1wb3J0LmZvcm1cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ25vbUZvcm0nXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcblxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTNcIiBbbGFiZWxWYWx1ZV09XCInTm9tIENsYXNzZSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbKGlucHV0RmllbGQpXT1cIm1vZGVsZUltcG9ydC5jbGFzc2VcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ25vbUNsYXNzZSdcIj48L1RzaS1UZXh0LUJveD5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidQcmVtaWVyZSBMaWduZSBJbXBvcnQnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbKGlucHV0RmllbGQpXT1cIm1vZGVsZUltcG9ydC5wcmVtaWVyZUxpZ25lSW1wb3J0XCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgY2xhc3M9XCJjb2wtOVwiXHJcbiAgICAgICAgICAgICAgW2lucHV0TmFtZV09XCIncHJlbWllcmVMaWduZUltcG9ydCdcIj48L1RzaS1JbnRlZ2VyPlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ0Rlcm5pZXJlIExpZ25lIEltcG9ydCdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1JbnRlZ2VyIFsoaW5wdXRGaWVsZCldPVwibW9kZWxlSW1wb3J0LmRlcm5pZXJMaWduZUltcG9ydFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ2Rlcm5pZXJMaWduZUltcG9ydCdcIj48L1RzaS1JbnRlZ2VyPlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ0FycmV0ZSBsb3JzIGRlIHByZW1pZXIgZXJyZXVyICdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1DaGVja0JveCBbKGlucHV0RmllbGQpXT1cIm1vZGVsZUltcG9ydC5hcnJldGVQcmVtaWVyRXJyZXVyXCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgY2xhc3M9XCJjb2wtOVwiXHJcbiAgICAgICAgICAgICAgW2lucHV0TmFtZV09XCInYXJyZXRlUHJlbWllckVycmV1cidcIj48L1RzaS1DaGVja0JveD5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidPcmRyZSBPdSBUaXRyZSBDb2xvbm5lJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAoYmluZENoYW5nZSk9XCJ0eXBlSW1wb3J0Q2hhbmdlKCRldmVudClcIiBjbGFzcz1cImNvbC05XCIgW2xpc3RTb3VyY2VVcmxdPVwiXHJcbiAgICAgICAgICAgICAgICAgIG1vZGVsZUltcG9ydEVuZFBvaW50cy5nZXRUeXBlTmF0dXJlRG9jdW1lbnRFbnVtKClcclxuICAgICAgICAgICAgICAgIFwiIFsoYmluZCldPVwibW9kZWxlSW1wb3J0Lm9yZHJlT3VUaXRyZUNvbG9ubmVcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ1R5cGUgZGUgZmljaGllcidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gY2xhc3M9XCJjb2wtOVwiIFtsaXN0U291cmNlVXJsXT1cIlxyXG4gICAgICAgICAgICAgICAgICBtb2RlbGVJbXBvcnRFbmRQb2ludHMuZ2V0SW1wb3J0RmlsZVR5cGVFbnVtKClcclxuICAgICAgICAgICAgICAgIFwiIFsoYmluZCldPVwibW9kZWxlSW1wb3J0LmZpbGVUeXBlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLVNlYXJjaC1Db21ibz5cclxuXHJcbiAgICAgICAgICAgICAgPFRzaS1MYWJlbCAqbmdJZj1cIm1vZGVsZUltcG9ydC5maWxlVHlwZSA9PSBmaWxlVHlwZUltcG9ydEVudW1SZWYuQ1NWXCIgY2xhc3M9XCJjb2wtM1wiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCInU8OpcGFyYXRldXIgZGUgZmljaGllciBDU1YnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCJtb2RlbGVJbXBvcnQuZmlsZVR5cGUgPT0gZmlsZVR5cGVJbXBvcnRFbnVtUmVmLkNTVlwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgICAgW2xpc3RTb3VyY2VVcmxdPVwiXHJcbiAgICAgICAgICAgICAgICAgIG1vZGVsZUltcG9ydEVuZFBvaW50cy5nZXRDc3ZGaWxlU2VwYXJhdG9yRW51bSgpXHJcbiAgICAgICAgICAgICAgICBcIiBbKGJpbmQpXT1cIm1vZGVsZUltcG9ydC5jc3ZGaWxlU2VwYXJhdG9yXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd01vZGVsZUltcG9ydERldGFpbHNcIj5cclxuICAgICAgPFRzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQgW2dyaWREYXRhXT1cIm1vZGVsZUltcG9ydC5tb2RlbGVJbXBvcnREZXRhaWxzXCJcclxuICAgICAgICBbc2F2ZUV2ZW50XT1cImV2ZW50c1N1YmplY3RNb2RlbGVJbXBvcnREZXRhaWwuYXNPYnNlcnZhYmxlKClcIlxyXG4gICAgICAgIChyb3dEZWxldGVkRXZlbnRFbWl0dGVyKT1cIm9uU2F2ZU1vZGVsZUltcG9ydERldGFpbHMoJGV2ZW50KVwiIFtjb2x1bW5zXT1cIm1vZGVsZUltcG9ydERldGFpbENvbHVtbnNcIlxyXG4gICAgICAgIFtwYXJlbnRdPVwidGhpc1wiIFtzaG93U2F2ZUJ1dHRvbl09XCJmYWxzZVwiIFtrZXldPVwiJ251bUxpZ25lJ1wiPlxyXG4gICAgICA8L1RzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIDwvZmllbGRzZXQ+XHJcblxyXG4gIDxUc2ktTW9kYWwtRm9vdGVyIFtjYW5jZWxEaXNhYmxlZF09XCJzYXZpbmdcIiBbc2F2ZURpc2FibGVkXT1cImlzU3VibWl0RGlzYWJsZWQoKVwiIChvbkNhbmNlbENsaWNrKT1cImhpZGUoKVwiXHJcbiAgICAob25TYXZlQ2xpY2spPVwic2F2ZSgpXCIgW3Nob3dTYXZlQW5kQ2xvc2VCdXR0b25dPVwibW9kZSA9PSBtb2RlUmVmLmRlbGV0ZVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuXHJcbjwvdHNpLWZvcm0+Il19
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydC9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9jcmVhdGUtb3ItZWRpdC1tb2RlbGUtaW1wb3J0L2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRSxPQUFPLEVBQUUseUJBQXlCLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw2QkFBNkI7SUFjbEYsWUFBb0Isb0JBQXlDLEVBQ25ELG9CQUE0QyxFQUNwQyxNQUEyQixFQUFrQixH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LG1CQUFtQixDQUFDLENBQUMsQ0FBQztvQkFDaEYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7YUFDRixDQUNGLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FsTVUsaUNBQWlDO21HQUFqQyxpQ0FBaUMsMkRBRmpDLENBQUMsR0FBRyxZQUFZLENBQUMsaURDakI5Qix5NElBK0VXOzs0RkQ1REUsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLGtDQUFrQyxhQUdqQyxDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbktleXMgfSBmcm9tICcuLi8uLi9jb25zdHMvbG9jYWxpemF0aW9uLWtleSc7XHJcbmltcG9ydCB7IE1vZGVzLCBUeXBlSW1wb3J0RW51bSwgSW5wdXRUeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgR3JpZENvbHVtbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBNb2RlbGVJbXBvcnRDcmVhdGVSZXF1ZXN0LCBNb2RlbGVJbXBvcnREZXRhaWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNb2RlbGVJbXBvcnRTZXJ2aWNlLCBUc2lOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJbXBvcnRFeHBvcnRFbmRQb2ludHMgfSBmcm9tICcuLi8uLi9lbmQtcG9pbnRzL2ltcG9ydC1leHBvcnQtZW5kcG9pbnQnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZUltcG9ydEVudW0gfSBmcm9tICcuLi8uLi9lbnVtcy9maWxlLXR5cGUtaW1wb3J0LWVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3JlYXRlLW9yLWVkaXQtbW9kZWxlLWltcG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LW1vZGVsZS1pbXBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRNb2RlbGVJbXBvcnRDb21wb25lbnQgZXh0ZW5kcyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1vZGVsZUltcG9ydERldGFpbENvbHVtbnM6IEFycmF5PEdyaWRDb2x1bW4+ID0gW107XHJcbiAgbW9kZWxlSW1wb3J0OiBNb2RlbGVJbXBvcnRDcmVhdGVSZXF1ZXN0ID0gbmV3IE1vZGVsZUltcG9ydENyZWF0ZVJlcXVlc3QoKVxyXG4gIGdldENvbG9ubmVCeUNsYXNzTmFtZUVuZFBvaW50OiBzdHJpbmcgPSBcIlwiXHJcbiAgZ2V0Q2xhc3NDaGlsZHNCeUNsYXNzTmFtZUVuZFBvaW50OiBzdHJpbmcgPSBcIlwiXHJcbiAgbW9kZWxlSW1wb3J0RW5kUG9pbnRzID0gSW1wb3J0RXhwb3J0RW5kUG9pbnRzXHJcbiAgX2J1c2lubmVzc0NsYXNzTmFtZTogc3RyaW5nID0gXCJcIlxyXG4gIGV2ZW50c1N1YmplY3RNb2RlbGVJbXBvcnREZXRhaWw6IFN1YmplY3Q8dm9pZD47XHJcbiAgb3BlbmVkTW9kZTogYW55XHJcbiAgc2hvd01vZGVsZUltcG9ydERldGFpbHM6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGZpbGVUeXBlSW1wb3J0RW51bVJlZiA9IEZpbGVUeXBlSW1wb3J0RW51bVxyXG4gIG1vZGVSZWYgPSBNb2RlcztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbW9kZWxlSW1wb3J0U2VydmljZTogTW9kZWxlSW1wb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLCBwdWJsaWMgb3ZlcnJpZGUgcmVmPzogRHluYW1pY0RpYWxvZ1JlZiwpIHtcclxuICAgIHN1cGVyKHJlZiwgY29uZmlnKTtcclxuICAgIHRoaXMuZXZlbnRzU3ViamVjdE1vZGVsZUltcG9ydERldGFpbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICB0aGlzLl9idXNpbm5lc3NDbGFzc05hbWUgPSBjb25maWc/LmRhdGE/LmVudGl0eUJ1c2luZXNzQ2xhc3NcclxuICAgIHRoaXMuZ2V0Q2xhc3NDaGlsZHNCeUNsYXNzTmFtZUVuZFBvaW50ID0gSW1wb3J0RXhwb3J0RW5kUG9pbnRzLmdldENsYXNzQ2hpbGRzQXNLZXlWYWx1ZVBhaXIodGhpcy5fYnVzaW5uZXNzQ2xhc3NOYW1lKVxyXG4gICAgdGhpcy5pbml0TW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucygpXHJcbiAgICB0aGlzLm9wZW5lZE1vZGUgPSB0aGlzLmNvbmZpZy5kYXRhPy5tb2RlIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlTW9kZWxlSW1wb3J0RnJvbUdyaWQoKSB7XHJcbiAgICB0aGlzLmV2ZW50c1N1YmplY3RNb2RlbGVJbXBvcnREZXRhaWwubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgb25TYXZlTW9kZWxlSW1wb3J0RGV0YWlscyhncmlkRGF0YTogQXJyYXk8TW9kZWxlSW1wb3J0RGV0YWlsPikge1xyXG4gICAgdGhpcy5tb2RlbGVJbXBvcnQubW9kZWxlSW1wb3J0RGV0YWlscyA9IGdyaWREYXRhXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KClcclxuICAgIGlmICh0aGlzLmNvbmZpZy5kYXRhICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLm1vZGVsZUltcG9ydC5jbGFzc2UgPSB0aGlzLmNvbmZpZz8uZGF0YT8uZW50aXR5QnVzaW5lc3NDbGFzc1xyXG4gICAgICB0aGlzLm1vZGVsZUltcG9ydC5mb3JtID0gdGhpcy5mb3JtTmFtZVxyXG5cclxuICAgICAgaWYgKHRoaXMub3BlbmVkTW9kZSA9PSBNb2Rlcy5lZGl0ICYmIHRoaXMuY29uZmlnLmRhdGE/LmlkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX21vZGVsZUltcG9ydFNlcnZpY2UuZ2V0QnlJZCh0aGlzLmNvbmZpZy5kYXRhPy5pZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubW9kZWxlSW1wb3J0ID0gZGF0YVxyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVzV2l0aFBhcmVudENvbHVtTmFtZSgpXHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlSW1wb3J0Q2hhbmdlKHRoaXMubW9kZWxlSW1wb3J0Lm9yZHJlT3VUaXRyZUNvbG9ubmUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlc1dpdGhQYXJlbnRDb2x1bU5hbWUoKSB7XHJcbiAgICBsZXQgZmlsdHJlZERhdGEgPSB0aGlzLm1vZGVsZUltcG9ydC5tb2RlbGVJbXBvcnREZXRhaWxzXHJcbiAgICAgIC5maWx0ZXIoeCA9PiB4Lm5vbUNsYXNzZURldGFpbCA9PSB1bmRlZmluZWQgfHwgeC5ub21DbGFzc2VEZXRhaWwgPT0gJycpXHJcbiAgICBmaWx0cmVkRGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpdGVtLm5vbUNsYXNzZURldGFpbCA9IHRoaXMuX2J1c2lubmVzc0NsYXNzTmFtZVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHR5cGVJbXBvcnRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5pbml0TW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucygpXHJcbiAgICBpZiAoZXZlbnQgPT0gVHlwZUltcG9ydEVudW0uVGl0cmVDb2xvbm5lKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucy5maW5kSW5kZXgoeCA9PiB4LmZpZWxkID09IFwibnVtZXJvXCIpXHJcbiAgICAgIGlmIChpbmRleCAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucy5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gVHlwZUltcG9ydEVudW0uT3JkcmVDb2xvbm5lKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubW9kZWxlSW1wb3J0RGV0YWlsQ29sdW1ucy5maW5kSW5kZXgoeCA9PiB4LmZpZWxkID09IFwibm9tQ29sb25uZUZpY2hpZXJcIilcclxuICAgICAgaWYgKGluZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbGVJbXBvcnREZXRhaWxDb2x1bW5zLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnNob3dNb2RlbGVJbXBvcnREZXRhaWxzID0gdHJ1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93TW9kZWxlSW1wb3J0RGV0YWlscyA9IGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRNb2RlbGVJbXBvcnREZXRhaWxDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5tb2RlbGVJbXBvcnREZXRhaWxDb2x1bW5zID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGQ6IFwibm9tQ2xhc3NlRGV0YWlsXCIsXHJcbiAgICAgICAgaGVhZGVyOiBcIk5vbSBDbGFzc2UgRGV0YWlsXCIsXHJcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlcy5TRUFSQ0hfQ09NQk8sXHJcbiAgICAgICAgbGlzdFNvdXJjZVVybDogdGhpcy5nZXRDbGFzc0NoaWxkc0J5Q2xhc3NOYW1lRW5kUG9pbnQsXHJcbiAgICAgICAgaWRGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgIGxhYmVsRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICBpc0ZpbHRlcmVkOiBmYWxzZSxcclxuICAgICAgICB3YXRjaEZvckNoYW5nZXM6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICcyMHZ3J1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGQ6IFwiY29sb25uZUNsYXNzZVwiLFxyXG4gICAgICAgIGhlYWRlcjogXCJDb2xvbm5lIENsYXNzZVwiLFxyXG4gICAgICAgIHR5cGU6IElucHV0VHlwZXMuU0VBUkNIX0NPTUJPLFxyXG4gICAgICAgIGxpc3RTb3VyY2VVcmw6IHRoaXMuYnVpbGRHZXRDaGlsZENsYXNzQ29sdW1ucyxcclxuICAgICAgICBpZEZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgbGFiZWxGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgIGlzRmlsdGVyZWQ6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGQ6IFwibnVtZXJvXCIsXHJcbiAgICAgICAgaGVhZGVyOiBcIk9yZHJlXCIsXHJcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlcy5JTlRFR0VSLFxyXG4gICAgICAgIHdhdGNoRm9yQ2hhbmdlczogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgZmllbGQ6IFwibm9tQ29sb25uZUZpY2hpZXJcIixcclxuICAgICAgICBoZWFkZXI6IFwiTm9tIENvbG9ubmUgRmljaGllclwiLFxyXG4gICAgICAgIHR5cGU6IElucHV0VHlwZXMuVEVYVF9CT1gsXHJcbiAgICAgICAgd2F0Y2hGb3JDaGFuZ2VzOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDogXCJub21Db2xvbm5lQ2xlZkV0cmFuZ2VyZVwiLFxyXG4gICAgICAgIGhlYWRlcjogXCJOb20gQ29sb25uZSBDbGUgRXRyYW5nw6hyZVwiLFxyXG4gICAgICAgIHdhdGNoRm9yQ2hhbmdlczogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBJbnB1dFR5cGVzLlNFQVJDSF9DT01CTyxcclxuICAgICAgICBsaXN0U291cmNlVXJsOiB0aGlzLmJ1aWxkR2V0Q29sdW1tbkZvckZvcmVpZ25LZXlDbGFzcyxcclxuICAgICAgICBpZEZpZWxkOiBcImtleVwiLFxyXG4gICAgICAgIGxhYmVsRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICBpc0ZpbHRlcmVkOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiBcImNsZWZNaXNlQUpvdXJcIixcclxuICAgICAgICBoZWFkZXI6IFwiQ2zDqSBkZSBtaXNlIMOgIGpvdXJcIixcclxuICAgICAgICB0eXBlOiBJbnB1dFR5cGVzLkNIRUNLQk9YLFxyXG4gICAgICAgIHdhdGNoRm9yQ2hhbmdlczogdHJ1ZSxcclxuICAgICAgICBpc0JpbmFyeTogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgYnVpbGRHZXRDb2x1bW1uRm9yRm9yZWlnbktleUNsYXNzKGN1cnJlbnRSb3dJdGVtOiBNb2RlbGVJbXBvcnREZXRhaWwpIHtcclxuICAgIGxldCBjb2x1bW5OYW1lID0gY3VycmVudFJvd0l0ZW0/LmNvbG9ubmVDbGFzc2UgPz8gXCJcIlxyXG4gICAgbGV0IHBhcmVudEVudGl0eU5hbWUgPSBjdXJyZW50Um93SXRlbT8ubm9tQ2xhc3NlRGV0YWlsID8/IFwiXCJcclxuICAgIHJldHVybiBJbXBvcnRFeHBvcnRFbmRQb2ludHMuZ2V0Q29sb25uZXNCeUNsYXNzTmFtZUFzS2V5VmFsdWVQYWlyKHBhcmVudEVudGl0eU5hbWUsIGNvbHVtbk5hbWUpXHJcbiAgfVxyXG5cclxuICBidWlsZEdldENoaWxkQ2xhc3NDb2x1bW5zKGN1cnJlbnRSb3dJdGVtOiBNb2RlbGVJbXBvcnREZXRhaWwpIHtcclxuICAgIGxldCBwYXJlbnRFbnRpdHlOYW1lID0gY3VycmVudFJvd0l0ZW0/Lm5vbUNsYXNzZURldGFpbCA/PyBcIlwiXHJcbiAgICAvLyBpZiAocGFyZW50RW50aXR5TmFtZT8uZW5kc1dpdGgoJ3MnKSkge1xyXG4gICAgLy8gICBwYXJlbnRFbnRpdHlOYW1lID0gcGFyZW50RW50aXR5TmFtZS5zbGljZSgwLCAtMSk7XHJcbiAgICAvLyB9XHJcbiAgICByZXR1cm4gSW1wb3J0RXhwb3J0RW5kUG9pbnRzLmdldENvbG9ubmVzQnlDbGFzc05hbWVBc0tleVZhbHVlUGFpcihwYXJlbnRFbnRpdHlOYW1lLCBcIlwiKVxyXG4gIH1cclxuXHJcbiAgYnVpbGRHZXRDaGlsZENoaWxkQ2xhc3MoY3VycmVudFJvd0l0ZW06IE1vZGVsZUltcG9ydERldGFpbCkge1xyXG4gICAgbGV0IGNsYXNzTmFtZSA9IGN1cnJlbnRSb3dJdGVtPy5ub21DbGFzc2VEZXRhaWxcclxuICAgIGlmIChjbGFzc05hbWU/LmVuZHNXaXRoKCdzJykpIHtcclxuICAgICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnNsaWNlKDAsIC0xKTtcclxuICAgIH1cclxuICAgIHJldHVybiBJbXBvcnRFeHBvcnRFbmRQb2ludHMuZ2V0Q2xhc3NDaGlsZHNBc0tleVZhbHVlUGFpcihjbGFzc05hbWUpXHJcbiAgfVxyXG5cclxuICBkZWxldGVWYWx1ZUZyb21QYXJlbnRNb2RlbCgpIHtcclxuICAgIGxldCBmaWx0cmVkRGF0YSA9IHRoaXMubW9kZWxlSW1wb3J0Lm1vZGVsZUltcG9ydERldGFpbHNcclxuICAgICAgLmZpbHRlcih4ID0+IHgubm9tQ2xhc3NlRGV0YWlsID09IHRoaXMuX2J1c2luZXNzQ2xhc3MpXHJcbiAgICBmaWx0cmVkRGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpdGVtLm5vbUNsYXNzZURldGFpbCA9IHVuZGVmaW5lZFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHNhdmUoKTogdm9pZCB7XHJcbiAgICBzdXBlci5zYXZlKClcclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZVxyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlXHJcbiAgICB0aGlzLl91cGRhdGVNb2RlbGVJbXBvcnRGcm9tR3JpZCgpXHJcbiAgICB0aGlzLmRlbGV0ZVZhbHVlRnJvbVBhcmVudE1vZGVsKClcclxuICAgIGlmICh0aGlzLm9wZW5lZE1vZGUgPT0gTW9kZXMuY3JlYXRlKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsZUltcG9ydFNlcnZpY2UuY3JlYXRlKHRoaXMubW9kZWxlSW1wb3J0KS5zdWJzY3JpYmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3ModGhpcy5sKExvY2FsaXphdGlvbktleXMuc2F2ZWRTdWNjZXNzZnVsbHkpKTtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm9wZW5lZE1vZGUgPT0gTW9kZXMuZWRpdCAmJiB0aGlzLm1vZGVsZUltcG9ydC51aWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsZUltcG9ydFNlcnZpY2UudXBkYXRlKHRoaXMubW9kZWxlSW1wb3J0LCB0aGlzLm1vZGVsZUltcG9ydC51aWQpLnN1YnNjcmliZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3ModGhpcy5sKExvY2FsaXphdGlvbktleXMudXBkYXRlZFN1Y2Nlc3NmdWxseSkpO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjx0c2ktZm9ybSBjbGFzcz1cImZvcm0taG9yaXpvbnRhbFwiIFtpc0xvYWRpbmddPVwiaXNsb2FkaW5nXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbiAgPFRzaS1Nb2RhbC1IZWFkZXIgW2lucHV0VGl0bGVdPVwiaGVhZGVyIHwgbW9kYWxMYWJlbCA6IG1vZGUgOiAnTW9kw6hsZSBpbXBvcnQnXCJcclxuICAgIChvbkNsb3NlQ2xpY2spPVwiaGlkZSgpXCI+PC9Uc2ktTW9kYWwtSGVhZGVyPlxyXG5cclxuICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGVsZXRlTW9kZSgpIHx8IGlzQ29uc3VsdE1vZGUoKSBcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidOb20gTW9kZWxlJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQm94IFsoaW5wdXRGaWVsZCldPVwibW9kZWxlSW1wb3J0Lm5vbVwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ25vbU1vZGVsZSdcIj48L1RzaS1UZXh0LUJveD5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidOb20gRm9ybSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbKGlucHV0RmllbGQpXT1cIm1vZGVsZUltcG9ydC5mb3JtXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImNvbC05XCJcclxuICAgICAgICAgICAgICBbaW5wdXROYW1lXT1cIidub21Gb3JtJ1wiPjwvVHNpLVRleHQtQm94PlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ05vbSBDbGFzc2UnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggWyhpbnB1dEZpZWxkKV09XCJtb2RlbGVJbXBvcnQuY2xhc3NlXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImNvbC05XCJcclxuICAgICAgICAgICAgICBbaW5wdXROYW1lXT1cIidub21DbGFzc2UnXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcblxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTNcIiBbbGFiZWxWYWx1ZV09XCInUHJlbWllcmUgTGlnbmUgSW1wb3J0J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLUludGVnZXIgWyhpbnB1dEZpZWxkKV09XCJtb2RlbGVJbXBvcnQucHJlbWllcmVMaWduZUltcG9ydFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ3ByZW1pZXJlTGlnbmVJbXBvcnQnXCI+PC9Uc2ktSW50ZWdlcj5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidEZXJuaWVyZSBMaWduZSBJbXBvcnQnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbKGlucHV0RmllbGQpXT1cIm1vZGVsZUltcG9ydC5kZXJuaWVyTGlnbmVJbXBvcnRcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBjbGFzcz1cImNvbC05XCJcclxuICAgICAgICAgICAgICBbaW5wdXROYW1lXT1cIidkZXJuaWVyTGlnbmVJbXBvcnQnXCI+PC9Uc2ktSW50ZWdlcj5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidBcnJldGUgbG9ycyBkZSBwcmVtaWVyIGVycmV1ciAnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktQ2hlY2tCb3ggWyhpbnB1dEZpZWxkKV09XCJtb2RlbGVJbXBvcnQuYXJyZXRlUHJlbWllckVycmV1clwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ2FycmV0ZVByZW1pZXJFcnJldXInXCI+PC9Uc2ktQ2hlY2tCb3g+XHJcblxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTNcIiBbbGFiZWxWYWx1ZV09XCInTW9kZSBtaXNlIMOgIGpvdXInXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktQ2hlY2tCb3ggWyhpbnB1dEZpZWxkKV09XCJtb2RlbGVJbXBvcnQubW9kZU1pc2VBSm91clwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ21vZGVNaXNlQUpvdXInXCIgW2lzQmluYXJ5XT1cInRydWVcIj48L1RzaS1DaGVja0JveD5cclxuXHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtM1wiIFtsYWJlbFZhbHVlXT1cIidPcmRyZSBPdSBUaXRyZSBDb2xvbm5lJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAoYmluZENoYW5nZSk9XCJ0eXBlSW1wb3J0Q2hhbmdlKCRldmVudClcIiBjbGFzcz1cImNvbC05XCIgW2xpc3RTb3VyY2VVcmxdPVwiXHJcbiAgICAgICAgICAgICAgICAgIG1vZGVsZUltcG9ydEVuZFBvaW50cy5nZXRUeXBlTmF0dXJlRG9jdW1lbnRFbnVtKClcclxuICAgICAgICAgICAgICAgIFwiIFsoYmluZCldPVwibW9kZWxlSW1wb3J0Lm9yZHJlT3VUaXRyZUNvbG9ubmVcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0zXCIgW2xhYmVsVmFsdWVdPVwiJ1R5cGUgZGUgZmljaGllcidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gY2xhc3M9XCJjb2wtOVwiIFtsaXN0U291cmNlVXJsXT1cIlxyXG4gICAgICAgICAgICAgICAgICBtb2RlbGVJbXBvcnRFbmRQb2ludHMuZ2V0SW1wb3J0RmlsZVR5cGVFbnVtKClcclxuICAgICAgICAgICAgICAgIFwiIFsoYmluZCldPVwibW9kZWxlSW1wb3J0LmZpbGVUeXBlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgIDwvVHNpLVNlYXJjaC1Db21ibz5cclxuXHJcbiAgICAgICAgICAgICAgPFRzaS1MYWJlbCAqbmdJZj1cIm1vZGVsZUltcG9ydC5maWxlVHlwZSA9PSBmaWxlVHlwZUltcG9ydEVudW1SZWYuQ1NWXCIgY2xhc3M9XCJjb2wtM1wiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxWYWx1ZV09XCInU8OpcGFyYXRldXIgZGUgZmljaGllciBDU1YnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCJtb2RlbGVJbXBvcnQuZmlsZVR5cGUgPT0gZmlsZVR5cGVJbXBvcnRFbnVtUmVmLkNTVlwiIGNsYXNzPVwiY29sLTlcIlxyXG4gICAgICAgICAgICAgICAgW2xpc3RTb3VyY2VVcmxdPVwiXHJcbiAgICAgICAgICAgICAgICAgIG1vZGVsZUltcG9ydEVuZFBvaW50cy5nZXRDc3ZGaWxlU2VwYXJhdG9yRW51bSgpXHJcbiAgICAgICAgICAgICAgICBcIiBbKGJpbmQpXT1cIm1vZGVsZUltcG9ydC5jc3ZGaWxlU2VwYXJhdG9yXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd01vZGVsZUltcG9ydERldGFpbHNcIj5cclxuICAgICAgPFRzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQgW2dyaWREYXRhXT1cIm1vZGVsZUltcG9ydC5tb2RlbGVJbXBvcnREZXRhaWxzXCJcclxuICAgICAgICBbc2F2ZUV2ZW50XT1cImV2ZW50c1N1YmplY3RNb2RlbGVJbXBvcnREZXRhaWwuYXNPYnNlcnZhYmxlKClcIlxyXG4gICAgICAgIChyb3dEZWxldGVkRXZlbnRFbWl0dGVyKT1cIm9uU2F2ZU1vZGVsZUltcG9ydERldGFpbHMoJGV2ZW50KVwiIFtjb2x1bW5zXT1cIm1vZGVsZUltcG9ydERldGFpbENvbHVtbnNcIlxyXG4gICAgICAgIFtwYXJlbnRdPVwidGhpc1wiIFtzaG93U2F2ZUJ1dHRvbl09XCJmYWxzZVwiIFtrZXldPVwiJ251bUxpZ25lJ1wiPlxyXG4gICAgICA8L1RzaS1HZW5lcmljLUVkaXRhYmxlLUdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIDwvZmllbGRzZXQ+XHJcblxyXG4gIDxUc2ktTW9kYWwtRm9vdGVyIFtjYW5jZWxEaXNhYmxlZF09XCJzYXZpbmdcIiBbc2F2ZURpc2FibGVkXT1cImlzU3VibWl0RGlzYWJsZWQoKVwiIChvbkNhbmNlbENsaWNrKT1cImhpZGUoKVwiXHJcbiAgICAob25TYXZlQ2xpY2spPVwic2F2ZSgpXCIgW3Nob3dTYXZlQW5kQ2xvc2VCdXR0b25dPVwibW9kZSA9PSBtb2RlUmVmLmRlbGV0ZVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuXHJcbjwvdHNpLWZvcm0+Il19