tuain-ng-forms-lib 12.0.37 → 12.0.42

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.
@@ -23,9 +23,9 @@ export class RecordTable extends FormElement {
23
23
  this._selectionActionTrigger = new Subject();
24
24
  this._getDataTrigger = new Subject();
25
25
  this._attributeChange = new Subject();
26
- this.tableRecordObj = {};
27
26
  this._tableColumnObj = {};
28
27
  this._actionsObj = {};
28
+ this.tableRecordObj = {};
29
29
  this.allSelected = false;
30
30
  this.elementType = elementTypes.table;
31
31
  this.waiting = false;
@@ -335,4 +335,4 @@ export class RecordTable extends FormElement {
335
335
  return direction === TABLE_SORT_ASCENDING ? result : -result;
336
336
  }
337
337
  }
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsa0JBQWtCLEVBQUUsZUFBZTtJQUNuQyxrQkFBa0IsRUFBRSxlQUFlO0lBQ25DLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsbUJBQW1CLEVBQUUsZ0JBQWdCO0NBQ3RDLENBQUM7QUFxQkYsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBd0MxQyxZQUFZLGFBQWEsRUFBRSxVQUFVOztRQUNuQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBeENsQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQ2pELHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDakQsNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNwRCw0QkFB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UyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUF3QixFQUFFLE9BQXdCLEVBQUUsYUFBYSxFQUFFLFNBQVM7UUFDeEYsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksYUFBYSxHQUFHLGFBQWEsRUFBRTtZQUNqQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDYjthQUFNLElBQUksYUFBYSxHQUFHLGFBQWEsRUFBRTtZQUN4QyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ1o7UUFDRCxPQUFPLFNBQVMsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlbGVtZW50VHlwZXMgfSBmcm9tICcuLi9mb3JtLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudCB9IGZyb20gJy4uL2VsZW1lbnQnO1xuaW1wb3J0IHsgRmllbGRTZWFyY2gsIEZpbHRlciwgQWR2YW5jZWRGaWx0ZXJJdGVtIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgUmVjb3JkVGFibGVDb2x1bW4gfSBmcm9tICcuL2NvbHVtbic7XG5pbXBvcnQgeyBUYWJsZUFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4vcm93LWRhdGEnO1xuXG5jb25zdCBUQUJMRV9TT1JUX0FTQ0VORElORyA9ICdhc2MnO1xuY29uc3QgVEFCTEVfU09SVF9ERVNDRU5ESU5HID0gJ2Rlc2MnO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfRklMVEVSX1RZUEVTID0ge1xuICBzaW1wbGVGaWx0ZXJDaGFuZ2U6ICdTSU1QTEVfQ0hBTkdFJyxcbiAgc2ltcGxlRmlsdGVyRmluaXNoOiAnU0lNUExFX0ZJTklTSCcsXG4gIGNvbXBsZXhGaWx0ZXJBZGQ6ICdDT01QTEVYX0FERCcsXG4gIGNvbXBsZXhGaWx0ZXJSZW1vdmU6ICdDT01QTEVYX1JFTU9WRScsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRmlsdGVyRXZlbnQge1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgc2ltcGxlRmlsdGVyU3RyaW5nOiBzdHJpbmc7XG4gIGNvbXBsZXhGaWx0ZXJJdGVtOiBBZHZhbmNlZEZpbHRlckl0ZW07XG4gIGl0ZW1OYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVBY3Rpb25FdmVudCB7XG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgcmVjb3JkSWQ6IGFueTtcbiAgcmVjb3JkRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRXZlbnQge1xuICB0YWJsZUNvZGU6IHN0cmluZztcbiAgYWN0aW9uQ29kZTogc3RyaW5nO1xuICBhY3Rpb25EZXRhaWw6IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFJlY29yZFRhYmxlIGV4dGVuZHMgRm9ybUVsZW1lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmxpbmVBY3Rpb25UcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZ2xvYmFsQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlY29yZFNlbGVjdGlvblRyaWdnZXIgPSBuZXcgU3ViamVjdDxUYWJsZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3Rpb25BY3Rpb25UcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZ2V0RGF0YVRyaWdnZXIgPSBuZXcgU3ViamVjdDxUYWJsZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdHRyaWJ1dGVDaGFuZ2UgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgdGFibGVSZWNvcmRzOiBUYWJsZVJlY29yZERhdGFbXTtcbiAgdGFibGVSZWNvcmRPYmogPSB7fTtcbiAgdmlzaWJsZVJlY29yZHM6IFRhYmxlUmVjb3JkRGF0YVtdO1xuICBjb2x1bW5zOiBSZWNvcmRUYWJsZUNvbHVtbltdO1xuICBwcml2YXRlIF90YWJsZUNvbHVtbk9iaiA9IHt9O1xuICBwcml2YXRlIF9hcHBlbmRQYWdlczogYm9vbGVhbjtcbiAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgc2VsZWN0aW9uQmFja2VuZDogYm9vbGVhbjtcbiAgc2VsZWN0aW9uRmllbGQ6IFJlY29yZFRhYmxlQ29sdW1uO1xuICBwcml2YXRlIF9hY3Rpb25zOiBUYWJsZUFjdGlvbltdO1xuICBwcml2YXRlIF9hY3Rpb25zT2JqID0ge307XG4gIGFsbFNlbGVjdGVkID0gZmFsc2U7XG5cbiAgdGFibGVDb2RlOiBzdHJpbmc7XG4gIHRhYmxlVGl0bGU6IHN0cmluZztcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICByZXF1ZXN0ZWRQYWdlOiBudW1iZXI7XG4gIHJlY29yZHNQZXJQYWdlOiBudW1iZXI7XG4gIHRvdGFsUmVjb3Jkc051bWJlcjogbnVtYmVyO1xuICByZWNvcmRzTnVtYmVyOiBudW1iZXI7XG4gIHNvcnRpbmc6IGFueTtcblxuICB3YWl0aW5nOiBib29sZWFuO1xuICBjbGllbnRQYWdpbmc6IGJvb2xlYW47XG5cbiAgc2ltcGxlRmlsdGVyOiBib29sZWFuO1xuICBjb21wbGV4RmlsdGVyOiBib29sZWFuO1xuICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgZmlsdGVyQ29uZmlnOiBGaWVsZFNlYXJjaFtdO1xuICBmaWx0ZXJPYmplY3Q6IEZpbHRlcjtcblxuICBjb25zdHJ1Y3Rvcih0YWJsZVJlY2VpdmVkLCBmb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIodGFibGVSZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IGVsZW1lbnRUeXBlcy50YWJsZTtcbiAgICB0aGlzLndhaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSAxO1xuICAgIHRoaXMucmVxdWVzdGVkUGFnZSA9IDE7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICB0aGlzLl90YWJsZUNvbHVtbk9iaiA9IHt9O1xuICAgIHRoaXMuX2FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9hY3Rpb25zT2JqID0ge307XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcblxuICAgIHRoaXMuc2V0QXR0cignYWxsU2VsZWN0ZWQnLCBmYWxzZSk7XG4gICAgdGhpcy5zZXRBdHRyKCdmaWx0ZXJPYmplY3QnLCBuZXcgRmlsdGVyKCkpO1xuICAgIHRoaXMuc2V0QXR0cignZmlsdGVyQ29uZmlnJywgW10pO1xuICAgIHRoaXMuc2V0QXR0cigndGFibGVDb2RlJywgdGFibGVSZWNlaXZlZC50YWJsZUNvZGUpO1xuICAgIHRoaXMudGFibGVUaXRsZSA9IHRhYmxlUmVjZWl2ZWQudGFibGVUaXRsZTtcbiAgICB0aGlzLnNldEF0dHIoJ2NsaWVudFBhZ2luZycsIHRhYmxlUmVjZWl2ZWQ/LmNsaWVudFBhZ2luZyA/PyB0cnVlKTtcbiAgICB0aGlzLnNldEF0dHIoJ3NpbXBsZUZpbHRlcicsIHRhYmxlUmVjZWl2ZWQ/LnNpbXBsZUZpbHRlciA/PyBmYWxzZSk7XG4gICAgdGhpcy5zZXRBdHRyKCdjb21wbGV4RmlsdGVyJywgZmFsc2UpO1xuXG4gICAgdGhpcy5fYXBwZW5kUGFnZXMgPSB0YWJsZVJlY2VpdmVkPy5hcHBlbmQgPz8gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RhYmxlID0gdGFibGVSZWNlaXZlZD8uc2VsZWN0YWJsZSA/PyBmYWxzZTtcbiAgICB0aGlzLnNldEF0dHIoJ3NlbGVjdGlvbkJhY2tlbmQnLCB0YWJsZVJlY2VpdmVkPy5zZWxlY3Rpb25CYWNrZW5kID8/IGZhbHNlKTtcbiAgICB0aGlzLnNldEF0dHIoJ3NvcnRhYmxlJywgdGFibGVSZWNlaXZlZD8uc29ydGFibGUgPz8gZmFsc2UpO1xuICAgIHRoaXMuc2V0QXR0cignc29ydGluZycsIHsgY29sdW1uTmFtZTogJycsIGRpcmVjdGlvbjogJycgfSk7XG5cbiAgICB0aGlzLnNldEF0dHIoJ3JlY29yZHNQZXJQYWdlJywgZm9ybUNvbmZpZy5kZWZhdWx0UmVjb3Jkc1BlclBhZ2UpO1xuICAgIGlmICh0YWJsZVJlY2VpdmVkLmZpZWxkcykge1xuICAgICAgY29uc3QgY29sdW1ucyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBjb2x1bW5SZWNlaXZlZCBvZiB0YWJsZVJlY2VpdmVkLmZpZWxkcykge1xuICAgICAgICBjb25zdCBjb2x1bW5EZWZpbml0aW9uID0gbmV3IFJlY29yZFRhYmxlQ29sdW1uKGNvbHVtblJlY2VpdmVkLCB0aGlzLl9mb3JtQ29uZmlnKTtcbiAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbkRlZmluaXRpb24pO1xuICAgICAgICB0aGlzLl90YWJsZUNvbHVtbk9ialtjb2x1bW5EZWZpbml0aW9uLmZpZWxkQ29kZV0gPSBjb2x1bW5EZWZpbml0aW9uO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRBdHRyKCdjb2x1bW5zJywgY29sdW1ucyk7XG4gICAgfVxuICAgIGlmICh0YWJsZVJlY2VpdmVkLmFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IHRhYmxlQWN0aW9ucyA9IHRhYmxlUmVjZWl2ZWQuYWN0aW9ucy5tYXAob2JqRGVmID0+IHtcbiAgICAgICAgbGV0IHZpc2libGVTdGF0ZXMgPSBvYmpEZWYudmlzaWJsZVN0YXRlcztcbiAgICAgICAgbGV0IGVuYWJsZWRTdGF0ZXMgPSBvYmpEZWYuZW5hYmxlZFN0YXRlcztcbiAgICAgICAgaWYgKCF2aXNpYmxlU3RhdGVzKSB7XG4gICAgICAgICAgdmlzaWJsZVN0YXRlcyA9IChvYmpEZWYuYWN0aW9uTW9kZXMgfHwgJycpLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoc3RhdGUgPT4gc3RhdGUudHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5sZW5ndGggPiAwKTtcbiAgICAgICAgICBlbmFibGVkU3RhdGVzID0gKG9iakRlZi5hY3Rpb25Nb2RlcyB8fCAnJykuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IC4uLm9iakRlZiwgdmlzaWJsZVN0YXRlcywgZW5hYmxlZFN0YXRlcyB9O1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGFjdGlvblJlY2VpdmVkIG9mIHRhYmxlQWN0aW9ucykge1xuICAgICAgICBjb25zdCBpbmxpbmVBY3Rpb24gPSBuZXcgVGFibGVBY3Rpb24oYWN0aW9uUmVjZWl2ZWQpO1xuICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goaW5saW5lQWN0aW9uKTtcbiAgICAgICAgdGhpcy5fYWN0aW9uc09ialtpbmxpbmVBY3Rpb24uYWN0aW9uQ29kZV0gPSBpbmxpbmVBY3Rpb247XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0YWJsZVJlY2VpdmVkLmZpbHRlcnMgJiYgdGFibGVSZWNlaXZlZC5maWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0QXR0cignY29tcGxleEZpbHRlcicsIHRydWUpO1xuICAgICAgY29uc3QgZmlsdGVyQ29uZmlnID0gdGhpcy5maWx0ZXJDb25maWc7XG4gICAgICBmb3IgKGNvbnN0IGZpbHRlclJlY2VpdmVkIG9mIHRhYmxlUmVjZWl2ZWQuZmlsdGVycykge1xuICAgICAgICBjb25zdCBmaWx0ZXJJdGVtID0gbmV3IEZpZWxkU2VhcmNoKGZpbHRlclJlY2VpdmVkKTtcbiAgICAgICAgZmlsdGVyQ29uZmlnLnB1c2goZmlsdGVySXRlbSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldEF0dHIoJ2ZpbHRlckNvbmZpZycsIGZpbHRlckNvbmZpZyk7XG5cbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25GaWVsZCA9IHRoaXMuY29sdW1uc1xuICAgICAgICAuZmluZChjb2x1bW4gPT4gY29sdW1uLmZpZWxkQ29kZSA9PT0gdGFibGVSZWNlaXZlZD8uc2VsZWN0aW9uRmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbmxpbmVBY3Rpb25UcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5faW5saW5lQWN0aW9uVHJpZ2dlcjsgfVxuICBnZXQgZ2xvYmFsQWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX2dsb2JhbEFjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IHNlbGVjdGlvbkFjdGlvblRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9zZWxlY3Rpb25BY3Rpb25UcmlnZ2VyOyB9XG4gIGdldCByZWNvcmRTZWxlY3Rpb25UcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fcmVjb3JkU2VsZWN0aW9uVHJpZ2dlcjsgfVxuICBnZXQgZ2V0RGF0YVRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9nZXREYXRhVHJpZ2dlcjsgfVxuICBnZXQgYXR0cmlidXRlQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fYXR0cmlidXRlQ2hhbmdlOyB9XG5cbiAgZ2V0IGhhc0FjdGlvbnMoKSB7IHJldHVybiAodGhpcy5fYWN0aW9ucy5sZW5ndGggPiAwKTsgfVxuICBnZXQgc2VsZWN0aW9uRmllbGROYW1lKCkgeyByZXR1cm4gdGhpcy5zZWxlY3Rpb25GaWVsZD8uZmllbGRDb2RlID8/IG51bGw7IH1cbiAgZ2V0IGNvbHVtbk5hbWVzKCkgeyByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fdGFibGVDb2x1bW5PYmopOyB9XG5cbiAgZ2V0IHJlY29yZHMoKSB7IHJldHVybiB0aGlzLnZpc2libGVSZWNvcmRzOyB9XG4gIHNldCByZWNvcmRzKHJlY29yZHMpIHsgdGhpcy5yZXBsYWNlUmVjb3JkcyhyZWNvcmRzKTsgfVxuICBnZXQgc2VsZWN0ZWRSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlUmVjb3Jkcy5maWx0ZXIocmVjID0+IHJlYy5zZWxlY3RlZClcbiAgICAgIC5tYXAocmVjID0+IHJlYy5yZWNvcmRJZCk7XG4gIH1cblxuICBzZXRBdHRyKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHRoaXNbbmFtZV0gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fZm9ybUNvbmZpZy5tb25pdG9yZWRUYWJsZUF0dHJpYnV0ZXMuaW5jbHVkZXMobmFtZSkpIHtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZUNoYW5nZS5uZXh0KHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgfVxuICB9XG5cbiAgYXBwZW5kUmVjb3JkcyhyZWNvcmRzKSB7IHRoaXMuc2V0VGFibGVSZWNvcmRzKHJlY29yZHMsIHRydWUpOyB9XG4gIHJlcGxhY2VSZWNvcmRzKHJlY29yZHMpIHsgdGhpcy5zZXRUYWJsZVJlY29yZHMocmVjb3JkcywgZmFsc2UpOyB9XG4gIGNvbHVtbkRlZmluaXRpb24oZmllbGRDb2RlKSB7IHJldHVybiB0aGlzLl90YWJsZUNvbHVtbk9ialtmaWVsZENvZGVdOyB9XG4gIHB1dE9uV2FpdCgpIHsgdGhpcy53YWl0aW5nID0gdHJ1ZTsgfVxuICBmcmVlV2FpdGluZygpIHsgdGhpcy53YWl0aW5nID0gZmFsc2U7IH1cbiAgZ2V0QWN0aW9uT2JqZWN0KGFjdGlvbkNvZGUpIHsgcmV0dXJuIHRoaXMuZ2V0QWN0aW9uKGFjdGlvbkNvZGUpOyB9XG5cbiAgbm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpIHtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IG51bGxcbiAgICB9O1xuICAgIHRoaXMuX2dsb2JhbEFjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeUlubGluZUFjdGlvbih0YWJsZUFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlOiB0YWJsZUFjdGlvbkV2ZW50LmFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgcmVjb3JkSWQ6IHRhYmxlQWN0aW9uRXZlbnQucmVjb3JkSWQsXG4gICAgICAgIHJlY29yZERhdGE6IHRhYmxlQWN0aW9uRXZlbnQucmVjb3JkRGF0YVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5faW5saW5lQWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5UmVjb3JkU2VsZWN0aW9uKHJlY29yZElkKSB7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5nZXRUYWJsZVJlY29yZChyZWNvcmRJZCk7XG4gICAgaWYgKCFyZWNvcmQpIHsgcmV0dXJuOyB9XG4gICAgcmVjb3JkLnRvZ2dsZVNlbGVjdCgpO1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlRXZlbnQgPSB7XG4gICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVDb2RlLFxuICAgICAgYWN0aW9uQ29kZTogbnVsbCxcbiAgICAgIGFjdGlvbkRldGFpbDoge1xuICAgICAgICByZWNvcmRJZDogcmVjb3JkLnJlY29yZElkLFxuICAgICAgICByZWNvcmREYXRhOiByZWNvcmQucmVjb3JkRGF0YVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5yZWNvcmRTZWxlY3Rpb25UcmlnZ2VyLm5leHQodGFibGVFdmVudCk7XG4gIH1cblxuICBub3RpZnlTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZSkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlRXZlbnQgPSB7XG4gICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVDb2RlLFxuICAgICAgYWN0aW9uQ29kZSxcbiAgICAgIGFjdGlvbkRldGFpbDoge1xuICAgICAgICBzZWxlY3RlZFJlY29yZHM6IHRoaXMuc2VsZWN0ZWRSZWNvcmRzXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLl9zZWxlY3Rpb25BY3Rpb25UcmlnZ2VyLm5leHQodGFibGVFdmVudCk7XG4gIH1cblxuICBub3RpZnlHZXREYXRhQWN0aW9uKHJlcXVlc3RlZFBhZ2UgPSBudWxsKSB7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICAgIHRoaXMucmVxdWVzdGVkUGFnZSA9IHJlcXVlc3RlZFBhZ2UgfHwgdGhpcy5jdXJyZW50UGFnZTtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGU6IG51bGwsXG4gICAgICBhY3Rpb25EZXRhaWw6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLl9nZXREYXRhVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgY2xlYW4oKSB7XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcbiAgICB0aGlzLnRhYmxlUmVjb3JkT2JqID0ge307XG4gIH1cblxuICBzZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zZXRBdHRyKCdhbGxTZWxlY3RlZCcsIHRydWUpO1xuICAgIHRoaXMudGFibGVSZWNvcmRzLmZvckVhY2gocmVjb3JkID0+IHJlY29yZC5zZWxlY3QoKSk7XG4gIH1cblxuICB1blNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnNldEF0dHIoJ2FsbFNlbGVjdGVkJywgZmFsc2UpO1xuICAgIHRoaXMudGFibGVSZWNvcmRzLmZvckVhY2gocmVjb3JkID0+IHJlY29yZC51bnNlbGVjdCgpKTtcbiAgfVxuXG4gIHNldFRhYmxlUmVjb3Jkcyh0YWJsZVJlY29yZHMsIGFwcGVuZCkge1xuICAgIGlmICghYXBwZW5kKSB7IHRoaXMuY2xlYW4oKTsgfVxuICAgIGNvbnN0IG5ld1JlY29yZHNPYmogPSB7IC4uLnRoaXMudGFibGVSZWNvcmRPYmogfTtcbiAgICBjb25zdCBuZXdSZWNvcmRzID0gWy4uLnRoaXMudGFibGVSZWNvcmRzXTtcbiAgICBmb3IgKGNvbnN0IHRhYmxlUmVjb3JkIG9mIHRhYmxlUmVjb3Jkcykge1xuICAgICAgY29uc3QgcmVjb3JkUmVjZWl2ZWQ6IFRhYmxlUmVjb3JkRGF0YSA9IG5ldyBUYWJsZVJlY29yZERhdGEodGFibGVSZWNvcmQsIHRoaXMuY29sdW1ucyxcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25GaWVsZD8uZmllbGRDb2RlKTtcbiAgICAgIGNvbnN0IHJlY29yZElkS2V5ID0gcmVjb3JkUmVjZWl2ZWQucmVjb3JkSWRLZXk7XG4gICAgICBuZXdSZWNvcmRzLnB1c2gocmVjb3JkUmVjZWl2ZWQpO1xuICAgICAgbmV3UmVjb3Jkc09ialtyZWNvcmRJZEtleV0gPSByZWNvcmRSZWNlaXZlZDtcbiAgICB9XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBuZXdSZWNvcmRzO1xuICAgIHRoaXMudGFibGVSZWNvcmRPYmogPSBuZXdSZWNvcmRzT2JqO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIHVwZGF0ZVZpc2libGVSZWNvcmRzKCkge1xuICAgIGlmICghdGhpcy5jbGllbnRQYWdpbmcgfHwgIXRoaXMudGFibGVSZWNvcmRzIHx8IHRoaXMudGFibGVSZWNvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZXRBdHRyKCd2aXNpYmxlUmVjb3JkcycsIHRoaXMudGFibGVSZWNvcmRzKTtcbiAgICB9XG4gICAgY29uc3QgcmVjb3Jkc1Zpc2libGUgPSAodGhpcy5maWx0ZXJPYmplY3QuZmlsdGVyTW9kZVNpbXBsZSlcbiAgICAgID8gdGhpcy50YWJsZVJlY29yZHMuZmlsdGVyKHJlY29yZCA9PiByZWNvcmQuaGFzUGF0dGVybih0aGlzLmZpbHRlck9iamVjdC5zaW1wbGVGaWx0ZXJXb3JkcykpXG4gICAgICA6IHRoaXMudGFibGVSZWNvcmRzLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkLmhhc0NvbmRpdGlvbih0aGlzLmZpbHRlck9iamVjdC5hZHZhbmNlZEZpbHRlcikpO1xuICAgIHRoaXMuc2V0QXR0cigndmlzaWJsZVJlY29yZHMnLCByZWNvcmRzVmlzaWJsZSk7XG4gIH1cblxuICB1cGRhdGVGcm9tU2VydmVyKHRhYmxlUmVjZWl2ZWQpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0YWJsZVJlY2VpdmVkPy52aXNpYmxlIHx8IHRydWU7XG4gICAgdGhpcy5zZXRBdHRyKCdjdXJyZW50UGFnZScsIHBhcnNlSW50KHRhYmxlUmVjZWl2ZWQuY3VycmVudFBhZ2UsIDEwKSB8fCAxKTtcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0YWJsZVJlY2VpdmVkLnRvdGFsUGFnZXMgfHwgMTtcbiAgICB0aGlzLnNldEF0dHIoJ3JlY29yZHNQZXJQYWdlJywgdGFibGVSZWNlaXZlZC5yZWNvcmRzUGVyUGFnZSk7XG4gICAgdGhpcy5yZWNvcmRzTnVtYmVyID0gdGFibGVSZWNlaXZlZC5yZWNvcmRzTnVtYmVyO1xuICAgIHRoaXMuc2V0QXR0cigndG90YWxSZWNvcmRzTnVtYmVyJywgdGFibGVSZWNlaXZlZC50b3RhbFJlY29yZHNOdW1iZXIpO1xuICAgIHRoaXMuc2V0QXR0cignc29ydGluZycsIHtcbiAgICAgIGNvbHVtbk5hbWU6IHRhYmxlUmVjZWl2ZWQuc29ydGluZ0NvbHVtbiB8fCAnJyxcbiAgICAgIGRpcmVjdGlvbjogdGFibGVSZWNlaXZlZC5zb3J0aW5nRGlyZWN0aW9uIHx8ICcnXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSAxO1xuICAgIHRoaXMud2FpdGluZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5jbGVhbigpO1xuICAgIGlmICh0aGlzLl9hcHBlbmRQYWdlcykge1xuICAgICAgdGhpcy5yZXBsYWNlUmVjb3Jkcyh0YWJsZVJlY2VpdmVkLnRhYmxlUmVjb3Jkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwZW5kUmVjb3Jkcyh0YWJsZVJlY2VpdmVkLnRhYmxlUmVjb3Jkcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGFibGVSZWNvcmQocmVjb3JkSWQpIHtcbiAgICBjb25zdCByZWNvcmRJZEtleSA9ICh0eXBlb2YgcmVjb3JkSWQgPT09ICdvYmplY3QnKSA/IEpTT04uc3RyaW5naWZ5KHJlY29yZElkKSA6IHJlY29yZElkO1xuICAgIHJldHVybiAodGhpcy50YWJsZVJlY29yZE9iaiAmJiByZWNvcmRJZCAmJiB0aGlzLnRhYmxlUmVjb3JkT2JqW3JlY29yZElkXSlcbiAgICAgID8gdGhpcy50YWJsZVJlY29yZE9ialtyZWNvcmRJZF0gOiBudWxsO1xuICB9XG5cbiAgZ2V0QWN0aW9uKGFjdGlvbkNvZGUpIHtcbiAgICByZXR1cm4gKHRoaXMuX2FjdGlvbnNPYmogJiYgYWN0aW9uQ29kZSAmJiB0aGlzLl9hY3Rpb25zT2JqW2FjdGlvbkNvZGVdKVxuICAgICAgPyB0aGlzLl9hY3Rpb25zT2JqW2FjdGlvbkNvZGVdIDogbnVsbDtcbiAgfVxuXG4gIGdldEFjdGlvbnMoYWN0aW9uQ2xhc3M6IHN0cmluZyA9IHRoaXMuX2Zvcm1Db25maWcudGFibGVBY3Rpb25zLmlubGluZSwgYWN0aW9uVHlwZXM6IHN0cmluZ1tdID0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmZpbHRlcihhY3Rpb25EZWYgPT4ge1xuICAgICAgY29uc3QgdHlwZUluY2x1ZGVkID0gKGFjdGlvblR5cGVzKSA/IGFjdGlvblR5cGVzLmluY2x1ZGVzKGFjdGlvbkRlZi5hY3Rpb25UeXBlKSA6IHRydWU7XG4gICAgICByZXR1cm4gYWN0aW9uRGVmLmFjdGlvbkNsYXNzID09PSBhY3Rpb25DbGFzcyAmJiB0eXBlSW5jbHVkZWQ7XG4gICAgfSk7XG4gIH1cblxuICAvLyBGaWx0cm9zXG5cbiAgc2V0IHNpbXBsZUZpbHRlclRleHQoZmlsdGVyVGV4dCkge1xuICAgIGxldCB0ZXJtcyA9IChmaWx0ZXJUZXh0KSA/IGZpbHRlclRleHQuc3BsaXQoJyAnKSA6IG51bGw7XG4gICAgaWYgKHRlcm1zICYmIHRlcm1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRlcm1zID0gdGVybXMuZmlsdGVyKCh0ZXJtKSA9PiB0ZXJtICE9PSAnJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyT2JqZWN0LmZpbHRlck1vZGVTaW1wbGUgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyT2JqZWN0LnNpbXBsZUZpbHRlcldvcmRzID0gdGVybXMgfHwgW107XG4gIH1cblxuICBjaGFuZ2VGaWx0ZXJNb2RlKHRvU2ltcGxlKSB7XG4gICAgdGhpcy5maWx0ZXJPYmplY3QuZmlsdGVyTW9kZVNpbXBsZSA9IHRvU2ltcGxlO1xuICB9XG5cbiAgYWRkRmlsdGVyUmVzdHJpY3Rpb24oZmlsdGVyVGVybTogQWR2YW5jZWRGaWx0ZXJJdGVtKSB7XG4gICAgdGhpcy5maWx0ZXJPYmplY3QuYWR2YW5jZWRGaWx0ZXIucHVzaChmaWx0ZXJUZXJtKTtcbiAgfVxuXG4gIHJlbW92ZUZpbHRlclJlc3RyaWN0aW9uKGZpZWxkQ29kZSkge1xuICAgIGNvbnN0IGZpbHRlckluZGV4ID0gdGhpcy5maWx0ZXJPYmplY3QuYWR2YW5jZWRGaWx0ZXIuZmluZEluZGV4KChmaWx0ZXJEZWYpID0+IHtcbiAgICAgIHJldHVybiBmaWx0ZXJEZWYuZmllbGRTZWFyY2guZmllbGRDb2RlID09PSBmaWVsZENvZGU7XG4gICAgfSk7XG4gICAgY29uc3QgZmlsdGVyVG9SZW1vdmUgPSB0aGlzLmZpbHRlck9iamVjdC5hZHZhbmNlZEZpbHRlcltmaWx0ZXJJbmRleF07XG4gICAgdGhpcy5maWx0ZXJPYmplY3QuYWR2YW5jZWRGaWx0ZXIuc3BsaWNlKGZpbHRlckluZGV4LCAxKTtcbiAgICByZXR1cm4gZmlsdGVyVG9SZW1vdmU7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlRmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJDb25maWcuZmlsdGVyKChmaWVsZFNlYXJjaCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudEZpbHRlciA9IHRoaXMuZmlsdGVyT2JqZWN0LmFkdmFuY2VkRmlsdGVyLmZpbmQoKGZpbHRlckl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIGZpbHRlckl0ZW0uZmllbGRTZWFyY2guZmllbGRDb2RlID09PSBmaWVsZFNlYXJjaC5maWVsZENvZGU7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAhY3VycmVudEZpbHRlcjtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RmlsdGVyKCkge1xuICAgIGNvbnN0IGNvbXBhY3RGaWx0ZXI6IGFueSA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlck9iamVjdC5maWx0ZXJNb2RlU2ltcGxlKSB7XG4gICAgICBjb21wYWN0RmlsdGVyLnNpbXBsZUZpbHRlcldvcmRzID0gdGhpcy5maWx0ZXJPYmplY3Quc2ltcGxlRmlsdGVyV29yZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBhY3RGaWx0ZXIuYWR2YW5jZWRGaWx0ZXIgPSBbXTtcbiAgICAgIHRoaXMuZmlsdGVyT2JqZWN0LmFkdmFuY2VkRmlsdGVyLmZvckVhY2goKGNvbmRpdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzaW1wbGlmaWVkQ29uZGl0aW9uID0ge1xuICAgICAgICAgIGZpZWxkQ29kZTogY29uZGl0aW9uLmZpZWxkU2VhcmNoLmZpZWxkQ29kZSxcbiAgICAgICAgICBmaWVsZEFsaWFzOiBjb25kaXRpb24uZmllbGRTZWFyY2guZmllbGRBbGlhcyxcbiAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgIGZpZWxkVmFsdWUxOiBjb25kaXRpb24uZmllbGRWYWx1ZTEsXG4gICAgICAgICAgZmllbGRWYWx1ZTI6IGNvbmRpdGlvbi5maWVsZFZhbHVlMixcbiAgICAgICAgfTtcbiAgICAgICAgY29tcGFjdEZpbHRlci5hZHZhbmNlZEZpbHRlci5wdXNoKHNpbXBsaWZpZWRDb25kaXRpb24pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb21wYWN0RmlsdGVyO1xuICB9XG5cbiAgLy8gT3JkZW5hbWllbnRvXG5cbiAgc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZCkge1xuICAgIGlmIChjb2x1bW5GaWVsZCAhPT0gdGhpcy5zb3J0aW5nLmNvbHVtbk5hbWUpIHtcbiAgICAgIHRoaXMuc2V0QXR0cignc29ydGluZycsIHtcbiAgICAgICAgY29sdW1uTmFtZTogY29sdW1uRmllbGQsXG4gICAgICAgIGRpcmVjdGlvbjogVEFCTEVfU09SVF9BU0NFTkRJTkdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0YWJsZVNvcnQgPSB0aGlzLnNvcnRpbmc7XG4gICAgICB0YWJsZVNvcnQuZGlyZWN0aW9uID0gKHRhYmxlU29ydC5kaXJlY3Rpb24gPT09IFRBQkxFX1NPUlRfQVNDRU5ESU5HKSA/IFRBQkxFX1NPUlRfREVTQ0VORElORyA6IFRBQkxFX1NPUlRfQVNDRU5ESU5HO1xuICAgICAgdGhpcy5zZXRBdHRyKCdzb3J0aW5nJywgdGFibGVTb3J0KTtcbiAgICB9XG4gIH1cblxuICBsb2NhbFNvcnREYXRhKCkge1xuICAgIGlmICghdGhpcy5zb3J0aW5nLmNvbHVtbk5hbWUgfHwgIXRoaXMuc29ydGluZy5kaXJlY3Rpb24pIHsgcmV0dXJuOyB9XG4gICAgdGhpcy50YWJsZVJlY29yZHMuc29ydCgoYSwgYikgPT4gdGhpcy5yZWNvcmRDb21wYXJlKGEsIGIsIHRoaXMuc29ydGluZy5jb2x1bW5OYW1lLCB0aGlzLnNvcnRpbmcuZGlyZWN0aW9uKSk7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgcmVjb3JkQ29tcGFyZShyZWNvcmRBOiBUYWJsZVJlY29yZERhdGEsIHJlY29yZEI6IFRhYmxlUmVjb3JkRGF0YSwgY29sdW1uQ29tcGFyZSwgZGlyZWN0aW9uKSB7XG4gICAgY29uc3QgcmVjb3JkQUNvbHVtbiA9IHJlY29yZEEuZ2V0RmllbGRWYWx1ZShjb2x1bW5Db21wYXJlKTtcbiAgICBjb25zdCByZWNvcmRCQ29sdW1uID0gcmVjb3JkQi5nZXRGaWVsZFZhbHVlKGNvbHVtbkNvbXBhcmUpO1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGlmIChyZWNvcmRBQ29sdW1uIDwgcmVjb3JkQkNvbHVtbikge1xuICAgICAgcmVzdWx0ID0gLTE7XG4gICAgfSBlbHNlIGlmIChyZWNvcmRBQ29sdW1uID4gcmVjb3JkQkNvbHVtbikge1xuICAgICAgcmVzdWx0ID0gMTtcbiAgICB9XG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gVEFCTEVfU09SVF9BU0NFTkRJTkcgPyByZXN1bHQgOiAtcmVzdWx0O1xuICB9XG59XG4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsa0JBQWtCLEVBQUUsZUFBZTtJQUNuQyxrQkFBa0IsRUFBRSxlQUFlO0lBQ25DLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsbUJBQW1CLEVBQUUsZ0JBQWdCO0NBQ3RDLENBQUM7QUFxQkYsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBd0MxQyxZQUFZLGFBQWEsRUFBRSxVQUFVOztRQUNuQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBeENsQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQ2pELHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDakQsNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNwRCw0QkFB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QVMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBd0IsRUFBRSxPQUF3QixFQUFFLGFBQWEsRUFBRSxTQUFTO1FBQ3hGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLGFBQWEsR0FBRyxhQUFhLEVBQUU7WUFDakMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2I7YUFBTSxJQUFJLGFBQWEsR0FBRyxhQUFhLEVBQUU7WUFDeEMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNaO1FBQ0QsT0FBTyxTQUFTLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuLi9lbGVtZW50JztcbmltcG9ydCB7IEZpZWxkU2VhcmNoLCBGaWx0ZXIsIEFkdmFuY2VkRmlsdGVySXRlbSB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IFJlY29yZFRhYmxlQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW4nO1xuaW1wb3J0IHsgVGFibGVBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBUYWJsZVJlY29yZERhdGEgfSBmcm9tICcuL3Jvdy1kYXRhJztcblxuY29uc3QgVEFCTEVfU09SVF9BU0NFTkRJTkcgPSAnYXNjJztcbmNvbnN0IFRBQkxFX1NPUlRfREVTQ0VORElORyA9ICdkZXNjJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX0ZJTFRFUl9UWVBFUyA9IHtcbiAgc2ltcGxlRmlsdGVyQ2hhbmdlOiAnU0lNUExFX0NIQU5HRScsXG4gIHNpbXBsZUZpbHRlckZpbmlzaDogJ1NJTVBMRV9GSU5JU0gnLFxuICBjb21wbGV4RmlsdGVyQWRkOiAnQ09NUExFWF9BREQnLFxuICBjb21wbGV4RmlsdGVyUmVtb3ZlOiAnQ09NUExFWF9SRU1PVkUnLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUZpbHRlckV2ZW50IHtcbiAgZXZlbnRUeXBlOiBzdHJpbmc7XG4gIHNpbXBsZUZpbHRlclN0cmluZzogc3RyaW5nO1xuICBjb21wbGV4RmlsdGVySXRlbTogQWR2YW5jZWRGaWx0ZXJJdGVtO1xuICBpdGVtTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uRXZlbnQge1xuICBhY3Rpb25Db2RlOiBzdHJpbmc7XG4gIHJlY29yZElkOiBhbnk7XG4gIHJlY29yZERhdGE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUV2ZW50IHtcbiAgdGFibGVDb2RlOiBzdHJpbmc7XG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgYWN0aW9uRGV0YWlsOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRUYWJsZSBleHRlbmRzIEZvcm1FbGVtZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5saW5lQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dsb2JhbEFjdGlvblRyaWdnZXIgPSBuZXcgU3ViamVjdDxUYWJsZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWNvcmRTZWxlY3Rpb25UcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0aW9uQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldERhdGFUcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0cmlidXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwcml2YXRlIF90YWJsZUNvbHVtbk9iaiA9IHt9O1xuICBwcml2YXRlIF9hcHBlbmRQYWdlczogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfYWN0aW9uczogVGFibGVBY3Rpb25bXTtcbiAgcHJpdmF0ZSBfYWN0aW9uc09iaiA9IHt9O1xuXG4gIHRhYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW107XG4gIHRhYmxlUmVjb3JkT2JqID0ge307XG4gIHZpc2libGVSZWNvcmRzOiBUYWJsZVJlY29yZERhdGFbXTtcbiAgY29sdW1uczogUmVjb3JkVGFibGVDb2x1bW5bXTtcbiAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgc2VsZWN0aW9uQmFja2VuZDogYm9vbGVhbjtcbiAgc2VsZWN0aW9uRmllbGQ6IFJlY29yZFRhYmxlQ29sdW1uO1xuICBhbGxTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xuICB0YWJsZVRpdGxlOiBzdHJpbmc7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcmVxdWVzdGVkUGFnZTogbnVtYmVyO1xuICByZWNvcmRzUGVyUGFnZTogbnVtYmVyO1xuICB0b3RhbFJlY29yZHNOdW1iZXI6IG51bWJlcjtcbiAgcmVjb3Jkc051bWJlcjogbnVtYmVyO1xuICBzb3J0aW5nOiBhbnk7XG5cbiAgd2FpdGluZzogYm9vbGVhbjtcbiAgY2xpZW50UGFnaW5nOiBib29sZWFuO1xuXG4gIHNpbXBsZUZpbHRlcjogYm9vbGVhbjtcbiAgY29tcGxleEZpbHRlcjogYm9vbGVhbjtcbiAgc29ydGFibGU6IGJvb2xlYW47XG4gIGZpbHRlckNvbmZpZzogRmllbGRTZWFyY2hbXTtcbiAgZmlsdGVyT2JqZWN0OiBGaWx0ZXI7XG5cbiAgY29uc3RydWN0b3IodGFibGVSZWNlaXZlZCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHRhYmxlUmVjZWl2ZWQsIGZvcm1Db25maWcpO1xuICAgIHRoaXMuZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZXMudGFibGU7XG4gICAgdGhpcy53YWl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gMTtcbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSAxO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gW107XG4gICAgdGhpcy5fdGFibGVDb2x1bW5PYmogPSB7fTtcbiAgICB0aGlzLl9hY3Rpb25zID0gW107XG4gICAgdGhpcy5fYWN0aW9uc09iaiA9IHt9O1xuICAgIHRoaXMudGFibGVSZWNvcmRzID0gW107XG5cbiAgICB0aGlzLnNldEF0dHIoJ2FsbFNlbGVjdGVkJywgZmFsc2UpO1xuICAgIHRoaXMuc2V0QXR0cignZmlsdGVyT2JqZWN0JywgbmV3IEZpbHRlcigpKTtcbiAgICB0aGlzLnNldEF0dHIoJ2ZpbHRlckNvbmZpZycsIFtdKTtcbiAgICB0aGlzLnNldEF0dHIoJ3RhYmxlQ29kZScsIHRhYmxlUmVjZWl2ZWQudGFibGVDb2RlKTtcbiAgICB0aGlzLnRhYmxlVGl0bGUgPSB0YWJsZVJlY2VpdmVkLnRhYmxlVGl0bGU7XG4gICAgdGhpcy5zZXRBdHRyKCdjbGllbnRQYWdpbmcnLCB0YWJsZVJlY2VpdmVkPy5jbGllbnRQYWdpbmcgPz8gdHJ1ZSk7XG4gICAgdGhpcy5zZXRBdHRyKCdzaW1wbGVGaWx0ZXInLCB0YWJsZVJlY2VpdmVkPy5zaW1wbGVGaWx0ZXIgPz8gZmFsc2UpO1xuICAgIHRoaXMuc2V0QXR0cignY29tcGxleEZpbHRlcicsIGZhbHNlKTtcblxuICAgIHRoaXMuX2FwcGVuZFBhZ2VzID0gdGFibGVSZWNlaXZlZD8uYXBwZW5kID8/IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRhYmxlUmVjZWl2ZWQ/LnNlbGVjdGFibGUgPz8gZmFsc2U7XG4gICAgdGhpcy5zZXRBdHRyKCdzZWxlY3Rpb25CYWNrZW5kJywgdGFibGVSZWNlaXZlZD8uc2VsZWN0aW9uQmFja2VuZCA/PyBmYWxzZSk7XG4gICAgdGhpcy5zZXRBdHRyKCdzb3J0YWJsZScsIHRhYmxlUmVjZWl2ZWQ/LnNvcnRhYmxlID8/IGZhbHNlKTtcbiAgICB0aGlzLnNldEF0dHIoJ3NvcnRpbmcnLCB7IGNvbHVtbk5hbWU6ICcnLCBkaXJlY3Rpb246ICcnIH0pO1xuXG4gICAgdGhpcy5zZXRBdHRyKCdyZWNvcmRzUGVyUGFnZScsIGZvcm1Db25maWcuZGVmYXVsdFJlY29yZHNQZXJQYWdlKTtcbiAgICBpZiAodGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uUmVjZWl2ZWQgb2YgdGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uRGVmaW5pdGlvbiA9IG5ldyBSZWNvcmRUYWJsZUNvbHVtbihjb2x1bW5SZWNlaXZlZCwgdGhpcy5fZm9ybUNvbmZpZyk7XG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW5EZWZpbml0aW9uKTtcbiAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5PYmpbY29sdW1uRGVmaW5pdGlvbi5maWVsZENvZGVdID0gY29sdW1uRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0QXR0cignY29sdW1ucycsIGNvbHVtbnMpO1xuICAgIH1cbiAgICBpZiAodGFibGVSZWNlaXZlZC5hY3Rpb25zKSB7XG4gICAgICBjb25zdCB0YWJsZUFjdGlvbnMgPSB0YWJsZVJlY2VpdmVkLmFjdGlvbnMubWFwKG9iakRlZiA9PiB7XG4gICAgICAgIGxldCB2aXNpYmxlU3RhdGVzID0gb2JqRGVmLnZpc2libGVTdGF0ZXM7XG4gICAgICAgIGxldCBlbmFibGVkU3RhdGVzID0gb2JqRGVmLmVuYWJsZWRTdGF0ZXM7XG4gICAgICAgIGlmICghdmlzaWJsZVN0YXRlcykge1xuICAgICAgICAgIHZpc2libGVTdGF0ZXMgPSAob2JqRGVmLmFjdGlvbk1vZGVzIHx8ICcnKS5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKHN0YXRlID0+IHN0YXRlLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc3RhdGUgPT4gc3RhdGUubGVuZ3RoID4gMCk7XG4gICAgICAgICAgZW5hYmxlZFN0YXRlcyA9IChvYmpEZWYuYWN0aW9uTW9kZXMgfHwgJycpLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoc3RhdGUgPT4gc3RhdGUudHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5sZW5ndGggPiAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5vYmpEZWYsIHZpc2libGVTdGF0ZXMsIGVuYWJsZWRTdGF0ZXMgfTtcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBhY3Rpb25SZWNlaXZlZCBvZiB0YWJsZUFjdGlvbnMpIHtcbiAgICAgICAgY29uc3QgaW5saW5lQWN0aW9uID0gbmV3IFRhYmxlQWN0aW9uKGFjdGlvblJlY2VpdmVkKTtcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGlubGluZUFjdGlvbik7XG4gICAgICAgIHRoaXMuX2FjdGlvbnNPYmpbaW5saW5lQWN0aW9uLmFjdGlvbkNvZGVdID0gaW5saW5lQWN0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFibGVSZWNlaXZlZC5maWx0ZXJzICYmIHRhYmxlUmVjZWl2ZWQuZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNldEF0dHIoJ2NvbXBsZXhGaWx0ZXInLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZpbHRlckNvbmZpZyA9IHRoaXMuZmlsdGVyQ29uZmlnO1xuICAgICAgZm9yIChjb25zdCBmaWx0ZXJSZWNlaXZlZCBvZiB0YWJsZVJlY2VpdmVkLmZpbHRlcnMpIHtcbiAgICAgICAgY29uc3QgZmlsdGVySXRlbSA9IG5ldyBGaWVsZFNlYXJjaChmaWx0ZXJSZWNlaXZlZCk7XG4gICAgICAgIGZpbHRlckNvbmZpZy5wdXNoKGZpbHRlckl0ZW0pO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRBdHRyKCdmaWx0ZXJDb25maWcnLCBmaWx0ZXJDb25maWcpO1xuXG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRmllbGQgPSB0aGlzLmNvbHVtbnNcbiAgICAgICAgLmZpbmQoY29sdW1uID0+IGNvbHVtbi5maWVsZENvZGUgPT09IHRhYmxlUmVjZWl2ZWQ/LnNlbGVjdGlvbkZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaW5saW5lQWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX2lubGluZUFjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IGdsb2JhbEFjdGlvblRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9nbG9iYWxBY3Rpb25UcmlnZ2VyOyB9XG4gIGdldCBzZWxlY3Rpb25BY3Rpb25UcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fc2VsZWN0aW9uQWN0aW9uVHJpZ2dlcjsgfVxuICBnZXQgcmVjb3JkU2VsZWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX3JlY29yZFNlbGVjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IGdldERhdGFUcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fZ2V0RGF0YVRyaWdnZXI7IH1cbiAgZ2V0IGF0dHJpYnV0ZUNoYW5nZSgpIHsgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZUNoYW5nZTsgfVxuXG4gIGdldCBoYXNBY3Rpb25zKCkgeyByZXR1cm4gKHRoaXMuX2FjdGlvbnMubGVuZ3RoID4gMCk7IH1cbiAgZ2V0IHNlbGVjdGlvbkZpZWxkTmFtZSgpIHsgcmV0dXJuIHRoaXMuc2VsZWN0aW9uRmllbGQ/LmZpZWxkQ29kZSA/PyBudWxsOyB9XG4gIGdldCBjb2x1bW5OYW1lcygpIHsgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX3RhYmxlQ29sdW1uT2JqKTsgfVxuXG4gIGdldCByZWNvcmRzKCkgeyByZXR1cm4gdGhpcy52aXNpYmxlUmVjb3JkczsgfVxuICBzZXQgcmVjb3JkcyhyZWNvcmRzKSB7IHRoaXMucmVwbGFjZVJlY29yZHMocmVjb3Jkcyk7IH1cbiAgZ2V0IHNlbGVjdGVkUmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlY29yZHMuZmlsdGVyKHJlYyA9PiByZWMuc2VsZWN0ZWQpXG4gICAgICAubWFwKHJlYyA9PiByZWMucmVjb3JkSWQpO1xuICB9XG5cbiAgc2V0QXR0cihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzW25hbWVdID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2Zvcm1Db25maWcubW9uaXRvcmVkVGFibGVBdHRyaWJ1dGVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2UubmV4dCh7IG5hbWUsIHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFwcGVuZFJlY29yZHMocmVjb3JkcykgeyB0aGlzLnNldFRhYmxlUmVjb3JkcyhyZWNvcmRzLCB0cnVlKTsgfVxuICByZXBsYWNlUmVjb3JkcyhyZWNvcmRzKSB7IHRoaXMuc2V0VGFibGVSZWNvcmRzKHJlY29yZHMsIGZhbHNlKTsgfVxuICBjb2x1bW5EZWZpbml0aW9uKGZpZWxkQ29kZSkgeyByZXR1cm4gdGhpcy5fdGFibGVDb2x1bW5PYmpbZmllbGRDb2RlXTsgfVxuICBwdXRPbldhaXQoKSB7IHRoaXMud2FpdGluZyA9IHRydWU7IH1cbiAgZnJlZVdhaXRpbmcoKSB7IHRoaXMud2FpdGluZyA9IGZhbHNlOyB9XG4gIGdldEFjdGlvbk9iamVjdChhY3Rpb25Db2RlKSB7IHJldHVybiB0aGlzLmdldEFjdGlvbihhY3Rpb25Db2RlKTsgfVxuXG4gIG5vdGlmeUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlKSB7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlLFxuICAgICAgYWN0aW9uRGV0YWlsOiBudWxsXG4gICAgfTtcbiAgICB0aGlzLl9nbG9iYWxBY3Rpb25UcmlnZ2VyLm5leHQodGFibGVFdmVudCk7XG4gIH1cblxuICBub3RpZnlJbmxpbmVBY3Rpb24odGFibGVBY3Rpb25FdmVudDogVGFibGVBY3Rpb25FdmVudCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlRXZlbnQgPSB7XG4gICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVDb2RlLFxuICAgICAgYWN0aW9uQ29kZTogdGFibGVBY3Rpb25FdmVudC5hY3Rpb25Db2RlLFxuICAgICAgYWN0aW9uRGV0YWlsOiB7XG4gICAgICAgIHJlY29yZElkOiB0YWJsZUFjdGlvbkV2ZW50LnJlY29yZElkLFxuICAgICAgICByZWNvcmREYXRhOiB0YWJsZUFjdGlvbkV2ZW50LnJlY29yZERhdGFcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuX2lubGluZUFjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCkge1xuICAgIGNvbnN0IHJlY29yZCA9IHRoaXMuZ2V0VGFibGVSZWNvcmQocmVjb3JkSWQpO1xuICAgIGlmICghcmVjb3JkKSB7IHJldHVybjsgfVxuICAgIHJlY29yZC50b2dnbGVTZWxlY3QoKTtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGU6IG51bGwsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgcmVjb3JkSWQ6IHJlY29yZC5yZWNvcmRJZCxcbiAgICAgICAgcmVjb3JkRGF0YTogcmVjb3JkLnJlY29yZERhdGFcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVjb3JkU2VsZWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5U2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGUpIHtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiB0aGlzLnNlbGVjdGVkUmVjb3Jkc1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5fc2VsZWN0aW9uQWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlID0gbnVsbCkge1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSByZXF1ZXN0ZWRQYWdlIHx8IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlOiBudWxsLFxuICAgICAgYWN0aW9uRGV0YWlsOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5fZ2V0RGF0YVRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIGNsZWFuKCkge1xuICAgIHRoaXMudGFibGVSZWNvcmRzID0gW107XG4gICAgdGhpcy50YWJsZVJlY29yZE9iaiA9IHt9O1xuICB9XG5cbiAgc2VsZWN0QWxsKCkge1xuICAgIHRoaXMuc2V0QXR0cignYWxsU2VsZWN0ZWQnLCB0cnVlKTtcbiAgICB0aGlzLnRhYmxlUmVjb3Jkcy5mb3JFYWNoKHJlY29yZCA9PiByZWNvcmQuc2VsZWN0KCkpO1xuICB9XG5cbiAgdW5TZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zZXRBdHRyKCdhbGxTZWxlY3RlZCcsIGZhbHNlKTtcbiAgICB0aGlzLnRhYmxlUmVjb3Jkcy5mb3JFYWNoKHJlY29yZCA9PiByZWNvcmQudW5zZWxlY3QoKSk7XG4gIH1cblxuICBzZXRUYWJsZVJlY29yZHModGFibGVSZWNvcmRzLCBhcHBlbmQpIHtcbiAgICBpZiAoIWFwcGVuZCkgeyB0aGlzLmNsZWFuKCk7IH1cbiAgICBjb25zdCBuZXdSZWNvcmRzT2JqID0geyAuLi50aGlzLnRhYmxlUmVjb3JkT2JqIH07XG4gICAgY29uc3QgbmV3UmVjb3JkcyA9IFsuLi50aGlzLnRhYmxlUmVjb3Jkc107XG4gICAgZm9yIChjb25zdCB0YWJsZVJlY29yZCBvZiB0YWJsZVJlY29yZHMpIHtcbiAgICAgIGNvbnN0IHJlY29yZFJlY2VpdmVkOiBUYWJsZVJlY29yZERhdGEgPSBuZXcgVGFibGVSZWNvcmREYXRhKHRhYmxlUmVjb3JkLCB0aGlzLmNvbHVtbnMsXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uRmllbGQ/LmZpZWxkQ29kZSk7XG4gICAgICBjb25zdCByZWNvcmRJZEtleSA9IHJlY29yZFJlY2VpdmVkLnJlY29yZElkS2V5O1xuICAgICAgbmV3UmVjb3Jkcy5wdXNoKHJlY29yZFJlY2VpdmVkKTtcbiAgICAgIG5ld1JlY29yZHNPYmpbcmVjb3JkSWRLZXldID0gcmVjb3JkUmVjZWl2ZWQ7XG4gICAgfVxuICAgIHRoaXMudGFibGVSZWNvcmRzID0gbmV3UmVjb3JkcztcbiAgICB0aGlzLnRhYmxlUmVjb3JkT2JqID0gbmV3UmVjb3Jkc09iajtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICB1cGRhdGVWaXNpYmxlUmVjb3JkcygpIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50UGFnaW5nIHx8ICF0aGlzLnRhYmxlUmVjb3JkcyB8fCB0aGlzLnRhYmxlUmVjb3Jkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0QXR0cigndmlzaWJsZVJlY29yZHMnLCB0aGlzLnRhYmxlUmVjb3Jkcyk7XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZHNWaXNpYmxlID0gKHRoaXMuZmlsdGVyT2JqZWN0LmZpbHRlck1vZGVTaW1wbGUpXG4gICAgICA/IHRoaXMudGFibGVSZWNvcmRzLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkLmhhc1BhdHRlcm4odGhpcy5maWx0ZXJPYmplY3Quc2ltcGxlRmlsdGVyV29yZHMpKVxuICAgICAgOiB0aGlzLnRhYmxlUmVjb3Jkcy5maWx0ZXIocmVjb3JkID0+IHJlY29yZC5oYXNDb25kaXRpb24odGhpcy5maWx0ZXJPYmplY3QuYWR2YW5jZWRGaWx0ZXIpKTtcbiAgICB0aGlzLnNldEF0dHIoJ3Zpc2libGVSZWNvcmRzJywgcmVjb3Jkc1Zpc2libGUpO1xuICB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcih0YWJsZVJlY2VpdmVkKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdGFibGVSZWNlaXZlZD8udmlzaWJsZSB8fCB0cnVlO1xuICAgIHRoaXMuc2V0QXR0cignY3VycmVudFBhZ2UnLCBwYXJzZUludCh0YWJsZVJlY2VpdmVkLmN1cnJlbnRQYWdlLCAxMCkgfHwgMSk7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdGFibGVSZWNlaXZlZC50b3RhbFBhZ2VzIHx8IDE7XG4gICAgdGhpcy5zZXRBdHRyKCdyZWNvcmRzUGVyUGFnZScsIHRhYmxlUmVjZWl2ZWQucmVjb3Jkc1BlclBhZ2UpO1xuICAgIHRoaXMucmVjb3Jkc051bWJlciA9IHRhYmxlUmVjZWl2ZWQucmVjb3Jkc051bWJlcjtcbiAgICB0aGlzLnNldEF0dHIoJ3RvdGFsUmVjb3Jkc051bWJlcicsIHRhYmxlUmVjZWl2ZWQudG90YWxSZWNvcmRzTnVtYmVyKTtcbiAgICB0aGlzLnNldEF0dHIoJ3NvcnRpbmcnLCB7XG4gICAgICBjb2x1bW5OYW1lOiB0YWJsZVJlY2VpdmVkLnNvcnRpbmdDb2x1bW4gfHwgJycsXG4gICAgICBkaXJlY3Rpb246IHRhYmxlUmVjZWl2ZWQuc29ydGluZ0RpcmVjdGlvbiB8fCAnJ1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXF1ZXN0ZWRQYWdlID0gMTtcbiAgICB0aGlzLndhaXRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuY2xlYW4oKTtcbiAgICBpZiAodGhpcy5fYXBwZW5kUGFnZXMpIHtcbiAgICAgIHRoaXMucmVwbGFjZVJlY29yZHModGFibGVSZWNlaXZlZC50YWJsZVJlY29yZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFwcGVuZFJlY29yZHModGFibGVSZWNlaXZlZC50YWJsZVJlY29yZHMpO1xuICAgIH1cbiAgfVxuXG4gIGdldFRhYmxlUmVjb3JkKHJlY29yZElkKSB7XG4gICAgY29uc3QgcmVjb3JkSWRLZXkgPSAodHlwZW9mIHJlY29yZElkID09PSAnb2JqZWN0JykgPyBKU09OLnN0cmluZ2lmeShyZWNvcmRJZCkgOiByZWNvcmRJZDtcbiAgICByZXR1cm4gKHRoaXMudGFibGVSZWNvcmRPYmogJiYgcmVjb3JkSWQgJiYgdGhpcy50YWJsZVJlY29yZE9ialtyZWNvcmRJZF0pXG4gICAgICA/IHRoaXMudGFibGVSZWNvcmRPYmpbcmVjb3JkSWRdIDogbnVsbDtcbiAgfVxuXG4gIGdldEFjdGlvbihhY3Rpb25Db2RlKSB7XG4gICAgcmV0dXJuICh0aGlzLl9hY3Rpb25zT2JqICYmIGFjdGlvbkNvZGUgJiYgdGhpcy5fYWN0aW9uc09ialthY3Rpb25Db2RlXSlcbiAgICAgID8gdGhpcy5fYWN0aW9uc09ialthY3Rpb25Db2RlXSA6IG51bGw7XG4gIH1cblxuICBnZXRBY3Rpb25zKGFjdGlvbkNsYXNzOiBzdHJpbmcgPSB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5pbmxpbmUsIGFjdGlvblR5cGVzOiBzdHJpbmdbXSA9IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maWx0ZXIoYWN0aW9uRGVmID0+IHtcbiAgICAgIGNvbnN0IHR5cGVJbmNsdWRlZCA9IChhY3Rpb25UeXBlcykgPyBhY3Rpb25UeXBlcy5pbmNsdWRlcyhhY3Rpb25EZWYuYWN0aW9uVHlwZSkgOiB0cnVlO1xuICAgICAgcmV0dXJuIGFjdGlvbkRlZi5hY3Rpb25DbGFzcyA9PT0gYWN0aW9uQ2xhc3MgJiYgdHlwZUluY2x1ZGVkO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRmlsdHJvc1xuXG4gIHNldCBzaW1wbGVGaWx0ZXJUZXh0KGZpbHRlclRleHQpIHtcbiAgICBsZXQgdGVybXMgPSAoZmlsdGVyVGV4dCkgPyBmaWx0ZXJUZXh0LnNwbGl0KCcgJykgOiBudWxsO1xuICAgIGlmICh0ZXJtcyAmJiB0ZXJtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0ZXJtcyA9IHRlcm1zLmZpbHRlcigodGVybSkgPT4gdGVybSAhPT0gJycpO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlck9iamVjdC5maWx0ZXJNb2RlU2ltcGxlID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlck9iamVjdC5zaW1wbGVGaWx0ZXJXb3JkcyA9IHRlcm1zIHx8IFtdO1xuICB9XG5cbiAgY2hhbmdlRmlsdGVyTW9kZSh0b1NpbXBsZSkge1xuICAgIHRoaXMuZmlsdGVyT2JqZWN0LmZpbHRlck1vZGVTaW1wbGUgPSB0b1NpbXBsZTtcbiAgfVxuXG4gIGFkZEZpbHRlclJlc3RyaWN0aW9uKGZpbHRlclRlcm06IEFkdmFuY2VkRmlsdGVySXRlbSkge1xuICAgIHRoaXMuZmlsdGVyT2JqZWN0LmFkdmFuY2VkRmlsdGVyLnB1c2goZmlsdGVyVGVybSk7XG4gIH1cblxuICByZW1vdmVGaWx0ZXJSZXN0cmljdGlvbihmaWVsZENvZGUpIHtcbiAgICBjb25zdCBmaWx0ZXJJbmRleCA9IHRoaXMuZmlsdGVyT2JqZWN0LmFkdmFuY2VkRmlsdGVyLmZpbmRJbmRleCgoZmlsdGVyRGVmKSA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyRGVmLmZpZWxkU2VhcmNoLmZpZWxkQ29kZSA9PT0gZmllbGRDb2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbHRlclRvUmVtb3ZlID0gdGhpcy5maWx0ZXJPYmplY3QuYWR2YW5jZWRGaWx0ZXJbZmlsdGVySW5kZXhdO1xuICAgIHRoaXMuZmlsdGVyT2JqZWN0LmFkdmFuY2VkRmlsdGVyLnNwbGljZShmaWx0ZXJJbmRleCwgMSk7XG4gICAgcmV0dXJuIGZpbHRlclRvUmVtb3ZlO1xuICB9XG5cbiAgZ2V0IGF2YWlsYWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29uZmlnLmZpbHRlcigoZmllbGRTZWFyY2gpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSB0aGlzLmZpbHRlck9iamVjdC5hZHZhbmNlZEZpbHRlci5maW5kKChmaWx0ZXJJdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJJdGVtLmZpZWxkU2VhcmNoLmZpZWxkQ29kZSA9PT0gZmllbGRTZWFyY2guZmllbGRDb2RlO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gIWN1cnJlbnRGaWx0ZXI7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgY3VycmVudEZpbHRlcigpIHtcbiAgICBjb25zdCBjb21wYWN0RmlsdGVyOiBhbnkgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJPYmplY3QuZmlsdGVyTW9kZVNpbXBsZSkge1xuICAgICAgY29tcGFjdEZpbHRlci5zaW1wbGVGaWx0ZXJXb3JkcyA9IHRoaXMuZmlsdGVyT2JqZWN0LnNpbXBsZUZpbHRlcldvcmRzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wYWN0RmlsdGVyLmFkdmFuY2VkRmlsdGVyID0gW107XG4gICAgICB0aGlzLmZpbHRlck9iamVjdC5hZHZhbmNlZEZpbHRlci5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc2ltcGxpZmllZENvbmRpdGlvbiA9IHtcbiAgICAgICAgICBmaWVsZENvZGU6IGNvbmRpdGlvbi5maWVsZFNlYXJjaC5maWVsZENvZGUsXG4gICAgICAgICAgZmllbGRBbGlhczogY29uZGl0aW9uLmZpZWxkU2VhcmNoLmZpZWxkQWxpYXMsXG4gICAgICAgICAgb3BlcmF0b3I6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgICAgICBmaWVsZFZhbHVlMTogY29uZGl0aW9uLmZpZWxkVmFsdWUxLFxuICAgICAgICAgIGZpZWxkVmFsdWUyOiBjb25kaXRpb24uZmllbGRWYWx1ZTIsXG4gICAgICAgIH07XG4gICAgICAgIGNvbXBhY3RGaWx0ZXIuYWR2YW5jZWRGaWx0ZXIucHVzaChzaW1wbGlmaWVkQ29uZGl0aW9uKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGFjdEZpbHRlcjtcbiAgfVxuXG4gIC8vIE9yZGVuYW1pZW50b1xuXG4gIHNldFJlcXVpcmVkT3JkZXIoY29sdW1uRmllbGQpIHtcbiAgICBpZiAoY29sdW1uRmllbGQgIT09IHRoaXMuc29ydGluZy5jb2x1bW5OYW1lKSB7XG4gICAgICB0aGlzLnNldEF0dHIoJ3NvcnRpbmcnLCB7XG4gICAgICAgIGNvbHVtbk5hbWU6IGNvbHVtbkZpZWxkLFxuICAgICAgICBkaXJlY3Rpb246IFRBQkxFX1NPUlRfQVNDRU5ESU5HXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGFibGVTb3J0ID0gdGhpcy5zb3J0aW5nO1xuICAgICAgdGFibGVTb3J0LmRpcmVjdGlvbiA9ICh0YWJsZVNvcnQuZGlyZWN0aW9uID09PSBUQUJMRV9TT1JUX0FTQ0VORElORykgPyBUQUJMRV9TT1JUX0RFU0NFTkRJTkcgOiBUQUJMRV9TT1JUX0FTQ0VORElORztcbiAgICAgIHRoaXMuc2V0QXR0cignc29ydGluZycsIHRhYmxlU29ydCk7XG4gICAgfVxuICB9XG5cbiAgbG9jYWxTb3J0RGF0YSgpIHtcbiAgICBpZiAoIXRoaXMuc29ydGluZy5jb2x1bW5OYW1lIHx8ICF0aGlzLnNvcnRpbmcuZGlyZWN0aW9uKSB7IHJldHVybjsgfVxuICAgIHRoaXMudGFibGVSZWNvcmRzLnNvcnQoKGEsIGIpID0+IHRoaXMucmVjb3JkQ29tcGFyZShhLCBiLCB0aGlzLnNvcnRpbmcuY29sdW1uTmFtZSwgdGhpcy5zb3J0aW5nLmRpcmVjdGlvbikpO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIHJlY29yZENvbXBhcmUocmVjb3JkQTogVGFibGVSZWNvcmREYXRhLCByZWNvcmRCOiBUYWJsZVJlY29yZERhdGEsIGNvbHVtbkNvbXBhcmUsIGRpcmVjdGlvbikge1xuICAgIGNvbnN0IHJlY29yZEFDb2x1bW4gPSByZWNvcmRBLmdldEZpZWxkVmFsdWUoY29sdW1uQ29tcGFyZSk7XG4gICAgY29uc3QgcmVjb3JkQkNvbHVtbiA9IHJlY29yZEIuZ2V0RmllbGRWYWx1ZShjb2x1bW5Db21wYXJlKTtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBpZiAocmVjb3JkQUNvbHVtbiA8IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IC0xO1xuICAgIH0gZWxzZSBpZiAocmVjb3JkQUNvbHVtbiA+IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IDE7XG4gICAgfVxuICAgIHJldHVybiBkaXJlY3Rpb24gPT09IFRBQkxFX1NPUlRfQVNDRU5ESU5HID8gcmVzdWx0IDogLXJlc3VsdDtcbiAgfVxufVxuIl19
@@ -1,8 +1,9 @@
1
1
  import { Component, Input } from '@angular/core';
