@trudb/tru-common-lib 0.0.437 → 0.0.443

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.
@@ -446,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
446
446
  }], desktopCtrl: [{
447
447
  type: Input
448
448
  }] } });
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avd2luZG93L3RydS1kZXNrdG9wLXdpbmRvdy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3dpbmRvdy90cnUtZGVza3RvcC13aW5kb3cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxVQUFzQixFQUN0QixFQUFxQjtRQUhyQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBRy9CLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFdkIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLHVCQUFrQixHQUFRLFNBQVMsQ0FBQztRQUVwQyxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDOUMsQ0FBQyxDQUFBO1FBRUQsY0FBUyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBRWhDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDcEUsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFBRSxPQUFPO1lBRWhDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFFbEMsdUVBQXVFO1lBQ3ZFLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXJDLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBRXRKLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlJLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUVoSixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFRixZQUFPLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM3QztZQUVELHVFQUF1RTtZQUN2RSxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxRCxRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7V0FRRztRQUNILDBCQUFxQixHQUFHLEdBQUcsRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUM1QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7O1dBUUc7UUFDSCx1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BELFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0wsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTTtnQkFDdEUsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssRUFBRTtnQkFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUMzQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7O1dBU0c7UUFDSCxjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGOzs7Ozs7Ozs7V0FTRztRQUNILG1CQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxHQUFHLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7V0FRRztRQUNILHFCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7OztXQVNHO1FBQ0gsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO29CQUMzQixTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtZQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNULE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVGOzs7Ozs7Ozs7V0FTRztRQUNILGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQkFDeEIsV0FBVyxHQUFHLElBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDckM7YUFDRjtZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ0gsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ0gsWUFBTyxHQUFHLENBQUMsaUJBQXNCLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUMxRCxJQUFJLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUNwRSxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7O1dBUUc7UUFDSCxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNILGNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUFFLE9BQU87WUFDeEQsSUFBSSxJQUFJLENBQUMseUJBQXlCO2dCQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xHLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRjs7Ozs7OztXQU9HO1FBQ0gsYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVc7Z0JBQUUsT0FBTztZQUNwRCxJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEcsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRix1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFBO1FBa0REOzs7Ozs7O1dBT0c7UUFDSCxtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBQ2pDLDRDQUE0QztRQUM1QyxxREFBcUQ7UUFDckQsS0FBSztRQUNMLEdBQUc7UUFDSCxjQUFjO1FBRWQsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO2dCQUFFLE9BQU87WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNELENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBRUYsYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEM7UUFDSCxDQUFDLENBQUM7UUFFRixVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztRQUVGLHlCQUFvQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFDbEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQXlCLElBQUksS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFDL0UsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQzlELElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFM0MsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFbkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFFRixpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUFFLE9BQU87WUFDeEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQUUsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDakUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXO2dCQUFFLE9BQU87WUFDcEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQUUsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDakUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGLFNBQUksR0FBRyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQztJQWphRixDQUFDO0lBb1JDLENBQUM7SUFNSDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDaEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLEVBQUUsZUFBZTtZQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssV0FBVyxFQUFFLEVBQUUsV0FBVztZQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssUUFBUSxFQUFFLEVBQUUsWUFBWTtZQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLEVBQUUsV0FBVztZQUMzQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssT0FBTyxFQUFFLEVBQUUsZUFBZTtZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVDO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU07Z0JBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBRTNDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksV0FBVyxLQUFLLE9BQU8sRUFBRSxFQUFFLGdCQUFnQjtZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU07Z0JBQzdFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBRTVDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFBQSxDQUFDO0lBMkZGLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDakUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDekYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUE4QyxFQUFFLEVBQUU7WUFDbEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs2R0FqY1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IscUlBRmhCLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLDBCQ1Z2RSw2bEpBZ0RBOzJGRHBDYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO2tNQUc1RCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIElucHV0LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJ1V2luZG93QWRkVmlld0V2ZW50QXJncyB9IGZyb20gJy4uL3NlcnZpY2VzL3RydS13aW5kb3ctYWRkLXZpZXctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBUcnVFbnRpdHlBY2Nlc3NvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS1lbnRpdHktYWNjZXNzb3InO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEhhbmRsZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RydS1kZXNrdG9wLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGVza3RvcC13aW5kb3cuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90cnUtZGVza3RvcC5jc3MnLCAnLi90cnUtZGVza3RvcC13aW5kb3cuY3NzJ10sXG4gIHByb3ZpZGVyczogW1RydURhdGFDb250ZXh0LCBUcnVFbnRpdHlBY2Nlc3NvciwgVHJ1V2luZG93RXZlbnRIYW5kbGVyXVxufSlcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wV2luZG93IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgd2luZG93OiBhbnk7XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q3RybDogYW55O1xuICBASW5wdXQoKSBkZXNrdG9wQ3RybDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgdHJ1V2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICB4ID0gMDtcbiAgeSA9IDA7XG4gIGxhc3RYID0gMDtcbiAgbGFzdFkgPSAwO1xuICBzdGFydFggPSAwO1xuICBzdGFydFkgPSAwO1xuICB0aXRsZUJhcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgY2FuQ2xvc2VGbiA9IHVuZGVmaW5lZDtcbiAgY2FuTmF2aWdhdGVGbiE6ICgpID0+IGJvb2xlYW47XG4gIGNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24gPSBmYWxzZTtcbiAgdmlld3BvcnREaW1lbnNpb25zOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgaGFzQ2hhbmdlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dC5oYXNDaGFuZ2VzKCkubGVuZ3RoO1xyXG4gIH1cblxuICBtb3VzZU1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcblxuICAgIHRoaXMudmlld3BvcnREaW1lbnNpb25zID0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk7XG4gICAgaWYgKGV2ZW50LnBhZ2VYIDw9IDAgfHxcbiAgICAgIGV2ZW50LnBhZ2VYID49IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIHx8XG4gICAgICB0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnRpdGxlQmFyID09IG51bGwpIHJldHVybjtcblxuICAgIC8vdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdvcGFjaXR5OiAwLjU7Jyk7XG4gICAgdGhpcy54ID0gZXZlbnQuc2NyZWVuWCAtIHRoaXMuc3RhcnRYO1xuICAgIHRoaXMueSA9IGV2ZW50LnNjcmVlblkgLSB0aGlzLnN0YXJ0WTtcblxuICAgIC8vVG9wIENvbnRhaW5tZW50XG4gICAgdGhpcy55ID0gdGhpcy55ID49IDAgPyB0aGlzLnkgOiAwO1xuICAgIC8vQm90dG9tIENvbnRhaW5tZW50XG4gICAgdGhpcy55ID0gdGhpcy55IDw9IHRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodCAtIHRoaXMudGl0bGVCYXIub2Zmc2V0SGVpZ2h0ID8gdGhpcy55IDogdGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0IC0gdGhpcy50aXRsZUJhci5vZmZzZXRIZWlnaHQ7XG5cbiAgICAvL0xlZnQgQ29udGFpbm1lbnRcbiAgICB0aGlzLnggPSB0aGlzLnggPj0gLSh0aGlzLnRpdGxlQmFyLm9mZnNldFdpZHRoICsgdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0KSA/IHRoaXMueCA6IC0odGhpcy50aXRsZUJhci5vZmZzZXRXaWR0aCArIHRoaXMudGl0bGVCYXIub2Zmc2V0TGVmdCk7XG4gICAgLy9SaWdodCBDb250YWlubWVudFxuICAgIHRoaXMueCA9IHRoaXMueCA8PSB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aCAtIHRoaXMudGl0bGVCYXIub2Zmc2V0TGVmdCA/IHRoaXMueCA6IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0O1xuXG4gICAgdGhpcy53aW5kb3cudG9wID0gdGhpcy55ICsgJ3B4JztcbiAgICB0aGlzLndpbmRvdy5sZWZ0ID0gdGhpcy54ICsgJ3B4JztcbiAgfTtcblxuICBtb3VzZVVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnBhZ2VZIDw9IHRoaXMuZGVza3RvcEN0cmwub3B0aW9ucy52aWV3cG9ydFRvcCkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZSh0aGlzLndpbmRvdyk7XG4gICAgfVxuICAgIGlmIChldmVudC5wYWdlWCA8PSAwKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplTGVmdCh0aGlzLndpbmRvdyk7XG4gICAgfVxuICAgIHRoaXMudmlld3BvcnREaW1lbnNpb25zID0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk7XG4gICAgaWYgKGV2ZW50LnBhZ2VYID49IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gMSkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZVJpZ2h0KHRoaXMud2luZG93KTtcbiAgICB9XG5cbiAgICAvL3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnb3BhY2l0eTogMS4wOycpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC51cGRhdGVOYXZpZ2F0aW9uU3RhdGVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFVwZGF0ZXMgd2luZG93IG5hdmlnYXRpb24gYnV0dG9ucyBiYXNlZCBsb2NhdGlvbiBvZiB0aGUgYWN0aXZlIHZpZXcgaW4gdGhlIHZpZXdzIGFycmF5LlxuICAgKlxuICAgKi9cbiAgdXBkYXRlTmF2aWdhdGlvblN0YXRlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy52aWV3cyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgdmFyIGxlbmd0aCA9IHRoaXMud2luZG93LnZpZXdzLmxlbmd0aDtcbiAgICB0aGlzLmRpc2FibGVQcmV2aW91cyA9ICEhKHRoaXMud2luZG93LnZpZXdzWzBdLmFjdGl2ZSQuZ2V0VmFsdWUoKSB8fCBsZW5ndGggPT09IDEpO1xuICAgIHRoaXMuZGlzYWJsZU5leHQgPSAhISh0aGlzLndpbmRvdy52aWV3c1tsZW5ndGggLSAxXS5hY3RpdmUkLmdldFZhbHVlKCkgfHwgbGVuZ3RoID09PSAxKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5pc1dpbmRvd0luVmlld3BvcnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldGVybWluZXMgaWYgdGhlIHdpbmRvdyBpcyB3aXRoaW4gdGhlIHZpZXdwb3J0IGJvdW5kYXJpZXMuXG4gICAqXG4gICAqL1xuICBpc1dpbmRvd0luVmlld3BvcnQgPSAoKSA9PiB7XG4gICAgdmFyIHdpbmRvd1RvcCA9IDA7XG4gICAgdmFyIHdpbmRvd0xlZnQgPSAwO1xuICAgIGlmICghdGhpcy53aW5kb3cubWluaW1pemVkKSB7XG4gICAgICB3aW5kb3dUb3AgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICB3aW5kb3dMZWZ0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93VG9wID0gcGFyc2VJbnQodGhpcy53aW5kb3cuc2F2ZWRQb3NpdGlvbi50b3AsIDEwKTtcbiAgICAgIHdpbmRvd0xlZnQgPSBwYXJzZUludCh0aGlzLndpbmRvdy5zYXZlZFBvc2l0aW9uLmxlZnQsIDEwKTtcbiAgICB9XG4gICAgaWYgKCh3aW5kb3dUb3AgKyAxMCkgPj0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCkuaGVpZ2h0IHx8XG4gICAgICAod2luZG93TGVmdCArIDYwKSA+PSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKS53aWR0aCkge1xuICAgICAgdGhpcy53aW5kb3cub3V0T2ZCb3VuZHMgPSB0cnVlO1xuICAgICAgdGhpcy53aW5kb3cuYWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53aW5kb3cub3V0T2ZCb3VuZHMgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuZ2V0V2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIHRoZSB3aW5kb3cgb2JqZWN0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSB3aW5kb3cgb2JqZWN0LlxuICAgKi9cbiAgZ2V0V2luZG93ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5zZXRXaW5kb3dUaXRsZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgd2luZG93IHRpdGxlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgd2luZG93IHRpdGxlIGJhci5cbiAgICovXG4gIHNldFdpbmRvd1RpdGxlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLndpbmRvdy50aXRsZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldFdpbmRvd1RpdGxlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdy50aXRsZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5nb1RvUHJldmlvdXNWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQdWJsaWMgbWV0aG9kIGZvciBuYXZpZ2F0aW5nIHRvIHRoZSBwcmV2aW91cyB2aWV3LlxuICAgKlxuICAgKi9cbiAgZ29Ub1ByZXZpb3VzVmlldyA9ICgpID0+IHtcbiAgICB0aGlzLnByZXZpb3VzVmlldygpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnZpZXdJc0VkaXRpbmdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENoZWNrcyB3aGV0aGVyIHZpZXcgaXMgZWRpdGluZy5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59LlxuICAgKi9cbiAgdmlld0lzRWRpdGluZyA9ICgpID0+IHtcbiAgICB2YXIgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy53aW5kb3cudmlld3MuZm9yRWFjaCgodmlldzogYW55KSA9PiB7XG4gICAgICBpZiAodmlldy5pc0VkaXRpbmcgPT09IHRydWUpIHtcbiAgICAgICAgaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCBudWxsKTtcbiAgICByZXR1cm4gaXNFZGl0aW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmNhbk5hdmlnYXRlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDaGVja3Mgd2hldGhlciBuYXZpZ2F0aW9uIGNhbiBvY2N1ci4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufS5cbiAgICovXG4gIGNhbk5hdmlnYXRlID0gKCkgPT4ge1xuICAgIHZhciBjYW5OYXZpZ2F0ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGVGbiAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMudmlld0lzRWRpdGluZygpKSB7XG4gICAgICAgIGNhbk5hdmlnYXRlID0gdGhpcyEuY2FuTmF2aWdhdGVGbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FuTmF2aWdhdGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQucmVtb3ZlRm9yd2FyZFZpZXdzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmVzIGFsbCB2aWV3KHMpIGZvcndhcmQgb2YgdGhlIGFjdGl2ZSB2aWV3LlxuICAgKlxuICAgKi9cbiAgcmVtb3ZlRm9yd2FyZFZpZXdzID0gKCkgPT4ge1xuICAgIHZhciBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICB2YXIgYWN0aXZlVmlld0luZGV4ID0gdGhpcy53aW5kb3cudmlld3MuaW5kZXhPZihhY3RpdmVWaWV3KTtcbiAgICBmb3IgKHZhciBpID0gdGhpcy53aW5kb3cudmlld3MubGVuZ3RoOyBpID4gYWN0aXZlVmlld0luZGV4OyBpLS0pIHtcbiAgICAgIHRoaXMud2luZG93LnZpZXdzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5hZGRWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmVzIGFsbCBpbmFjdGl2ZSB2aWV3KHMpIGZvbGxvd2luZyB0aGUgYWN0aXZlIHZpZXcgYW5kIGluc2VydHMgYSBuZXcgdmlldy5cbiAgICpcbiAgICovXG4gIGFkZFZpZXcgPSAodmlld0NvbmZpZ092ZXJsYXk6IGFueSkgPT4ge1xuICAgIHRoaXMucmVtb3ZlRm9yd2FyZFZpZXdzKCk7XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlKGZhbHNlKTtcbiAgICB2YXIgdmlld0NvbmZpZyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0RGVza3RvcCgpLnZpZXdDb25maWc7XG4gICAgdmFyIHZpZXdDb25maWdJbnN0YW5jZSA9IE9iamVjdC5hc3NpZ24oe30sIHZpZXdDb25maWcpO1xuICAgIHZhciBleHRlbmRlZCA9IE9iamVjdC5hc3NpZ24odmlld0NvbmZpZ0luc3RhbmNlLCB2aWV3Q29uZmlnT3ZlcmxheSk7XG4gICAgZXh0ZW5kZWQud2luZG93ID0gdGhpcztcbiAgICB0aGlzLndpbmRvdy52aWV3cy5wdXNoKGV4dGVuZGVkKTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmdldEdsb2JhbHNcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIHJldHVybnMgdGhlIGdsb2JhbCB2YWx1ZXMuXG4gICAqXG4gICAqL1xuICBnZXRHbG9iYWxzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdy5nbG9iYWxzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmZpcnN0Vmlld1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIGZpcnN0VmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVQcmV2aW91cykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24pIHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdykuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgbGV0IGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlKGZhbHNlKTtcbiAgICB0aGlzLndpbmRvdy52aWV3c1swXS5hY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5maXJzdFZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICBsYXN0VmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVOZXh0KSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KS5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBsZXQgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMud2luZG93LnZpZXdzW3RoaXMud2luZG93LnZpZXdzLmxlbmd0aCAtIDFdLmFjdGl2ZSh0cnVlKTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9OztcblxuICByZXNpemVFdmVudEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5pc1dpbmRvd0luVmlld3BvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBldmVudFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIG9uS2V5ZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy53aW5kb3cuYWN0aXZlKSByZXR1cm47XG4gICAgdmFyIGtleVNlcXVlbmNlID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRLZXlTZXF1ZW5jZShldmVudCk7XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K2xlZnQnKSB7IC8vUHJldmlvdXMgVmlld1xuICAgICAgdGhpcy5wcmV2aW91c1ZpZXcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtyaWdodCcpIHsgLy9OZXh0IFZpZXdcbiAgICAgIHRoaXMubmV4dFZpZXcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCt1cCcpIHsgLy9GaXJzdCBWaWV3XG4gICAgICB0aGlzLmZpcnN0VmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K2Rvd24nKSB7IC8vTGFzdCBWaWV3XG4gICAgICB0aGlzLmxhc3RWaWV3KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbCcpIHsgLy9NYXhpbWl6ZSBsZWZ0XG4gICAgICBpZiAoIXRoaXMud2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLnNhdmVQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVMZWZ0KHRoaXMud2luZG93KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy53aW5kb3cubWF4aW1pemVkID09PSAncmlnaHQnIHx8IHRoaXMud2luZG93Lm1heGltaXplZCA9PT0gJ2ZpbGwnKVxuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplTGVmdCh0aGlzLndpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwucmVzdG9yZVNhdmVkUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3InKSB7IC8vTWF4aW1pemUgcmlnaHRcbiAgICAgIGlmICghdGhpcy53aW5kb3cubWF4aW1pemVkKSB7XG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZVJpZ2h0KHRoaXMud2luZG93KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy53aW5kb3cubWF4aW1pemVkID09PSAnbGVmdCcgfHwgdGhpcy53aW5kb3cubWF4aW1pemVkID09PSAnZmlsbCcpXG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVSaWdodCh0aGlzLndpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwucmVzdG9yZVNhdmVkUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIHdhdGNoXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNb25pdG9ycyB0aGUgd2luZG93J3MgbWluaW1pemVkIHN0YXRlXG4gICAqXG4gICAqL1xuICAvLyRzY29wZS4kd2F0Y2goJ3dpbmRvdy5taW5pbWl6ZWQnLFxuICAvLyAgICAgICAgICAgICAgZnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gIGlmICh2YWx1ZSAmJiAhJHNjb3BlLndpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgLy8gICAgJHNjb3BlLmRlc2t0b3BDdHJsLnNhdmVQb3NpdGlvbigkc2NvcGUud2luZG93KTtcbiAgLy8gIH1cbiAgLy99XG4gIC8vICAgICAgICAgICk7XG5cbiAgZGlzYWJsZVByZXZpb3VzID0gdHJ1ZTtcbiAgZGlzYWJsZU5leHQgPSB0cnVlO1xuXG4gIGFjdGl2YXRlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy5vdXRPZkJvdW5kcykgcmV0dXJuO1xuICAgIHRoaXMuZGVza3RvcEN0cmwuY2xlYXJBY3RpdmUoKTtcbiAgICB0aGlzLndpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMud2luZG93LnpJbmRleCA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0TmV4dE1heFpJbmRleCgpO1xuICB9O1xuXG4gIG1pbmltaXplID0gKCkgPT4ge1xuICAgIHRoaXMuZGVza3RvcEN0cmwubWluaW1pemUodGhpcy53aW5kb3cpO1xuICB9O1xuXG4gIG1heGltaXplID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwucmVzdG9yZVNhdmVkUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgdGhpcy53aW5kb3cubWF4aW1pemVkID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLnNhdmVQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplKHRoaXMud2luZG93KTtcbiAgICB9XG4gIH07XG5cbiAgY2xvc2UgPSAoKSA9PiB7XG4gICAgdGhpcy5kZXNrdG9wQ3RybC5jbG9zZVdpbmRvdyh0aGlzLndpbmRvdyk7XG4gIH07XG5cbiAgd2luZG93VGl0bGVNb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3cubWF4aW1pemVkKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRpdGxlQmFyID0gZXZlbnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8fCBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy54ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0ub2Zmc2V0TGVmdDtcbiAgICB0aGlzLnkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5vZmZzZXRUb3A7XG4gICAgdGhpcy5zdGFydFggPSBldmVudC5zY3JlZW5YIC0gdGhpcy54O1xuICAgIHRoaXMuc3RhcnRZID0gZXZlbnQuc2NyZWVuWSAtIHRoaXMueTtcblxuICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUV2ZW50SGFuZGxlcik7XG4gIH07XG5cbiAgcHJldmlvdXNWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZVByZXZpb3VzKSByZXR1cm47XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIHZhciBhY3RpdmVWaWV3SW5kZXggPSB0aGlzLndpbmRvdy52aWV3cy5pbmRleE9mKGFjdGl2ZVZpZXcpO1xuICAgIGlmICh0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24pIGFjdGl2ZVZpZXcuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMud2luZG93LnZpZXdzW2FjdGl2ZVZpZXdJbmRleCAtIDFdLmFjdGl2ZSh0cnVlKTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIG5leHRWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZU5leHQpIHJldHVybjtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgdmFyIGFjdGl2ZVZpZXdJbmRleCA9IHRoaXMud2luZG93LnZpZXdzLmluZGV4T2YoYWN0aXZlVmlldyk7XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgYWN0aXZlVmlldy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZShmYWxzZSk7XG4gICAgdGhpcy53aW5kb3cudmlld3NbYWN0aXZlVmlld0luZGV4ICsgMV0uYWN0aXZlKHRydWUpO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07XG5cbiAgc2F2ZSA9ICgpID0+IHtcbiAgICB0aGlzLmRhdGFDb250ZXh0LnNhdmUoKTtcbiAgfTtcblxuICByZXZlcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5kYXRhQ29udGV4dC5yZXZlcnQoKTtcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbkNsb3NlRm4gPSB0aGlzLmRlc2t0b3BDdHJsLmdldE9wdGlvbnMoKS5jYW5DbG9zZUZuO1xuICAgIHRoaXMuY2FuTmF2aWdhdGVGbiA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0T3B0aW9ucygpLmNhbk5hdmlnYXRlRm47XG4gICAgdGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRPcHRpb25zKCkuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbjtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuXG4gICAgdGhpcy50cnVXaW5kb3dFdmVudEhhbmRsZXIub25BZGRWaWV3KCkuc3Vic2NyaWJlKCh3aW5kaW93QWRkVmlld0V2ZW50OiBUcnVXaW5kb3dBZGRWaWV3RXZlbnRBcmdzKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkVmlldyh3aW5kaW93QWRkVmlld0V2ZW50KTtcclxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUV2ZW50SGFuZGxlcik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250YWluZXJcIlxyXG4gICAgIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctYWN0aXZlJzogd2luZG93LmFjdGl2ZSwgJ2Rlc2t0b3Atd2luZG93LW1heGltaXplZCc6IHdpbmRvdy5tYXhpbWl6ZWR9XCJcclxuICAgICBbbmdTdHlsZV09XCJ7J3otaW5kZXgnOiB3aW5kb3cuekluZGV4LCAndG9wJzogd2luZG93LnRvcCwgJ2xlZnQnOiB3aW5kb3cubGVmdCwgJ3JpZ2h0Jzogd2luZG93LnJpZ2h0LCAnYm90dG9tJzogd2luZG93LmJvdHRvbSwgJ2hlaWdodCc6IHdpbmRvdy5oZWlnaHQsICd3aWR0aCc6IHdpbmRvdy53aWR0aCwgJ21pbi1oZWlnaHQnOiB3aW5kb3cubWluSGVpZ2h0LCAnbWluV2lkdGgnOiB3aW5kb3cubWluV2lkdGh9XCJcclxuICAgICBbc3R5bGUub2Zmc2V0TGVmdC5weF09XCJ4XCJcclxuICAgICBbc3R5bGUub2Zmc2V0VG9wLnB4XT1cInlcIlxyXG4gICAgIChtb3VzZWRvd24pPVwiYWN0aXZhdGUoKVwiXHJcbiAgICAgW2hpZGRlbl09XCJ3aW5kb3cubWluaW1pemVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LWhlYWRlclwiIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctbWF4aW1pemVkJzogd2luZG93Lm1heGltaXplZCwgJ2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXdpbmRvdy1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1wcmV2aW91cy1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBCYWNrIE9uZSBWaWV3IC0gW0FsdCArIExlZnRdJ1wiIChjbGljayk9XCJwcmV2aW91c1ZpZXcoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLW5leHQtaWNvbidcIiBbdG9vbHRpcF09XCInR28gRm9yd2FyZCBPbmUgVmlldyAtIFtBbHQgKyBSaWdodF0nXCIgKGNsaWNrKT1cIm5leHRWaWV3KClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1zYXZlLWljb24nXCIgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1zYXZlLWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXNhdmUtaWNvbi1oYXMtY2hhbmdlcyc6IGhhc0NoYW5nZXMoKX1cIiBbdG9vbHRpcF09XCInU2F2ZSAtIFtDdHJsICsgU10nXCIgKGNsaWNrKT1cInNhdmUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJldmVydC1pY29uJ1wiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmV2ZXJ0LWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXJldmVydC1pY29uLWhhcy1jaGFuZ2VzJzogaGFzQ2hhbmdlcygpfVwiIFt0b29sdGlwXT1cIidSZXZlcnQgLSBbQ3RybCArIFNoaWZ0ICsgUl0nXCIgKGNsaWNrKT1cInJldmVydCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPC90cnUtdG9vbGJhcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXRpdGxlXCIgKGRibGNsaWNrKT1cIm1heGltaXplKClcIiAobW91c2Vkb3duKT1cIndpbmRvd1RpdGxlTW91c2VEb3duKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRlc2t0b3AtY2xpY2stdGhyb3VnaFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXRleHRcIj57e3dpbmRvdy50aXRsZX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC13aW5kb3ctYWN0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1taW5pbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidNaW5pbWl6ZSAtIFtBbHQgKyBOXSdcIiAoY2xpY2spPVwibWluaW1pemUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1tYXhpbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBGb3J3YXJkIE9uZSBWaWV3IC0gW0FsdCArIFJpZ2h0XSdcIiAoY2xpY2spPVwibWF4aW1pemUoKVwiIGNsYXNzPVwibWF4aW1pemVcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uICpuZ0lmPVwid2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1yZXN0b3JlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0dvIEZvcndhcmQgT25lIFZpZXcgLSBbQWx0ICsgUmlnaHRdJ1wiIChjbGljayk9XCJtYXhpbWl6ZSgpXCIgY2xhc3M9XCJtYXhpbWl6ZVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLWNsb3NlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0Nsb3NlIFdpbmRvdyAtIFtBbHQgKyBTSElGVCArIFhdJ1wiIChjbGljayk9XCJjbG9zZSgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwvdHJ1LXRvb2xiYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZmllbGRzZXQgbmctZGlzYWJsZWQ9XCIhd2luZG93LmFjdGl2ZVwiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctZmllbGRzZXRcIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZpZXcgb2Ygd2luZG93LnZpZXdzXCI+XHJcbiAgICAgICAgPHRydS1kZXNrdG9wLXZpZXcgW3ZpZXddPVwidmlld1wiIFtoaWRkZW5dPVwiIXZpZXcuYWN0aXZlXCI+PG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+PC90cnUtZGVza3RvcC12aWV3PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPHRydS1kZXNrdG9wLXN0YXR1c2Jhcj48L3RydS1kZXNrdG9wLXN0YXR1c2Jhcj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW53XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ253J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5lXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ25lJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXN3XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3N3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXNlXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3NlJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5cIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInbidcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1zXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3MnXCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWhhbmRsZSBkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtd1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIid3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWVcIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInZSdcIj48L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
449
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avd2luZG93L3RydS1kZXNrdG9wLXdpbmRvdy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3dpbmRvdy90cnUtZGVza3RvcC13aW5kb3cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxVQUFzQixFQUN0QixFQUFxQjtRQUhyQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBRy9CLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFdkIsOEJB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LGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO2tNQUc1RCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIElucHV0LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgVHJ1RW50aXR5QWNjZXNzb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cnUtZW50aXR5LWFjY2Vzc29yJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFZpZXdDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1oYW5kbGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndHJ1LWRlc2t0b3Atd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXNrdG9wLXdpbmRvdy5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL3RydS1kZXNrdG9wLmNzcycsICcuL3RydS1kZXNrdG9wLXdpbmRvdy5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJ1RGF0YUNvbnRleHQsIFRydUVudGl0eUFjY2Vzc29yLCBUcnVXaW5kb3dFdmVudEhhbmRsZXJdXG59KVxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BXaW5kb3cgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB3aW5kb3c6IGFueTtcbiAgQElucHV0KCkgdmlld3BvcnRDdHJsOiBhbnk7XG4gIEBJbnB1dCgpIGRlc2t0b3BDdHJsOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXG4gICAgcHJpdmF0ZSB0cnVXaW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIHggPSAwO1xuICB5ID0gMDtcbiAgbGFzdFggPSAwO1xuICBsYXN0WSA9IDA7XG4gIHN0YXJ0WCA9IDA7XG4gIHN0YXJ0WSA9IDA7XG4gIHRpdGxlQmFyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBjYW5DbG9zZUZuID0gdW5kZWZpbmVkO1xuICBjYW5OYXZpZ2F0ZUZuITogKCkgPT4gYm9vbGVhbjtcbiAgY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbiA9IGZhbHNlO1xuICB2aWV3cG9ydERpbWVuc2lvbnM6IGFueSA9IHVuZGVmaW5lZDtcblxuICBoYXNDaGFuZ2VzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0Lmhhc0NoYW5nZXMoKS5sZW5ndGg7XHJcbiAgfVxuXG4gIG1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuXG4gICAgdGhpcy52aWV3cG9ydERpbWVuc2lvbnMgPSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKTtcbiAgICBpZiAoZXZlbnQucGFnZVggPD0gMCB8fFxuICAgICAgZXZlbnQucGFnZVggPj0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggfHxcbiAgICAgIHRoaXMud2luZG93Lm1heGltaXplZCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMudGl0bGVCYXIgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgLy90aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ29wYWNpdHk6IDAuNTsnKTtcbiAgICB0aGlzLnggPSBldmVudC5zY3JlZW5YIC0gdGhpcy5zdGFydFg7XG4gICAgdGhpcy55ID0gZXZlbnQuc2NyZWVuWSAtIHRoaXMuc3RhcnRZO1xuXG4gICAgLy9Ub3AgQ29udGFpbm1lbnRcbiAgICB0aGlzLnkgPSB0aGlzLnkgPj0gMCA/IHRoaXMueSA6IDA7XG4gICAgLy9Cb3R0b20gQ29udGFpbm1lbnRcbiAgICB0aGlzLnkgPSB0aGlzLnkgPD0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0IC0gdGhpcy50aXRsZUJhci5vZmZzZXRIZWlnaHQgPyB0aGlzLnkgOiB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHQgLSB0aGlzLnRpdGxlQmFyLm9mZnNldEhlaWdodDtcblxuICAgIC8vTGVmdCBDb250YWlubWVudFxuICAgIHRoaXMueCA9IHRoaXMueCA+PSAtKHRoaXMudGl0bGVCYXIub2Zmc2V0V2lkdGggKyB0aGlzLnRpdGxlQmFyLm9mZnNldExlZnQpID8gdGhpcy54IDogLSh0aGlzLnRpdGxlQmFyLm9mZnNldFdpZHRoICsgdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0KTtcbiAgICAvL1JpZ2h0IENvbnRhaW5tZW50XG4gICAgdGhpcy54ID0gdGhpcy54IDw9IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0ID8gdGhpcy54IDogdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggLSB0aGlzLnRpdGxlQmFyLm9mZnNldExlZnQ7XG5cbiAgICB0aGlzLndpbmRvdy50b3AgPSB0aGlzLnkgKyAncHgnO1xuICAgIHRoaXMud2luZG93LmxlZnQgPSB0aGlzLnggKyAncHgnO1xuICB9O1xuXG4gIG1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQucGFnZVkgPD0gdGhpcy5kZXNrdG9wQ3RybC5vcHRpb25zLnZpZXdwb3J0VG9wKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplKHRoaXMud2luZG93KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnBhZ2VYIDw9IDApIHtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVMZWZ0KHRoaXMud2luZG93KTtcbiAgICB9XG4gICAgdGhpcy52aWV3cG9ydERpbWVuc2lvbnMgPSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKTtcbiAgICBpZiAoZXZlbnQucGFnZVggPj0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggLSAxKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplUmlnaHQodGhpcy53aW5kb3cpO1xuICAgIH1cblxuICAgIC8vdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdvcGFjaXR5OiAxLjA7Jyk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnVwZGF0ZU5hdmlnYXRpb25TdGF0ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVXBkYXRlcyB3aW5kb3cgbmF2aWdhdGlvbiBidXR0b25zIGJhc2VkIGxvY2F0aW9uIG9mIHRoZSBhY3RpdmUgdmlldyBpbiB0aGUgdmlld3MgYXJyYXkuXG4gICAqXG4gICAqL1xuICB1cGRhdGVOYXZpZ2F0aW9uU3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93LnZpZXdzID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICB2YXIgbGVuZ3RoID0gdGhpcy53aW5kb3cudmlld3MubGVuZ3RoO1xuICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzID0gISEodGhpcy53aW5kb3cudmlld3NbMF0uYWN0aXZlJC5nZXRWYWx1ZSgpIHx8IGxlbmd0aCA9PT0gMSk7XG4gICAgdGhpcy5kaXNhYmxlTmV4dCA9ICEhKHRoaXMud2luZG93LnZpZXdzW2xlbmd0aCAtIDFdLmFjdGl2ZSQuZ2V0VmFsdWUoKSB8fCBsZW5ndGggPT09IDEpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmlzV2luZG93SW5WaWV3cG9ydFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgd2luZG93IGlzIHdpdGhpbiB0aGUgdmlld3BvcnQgYm91bmRhcmllcy5cbiAgICpcbiAgICovXG4gIGlzV2luZG93SW5WaWV3cG9ydCA9ICgpID0+IHtcbiAgICB2YXIgd2luZG93VG9wID0gMDtcbiAgICB2YXIgd2luZG93TGVmdCA9IDA7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5taW5pbWl6ZWQpIHtcbiAgICAgIHdpbmRvd1RvcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIHdpbmRvd0xlZnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3dUb3AgPSBwYXJzZUludCh0aGlzLndpbmRvdy5zYXZlZFBvc2l0aW9uLnRvcCwgMTApO1xuICAgICAgd2luZG93TGVmdCA9IHBhcnNlSW50KHRoaXMud2luZG93LnNhdmVkUG9zaXRpb24ubGVmdCwgMTApO1xuICAgIH1cbiAgICBpZiAoKHdpbmRvd1RvcCArIDEwKSA+PSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKS5oZWlnaHQgfHxcbiAgICAgICh3aW5kb3dMZWZ0ICsgNjApID49IHRoaXMudmlld3BvcnRDdHJsLmdldFZpZXdwb3J0RGltZW5zaW9ucygpLndpZHRoKSB7XG4gICAgICB0aGlzLndpbmRvdy5vdXRPZkJvdW5kcyA9IHRydWU7XG4gICAgICB0aGlzLndpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpbmRvdy5vdXRPZkJvdW5kcyA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5nZXRXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIHdpbmRvdyBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IHdpbmRvdyBvYmplY3QuXG4gICAqL1xuICBnZXRXaW5kb3cgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnNldFdpbmRvd1RpdGxlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSB3aW5kb3cgdGl0bGUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSB0byBkaXNwbGF5IGluIHRoZSB3aW5kb3cgdGl0bGUgYmFyLlxuICAgKi9cbiAgc2V0V2luZG93VGl0bGUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHRoaXMud2luZG93LnRpdGxlID0gdmFsdWU7XG4gIH07XG5cbiAgZ2V0V2luZG93VGl0bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93LnRpdGxlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmdvVG9QcmV2aW91c1ZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFB1YmxpYyBtZXRob2QgZm9yIG5hdmlnYXRpbmcgdG8gdGhlIHByZXZpb3VzIHZpZXcuXG4gICAqXG4gICAqL1xuICBnb1RvUHJldmlvdXNWaWV3ID0gKCkgPT4ge1xuICAgIHRoaXMucHJldmlvdXNWaWV3KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQudmlld0lzRWRpdGluZ1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ2hlY2tzIHdoZXRoZXIgdmlldyBpcyBlZGl0aW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0uXG4gICAqL1xuICB2aWV3SXNFZGl0aW5nID0gKCkgPT4ge1xuICAgIHZhciBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLndpbmRvdy52aWV3cy5mb3JFYWNoKCh2aWV3OiBhbnkpID0+IHtcbiAgICAgIGlmICh2aWV3LmlzRWRpdGluZyA9PT0gdHJ1ZSkge1xuICAgICAgICBpc0VkaXRpbmcgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIG51bGwpO1xuICAgIHJldHVybiBpc0VkaXRpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuY2FuTmF2aWdhdGVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENoZWNrcyB3aGV0aGVyIG5hdmlnYXRpb24gY2FuIG9jY3VyLi5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59LlxuICAgKi9cbiAgY2FuTmF2aWdhdGUgPSAoKSA9PiB7XG4gICAgdmFyIGNhbk5hdmlnYXRlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5jYW5OYXZpZ2F0ZUZuICE9PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy52aWV3SXNFZGl0aW5nKCkpIHtcbiAgICAgICAgY2FuTmF2aWdhdGUgPSB0aGlzIS5jYW5OYXZpZ2F0ZUZuKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYW5OYXZpZ2F0ZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5yZW1vdmVGb3J3YXJkVmlld3NcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZXMgYWxsIHZpZXcocykgZm9yd2FyZCBvZiB0aGUgYWN0aXZlIHZpZXcuXG4gICAqXG4gICAqL1xuICByZW1vdmVGb3J3YXJkVmlld3MgPSAoKSA9PiB7XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIHZhciBhY3RpdmVWaWV3SW5kZXggPSB0aGlzLndpbmRvdy52aWV3cy5pbmRleE9mKGFjdGl2ZVZpZXcpO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLndpbmRvdy52aWV3cy5sZW5ndGg7IGkgPiBhY3RpdmVWaWV3SW5kZXg7IGktLSkge1xuICAgICAgdGhpcy53aW5kb3cudmlld3Muc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmFkZFZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZXMgYWxsIGluYWN0aXZlIHZpZXcocykgZm9sbG93aW5nIHRoZSBhY3RpdmUgdmlldyBhbmQgaW5zZXJ0cyBhIG5ldyB2aWV3LlxuICAgKlxuICAgKi9cbiAgYWRkVmlldyA9ICh2aWV3Q29uZmlnT3ZlcmxheTogYW55KSA9PiB7XG4gICAgdGhpcy5yZW1vdmVGb3J3YXJkVmlld3MoKTtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUoZmFsc2UpO1xuICAgIHZhciB2aWV3Q29uZmlnID0gdGhpcy5kZXNrdG9wQ3RybC5nZXREZXNrdG9wKCkudmlld0NvbmZpZztcbiAgICB2YXIgdmlld0NvbmZpZ0luc3RhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgdmlld0NvbmZpZyk7XG4gICAgdmFyIGV4dGVuZGVkID0gT2JqZWN0LmFzc2lnbih2aWV3Q29uZmlnSW5zdGFuY2UsIHZpZXdDb25maWdPdmVybGF5KTtcbiAgICBleHRlbmRlZC53aW5kb3cgPSB0aGlzO1xuICAgIHRoaXMud2luZG93LnZpZXdzLnB1c2goZXh0ZW5kZWQpO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuZ2V0R2xvYmFsc1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogcmV0dXJucyB0aGUgZ2xvYmFsIHZhbHVlcy5cbiAgICpcbiAgICovXG4gIGdldEdsb2JhbHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93Lmdsb2JhbHM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuZmlyc3RWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgZmlyc3RWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZVByZXZpb3VzKSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KS5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBsZXQgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMud2luZG93LnZpZXdzWzBdLmFjdGl2ZSh0cnVlKTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmZpcnN0Vmlld1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIGxhc3RWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZU5leHQpIHJldHVybjtcbiAgICBpZiAodGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uKSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGxldCBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZShmYWxzZSk7XG4gICAgdGhpcy53aW5kb3cudmlld3NbdGhpcy53aW5kb3cudmlld3MubGVuZ3RoIC0gMV0uYWN0aXZlKHRydWUpO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07O1xuXG4gIHJlc2l6ZUV2ZW50SGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmlzV2luZG93SW5WaWV3cG9ydCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGV2ZW50XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgb25LZXlkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5hY3RpdmUpIHJldHVybjtcbiAgICB2YXIga2V5U2VxdWVuY2UgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEtleVNlcXVlbmNlKGV2ZW50KTtcbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbGVmdCcpIHsgLy9QcmV2aW91cyBWaWV3XG4gICAgICB0aGlzLnByZXZpb3VzVmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3JpZ2h0JykgeyAvL05leHQgVmlld1xuICAgICAgdGhpcy5uZXh0VmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3VwJykgeyAvL0ZpcnN0IFZpZXdcbiAgICAgIHRoaXMuZmlyc3RWaWV3KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrZG93bicpIHsgLy9MYXN0IFZpZXdcbiAgICAgIHRoaXMubGFzdFZpZXcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtsJykgeyAvL01heGltaXplIGxlZnRcbiAgICAgIGlmICghdGhpcy53aW5kb3cubWF4aW1pemVkKSB7XG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZUxlZnQodGhpcy53aW5kb3cpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcgfHwgdGhpcy53aW5kb3cubWF4aW1pemVkID09PSAnZmlsbCcpXG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVMZWZ0KHRoaXMud2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrcicpIHsgLy9NYXhpbWl6ZSByaWdodFxuICAgICAgaWYgKCF0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplUmlnaHQodGhpcy53aW5kb3cpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdsZWZ0JyB8fCB0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdmaWxsJylcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZVJpZ2h0KHRoaXMud2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2Mgd2F0Y2hcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE1vbml0b3JzIHRoZSB3aW5kb3cncyBtaW5pbWl6ZWQgc3RhdGVcbiAgICpcbiAgICovXG4gIC8vJHNjb3BlLiR3YXRjaCgnd2luZG93Lm1pbmltaXplZCcsXG4gIC8vICAgICAgICAgICAgICBmdW5jdGlvbih2YWx1ZSkge1xuICAvLyAgaWYgKHZhbHVlICYmICEkc2NvcGUud2luZG93Lm1heGltaXplZCkge1xuICAvLyAgICAkc2NvcGUuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKCRzY29wZS53aW5kb3cpO1xuICAvLyAgfVxuICAvL31cbiAgLy8gICAgICAgICAgKTtcblxuICBkaXNhYmxlUHJldmlvdXMgPSB0cnVlO1xuICBkaXNhYmxlTmV4dCA9IHRydWU7XG5cbiAgYWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93Lm91dE9mQm91bmRzKSByZXR1cm47XG4gICAgdGhpcy5kZXNrdG9wQ3RybC5jbGVhckFjdGl2ZSgpO1xuICAgIHRoaXMud2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy53aW5kb3cuekluZGV4ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXROZXh0TWF4WkluZGV4KCk7XG4gIH07XG5cbiAgbWluaW1pemUgPSAoKSA9PiB7XG4gICAgdGhpcy5kZXNrdG9wQ3RybC5taW5pbWl6ZSh0aGlzLndpbmRvdyk7XG4gIH07XG5cbiAgbWF4aW1pemUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93Lm1heGltaXplZCkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICB0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemUodGhpcy53aW5kb3cpO1xuICAgIH1cbiAgfTtcblxuICBjbG9zZSA9ICgpID0+IHtcbiAgICB0aGlzLmRlc2t0b3BDdHJsLmNsb3NlV2luZG93KHRoaXMud2luZG93KTtcbiAgfTtcblxuICB3aW5kb3dUaXRsZU1vdXNlRG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudGl0bGVCYXIgPSBldmVudC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50IHx8IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5vZmZzZXRMZWZ0O1xuICAgIHRoaXMueSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLm9mZnNldFRvcDtcbiAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LnNjcmVlblggLSB0aGlzLng7XG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5zY3JlZW5ZIC0gdGhpcy55O1xuXG4gICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXApO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplRXZlbnRIYW5kbGVyKTtcbiAgfTtcblxuICBwcmV2aW91c1ZpZXcgPSAoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhbk5hdmlnYXRlKCkgfHwgdGhpcy5kaXNhYmxlUHJldmlvdXMpIHJldHVybjtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgdmFyIGFjdGl2ZVZpZXdJbmRleCA9IHRoaXMud2luZG93LnZpZXdzLmluZGV4T2YoYWN0aXZlVmlldyk7XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgYWN0aXZlVmlldy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZShmYWxzZSk7XG4gICAgdGhpcy53aW5kb3cudmlld3NbYWN0aXZlVmlld0luZGV4IC0gMV0uYWN0aXZlKHRydWUpO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07XG5cbiAgbmV4dFZpZXcgPSAoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhbk5hdmlnYXRlKCkgfHwgdGhpcy5kaXNhYmxlTmV4dCkgcmV0dXJuO1xuICAgIHZhciBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICB2YXIgYWN0aXZlVmlld0luZGV4ID0gdGhpcy53aW5kb3cudmlld3MuaW5kZXhPZihhY3RpdmVWaWV3KTtcbiAgICBpZiAodGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uKSBhY3RpdmVWaWV3LmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlKGZhbHNlKTtcbiAgICB0aGlzLndpbmRvdy52aWV3c1thY3RpdmVWaWV3SW5kZXggKyAxXS5hY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICBzYXZlID0gKCkgPT4ge1xuICAgIHRoaXMuZGF0YUNvbnRleHQuc2F2ZSgpO1xuICB9O1xuXG4gIHJldmVydCA9ICgpID0+IHtcbiAgICB0aGlzLmRhdGFDb250ZXh0LnJldmVydCgpO1xuICB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQ2xvc2VGbiA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0T3B0aW9ucygpLmNhbkNsb3NlRm47XG4gICAgdGhpcy5jYW5OYXZpZ2F0ZUZuID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRPcHRpb25zKCkuY2FuTmF2aWdhdGVGbjtcbiAgICB0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24gPSB0aGlzLmRlc2t0b3BDdHJsLmdldE9wdGlvbnMoKS5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG5cbiAgICB0aGlzLnRydVdpbmRvd0V2ZW50SGFuZGxlci5vbkFkZFZpZXcoKS5zdWJzY3JpYmUoKHdpbmRpb3dBZGRWaWV3RXZlbnQ6IFRydURlc2t0b3BWaWV3Q29uZmlnKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkVmlldyh3aW5kaW93QWRkVmlld0V2ZW50KTtcclxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUV2ZW50SGFuZGxlcik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250YWluZXJcIlxyXG4gICAgIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctYWN0aXZlJzogd2luZG93LmFjdGl2ZSwgJ2Rlc2t0b3Atd2luZG93LW1heGltaXplZCc6IHdpbmRvdy5tYXhpbWl6ZWR9XCJcclxuICAgICBbbmdTdHlsZV09XCJ7J3otaW5kZXgnOiB3aW5kb3cuekluZGV4LCAndG9wJzogd2luZG93LnRvcCwgJ2xlZnQnOiB3aW5kb3cubGVmdCwgJ3JpZ2h0Jzogd2luZG93LnJpZ2h0LCAnYm90dG9tJzogd2luZG93LmJvdHRvbSwgJ2hlaWdodCc6IHdpbmRvdy5oZWlnaHQsICd3aWR0aCc6IHdpbmRvdy53aWR0aCwgJ21pbi1oZWlnaHQnOiB3aW5kb3cubWluSGVpZ2h0LCAnbWluV2lkdGgnOiB3aW5kb3cubWluV2lkdGh9XCJcclxuICAgICBbc3R5bGUub2Zmc2V0TGVmdC5weF09XCJ4XCJcclxuICAgICBbc3R5bGUub2Zmc2V0VG9wLnB4XT1cInlcIlxyXG4gICAgIChtb3VzZWRvd24pPVwiYWN0aXZhdGUoKVwiXHJcbiAgICAgW2hpZGRlbl09XCJ3aW5kb3cubWluaW1pemVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LWhlYWRlclwiIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctbWF4aW1pemVkJzogd2luZG93Lm1heGltaXplZCwgJ2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXdpbmRvdy1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1wcmV2aW91cy1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBCYWNrIE9uZSBWaWV3IC0gW0FsdCArIExlZnRdJ1wiIChjbGljayk9XCJwcmV2aW91c1ZpZXcoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLW5leHQtaWNvbidcIiBbdG9vbHRpcF09XCInR28gRm9yd2FyZCBPbmUgVmlldyAtIFtBbHQgKyBSaWdodF0nXCIgKGNsaWNrKT1cIm5leHRWaWV3KClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1zYXZlLWljb24nXCIgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1zYXZlLWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXNhdmUtaWNvbi1oYXMtY2hhbmdlcyc6IGhhc0NoYW5nZXMoKX1cIiBbdG9vbHRpcF09XCInU2F2ZSAtIFtDdHJsICsgU10nXCIgKGNsaWNrKT1cInNhdmUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJldmVydC1pY29uJ1wiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmV2ZXJ0LWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXJldmVydC1pY29uLWhhcy1jaGFuZ2VzJzogaGFzQ2hhbmdlcygpfVwiIFt0b29sdGlwXT1cIidSZXZlcnQgLSBbQ3RybCArIFNoaWZ0ICsgUl0nXCIgKGNsaWNrKT1cInJldmVydCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPC90cnUtdG9vbGJhcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXRpdGxlXCIgKGRibGNsaWNrKT1cIm1heGltaXplKClcIiAobW91c2Vkb3duKT1cIndpbmRvd1RpdGxlTW91c2VEb3duKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRlc2t0b3AtY2xpY2stdGhyb3VnaFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXRleHRcIj57e3dpbmRvdy50aXRsZX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC13aW5kb3ctYWN0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1taW5pbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidNaW5pbWl6ZSAtIFtBbHQgKyBOXSdcIiAoY2xpY2spPVwibWluaW1pemUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1tYXhpbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBGb3J3YXJkIE9uZSBWaWV3IC0gW0FsdCArIFJpZ2h0XSdcIiAoY2xpY2spPVwibWF4aW1pemUoKVwiIGNsYXNzPVwibWF4aW1pemVcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uICpuZ0lmPVwid2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1yZXN0b3JlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0dvIEZvcndhcmQgT25lIFZpZXcgLSBbQWx0ICsgUmlnaHRdJ1wiIChjbGljayk9XCJtYXhpbWl6ZSgpXCIgY2xhc3M9XCJtYXhpbWl6ZVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLWNsb3NlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0Nsb3NlIFdpbmRvdyAtIFtBbHQgKyBTSElGVCArIFhdJ1wiIChjbGljayk9XCJjbG9zZSgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwvdHJ1LXRvb2xiYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZmllbGRzZXQgbmctZGlzYWJsZWQ9XCIhd2luZG93LmFjdGl2ZVwiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctZmllbGRzZXRcIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZpZXcgb2Ygd2luZG93LnZpZXdzXCI+XHJcbiAgICAgICAgPHRydS1kZXNrdG9wLXZpZXcgW3ZpZXddPVwidmlld1wiIFtoaWRkZW5dPVwiIXZpZXcuYWN0aXZlXCI+PG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+PC90cnUtZGVza3RvcC12aWV3PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPHRydS1kZXNrdG9wLXN0YXR1c2Jhcj48L3RydS1kZXNrdG9wLXN0YXR1c2Jhcj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW53XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ253J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5lXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ25lJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXN3XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3N3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXNlXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3NlJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5cIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInbidcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1zXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3MnXCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWhhbmRsZSBkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtd1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIid3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWVcIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInZSdcIj48L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -59,9 +59,9 @@ export * from './lib/components/data-grid/tru-data-grid';
59
59
  export * from './lib/components/data-grid/tru-data-grid-module';
