@trudb/tru-common-lib 0.1.644 → 0.1.646

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.
@@ -55,7 +55,10 @@ export class TruDetailViewBase {
55
55
  this.navigateTo(this.navigationIndex + 1);
56
56
  };
57
57
  onCloneEntity = () => {
58
- this.desktopManager.addModalWindow(this.tableName, this.tableName, this.tableName, 'TruCloneView', this.entities, this.navigationIndex, this.dataContext, false, false, false);
58
+ let windowEventArgs = this.desktopManager.addModalWindow(this.tableName, this.tableName, this.tableName, 'TruCloneView', this.entities, this.navigationIndex, this.dataContext, false, false, false);
59
+ windowEventArgs.onClose$.subscribe(() => {
60
+ alert('');
61
+ });
59
62
  };
60
63
  onDeleteEntity = () => {
61
64
  let confirmMsg = this.textManager.fmtDeleteConfirmation(this.entityType.name);
@@ -155,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
155
158
  }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruAppEnvironment }, { type: i3.TruTextManager }, { type: i4.TruDesktopManager }, { type: i5.TruWindowEventHandler }, { type: i6.TruDesktopViewEventNotifier }, { type: i7.TruUtil }], propDecorators: { view: [{
156
159
  type: Input
157
160
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFlL0MsTUFBTSxPQUFPLGlCQUFpQjtJQWVoQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXBCSCxJQUFJLENBQXdCO0lBRXJDLFNBQVMsQ0FBTTtJQUNmLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsTUFBTSxDQUFNO0lBQ1osVUFBVSxDQUFNO0lBQ2hCLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLGlDQUFpQyxHQUFZLEtBQUssQ0FBQztJQUNuRCw2QkFBNkIsR0FBWSxLQUFLLENBQUM7SUFDL0MsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixtQkFBbUIsR0FBVyxDQUFDLENBQUM7SUFDaEMsSUFBSSxHQUF3QixFQUFFLENBQUM7SUFFL0IsWUFDWSxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxrQkFBeUMsRUFDekMsd0JBQXFELEVBQ3JELElBQWE7UUFOYixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQUN6Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTZCO1FBQ3JELFNBQUksR0FBSixJQUFJLENBQVM7SUFDekIsQ0FBQztJQUVPLGtCQUFrQixHQUFHLEdBQVcsRUFBRTtRQUN4QyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3JFLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ2pELFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDbEMsQ0FBQztZQUNKLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUM7WUFDZixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxDQUFDLFNBQWMsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQyxTQUFTO1lBQ1osU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFDOUIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsV0FBVyxFQUNoQixLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFBO0lBRUQsY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQyxDQUFBO0lBRUQsYUFBYSxHQUFHLEdBQUcsRUFBRTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQTtJQUVELGdCQUFnQixHQUFHLEdBQUcsRUFBRTtRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFBO0lBRUQsWUFBWSxHQUFHLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFBO0lBRUQsWUFBWSxHQUFHLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQTtJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzVFLElBQUksS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxNQUFNO2dCQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBZ0IsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUM5RixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN6RCxxQkFBcUI7b0JBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxJQUFJLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3RCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxJQUFJLFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxJQUFJLFdBQVcsS0FBSyxXQUFXLElBQUksV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixDQUFDO2dCQUNELElBQUksV0FBVyxLQUFLLFlBQVksSUFBSSxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixDQUFDO2dCQUNELElBQUksV0FBVyxLQUFLLFdBQVcsSUFBSSxXQUFXLEtBQUssV0FBVyxFQUFFLENBQUM7b0JBQy9ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixDQUFDO2dCQUNELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTTtvQkFDbkQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsU0FBaUI7UUFDdEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxLQUFLLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQzlDLEtBQUssSUFBSSxZQUFZLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMzQixDQUFDO1lBQ0QsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3BFLENBQUM7dUdBMUpVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHNGQ2hCOUIsRUFBQTs7MkZEZ0JhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxzQkFBc0I7b1JBS3ZCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFZpZXdDb25maWcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rlc2t0b3AvY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVUZXh0TWFuYWdlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS10ZXh0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0V2ZW50Tm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LWRlc2t0b3Atdmlldy1ldmVudC1ub3RpZmllcic7XHJcbmltcG9ydCB7IFRydVV0aWwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtdXRpbCc7XHJcbmltcG9ydCB7IFRydURlc2t0b3BNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtZGV0YWlsLXZpZXctYmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXRhaWwtdmlldy1iYXNlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1kZXRhaWwtdmlldy1iYXNlLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEZXRhaWxWaWV3QmFzZSB7XHJcbiAgQElucHV0KCkgdmlldyE6IFRydURlc2t0b3BWaWV3Q29uZmlnO1xyXG5cclxuICB0YWJsZU5hbWU6IGFueTtcclxuICBlbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGVudGl0eTogYW55O1xyXG4gIGVudGl0eVR5cGU6IGFueTtcclxuICByZWNvcmRMb2NhdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub05leHRFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBuYXZpZ2F0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc0JlZm9yZVJldmVydDogbnVtYmVyID0gMDtcclxuICBzdWJzOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByb3RlY3RlZCBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcm90ZWN0ZWQgdGV4dE1hbmFnZXI6IFRydVRleHRNYW5hZ2VyLFxyXG4gICAgcHJvdGVjdGVkIGRlc2t0b3BNYW5hZ2VyOiBUcnVEZXNrdG9wTWFuYWdlciwgXHJcbiAgICBwcm90ZWN0ZWQgd2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIsXHJcbiAgICBwcm90ZWN0ZWQgZGVza3RvcFZpZXdFdmVudE5vdGlmaWVyOiBUcnVEZXNrdG9wVmlld0V2ZW50Tm90aWZpZXIsXHJcbiAgICBwcm90ZWN0ZWQgdXRpbDogVHJ1VXRpbCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVOZXh0SW5kZXggPSAoKTogbnVtYmVyID0+IHtcclxuICAgIGxldCBuZXh0SW5kZXggPSAwO1xyXG4gICAgdmFyIHJlbW92ZWRSZWNvcmRzID0gdGhpcy5yZWNvcmRzQmVmb3JlUmV2ZXJ0IC0gdGhpcy5lbnRpdGllcy5sZW5ndGg7XHJcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uSW5kZXggPiB0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDEpXHJcbiAgICAgIG5leHRJbmRleCA9IHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBuZXh0SW5kZXggPSAodGhpcy5uYXZpZ2F0aW9uSW5kZXggLSByZW1vdmVkUmVjb3Jkcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5leHRJbmRleCA8IDApXHJcbiAgICAgIG5leHRJbmRleCA9IDA7XHJcblxyXG4gICAgcmV0dXJuIG5leHRJbmRleDtcclxuICB9XHJcblxyXG4gIG9uQWRkRW50aXR5ID0gKG5ld0VudGl0eTogYW55KSA9PiB7XHJcbiAgICBpZiAoIW5ld0VudGl0eSlcclxuICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHlUeXBlKTtcclxuICAgIHRoaXMuZW50aXRpZXMuc3BsaWNlKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSwgMCwgbmV3RW50aXR5KTtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9uZUVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMuZGVza3RvcE1hbmFnZXIuYWRkTW9kYWxXaW5kb3coXHJcbiAgICAgIHRoaXMudGFibGVOYW1lLFxyXG4gICAgICB0aGlzLnRhYmxlTmFtZSxcclxuICAgICAgdGhpcy50YWJsZU5hbWUsICdUcnVDbG9uZVZpZXcnLFxyXG4gICAgICB0aGlzLmVudGl0aWVzLFxyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JbmRleCxcclxuICAgICAgdGhpcy5kYXRhQ29udGV4dCxcclxuICAgICAgZmFsc2UsXHJcbiAgICAgIGZhbHNlLFxyXG4gICAgICBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZUVudGl0eSA9ICgpID0+IHtcclxuICAgIGxldCBjb25maXJtTXNnID0gdGhpcy50ZXh0TWFuYWdlci5mbXREZWxldGVDb25maXJtYXRpb24odGhpcy5lbnRpdHlUeXBlLm5hbWUpO1xyXG4gICAgdGhpcy5kYXRhQ29udGV4dC5kZWxldGUoW3RoaXMuZW50aXR5XSwgY29uZmlybU1zZywgKCkgPT4geyByZXR1cm4gdHJ1ZTsgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZpcnN0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKDApO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aW91c0VudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgb25OZXh0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSk7XHJcbiAgfVxyXG5cclxuICBvbkxhc3RFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5lbnRpdGllcy5sZW5ndGggLSAxKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG8gPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgdGhpcy5zZXROYXZpZ2F0aW9uSW5kZXgoaW5kZXgpO1xyXG4gICAgdGhpcy5zZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRoaXMudGFibGVOYW1lKTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSgpIHtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25SZXZlcnRDb21wbGV0ZSQuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChldmVudD8uc3VjY2Vzc2Z1bCAmJiB0aGlzLnZpZXcuZW50aXRpZXMpIHtcclxuICAgICAgICB0aGlzLnJlY29yZHNCZWZvcmVSZXZlcnQgPSB0aGlzLmVudGl0aWVzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmVudGl0aWVzID0gdGhpcy5lbnRpdGllcy5maWx0ZXIoKGU6IGFueSkgPT4geyByZXR1cm4gIWUuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGV0YWNoZWQoKSB9KTtcclxuICAgICAgICB0aGlzLnNldE5hdmlnYXRpb25JbmRleCh0aGlzLmNhbGN1bGF0ZU5leHRJbmRleCgpKTtcclxuICAgICAgICB0aGlzLnNldEVudGl0eURpc3BsYXlWYWx1ZXModGhpcy50YWJsZU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnZpZXcub25BY3RpdmUoKS5zdWJzY3JpYmUoKGFjdGl2ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoYWN0aXZlKVxyXG4gICAgICAgIHRoaXMuc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaChmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy52aWV3LmFjdGl2ZSkge1xyXG4gICAgICAgIGxldCBrZXlTZXF1ZW5jZSA9IHRoaXMudXRpbC5nZXRLZXlTZXF1ZW5jZShldmVudCk7XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtpJyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGEraScpIHtcclxuICAgICAgICAgIC8vdGhpcy5vbkFkZEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtkJyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGErZCcpIHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGVFbnRpdHkoKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2N0cmwrdXAnIHx8IGtleVNlcXVlbmNlID09PSAnbWV0YSt1cCcpIHtcclxuICAgICAgICAgIHRoaXMub25GaXJzdEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtsZWZ0JyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGErbGVmdCcpIHtcclxuICAgICAgICAgIHRoaXMub25QcmV2aW91c0VudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtyaWdodCcgfHwga2V5U2VxdWVuY2UgPT09ICdtZXRhK3JpZ2h0Jykge1xyXG4gICAgICAgICAgdGhpcy5vbk5leHRFbnRpdHkoKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2N0cmwrZG93bicgfHwga2V5U2VxdWVuY2UgPT09ICdtZXRhK2Rvd24nKSB7XHJcbiAgICAgICAgICB0aGlzLm9uTGFzdEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldElzQ29udHJvbCA9IHRoaXMudXRpbC50YXJnZXRJc0NvbnRyb2woZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcclxuICAgICAgICBpZiAoIXRhcmdldElzQ29udHJvbCAmJiBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSlcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHNldE5hdmlnYXRpb25JbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25JbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvblRvUHJldmlvdXNFbnRpdHkgPSBpbmRleCA9PT0gMDtcclxuICAgIHRoaXMuZGlzYWJsZU5hdmlnYXRpb25Ub05leHRFbnRpdHkgPSBpbmRleCA9PT0gdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLmVudGl0aWVzW3RoaXMubmF2aWdhdGlvbkluZGV4XTtcclxuICB9XHJcblxyXG4gIHNldEVudGl0eURpc3BsYXlWYWx1ZXModGFibGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCB0aXRsZSA9ICcnO1xyXG4gICAgbGV0IHJlY29yZEluZGV4ID0gJz8nO1xyXG4gICAgbGV0IGVudGl0eSA9IHRoaXMuZW50aXRpZXNbdGhpcy5uYXZpZ2F0aW9uSW5kZXhdO1xyXG4gICAgaWYgKGVudGl0eSkge1xyXG4gICAgICB0aXRsZSA9IHRhYmxlTmFtZSArICcgLSAnO1xyXG4gICAgICBpZiAoZW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZS5pc0FkZGVkKCkpIHtcclxuICAgICAgICB0aXRsZSArPSAnTmV3IFJlY29yZCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGUgKz0gdGhpcy5lbnRpdHkuSElEO1xyXG4gICAgICB9XHJcbiAgICAgIHJlY29yZEluZGV4ID0gKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMud2luZG93RXZlbnRIYW5kbGVyLnNldFdpbmRvd1RpdGxlKHRoaXMudGV4dE1hbmFnZXIuZm9ybWF0V2luZG93VGl0bGUodGl0bGUpKTtcclxuICAgIHRoaXMucmVjb3JkTG9jYXRpb24gPSByZWNvcmRJbmRleCArICcgb2YgJyArIHRoaXMuZW50aXRpZXMubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCIiXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFlL0MsTUFBTSxPQUFPLGlCQUFpQjtJQWVoQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXBCSCxJQUFJLENBQXdCO0lBRXJDLFNBQVMsQ0FBTTtJQUNmLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsTUFBTSxDQUFNO0lBQ1osVUFBVSxDQUFNO0lBQ2hCLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLGlDQUFpQyxHQUFZLEtBQUssQ0FBQztJQUNuRCw2QkFBNkIsR0FBWSxLQUFLLENBQUM7SUFDL0MsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixtQkFBbUIsR0FBVyxDQUFDLENBQUM7SUFDaEMsSUFBSSxHQUF3QixFQUFFLENBQUM7SUFFL0IsWUFDWSxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxrQkFBeUMsRUFDekMsd0JBQXFELEVBQ3JELElBQWE7UUFOYixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7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Q0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMzQixDQUFDO1lBQ0QsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3BFLENBQUM7dUdBN0pVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHNGQ2hCOUIsRUFBQTs7MkZEZ0JhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxzQkFBc0I7b1JBS3ZCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFZpZXdDb25maWcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rlc2t0b3AvY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVUZXh0TWFuYWdlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS10ZXh0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0V2ZW50Tm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LWRlc2t0b3Atdmlldy1ldmVudC1ub3RpZmllcic7XHJcbmltcG9ydCB7IFRydVV0aWwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtdXRpbCc7XHJcbmltcG9ydCB7IFRydURlc2t0b3BNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtZGV0YWlsLXZpZXctYmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXRhaWwtdmlldy1iYXNlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1kZXRhaWwtdmlldy1iYXNlLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEZXRhaWxWaWV3QmFzZSB7XHJcbiAgQElucHV0KCkgdmlldyE6IFRydURlc2t0b3BWaWV3Q29uZmlnO1xyXG5cclxuICB0YWJsZU5hbWU6IGFueTtcclxuICBlbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGVudGl0eTogYW55O1xyXG4gIGVudGl0eVR5cGU6IGFueTtcclxuICByZWNvcmRMb2NhdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub05leHRFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBuYXZpZ2F0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc0JlZm9yZVJldmVydDogbnVtYmVyID0gMDtcclxuICBzdWJzOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByb3RlY3RlZCBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcm90ZWN0ZWQgdGV4dE1hbmFnZXI6IFRydVRleHRNYW5hZ2VyLFxyXG4gICAgcHJvdGVjdGVkIGRlc2t0b3BNYW5hZ2VyOiBUcnVEZXNrdG9wTWFuYWdlciwgXHJcbiAgICBwcm90ZWN0ZWQgd2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIsXHJcbiAgICBwcm90ZWN0ZWQgZGVza3RvcFZpZXdFdmVudE5vdGlmaWVyOiBUcnVEZXNrdG9wVmlld0V2ZW50Tm90aWZpZXIsXHJcbiAgICBwcm90ZWN0ZWQgdXRpbDogVHJ1VXRpbCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVOZXh0SW5kZXggPSAoKTogbnVtYmVyID0+IHtcclxuICAgIGxldCBuZXh0SW5kZXggPSAwO1xyXG4gICAgdmFyIHJlbW92ZWRSZWNvcmRzID0gdGhpcy5yZWNvcmRzQmVmb3JlUmV2ZXJ0IC0gdGhpcy5lbnRpdGllcy5sZW5ndGg7XHJcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uSW5kZXggPiB0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDEpXHJcbiAgICAgIG5leHRJbmRleCA9IHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBuZXh0SW5kZXggPSAodGhpcy5uYXZpZ2F0aW9uSW5kZXggLSByZW1vdmVkUmVjb3Jkcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5leHRJbmRleCA8IDApXHJcbiAgICAgIG5leHRJbmRleCA9IDA7XHJcblxyXG4gICAgcmV0dXJuIG5leHRJbmRleDtcclxuICB9XHJcblxyXG4gIG9uQWRkRW50aXR5ID0gKG5ld0VudGl0eTogYW55KSA9PiB7XHJcbiAgICBpZiAoIW5ld0VudGl0eSlcclxuICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHlUeXBlKTtcclxuICAgIHRoaXMuZW50aXRpZXMuc3BsaWNlKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSwgMCwgbmV3RW50aXR5KTtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9uZUVudGl0eSA9ICgpID0+IHtcclxuICAgIGxldCB3aW5kb3dFdmVudEFyZ3MgPSB0aGlzLmRlc2t0b3BNYW5hZ2VyLmFkZE1vZGFsV2luZG93KFxyXG4gICAgICB0aGlzLnRhYmxlTmFtZSxcclxuICAgICAgdGhpcy50YWJsZU5hbWUsXHJcbiAgICAgIHRoaXMudGFibGVOYW1lLCAnVHJ1Q2xvbmVWaWV3JyxcclxuICAgICAgdGhpcy5lbnRpdGllcyxcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSW5kZXgsXHJcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQsXHJcbiAgICAgIGZhbHNlLFxyXG4gICAgICBmYWxzZSxcclxuICAgICAgZmFsc2UpO1xyXG4gICAgd2luZG93RXZlbnRBcmdzLm9uQ2xvc2UkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGFsZXJ0KCcnKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZUVudGl0eSA9ICgpID0+IHtcclxuICAgIGxldCBjb25maXJtTXNnID0gdGhpcy50ZXh0TWFuYWdlci5mbXREZWxldGVDb25maXJtYXRpb24odGhpcy5lbnRpdHlUeXBlLm5hbWUpO1xyXG4gICAgdGhpcy5kYXRhQ29udGV4dC5kZWxldGUoW3RoaXMuZW50aXR5XSwgY29uZmlybU1zZywgKCkgPT4geyByZXR1cm4gdHJ1ZTsgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZpcnN0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKDApO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aW91c0VudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgb25OZXh0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSk7XHJcbiAgfVxyXG5cclxuICBvbkxhc3RFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5lbnRpdGllcy5sZW5ndGggLSAxKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG8gPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgdGhpcy5zZXROYXZpZ2F0aW9uSW5kZXgoaW5kZXgpO1xyXG4gICAgdGhpcy5zZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRoaXMudGFibGVOYW1lKTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSgpIHtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25SZXZlcnRDb21wbGV0ZSQuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChldmVudD8uc3VjY2Vzc2Z1bCAmJiB0aGlzLnZpZXcuZW50aXRpZXMpIHtcclxuICAgICAgICB0aGlzLnJlY29yZHNCZWZvcmVSZXZlcnQgPSB0aGlzLmVudGl0aWVzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmVudGl0aWVzID0gdGhpcy5lbnRpdGllcy5maWx0ZXIoKGU6IGFueSkgPT4geyByZXR1cm4gIWUuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGV0YWNoZWQoKSB9KTtcclxuICAgICAgICB0aGlzLnNldE5hdmlnYXRpb25JbmRleCh0aGlzLmNhbGN1bGF0ZU5leHRJbmRleCgpKTtcclxuICAgICAgICB0aGlzLnNldEVudGl0eURpc3BsYXlWYWx1ZXModGhpcy50YWJsZU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnZpZXcub25BY3RpdmUoKS5zdWJzY3JpYmUoKGFjdGl2ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoYWN0aXZlKVxyXG4gICAgICAgIHRoaXMuc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaChmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy52aWV3LmFjdGl2ZSkge1xyXG4gICAgICAgIGxldCBrZXlTZXF1ZW5jZSA9IHRoaXMudXRpbC5nZXRLZXlTZXF1ZW5jZShldmVudCk7XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtpJyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGEraScpIHtcclxuICAgICAgICAgIC8vdGhpcy5vbkFkZEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtkJyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGErZCcpIHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGVFbnRpdHkoKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2N0cmwrdXAnIHx8IGtleVNlcXVlbmNlID09PSAnbWV0YSt1cCcpIHtcclxuICAgICAgICAgIHRoaXMub25GaXJzdEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtsZWZ0JyB8fCBrZXlTZXF1ZW5jZSA9PT0gJ21ldGErbGVmdCcpIHtcclxuICAgICAgICAgIHRoaXMub25QcmV2aW91c0VudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVNlcXVlbmNlID09PSAnY3RybCtyaWdodCcgfHwga2V5U2VxdWVuY2UgPT09ICdtZXRhK3JpZ2h0Jykge1xyXG4gICAgICAgICAgdGhpcy5vbk5leHRFbnRpdHkoKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2N0cmwrZG93bicgfHwga2V5U2VxdWVuY2UgPT09ICdtZXRhK2Rvd24nKSB7XHJcbiAgICAgICAgICB0aGlzLm9uTGFzdEVudGl0eSgpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRhcmdldElzQ29udHJvbCA9IHRoaXMudXRpbC50YXJnZXRJc0NvbnRyb2woZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcclxuICAgICAgICBpZiAoIXRhcmdldElzQ29udHJvbCAmJiBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSlcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHNldE5hdmlnYXRpb25JbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25JbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvblRvUHJldmlvdXNFbnRpdHkgPSBpbmRleCA9PT0gMDtcclxuICAgIHRoaXMuZGlzYWJsZU5hdmlnYXRpb25Ub05leHRFbnRpdHkgPSBpbmRleCA9PT0gdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLmVudGl0aWVzW3RoaXMubmF2aWdhdGlvbkluZGV4XTtcclxuICB9XHJcblxyXG4gIHNldEVudGl0eURpc3BsYXlWYWx1ZXModGFibGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCB0aXRsZSA9ICcnO1xyXG4gICAgbGV0IHJlY29yZEluZGV4ID0gJz8nO1xyXG4gICAgbGV0IGVudGl0eSA9IHRoaXMuZW50aXRpZXNbdGhpcy5uYXZpZ2F0aW9uSW5kZXhdO1xyXG4gICAgaWYgKGVudGl0eSkge1xyXG4gICAgICB0aXRsZSA9IHRhYmxlTmFtZSArICcgLSAnO1xyXG4gICAgICBpZiAoZW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZS5pc0FkZGVkKCkpIHtcclxuICAgICAgICB0aXRsZSArPSAnTmV3IFJlY29yZCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGUgKz0gdGhpcy5lbnRpdHkuSElEO1xyXG4gICAgICB9XHJcbiAgICAgIHJlY29yZEluZGV4ID0gKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMud2luZG93RXZlbnRIYW5kbGVyLnNldFdpbmRvd1RpdGxlKHRoaXMudGV4dE1hbmFnZXIuZm9ybWF0V2luZG93VGl0bGUodGl0bGUpKTtcclxuICAgIHRoaXMucmVjb3JkTG9jYXRpb24gPSByZWNvcmRJbmRleCArICcgb2YgJyArIHRoaXMuZW50aXRpZXMubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCIiXX0=
@@ -21,7 +21,7 @@ export class TruDataGridCellRenderer {
21
21
  params.eGridCell.appendChild(this.validationContainer);
22
22
  params.eGridCell.appendChild(validationFlag);
23
23
  document.addEventListener('mouseover', this.onMouseOver);
24
- params.eGridCell.setAttribute('style', new TruUtil().rulesEval(params.data[params.colDef.field].rules(params.data.$entity)));
24
+ Object.assign(params.eGridCell.style, new TruUtil().rulesEval(params.data[params.colDef.field].rules(params.data.$entity)));
25
25
  }
26
26
  getGui() {
27
27
  return this.eGui;
@@ -33,4 +33,4 @@ export class TruDataGridCellRenderer {
33
33
  document.removeEventListener('mouseover', this.onMouseOver);
34
34
  }
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC1jZWxsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9jbGFzc2VzL3RydS1kYXRhLWdyaWQtY2VsbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFckQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxzRUFBc0U7SUFDOUQsSUFBSSxDQUFpQjtJQUNyQixtQkFBbUIsQ0FBa0I7SUFFN0MsV0FBVyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTTtZQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hKLENBQUMsQ0FBQTtJQUVELElBQUksQ0FBQyxNQUFXO1FBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDdkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDckQsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxjQUFjLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUUxQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6RCxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtJQUNsQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcnVVdGlsIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RydS11dGlsXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1RGF0YUdyaWRDZWxsUmVuZGVyZXIge1xyXG4gIC8vIHByaXZhdGUgZUd1aTogaXMgYW4gZW1wdHkgZWxlbWVudCB0byBzYXRpc2Z5IHRoZSBnZXRHdWkgbWV0aG9kLiAgICBcclxuICBwcml2YXRlIGVHdWkhOiBIVE1MRGl2RWxlbWVudFxyXG4gIHByaXZhdGUgdmFsaWRhdGlvbkNvbnRhaW5lciE6IEhUTUxEaXZFbGVtZW50O1xyXG5cclxuICBvbk1vdXNlT3ZlciA9IChlOiBhbnkpID0+IHtcclxuICAgIGlmIChlLnRhcmdldClcclxuICAgICAgZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdpbnZhbGlkLWZsYWcnKSA/IHRoaXMudmFsaWRhdGlvbkNvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCdzaG93JykgOiB0aGlzLnZhbGlkYXRpb25Db250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xyXG4gIH1cclxuXHJcbiAgaW5pdChwYXJhbXM6IGFueSkge1xyXG4gICAgcGFyYW1zLmVHcmlkQ2VsbC5pbm5lckhUTUwgPSAnJztcclxuICAgIGxldCB2YWx1ZSA9IHBhcmFtcy52YWx1ZTtcclxuICAgIGlmIChwYXJhbXMudmFsdWUgPT09IG51bGwpXHJcbiAgICAgIHZhbHVlID0gJyc7XHJcbiAgICBcclxuICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodmFsdWUpO1xyXG4gICAgcGFyYW1zLmVHcmlkQ2VsbC5hcHBlbmRDaGlsZChjb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMudmFsaWRhdGlvbkNvbnRhaW5lci5jbGFzc05hbWUgPSAnZGlhbG9nLXRhcmdldCc7XHJcbiAgICBsZXQgdmFsaWRhdGlvbkZsYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICB2YWxpZGF0aW9uRmxhZy5jbGFzc05hbWUgPSAnaW52YWxpZC1mbGFnJztcclxuXHJcbiAgICBwYXJhbXMuZUdyaWRDZWxsLmFwcGVuZENoaWxkKHRoaXMudmFsaWRhdGlvbkNvbnRhaW5lcik7XHJcbiAgICBwYXJhbXMuZUdyaWRDZWxsLmFwcGVuZENoaWxkKHZhbGlkYXRpb25GbGFnKTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLm9uTW91c2VPdmVyKTtcclxuXHJcbiAgICBwYXJhbXMuZUdyaWRDZWxsLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBuZXcgVHJ1VXRpbCgpLnJ1bGVzRXZhbChwYXJhbXMuZGF0YVtwYXJhbXMuY29sRGVmLmZpZWxkXS5ydWxlcyhwYXJhbXMuZGF0YS4kZW50aXR5KSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3VpKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZUd1aVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLm9uTW91c2VPdmVyKTtcclxuICB9XHJcbn1cclxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC1jZWxsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9jbGFzc2VzL3RydS1kYXRhLWdyaWQtY2VsbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFckQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxzRUFBc0U7SUFDOUQsSUFBSSxDQUFpQjtJQUNyQixtQkFBbUIsQ0FBa0I7SUFFN0MsV0FBVyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTTtZQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hKLENBQUMsQ0FBQTtJQUVELElBQUksQ0FBQyxNQUFXO1FBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDdkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUViLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDckQsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxjQUFjLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUUxQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6RCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJ1VXRpbCB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy90cnUtdXRpbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRydURhdGFHcmlkQ2VsbFJlbmRlcmVyIHtcclxuICAvLyBwcml2YXRlIGVHdWk6IGlzIGFuIGVtcHR5IGVsZW1lbnQgdG8gc2F0aXNmeSB0aGUgZ2V0R3VpIG1ldGhvZC4gICAgXHJcbiAgcHJpdmF0ZSBlR3VpITogSFRNTERpdkVsZW1lbnRcclxuICBwcml2YXRlIHZhbGlkYXRpb25Db250YWluZXIhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgb25Nb3VzZU92ZXIgPSAoZTogYW55KSA9PiB7XHJcbiAgICBpZiAoZS50YXJnZXQpXHJcbiAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnaW52YWxpZC1mbGFnJykgPyB0aGlzLnZhbGlkYXRpb25Db250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycpIDogdGhpcy52YWxpZGF0aW9uQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICB9XHJcblxyXG4gIGluaXQocGFyYW1zOiBhbnkpIHtcclxuICAgIHBhcmFtcy5lR3JpZENlbGwuaW5uZXJIVE1MID0gJyc7XHJcbiAgICBsZXQgdmFsdWUgPSBwYXJhbXMudmFsdWU7XHJcbiAgICBpZiAocGFyYW1zLnZhbHVlID09PSBudWxsKVxyXG4gICAgICB2YWx1ZSA9ICcnO1xyXG4gICAgXHJcbiAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHZhbHVlKTtcclxuICAgIHBhcmFtcy5lR3JpZENlbGwuYXBwZW5kQ2hpbGQoY29udGVudCk7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0aW9uQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25Db250YWluZXIuY2xhc3NOYW1lID0gJ2RpYWxvZy10YXJnZXQnO1xyXG4gICAgbGV0IHZhbGlkYXRpb25GbGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgdmFsaWRhdGlvbkZsYWcuY2xhc3NOYW1lID0gJ2ludmFsaWQtZmxhZyc7XHJcblxyXG4gICAgcGFyYW1zLmVHcmlkQ2VsbC5hcHBlbmRDaGlsZCh0aGlzLnZhbGlkYXRpb25Db250YWluZXIpO1xyXG4gICAgcGFyYW1zLmVHcmlkQ2VsbC5hcHBlbmRDaGlsZCh2YWxpZGF0aW9uRmxhZyk7XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgdGhpcy5vbk1vdXNlT3Zlcik7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihwYXJhbXMuZUdyaWRDZWxsLnN0eWxlLCBuZXcgVHJ1VXRpbCgpLnJ1bGVzRXZhbChwYXJhbXMuZGF0YVtwYXJhbXMuY29sRGVmLmZpZWxkXS5ydWxlcyhwYXJhbXMuZGF0YS4kZW50aXR5KSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3VpKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZUd1aVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLm9uTW91c2VPdmVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -8,6 +8,7 @@ export class TruDesktopEventHandler {
8
8
  }
9
9
  open(windowEvent) {
10
10
  this.open$.next(windowEvent);
11
+ return windowEvent;
11
12
  }
12
13
  openCustom(windowEvent) {
13
14
  this.open$.next(windowEvent);
@@ -21,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
21
22
  providedIn: 'root'
22
23
  }]
23
24
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLWV2ZW50LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVEvQixNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLEtBQUssR0FBZ0MsSUFBSSxPQUFPLEVBQXNCLENBQUM7SUFFL0UsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDLFdBQStCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBK0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0FiVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEFyZ3MgfSBmcm9tICcuL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURlc2t0b3BWaWV3Q29uZmlnIH0gZnJvbSAnLi4vY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wRXZlbnRIYW5kbGVyIHtcclxuICBwcml2YXRlIG9wZW4kOiBTdWJqZWN0PFRydVdpbmRvd0V2ZW50QXJncz4gPSBuZXcgU3ViamVjdDxUcnVXaW5kb3dFdmVudEFyZ3M+KCk7XHJcblxyXG4gIG9uT3BlbigpIHtcclxuICAgIHJldHVybiB0aGlzLm9wZW4kO1xyXG4gIH1cclxuXHJcbiAgb3Blbih3aW5kb3dFdmVudDogVHJ1V2luZG93RXZlbnRBcmdzKSB7XHJcbiAgICB0aGlzLm9wZW4kLm5leHQod2luZG93RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkN1c3RvbSh3aW5kb3dFdmVudDogVHJ1V2luZG93RXZlbnRBcmdzKSB7XHJcbiAgICB0aGlzLm9wZW4kLm5leHQod2luZG93RXZlbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLWV2ZW50LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVMvQixNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLEtBQUssR0FBZ0MsSUFBSSxPQUFPLEVBQXNCLENBQUM7SUFFL0UsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDLFdBQStCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBK0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0FkVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEFyZ3MgfSBmcm9tICcuL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURlc2t0b3BWaWV3Q29uZmlnIH0gZnJvbSAnLi4vY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcbmltcG9ydCB7IFdpbmRvd0NvbmZpZyB9IGZyb20gJy4vdHJ1LWRlc2t0b3Atc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wRXZlbnRIYW5kbGVyIHtcclxuICBwcml2YXRlIG9wZW4kOiBTdWJqZWN0PFRydVdpbmRvd0V2ZW50QXJncz4gPSBuZXcgU3ViamVjdDxUcnVXaW5kb3dFdmVudEFyZ3M+KCk7XHJcblxyXG4gIG9uT3BlbigpIHtcclxuICAgIHJldHVybiB0aGlzLm9wZW4kO1xyXG4gIH1cclxuXHJcbiAgb3Blbih3aW5kb3dFdmVudDogVHJ1V2luZG93RXZlbnRBcmdzKTogVHJ1V2luZG93RXZlbnRBcmdzIHtcclxuICAgIHRoaXMub3BlbiQubmV4dCh3aW5kb3dFdmVudCk7XHJcbiAgICByZXR1cm4gd2luZG93RXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvcGVuQ3VzdG9tKHdpbmRvd0V2ZW50OiBUcnVXaW5kb3dFdmVudEFyZ3MpIHtcclxuICAgIHRoaXMub3BlbiQubmV4dCh3aW5kb3dFdmVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -44,7 +44,7 @@ export class TruDesktopManager {
44
44
  this.desktopEventHandler.open(this.getWindowEvent(tableName, tablePluralName, tablePluralLabel, false, componentName, entities, 0, openAsDetaiView));
45
45
  };
46
46
  addModalWindow = (tableName, tablePluralName, tablePluralLabel, componentName, entities = [], entityIndex = 0, parentDataContext, openAsDetaiView = false, showNavigation = false, showIfExists) => {
47
- this.desktopEventHandler.open(this.getWindowEvent(tableName, tablePluralName, tablePluralLabel, true, componentName, entities, entityIndex, openAsDetaiView, showNavigation, parentDataContext));
47
+ return this.desktopEventHandler.open(this.getWindowEvent(tableName, tablePluralName, tablePluralLabel, true, componentName, entities, entityIndex, openAsDetaiView, showNavigation, parentDataContext));
48
48
  };
49
49
  addWindowForQueryResult = (tableName, tablePluralName, tablePluralLabel, componentName, entities = [], openAsDetaiView = false, showNavigation = true, showIfExists) => {
50
50
  this.desktopEventHandler.open(this.getWindowEvent(tableName, tablePluralName, tablePluralLabel, false, componentName, entities, 0, openAsDetaiView));
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
95
95
  providedIn: 'root'
96
96
  }]
97
97
  }], ctorParameters: () => [{ type: i1.TruContextFilters }, { type: i2.TruDesktopEventHandler }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU03RCxNQUFNLE9BQU8saUJBQWlCO0lBR2xCO0lBQ0E7SUFGVixZQUNVLGNBQWlDLEVBQ2pDLG1CQUEyQztRQUQzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtJQUFJLENBQUM7SUFFMUQsY0FBYyxHQUFHLENBQ2YsU0FBaUIsRUFDakIsZUFBdUIsRUFDdkIsZ0JBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGFBQXFCLEVBQ3JCLFdBQWlDLEVBQUUsRUFDbkMsY0FBc0IsQ0FBQyxFQUN2QixrQkFBMkIsS0FBSyxFQUNoQyxpQkFBMEIsSUFBSSxFQUM5QixvQkFBMkMsSUFBSSxFQUFzQixFQUFFO1FBRXZFLElBQUksV0FBVyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNsQyxXQUFXLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUM5QyxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDaEQsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM5QixXQUFXLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUM1QyxXQUFXLENBQUMsaUJB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QUFNLENBQUM7WUFDTixFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDckIsSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNaLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxDQUFDO29CQUMxQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDMUMsQ0FBQztvQkFDSixFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQTt1R0FoSlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuaW1wb3J0IHsgVHJ1Q29udGV4dEZpbHRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdHJ1LWNvbnRleHQtZmlsdGVyc1wiO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVGl0bGUgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtZGVza3RvcC10aXRsZVwiO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wRXZlbnRIYW5kbGVyIH0gZnJvbSBcIi4vdHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlclwiO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEFyZ3MgfSBmcm9tICcuL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BNYW5hZ2VyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbnRleHRGaWx0ZXJzOiBUcnVDb250ZXh0RmlsdGVycyxcclxuICAgIHByaXZhdGUgZGVza3RvcEV2ZW50SGFuZGxlcjogVHJ1RGVza3RvcEV2ZW50SGFuZGxlcikgeyB9XHJcblxyXG4gIGdldFdpbmRvd0V2ZW50ID0gKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbE5hbWU6IHN0cmluZyxcclxuICAgIHRhYmxlUGx1cmFsTGFiZWw6IHN0cmluZyxcclxuICAgIGlzTW9kYWw6IGJvb2xlYW4sXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIGVudGl0eUluZGV4OiBudW1iZXIgPSAwLFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBwYXJlbnREYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsID0gbnVsbCk6IFRydVdpbmRvd0V2ZW50QXJncyA9PiB7XHJcblxyXG4gICAgdmFyIHdpbmRvd0V2ZW50ID0gbmV3IFRydVdpbmRvd0V2ZW50QXJncygpO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVOYW1lID0gdGFibGVOYW1lO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVQbHVyYWxOYW1lID0gdGFibGVQbHVyYWxOYW1lO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVQbHVyYWxMYWJlbCA9IHRhYmxlUGx1cmFsTGFiZWw7XHJcbiAgICB3aW5kb3dFdmVudC5jb250ZXh0RmlsdGVycyA9IHRoaXMuY29udGV4dEZpbHRlcnMuZmlsdGVycztcclxuICAgIHdpbmRvd0V2ZW50LmlzTW9kYWwgPSBpc01vZGFsO1xyXG4gICAgd2luZG93RXZlbnQuc2hvd05hdmlnYXRpb24gPSBzaG93TmF2aWdhdGlvbjtcclxuICAgIHdpbmRvd0V2ZW50LnBhcmVudERhdGFDb250ZXh0ID0gcGFyZW50RGF0YUNvbnRleHQ7XHJcblxyXG4gICAgd2luZG93RXZlbnQudmlld3MgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBhY3RpdmU6IHRydWUsXHJcbiAgICAgICAgZW50aXRpZXM6IGVudGl0aWVzLFxyXG4gICAgICAgIGVudGl0eUluZGV4OiBlbnRpdHlJbmRleCxcclxuICAgICAgICBpc0RpcnR5OiBmYWxzZSxcclxuICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGlzSW52YWxpZDogZmFsc2UsXHJcbiAgICAgICAgb3BlbkFzRGV0YWlWaWV3OiBvcGVuQXNEZXRhaVZpZXcsXHJcbiAgICAgICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50TmFtZVxyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIHdpbmRvd0V2ZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSB3aW5kb3cgZm9yIGEgZGlyZWN0aXZlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3RpdmVOYW1lIC0gbmFtZSBvZiB0aGUgdmlldyBkaXJlY3RpdmUuXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSB2YWx1ZXMgdG8gcGFzcyB0byB0aGUgdmlldy5cclxuICAgKiBAcGFyYW0ge29wdGlvbmFsIGJvb2x9IHNob3dJZkV4aXN0cyAtIGlmIHRydWUgYW5kIGEgdmlldyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhlIFxyXG4gICAqIGRpcmVjdGl2ZSwgdGhlbiBzaG93cyBpdHMgd2luZG93IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLlxyXG4gICAqL1xyXG4gIGFkZFdpbmRvdyA9IChcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgdGFibGVQbHVyYWxOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIG9wZW5Bc0RldGFpVmlldzogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgc2hvd05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgc2hvd0lmRXhpc3RzPzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5kZXNrdG9wRXZlbnRIYW5kbGVyLm9wZW4odGhpcy5nZXRXaW5kb3dFdmVudChcclxuICAgICAgdGFibGVOYW1lLFxyXG4gICAgICB0YWJsZVBsdXJhbE5hbWUsXHJcbiAgICAgIHRhYmxlUGx1cmFsTGFiZWwsXHJcbiAgICAgIGZhbHNlLFxyXG4gICAgICBjb21wb25lbnROYW1lLFxyXG4gICAgICBlbnRpdGllcyxcclxuICAgICAgMCxcclxuICAgICAgb3BlbkFzRGV0YWlWaWV3KSk7XHJcbiAgfVxyXG5cclxuICBhZGRNb2RhbFdpbmRvdyA9IChcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgdGFibGVQbHVyYWxOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIGVudGl0eUluZGV4OiBudW1iZXIgPSAwLFxyXG4gICAgcGFyZW50RGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgc2hvd0lmRXhpc3RzPzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5kZXNrdG9wRXZlbnRIYW5kbGVyLm9wZW4odGhpcy5nZXRXaW5kb3dFdmVudChcclxuICAgICAgdGFibGVOYW1lLFxyXG4gICAgICB0YWJsZVBsdXJhbE5hbWUsXHJcbiAgICAgIHRhYmxlUGx1cmFsTGFiZWwsXHJcbiAgICAgIHRydWUsXHJcbiAgICAgIGNvbXBvbmVudE5hbWUsXHJcbiAgICAgIGVudGl0aWVzLFxyXG4gICAgICBlbnRpdHlJbmRleCxcclxuICAgICAgb3BlbkFzRGV0YWlWaWV3LFxyXG4gICAgICBzaG93TmF2aWdhdGlvbixcclxuICAgICAgcGFyZW50RGF0YUNvbnRleHQpKTtcclxuICB9XHJcblxyXG4gIGFkZFdpbmRvd0ZvclF1ZXJ5UmVzdWx0ID0gKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbE5hbWU6IHN0cmluZyxcclxuICAgIHRhYmxlUGx1cmFsTGFiZWw6IHN0cmluZyxcclxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcclxuICAgIGVudGl0aWVzOiBBcnJheTxUcnVFbnRpdHlCYXNlPiA9IFtdLFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBzaG93SWZFeGlzdHM/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmRlc2t0b3BFdmVudEhhbmRsZXIub3Blbih0aGlzLmdldFdpbmRvd0V2ZW50KHRhYmxlTmFtZSwgdGFibGVQbHVyYWxOYW1lLCB0YWJsZVBsdXJhbExhYmVsLCBmYWxzZSwgY29tcG9uZW50TmFtZSwgZW50aXRpZXMsIDAsIG9wZW5Bc0RldGFpVmlldykpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tV2luZG93ID0gKFxyXG4gICAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogb2JqZWN0IHwgbnVsbCA9IG51bGwpID0+IHtcclxuICAgIHRoaXMuZGVza3RvcEV2ZW50SGFuZGxlci5vcGVuKHRoaXMuZ2V0V2luZG93RXZlbnQoJycsICcnLCAnJywgZmFsc2UsIGNvbXBvbmVudE5hbWUsIHVuZGVmaW5lZCwgMCwgZmFsc2UpKTtcclxuICB9XHJcblxyXG4gIHdpbmRvd1RpdGxlc0J5QmFzZVRleHQ6IGFueSA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIHN0cmluZyBmb3IgdGhlIGJhc2UgbmFtZSBvZiBhIHdpbmRvdy4gIEF0IGZpcnN0LCByZXR1cm5zIHRoZSBpbnB1dC5cclxuICAgKiBGb3Igc2Vjb25kIGNhbGwgd2l0aCBzYW1lIGJhc2UgbmFtZSwgcmV0dXJucyB0aGUgbmFtZSBwbHVzICcgLSAyJyBhbmQgc28gb24uICBXaGVuXHJcbiAgICogYWxsIG9mIHRoZSB0aXRsZXMgZm9yIHRoZSBiYXNlIG5hbWUgYXJlIHJlbGVhc2VkLCB0aGVuIHRoZSBuZXh0IHRpdGxlIHdpbGwgaGF2ZSBub1xyXG4gICAqIHN1ZmZpeC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIGJhc2UgbmFtZSBvZiBhIHdpbmRvdy5cclxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSAtIHRleHQ6IHRoZSB1bmlxdWUgdGV4dCBhbmQgcmVsZWFzZSgpOiByZWxlYXNlcyB0aGUgbmFtZSBmb3JcclxuICAgKiAgZnV0dXJlIHdpbmRvd3MuXHJcbiAgICovXHJcbiAgZ2V0VW5pcXVlVGl0bGUgPSAodGV4dDogc3RyaW5nKTogVHJ1RGVza3RvcFRpdGxlID0+IHtcclxuICAgIHZhciBiYXNlVGV4dCA9IHRleHQ7XHJcbiAgICB2YXIgdGl0bGVzID0gdGhpcy53aW5kb3dUaXRsZXNCeUJhc2VUZXh0W2Jhc2VUZXh0XTtcclxuICAgIGlmICghdGl0bGVzKSB7XHJcbiAgICAgIHRoaXMud2luZG93VGl0bGVzQnlCYXNlVGV4dFtiYXNlVGV4dF0gPSB0aXRsZXMgPSB7XHJcbiAgICAgICAgZGlzcGVuc2VkQ291bnQ6IDEsXHJcbiAgICAgICAgYWN0aXZlQ291bnQ6IDFcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICsrdGl0bGVzLmFjdGl2ZUNvdW50O1xyXG4gICAgICB0ZXh0ICs9ICcgLSAnICsgKCsrdGl0bGVzLmRpc3BlbnNlZENvdW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIHJlbGVhc2U6ICgpID0+IHtcclxuICAgICAgICBpZiAodGl0bGVzLmFjdGl2ZUNvdW50ID09PSAxKVxyXG4gICAgICAgICAgZGVsZXRlIHRoaXMud2luZG93VGl0bGVzQnlCYXNlVGV4dFtiYXNlVGV4dF07XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAtLXRpdGxlcy5hY3RpdmVDb3VudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU03RCxNQUFNLE9BQU8saUJBQWlCO0lBR2xCO0lBQ0E7SUFGVixZQUNVLGNBQWlDLEVBQ2pDLG1CQUEyQztRQUQzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtJQUFJLENBQUM7SUFFMUQsY0FBYyxHQUFHLENBQ2YsU0FBaUIsRUFDakIsZUFBdUIsRUFDdkIsZ0JBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGFBQXFCLEVBQ3JCLFdBQWlDLEVBQUUsRUFDbkMsY0FBc0IsQ0FBQyxFQUN2QixrQkFBMkIsS0FBSyxFQUNoQyxpQkFBMEIsSUFBSSxFQUM5QixvQkFBMkMsSUFBSSxFQUFzQixFQUFFO1FBRXZFLElBQUksV0FBVyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNsQyxXQUFXLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUM5QyxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDaEQsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM5QixXQUFXLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUM1QyxXQUFXLENBQUMsaUJB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Q0FBQzthQUFNLENBQUM7WUFDTixFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDckIsSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNaLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxDQUFDO29CQUMxQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDMUMsQ0FBQztvQkFDSixFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQTt1R0FoSlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuaW1wb3J0IHsgVHJ1Q29udGV4dEZpbHRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdHJ1LWNvbnRleHQtZmlsdGVyc1wiO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVGl0bGUgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtZGVza3RvcC10aXRsZVwiO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wRXZlbnRIYW5kbGVyIH0gZnJvbSBcIi4vdHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlclwiO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEFyZ3MgfSBmcm9tICcuL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BNYW5hZ2VyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbnRleHRGaWx0ZXJzOiBUcnVDb250ZXh0RmlsdGVycyxcclxuICAgIHByaXZhdGUgZGVza3RvcEV2ZW50SGFuZGxlcjogVHJ1RGVza3RvcEV2ZW50SGFuZGxlcikgeyB9XHJcblxyXG4gIGdldFdpbmRvd0V2ZW50ID0gKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbE5hbWU6IHN0cmluZyxcclxuICAgIHRhYmxlUGx1cmFsTGFiZWw6IHN0cmluZyxcclxuICAgIGlzTW9kYWw6IGJvb2xlYW4sXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIGVudGl0eUluZGV4OiBudW1iZXIgPSAwLFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBwYXJlbnREYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsID0gbnVsbCk6IFRydVdpbmRvd0V2ZW50QXJncyA9PiB7XHJcblxyXG4gICAgdmFyIHdpbmRvd0V2ZW50ID0gbmV3IFRydVdpbmRvd0V2ZW50QXJncygpO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVOYW1lID0gdGFibGVOYW1lO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVQbHVyYWxOYW1lID0gdGFibGVQbHVyYWxOYW1lO1xyXG4gICAgd2luZG93RXZlbnQudGFibGVQbHVyYWxMYWJlbCA9IHRhYmxlUGx1cmFsTGFiZWw7XHJcbiAgICB3aW5kb3dFdmVudC5jb250ZXh0RmlsdGVycyA9IHRoaXMuY29udGV4dEZpbHRlcnMuZmlsdGVycztcclxuICAgIHdpbmRvd0V2ZW50LmlzTW9kYWwgPSBpc01vZGFsO1xyXG4gICAgd2luZG93RXZlbnQuc2hvd05hdmlnYXRpb24gPSBzaG93TmF2aWdhdGlvbjtcclxuICAgIHdpbmRvd0V2ZW50LnBhcmVudERhdGFDb250ZXh0ID0gcGFyZW50RGF0YUNvbnRleHQ7XHJcblxyXG4gICAgd2luZG93RXZlbnQudmlld3MgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBhY3RpdmU6IHRydWUsXHJcbiAgICAgICAgZW50aXRpZXM6IGVudGl0aWVzLFxyXG4gICAgICAgIGVudGl0eUluZGV4OiBlbnRpdHlJbmRleCxcclxuICAgICAgICBpc0RpcnR5OiBmYWxzZSxcclxuICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGlzSW52YWxpZDogZmFsc2UsXHJcbiAgICAgICAgb3BlbkFzRGV0YWlWaWV3OiBvcGVuQXNEZXRhaVZpZXcsXHJcbiAgICAgICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50TmFtZVxyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIHdpbmRvd0V2ZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSB3aW5kb3cgZm9yIGEgZGlyZWN0aXZlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3RpdmVOYW1lIC0gbmFtZSBvZiB0aGUgdmlldyBkaXJlY3RpdmUuXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSB2YWx1ZXMgdG8gcGFzcyB0byB0aGUgdmlldy5cclxuICAgKiBAcGFyYW0ge29wdGlvbmFsIGJvb2x9IHNob3dJZkV4aXN0cyAtIGlmIHRydWUgYW5kIGEgdmlldyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhlIFxyXG4gICAqIGRpcmVjdGl2ZSwgdGhlbiBzaG93cyBpdHMgd2luZG93IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLlxyXG4gICAqL1xyXG4gIGFkZFdpbmRvdyA9IChcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgdGFibGVQbHVyYWxOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIG9wZW5Bc0RldGFpVmlldzogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgc2hvd05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgc2hvd0lmRXhpc3RzPzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5kZXNrdG9wRXZlbnRIYW5kbGVyLm9wZW4odGhpcy5nZXRXaW5kb3dFdmVudChcclxuICAgICAgdGFibGVOYW1lLFxyXG4gICAgICB0YWJsZVBsdXJhbE5hbWUsXHJcbiAgICAgIHRhYmxlUGx1cmFsTGFiZWwsXHJcbiAgICAgIGZhbHNlLFxyXG4gICAgICBjb21wb25lbnROYW1lLFxyXG4gICAgICBlbnRpdGllcyxcclxuICAgICAgMCxcclxuICAgICAgb3BlbkFzRGV0YWlWaWV3KSk7XHJcbiAgfVxyXG5cclxuICBhZGRNb2RhbFdpbmRvdyA9IChcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgdGFibGVQbHVyYWxOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsXHJcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXHJcbiAgICBlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXSxcclxuICAgIGVudGl0eUluZGV4OiBudW1iZXIgPSAwLFxyXG4gICAgcGFyZW50RGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgc2hvd0lmRXhpc3RzPzogYm9vbGVhbik6IFRydVdpbmRvd0V2ZW50QXJncyA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNrdG9wRXZlbnRIYW5kbGVyLm9wZW4odGhpcy5nZXRXaW5kb3dFdmVudChcclxuICAgICAgdGFibGVOYW1lLFxyXG4gICAgICB0YWJsZVBsdXJhbE5hbWUsXHJcbiAgICAgIHRhYmxlUGx1cmFsTGFiZWwsXHJcbiAgICAgIHRydWUsXHJcbiAgICAgIGNvbXBvbmVudE5hbWUsXHJcbiAgICAgIGVudGl0aWVzLFxyXG4gICAgICBlbnRpdHlJbmRleCxcclxuICAgICAgb3BlbkFzRGV0YWlWaWV3LFxyXG4gICAgICBzaG93TmF2aWdhdGlvbixcclxuICAgICAgcGFyZW50RGF0YUNvbnRleHQpKTtcclxuICB9XHJcblxyXG4gIGFkZFdpbmRvd0ZvclF1ZXJ5UmVzdWx0ID0gKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICB0YWJsZVBsdXJhbE5hbWU6IHN0cmluZyxcclxuICAgIHRhYmxlUGx1cmFsTGFiZWw6IHN0cmluZyxcclxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcclxuICAgIGVudGl0aWVzOiBBcnJheTxUcnVFbnRpdHlCYXNlPiA9IFtdLFxyXG4gICAgb3BlbkFzRGV0YWlWaWV3OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBzaG93SWZFeGlzdHM/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmRlc2t0b3BFdmVudEhhbmRsZXIub3Blbih0aGlzLmdldFdpbmRvd0V2ZW50KHRhYmxlTmFtZSwgdGFibGVQbHVyYWxOYW1lLCB0YWJsZVBsdXJhbExhYmVsLCBmYWxzZSwgY29tcG9uZW50TmFtZSwgZW50aXRpZXMsIDAsIG9wZW5Bc0RldGFpVmlldykpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tV2luZG93ID0gKFxyXG4gICAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogb2JqZWN0IHwgbnVsbCA9IG51bGwpID0+IHtcclxuICAgIHRoaXMuZGVza3RvcEV2ZW50SGFuZGxlci5vcGVuKHRoaXMuZ2V0V2luZG93RXZlbnQoJycsICcnLCAnJywgZmFsc2UsIGNvbXBvbmVudE5hbWUsIHVuZGVmaW5lZCwgMCwgZmFsc2UpKTtcclxuICB9XHJcblxyXG4gIHdpbmRvd1RpdGxlc0J5QmFzZVRleHQ6IGFueSA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIHN0cmluZyBmb3IgdGhlIGJhc2UgbmFtZSBvZiBhIHdpbmRvdy4gIEF0IGZpcnN0LCByZXR1cm5zIHRoZSBpbnB1dC5cclxuICAgKiBGb3Igc2Vjb25kIGNhbGwgd2l0aCBzYW1lIGJhc2UgbmFtZSwgcmV0dXJucyB0aGUgbmFtZSBwbHVzICcgLSAyJyBhbmQgc28gb24uICBXaGVuXHJcbiAgICogYWxsIG9mIHRoZSB0aXRsZXMgZm9yIHRoZSBiYXNlIG5hbWUgYXJlIHJlbGVhc2VkLCB0aGVuIHRoZSBuZXh0IHRpdGxlIHdpbGwgaGF2ZSBub1xyXG4gICAqIHN1ZmZpeC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIGJhc2UgbmFtZSBvZiBhIHdpbmRvdy5cclxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSAtIHRleHQ6IHRoZSB1bmlxdWUgdGV4dCBhbmQgcmVsZWFzZSgpOiByZWxlYXNlcyB0aGUgbmFtZSBmb3JcclxuICAgKiAgZnV0dXJlIHdpbmRvd3MuXHJcbiAgICovXHJcbiAgZ2V0VW5pcXVlVGl0bGUgPSAodGV4dDogc3RyaW5nKTogVHJ1RGVza3RvcFRpdGxlID0+IHtcclxuICAgIHZhciBiYXNlVGV4dCA9IHRleHQ7XHJcbiAgICB2YXIgdGl0bGVzID0gdGhpcy53aW5kb3dUaXRsZXNCeUJhc2VUZXh0W2Jhc2VUZXh0XTtcclxuICAgIGlmICghdGl0bGVzKSB7XHJcbiAgICAgIHRoaXMud2luZG93VGl0bGVzQnlCYXNlVGV4dFtiYXNlVGV4dF0gPSB0aXRsZXMgPSB7XHJcbiAgICAgICAgZGlzcGVuc2VkQ291bnQ6IDEsXHJcbiAgICAgICAgYWN0aXZlQ291bnQ6IDFcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICsrdGl0bGVzLmFjdGl2ZUNvdW50O1xyXG4gICAgICB0ZXh0ICs9ICcgLSAnICsgKCsrdGl0bGVzLmRpc3BlbnNlZENvdW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIHJlbGVhc2U6ICgpID0+IHtcclxuICAgICAgICBpZiAodGl0bGVzLmFjdGl2ZUNvdW50ID09PSAxKVxyXG4gICAgICAgICAgZGVsZXRlIHRoaXMud2luZG93VGl0bGVzQnlCYXNlVGV4dFtiYXNlVGV4dF07XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAtLXRpdGxlcy5hY3RpdmVDb3VudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -100,10 +100,11 @@ export class WindowConfig {
100
100
  wasReadOnly = false;
101
101
  contextFilters = [];
102
102
  parentDataContext = null;
103
+ closed = () => { };
103
104
  destroy = () => {
104
105
  while (this.unsubscribes.length)
105
106
  this?.unsubscribes?.shift()?.call();
106
107
  };
107
108
  }
108
109
  ;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFJMUUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhLEdBQUc7UUFDckIsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUE7dUdBZFUsaUJBQWlCOzJHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7O0FBbUJYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFDbEIsT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7SUFDL0IsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEMsVUFBVSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztDQUN6QztBQUFBLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUNsQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ3ZCLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDMUIseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDcEIsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQUcsU0FBUyxDQUFDO0lBQzFCLGNBQWMsR0FBRyxLQUFLLENBQUM7Q0FDeEI7QUFBQSxDQUFDO0FBR0Y7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixHQUFXLEVBQUUsQ0FBQztJQUU5QixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQixPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQ3BCLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ2YsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUNsQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEIsS0FBSyxHQUFHLEtBQUssRUFBd0IsQ0FBQztJQUN0QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDWixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFlBQVksR0FBZSxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixjQUFjLEdBQTRCLEVBQUUsQ0FBQztJQUM3QyxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDO0lBRWhELE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdkUsQ0FBQyxDQUFBO0NBQ0Y7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1Q29udGV4dEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFZpZXdDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxyXG4gICAqIEBuYW1lIERlc2t0b3BTZXJ2aWNlLmNyZWF0ZURlc2t0b3BcclxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBDcmVhdGVzIGEgbmV3IGRlc2t0b3AgaW5zdGFuY2UuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSBEZXNrdG9wXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZURlc2t0b3AgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgZGVza3RvcCA9IG5ldyBEZXNrdG9wKCk7XHJcbiAgICByZXR1cm4gZGVza3RvcDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQHRydS5kZXNrdG9wLmRvYyBjbGFzc1xyXG4gKiBAbmFtZSBEZXNrdG9wU2VydmljZS5EZXNrdG9wXHJcbiAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcclxuICpcclxuICogQGRlc2NyaXB0aW9uIERlc2t0b3AgZGVmaW5lcyBhIGxvZ2ljYWwgZGVza3RvcC4gIEFueSBub24tZG9tIHByb3BlcnRpZXMgYW5kIGVsZW1lbnRzIG5lZWRlZCBieSB0aGUgZGVza3RvcCBzaG91bGRcclxuICogYmUgZGVmaW5lZCBpbiB0aGlzIGNsYXNzXHJcbiAqXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGVza3RvcCB7XHJcbiAgb3B0aW9ucyA9IG5ldyBEZXNrdG9wT3B0aW9ucygpO1xyXG4gIHdpbmRvd0NvbmZpZyA9IG5ldyBXaW5kb3dDb25maWcoKTtcclxuICB2aWV3Q29uZmlnID0gbmV3IFRydURlc2t0b3BWaWV3Q29uZmlnKCk7XHJcbn07XHJcblxyXG4vKipcclxuICogQHRydS5kZXNrdG9wLmRvYyBjbGFzc1xyXG4gKiBAbmFtZSBEZXNrdG9wU2VydmljZS5EZXNrdG9wT3B0aW9uc1xyXG4gKiBAbW9kdWxlIHRydS5kZXNrdG9wXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IERlc2t0b3BPcHRpb25zIGNsYXNzLiAgRGVza3RvcE9wdGlvbnMgYXJlIGRlZmluZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciBhbmQgb3ZlcmxhaWRcclxuICogb3ZlciB0aGlzIG9iamVjdC5cclxuICpcclxuICovXHJcbmV4cG9ydCBjbGFzcyBEZXNrdG9wT3B0aW9ucyB7XHJcbiAgYWxsb3dEaXJ0eUNsb3NlID0gZmFsc2U7XHJcbiAgYWxsb3dJbnZhbGlkQ2xvc2UgPSBmYWxzZTtcclxuICBjYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uID0gZmFsc2U7XHJcbiAgY2FuQ2xvc2VGbiA9IHVuZGVmaW5lZDtcclxuICBjYW5OYXZpZ2F0ZUZuID0gdW5kZWZpbmVkO1xyXG4gIGRpc3BsYXlWaWV3cG9ydERpbWVuc2lvbnMgPSBmYWxzZTtcclxuICBlbmFibGVBbmltYXRpb24gPSB0cnVlO1xyXG4gIGVuYWJsZVdpbmRvd0Nhc2NhZGluZyA9IHRydWU7XHJcbiAgbG9nb1VybCA9IHVuZGVmaW5lZDtcclxuICBtZW51YmFySGVpZ2h0ID0gMzI7XHJcbiAgbWVudWJhckNvbmZpZyA9IHVuZGVmaW5lZDtcclxuICBzaG93TGF1bmNoTWVudSA9IGZhbHNlO1xyXG59O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdHJ1LmRlc2t0b3AuZG9jIGNsYXNzXHJcbiAqIEBuYW1lIERlc2t0b3BTZXJ2aWNlLldpbmRvd0NvbmZpZ1xyXG4gKiBAbW9kdWxlIHRydS5kZXNrdG9wXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhIHdpbmRvdy4gd2luZG93Q29uZmlnIHByb3BlcnRpZXMgY2FuIGJlIGRlZmluZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciBhbmQgb3ZlcmxhaWRcclxuICogb3ZlciB0aGlzIG9iamVjdC5cclxuICpcclxuICovXHJcbmV4cG9ydCBjbGFzcyBXaW5kb3dDb25maWcge1xyXG4gIHRhYmxlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgdGFibGVQbHVyYWxOYW1lOiBzdHJpbmcgPSAnJztcclxuICB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgYWN0aXZlID0gdHJ1ZTtcclxuICBib3R0b20gPSAnYXV0byc7XHJcbiAgZ2xvYmFscyA9IHVuZGVmaW5lZDtcclxuICBoZWlnaHQgPSAnNDAwcHgnO1xyXG4gIGlzRGlydHkgPSBmYWxzZTtcclxuICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICBsZWZ0ID0gMDtcclxuICBtYXhpbWl6ZWQgPSB1bmRlZmluZWQ7XHJcbiAgbWluSGVpZ2h0ID0gJzIwMHB4JztcclxuICBtaW5pbWl6ZWQgPSBmYWxzZTtcclxuICBtaW5XaWR0aCA9ICcyMDBweCc7XHJcbiAgb3V0T2ZCb3VuZHMgPSBmYWxzZTtcclxuICBzYXZlZFBvc2l0aW9uID0ge307XHJcbiAgcmlnaHQgPSAnYXV0byc7XHJcbiAgc2NvcGUgPSB1bmRlZmluZWQ7XHJcbiAgdGl0bGUgPSAnJztcclxuICB0b3AgPSAwO1xyXG4gIHdpZHRoID0gJzQwMHB4JztcclxuICB2aWV3cyA9IEFycmF5PFRydURlc2t0b3BWaWV3Q29uZmlnPigpO1xyXG4gIHpJbmRleCA9IC0xO1xyXG4gIGlzUmVhZE9ubHkgPSBmYWxzZTtcclxuICB1bnN1YnNjcmliZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICB3YXNSZWFkT25seSA9IGZhbHNlO1xyXG4gIGNvbnRleHRGaWx0ZXJzOiBBcnJheTxUcnVDb250ZXh0RmlsdGVyPiA9IFtdO1xyXG4gIHBhcmVudERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBkZXN0cm95ID0gKCkgPT4ge1xyXG4gICAgd2hpbGUgKHRoaXMudW5zdWJzY3JpYmVzLmxlbmd0aCkgdGhpcz8udW5zdWJzY3JpYmVzPy5zaGlmdCgpPy5jYWxsKCk7XHJcbiAgfVxyXG59O1xyXG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFJMUUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhLEdBQUc7UUFDckIsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUE7dUdBZFUsaUJBQWlCOzJHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7O0FBbUJYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFDbEIsT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7SUFDL0IsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEMsVUFBVSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztDQUN6QztBQUFBLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUNsQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ3ZCLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDMUIseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDcEIsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQUcsU0FBUyxDQUFDO0lBQzFCLGNBQWMsR0FBRyxLQUFLLENBQUM7Q0FDeEI7QUFBQSxDQUFDO0FBR0Y7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixHQUFXLEVBQUUsQ0FBQztJQUU5QixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQixPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQ3BCLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ2YsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUNsQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEIsS0FBSyxHQUFHLEtBQUssRUFBd0IsQ0FBQztJQUN0QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDWixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFlBQVksR0FBZSxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixjQUFjLEdBQTRCLEVBQUUsQ0FBQztJQUM3QyxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDO0lBRWhELE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFFbEIsT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDLENBQUE7Q0FDRjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVDb250ZXh0RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90cnUtY29udGV4dC1maWx0ZXInO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0NvbmZpZyB9IGZyb20gJy4uL2NsYXNzZXMvdHJ1LWRlc2t0b3Atdmlldy1jb25maWcnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJ1RGVza3RvcFNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXHJcbiAgICogQG5hbWUgRGVza3RvcFNlcnZpY2UuY3JlYXRlRGVza3RvcFxyXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqIENyZWF0ZXMgYSBuZXcgZGVza3RvcCBpbnN0YW5jZS5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IERlc2t0b3BcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlRGVza3RvcCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBkZXNrdG9wID0gbmV3IERlc2t0b3AoKTtcclxuICAgIHJldHVybiBkZXNrdG9wO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBAdHJ1LmRlc2t0b3AuZG9jIGNsYXNzXHJcbiAqIEBuYW1lIERlc2t0b3BTZXJ2aWNlLkRlc2t0b3BcclxuICogQG1vZHVsZSB0cnUuZGVza3RvcFxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb24gRGVza3RvcCBkZWZpbmVzIGEgbG9naWNhbCBkZXNrdG9wLiAgQW55IG5vbi1kb20gcHJvcGVydGllcyBhbmQgZWxlbWVudHMgbmVlZGVkIGJ5IHRoZSBkZXNrdG9wIHNob3VsZFxyXG4gKiBiZSBkZWZpbmVkIGluIHRoaXMgY2xhc3NcclxuICpcclxuICovXHJcbmV4cG9ydCBjbGFzcyBEZXNrdG9wIHtcclxuICBvcHRpb25zID0gbmV3IERlc2t0b3BPcHRpb25zKCk7XHJcbiAgd2luZG93Q29uZmlnID0gbmV3IFdpbmRvd0NvbmZpZygpO1xyXG4gIHZpZXdDb25maWcgPSBuZXcgVHJ1RGVza3RvcFZpZXdDb25maWcoKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBAdHJ1LmRlc2t0b3AuZG9jIGNsYXNzXHJcbiAqIEBuYW1lIERlc2t0b3BTZXJ2aWNlLkRlc2t0b3BPcHRpb25zXHJcbiAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcclxuICpcclxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgRGVza3RvcE9wdGlvbnMgY2xhc3MuICBEZXNrdG9wT3B0aW9ucyBhcmUgZGVmaW5lZCBieSB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIGFuZCBvdmVybGFpZFxyXG4gKiBvdmVyIHRoaXMgb2JqZWN0LlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERlc2t0b3BPcHRpb25zIHtcclxuICBhbGxvd0RpcnR5Q2xvc2UgPSBmYWxzZTtcclxuICBhbGxvd0ludmFsaWRDbG9zZSA9IGZhbHNlO1xyXG4gIGNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuICBjYW5DbG9zZUZuID0gdW5kZWZpbmVkO1xyXG4gIGNhbk5hdmlnYXRlRm4gPSB1bmRlZmluZWQ7XHJcbiAgZGlzcGxheVZpZXdwb3J0RGltZW5zaW9ucyA9IGZhbHNlO1xyXG4gIGVuYWJsZUFuaW1hdGlvbiA9IHRydWU7XHJcbiAgZW5hYmxlV2luZG93Q2FzY2FkaW5nID0gdHJ1ZTtcclxuICBsb2dvVXJsID0gdW5kZWZpbmVkO1xyXG4gIG1lbnViYXJIZWlnaHQgPSAzMjtcclxuICBtZW51YmFyQ29uZmlnID0gdW5kZWZpbmVkO1xyXG4gIHNob3dMYXVuY2hNZW51ID0gZmFsc2U7XHJcbn07XHJcblxyXG5cclxuLyoqXHJcbiAqIEB0cnUuZGVza3RvcC5kb2MgY2xhc3NcclxuICogQG5hbWUgRGVza3RvcFNlcnZpY2UuV2luZG93Q29uZmlnXHJcbiAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIGEgd2luZG93LiB3aW5kb3dDb25maWcgcHJvcGVydGllcyBjYW4gYmUgZGVmaW5lZCBieSB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIGFuZCBvdmVybGFpZFxyXG4gKiBvdmVyIHRoaXMgb2JqZWN0LlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFdpbmRvd0NvbmZpZyB7XHJcbiAgdGFibGVOYW1lOiBzdHJpbmcgPSAnJztcclxuICB0YWJsZVBsdXJhbE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHRhYmxlUGx1cmFsTGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBhY3RpdmUgPSB0cnVlO1xyXG4gIGJvdHRvbSA9ICdhdXRvJztcclxuICBnbG9iYWxzID0gdW5kZWZpbmVkO1xyXG4gIGhlaWdodCA9ICc0MDBweCc7XHJcbiAgaXNEaXJ0eSA9IGZhbHNlO1xyXG4gIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gIGxlZnQgPSAwO1xyXG4gIG1heGltaXplZCA9IHVuZGVmaW5lZDtcclxuICBtaW5IZWlnaHQgPSAnMjAwcHgnO1xyXG4gIG1pbmltaXplZCA9IGZhbHNlO1xyXG4gIG1pbldpZHRoID0gJzIwMHB4JztcclxuICBvdXRPZkJvdW5kcyA9IGZhbHNlO1xyXG4gIHNhdmVkUG9zaXRpb24gPSB7fTtcclxuICByaWdodCA9ICdhdXRvJztcclxuICBzY29wZSA9IHVuZGVmaW5lZDtcclxuICB0aXRsZSA9ICcnO1xyXG4gIHRvcCA9IDA7XHJcbiAgd2lkdGggPSAnNDAwcHgnO1xyXG4gIHZpZXdzID0gQXJyYXk8VHJ1RGVza3RvcFZpZXdDb25maWc+KCk7XHJcbiAgekluZGV4ID0gLTE7XHJcbiAgaXNSZWFkT25seSA9IGZhbHNlO1xyXG4gIHVuc3Vic2NyaWJlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHdhc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgY29udGV4dEZpbHRlcnM6IEFycmF5PFRydUNvbnRleHRGaWx0ZXI+ID0gW107XHJcbiAgcGFyZW50RGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNsb3NlZCA9ICgpID0+IHsgfVxyXG5cclxuICBkZXN0cm95ID0gKCkgPT4ge1xyXG4gICAgd2hpbGUgKHRoaXMudW5zdWJzY3JpYmVzLmxlbmd0aCkgdGhpcz8udW5zdWJzY3JpYmVzPy5zaGlmdCgpPy5jYWxsKCk7XHJcbiAgfVxyXG59O1xyXG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
3
4
  export class TruWindowEventArgs {
4
5
  title = '';
@@ -6,6 +7,7 @@ export class TruWindowEventArgs {
6
7
  tablePluralName = '';
7
8
  tablePluralLabel = '';
8
9
  parentDataContext = null;
10
+ parentView;
9
11
  isModal = false;
10
12
  showNavigation = true;
11
13
  contentBottom = '23px';
@@ -14,6 +16,7 @@ export class TruWindowEventArgs {
14
16
  width = '900px';
15
17
  views = [{}];
16
18
  contextFilters = [];
19
+ onClose$ = new Subject();
17
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruWindowEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
21
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruWindowEventArgs, providedIn: 'root' });
19
22
  }
@@ -23,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
23
26
  providedIn: 'root'
24
27
  }]