2
- const VALUE = '';
2
+ const VALUE = 'value';
3
+ const FOCUS = 'focus';
3
4
  export class FieldComponent {
4
5
  ngOnInit() {
5
- var _a, _b, _c;
6
+ var _a, _b;
6
7
  if (this.field) {
7
8
  this.formConfig = (_a = this.field) === null || _a === void 0 ? void 0 : _a._formConfig;
8
9
  // Inicialización
@@ -11,8 +12,9 @@ export class FieldComponent {
11
12
  const [fieldAttr1, compAttr1] = mapping[index];
12
13
  const compAttr = compAttr1.toString();
13
14
  const fieldAttr = fieldAttr1.toString();
14
- this.dafaultProcessFieldChange(compAttr, (_b = this.field) === null || _b === void 0 ? void 0 : _b[fieldAttr]);
15
- this.processFieldChange(compAttr, (_c = this.field) === null || _c === void 0 ? void 0 : _c[fieldAttr]);
15
+ const attributeValue = (_b = this.field) === null || _b === void 0 ? void 0 : _b[fieldAttr];
16
+ this.dafaultProcessFieldChange(compAttr, attributeValue);
17
+ this.processFieldChange(compAttr, attributeValue);
16
18
  }
17
19
  // Subscripción a cambios en atributos
18
20
  this.field.attributeChange.subscribe(event => {
@@ -28,6 +30,9 @@ export class FieldComponent {
28
30
  if (attribute === VALUE) {
29
31
  this.updateValue();
30
32
  }
33
+ else if (attribute === FOCUS) {
34
+ this.focus();
35
+ }
31
36
  else {
32
37
  this[attribute] = value;
33
38
  }
@@ -81,4 +86,4 @@ FieldComponent.propDecorators = {
81
86
  field: [{ type: Input }],
82
87
  state: [{ type: Input }]
83
88
  };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFBO0FBS2hCLE1BQU0sT0FBTyxjQUFjO0lBMEJ6QixRQUFROztRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxXQUFXLENBQUM7WUFDMUMsaUJBQWlCO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUM1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IE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZm9ybXMvZmllbGQnO1xuXG5jb25zdCBWQUxVRSA9ICcnXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZmllbGQnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUNvbmZpZzogYW55O1xuICAvLyBBdHJpYnV0b3Mgb2J0ZW5pZG9zIGVzdMOhdGljYW1lbnRlXG4gIGNvZGU6IHN0cmluZztcbiAgdmFsdWU6IGFueTtcbiAgZmllbGRJbmZvOiBzdHJpbmc7XG4gIGZpZWxkQWxpZ25tZW50OiBzdHJpbmc7XG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG5cbiAgLy8gQXRyaWJ1dG9zIGFjdHVhbGl6YWRvcyBwb3Igc3Vic2NyaXBjacOzblxuICBtYXhMZW5ndGg6IGFueTtcbiAgb25WYWxpZGF0aW9uOiBhbnk7XG4gIGNhcHR1cmVUeXBlOiBhbnk7XG4gIHRpdGxlOiBhbnk7XG4gIHR5cGU6IGFueTtcbiAgdmlzaWJsZUxhYmVsOiBhbnk7XG4gIHJlcXVpcmVkOiBhbnk7XG4gIG9wdGlvbnM6IGFueTtcblxuICBlcnJvclR5cGU6IGFueTtcbiAgZXJyb3JDb2RlOiBhbnk7XG4gIGVycm9yTWVzc2FnZTogYW55O1xuXG4gIEBJbnB1dCgpIGZpZWxkOiBGaWVsZERlc2NyaXB0b3I7XG4gIEBJbnB1dCgpIHN0YXRlOiBhbnk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuZmllbGQ/Ll9mb3JtQ29uZmlnO1xuICAgICAgLy8gSW5pY2lhbGl6YWNpw7NuXG4gICAgICBjb25zdCBtYXBwaW5nID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudEZpZWxkQXR0ck1hcCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcGluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgW2ZpZWxkQXR0cjEsIGNvbXBBdHRyMV0gPSBtYXBwaW5nW2luZGV4XTtcbiAgICAgICAgY29uc3QgY29tcEF0dHIgPSBjb21wQXR0cjEudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgZmllbGRBdHRyID0gZmllbGRBdHRyMS50b1N0cmluZygpO1xuICAgICAgICB0aGlzLmRhZmF1bHRQcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHRoaXMuZmllbGQ/LltmaWVsZEF0dHJdKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHRoaXMuZmllbGQ/LltmaWVsZEF0dHJdKTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgICAgdGhpcy5maWVsZC5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgeyBuYW1lOiBmaWVsZEF0dHIsIHZhbHVlIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY29tcEF0dHIgPSB0aGlzLmZvcm1Db25maWcuY29tcG9uZW50RmllbGRBdHRyTWFwW2ZpZWxkQXR0cl07XG4gICAgICAgIHRoaXMuZGFmYXVsdFByb2Nlc3NGaWVsZENoYW5nZShjb21wQXR0ciwgdmFsdWUpO1xuICAgICAgICB0aGlzLnByb2Nlc3NGaWVsZENoYW5nZShjb21wQXR0ciwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIGRhZmF1bHRQcm9jZXNzRmllbGRDaGFuZ2UoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gICAgaWYgKGF0dHJpYnV0ZSA9PT0gVkFMVUUpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJvY2Vzc0ZpZWxkQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSkgeyB9XG4gIHN0YXJ0KCkgeyB9XG4gIGZvY3VzKCkgeyB9XG5cbiAgdXBkYXRlT2JqZWN0KCkge1xuICAgIHRoaXMuZmllbGQuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBpbnB1dENoYW5nZWQoKSB7XG4gICAgdGhpcy5maWVsZC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlQ29udGVudCgpO1xuICB9XG5cbiAgaW5wdXRUeXBlZCgpIHtcbiAgICB0aGlzLmZpZWxkLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25JbnB1dENoYW5nZSgpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWUoKSB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZmllbGQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkLm5vdGlmeUVkaXRpb25QYXJ0aWFsKCksIDUwKTtcbiAgfVxuXG4gIG9uQ2hhbmdlQ29udGVudCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmllbGQubm90aWZ5RWRpdGlvbkZpbmlzaCgpLCA1MCk7XG4gIH1cblxuICBvblNob3dJbmZvKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZC5ub3RpZnlFZGl0aW9uRGV0YWlsUmVxdWVzdCgpLCA1MCk7XG4gIH1cblxuICBudW1iZXJJbnB1dFZhbGlkYXRpb24oZXZlbnQpIHtcbiAgICBjb25zdCBrID0gZXZlbnQuY2hhckNvZGU7XG4gICAgcmV0dXJuIChrID4gNDcgJiYgayA8IDU4KTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkPy52aXNpYmxlT24odGhpcy5zdGF0ZSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmZpZWxkPy5lbmFibGVkT24odGhpcy5zdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUt0QixNQUFNLE9BQU8sY0FBYztJQTRCekIsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLGlCQUFpQjtZQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLGNBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFHLFNBQVMsQ0FBQyxDQUFBO2dCQUM5QyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsa0JBQWtCLENB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QUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7b0JBMEJFLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG4gIC8vIEF0cmlidXRvcyBvYnRlbmlkb3MgZXN0w6F0aWNhbWVudGVcbiAgY29kZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBmaWVsZEluZm86IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcblxuICAvLyBBdHJpYnV0b3MgYWN0dWFsaXphZG9zIHBvciBzdWJzY3JpcGNpw7NuXG4gIG1heExlbmd0aDogYW55O1xuICBtaW5WYWx1ZTogYW55O1xuICBtYXhWYWx1ZTogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgc3RhdGU6IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5maWVsZD8uX2Zvcm1Db25maWc7XG4gICAgICAvLyBJbmljaWFsaXphY2nDs25cbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWcuY29tcG9uZW50RmllbGRBdHRyTWFwKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBbZmllbGRBdHRyMSwgY29tcEF0dHIxXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IGNvbXBBdHRyMS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBmaWVsZEF0dHIgPSBmaWVsZEF0dHIxLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5maWVsZD8uW2ZpZWxkQXR0cl1cbiAgICAgICAgdGhpcy5kYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICB9XG4gICAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICAgIHRoaXMuZmllbGQuYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZTogZmllbGRBdHRyLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGNvbXBBdHRyID0gdGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudEZpZWxkQXR0ck1hcFtmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRhZmF1bHRQcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBkYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IFZBTFVFKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NGaWVsZENoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuICBzdGFydCgpIHsgfVxuICBmb2N1cygpIHsgfVxuXG4gIHVwZGF0ZU9iamVjdCgpIHtcbiAgICB0aGlzLmZpZWxkLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZUNvbnRlbnQoKTtcbiAgfVxuXG4gIGlucHV0VHlwZWQoKSB7XG4gICAgdGhpcy5maWVsZC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpZWxkLmdldFZhbHVlKCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZC5ub3RpZnlFZGl0aW9uUGFydGlhbCgpLCA1MCk7XG4gIH1cblxuICBvbkNoYW5nZUNvbnRlbnQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkLm5vdGlmeUVkaXRpb25GaW5pc2goKSwgNTApO1xuICB9XG5cbiAgb25TaG93SW5mbygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmllbGQubm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoKSwgNTApO1xuICB9XG5cbiAgbnVtYmVySW5wdXRWYWxpZGF0aW9uKGV2ZW50KSB7XG4gICAgY29uc3QgayA9IGV2ZW50LmNoYXJDb2RlO1xuICAgIHJldHVybiAoayA+IDQ3ICYmIGsgPCA1OCk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZD8udmlzaWJsZU9uKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5maWVsZD8uZW5hYmxlZE9uKHRoaXMuc3RhdGUpO1xuICB9XG59XG4iXX0=
@@ -13,7 +13,6 @@ export class LibTableComponent {
13
13
  this.tableFieldStyles = this.formConfig.tableFieldStyles;
14
14
  this.selectable = this.table.selectable;
15
15
  this.hasActions = this.table.hasActions;
16
- this.table.widget = this;
17
16
  this.inlineActions = this.table.getActions(this.formConfig.tableActions.inline);
18
17
  this.globalActions = this.table.getActions(this.formConfig.tableActions.global);
19
18
  this.selectionActions = this.table.getActions(this.formConfig.tableActions.selection);
@@ -122,4 +121,4 @@ LibTableComponent.propDecorators = {
122
121
  state: [{ type: Input }],
123
122
  waiting: [{ type: Input }]
124
123
  };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBMkJFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7SUEwSHJCLENBQUM7SUEvR0MsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFD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QUFpQixFQUFFO1lBQ3JCLE1BQU0saUJBQWlCLEdBQUc7Z0JBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQy9CLGFBQWEsRUFBRSxDQUFDO2FBQ2pCLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsUUFBUTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDOzs7WUF0SkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O29CQThCRSxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSztvQkFDTCxLQUFLO3NCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuXG5pbXBvcnQgeyBSZWNvcmRUYWJsZSwgVGFibGVFdmVudCwgVGFibGVGaWx0ZXJFdmVudCwgVEFCTEVfRklMVEVSX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgTGliVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG5cbiAgLy8gQXRyaWJ1dG9zIHNpbmNyb25pemFkb3MgZGVsIG9iamV0b1xuICBjb2RlOiBhbnk7XG4gIHNlbGVjdGlvbkJhY2tlbmQ6IGFueTtcbiAgc2ltcGxlRmlsdGVyOiBhbnk7XG4gIGNvbXBsZXhGaWx0ZXI6IGFueTtcbiAgYWxsU2VsZWN0ZWQ6IGFueTtcbiAgY3VycmVudFBhZ2U6IGFueTtcbiAgdmlzaWJsZVJlY29yZHM6IGFueTtcbiAgcmVjb3Jkc1BlclBhZ2U6IGFueTtcbiAgY2xpZW50UGFnaW5nOiBhbnk7XG4gIGNvbHVtbnM6IGFueTtcbiAgc29ydGFibGU6IGFueTtcbiAgc29ydGluZzogYW55O1xuICB0b3RhbFJlY29yZHNOdW1iZXI6IGFueTtcbiAgZmlsdGVyQ29uZmlnOiBhbnk7XG4gIGZpbHRlck9iamVjdDogYW55O1xuXG4gIHRhYmxlRmllbGRTdHlsZXM6IGFueTtcbiAgbG9hZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgaGFzQWN0aW9ucyA9IGZhbHNlO1xuICBpbmxpbmVBY3Rpb25zOiBhbnk7XG4gIGdsb2JhbEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0aW9uQWN0aW9uczogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmxlOiBSZWNvcmRUYWJsZTtcbiAgQElucHV0KCkgdGFibGVSZWNvcmRzOiBUYWJsZVJlY29yZERhdGFbXTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdhaXRpbmc6IGJvb2xlYW47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMudGFibGUpIHtcbiAgICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMudGFibGU/Ll9mb3JtQ29uZmlnO1xuICAgICAgdGhpcy50YWJsZUZpZWxkU3R5bGVzID0gdGhpcy5mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXM7XG4gICAgICB0aGlzLnNlbGVjdGFibGUgPSB0aGlzLnRhYmxlLnNlbGVjdGFibGU7XG4gICAgICB0aGlzLmhhc0FjdGlvbnMgPSB0aGlzLnRhYmxlLmhhc0FjdGlvbnM7XG4gICAgICB0aGlzLnRhYmxlLndpZGdldCA9IHRoaXM7XG4gICAgICB0aGlzLmlubGluZUFjdGlvbnMgPSB0aGlzLnRhYmxlLmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5pbmxpbmUpO1xuICAgICAgdGhpcy5nbG9iYWxBY3Rpb25zID0gdGhpcy50YWJsZS5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuZ2xvYmFsKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQWN0aW9ucyA9IHRoaXMudGFibGUuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLnNlbGVjdGlvbik7XG4gICAgICAvLyBJbmljaWFsaXphY2nDs24gZGUgY2FtcG9zIG1hcGVhZG9zIGRlbCBvYmpldG9cbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWcuY29tcG9uZW50VGFibGVBdHRyTWFwKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBbdGFibGVBdHRyLCBjb21wQXR0cl0gPSBtYXBwaW5nW2luZGV4XTtcbiAgICAgICAgdGhpc1tjb21wQXR0ci50b1N0cmluZygpXSA9IHRoaXMudGFibGU/Llt0YWJsZUF0dHIudG9TdHJpbmcoKV07XG4gICAgICB9XG4gICAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICAgIHRoaXMudGFibGUuYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZTogdGFibGVBdHRyLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGNvbXBBdHRyID0gdGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudFRhYmxlQXR0ck1hcFt0YWJsZUF0dHJdO1xuICAgICAgICB0aGlzLmhhc093blByb3BlcnR5KGNvbXBBdHRyKSAmJiAodGhpc1tjb21wQXR0cl0gPSB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7IH1cblxuICB0YWJsZUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhYmxlLm5vdGlmeUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlKTtcbiAgfVxuXG4gIHRhYmxlU2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykge1xuICAgIHRoaXMudGFibGUubm90aWZ5U2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGUpO1xuICB9XG5cbiAgdGFibGVBY3Rpb25TZWxlY3RlZChhY3Rpb25FdmVudDogVGFibGVBY3Rpb25FdmVudCkge1xuICAgIHRoaXMudGFibGUubm90aWZ5SW5saW5lQWN0aW9uKGFjdGlvbkV2ZW50KTtcbiAgfVxuXG4gIHRhYmxlQ29sdW1uU29ydChjb2x1bW5GaWVsZENvZGUpIHtcbiAgICB0aGlzLnRhYmxlLnNldFJlcXVpcmVkT3JkZXIoY29sdW1uRmllbGRDb2RlKTtcbiAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhYmxlLmxvY2FsU29ydERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy50YWJsZS5ub3RpZnlHZXREYXRhQWN0aW9uKCk7XG4gIH1cblxuICBjaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2UpIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50UGFnaW5nKSB7XG4gICAgICB0aGlzLnRhYmxlLm5vdGlmeUdldERhdGFBY3Rpb24ocmVxdWVzdGVkUGFnZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlY29yZHMoKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2VSZWNvcmRzID0gdGhpcy52aXNpYmxlUmVjb3JkcztcbiAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcgJiYgY3VycmVudFBhZ2VSZWNvcmRzICYmIGN1cnJlbnRQYWdlUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRvdGFsUmVjb3Jkc051bWJlciA9IGN1cnJlbnRQYWdlUmVjb3Jkcy5sZW5ndGg7XG4gICAgICByZXR1cm4gY3VycmVudFBhZ2VSZWNvcmRzLm1hcCgocmVjb3JkLCBpKSA9PiAoeyBpZDogaSArIDEsIC4uLnJlY29yZCB9KSlcbiAgICAgICAgLnNsaWNlKCh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnJlY29yZHNQZXJQYWdlLFxuICAgICAgICAgICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnJlY29yZHNQZXJQYWdlICsgdGhpcy5yZWNvcmRzUGVyUGFnZSk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZVJlY29yZHM7XG4gIH1cblxuICBhcHBseUN1cnJlbnRGaWx0ZXIodGFibGVGaWx0ZXJFdmVudDogVGFibGVGaWx0ZXJFdmVudCkge1xuICAgIGNvbnN0IHsgZXZlbnRUeXBlIH0gPSB0YWJsZUZpbHRlckV2ZW50O1xuICAgIGxldCB0cmlnZ2VyRGF0YVVwZGF0ZSA9IGZhbHNlO1xuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJDaGFuZ2UgfHwgZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICB0aGlzLnRhYmxlLnNpbXBsZUZpbHRlclRleHQgPSB0YWJsZUZpbHRlckV2ZW50LnNpbXBsZUZpbHRlclN0cmluZy50cmltKCk7XG4gICAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgICAgdGhpcy50YWJsZS5zZXRBdHRyKCdjdXJyZW50UGFnZScsIDEpO1xuICAgICAgICB0aGlzLnRhYmxlLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLnNpbXBsZUZpbHRlckZpbmlzaCkge1xuICAgICAgICB0cmlnZ2VyRGF0YVVwZGF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5jb21wbGV4RmlsdGVyQWRkKSB7XG4gICAgICB0aGlzLnRhYmxlLmFkZEZpbHRlclJlc3RyaWN0aW9uKHRhYmxlRmlsdGVyRXZlbnQuY29tcGxleEZpbHRlckl0ZW0pO1xuICAgIH1cbiAgICBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuY29tcGxleEZpbHRlclJlbW92ZSkge1xuICAgICAgdGhpcy50YWJsZS5yZW1vdmVGaWx0ZXJSZXN0cmljdGlvbih0YWJsZUZpbHRlckV2ZW50Lml0ZW1OYW1lKTtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXJEYXRhVXBkYXRlKSB7XG4gICAgICBjb25zdCB0YWJsZUdldERhdGFFdmVudCA9IHtcbiAgICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlLnRhYmxlQ29kZSxcbiAgICAgICAgcmVxdWVzdGVkUGFnZTogMSxcbiAgICAgIH07XG4gICAgICB0aGlzLnRhYmxlLm5vdGlmeUdldERhdGFBY3Rpb24odGFibGVHZXREYXRhRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlU2VsZWN0aW9uVG9nZ2xlKHJlY29yZElkKSB7XG4gICAgdGhpcy50YWJsZS5ub3RpZnlSZWNvcmRTZWxlY3Rpb24ocmVjb3JkSWQpO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnRhYmxlLnVuU2VsZWN0QWxsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGUuc2VsZWN0QWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGF2YWlsYWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuYXZhaWxhYmxlRmlsdGVycztcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuc2VsZWN0ZWRSZWNvcmRzO1xuICB9XG59XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBMkJFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7SUF5SHJCLENBQUM7SUE5R0MsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7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QUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDL0IsYUFBYSxFQUFFLENBQUM7YUFDakIsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxRQUFRO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7OztZQXJKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7b0JBOEJFLEtBQUs7MkJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVSZWNvcmREYXRhIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS9yb3ctZGF0YSc7XG5pbXBvcnQgeyBUYWJsZUFjdGlvbkV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5cbmltcG9ydCB7IFJlY29yZFRhYmxlLCBUYWJsZUV2ZW50LCBUYWJsZUZpbHRlckV2ZW50LCBUQUJMRV9GSUxURVJfVFlQRVMgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaWJUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm1Db25maWc6IGFueTtcblxuICAvLyBBdHJpYnV0b3Mgc2luY3Jvbml6YWRvcyBkZWwgb2JqZXRvXG4gIGNvZGU6IGFueTtcbiAgc2VsZWN0aW9uQmFja2VuZDogYW55O1xuICBzaW1wbGVGaWx0ZXI6IGFueTtcbiAgY29tcGxleEZpbHRlcjogYW55O1xuICBhbGxTZWxlY3RlZDogYW55O1xuICBjdXJyZW50UGFnZTogYW55O1xuICB2aXNpYmxlUmVjb3JkczogYW55O1xuICByZWNvcmRzUGVyUGFnZTogYW55O1xuICBjbGllbnRQYWdpbmc6IGFueTtcbiAgY29sdW1uczogYW55O1xuICBzb3J0YWJsZTogYW55O1xuICBzb3J0aW5nOiBhbnk7XG4gIHRvdGFsUmVjb3Jkc051bWJlcjogYW55O1xuICBmaWx0ZXJDb25maWc6IGFueTtcbiAgZmlsdGVyT2JqZWN0OiBhbnk7XG5cbiAgdGFibGVGaWVsZFN0eWxlczogYW55O1xuICBsb2FkZWQgPSBmYWxzZTtcbiAgc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBoYXNBY3Rpb25zID0gZmFsc2U7XG4gIGlubGluZUFjdGlvbnM6IGFueTtcbiAgZ2xvYmFsQWN0aW9uczogYW55O1xuICBzZWxlY3Rpb25BY3Rpb25zOiBhbnk7XG5cbiAgQElucHV0KCkgdGFibGU6IFJlY29yZFRhYmxlO1xuICBASW5wdXQoKSB0YWJsZVJlY29yZHM6IFRhYmxlUmVjb3JkRGF0YVtdO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RhdGU6IHN0cmluZztcbiAgQElucHV0KCkgd2FpdGluZzogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJsZSkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy50YWJsZT8uX2Zvcm1Db25maWc7XG4gICAgICB0aGlzLnRhYmxlRmllbGRTdHlsZXMgPSB0aGlzLmZvcm1Db25maWcudGFibGVGaWVsZFN0eWxlcztcbiAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMudGFibGUuc2VsZWN0YWJsZTtcbiAgICAgIHRoaXMuaGFzQWN0aW9ucyA9IHRoaXMudGFibGUuaGFzQWN0aW9ucztcbiAgICAgIHRoaXMuaW5saW5lQWN0aW9ucyA9IHRoaXMudGFibGUuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLmlubGluZSk7XG4gICAgICB0aGlzLmdsb2JhbEFjdGlvbnMgPSB0aGlzLnRhYmxlLmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5nbG9iYWwpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25BY3Rpb25zID0gdGhpcy50YWJsZS5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuc2VsZWN0aW9uKTtcbiAgICAgIC8vIEluaWNpYWxpemFjacOzbiBkZSBjYW1wb3MgbWFwZWFkb3MgZGVsIG9iamV0b1xuICAgICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZy5jb21wb25lbnRUYWJsZUF0dHJNYXApO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IFt0YWJsZUF0dHIsIGNvbXBBdHRyXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICB0aGlzW2NvbXBBdHRyLnRvU3RyaW5nKCldID0gdGhpcy50YWJsZT8uW3RhYmxlQXR0ci50b1N0cmluZygpXTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgICAgdGhpcy50YWJsZS5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgeyBuYW1lOiB0YWJsZUF0dHIsIHZhbHVlIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY29tcEF0dHIgPSB0aGlzLmZvcm1Db25maWcuY29tcG9uZW50VGFibGVBdHRyTWFwW3RhYmxlQXR0cl07XG4gICAgICAgIHRoaXMuaGFzT3duUHJvcGVydHkoY29tcEF0dHIpICYmICh0aGlzW2NvbXBBdHRyXSA9IHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHsgfVxuXG4gIHRhYmxlR2xvYmFsQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykge1xuICAgIHRoaXMudGFibGUubm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpO1xuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZS5ub3RpZnlTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZSk7XG4gIH1cblxuICB0YWJsZUFjdGlvblNlbGVjdGVkKGFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7XG4gICAgdGhpcy50YWJsZS5ub3RpZnlJbmxpbmVBY3Rpb24oYWN0aW9uRXZlbnQpO1xuICB9XG5cbiAgdGFibGVDb2x1bW5Tb3J0KGNvbHVtbkZpZWxkQ29kZSkge1xuICAgIHRoaXMudGFibGUuc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZENvZGUpO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgcmV0dXJuIHRoaXMudGFibGUubG9jYWxTb3J0RGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlLm5vdGlmeUdldERhdGFBY3Rpb24oKTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UocmVxdWVzdGVkUGFnZSkge1xuICAgIGlmICghdGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHRoaXMudGFibGUubm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjb3JkcygpIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVJlY29yZHMgPSB0aGlzLnZpc2libGVSZWNvcmRzO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZyAmJiBjdXJyZW50UGFnZVJlY29yZHMgJiYgY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudG90YWxSZWNvcmRzTnVtYmVyID0gY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aDtcbiAgICAgIHJldHVybiBjdXJyZW50UGFnZVJlY29yZHMubWFwKChyZWNvcmQsIGkpID0+ICh7IGlkOiBpICsgMSwgLi4ucmVjb3JkIH0pKVxuICAgICAgICAuc2xpY2UoKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UsXG4gICAgICAgICAgKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UgKyB0aGlzLnJlY29yZHNQZXJQYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlUmVjb3JkcztcbiAgfVxuXG4gIGFwcGx5Q3VycmVudEZpbHRlcih0YWJsZUZpbHRlckV2ZW50OiBUYWJsZUZpbHRlckV2ZW50KSB7XG4gICAgY29uc3QgeyBldmVudFR5cGUgfSA9IHRhYmxlRmlsdGVyRXZlbnQ7XG4gICAgbGV0IHRyaWdnZXJEYXRhVXBkYXRlID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLnNpbXBsZUZpbHRlckNoYW5nZSB8fCBldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJGaW5pc2gpIHtcbiAgICAgIHRoaXMudGFibGUuc2ltcGxlRmlsdGVyVGV4dCA9IHRhYmxlRmlsdGVyRXZlbnQuc2ltcGxlRmlsdGVyU3RyaW5nLnRyaW0oKTtcbiAgICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgICB0aGlzLnRhYmxlLnNldEF0dHIoJ2N1cnJlbnRQYWdlJywgMSk7XG4gICAgICAgIHRoaXMudGFibGUudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLmNvbXBsZXhGaWx0ZXJBZGQpIHtcbiAgICAgIHRoaXMudGFibGUuYWRkRmlsdGVyUmVzdHJpY3Rpb24odGFibGVGaWx0ZXJFdmVudC5jb21wbGV4RmlsdGVySXRlbSk7XG4gICAgfVxuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5jb21wbGV4RmlsdGVyUmVtb3ZlKSB7XG4gICAgICB0aGlzLnRhYmxlLnJlbW92ZUZpbHRlclJlc3RyaWN0aW9uKHRhYmxlRmlsdGVyRXZlbnQuaXRlbU5hbWUpO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlckRhdGFVcGRhdGUpIHtcbiAgICAgIGNvbnN0IHRhYmxlR2V0RGF0YUV2ZW50ID0ge1xuICAgICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGUudGFibGVDb2RlLFxuICAgICAgICByZXF1ZXN0ZWRQYWdlOiAxLFxuICAgICAgfTtcbiAgICAgIHRoaXMudGFibGUubm90aWZ5R2V0RGF0YUFjdGlvbih0YWJsZUdldERhdGFFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25Ub2dnbGUocmVjb3JkSWQpIHtcbiAgICB0aGlzLnRhYmxlLm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMudGFibGUudW5TZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZS5zZWxlY3RBbGwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlRmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5hdmFpbGFibGVGaWx0ZXJzO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkUmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5zZWxlY3RlZFJlY29yZHM7XG4gIH1cbn1cbiJdfQ==