60
60
  export * from './lib/components/desktop/tru-desktop';
61
61
  export * from './lib/components/desktop/tru-desktop-module';
62
+ export * from './lib/components/desktop/classes/tru-desktop-view-config';
62
63
  export * from './lib/components/desktop/services/tru-desktop-manager';
63
64
  export * from './lib/components/desktop/services/tru-window-action-event-handler';
64
- export * from './lib/components/desktop/services/tru-window-add-view-event-args';
65
65
  export * from './lib/components/desktop/services/tru-window-event-args';
66
66
  export * from './lib/components/desktop/services/tru-window-event-handler';
67
67
  export * from './lib/components/export-dialog/tru-export-dialog';
@@ -125,4 +125,4 @@ export * from './lib/services/tru-util';
125
125
  export * from './lib/assets/tru-icon-module';
126
126
  export * from './lib/assets/tru-search-icon-module';
127
127
  export * from './lib/tru-common-module';
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxnRUFBZ0UsQ0FBQztBQUUvRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbUVBQW1FLENBQUM7QUFFbEY7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFEOztHQUVHO0FBQ0gsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsaURBQWlELENBQUM7QUFFaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMseURBQXlELENBQUM7QUFFeEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxpRUFBaUUsQ0FBQztBQUVoRjs7R0FFRztBQUNILGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLGtGQUFrRixDQUFDO0FBQ2pHLGNBQWMseUZBQXlGLENBQUM7QUFJeEc7O0dBRUc7QUFDSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7R0FFRztBQUNILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0cnUtY29tbW9uLWxpYlxuICovXG5cbi8qXG4gKiBCYXNlIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb21wb25lbnQtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb250cm9sLWNvbXBvbmVudC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWVkaXQtY29udHJvbC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29udHJvbC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLXJhbmdlLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS10YWJsZS1jb25maWctYmFzZSc7XG5cbi8qXG4gKiBCYXNlIFZpZXdcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoL3NlcnZpY2VzL3RydS1zZWFyY2gtdmlldy1jb250cm9sLWV2ZW50LWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC1yZXN1bHQvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoLXJlc3VsdC90cnUtc2VhcmNoLXJlc3VsdC12aWV3LWJhc2UtbW9kdWxlJztcblxuLypcbiAqIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtY2hvaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyLWNob2ljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1mb3JtdWxhLWV2YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJlZGljYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1jbG91ZC1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1kYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1kZWNpbWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1mb3JlaWduLWtleSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctaW50ZWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctcGFzc3dvcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXBlcmNlbnRhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXNjaWVudGlmaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXRleHQtY2hvaWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctdXNhLWFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXppcC1jb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXF1ZXJ5LXByZWRpY2F0ZS1tYW5hZ2VyJztcblxuLypcbiAqIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy90cnUtY29uZmlybS1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy90cnUtY29uZmlybS1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvY2xhc3Nlcy90cnUtZGF0YS1ncmlkLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9lbnVtcy90cnUtZGF0YS1ncmlkLXR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL3RydS1kYXRhLWdyaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AvdHJ1LWRlc2t0b3AnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LWRlc2t0b3AtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1hY3Rpb24tZXZlbnQtaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1hZGQtdmlldy1ldmVudC1hcmdzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGVza3RvcC9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWFyZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy90cnUtZXhwb3J0LWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V4cG9ydC1kaWFsb2cvdHJ1LWV4cG9ydC1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvY29sdW1uL3RydS1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvY29sdW1uL3RydS1jb2x1bW4tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2Zvcm0vdHJ1LWZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZm9ybS90cnUtZm9ybS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZ3JvdXAtYm94L3RydS1ncm91cC1ib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZ3JvdXAtYm94L3RydS1ncm91cC1ib3gtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93LW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90cnUtdG9vbGJhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdHJ1LXRvb2xiYXItbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9tZW51L3RydS10b29sYmFyLW1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL21lbnUvdHJ1LXRvb2xiYXItbWVudS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2J1dHRvbi90cnUtdG9vbGJhci1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2J1dHRvbi90cnUtdG9vbGJhci1idXR0b24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9kcm9wZG93bi90cnUtdG9vbGJhci1kcm9wZG93bic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvZHJvcGRvd24vdHJ1LXRvb2xiYXItZHJvcGRvd24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9zZXBhcmF0b3IvdHJ1LXRvb2xiYXItc2VwYXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9zZXBhcmF0b3IvdHJ1LXRvb2xiYXItc2VwYXJhdG9yLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvY29udGV4dC1maWx0ZXIvdHJ1LXRvb2xiYXItY29udGV4dC1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2NvbnRleHQtZmlsdGVyL3RydS10b29sYmFyLWNvbnRleHQtZmlsdGVyLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdGV4dC90cnUtdG9vbGJhci10ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90ZXh0L3RydS10b29sYmFyLXRleHQtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9naW4vc2VydmljZXMvdHJ1LWF1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9zZXJ2aWNlcy90cnUtYXV0aC1pbnRlcmNlcHRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LXZhbGlkYXRpb24tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LXZhbGlkYXRpb24tZGlhbG9nLW1vZHVsZSc7XG5cbi8qXG4gKiBEaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYnJlZXplLXZhbGlkYXRvci90cnUtYnJlZXplLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2JyZWV6ZS12YWxpZGF0b3IvdHJ1LWJyZWV6ZS12YWxpZGF0b3ItbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXItbW9kdWxlJztcblxuXG5cbi8qXG4gKiBTZXJ2aWNlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtYXBwLWVudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1icmVlemUtY29udGV4dC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1icmVlemUtbWV0YWRhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNvbXBvbmVudC1sb29rdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNvbnRleHQtZmlsdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1lbnRpdHktYWNjZXNzb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXByZWRpY2F0ZS1tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1zb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS10YWJsZS1yZWdpc3RyeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtdGV4dC1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS11aS1ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXV0aWwnO1xuXG4vKlxuICogTW9kdWxlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvdHJ1LWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90cnUtc2VhcmNoLWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RydS1jb21tb24tbW9kdWxlJztcbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxnRUFBZ0UsQ0FBQztBQUUvRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbUVBQW1FLENBQUM7QUFFbEY7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFEOztHQUVHO0FBQ0gsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsaURBQWlELENBQUM7QUFFaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELGNBQWMsMERBQTBELENBQUM7QUFFekUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMseURBQXlELENBQUM7QUFFeEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxpRUFBaUUsQ0FBQztBQUVoRjs7R0FFRztBQUNILGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLGtGQUFrRixDQUFDO0FBQ2pHLGNBQWMseUZBQXlGLENBQUM7QUFJeEc7O0dBRUc7QUFDSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7R0FFRztBQUNILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0cnUtY29tbW9uLWxpYlxuICovXG5cbi8qXG4gKiBCYXNlIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb21wb25lbnQtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb250cm9sLWNvbXBvbmVudC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWVkaXQtY29udHJvbC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29udHJvbC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLXJhbmdlLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS10YWJsZS1jb25maWctYmFzZSc7XG5cbi8qXG4gKiBCYXNlIFZpZXdcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoL3NlcnZpY2VzL3RydS1zZWFyY2gtdmlldy1jb250cm9sLWV2ZW50LWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC1yZXN1bHQvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoLXJlc3VsdC90cnUtc2VhcmNoLXJlc3VsdC12aWV3LWJhc2UtbW9kdWxlJztcblxuLypcbiAqIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtY2hvaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyLWNob2ljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1mb3JtdWxhLWV2YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJlZGljYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1jbG91ZC1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1kYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1kZWNpbWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1mb3JlaWduLWtleSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctaW50ZWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctcGFzc3dvcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXBlcmNlbnRhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXNjaWVudGlmaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXRleHQtY2hvaWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctdXNhLWFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXppcC1jb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXF1ZXJ5LXByZWRpY2F0ZS1tYW5hZ2VyJztcblxuLypcbiAqIENvbXBvbmVudHNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy90cnUtY29uZmlybS1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy90cnUtY29uZmlybS1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvY2xhc3Nlcy90cnUtZGF0YS1ncmlkLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9lbnVtcy90cnUtZGF0YS1ncmlkLXR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL3RydS1kYXRhLWdyaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AvdHJ1LWRlc2t0b3AnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGVza3RvcC9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctYWN0aW9uLWV2ZW50LWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL3RydS1leHBvcnQtZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy90cnUtZXhwb3J0LWRpYWxvZy1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9jb2x1bW4vdHJ1LWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9jb2x1bW4vdHJ1LWNvbHVtbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZm9ybS90cnUtZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9mb3JtL3RydS1mb3JtLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9ncm91cC1ib3gvdHJ1LWdyb3VwLWJveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9ncm91cC1ib3gvdHJ1LWdyb3VwLWJveC1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvcm93L3RydS1yb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvcm93L3RydS1yb3ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RydS10b29sYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90cnUtdG9vbGJhci1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL21lbnUvdHJ1LXRvb2xiYXItbWVudSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvbWVudS90cnUtdG9vbGJhci1tZW51LW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvYnV0dG9uL3RydS10b29sYmFyLWJ1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvYnV0dG9uL3RydS10b29sYmFyLWJ1dHRvbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2Ryb3Bkb3duL3RydS10b29sYmFyLWRyb3Bkb3duJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9kcm9wZG93bi90cnUtdG9vbGJhci1kcm9wZG93bi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3NlcGFyYXRvci90cnUtdG9vbGJhci1zZXBhcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3NlcGFyYXRvci90cnUtdG9vbGJhci1zZXBhcmF0b3ItbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9jb250ZXh0LWZpbHRlci90cnUtdG9vbGJhci1jb250ZXh0LWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvY29udGV4dC1maWx0ZXIvdHJ1LXRvb2xiYXItY29udGV4dC1maWx0ZXItbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90ZXh0L3RydS10b29sYmFyLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RleHQvdHJ1LXRvb2xiYXItdGV4dC1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9zZXJ2aWNlcy90cnUtYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3NlcnZpY2VzL3RydS1hdXRoLWludGVyY2VwdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWRpYWxvZy90cnUtdmFsaWRhdGlvbi1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWRpYWxvZy90cnUtdmFsaWRhdGlvbi1kaWFsb2ctbW9kdWxlJztcblxuLypcbiAqIERpcmVjdGl2ZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9icmVlemUtdmFsaWRhdG9yL3RydS1icmVlemUtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYnJlZXplLXZhbGlkYXRvci90cnUtYnJlZXplLXZhbGlkYXRvci1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyL3RydS1zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyL3RydS1zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci1tb2R1bGUnO1xuXG5cblxuLypcbiAqIFNlcnZpY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWJyZWV6ZS1jb250ZXh0LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWJyZWV6ZS1tZXRhZGF0YS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtY29tcG9uZW50LWxvb2t1cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtY29udGV4dC1maWx0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWVudGl0eS1hY2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtcHJlZGljYXRlLW1hcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtc2VhcmNoLXJlc3VsdC12aWV3LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXNvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXRhYmxlLXJlZ2lzdHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS10ZXh0LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXVpLW5vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtdXRpbCc7XG5cbi8qXG4gKiBNb2R1bGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90cnUtaWNvbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXNzZXRzL3RydS1zZWFyY2gtaWNvbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJ1LWNvbW1vbi1tb2R1bGUnO1xuIl19
@@ -5,7 +5,7 @@ import * as i1$3 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import * as i7 from '@angular/forms';
7
7
  import { FormsModule, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
8
- import { Subject, BehaviorSubject, defer, from, of, Observable, skip, forkJoin, throwError } from 'rxjs';
8
+ import { BehaviorSubject, Subject, defer, from, of, Observable, skip, forkJoin, throwError } from 'rxjs';
9
9
  import * as _ from 'underscore';
10
10
  import moment from 'moment/moment';
11
11
  import * as i1 from '@angular/material/dialog';
@@ -262,25 +262,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
262
262
  }]