25
28
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXdpbmRvdy1ldmVudC1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLGVBQWUsR0FBVyxFQUFFLENBQUM7SUFDN0IsZ0JBQWdCLEdBQVcsRUFBRSxDQUFDO0lBQzlCLGlCQUFpQixHQUEwQixJQUFJLENBQUM7SUFDaEQsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLGFBQWEsR0FBVyxNQUFNLENBQUE7SUFDOUIsa0JBQWtCLEdBQVcsZUFBZSxDQUFDO0lBQzdDLE1BQU0sR0FBVyxPQUFPLENBQUM7SUFDekIsS0FBSyxHQUFXLE9BQU8sQ0FBQztJQUN4QixLQUFLLEdBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsY0FBYyxHQUE0QixFQUFFLENBQUM7dUdBYmxDLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRydUNvbnRleHRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RydS1jb250ZXh0LWZpbHRlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVXaW5kb3dFdmVudEFyZ3Mge1xyXG4gIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICB0YWJsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHRhYmxlUGx1cmFsTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgdGFibGVQbHVyYWxMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgcGFyZW50RGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCA9IG51bGw7XHJcbiAgaXNNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb250ZW50Qm90dG9tOiBzdHJpbmcgPSAnMjNweCdcclxuICBzdGF0dXNiYXJEaXJlY3RpdmU6IHN0cmluZyA9ICd0cnUtc3RhdHVzYmFyJztcclxuICBoZWlnaHQ6IHN0cmluZyA9ICc0NTBweCc7XHJcbiAgd2lkdGg6IHN0cmluZyA9ICc5MDBweCc7XHJcbiAgdmlld3M6IEFycmF5PG9iamVjdD4gPSBbe31dO1xyXG4gIGNvbnRleHRGaWx0ZXJzOiBBcnJheTxUcnVDb250ZXh0RmlsdGVyPiA9IFtdO1xyXG59XHJcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXdpbmRvdy1ldmVudC1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsZUFBZSxHQUFXLEVBQUUsQ0FBQztJQUM3QixnQkFBZ0IsR0FBVyxFQUFFLENBQUM7SUFDOUIsaUJBQWlCLEdBQTBCLElBQUksQ0FBQztJQUNoRCxVQUFVLENBQWE7SUFDdkIsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLGFBQWEsR0FBVyxNQUFNLENBQUE7SUFDOUIsa0JBQWtCLEdBQVcsZUFBZSxDQUFDO0lBQzdDLE1BQU0sR0FBVyxPQUFPLENBQUM7SUFDekIsS0FBSyxHQUFXLE9BQU8sQ0FBQztJQUN4QixLQUFLLEdBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsY0FBYyxHQUE0QixFQUFFLENBQUM7SUFDN0MsUUFBUSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFBO3VHQWZoQyxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVDb250ZXh0RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90cnUtY29udGV4dC1maWx0ZXInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVXaW5kb3dFdmVudEFyZ3Mge1xyXG4gIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICB0YWJsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHRhYmxlUGx1cmFsTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgdGFibGVQbHVyYWxMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgcGFyZW50RGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCA9IG51bGw7XHJcbiAgcGFyZW50VmlldzogYW55IHwgbnVsbDtcclxuICBpc01vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNvbnRlbnRCb3R0b206IHN0cmluZyA9ICcyM3B4J1xyXG4gIHN0YXR1c2JhckRpcmVjdGl2ZTogc3RyaW5nID0gJ3RydS1zdGF0dXNiYXInO1xyXG4gIGhlaWdodDogc3RyaW5nID0gJzQ1MHB4JztcclxuICB3aWR0aDogc3RyaW5nID0gJzkwMHB4JztcclxuICB2aWV3czogQXJyYXk8b2JqZWN0PiA9IFt7fV07XHJcbiAgY29udGV4dEZpbHRlcnM6IEFycmF5PFRydUNvbnRleHRGaWx0ZXI+ID0gW107XHJcbiAgb25DbG9zZSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKSBcclxufVxyXG4iXX0=
@@ -217,13 +217,13 @@ export class TruDesktop {
217
217
  let activeWindow = this.getActiveWindow();
218
218
  if (activeWindow && activeWindow.isModal) {
219
219
  activeWindow.invalidOperation = true;
220
- return;
220
+ return activeWindow;
221
221
  }
222
222
  if (singleInstance) {
223
223
  let window = this.findWindowViewDirective(windowConfigOverlays.views[0].viewDirective);
224
224
  if (window) {
225
225
  this.updateWindowState(window);
226
- return;
226
+ return window;
227
227
  }
228
228
  }
229
229
  if (windowConfigOverlays.isModal) {
@@ -244,6 +244,7 @@ export class TruDesktop {
244
244
  else {
245
245
  this.windows.push(configuredWindow);
246
246
  }
247
+ return configuredWindow;
247
248
  };
248
249
  /**
249
250
  * @tru.doc function
@@ -311,6 +312,7 @@ export class TruDesktop {
311
312
  if (this.options.canCloseFn(wdw)) {
312
313
  this.windows.splice(this.windows.indexOf(wdw), 1);
313
314
  this.activateForemostWindow();
315
+ wdw.closed();
314
316
  return true;
315
317
  }
316
318
  ;
@@ -318,6 +320,7 @@ export class TruDesktop {
318
320
  else {
319
321
  this.windows.splice(this.windows.indexOf(wdw), 1);
320
322
  this.activateForemostWindow();
323
+ wdw.closed();
321
324
  return true;
322
325
  }
323
326
  return false;
@@ -744,4 +747,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
744
747
  type: ViewChild,
745
748
  args: [TruDesktopViewport]
746
749
  }] } });
747
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC90cnUtZGVza3RvcC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxVQUFVO0lBS1g7SUFDQTtJQUNBO0lBQ0E7SUFQRCxPQUFPLENBQU07SUFDaUIsaUJBQWlCLENBQXNCO0lBRTlFLFlBQ1UsY0FBaUMsRUFDakMsV0FBMkIsRUFDM0Isc0JBQThDLEVBQzlDLElBQWE7UUFIYixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsT0FBTyxDQUFNO0lBQ2Isd0JBQXdCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztJQUMvQix5QkFBeUIsR0FBRyxFQUFFLEdB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QUFPO3NCQUFmLEtBQUs7Z0JBQ2lDLGlCQUFpQjtzQkFBdkQsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50QXJncyB9IGZyb20gJy4vc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1hcmdzJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcEV2ZW50SGFuZGxlciB9IGZyb20gJy4vc2VydmljZXMvdHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlcic7XG5pbXBvcnQgeyBUcnVEZXNrdG9wU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJ1LWRlc2t0b3Atc2VydmljZSc7XG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0NvbmZpZyB9IGZyb20gJy4vY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcbmltcG9ydCB7IFRydVRleHRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXRleHQtbWFuYWdlcic7XHJcbmltcG9ydCB7IFRydURlc2t0b3BXaW5kb3cgfSBmcm9tICcuL3dpbmRvdy90cnUtZGVza3RvcC13aW5kb3cnO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld3BvcnQgfSBmcm9tICcuL3ZpZXdwb3J0L3RydS1kZXNrdG9wLXZpZXdwb3J0JztcclxuaW1wb3J0IHsgVHJ1VXRpbCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS11dGlsJztcclxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0cnUtZGVza3RvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGVza3RvcC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRlc2t0b3AuY3NzJ10sXG4gIHByb3ZpZGVyczogW1RydURlc2t0b3BTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3B0aW9uczogYW55O1xuICBAVmlld0NoaWxkKFRydURlc2t0b3BWaWV3cG9ydCkgcHJpdmF0ZSB2aWV3cG9ydENvbXBvbmVudCE6IFRydURlc2t0b3BWaWV3cG9ydDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRlc2t0b3BTZXJ2aWNlOiBUcnVEZXNrdG9wU2VydmljZSxcbiAgICBwcml2YXRlIHRleHRNYW5hZ2VyOiBUcnVUZXh0TWFuYWdlcixcbiAgICBwcml2YXRlIHRydURlc2t0b3BFdmVudEhhbmRsZXI6IFRydURlc2t0b3BFdmVudEhhbmRsZXIsXG4gICAgcHJpdmF0ZSB1dGlsOiBUcnVVdGlsKSB7XG4gICAgdGhpcy5kZXNrdG9wID0gdGhpcy5kZXNrdG9wU2VydmljZS5jcmVhdGVEZXNrdG9wKCk7XG4gIH1cclxuXG4gIG1pbmltaXplQWxsID0gZmFsc2U7XG4gIGRlc2t0b3A6IGFueTtcbiAgbWluV2luZG93Q2FzY2FkZVBvc2l0aW9uID0gNDA7XG4gIG1heFdpbmRvd0Nhc2NhZGVQb3NpdGlvbiA9IDEwMDtcbiAgbGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbiA9IHsgdG9wOiB0aGlzLm1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbiwgbGVmdDogdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb24gfTtcbiAgc2hpZnRQcmVzc2VkID0gZmFsc2U7XG4gIGFsdFByZXNzZWQgPSBmYWxzZTtcbiAgeFByZXNzZWQgPSBmYWxzZTtcbiAgbG9nb1VybCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0RGVza3RvcFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXR1cm4gYW4gb2JqZWN0IG9mIGRlc2t0b3AuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IGRlc2t0b3AuXG4gICAqL1xuICBnZXREZXNrdG9wID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmRlc2t0b3A7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0T3B0aW9uc1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXR1cm4gYW4gb2JqZWN0IG9mIGRlc2t0b3Agb3B0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gb3B0aW9ucy5cbiAgICovXG4gIGdldE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRXaW5kb3dzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiB3aW5kb3dzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7YXJyYXl9IHdpbmRvd3MuXG4gICAqL1xuICBnZXRXaW5kb3dzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvd3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0TmV4dE1heFpJbmRleFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGFsbCB3aW5kb3cgb2JqZWN0cyBpbiB0aGUgd2luZG93cyBhcnJheSB0byBmaW5kIHRoZSBtYXggei1pbmRleFxuICAgKiBhbmQgaW5jcmVhc2VzIHRoZSB2YWx1ZSBmb3VuZCBieSAxLlxuICAgKlxuICAgKiBAcmV0dXJucyB7aW50fVxuICAgKi9cbiAgZ2V0TmV4dE1heFpJbmRleCA9ICgpID0+IHtcbiAgICB2YXIgbWF4ID0gMDtcbiAgICB2YXIgdG1wO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLndpbmRvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRtcCA9IHRoaXMud2luZG93c1tpXS56SW5kZXg7XG4gICAgICBpZiAodG1wID4gbWF4KSBtYXggPSB0bXA7XG4gICAgfVxuICAgIHJldHVybiArK21heDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jbGVhckFjdGl2ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGFsbCB3aW5kb3cgb2JqZWN0cyBpbiB0aGUgd2luZG93c1xuICAgKiBhbmQgc2V0cyB0aGUgYWN0aXZlIHByb3BlcnR5IHRvIGZhbHNlLlxuICAgKlxuICAgKi9cbiAgY2xlYXJBY3RpdmUgPSAoKSA9PiB7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdpbmRvdzogYW55KSA9PiB7XG4gICAgICB3aW5kb3cuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0QWN0aXZlV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIGFjdGl2ZSB3aW5kb3cuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IHZpZXcgb2JqZWN0LlxuICAgKi9cbiAgZ2V0QWN0aXZlV2luZG93ID0gKCk6IGFueSA9PiB7XG4gICAgdmFyIGFjdGl2ZVdpbmRvdyA9IG51bGw7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdkdzogYW55KSA9PiB7XG4gICAgICBpZiAod2R3LmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmVXaW5kb3cgPSB3ZHc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZVdpbmRvdztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRBY3RpdmVWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIGFjdGl2ZSB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSB2aWV3IG9iamVjdC5cbiAgICovXG4gIGdldEFjdGl2ZVZpZXcgPSAod2R3OiBhbnkpID0+IHtcbiAgICB2YXIgYWN0aXZlVmlldyA9IG51bGw7XG4gICAgd2R3LnZpZXdzLmZvckVhY2goKHZpZXc6IGFueSkgPT4ge1xuICAgICAgaWYgKHZpZXcuYWN0aXZlID09PSB0cnVlKSB7XG4gICAgICAgIGFjdGl2ZVZpZXcgPSB2aWV3O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmVWaWV3O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFsbFdpbmRvd3NBcmVNaW5pbWl6ZWRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSXRlcmF0ZXMgdGhyb3VnaCB3aW5kb3dzIHRvIGRldGVybWluZSBpZiBhbGwgYXJlIG1pbmltaXplZC5cbiAgICpcbiAgICovXG4gIGFsbFdpbmRvd3NBcmVNaW5pbWl6ZWQgPSAoKSA9PiB7XG4gICAgdmFyIGFsbE1pbmltaXplZCA9IHRydWU7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdpbmRvdzogYW55KSA9PiB7XG4gICAgICBpZiAoIXdpbmRvdy5taW5pbWl6ZWQpIHtcbiAgICAgICAgYWxsTWluaW1pemVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFsbE1pbmltaXplZDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5oaWRlU2hvd0FsbFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBIaWRlcy9zaG93cyBhbGwgd2luZG93c1xuICAgKlxuICAgKi9cbiAgaGlkZVNob3dBbGwgPSAoKSA9PiB7XG4gICAgdGhpcy5taW5pbWl6ZUFsbCA9IHRoaXMuYWxsV2luZG93c0FyZU1pbmltaXplZCgpID8gZmFsc2UgOiAhdGhpcy5taW5pbWl6ZUFsbDtcbiAgICB0aGlzLndpbmRvd3MuZm9yRWFjaCgod2R3OiBhbnkpID0+IHtcbiAgICAgIGlmICh3ZHcub3V0T2ZCb3VuZHMpIHRoaXMucmVjb3Zlcih3ZHcpO1xuICAgICAgd2R3LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgd2R3Lm1pbmltaXplZCA9IHRoaXMubWluaW1pemVBbGw7XG4gICAgfSk7XG4gICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gICAgcmV0dXJuIHRoaXMubWluaW1pemVBbGw7XG4gIH07XG5cbiAgLyoqXHJcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cclxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmZpbmRXaW5kb3dWaWV3RGlyZWN0aXZlXHJcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogTG9va3MgZm9yIHByZXZpb3VzbHkgb3BlbiB3aW5kb3cgd2l0aCBhIHZpZXcgZGlyZWN0aXZlXHJcbiAgICpcclxuICAgKi9cclxuICBmaW5kV2luZG93Vmlld0RpcmVjdGl2ZSA9ICh3aW5kb3dWaWV3RGlyZWN0aXZlOiBhbnkpID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53aW5kb3dzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy53aW5kb3dzW2ldLnZpZXdzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2luZG93c1tpXS52aWV3c1swXS52aWV3RGlyZWN0aXZlID09PSB3aW5kb3dWaWV3RGlyZWN0aXZlKVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMud2luZG93c1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5vcGVuV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc3BsYXlzIGEgbmV3IHdpbmRvdy4gQWxsIHdpbmRvdyBwcm9wZXJ0aWVzIGRlZmluZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciB3aWxsIGJlXG4gICAqIG92ZXJsYWlkIGhlcmUgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHdpbmRvd1xuICAgKlxuICAgKi9cbiAgb3BlbldpbmRvdyA9ICh3aW5kb3dDb25maWdPdmVybGF5czogYW55LCBzaW5nbGVJbnN0YW5jZTogYW55KSA9PiB7XG4gICAgbGV0IGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XHJcbiAgICBpZiAoYWN0aXZlV2luZG93ICYmIGFjdGl2ZVdpbmRvdy5pc01vZGFsKSB7XHJcbiAgICAgIGFjdGl2ZVdpbmRvdy5pbnZhbGlkT3BlcmF0aW9uID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaW5nbGVJbnN0YW5jZSkge1xyXG4gICAgICBsZXQgd2luZG93ID0gdGhpcy5maW5kV2luZG93Vmlld0RpcmVjdGl2ZSh3aW5kb3dDb25maWdPdmVybGF5cy52aWV3c1swXS52aWV3RGlyZWN0aXZlKTtcclxuICAgICAgaWYgKHdpbmRvdykge1xyXG4gICAgICAgIHRoaXMudXBkYXRlV2luZG93U3RhdGUod2luZG93KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93Q29uZmlnT3ZlcmxheXMuaXNNb2RhbCkge1xyXG4gICAgICBsZXQgaGVpZ2h0T2Zmc2V0ID0gKHBhcnNlSW50KHdpbmRvd0NvbmZpZ092ZXJsYXlzLmhlaWdodCwgMTApIC8gMikgKyAzMDtcclxuICAgICAgbGV0IHdpZHRoT2Zmc2V0ID0gKHBhcnNlSW50KHdpbmRvd0NvbmZpZ092ZXJsYXlzLndpZHRoLCAxMCkgLyAyKTtcclxuICAgICAgd2luZG93Q29uZmlnT3ZlcmxheXMudG9wID0gJ2NhbGMoNTAlIC0gJyArIGhlaWdodE9mZnNldCArICdweCApJztcclxuICAgICAgd2luZG93Q29uZmlnT3ZlcmxheXMubGVmdCA9ICdjYWxjKDUwJSAtICcgKyB3aWR0aE9mZnNldCArICdweCApJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICBsZXQgY29uZmlndXJlZFdpbmRvdyA9IHRoaXMuY29uZmlndXJlV2luZG93KHdpbmRvd0NvbmZpZ092ZXJsYXlzKTtcclxuICAgIGNvbmZpZ3VyZWRXaW5kb3cudmlld3MgPSB0aGlzLmNvbmZpZ3VyZVZpZXdzKHdpbmRvd0NvbmZpZ092ZXJsYXlzLCBjb25maWd1cmVkV2luZG93KTtcclxuICAgIGlmICghY29uZmlndXJlZFdpbmRvdy5pc01vZGFsKSB7XHJcbiAgICAgIGNvbmZpZ3VyZWRXaW5kb3cuY2FzY2FkZVdpbmRvdyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmVQb3NpdGlvbihjb25maWd1cmVkV2luZG93KTtcclxuICAgICAgdGhpcy5tYXhpbWl6ZShjb25maWd1cmVkV2luZG93KTtcclxuICAgICAgdGhpcy53aW5kb3dzLnB1c2goY29uZmlndXJlZFdpbmRvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndpbmRvd3MucHVzaChjb25maWd1cmVkV2luZG93KTtcclxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jb25maWd1cmVXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ3JlYXRlcyBhIG5ldyB3aW5kb3cgaW5zdGFuY2UuXG4gICAqXG4gICAqL1xuICBjb25maWd1cmVXaW5kb3cgPSAod2luZG93Q29uZmlnT3ZlcmxheXM6IGFueSkgPT4ge1xuICAgIHZhciB3aW5kb3dDb25maWdJbnN0YW5jZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVza3RvcC53aW5kb3dDb25maWcpO1xuICAgIHdpbmRvd0NvbmZpZ0luc3RhbmNlLnNhdmVkUG9zaXRpb24gPSBPYmplY3QuY3JlYXRlKHsgdG9wOiAwLCBsZWZ0OiAwLCByaWdodDogMCwgYm90dG9tOiAwLCBoZWlnaHQ6IDAsIHdpZHRoOiAwIH0pO1xuICAgIHdpbmRvd0NvbmZpZ0luc3RhbmNlLnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgIC8vd2luZG93Q29uZmlnSW5zdGFuY2UuZ2xvYmFscyA9IE9iamVjdC5hc3NpZ24oe30sICRyb290U2NvcGUuJGV2YWwodGhpcy5vcHRpb25zLmdsb2JhbHMpKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih3aW5kb3dDb25maWdJbnN0YW5jZSwgd2luZG93Q29uZmlnT3ZlcmxheXMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNvbmZpZ3VyZVZpZXdzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgdmlldyBpbnN0YW5jZXNcbiAgICpcbiAgICovXG4gIGNvbmZpZ3VyZVZpZXdzID0gKHdpbmRvd0NvbmZpZ092ZXJsYXlzOiBhbnksIGNvbmZpZ3VyZWRXaW5kb3c6IGFueSk6IEFycmF5PGFueT4gPT4ge1xuICAgIGxldCBjb25maWd1cmVkVmlld3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICB3aW5kb3dDb25maWdPdmVybGF5cy52aWV3cy5mb3JFYWNoKCh2aWV3OiBhbnkpID0+IHtcbiAgICAgIGxldCBjb25maWd1cmVkVmlldyA9IG5ldyBUcnVEZXNrdG9wVmlld0NvbmZpZygpO1xyXG4gICAgICBjb25maWd1cmVkVmlldy5jb21wb25lbnROYW1lID0gdmlldy5jb21wb25lbnROYW1lO1xyXG4gICAgICBjb25maWd1cmVkVmlldy5lbnRpdGllcyA9IHZpZXcuZW50aXRpZXM7XHJcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LmVudGl0eUluZGV4ID0gdmlldy5lbnRpdHlJbmRleDtcclxuICAgICAgY29uZmlndXJlZFZpZXcuaXNEaXJ0eSA9IHZpZXcuaXNEaXJ0eTtcclxuICAgICAgY29uZmlndXJlZFZpZXcuaXNFZGl0aW5nID0gdmlldy5pc0VkaXRpbmc7XHJcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LmlzSW52YWxpZCA9IHZpZXcuaXNWYWxpZDtcclxuICAgICAgY29uZmlndXJlZFZpZXcub3BlbkFzRGV0YWlWaWV3ID0gdmlldy5vcGVuQXNEZXRhaWxWaWV3O1xuICAgICAgLy92aWV3Q29uZmlnSW5zdGFuY2UuZ2xvYmFscyA9IHRoaXMub3B0aW9ucy5nbG9iYWxzO1xuICAgICAgLy9sZXQgY29uZmlndXJlZFZpZXcgPSBPYmplY3QuYXNzaWduKHZpZXdDb25maWdJbnN0YW5jZSwgdmlldyk7XG4gICAgICBjb25maWd1cmVkVmlldy53aW5kb3cgPSBjb25maWd1cmVkV2luZG93O1xuICAgICAgY29uZmlndXJlZFZpZXdzLnB1c2goY29uZmlndXJlZFZpZXcpO1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWd1cmVkVmlld3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY2xvc2VXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlIGEgd2luZG93IHtvYmplY3R9IGZyb20gdGhlIHdpbmRvd3MgYXJyYXkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm5zIHRydWUgaWYgd2luZG93IHdhcyBjbG9zZWQsIGZhbHNlIGlmIG5vdCBjbG9zZWQuXG4gICAqL1xuICBjbG9zZVdpbmRvdyA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93RGlydHlDbG9zZSAmJiB3ZHcuaXNEaXJ0eSkge1xuICAgICAgYWxlcnQoXCJVbnNhdmVkIENoYW5nZXMuIFNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZyB3aW5kb3cuXCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93SW52YWxpZENsb3NlICYmIHdkdy5pc0ludmFsaWQpIHtcbiAgICAgIGFsZXJ0KFwiRGF0YSBpcyBpbnZhbGlkLiBDb3JyZWN0IEludmFsaWQgZGF0YSBiZWZvcmUgY2xvc2luZyB3aW5kb3cuXCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuY2FuQ2xvc2VGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNhbkNsb3NlRm4od2R3KSkge1xuICAgICAgICB0aGlzLndpbmRvd3Muc3BsaWNlKHRoaXMud2luZG93cy5pbmRleE9mKHdkdyksIDEpO1xuICAgICAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpbmRvd3Muc3BsaWNlKHRoaXMud2luZG93cy5pbmRleE9mKHdkdyksIDEpO1xuICAgICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFjdGl2YXRlRm9yZW1vc3RXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSBmb3JlbW9zdCB3aW5kb3cgdG8gYW4gYWN0aXZlIHN0YXRlXG4gICAqXG4gICAqL1xuICBhY3RpdmF0ZUZvcmVtb3N0V2luZG93ID0gKCkgPT4ge1xuICAgIHZhciBmb3JlbW9zdCA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMud2luZG93cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKChmb3JlbW9zdCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMud2luZG93c1tpXS56SW5kZXggPiBmb3JlbW9zdC56SW5kZXgpICYmICF0aGlzLndpbmRvd3NbaV0ubWluaW1pemVkICYmICF0aGlzLndpbmRvd3NbaV0ub3V0T2ZCb3VuZHMpXG4gICAgICAgIGZvcmVtb3N0ID0gdGhpcy53aW5kb3dzW2ldO1xuICAgIH1cbiAgICBpZiAoZm9yZW1vc3QpXG4gICAgICBmb3JlbW9zdC5hY3RpdmUgPSB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFjdGl2YXRlTmV4dFdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgdGhlIG5leHQgd2luZG93IHRvIGFuIGFjdGl2ZSBzdGF0ZVxuICAgKlxuICAgKi9cbiAgYWN0aXZhdGVOZXh0V2luZG93ID0gKGFjdGl2ZVdpbmRvd0xvY2F0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3dzLmxlbmd0aCA8PSAxKSByZXR1cm47XG4gICAgdmFyIGJhY2tlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoYWN0aXZlV2luZG93TG9jYXRpb24pO1xuICAgIHZhciBmcm9udGVuZCA9IHRoaXMud2luZG93cy5zbGljZSgwLCBhY3RpdmVXaW5kb3dMb2NhdGlvbiAtIDEpO1xuICAgIHZhciBzb3J0ZWQgPSBiYWNrZW5kLmNvbmNhdChmcm9udGVuZCk7XG4gICAgdmFyIG5leHRXaW5kb3cgPSB1bmRlZmluZWQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghc29ydGVkW2ldLm1pbmltaXplZCAmJiAhc29ydGVkW2ldLm91dE9mQm91bmRzICYmICFuZXh0V2luZG93KVxuICAgICAgICBuZXh0V2luZG93ID0gc29ydGVkW2ldO1xuICAgIH1cblxuICAgIGlmIChuZXh0V2luZG93KSB7XG4gICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICBuZXh0V2luZG93LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgICAgbmV4dFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5hY3RpdmF0ZVByZXZpb3VzV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgcHJldmlvdXMgd2luZG93IHRvIGFuIGFjdGl2ZSBzdGF0ZVxuICAgKlxuICAgKi9cbiAgYWN0aXZhdGVQcmV2aW91c1dpbmRvdyA9IChhY3RpdmVXaW5kb3dMb2NhdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93cy5sZW5ndGggPD0gMSkgcmV0dXJuO1xuICAgIHZhciBiYWNrZW5kID0gdGhpcy53aW5kb3dzLnNsaWNlKGFjdGl2ZVdpbmRvd0xvY2F0aW9uKTtcbiAgICB2YXIgZnJvbnRlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoMCwgYWN0aXZlV2luZG93TG9jYXRpb24gLSAxKTtcbiAgICB2YXIgc29ydGVkID0gYmFja2VuZC5jb25jYXQoZnJvbnRlbmQpO1xuICAgIHZhciBuZXh0V2luZG93ID0gdW5kZWZpbmVkO1xuICAgIGZvciAodmFyIGkgPSBzb3J0ZWQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmICghc29ydGVkW2ldLm1pbmltaXplZCAmJiAhc29ydGVkW2ldLm91dE9mQm91bmRzICYmICFuZXh0V2luZG93KVxuICAgICAgICBuZXh0V2luZG93ID0gc29ydGVkW2ldO1xuICAgIH1cblxuICAgIGlmIChuZXh0V2luZG93KSB7XG4gICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICBuZXh0V2luZG93LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgICAgbmV4dFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5taW5pbWl6ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWaXN1YWxseSByZW1vdmVzIHdpbmRvdyBmcm9tIHRoZSB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1pbmltaXplID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgdGhpcy5zYXZlUG9zaXRpb24od2luZG93KTtcblxuICAgIHdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICB3aW5kb3cubWluaW1pemVkID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5tYXhpbWl6ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQb3NpdGlvbnMgd2luZG93IHN1Y2ggdGhhdCBpdCBmaWxscyB0aGUgd2hvbGUgdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtYXhpbWl6ZSA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHdpbmRvdy50b3AgPSAwO1xuICAgIHdpbmRvdy5sZWZ0ID0gMDtcbiAgICB3aW5kb3cucmlnaHQgPSAwO1xuICAgIHdpbmRvdy5ib3R0b20gPSAwO1xuICAgIHdpbmRvdy5oZWlnaHQgPSAnYXV0byc7XG4gICAgd2luZG93LndpZHRoID0gJzEwMCUnO1xuICAgIHdpbmRvdy5tYXhpbWl6ZWQgPSAnZmlsbCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWF4aW1pemVMZWZ0XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBvc2l0aW9ucyB3aW5kb3cgc3VjaCB0aGF0IGl0IGZpbGxzIHRoZSBsZWZ0IHBvcnRpb24gdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtYXhpbWl6ZUxlZnQgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cuc3BsaXQgPSB0cnVlO1xuICAgIHdpbmRvdy50b3AgPSAwO1xuICAgIHdpbmRvdy5sZWZ0ID0gMDtcbiAgICB3aW5kb3cuYm90dG9tID0gMDtcbiAgICB3aW5kb3cud2lkdGggPSAnNTAlJztcbiAgICB3aW5kb3cuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIHdpbmRvdy5tYXhpbWl6ZWQgPSAnbGVmdCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWF4aW1pemVSaWdodFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQb3NpdGlvbnMgd2luZG93IHN1Y2ggdGhhdCBpdCBmaWxscyB0aGUgcmlnaHQgcG9ydGlvbiB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1heGltaXplUmlnaHQgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cudG9wID0gMDtcbiAgICB3aW5kb3cubGVmdCA9ICc1MCUnO1xuICAgIHdpbmRvdy5yaWdodCA9IDA7XG4gICAgd2luZG93LmJvdHRvbSA9IDA7XG4gICAgd2luZG93LndpZHRoID0gJzUwJSc7XG4gICAgd2luZG93LmhlaWdodCA9ICdhdXRvJztcbiAgICB3aW5kb3cubWF4aW1pemVkID0gJ3JpZ2h0JztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5yZWNvdmVyXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJyaW5ncyB3aW5kb3cgYmFjayBpbnRvIHZpZXcgd2hlbiBpdCBoYXMgZXNjYXBlZCB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICByZWNvdmVyID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgd2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgd2luZG93Lm91dE9mQm91bmRzID0gZmFsc2U7XG4gICAgd2luZG93Lm1pbmltaXplZCA9IGZhbHNlO1xuICAgIHdpbmRvdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgICB0aGlzLmNhc2NhZGVXaW5kb3cod2luZG93KTtcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQucmVzdG9yZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgcmVzdG9yZSA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIGlmICh3ZHcubWF4aW1pemVkID09PSAnZmlsbCcpIHtcbiAgICAgIHRoaXMubWF4aW1pemUod2R3KTtcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdsZWZ0Jykge1xuICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQod2R3KTtcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMubWF4aW1pemVSaWdodCh3ZHcpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVdpbmRvd1N0YXRlKHdkdyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYnJpbmdUb0Zyb250XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICB1cGRhdGVXaW5kb3dTdGF0ZSA9ICh3ZHc6IGFueSkgPT4ge1xyXG4gICAgaWYgKHdkdy5vdXRPZkJvdW5kcykge1xyXG4gICAgICB0aGlzLnJlY292ZXIod2R3KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3ZHcubWF4aW1pemVkID09PSAnZmlsbCcpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZSh3ZHcpO1xyXG4gICAgfSBlbHNlIGlmICh3ZHcubWF4aW1pemVkID09PSAnbGVmdCcpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQod2R3KTtcclxuICAgIH0gZWxzZSBpZiAod2R3Lm1heGltaXplZCA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICB0aGlzLm1heGltaXplUmlnaHQod2R3KTtcclxuICAgIH1cclxuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcclxuICAgIHdkdy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgd2R3Lm1pbmltaXplZCA9IGZhbHNlO1xyXG4gICAgd2R3LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xyXG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQucmVzdG9yZVNhdmVkUG9zaXRpb25cbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSB3aW5kb3dzIGxhc3Qga25vdyBwb3NpdGlvbiB0byB0aGUgY3VycmVudCBwb3NpdGlvbi5cbiAgICpcbiAgICovXG4gIHJlc3RvcmVTYXZlZFBvc2l0aW9uID0gKHdkdzogYW55KSA9PiB7XG4gICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgIHdkdy50b3AgPSB3ZHcuc2F2ZWRQb3NpdGlvbi50b3A7XG4gICAgd2R3LmxlZnQgPSB3ZHcuc2F2ZWRQb3NpdGlvbi5sZWZ0O1xuICAgIHdkdy5yaWdodCA9IHdkdy5zYXZlZFBvc2l0aW9uLnJpZ2h0O1xuICAgIHdkdy5ib3R0b20gPSB3ZHcuc2F2ZWRQb3NpdGlvbi5ib3R0b207XG4gICAgd2R3LmhlaWdodCA9IHdkdy5zYXZlZFBvc2l0aW9uLmhlaWdodDtcbiAgICB3ZHcud2lkdGggPSB3ZHcuc2F2ZWRQb3NpdGlvbi53aWR0aDtcbiAgICB3ZHcubWF4aW1pemVkID0gdW5kZWZpbmVkO1xuICAgIHdkdy5taW5pbWl6ZWQgPSB1bmRlZmluZWQ7XG4gICAgd2R3LmFjdGl2ZSA9IHRydWU7XG4gICAgd2R3Lm1pbmltaXplZCA9IGZhbHNlO1xuICAgIHdkdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5zYXZlUG9zaXRpb25cbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2F2ZSB0aGUgd2luZG93cyBsYXN0IGtub3cgcG9zaXRpb24uXG4gICAqXG4gICAqL1xuICBzYXZlUG9zaXRpb24gPSAod2R3OiBhbnkpID0+IHtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi50b3AgPSB3ZHcudG9wO1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLmxlZnQgPSB3ZHcubGVmdDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5yaWdodCA9IHdkdy5yaWdodDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5ib3R0b20gPSB3ZHcuYm90dG9tO1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLmhlaWdodCA9IHdkdy5oZWlnaHQ7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24ud2lkdGggPSB3ZHcud2lkdGg7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY2xvc2VXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTW92ZXMgYSB3aW5kb3cgdG8gdGhlIG5leHQgY2FzY2FkZSBwb3NpdGlvbi5cbiAgICpcbiAgICovXG4gIGNhc2NhZGVXaW5kb3cgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5lbmFibGVXaW5kb3dDYXNjYWRpbmcgfHwgd2luZG93LmlzTW9kYWwpIHJldHVybjtcbiAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wICs9IDEwO1xuICAgIHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ICs9IDEwO1xuICAgIGlmICh0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wID4gdGhpcy5tYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24pXG4gICAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wID0gdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb247XG4gICAgaWYgKHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ID4gdGhpcy5tYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24pXG4gICAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24ubGVmdCA9IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uO1xuXG4gICAgd2luZG93LnRvcCA9IHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi50b3AgKyAncHgnO1xuICAgIHdpbmRvdy5sZWZ0ID0gdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLmxlZnQgKyAncHgnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBldmVudFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgb25LZXlEb3duID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoZXZlbnQuYWx0S2V5KVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB2YXIga2V5U2VxdWVuY2UgPSB0aGlzLnV0aWwuZ2V0S2V5U2VxdWVuY2UoZXZlbnQpO1xuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCttJykgeyAvL01heGltaXplXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmIChhY3RpdmVXaW5kb3cgPT09IG51bGwpIHJldHVybjtcbiAgICAgIGlmICghYWN0aXZlV2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLnNhdmVQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgICB0aGlzLm1heGltaXplKGFjdGl2ZVdpbmRvdyk7XG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcgfHwgYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ2xlZnQnKVxuICAgICAgICB0aGlzLm1heGltaXplKGFjdGl2ZVdpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMucmVzdG9yZVNhdmVkUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtuJykgeyAvL01pbmltaXplXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmIChhY3RpdmVXaW5kb3cgPT09IG51bGwgfHwgYWN0aXZlV2luZG93Lm1pbmltaXplZCkgcmV0dXJuO1xuICAgICAgdGhpcy5taW5pbWl6ZShhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3cnKSB7IC8vQ3ljbGVzIEZvcndhcmRcbiAgICAgIHZhciBpbmRleCA9IHRoaXMud2luZG93cy5pbmRleE9mKHRoaXMuZ2V0QWN0aXZlV2luZG93KCkpO1xuICAgICAgdGhpcy5hY3RpdmF0ZU5leHRXaW5kb3coaW5kZXggKyAxKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ3NoaWZ0K2FsdCt3JykgeyAvL0N5Y2xlcyBCYWNrd2FyZFxuICAgICAgdmFyIGluZGV4ID0gdGhpcy53aW5kb3dzLmluZGV4T2YodGhpcy5nZXRBY3RpdmVXaW5kb3coKSk7XG4gICAgICB0aGlzLmFjdGl2YXRlUHJldmlvdXNXaW5kb3coaW5kZXggKyAxKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ3NoaWZ0K2FsdCt4JyAmJiAhKHRoaXMuc2hpZnRQcmVzc2VkICYmIHRoaXMuYWx0UHJlc3NlZCAmJiB0aGlzLnhQcmVzc2VkKSkgeyAvL0Nsb3NlXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmICghYWN0aXZlV2luZG93KSByZXR1cm47XG4gICAgICB0aGlzLmNsb3NlV2luZG93KGFjdGl2ZVdpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbCcpIHsgLy9NYXhpbWl6ZSBsZWZ0XG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmICghYWN0aXZlV2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLnNhdmVQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgICB0aGlzLm1heGltaXplTGVmdChhY3RpdmVXaW5kb3cpO1xuICAgICAgfSBlbHNlIGlmIChhY3RpdmVXaW5kb3cubWF4aW1pemVkID09PSAncmlnaHQnIHx8IGFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQgPT09ICdmaWxsJylcbiAgICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQoYWN0aXZlV2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5yZXN0b3JlU2F2ZWRQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3InKSB7IC8vTWF4aW1pemUgcmlnaHRcbiAgICAgIHZhciBhY3RpdmVXaW5kb3cgPSB0aGlzLmdldEFjdGl2ZVdpbmRvdygpO1xuICAgICAgaWYgKCFhY3RpdmVXaW5kb3cubWF4aW1pemVkKSB7XG4gICAgICAgIHRoaXMuc2F2ZVBvc2l0aW9uKGFjdGl2ZVdpbmRvdyk7XG4gICAgICAgIHRoaXMubWF4aW1pemVSaWdodChhY3RpdmVXaW5kb3cpO1xuICAgICAgfSBlbHNlIGlmIChhY3RpdmVXaW5kb3cubWF4aW1pemVkID09PSAnbGVmdCcgfHwgYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ2ZpbGwnKVxuICAgICAgICB0aGlzLm1heGltaXplUmlnaHQoYWN0aXZlV2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5yZXN0b3JlU2F2ZWRQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K2QnKSB7IC8vVG9nZ2xlIERlc2t0b3BcbiAgICAgIC8vdGhpcy5kZXNrdG9wU2hvd24gPSB0aGlzLmhpZGVTaG93QWxsKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChldmVudC5zaGlmdEtleSlcbiAgICAgIHRoaXMuc2hpZnRQcmVzc2VkID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQuYWx0S2V5KVxuICAgICAgdGhpcy5hbHRQcmVzc2VkID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gODgpXG4gICAgICB0aGlzLnhQcmVzc2VkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uS2V5VXAgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGlmIChldmVudC5zaGlmdEtleSlcbiAgICAgIHRoaXMuc2hpZnRQcmVzc2VkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmFsdEtleSlcbiAgICAgIHRoaXMuYWx0UHJlc3NlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC5rZXlDb2RlID09PSA4OClcbiAgICAgIHRoaXMueFByZXNzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmhhbmRsZVNlbGVjdEF0dGVtcHRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUHJldmVudHMgdGhlIHVzZXIgZnJvbSBoaWdobGlnaHQgZGVza3RvcCBlbGVtZW50cy5cbiAgICpcbiAgICovXG4gIGhhbmRsZVNlbGVjdEF0dGVtcHQgPSAoZTogYW55KSA9PiB7XG4gICAgdmFyIG5vZGVOYW1lID0gZS50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBsZXQgcmljaFRleHRFbGVtZW50ID0gdGhpcy51dGlsLmZpbmRDbG9zZXN0QW5jZXN0b3JCeUNsYXNzKGUudGFyZ2V0LCAnLnJpY2gtdGV4dCcpO1xuICAgIGlmIChcbiAgICAgIG5vZGVOYW1lID09PSAnaW5wdXQnIHx8XG4gICAgICBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJyB8fFxuICAgICAgbm9kZU5hbWUgPT09ICdzZWxlY3QnIHx8XG4gICAgICBub2RlTmFtZSA9PT0gJyN0ZXh0JyB8fFxuICAgICAgcmljaFRleHRFbGVtZW50KSByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICh3aW5kb3cuZXZlbnQpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB3aW5kb3dzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZ29VcmwgPSB0aGlzLm9wdGlvbnMubG9nb1VybDtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZXNrdG9wLm9wdGlvbnMsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB0aGlzLm9wdGlvbnMudmlld3BvcnRUb3AgPSB0aGlzLm9wdGlvbnMubWVudWJhckNvbmZpZyAhPT0gdW5kZWZpbmVkID8gdGhpcy5vcHRpb25zLm1lbnViYXJIZWlnaHQgKyAxIDogMDtcclxuICAgIHRoaXMudHJ1RGVza3RvcEV2ZW50SGFuZGxlci5vbk9wZW4oKS5zdWJzY3JpYmUoKHdpbmRpb3dFdmVudDogVHJ1V2luZG93RXZlbnRBcmdzKSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbldpbmRvdyh3aW5kaW93RXZlbnQsIGZhbHNlKTtcclxuICAgIH0pO1xyXG4gICAgZG9jdW1lbnQub25zZWxlY3RzdGFydCA9IHRoaXMuaGFuZGxlU2VsZWN0QXR0ZW1wdDtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd24pO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5vbktleVVwKTtcclxuICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgbGV0IGhhc0NoYW5nZXMgPSB0aGlzLnZpZXdwb3J0Q29tcG9uZW50LndpbmRvd0NvbXBvbmVudHMuZmlsdGVyKCh3OiBUcnVEZXNrdG9wV2luZG93KSA9PiB7IHJldHVybiB3Lmhhc0NoYW5nZXMoKSA/IHRydWUgOiBmYWxzZTsgfSlcclxuICAgICAgaWYgKGhhc0NoYW5nZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xyXG4gICAgICAgIHZhciBtc2cgPSB0aGlzLnRleHRNYW5hZ2VyLm1zZ0NvbmZpcm1FeGl0V2l0aENoYW5nZXNQZW5kaW5nO1xyXG5cclxuICAgICAgICAvLyBGb3IgSUUgYW5kIEZpcmVmb3hcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgZS5yZXR1cm5WYWx1ZSA9IG1zZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEZvciBTYWZhcmkgLyBjaHJvbWVcclxuICAgICAgICByZXR1cm4gbXNnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uS2V5RG93bik7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5vbktleVVwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRlc2t0b3Atd3JhcHBlclwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZGVza3RvcC1tZW51YmFyLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsnaGVpZ2h0Jzogb3B0aW9ucy5tZW51YmFySGVpZ2h0ICsgJ3B4J31cIj5cclxuICAgIDx0cnUtZGVza3RvcC1tZW51YmFyIFtkZXNrdG9wQ3RybF09XCJ0aGlzXCI+PC90cnUtZGVza3RvcC1tZW51YmFyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8dHJ1LWRlc2t0b3Atdmlld3BvcnQgW3dpbmRvd3NdPVwid2luZG93c1wiIFtkZXNrdG9wQ3RybF09XCJ0aGlzXCI+PC90cnUtZGVza3RvcC12aWV3cG9ydD5cclxuXHJcbiAgPHRydS1kZXNrdG9wLXRhc2tiYXIgW3dpbmRvd3NdPVwid2luZG93c1wiIFtkZXNrdG9wQ3RybF09XCJ0aGlzXCI+PC90cnUtZGVza3RvcC10YXNrYmFyPlxyXG5cclxuICA8aW1nIGNsYXNzPVwiZGVza3RvcC12aWV3cG9ydC1sb2dvXCIgZGF0YS1uZy1zaG93PVwibG9nb1VybFwiIGFsdD1cIlwiPlxyXG48L2Rpdj5cclxuIl19
750
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC90cnUtZGVza3RvcC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQVVyRSxNQUFNLE9BQU8sVUFBVTtJQUtYO0lBQ0E7SUFDQTtJQUNBO0lBUEQsT0FBTyxDQUFNO0lBQ2lCLGlCQUFpQixDQUFzQjtJQUU5RSxZQUNVLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLHNCQUE4QyxFQUM5QyxJQUFhO1FBSGIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQVM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLE9BQU8sQ0FBTTtJQUNiLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztJQUM5Qix3QkFBd0IsR0FBRyxHQUFHLENBQUM7SUFDL0IseUJBQXlCLEdBQUcsRUFBRSxH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QyxpQkFBaUIsQ0FBQyw2RUFJbkIsa0JBQWtCLGdEQ25CL0Isc2dCQVlBOzsyRkRLYSxVQUFVO2tCQU50QixTQUFTOytCQUNFLGFBQWEsYUFHWixDQUFDLGlCQUFpQixDQUFDOzhLQUdyQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ2lDLGlCQUFpQjtzQkFBdkQsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50QXJncyB9IGZyb20gJy4vc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1hcmdzJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcEV2ZW50SGFuZGxlciB9IGZyb20gJy4vc2VydmljZXMvdHJ1LWRlc2t0b3AtZXZlbnQtaGFuZGxlcic7XG5pbXBvcnQgeyBUcnVEZXNrdG9wU2VydmljZSwgV2luZG93Q29uZmlnIH0gZnJvbSAnLi9zZXJ2aWNlcy90cnUtZGVza3RvcC1zZXJ2aWNlJztcbmltcG9ydCB7IFRydURlc2t0b3BWaWV3Q29uZmlnIH0gZnJvbSAnLi9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1VGV4dE1hbmFnZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtdGV4dC1tYW5hZ2VyJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFdpbmRvdyB9IGZyb20gJy4vd2luZG93L3RydS1kZXNrdG9wLXdpbmRvdyc7XHJcbmltcG9ydCB7IFRydURlc2t0b3BWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQvdHJ1LWRlc2t0b3Atdmlld3BvcnQnO1xyXG5pbXBvcnQgeyBUcnVVdGlsIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXV0aWwnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndHJ1LWRlc2t0b3AnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWRlc2t0b3AuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RydS1kZXNrdG9wLmNzcyddLFxuICBwcm92aWRlcnM6IFtUcnVEZXNrdG9wU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgVHJ1RGVza3RvcCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueTtcbiAgQFZpZXdDaGlsZChUcnVEZXNrdG9wVmlld3BvcnQpIHByaXZhdGUgdmlld3BvcnRDb21wb25lbnQhOiBUcnVEZXNrdG9wVmlld3BvcnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkZXNrdG9wU2VydmljZTogVHJ1RGVza3RvcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZXh0TWFuYWdlcjogVHJ1VGV4dE1hbmFnZXIsXG4gICAgcHJpdmF0ZSB0cnVEZXNrdG9wRXZlbnRIYW5kbGVyOiBUcnVEZXNrdG9wRXZlbnRIYW5kbGVyLFxuICAgIHByaXZhdGUgdXRpbDogVHJ1VXRpbCkge1xuICAgIHRoaXMuZGVza3RvcCA9IHRoaXMuZGVza3RvcFNlcnZpY2UuY3JlYXRlRGVza3RvcCgpO1xuICB9XHJcblxuICBtaW5pbWl6ZUFsbCA9IGZhbHNlO1xuICBkZXNrdG9wOiBhbnk7XG4gIG1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbiA9IDQwO1xuICBtYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24gPSAxMDA7XG4gIGxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24gPSB7IHRvcDogdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb24sIGxlZnQ6IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uIH07XG4gIHNoaWZ0UHJlc3NlZCA9IGZhbHNlO1xuICBhbHRQcmVzc2VkID0gZmFsc2U7XG4gIHhQcmVzc2VkID0gZmFsc2U7XG4gIGxvZ29VcmwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldERlc2t0b3BcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmV0dXJuIGFuIG9iamVjdCBvZiBkZXNrdG9wLlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSBkZXNrdG9wLlxuICAgKi9cbiAgZ2V0RGVza3RvcCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kZXNrdG9wO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldE9wdGlvbnNcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmV0dXJuIGFuIG9iamVjdCBvZiBkZXNrdG9wIG9wdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IG9wdGlvbnMuXG4gICAqL1xuICBnZXRPcHRpb25zID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0V2luZG93c1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygd2luZG93cy5cbiAgICpcbiAgICogQHJldHVybnMge2FycmF5fSB3aW5kb3dzLlxuICAgKi9cbiAgZ2V0V2luZG93cyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy53aW5kb3dzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldE5leHRNYXhaSW5kZXhcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSXRlcmF0ZXMgdGhyb3VnaCBhbGwgd2luZG93IG9iamVjdHMgaW4gdGhlIHdpbmRvd3MgYXJyYXkgdG8gZmluZCB0aGUgbWF4IHotaW5kZXhcbiAgICogYW5kIGluY3JlYXNlcyB0aGUgdmFsdWUgZm91bmQgYnkgMS5cbiAgICpcbiAgICogQHJldHVybnMge2ludH1cbiAgICovXG4gIGdldE5leHRNYXhaSW5kZXggPSAoKSA9PiB7XG4gICAgdmFyIG1heCA9IDA7XG4gICAgdmFyIHRtcDtcbiAgICBmb3IgKHZhciBpID0gdGhpcy53aW5kb3dzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB0bXAgPSB0aGlzLndpbmRvd3NbaV0uekluZGV4O1xuICAgICAgaWYgKHRtcCA+IG1heCkgbWF4ID0gdG1wO1xuICAgIH1cbiAgICByZXR1cm4gKyttYXg7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY2xlYXJBY3RpdmVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSXRlcmF0ZXMgdGhyb3VnaCBhbGwgd2luZG93IG9iamVjdHMgaW4gdGhlIHdpbmRvd3NcbiAgICogYW5kIHNldHMgdGhlIGFjdGl2ZSBwcm9wZXJ0eSB0byBmYWxzZS5cbiAgICpcbiAgICovXG4gIGNsZWFyQWN0aXZlID0gKCkgPT4ge1xuICAgIHRoaXMud2luZG93cy5mb3JFYWNoKCh3aW5kb3c6IGFueSkgPT4ge1xuICAgICAgd2luZG93LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldEFjdGl2ZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIHRoZSBhY3RpdmUgd2luZG93LlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSB2aWV3IG9iamVjdC5cbiAgICovXG4gIGdldEFjdGl2ZVdpbmRvdyA9ICgpOiBhbnkgPT4ge1xuICAgIHZhciBhY3RpdmVXaW5kb3cgPSBudWxsO1xuICAgIHRoaXMud2luZG93cy5mb3JFYWNoKCh3ZHc6IGFueSkgPT4ge1xuICAgICAgaWYgKHdkdy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgICAgYWN0aXZlV2luZG93ID0gd2R3O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmVXaW5kb3c7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0QWN0aXZlVmlld1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIHRoZSBhY3RpdmUgdmlldy5cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gdmlldyBvYmplY3QuXG4gICAqL1xuICBnZXRBY3RpdmVWaWV3ID0gKHdkdzogYW55KSA9PiB7XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSBudWxsO1xuICAgIHdkdy52aWV3cy5mb3JFYWNoKCh2aWV3OiBhbnkpID0+IHtcbiAgICAgIGlmICh2aWV3LmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmVWaWV3ID0gdmlldztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWN0aXZlVmlldztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5hbGxXaW5kb3dzQXJlTWluaW1pemVkXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyB0byBkZXRlcm1pbmUgaWYgYWxsIGFyZSBtaW5pbWl6ZWQuXG4gICAqXG4gICAqL1xuICBhbGxXaW5kb3dzQXJlTWluaW1pemVkID0gKCkgPT4ge1xuICAgIHZhciBhbGxNaW5pbWl6ZWQgPSB0cnVlO1xuICAgIHRoaXMud2luZG93cy5mb3JFYWNoKCh3aW5kb3c6IGFueSkgPT4ge1xuICAgICAgaWYgKCF3aW5kb3cubWluaW1pemVkKSB7XG4gICAgICAgIGFsbE1pbmltaXplZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhbGxNaW5pbWl6ZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuaGlkZVNob3dBbGxcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSGlkZXMvc2hvd3MgYWxsIHdpbmRvd3NcbiAgICpcbiAgICovXG4gIGhpZGVTaG93QWxsID0gKCkgPT4ge1xuICAgIHRoaXMubWluaW1pemVBbGwgPSB0aGlzLmFsbFdpbmRvd3NBcmVNaW5pbWl6ZWQoKSA/IGZhbHNlIDogIXRoaXMubWluaW1pemVBbGw7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdkdzogYW55KSA9PiB7XG4gICAgICBpZiAod2R3Lm91dE9mQm91bmRzKSB0aGlzLnJlY292ZXIod2R3KTtcbiAgICAgIHdkdy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHdkdy5taW5pbWl6ZWQgPSB0aGlzLm1pbmltaXplQWxsO1xuICAgIH0pO1xuICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgIHJldHVybiB0aGlzLm1pbmltaXplQWxsO1xuICB9O1xuXG4gIC8qKlxyXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXHJcbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5maW5kV2luZG93Vmlld0RpcmVjdGl2ZVxyXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqIExvb2tzIGZvciBwcmV2aW91c2x5IG9wZW4gd2luZG93IHdpdGggYSB2aWV3IGRpcmVjdGl2ZVxyXG4gICAqXHJcbiAgICovXHJcbiAgZmluZFdpbmRvd1ZpZXdEaXJlY3RpdmUgPSAod2luZG93Vmlld0RpcmVjdGl2ZTogYW55KSA9PiB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2luZG93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMud2luZG93c1tpXS52aWV3cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmICh0aGlzLndpbmRvd3NbaV0udmlld3NbMF0udmlld0RpcmVjdGl2ZSA9PT0gd2luZG93Vmlld0RpcmVjdGl2ZSlcclxuICAgICAgICAgIHJldHVybiB0aGlzLndpbmRvd3NbaV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQub3BlbldpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNwbGF5cyBhIG5ldyB3aW5kb3cuIEFsbCB3aW5kb3cgcHJvcGVydGllcyBkZWZpbmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgd2lsbCBiZVxuICAgKiBvdmVybGFpZCBoZXJlIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSB3aW5kb3dcbiAgICpcbiAgICovXG4gIG9wZW5XaW5kb3cgPSAod2luZG93Q29uZmlnT3ZlcmxheXM6IGFueSwgc2luZ2xlSW5zdGFuY2U6IGFueSk6IFdpbmRvd0NvbmZpZyA9PiB7XG4gICAgbGV0IGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XHJcbiAgICBpZiAoYWN0aXZlV2luZG93ICYmIGFjdGl2ZVdpbmRvdy5pc01vZGFsKSB7XHJcbiAgICAgIGFjdGl2ZVdpbmRvdy5pbnZhbGlkT3BlcmF0aW9uID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGFjdGl2ZVdpbmRvdztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2luZ2xlSW5zdGFuY2UpIHtcclxuICAgICAgbGV0IHdpbmRvdyA9IHRoaXMuZmluZFdpbmRvd1ZpZXdEaXJlY3RpdmUod2luZG93Q29uZmlnT3ZlcmxheXMudmlld3NbMF0udmlld0RpcmVjdGl2ZSk7XHJcbiAgICAgIGlmICh3aW5kb3cpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVdpbmRvd1N0YXRlKHdpbmRvdyk7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3dDb25maWdPdmVybGF5cy5pc01vZGFsKSB7XHJcbiAgICAgIGxldCBoZWlnaHRPZmZzZXQgPSAocGFyc2VJbnQod2luZG93Q29uZmlnT3ZlcmxheXMuaGVpZ2h0LCAxMCkgLyAyKSArIDMwO1xyXG4gICAgICBsZXQgd2lkdGhPZmZzZXQgPSAocGFyc2VJbnQod2luZG93Q29uZmlnT3ZlcmxheXMud2lkdGgsIDEwKSAvIDIpO1xyXG4gICAgICB3aW5kb3dDb25maWdPdmVybGF5cy50b3AgPSAnY2FsYyg1MCUgLSAnICsgaGVpZ2h0T2Zmc2V0ICsgJ3B4ICknO1xyXG4gICAgICB3aW5kb3dDb25maWdPdmVybGF5cy5sZWZ0ID0gJ2NhbGMoNTAlIC0gJyArIHdpZHRoT2Zmc2V0ICsgJ3B4ICknO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcclxuICAgIGxldCBjb25maWd1cmVkV2luZG93ID0gdGhpcy5jb25maWd1cmVXaW5kb3cod2luZG93Q29uZmlnT3ZlcmxheXMpO1xyXG4gICAgY29uZmlndXJlZFdpbmRvdy52aWV3cyA9IHRoaXMuY29uZmlndXJlVmlld3Mod2luZG93Q29uZmlnT3ZlcmxheXMsIGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgaWYgKCFjb25maWd1cmVkV2luZG93LmlzTW9kYWwpIHtcclxuICAgICAgY29uZmlndXJlZFdpbmRvdy5jYXNjYWRlV2luZG93ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2F2ZVBvc2l0aW9uKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgICB0aGlzLm1heGltaXplKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgICB0aGlzLndpbmRvd3MucHVzaChjb25maWd1cmVkV2luZG93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2luZG93cy5wdXNoKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgfVxuICAgIHJldHVybiBjb25maWd1cmVkV2luZG93O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNvbmZpZ3VyZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDcmVhdGVzIGEgbmV3IHdpbmRvdyBpbnN0YW5jZS5cbiAgICpcbiAgICovXG4gIGNvbmZpZ3VyZVdpbmRvdyA9ICh3aW5kb3dDb25maWdPdmVybGF5czogYW55KSA9PiB7XG4gICAgdmFyIHdpbmRvd0NvbmZpZ0luc3RhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZXNrdG9wLndpbmRvd0NvbmZpZyk7XG4gICAgd2luZG93Q29uZmlnSW5zdGFuY2Uuc2F2ZWRQb3NpdGlvbiA9IE9iamVjdC5jcmVhdGUoeyB0b3A6IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGhlaWdodDogMCwgd2lkdGg6IDAgfSk7XG4gICAgd2luZG93Q29uZmlnSW5zdGFuY2UuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gICAgLy93aW5kb3dDb25maWdJbnN0YW5jZS5nbG9iYWxzID0gT2JqZWN0LmFzc2lnbih7fSwgJHJvb3RTY29wZS4kZXZhbCh0aGlzLm9wdGlvbnMuZ2xvYmFscykpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHdpbmRvd0NvbmZpZ0luc3RhbmNlLCB3aW5kb3dDb25maWdPdmVybGF5cyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY29uZmlndXJlVmlld3NcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSB2aWV3IGluc3RhbmNlc1xuICAgKlxuICAgKi9cbiAgY29uZmlndXJlVmlld3MgPSAod2luZG93Q29uZmlnT3ZlcmxheXM6IGFueSwgY29uZmlndXJlZFdpbmRvdzogYW55KTogQXJyYXk8YW55PiA9PiB7XG4gICAgbGV0IGNvbmZpZ3VyZWRWaWV3czogQXJyYXk8YW55PiA9IFtdO1xuICAgIHdpbmRvd0NvbmZpZ092ZXJsYXlzLnZpZXdzLmZvckVhY2goKHZpZXc6IGFueSkgPT4ge1xuICAgICAgbGV0IGNvbmZpZ3VyZWRWaWV3ID0gbmV3IFRydURlc2t0b3BWaWV3Q29uZmlnKCk7XHJcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LmNvbXBvbmVudE5hbWUgPSB2aWV3LmNvbXBvbmVudE5hbWU7XHJcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LmVudGl0aWVzID0gdmlldy5lbnRpdGllcztcclxuICAgICAgY29uZmlndXJlZFZpZXcuZW50aXR5SW5kZXggPSB2aWV3LmVudGl0eUluZGV4O1xyXG4gICAgICBjb25maWd1cmVkVmlldy5pc0RpcnR5ID0gdmlldy5pc0RpcnR5O1xyXG4gICAgICBjb25maWd1cmVkVmlldy5pc0VkaXRpbmcgPSB2aWV3LmlzRWRpdGluZztcclxuICAgICAgY29uZmlndXJlZFZpZXcuaXNJbnZhbGlkID0gdmlldy5pc1ZhbGlkO1xyXG4gICAgICBjb25maWd1cmVkVmlldy5vcGVuQXNEZXRhaVZpZXcgPSB2aWV3Lm9wZW5Bc0RldGFpbFZpZXc7XG4gICAgICAvL3ZpZXdDb25maWdJbnN0YW5jZS5nbG9iYWxzID0gdGhpcy5vcHRpb25zLmdsb2JhbHM7XG4gICAgICAvL2xldCBjb25maWd1cmVkVmlldyA9IE9iamVjdC5hc3NpZ24odmlld0NvbmZpZ0luc3RhbmNlLCB2aWV3KTtcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LndpbmRvdyA9IGNvbmZpZ3VyZWRXaW5kb3c7XG4gICAgICBjb25maWd1cmVkVmlld3MucHVzaChjb25maWd1cmVkVmlldyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWRWaWV3cztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jbG9zZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmUgYSB3aW5kb3cge29iamVjdH0gZnJvbSB0aGUgd2luZG93cyBhcnJheS5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHJldHVybnMgdHJ1ZSBpZiB3aW5kb3cgd2FzIGNsb3NlZCwgZmFsc2UgaWYgbm90IGNsb3NlZC5cbiAgICovXG4gIGNsb3NlV2luZG93ID0gKHdkdzogYW55KSA9PiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dEaXJ0eUNsb3NlICYmIHdkdy5pc0RpcnR5KSB7XG4gICAgICBhbGVydChcIlVuc2F2ZWQgQ2hhbmdlcy4gU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nIHdpbmRvdy5cIik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dJbnZhbGlkQ2xvc2UgJiYgd2R3LmlzSW52YWxpZCkge1xuICAgICAgYWxlcnQoXCJEYXRhIGlzIGludmFsaWQuIENvcnJlY3QgSW52YWxpZCBkYXRhIGJlZm9yZSBjbG9zaW5nIHdpbmRvdy5cIik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jYW5DbG9zZUZuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuY2FuQ2xvc2VGbih3ZHcpKSB7XG4gICAgICAgIHRoaXMud2luZG93cy5zcGxpY2UodGhpcy53aW5kb3dzLmluZGV4T2Yod2R3KSwgMSk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgICAgICB3ZHcuY2xvc2VkKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53aW5kb3dzLnNwbGljZSh0aGlzLndpbmRvd3MuaW5kZXhPZih3ZHcpLCAxKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgICAgd2R3LmNsb3NlZCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5hY3RpdmF0ZUZvcmVtb3N0V2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgZm9yZW1vc3Qgd2luZG93IHRvIGFuIGFjdGl2ZSBzdGF0ZVxuICAgKlxuICAgKi9cbiAgYWN0aXZhdGVGb3JlbW9zdFdpbmRvdyA9ICgpID0+IHtcbiAgICB2YXIgZm9yZW1vc3QgPSB1bmRlZmluZWQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLndpbmRvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICgoZm9yZW1vc3QgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpbmRvd3NbaV0uekluZGV4ID4gZm9yZW1vc3QuekluZGV4KSAmJiAhdGhpcy53aW5kb3dzW2ldLm1pbmltaXplZCAmJiAhdGhpcy53aW5kb3dzW2ldLm91dE9mQm91bmRzKVxuICAgICAgICBmb3JlbW9zdCA9IHRoaXMud2luZG93c1tpXTtcbiAgICB9XG4gICAgaWYgKGZvcmVtb3N0KVxuICAgICAgZm9yZW1vc3QuYWN0aXZlID0gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5hY3RpdmF0ZU5leHRXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSBuZXh0IHdpbmRvdyB0byBhbiBhY3RpdmUgc3RhdGVcbiAgICpcbiAgICovXG4gIGFjdGl2YXRlTmV4dFdpbmRvdyA9IChhY3RpdmVXaW5kb3dMb2NhdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93cy5sZW5ndGggPD0gMSkgcmV0dXJuO1xuICAgIHZhciBiYWNrZW5kID0gdGhpcy53aW5kb3dzLnNsaWNlKGFjdGl2ZVdpbmRvd0xvY2F0aW9uKTtcbiAgICB2YXIgZnJvbnRlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoMCwgYWN0aXZlV2luZG93TG9jYXRpb24gLSAxKTtcbiAgICB2YXIgc29ydGVkID0gYmFja2VuZC5jb25jYXQoZnJvbnRlbmQpO1xuICAgIHZhciBuZXh0V2luZG93ID0gdW5kZWZpbmVkO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXNvcnRlZFtpXS5taW5pbWl6ZWQgJiYgIXNvcnRlZFtpXS5vdXRPZkJvdW5kcyAmJiAhbmV4dFdpbmRvdylcbiAgICAgICAgbmV4dFdpbmRvdyA9IHNvcnRlZFtpXTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFdpbmRvdykge1xuICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgbmV4dFdpbmRvdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgICAgIG5leHRXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYWN0aXZhdGVQcmV2aW91c1dpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgdGhlIHByZXZpb3VzIHdpbmRvdyB0byBhbiBhY3RpdmUgc3RhdGVcbiAgICpcbiAgICovXG4gIGFjdGl2YXRlUHJldmlvdXNXaW5kb3cgPSAoYWN0aXZlV2luZG93TG9jYXRpb246IGFueSkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvd3MubGVuZ3RoIDw9IDEpIHJldHVybjtcbiAgICB2YXIgYmFja2VuZCA9IHRoaXMud2luZG93cy5zbGljZShhY3RpdmVXaW5kb3dMb2NhdGlvbik7XG4gICAgdmFyIGZyb250ZW5kID0gdGhpcy53aW5kb3dzLnNsaWNlKDAsIGFjdGl2ZVdpbmRvd0xvY2F0aW9uIC0gMSk7XG4gICAgdmFyIHNvcnRlZCA9IGJhY2tlbmQuY29uY2F0KGZyb250ZW5kKTtcbiAgICB2YXIgbmV4dFdpbmRvdyA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKHZhciBpID0gc29ydGVkLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoIXNvcnRlZFtpXS5taW5pbWl6ZWQgJiYgIXNvcnRlZFtpXS5vdXRPZkJvdW5kcyAmJiAhbmV4dFdpbmRvdylcbiAgICAgICAgbmV4dFdpbmRvdyA9IHNvcnRlZFtpXTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFdpbmRvdykge1xuICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgbmV4dFdpbmRvdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgICAgIG5leHRXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWluaW1pemVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVmlzdWFsbHkgcmVtb3ZlcyB3aW5kb3cgZnJvbSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtaW5pbWl6ZSA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHRoaXMuc2F2ZVBvc2l0aW9uKHdpbmRvdyk7XG5cbiAgICB3aW5kb3cuYWN0aXZlID0gZmFsc2U7XG4gICAgd2luZG93Lm1pbmltaXplZCA9IHRydWU7XG4gICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWF4aW1pemVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUG9zaXRpb25zIHdpbmRvdyBzdWNoIHRoYXQgaXQgZmlsbHMgdGhlIHdob2xlIHZpZXdwb3J0LlxuICAgKlxuICAgKi9cbiAgbWF4aW1pemUgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cudG9wID0gMDtcbiAgICB3aW5kb3cubGVmdCA9IDA7XG4gICAgd2luZG93LnJpZ2h0ID0gMDtcbiAgICB3aW5kb3cuYm90dG9tID0gMDtcbiAgICB3aW5kb3cuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIHdpbmRvdy53aWR0aCA9ICcxMDAlJztcbiAgICB3aW5kb3cubWF4aW1pemVkID0gJ2ZpbGwnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50Lm1heGltaXplTGVmdFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQb3NpdGlvbnMgd2luZG93IHN1Y2ggdGhhdCBpdCBmaWxscyB0aGUgbGVmdCBwb3J0aW9uIHZpZXdwb3J0LlxuICAgKlxuICAgKi9cbiAgbWF4aW1pemVMZWZ0ID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgd2luZG93LnNwbGl0ID0gdHJ1ZTtcbiAgICB3aW5kb3cudG9wID0gMDtcbiAgICB3aW5kb3cubGVmdCA9IDA7XG4gICAgd2luZG93LmJvdHRvbSA9IDA7XG4gICAgd2luZG93LndpZHRoID0gJzUwJSc7XG4gICAgd2luZG93LmhlaWdodCA9ICdhdXRvJztcbiAgICB3aW5kb3cubWF4aW1pemVkID0gJ2xlZnQnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50Lm1heGltaXplUmlnaHRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUG9zaXRpb25zIHdpbmRvdyBzdWNoIHRoYXQgaXQgZmlsbHMgdGhlIHJpZ2h0IHBvcnRpb24gdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtYXhpbWl6ZVJpZ2h0ID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgd2luZG93LnRvcCA9IDA7XG4gICAgd2luZG93LmxlZnQgPSAnNTAlJztcbiAgICB3aW5kb3cucmlnaHQgPSAwO1xuICAgIHdpbmRvdy5ib3R0b20gPSAwO1xuICAgIHdpbmRvdy53aWR0aCA9ICc1MCUnO1xuICAgIHdpbmRvdy5oZWlnaHQgPSAnYXV0byc7XG4gICAgd2luZG93Lm1heGltaXplZCA9ICdyaWdodCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQucmVjb3ZlclxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCcmluZ3Mgd2luZG93IGJhY2sgaW50byB2aWV3IHdoZW4gaXQgaGFzIGVzY2FwZWQgdGhlIHZpZXdwb3J0LlxuICAgKlxuICAgKi9cbiAgcmVjb3ZlciA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHdpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIHdpbmRvdy5vdXRPZkJvdW5kcyA9IGZhbHNlO1xuICAgIHdpbmRvdy5taW5pbWl6ZWQgPSBmYWxzZTtcbiAgICB3aW5kb3cuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gICAgdGhpcy5jYXNjYWRlV2luZG93KHdpbmRvdyk7XG4gICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LnJlc3RvcmVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIHJlc3RvcmUgPSAod2R3OiBhbnkpID0+IHtcbiAgICBpZiAod2R3Lm1heGltaXplZCA9PT0gJ2ZpbGwnKSB7XG4gICAgICB0aGlzLm1heGltaXplKHdkdyk7XG4gICAgfSBlbHNlIGlmICh3ZHcubWF4aW1pemVkID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMubWF4aW1pemVMZWZ0KHdkdyk7XG4gICAgfSBlbHNlIGlmICh3ZHcubWF4aW1pemVkID09PSAncmlnaHQnKSB7XG4gICAgICB0aGlzLm1heGltaXplUmlnaHQod2R3KTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVXaW5kb3dTdGF0ZSh3ZHcpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmJyaW5nVG9Gcm9udFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgdXBkYXRlV2luZG93U3RhdGUgPSAod2R3OiBhbnkpID0+IHtcclxuICAgIGlmICh3ZHcub3V0T2ZCb3VuZHMpIHtcclxuICAgICAgdGhpcy5yZWNvdmVyKHdkdyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2R3Lm1heGltaXplZCA9PT0gJ2ZpbGwnKSB7XHJcbiAgICAgIHRoaXMubWF4aW1pemUod2R3KTtcclxuICAgIH0gZWxzZSBpZiAod2R3Lm1heGltaXplZCA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHRoaXMubWF4aW1pemVMZWZ0KHdkdyk7XHJcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZVJpZ2h0KHdkdyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB3ZHcuYWN0aXZlID0gdHJ1ZTtcclxuICAgIHdkdy5taW5pbWl6ZWQgPSBmYWxzZTtcclxuICAgIHdkdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcclxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LnJlc3RvcmVTYXZlZFBvc2l0aW9uXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgd2luZG93cyBsYXN0IGtub3cgcG9zaXRpb24gdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAqXG4gICAqL1xuICByZXN0b3JlU2F2ZWRQb3NpdGlvbiA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICB3ZHcudG9wID0gd2R3LnNhdmVkUG9zaXRpb24udG9wO1xuICAgIHdkdy5sZWZ0ID0gd2R3LnNhdmVkUG9zaXRpb24ubGVmdDtcbiAgICB3ZHcucmlnaHQgPSB3ZHcuc2F2ZWRQb3NpdGlvbi5yaWdodDtcbiAgICB3ZHcuYm90dG9tID0gd2R3LnNhdmVkUG9zaXRpb24uYm90dG9tO1xuICAgIHdkdy5oZWlnaHQgPSB3ZHcuc2F2ZWRQb3NpdGlvbi5oZWlnaHQ7XG4gICAgd2R3LndpZHRoID0gd2R3LnNhdmVkUG9zaXRpb24ud2lkdGg7XG4gICAgd2R3Lm1heGltaXplZCA9IHVuZGVmaW5lZDtcbiAgICB3ZHcubWluaW1pemVkID0gdW5kZWZpbmVkO1xuICAgIHdkdy5hY3RpdmUgPSB0cnVlO1xuICAgIHdkdy5taW5pbWl6ZWQgPSBmYWxzZTtcbiAgICB3ZHcuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuc2F2ZVBvc2l0aW9uXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNhdmUgdGhlIHdpbmRvd3MgbGFzdCBrbm93IHBvc2l0aW9uLlxuICAgKlxuICAgKi9cbiAgc2F2ZVBvc2l0aW9uID0gKHdkdzogYW55KSA9PiB7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24udG9wID0gd2R3LnRvcDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5sZWZ0ID0gd2R3LmxlZnQ7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24ucmlnaHQgPSB3ZHcucmlnaHQ7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24uYm90dG9tID0gd2R3LmJvdHRvbTtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5oZWlnaHQgPSB3ZHcuaGVpZ2h0O1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLndpZHRoID0gd2R3LndpZHRoO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNsb3NlV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE1vdmVzIGEgd2luZG93IHRvIHRoZSBuZXh0IGNhc2NhZGUgcG9zaXRpb24uXG4gICAqXG4gICAqL1xuICBjYXNjYWRlV2luZG93ID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZW5hYmxlV2luZG93Q2FzY2FkaW5nIHx8IHdpbmRvdy5pc01vZGFsKSByZXR1cm47XG4gICAgdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLnRvcCArPSAxMDtcbiAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24ubGVmdCArPSAxMDtcbiAgICBpZiAodGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLnRvcCA+IHRoaXMubWF4V2luZG93Q2FzY2FkZVBvc2l0aW9uKVxuICAgICAgdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLnRvcCA9IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uO1xuICAgIGlmICh0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24ubGVmdCA+IHRoaXMubWF4V2luZG93Q2FzY2FkZVBvc2l0aW9uKVxuICAgICAgdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLmxlZnQgPSB0aGlzLm1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbjtcblxuICAgIHdpbmRvdy50b3AgPSB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wICsgJ3B4JztcbiAgICB3aW5kb3cubGVmdCA9IHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ICsgJ3B4JztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZXZlbnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIG9uS2V5RG93biA9IChldmVudDogYW55KSA9PiB7XG4gICAgaWYgKGV2ZW50LmFsdEtleSlcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdmFyIGtleVNlcXVlbmNlID0gdGhpcy51dGlsLmdldEtleVNlcXVlbmNlKGV2ZW50KTtcbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbScpIHsgLy9NYXhpbWl6ZVxuICAgICAgdmFyIGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XG4gICAgICBpZiAoYWN0aXZlV2luZG93ID09PSBudWxsKSByZXR1cm47XG4gICAgICBpZiAoIWFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgdGhpcy5zYXZlUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgICAgdGhpcy5tYXhpbWl6ZShhY3RpdmVXaW5kb3cpO1xuICAgICAgfSBlbHNlIGlmIChhY3RpdmVXaW5kb3cubWF4aW1pemVkID09PSAncmlnaHQnIHx8IGFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQgPT09ICdsZWZ0JylcbiAgICAgICAgdGhpcy5tYXhpbWl6ZShhY3RpdmVXaW5kb3cpO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLnJlc3RvcmVTYXZlZFBvc2l0aW9uKGFjdGl2ZVdpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbicpIHsgLy9NaW5pbWl6ZVxuICAgICAgdmFyIGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XG4gICAgICBpZiAoYWN0aXZlV2luZG93ID09PSBudWxsIHx8IGFjdGl2ZVdpbmRvdy5taW5pbWl6ZWQpIHJldHVybjtcbiAgICAgIHRoaXMubWluaW1pemUoYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCt3JykgeyAvL0N5Y2xlcyBGb3J3YXJkXG4gICAgICB2YXIgaW5kZXggPSB0aGlzLndpbmRvd3MuaW5kZXhPZih0aGlzLmdldEFjdGl2ZVdpbmRvdygpKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVOZXh0V2luZG93KGluZGV4ICsgMSk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdzaGlmdCthbHQrdycpIHsgLy9DeWNsZXMgQmFja3dhcmRcbiAgICAgIHZhciBpbmRleCA9IHRoaXMud2luZG93cy5pbmRleE9mKHRoaXMuZ2V0QWN0aXZlV2luZG93KCkpO1xuICAgICAgdGhpcy5hY3RpdmF0ZVByZXZpb3VzV2luZG93KGluZGV4ICsgMSk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdzaGlmdCthbHQreCcgJiYgISh0aGlzLnNoaWZ0UHJlc3NlZCAmJiB0aGlzLmFsdFByZXNzZWQgJiYgdGhpcy54UHJlc3NlZCkpIHsgLy9DbG9zZVxuICAgICAgdmFyIGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XG4gICAgICBpZiAoIWFjdGl2ZVdpbmRvdykgcmV0dXJuO1xuICAgICAgdGhpcy5jbG9zZVdpbmRvdyhhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K2wnKSB7IC8vTWF4aW1pemUgbGVmdFxuICAgICAgdmFyIGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XG4gICAgICBpZiAoIWFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgdGhpcy5zYXZlUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQoYWN0aXZlV2luZG93KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ3JpZ2h0JyB8fCBhY3RpdmVXaW5kb3cubWF4aW1pemVkID09PSAnZmlsbCcpXG4gICAgICAgIHRoaXMubWF4aW1pemVMZWZ0KGFjdGl2ZVdpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMucmVzdG9yZVNhdmVkUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtyJykgeyAvL01heGltaXplIHJpZ2h0XG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmICghYWN0aXZlV2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLnNhdmVQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgICB0aGlzLm1heGltaXplUmlnaHQoYWN0aXZlV2luZG93KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ2xlZnQnIHx8IGFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQgPT09ICdmaWxsJylcbiAgICAgICAgdGhpcy5tYXhpbWl6ZVJpZ2h0KGFjdGl2ZVdpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMucmVzdG9yZVNhdmVkUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtkJykgeyAvL1RvZ2dsZSBEZXNrdG9wXG4gICAgICAvL3RoaXMuZGVza3RvcFNob3duID0gdGhpcy5oaWRlU2hvd0FsbCgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkpXG4gICAgICB0aGlzLnNoaWZ0UHJlc3NlZCA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmFsdEtleSlcbiAgICAgIHRoaXMuYWx0UHJlc3NlZCA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDg4KVxuICAgICAgdGhpcy54UHJlc3NlZCA9IHRydWU7XG4gIH1cblxuICBvbktleVVwID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkpXG4gICAgICB0aGlzLnNoaWZ0UHJlc3NlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC5hbHRLZXkpXG4gICAgICB0aGlzLmFsdFByZXNzZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gODgpXG4gICAgICB0aGlzLnhQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5oYW5kbGVTZWxlY3RBdHRlbXB0XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFByZXZlbnRzIHRoZSB1c2VyIGZyb20gaGlnaGxpZ2h0IGRlc2t0b3AgZWxlbWVudHMuXG4gICAqXG4gICAqL1xuICBoYW5kbGVTZWxlY3RBdHRlbXB0ID0gKGU6IGFueSkgPT4ge1xuICAgIHZhciBub2RlTmFtZSA9IGUudGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgbGV0IHJpY2hUZXh0RWxlbWVudCA9IHRoaXMudXRpbC5maW5kQ2xvc2VzdEFuY2VzdG9yQnlDbGFzcyhlLnRhcmdldCwgJy5yaWNoLXRleHQnKTtcbiAgICBpZiAoXG4gICAgICBub2RlTmFtZSA9PT0gJ2lucHV0JyB8fFxuICAgICAgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHxcbiAgICAgIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fFxuICAgICAgbm9kZU5hbWUgPT09ICcjdGV4dCcgfHxcbiAgICAgIHJpY2hUZXh0RWxlbWVudCkgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAod2luZG93LmV2ZW50KSB7IGUucHJldmVudERlZmF1bHQoKTsgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgd2luZG93czogQXJyYXk8YW55PiA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2dvVXJsID0gdGhpcy5vcHRpb25zLmxvZ29Vcmw7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHRoaXMuZGVza3RvcC5vcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgdGhpcy5vcHRpb25zLnZpZXdwb3J0VG9wID0gdGhpcy5vcHRpb25zLm1lbnViYXJDb25maWcgIT09IHVuZGVmaW5lZCA/IHRoaXMub3B0aW9ucy5tZW51YmFySGVpZ2h0ICsgMSA6IDA7XHJcbiAgICB0aGlzLnRydURlc2t0b3BFdmVudEhhbmRsZXIub25PcGVuKCkuc3Vic2NyaWJlKCh3aW5kaW93RXZlbnQ6IFRydVdpbmRvd0V2ZW50QXJncykgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5XaW5kb3cod2luZGlvd0V2ZW50LCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgPSB0aGlzLmhhbmRsZVNlbGVjdEF0dGVtcHQ7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XHJcbiAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIGxldCBoYXNDaGFuZ2VzID0gdGhpcy52aWV3cG9ydENvbXBvbmVudC53aW5kb3dDb21wb25lbnRzLmZpbHRlcigodzogVHJ1RGVza3RvcFdpbmRvdykgPT4geyByZXR1cm4gdy5oYXNDaGFuZ2VzKCkgPyB0cnVlIDogZmFsc2U7IH0pXHJcbiAgICAgIGlmIChoYXNDaGFuZ2VzLmxlbmd0aCkge1xyXG4gICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuICAgICAgICB2YXIgbXNnID0gdGhpcy50ZXh0TWFuYWdlci5tc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZztcclxuXHJcbiAgICAgICAgLy8gRm9yIElFIGFuZCBGaXJlZm94XHJcbiAgICAgICAgaWYgKGUpIHtcclxuICAgICAgICAgIGUucmV0dXJuVmFsdWUgPSBtc2c7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBGb3IgU2FmYXJpIC8gY2hyb21lXHJcbiAgICAgICAgcmV0dXJuIG1zZztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd24pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdyYXBwZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3AtbWVudWJhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IG9wdGlvbnMubWVudWJhckhlaWdodCArICdweCd9XCI+XHJcbiAgICA8dHJ1LWRlc2t0b3AtbWVudWJhciBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtbWVudWJhcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHRydS1kZXNrdG9wLXZpZXdwb3J0IFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3Atdmlld3BvcnQ+XHJcblxyXG4gIDx0cnUtZGVza3RvcC10YXNrYmFyIFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtdGFza2Jhcj5cclxuXHJcbiAgPGltZyBjbGFzcz1cImRlc2t0b3Atdmlld3BvcnQtbG9nb1wiIGRhdGEtbmctc2hvdz1cImxvZ29VcmxcIiBhbHQ9XCJcIj5cclxuPC9kaXY+XHJcbiJdfQ==