263
263
  }] });
264
264
 
265
- class TruWindowAddViewEventArgs {
265
+ class TruDesktopViewConfig {
266
+ onActive() {
267
+ return this.active$;
268
+ }
269
+ active(value) {
270
+ this.active$.next(value);
271
+ }
266
272
  constructor() {
267
- this.active = null;
268
- this.entities = null;
273
+ this.active$ = new BehaviorSubject(true);
274
+ this.entities = undefined;
269
275
  this.entityIndex = 0;
270
276
  this.isDirty = false;
271
277
  this.isEditing = false;
272
278
  this.isInvalid = false;
273
279
  this.componentName = '';
280
+ this.openAsDetaiView = false;
274
281
  }
275
282
  }
276
- TruWindowAddViewEventArgs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruWindowAddViewEventArgs, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
277
- TruWindowAddViewEventArgs.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruWindowAddViewEventArgs, providedIn: 'root' });
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruWindowAddViewEventArgs, decorators: [{
279
- type: Injectable,
280
- args: [{
281
- providedIn: 'root'
282
- }]
283
- }] });
283
+ ;
284
284
 
285
285
  class TruWindowEventArgs {
286
286
  constructor() {
@@ -472,8 +472,7 @@ class TruSearchViewBase {
472
472
  };
473
473
  this.onPkeyCellDoubleClicked = (gridConfig) => {
474
474
  if (this.hasDetailView) {
475
- var truWindowAddViewEventArgs = new TruWindowAddViewEventArgs();
476
- truWindowAddViewEventArgs.active = true;
475
+ var truWindowAddViewEventArgs = new TruDesktopViewConfig();
477
476
  truWindowAddViewEventArgs.entities = gridConfig.api.getRenderedNodes().map((rowNode) => rowNode.data.$entity);
478
477
  truWindowAddViewEventArgs.entityIndex = gridConfig.rowIndex;
479
478
  truWindowAddViewEventArgs.componentName = this.tableName + 'DetailView';
@@ -589,8 +588,7 @@ class TruSearchResultViewBase {
589
588
  };
590
589
  this.onPkeyCellDoubleClicked = (gridConfig) => {
591
590
  if (this.hasDetailView) {
592
- var truWindowAddViewEventArgs = new TruWindowAddViewEventArgs();
593
- truWindowAddViewEventArgs.active = true;
591
+ var truWindowAddViewEventArgs = new TruDesktopViewConfig();
594
592
  truWindowAddViewEventArgs.entities = gridConfig.api.getRenderedNodes().map((rowNode) => rowNode.data.$entity);
595
593
  truWindowAddViewEventArgs.entityIndex = gridConfig.rowIndex;
596
594
  truWindowAddViewEventArgs.componentName = this.tableName + 'DetailView';
@@ -2728,7 +2726,7 @@ class Desktop {
2728
2726
  constructor() {
2729
2727
  this.options = new DesktopOptions();
2730
2728
  this.windowConfig = new WindowConfig();
2731
- this.viewConfig = new ViewConfig();
2729
+ this.viewConfig = new TruDesktopViewConfig();
2732
2730
  }
2733
2731
  }
2734
2732
  ;
@@ -2804,36 +2802,6 @@ class WindowConfig {
2804
2802
  };
2805
2803
  }
2806
2804
  }
2807
- ;
2808
- /**
2809
- * @tru.desktop.doc class
2810
- * @name truDesktopComponent.ViewConfig
2811
- * @module tru.desktop
2812
- *
2813
- * @description
2814
- * Default configuration object for a view. viewConfig properties can be defined by the application developer and overlaid
2815
- * over this object.
2816
- *
2817
- */
2818
- class ViewConfig {
2819
- onActive() {
2820
- return this.active$;
2821
- }
2822
- active(value) {
2823
- this.active$.next(value);
2824
- }
2825
- constructor() {
2826
- this.active$ = new BehaviorSubject(true);
2827
- this.entities = undefined;
2828
- this.entityIndex = 0;
2829
- this.isDirty = false;
2830
- this.isEditing = false;
2831
- this.isInvalid = false;
2832
- this.componentName = undefined;
2833
- this.windowConfig = null;
2834
- this.openAsDetaiView = false;
2835
- }
2836
- }
2837
2805
  ;
2838
2806
 
2839
2807
  class TruDesktopMenubar {
@@ -3835,7 +3803,7 @@ class TruDesktop {
3835
3803
  this.configureViews = (windowConfigOverlays, configuredWindow) => {
3836
3804
  let configuredViews = [];
3837
3805
  windowConfigOverlays.views.forEach((view) => {
3838
- let configuredView = new ViewConfig();
3806
+ let configuredView = new TruDesktopViewConfig();
3839
3807
  configuredView.componentName = view.componentName;
3840
3808
  configuredView.entities = view.entities;
3841
3809
  configuredView.entityIndex = view.entityIndex;
@@ -5854,5 +5822,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
5854
5822
  * Generated bundle index. Do not edit.
5855
5823
  */
5856
5824
 
5857
- export { DetailViewModule, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruChoice, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDesktop, TruDesktopManager, TruDesktopModule, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruIconModule, TruLogin, TruLoginModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogModule, TruWindowActionEventHandler, TruWindowAddViewEventArgs, TruWindowEventArgs, TruWindowEventHandler };
5825
+ export { DetailViewModule, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruChoice, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDesktop, TruDesktopManager, TruDesktopModule, TruDesktopViewConfig, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruIconModule, TruLogin, TruLoginModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogModule, TruWindowActionEventHandler, TruWindowEventArgs, TruWindowEventHandler };
5858
5826
  //# sourceMappingURL=trudb-tru-common-lib.mjs.map