@trudb/tru-common-lib 0.0.183 → 0.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/base-classes/tru-table-config-base.mjs +12 -0
- package/esm2020/lib/classes/tru-formula-eval.mjs +156 -0
- package/esm2020/lib/classes/tru-property-config-cloud-file.mjs +5 -0
- package/esm2020/lib/classes/tru-property-config-decimal.mjs +11 -0
- package/esm2020/lib/classes/tru-property-config-foreign-key.mjs +10 -0
- package/esm2020/lib/classes/tru-property-config-integer.mjs +9 -0
- package/esm2020/lib/classes/tru-property-config-password.mjs +8 -0
- package/esm2020/lib/classes/tru-property-config-percentage.mjs +9 -0
- package/esm2020/lib/classes/tru-property-config-scientific.mjs +9 -0
- package/esm2020/lib/classes/tru-property-config-text-choices.mjs +8 -0
- package/esm2020/lib/classes/tru-property-config-text.mjs +10 -0
- package/esm2020/lib/classes/tru-property-config-usa-address.mjs +8 -0
- package/esm2020/lib/classes/tru-property-config-zip-code.mjs +8 -0
- package/esm2020/lib/components/data-grid/classes/tru-data-grid-config.mjs +2 -0
- package/esm2020/lib/components/data-grid/enums/tru-data-grid-types.mjs +7 -0
- package/esm2020/lib/components/data-grid/tru-data-grid-module.mjs +67 -0
- package/esm2020/lib/components/data-grid/tru-data-grid.mjs +253 -0
- package/esm2020/lib/components/desktop/services/tru-window-action-event-handler.mjs +27 -0
- package/esm2020/lib/components/desktop/services/tru-window-add-view-event-args.mjs +22 -0
- package/esm2020/lib/components/desktop/services/tru-window-event-args.mjs +25 -0
- package/esm2020/lib/components/desktop/services/tru-window-event-handler.mjs +37 -0
- package/esm2020/lib/components/desktop/tru-desktop.mjs +2 -2
- package/esm2020/lib/components/desktop/window/tru-desktop-window.mjs +3 -3
- package/esm2020/lib/components/layout/column/tru-column-module.mjs +19 -0
- package/esm2020/lib/components/layout/column/tru-column.mjs +12 -0
- package/esm2020/lib/components/layout/form/tru-form-module.mjs +19 -0
- package/esm2020/lib/components/layout/form/tru-form.mjs +27 -0
- package/esm2020/lib/components/layout/group-box/tru-group-box-module.mjs +19 -0
- package/esm2020/lib/components/layout/group-box/tru-group-box.mjs +12 -0
- package/esm2020/lib/components/layout/row/tru-row-module.mjs +19 -0
- package/esm2020/lib/components/layout/row/tru-row.mjs +12 -0
- package/esm2020/lib/components/toolbar/classes/tru-toolbar-dropdown-option.mjs +2 -0
- package/esm2020/lib/components/toolbar/dropdown/tru-toolbar-dropdown.mjs +1 -1
- package/esm2020/lib/components/toolbar/tru-toolbar.mjs +1 -1
- package/esm2020/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.mjs +19 -0
- package/esm2020/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.mjs +151 -0
- package/esm2020/lib/event-handlers/tru-search-group-event-handler.mjs +41 -0
- package/esm2020/lib/event-handlers/tru-search-view-event-handler.mjs +20 -0
- package/esm2020/lib/services/tru-sort.mjs +114 -0
- package/esm2020/public-api.mjs +68 -34
- package/fesm2015/trudb-tru-common-lib.mjs +2794 -1838
- package/fesm2015/trudb-tru-common-lib.mjs.map +1 -1
- package/fesm2020/trudb-tru-common-lib.mjs +2777 -1823
- package/fesm2020/trudb-tru-common-lib.mjs.map +1 -1
- package/lib/base-classes/tru-table-config-base.d.ts +10 -0
- package/lib/classes/tru-formula-eval.d.ts +31 -0
- package/lib/classes/tru-property-config-cloud-file.d.ts +4 -0
- package/lib/classes/tru-property-config-decimal.d.ts +8 -0
- package/lib/classes/tru-property-config-foreign-key.d.ts +7 -0
- package/lib/classes/tru-property-config-integer.d.ts +6 -0
- package/lib/classes/tru-property-config-password.d.ts +5 -0
- package/lib/classes/tru-property-config-percentage.d.ts +6 -0
- package/lib/classes/tru-property-config-scientific.d.ts +6 -0
- package/lib/classes/tru-property-config-text-choices.d.ts +5 -0
- package/lib/classes/tru-property-config-text.d.ts +7 -0
- package/lib/classes/tru-property-config-usa-address.d.ts +5 -0
- package/lib/classes/tru-property-config-zip-code.d.ts +5 -0
- package/lib/components/data-grid/classes/tru-data-grid-config.d.ts +7 -0
- package/lib/components/data-grid/enums/tru-data-grid-types.d.ts +5 -0
- package/lib/components/data-grid/tru-data-grid-module.d.ts +15 -0
- package/lib/components/data-grid/tru-data-grid.d.ts +55 -0
- package/lib/{services → components/desktop/services}/tru-window-action-event-handler.d.ts +0 -0
- package/lib/{classes/tru-window-add-view-event.d.ts → components/desktop/services/tru-window-add-view-event-args.d.ts} +3 -3
- package/lib/{classes/tru-window-event.d.ts → components/desktop/services/tru-window-event-args.d.ts} +3 -3
- package/lib/{services → components/desktop/services}/tru-window-event-handler.d.ts +6 -6
- package/lib/components/desktop/tru-desktop.d.ts +1 -1
- package/lib/components/desktop/window/tru-desktop-window.d.ts +1 -1
- package/lib/components/layout/column/tru-column-module.d.ts +9 -0
- package/lib/components/layout/column/tru-column.d.ts +6 -0
- package/lib/components/layout/form/tru-form-module.d.ts +9 -0
- package/lib/components/layout/form/tru-form.d.ts +10 -0
- package/lib/components/layout/group-box/tru-group-box-module.d.ts +9 -0
- package/lib/components/layout/group-box/tru-group-box.d.ts +6 -0
- package/lib/components/layout/row/tru-row-module.d.ts +9 -0
- package/lib/components/layout/row/tru-row.d.ts +6 -0
- package/lib/components/toolbar/classes/tru-toolbar-dropdown-option.d.ts +4 -0
- package/lib/components/toolbar/dropdown/tru-toolbar-dropdown.d.ts +1 -1
- package/lib/components/toolbar/tru-toolbar.d.ts +0 -4
- package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.d.ts +9 -0
- package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.d.ts +40 -0
- package/lib/{services → event-handlers}/tru-search-group-event-handler.d.ts +0 -0
- package/lib/event-handlers/tru-search-view-event-handler.d.ts +8 -0
- package/lib/services/tru-sort.d.ts +56 -0
- package/package.json +1 -1
- package/public-api.d.ts +61 -33
- package/esm2020/lib/classes/tru-window-add-view-event.mjs +0 -22
- package/esm2020/lib/classes/tru-window-event.mjs +0 -25
- package/esm2020/lib/services/tru-search-group-event-handler.mjs +0 -41
- package/esm2020/lib/services/tru-window-action-event-handler.mjs +0 -27
- package/esm2020/lib/services/tru-window-event-handler.mjs +0 -37
|
@@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core';
|
|
|
2
2
|
import { TruDesktopService } from './services/tru-desktop-service';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "./services/tru-desktop-service";
|
|
5
|
-
import * as i2 from "
|
|
5
|
+
import * as i2 from "./services/tru-window-event-handler";
|
|
6
6
|
import * as i3 from "@angular/common";
|
|
7
7
|
import * as i4 from "./menubar/tru-desktop-menubar";
|
|
8
8
|
import * as i5 from "./taskbar/tru-desktop-taskbar";
|
|
@@ -700,4 +700,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
700
700
|
}], ctorParameters: function () { return [{ type: i1.TruDesktopService }, { type: i2.TruWindowEventHandler }]; }, propDecorators: { options: [{
|
|
701
701
|
type: Input
|
|
702
702
|
}] } });
|
|
703
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC90cnUtZGVza3RvcC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBUW5FLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQ1UsY0FBaUMsRUFDakMscUJBQTRDO1FBRDVDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBR3RELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLDZCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUM5Qiw2QkFBd0IsR0FBRyxHQUFHLENBQUM7UUFDL0IsOEJBQXlCLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUN4RyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFP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bXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RydS13aW5kb3ctZXZlbnQnO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEhhbmRsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xuaW1wb3J0IHsgVHJ1RGVza3RvcFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RydS1kZXNrdG9wLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0cnUtZGVza3RvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGVza3RvcC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRlc2t0b3AuY3NzJ10sXG4gIHByb3ZpZGVyczogW1RydURlc2t0b3BTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3B0aW9uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGVza3RvcFNlcnZpY2U6IFRydURlc2t0b3BTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJ1V2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIpIHtcbiAgfVxyXG5cbiAgbWluaW1pemVBbGwgPSBmYWxzZTtcbiAgZGVza3RvcCA9IHRoaXMuZGVza3RvcFNlcnZpY2UuY3JlYXRlRGVza3RvcCgpO1xuICBtaW5XaW5kb3dDYXNjYWRlUG9zaXRpb24gPSA0MDtcbiAgbWF4V2luZG93Q2FzY2FkZVBvc2l0aW9uID0gMTAwO1xuICBsYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uID0geyB0b3A6IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uLCBsZWZ0OiB0aGlzLm1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbiB9O1xuICBzaGlmdFByZXNzZWQgPSBmYWxzZTtcbiAgYWx0UHJlc3NlZCA9IGZhbHNlO1xuICB4UHJlc3NlZCA9IGZhbHNlO1xuICBrZXlib2FyZE1hcCA9IFtcIlwiLCBcIlwiLCBcIlwiLCBcIkNBTkNFTFwiLCBcIlwiLCBcIlwiLCBcIkhFTFBcIiwgXCJcIiwgXCJCQUNLX1NQQUNFXCIsIFwiVEFCXCIsIFwiXCIsIFwiXCIsIFwiQ0xFQVJcIiwgXCJFTlRFUlwiLCBcIlJFVFVSTlwiLCBcIlwiLCBcIlNISUZUXCIsIFwiQ09OVFJPTFwiLCBcIkFMVFwiLCBcIlBBVVNFXCIsIFwiQ0FQU19MT0NLXCIsIFwiS0FOQVwiLCBcIkVJU1VcIiwgXCJKVU5KQVwiLCBcIkZJTkFMXCIsIFwiSEFOSkFcIiwgXCJcIiwgXCJFU0NBUEVcIiwgXCJDT05WRVJUXCIsIFwiTk9OQ09OVkVSVFwiLCBcIkFDQ0VQVFwiLCBcIk1PREVDSEFOR0VcIiwgXCJTUEFDRVwiLCBcIlBBR0VfVVBcIiwgXCJQQUdFX0RPV05cIiwgXCJFTkRcIiwgXCJIT01FXCIsIFwiTEVGVFwiLCBcIlVQXCIsIFwiUklHSFRcIiwgXCJET1dOXCIsIFwiU0VMRUNUXCIsIFwiUFJJTlRcIiwgXCJFWEVDVVRFXCIsIFwiUFJJTlRTQ1JFRU5cIiwgXCJJTlNFUlRcIiwgXCJERUxFVEVcIiwgXCJcIiwgXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiQ09MT05cIiwgXCJTRU1JQ09MT05cIiwgXCJMRVNTX1RIQU5cIiwgXCJFUVVBTFNcIiwgXCJHUkVBVEVSX1RIQU5cIiwgXCJRVUVTVElPTl9NQVJLXCIsIFwiQVRcIiwgXCJBXCIsIFwiQlwiLCBcIkNcIiwgXCJEXCIsIFwiRVwiLCBcIkZcIiwgXCJHXCIsIFwiSFwiLCBcIklcIiwgXCJKXCIsIFwiS1wiLCBcIkxcIiwgXCJNXCIsIFwiTlwiLCBcIk9cIiwgXCJQXCIsIFwiUVwiLCBcIlJcIiwgXCJTXCIsIFwiVFwiLCBcIlVcIiwgXCJWXCIsIFwiV1wiLCBcIlhcIiwgXCJZXCIsIFwiWlwiLCBcIldJTlwiLCBcIlwiLCBcIkNPTlRFWFRfTUVOVVwiLCBcIlwiLCBcIlNMRUVQXCIsIFwiTlVNUEFEMFwiLCBcIk5VTVBBRDFcIiwgXCJOVU1QQUQyXCIsIFwiTlVNUEFEM1wiLCBcIk5VTVBBRDRcIiwgXCJOVU1QQUQ1XCIsIFwiTlVNUEFENlwiLCBcIk5VTVBBRDdcIiwgXCJOVU1QQUQ4XCIsIFwiTlVNUEFEOVwiLCBcIk1VTFRJUExZXCIsIFwiQUREXCIsIFwiU0VQQVJBVE9SXCIsIFwiU1VCVFJBQ1RcIiwgXCJERUNJTUFMXCIsIFwiRElWSURFXCIsIFwiRjFcIiwgXCJGMlwiLCBcIkYzXCIsIFwiRjRcIiwgXCJGNVwiLCBcIkY2XCIsIFwiRjdcIiwgXCJGOFwiLCBcIkY5XCIsIFwiRjEwXCIsIFwiRjExXCIsIFwiRjEyXCIsIFwiRjEzXCIsIFwiRjE0XCIsIFwiRjE1XCIsIFwiRjE2XCIsIFwiRjE3XCIsIFwiRjE4XCIsIFwiRjE5XCIsIFwiRjIwXCIsIFwiRjIxXCIsIFwiRjIyXCIsIFwiRjIzXCIsIFwiRjI0XCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiTlVNX0xPQ0tcIiwgXCJTQ1JPTExfTE9DS1wiLCBcIldJTl9PRU1fRkpfSklTSE9cIiwgXCJXSU5fT0VNX0ZKX01BU1NIT1VcIiwgXCJXSU5fT0VNX0ZKX1RPVVJPS1VcIiwgXCJXSU5fT0VNX0ZKX0xPWUFcIiwgXCJXSU5fT0VNX0ZKX1JPWUFcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJDSVJDVU1GTEVYXCIsIFwiRVhDTEFNQVRJT05cIiwgXCJET1VCTEVfUVVPVEVcIiwgXCJIQVNIXCIsIFwiRE9MTEFSXCIsIFwiUEVSQ0VOVFwiLCBcIkFNUEVSU0FORFwiLCBcIlVOREVSU0NPUkVcIiwgXCJPUEVOX1BBUkVOXCIsIFwiQ0xPU0VfUEFSRU5cIiwgXCJBU1RFUklTS1wiLCBcIlBMVVNcIiwgXCJQSVBFXCIsIFwiSFlQSEVOX01JTlVTXCIsIFwiT1BFTl9DVVJMWV9CUkFDS0VUXCIsIFwiQ0xPU0VfQ1VSTFlfQlJBQ0tFVFwiLCBcIlRJTERFXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiVk9MVU1FX01VVEVcIiwgXCJWT0xVTUVfRE9XTlwiLCBcIlZPTFVNRV9VUFwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIkNPTU1BXCIsIFwiXCIsIFwiUEVSSU9EXCIsIFwiU0xBU0hcIiwgXCJCQUNLX1FVT1RFXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiT1BFTl9CUkFDS0VUXCIsIFwiQkFDS19TTEFTSFwiLCBcIkNMT1NFX0JSQUNLRVRcIiwgXCJRVU9URVwiLCBcIlwiLCBcIk1FVEFcIiwgXCJBTFRHUlwiLCBcIlwiLCBcIldJTl9JQ09fSEVMUFwiLCBcIldJTl9JQ09fMDBcIiwgXCJcIiwgXCJXSU5fSUNPX0NMRUFSXCIsIFwiXCIsIFwiXCIsIFwiV0lOX09FTV9SRVNFVFwiLCBcIldJTl9PRU1fSlVNUFwiLCBcIldJTl9PRU1fUEExXCIsIFwiV0lOX09FTV9QQTJcIiwgXCJXSU5fT0VNX1BBM1wiLCBcIldJTl9PRU1fV1NDVFJMXCIsIFwiV0lOX09FTV9DVVNFTFwiLCBcIldJTl9PRU1fQVRUTlwiLCBcIldJTl9PRU1fRklOSVNIXCIsIFwiV0lOX09FTV9DT1BZXCIsIFwiV0lOX09FTV9BVVRPXCIsIFwiV0lOX09FTV9FTkxXXCIsIFwiV0lOX09FTV9CQUNLVEFCXCIsIFwiQVRUTlwiLCBcIkNSU0VMXCIsIFwiRVhTRUxcIiwgXCJFUkVPRlwiLCBcIlBMQVlcIiwgXCJaT09NXCIsIFwiXCIsIFwiUEExXCIsIFwiV0lOX09FTV9DTEVBUlwiLCBcIlwiXTtcbiAgbG9nb1VybCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0RGVza3RvcFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXR1cm4gYW4gb2JqZWN0IG9mIGRlc2t0b3AuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IGRlc2t0b3AuXG4gICAqL1xuICBnZXREZXNrdG9wID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmRlc2t0b3A7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0T3B0aW9uc1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXR1cm4gYW4gb2JqZWN0IG9mIGRlc2t0b3Agb3B0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gb3B0aW9ucy5cbiAgICovXG4gIGdldE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRXaW5kb3dzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiB3aW5kb3dzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7YXJyYXl9IHdpbmRvd3MuXG4gICAqL1xuICBnZXRXaW5kb3dzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvd3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0TmV4dE1heFpJbmRleFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGFsbCB3aW5kb3cgb2JqZWN0cyBpbiB0aGUgd2luZG93cyBhcnJheSB0byBmaW5kIHRoZSBtYXggei1pbmRleFxuICAgKiBhbmQgaW5jcmVhc2VzIHRoZSB2YWx1ZSBmb3VuZCBieSAxLlxuICAgKlxuICAgKiBAcmV0dXJucyB7aW50fVxuICAgKi9cbiAgZ2V0TmV4dE1heFpJbmRleCA9ICgpID0+IHtcbiAgICB2YXIgbWF4ID0gMDtcbiAgICB2YXIgdG1wO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLndpbmRvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRtcCA9IHRoaXMud2luZG93c1tpXS56SW5kZXg7XG4gICAgICBpZiAodG1wID4gbWF4KSBtYXggPSB0bXA7XG4gICAgfVxuICAgIHJldHVybiArK21heDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jbGVhckFjdGl2ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGFsbCB3aW5kb3cgb2JqZWN0cyBpbiB0aGUgd2luZG93c1xuICAgKiBhbmQgc2V0cyB0aGUgYWN0aXZlIHByb3BlcnR5IHRvIGZhbHNlLlxuICAgKlxuICAgKi9cbiAgY2xlYXJBY3RpdmUgPSAoKSA9PiB7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdpbmRvdzogYW55KSA9PiB7XG4gICAgICB3aW5kb3cuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0QWN0aXZlV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIGFjdGl2ZSB3aW5kb3cuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IHZpZXcgb2JqZWN0LlxuICAgKi9cbiAgZ2V0QWN0aXZlV2luZG93ID0gKCk6IGFueSA9PiB7XG4gICAgdmFyIGFjdGl2ZVdpbmRvdyA9IG51bGw7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdkdzogYW55KSA9PiB7XG4gICAgICBpZiAod2R3LmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmVXaW5kb3cgPSB3ZHc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZVdpbmRvdztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRBY3RpdmVWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIGFjdGl2ZSB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSB2aWV3IG9iamVjdC5cbiAgICovXG4gIGdldEFjdGl2ZVZpZXcgPSAod2R3OiBhbnkpID0+IHtcbiAgICB2YXIgYWN0aXZlVmlldyA9IG51bGw7XG4gICAgd2R3LnZpZXdzLmZvckVhY2goKHZpZXc6IGFueSkgPT4ge1xuICAgICAgaWYgKHZpZXcuYWN0aXZlID09PSB0cnVlKSB7XG4gICAgICAgIGFjdGl2ZVZpZXcgPSB2aWV3O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmVWaWV3O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFsbFdpbmRvd3NBcmVNaW5pbWl6ZWRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSXRlcmF0ZXMgdGhyb3VnaCB3aW5kb3dzIHRvIGRldGVybWluZSBpZiBhbGwgYXJlIG1pbmltaXplZC5cbiAgICpcbiAgICovXG4gIGFsbFdpbmRvd3NBcmVNaW5pbWl6ZWQgPSAoKSA9PiB7XG4gICAgdmFyIGFsbE1pbmltaXplZCA9IHRydWU7XG4gICAgdGhpcy53aW5kb3dzLmZvckVhY2goKHdpbmRvdzogYW55KSA9PiB7XG4gICAgICBpZiAoIXdpbmRvdy5taW5pbWl6ZWQpIHtcbiAgICAgICAgYWxsTWluaW1pemVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFsbE1pbmltaXplZDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5oaWRlU2hvd0FsbFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBIaWRlcy9zaG93cyBhbGwgd2luZG93c1xuICAgKlxuICAgKi9cbiAgaGlkZVNob3dBbGwgPSAoKSA9PiB7XG4gICAgdGhpcy5taW5pbWl6ZUFsbCA9IHRoaXMuYWxsV2luZG93c0FyZU1pbmltaXplZCgpID8gZmFsc2UgOiAhdGhpcy5taW5pbWl6ZUFsbDtcbiAgICB0aGlzLndpbmRvd3MuZm9yRWFjaCgod2R3OiBhbnkpID0+IHtcbiAgICAgIGlmICh3ZHcub3V0T2ZCb3VuZHMpIHRoaXMucmVjb3Zlcih3ZHcpO1xuICAgICAgd2R3LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgd2R3Lm1pbmltaXplZCA9IHRoaXMubWluaW1pemVBbGw7XG4gICAgfSk7XG4gICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gICAgcmV0dXJuIHRoaXMubWluaW1pemVBbGw7XG4gIH07XG5cbiAgLyoqXHJcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cclxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmZpbmRXaW5kb3dWaWV3RGlyZWN0aXZlXHJcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogTG9va3MgZm9yIHByZXZpb3VzbHkgb3BlbiB3aW5kb3cgd2l0aCBhIHZpZXcgZGlyZWN0aXZlXHJcbiAgICpcclxuICAgKi9cclxuICBmaW5kV2luZG93Vmlld0RpcmVjdGl2ZSA9ICh3aW5kb3dWaWV3RGlyZWN0aXZlOiBhbnkpID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53aW5kb3dzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy53aW5kb3dzW2ldLnZpZXdzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2luZG93c1tpXS52aWV3c1swXS52aWV3RGlyZWN0aXZlID09PSB3aW5kb3dWaWV3RGlyZWN0aXZlKVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMud2luZG93c1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5vcGVuV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc3BsYXlzIGEgbmV3IHdpbmRvdy4gQWxsIHdpbmRvdyBwcm9wZXJ0aWVzIGRlZmluZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciB3aWxsIGJlXG4gICAqIG92ZXJsYWlkIGhlcmUgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHdpbmRvd1xuICAgKlxuICAgKi9cbiAgb3BlbldpbmRvdyA9ICh3aW5kb3dDb25maWdPdmVybGF5czogYW55LCBzaW5nbGVJbnN0YW5jZTogYW55KSA9PiB7XG4gICAgbGV0IGFjdGl2ZVdpbmRvdyA9IHRoaXMuZ2V0QWN0aXZlV2luZG93KCk7XHJcbiAgICBpZiAoYWN0aXZlV2luZG93ICYmIGFjdGl2ZVdpbmRvdy5pc01vZGFsKSB7XHJcbiAgICAgIGFjdGl2ZVdpbmRvdy5pbnZhbGlkT3BlcmF0aW9uID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaW5nbGVJbnN0YW5jZSkge1xyXG4gICAgICBsZXQgd2luZG93ID0gdGhpcy5maW5kV2luZG93Vmlld0RpcmVjdGl2ZSh3aW5kb3dDb25maWdPdmVybGF5cy52aWV3c1swXS52aWV3RGlyZWN0aXZlKTtcclxuICAgICAgaWYgKHdpbmRvdykge1xyXG4gICAgICAgIHRoaXMudXBkYXRlV2luZG93U3RhdGUod2luZG93KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93Q29uZmlnT3ZlcmxheXMuaXNNb2RhbCkge1xyXG4gICAgICBsZXQgaGVpZ2h0T2Zmc2V0ID0gKHBhcnNlSW50KHdpbmRvd0NvbmZpZ092ZXJsYXlzLmhlaWdodCwgMTApIC8gMikgKyAzMDtcclxuICAgICAgbGV0IHdpZHRoT2Zmc2V0ID0gKHBhcnNlSW50KHdpbmRvd0NvbmZpZ092ZXJsYXlzLndpZHRoLCAxMCkgLyAyKTtcclxuICAgICAgd2luZG93Q29uZmlnT3ZlcmxheXMudG9wID0gJ2NhbGMoNTAlIC0gJyArIGhlaWdodE9mZnNldCArICdweCApJztcclxuICAgICAgd2luZG93Q29uZmlnT3ZlcmxheXMubGVmdCA9ICdjYWxjKDUwJSAtICcgKyB3aWR0aE9mZnNldCArICdweCApJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICBsZXQgY29uZmlndXJlZFdpbmRvdyA9IHRoaXMuY29uZmlndXJlV2luZG93KHdpbmRvd0NvbmZpZ092ZXJsYXlzKTtcclxuICAgIGNvbmZpZ3VyZWRXaW5kb3cudmlld3MgPSB0aGlzLmNvbmZpZ3VyZVZpZXdzKHdpbmRvd0NvbmZpZ092ZXJsYXlzLCBjb25maWd1cmVkV2luZG93KTtcclxuICAgIGlmICghY29uZmlndXJlZFdpbmRvdy5pc01vZGFsKSB7XHJcbiAgICAgIGNvbmZpZ3VyZWRXaW5kb3cuY2FzY2FkZVdpbmRvdyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmVQb3NpdGlvbihjb25maWd1cmVkV2luZG93KTtcclxuICAgICAgdGhpcy5tYXhpbWl6ZShjb25maWd1cmVkV2luZG93KTtcclxuICAgICAgdGhpcy53aW5kb3dzLnB1c2goY29uZmlndXJlZFdpbmRvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndpbmRvd3MucHVzaChjb25maWd1cmVkV2luZG93KTtcclxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jb25maWd1cmVXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ3JlYXRlcyBhIG5ldyB3aW5kb3cgaW5zdGFuY2UuXG4gICAqXG4gICAqL1xuICBjb25maWd1cmVXaW5kb3cgPSAod2luZG93Q29uZmlnT3ZlcmxheXM6IGFueSkgPT4ge1xuICAgIHZhciB3aW5kb3dDb25maWdJbnN0YW5jZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVza3RvcC53aW5kb3dDb25maWcpO1xuICAgIHdpbmRvd0NvbmZpZ0luc3RhbmNlLnNhdmVkUG9zaXRpb24gPSBPYmplY3QuY3JlYXRlKHsgdG9wOiAwLCBsZWZ0OiAwLCByaWdodDogMCwgYm90dG9tOiAwLCBoZWlnaHQ6IDAsIHdpZHRoOiAwIH0pO1xuICAgIHdpbmRvd0NvbmZpZ0luc3RhbmNlLnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgIC8vd2luZG93Q29uZmlnSW5zdGFuY2UuZ2xvYmFscyA9IE9iamVjdC5hc3NpZ24oe30sICRyb290U2NvcGUuJGV2YWwodGhpcy5vcHRpb25zLmdsb2JhbHMpKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih3aW5kb3dDb25maWdJbnN0YW5jZSwgd2luZG93Q29uZmlnT3ZlcmxheXMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNvbmZpZ3VyZVZpZXdzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgdmlldyBpbnN0YW5jZXNcbiAgICpcbiAgICovXG4gIGNvbmZpZ3VyZVZpZXdzID0gKHdpbmRvd0NvbmZpZ092ZXJsYXlzOiBhbnksIGNvbmZpZ3VyZWRXaW5kb3c6IGFueSk6IEFycmF5PGFueT4gPT4ge1xuICAgIGxldCBjb25maWd1cmVkVmlld3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICB3aW5kb3dDb25maWdPdmVybGF5cy52aWV3cy5mb3JFYWNoKCh2aWV3OiBhbnkpID0+IHtcbiAgICAgIGxldCB2aWV3Q29uZmlnSW5zdGFuY2UgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlc2t0b3Audmlld0NvbmZpZyk7XG4gICAgICAvL3ZpZXdDb25maWdJbnN0YW5jZS5nbG9iYWxzID0gdGhpcy5vcHRpb25zLmdsb2JhbHM7XG4gICAgICBsZXQgY29uZmlndXJlZFZpZXcgPSBPYmplY3QuYXNzaWduKHZpZXdDb25maWdJbnN0YW5jZSwgdmlldyk7XG4gICAgICBjb25maWd1cmVkVmlldy53aW5kb3cgPSBjb25maWd1cmVkV2luZG93O1xuICAgICAgY29uZmlndXJlZFZpZXdzLnB1c2goY29uZmlndXJlZFZpZXcpO1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWd1cmVkVmlld3M7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY2xvc2VXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlIGEgd2luZG93IHtvYmplY3R9IGZyb20gdGhlIHdpbmRvd3MgYXJyYXkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm5zIHRydWUgaWYgd2luZG93IHdhcyBjbG9zZWQsIGZhbHNlIGlmIG5vdCBjbG9zZWQuXG4gICAqL1xuICBjbG9zZVdpbmRvdyA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93RGlydHlDbG9zZSAmJiB3ZHcuaXNEaXJ0eSkge1xuICAgICAgYWxlcnQoXCJVbnNhdmVkIENoYW5nZXMuIFNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZyB3aW5kb3cuXCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93SW52YWxpZENsb3NlICYmIHdkdy5pc0ludmFsaWQpIHtcbiAgICAgIGFsZXJ0KFwiRGF0YSBpcyBpbnZhbGlkLiBDb3JyZWN0IEludmFsaWQgZGF0YSBiZWZvcmUgY2xvc2luZyB3aW5kb3cuXCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuY2FuQ2xvc2VGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNhbkNsb3NlRm4od2R3KSkge1xuICAgICAgICB0aGlzLndpbmRvd3Muc3BsaWNlKHRoaXMud2luZG93cy5pbmRleE9mKHdkdyksIDEpO1xuICAgICAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpbmRvd3Muc3BsaWNlKHRoaXMud2luZG93cy5pbmRleE9mKHdkdyksIDEpO1xuICAgICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFjdGl2YXRlRm9yZW1vc3RXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSBmb3JlbW9zdCB3aW5kb3cgdG8gYW4gYWN0aXZlIHN0YXRlXG4gICAqXG4gICAqL1xuICBhY3RpdmF0ZUZvcmVtb3N0V2luZG93ID0gKCkgPT4ge1xuICAgIHZhciBmb3JlbW9zdCA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMud2luZG93cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKChmb3JlbW9zdCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMud2luZG93c1tpXS56SW5kZXggPiBmb3JlbW9zdC56SW5kZXgpICYmICF0aGlzLndpbmRvd3NbaV0ubWluaW1pemVkICYmICF0aGlzLndpbmRvd3NbaV0ub3V0T2ZCb3VuZHMpXG4gICAgICAgIGZvcmVtb3N0ID0gdGhpcy53aW5kb3dzW2ldO1xuICAgIH1cbiAgICBpZiAoZm9yZW1vc3QpXG4gICAgICBmb3JlbW9zdC5hY3RpdmUgPSB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFjdGl2YXRlTmV4dFdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgdGhlIG5leHQgd2luZG93IHRvIGFuIGFjdGl2ZSBzdGF0ZVxuICAgKlxuICAgKi9cbiAgYWN0aXZhdGVOZXh0V2luZG93ID0gKGFjdGl2ZVdpbmRvd0xvY2F0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3dzLmxlbmd0aCA8PSAxKSByZXR1cm47XG4gICAgdmFyIGJhY2tlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoYWN0aXZlV2luZG93TG9jYXRpb24pO1xuICAgIHZhciBmcm9udGVuZCA9IHRoaXMud2luZG93cy5zbGljZSgwLCBhY3RpdmVXaW5kb3dMb2NhdGlvbiAtIDEpO1xuICAgIHZhciBzb3J0ZWQgPSBiYWNrZW5kLmNvbmNhdChmcm9udGVuZCk7XG4gICAgdmFyIG5leHRXaW5kb3cgPSB1bmRlZmluZWQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghc29ydGVkW2ldLm1pbmltaXplZCAmJiAhc29ydGVkW2ldLm91dE9mQm91bmRzICYmICFuZXh0V2luZG93KVxuICAgICAgICBuZXh0V2luZG93ID0gc29ydGVkW2ldO1xuICAgIH1cblxuICAgIGlmIChuZXh0V2luZG93KSB7XG4gICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICBuZXh0V2luZG93LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgICAgbmV4dFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5hY3RpdmF0ZVByZXZpb3VzV2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgcHJldmlvdXMgd2luZG93IHRvIGFuIGFjdGl2ZSBzdGF0ZVxuICAgKlxuICAgKi9cbiAgYWN0aXZhdGVQcmV2aW91c1dpbmRvdyA9IChhY3RpdmVXaW5kb3dMb2NhdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93cy5sZW5ndGggPD0gMSkgcmV0dXJuO1xuICAgIHZhciBiYWNrZW5kID0gdGhpcy53aW5kb3dzLnNsaWNlKGFjdGl2ZVdpbmRvd0xvY2F0aW9uKTtcbiAgICB2YXIgZnJvbnRlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoMCwgYWN0aXZlV2luZG93TG9jYXRpb24gLSAxKTtcbiAgICB2YXIgc29ydGVkID0gYmFja2VuZC5jb25jYXQoZnJvbnRlbmQpO1xuICAgIHZhciBuZXh0V2luZG93ID0gdW5kZWZpbmVkO1xuICAgIGZvciAodmFyIGkgPSBzb3J0ZWQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmICghc29ydGVkW2ldLm1pbmltaXplZCAmJiAhc29ydGVkW2ldLm91dE9mQm91bmRzICYmICFuZXh0V2luZG93KVxuICAgICAgICBuZXh0V2luZG93ID0gc29ydGVkW2ldO1xuICAgIH1cblxuICAgIGlmIChuZXh0V2luZG93KSB7XG4gICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICBuZXh0V2luZG93LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgICAgbmV4dFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5taW5pbWl6ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWaXN1YWxseSByZW1vdmVzIHdpbmRvdyBmcm9tIHRoZSB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1pbmltaXplID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgdGhpcy5zYXZlUG9zaXRpb24od2luZG93KTtcblxuICAgIHdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICB3aW5kb3cubWluaW1pemVkID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5tYXhpbWl6ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQb3NpdGlvbnMgd2luZG93IHN1Y2ggdGhhdCBpdCBmaWxscyB0aGUgd2hvbGUgdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtYXhpbWl6ZSA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHdpbmRvdy50b3AgPSAwO1xuICAgIHdpbmRvdy5sZWZ0ID0gMDtcbiAgICB3aW5kb3cucmlnaHQgPSAwO1xuICAgIHdpbmRvdy5ib3R0b20gPSAwO1xuICAgIHdpbmRvdy5oZWlnaHQgPSAnYXV0byc7XG4gICAgd2luZG93LndpZHRoID0gJzEwMCUnO1xuICAgIHdpbmRvdy5tYXhpbWl6ZWQgPSAnZmlsbCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWF4aW1pemVMZWZ0XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBvc2l0aW9ucyB3aW5kb3cgc3VjaCB0aGF0IGl0IGZpbGxzIHRoZSBsZWZ0IHBvcnRpb24gdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICBtYXhpbWl6ZUxlZnQgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cuc3BsaXQgPSB0cnVlO1xuICAgIHdpbmRvdy50b3AgPSAwO1xuICAgIHdpbmRvdy5sZWZ0ID0gMDtcbiAgICB3aW5kb3cuYm90dG9tID0gMDtcbiAgICB3aW5kb3cud2lkdGggPSAnNTAlJztcbiAgICB3aW5kb3cuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIHdpbmRvdy5tYXhpbWl6ZWQgPSAnbGVmdCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQubWF4aW1pemVSaWdodFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQb3NpdGlvbnMgd2luZG93IHN1Y2ggdGhhdCBpdCBmaWxscyB0aGUgcmlnaHQgcG9ydGlvbiB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1heGltaXplUmlnaHQgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cudG9wID0gMDtcbiAgICB3aW5kb3cubGVmdCA9ICc1MCUnO1xuICAgIHdpbmRvdy5yaWdodCA9IDA7XG4gICAgd2luZG93LmJvdHRvbSA9IDA7XG4gICAgd2luZG93LndpZHRoID0gJzUwJSc7XG4gICAgd2luZG93LmhlaWdodCA9ICdhdXRvJztcbiAgICB3aW5kb3cubWF4aW1pemVkID0gJ3JpZ2h0JztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5yZWNvdmVyXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJyaW5ncyB3aW5kb3cgYmFjayBpbnRvIHZpZXcgd2hlbiBpdCBoYXMgZXNjYXBlZCB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqL1xuICByZWNvdmVyID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgd2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgd2luZG93Lm91dE9mQm91bmRzID0gZmFsc2U7XG4gICAgd2luZG93Lm1pbmltaXplZCA9IGZhbHNlO1xuICAgIHdpbmRvdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgICB0aGlzLmNhc2NhZGVXaW5kb3cod2luZG93KTtcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgdGhpcy5hY3RpdmF0ZUZvcmVtb3N0V2luZG93KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQucmVzdG9yZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgcmVzdG9yZSA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIGlmICh3ZHcubWF4aW1pemVkID09PSAnZmlsbCcpIHtcbiAgICAgIHRoaXMubWF4aW1pemUod2R3KTtcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdsZWZ0Jykge1xuICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQod2R3KTtcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMubWF4aW1pemVSaWdodCh3ZHcpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVdpbmRvd1N0YXRlKHdkdyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYnJpbmdUb0Zyb250XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICB1cGRhdGVXaW5kb3dTdGF0ZSA9ICh3ZHc6IGFueSkgPT4ge1xyXG4gICAgaWYgKHdkdy5vdXRPZkJvdW5kcykge1xyXG4gICAgICB0aGlzLnJlY292ZXIod2R3KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3ZHcubWF4aW1pemVkID09PSAnZmlsbCcpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZSh3ZHcpO1xyXG4gICAgfSBlbHNlIGlmICh3ZHcubWF4aW1pemVkID09PSAnbGVmdCcpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZUxlZnQod2R3KTtcclxuICAgIH0gZWxzZSBpZiAod2R3Lm1heGltaXplZCA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICB0aGlzLm1heGltaXplUmlnaHQod2R3KTtcclxuICAgIH1cclxuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcclxuICAgIHdkdy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgd2R3Lm1pbmltaXplZCA9IGZhbHNlO1xyXG4gICAgd2R3LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xyXG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQucmVzdG9yZVNhdmVkUG9zaXRpb25cbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSB3aW5kb3dzIGxhc3Qga25vdyBwb3NpdGlvbiB0byB0aGUgY3VycmVudCBwb3NpdGlvbi5cbiAgICpcbiAgICovXG4gIHJlc3RvcmVTYXZlZFBvc2l0aW9uID0gKHdkdzogYW55KSA9PiB7XG4gICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgIHdkdy50b3AgPSB3ZHcuc2F2ZWRQb3NpdGlvbi50b3A7XG4gICAgd2R3LmxlZnQgPSB3ZHcuc2F2ZWRQb3NpdGlvbi5sZWZ0O1xuICAgIHdkdy5yaWdodCA9IHdkdy5zYXZlZFBvc2l0aW9uLnJpZ2h0O1xuICAgIHdkdy5ib3R0b20gPSB3ZHcuc2F2ZWRQb3NpdGlvbi5ib3R0b207XG4gICAgd2R3LmhlaWdodCA9IHdkdy5zYXZlZFBvc2l0aW9uLmhlaWdodDtcbiAgICB3ZHcud2lkdGggPSB3ZHcuc2F2ZWRQb3NpdGlvbi53aWR0aDtcbiAgICB3ZHcubWF4aW1pemVkID0gdW5kZWZpbmVkO1xuICAgIHdkdy5taW5pbWl6ZWQgPSB1bmRlZmluZWQ7XG4gICAgd2R3LmFjdGl2ZSA9IHRydWU7XG4gICAgd2R3Lm1pbmltaXplZCA9IGZhbHNlO1xuICAgIHdkdy56SW5kZXggPSB0aGlzLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5zYXZlUG9zaXRpb25cbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2F2ZSB0aGUgd2luZG93cyBsYXN0IGtub3cgcG9zaXRpb24uXG4gICAqXG4gICAqL1xuICBzYXZlUG9zaXRpb24gPSAod2R3OiBhbnkpID0+IHtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi50b3AgPSB3ZHcudG9wO1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLmxlZnQgPSB3ZHcubGVmdDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5yaWdodCA9IHdkdy5yaWdodDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi5ib3R0b20gPSB3ZHcuYm90dG9tO1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLmhlaWdodCA9IHdkdy5oZWlnaHQ7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24ud2lkdGggPSB3ZHcud2lkdGg7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY2xvc2VXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTW92ZXMgYSB3aW5kb3cgdG8gdGhlIG5leHQgY2FzY2FkZSBwb3NpdGlvbi5cbiAgICpcbiAgICovXG4gIGNhc2NhZGVXaW5kb3cgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5lbmFibGVXaW5kb3dDYXNjYWRpbmcgfHwgd2luZG93LmlzTW9kYWwpIHJldHVybjtcbiAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wICs9IDEwO1xuICAgIHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ICs9IDEwO1xuICAgIGlmICh0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wID4gdGhpcy5tYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24pXG4gICAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24udG9wID0gdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb247XG4gICAgaWYgKHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ID4gdGhpcy5tYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24pXG4gICAgICB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24ubGVmdCA9IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uO1xuXG4gICAgd2luZG93LnRvcCA9IHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi50b3AgKyAncHgnO1xuICAgIHdpbmRvdy5sZWZ0ID0gdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLmxlZnQgKyAncHgnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldEtleUNvZGVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIGdldEtleVNlcXVlbmNlID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGlmIChldmVudC5zaGlmdEtleSkga2V5cy5wdXNoKCdzaGlmdCcpO1xuICAgIGlmIChldmVudC5jdHJsS2V5KSBrZXlzLnB1c2goJ2N0cmwnKTtcbiAgICBpZiAoZXZlbnQuYWx0S2V5KSBrZXlzLnB1c2goJ2FsdCcpO1xuICAgIGlmIChldmVudC5tZXRhS2V5KSBrZXlzLnB1c2goJ21ldGEnKTtcblxuICAgIHZhciBrZXlDb2RlID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaDtcbiAgICBpZiAoa2V5Q29kZSkga2V5cy5wdXNoKHRoaXMua2V5Ym9hcmRNYXBba2V5Q29kZV0udG9Mb3dlckNhc2UoKSk7XG5cbiAgICByZXR1cm4ga2V5cy5qb2luKCcrJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGV2ZW50XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICBvbktleURvd24gPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIHZhciBrZXlTZXF1ZW5jZSA9IHRoaXMuZ2V0S2V5U2VxdWVuY2UoZXZlbnQpO1xuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCttJykgeyAvL01heGltaXplXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmIChhY3RpdmVXaW5kb3cgPT09IG51bGwpIHJldHVybjtcbiAgICAgIGlmICghYWN0aXZlV2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLnNhdmVQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgICB0aGlzLm1heGltaXplKGFjdGl2ZVdpbmRvdyk7XG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVdpbmRvdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcgfHwgYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ2xlZnQnKVxuICAgICAgICB0aGlzLm1heGltaXplKGFjdGl2ZVdpbmRvdyk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMucmVzdG9yZVNhdmVkUG9zaXRpb24oYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtuJykgeyAvL01pbmltaXplXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmIChhY3RpdmVXaW5kb3cgPT09IG51bGwgfHwgYWN0aXZlV2luZG93Lm1pbmltaXplZCkgcmV0dXJuO1xuICAgICAgdGhpcy5taW5pbWl6ZShhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3cnKSB7IC8vQ3ljbGVzIEZvcndhcmRcbiAgICAgIHZhciBpbmRleCA9IHRoaXMud2luZG93cy5pbmRleE9mKHRoaXMuZ2V0QWN0aXZlV2luZG93KCkpO1xuICAgICAgdGhpcy5hY3RpdmF0ZU5leHRXaW5kb3coaW5kZXggKyAxKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ3NoaWZ0K2FsdCt3JykgeyAvL0N5Y2xlcyBCYWNrd2FyZFxuICAgICAgdmFyIGluZGV4ID0gdGhpcy53aW5kb3dzLmluZGV4T2YodGhpcy5nZXRBY3RpdmVXaW5kb3coKSk7XG4gICAgICB0aGlzLmFjdGl2YXRlUHJldmlvdXNXaW5kb3coaW5kZXggKyAxKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ3NoaWZ0K2FsdCt4JyAmJiAhKHRoaXMuc2hpZnRQcmVzc2VkICYmIHRoaXMuYWx0UHJlc3NlZCAmJiB0aGlzLnhQcmVzc2VkKSkgeyAvL0Nsb3NlXG4gICAgICB2YXIgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcbiAgICAgIGlmICghYWN0aXZlV2luZG93KSByZXR1cm47XG4gICAgICB0aGlzLmNsb3NlV2luZG93KGFjdGl2ZVdpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrZCcpIHsgLy9Ub2dnbGUgRGVza3RvcFxuICAgICAgLy90aGlzLmRlc2t0b3BTaG93biA9IHRoaXMuaGlkZVNob3dBbGwoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KVxuICAgICAgdGhpcy5zaGlmdFByZXNzZWQgPSB0cnVlO1xuICAgIGlmIChldmVudC5hbHRLZXkpXG4gICAgICB0aGlzLmFsdFByZXNzZWQgPSB0cnVlO1xuICAgIGlmIChldmVudC5rZXlDb2RlID09PSA4OClcbiAgICAgIHRoaXMueFByZXNzZWQgPSB0cnVlO1xuICB9XG5cbiAgb25LZXlVcCA9IChldmVudDogYW55KSA9PiB7XG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KVxuICAgICAgdGhpcy5zaGlmdFByZXNzZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQuYWx0S2V5KVxuICAgICAgdGhpcy5hbHRQcmVzc2VkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDg4KVxuICAgICAgdGhpcy54UHJlc3NlZCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuaGFuZGxlU2VsZWN0QXR0ZW1wdFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcmV2ZW50cyB0aGUgdXNlciBmcm9tIGhpZ2hsaWdodCBkZXNrdG9wIGVsZW1lbnRzLlxuICAgKlxuICAgKi9cbiAgaGFuZGxlU2VsZWN0QXR0ZW1wdCA9IChlOiBhbnkpID0+IHtcbiAgICB2YXIgbm9kZU5hbWUgPSBlLnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0JyB8fCBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJyB8fCBub2RlTmFtZSA9PT0gJ3NlbGVjdCcpIHJldHVybiB0cnVlO1xuICAgIGlmICh3aW5kb3cuZXZlbnQpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB3aW5kb3dzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZ29VcmwgPSB0aGlzLm9wdGlvbnMubG9nb1VybDtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZXNrdG9wLm9wdGlvbnMsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB0aGlzLm9wdGlvbnMudmlld3BvcnRUb3AgPSB0aGlzLm9wdGlvbnMubWVudWJhckNvbmZpZyAhPT0gdW5kZWZpbmVkID8gdGhpcy5vcHRpb25zLm1lbnViYXJIZWlnaHQgKyAxIDogMDtcclxuICAgIHRoaXMudHJ1V2luZG93RXZlbnRIYW5kbGVyLm9uT3BlbigpLnN1YnNjcmliZSgod2luZGlvd0V2ZW50OiBUcnVXaW5kb3dFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5XaW5kb3cod2luZGlvd0V2ZW50LCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgPSB0aGlzLmhhbmRsZVNlbGVjdEF0dGVtcHQ7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd24pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdyYXBwZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3AtbWVudWJhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IG9wdGlvbnMubWVudWJhckhlaWdodCArICdweCd9XCI+XHJcbiAgICA8dHJ1LWRlc2t0b3AtbWVudWJhciBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtbWVudWJhcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHRydS1kZXNrdG9wLXZpZXdwb3J0IFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3Atdmlld3BvcnQ+XHJcblxyXG4gIDx0cnUtZGVza3RvcC10YXNrYmFyIFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtdGFza2Jhcj5cclxuXHJcbiAgPGltZyBjbGFzcz1cImRlc2t0b3Atdmlld3BvcnQtbG9nb1wiIGRhdGEtbmctc2hvdz1cImxvZ29VcmxcIiBhbHQ9XCJcIj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
703
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC90cnUtZGVza3RvcC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBUW5FLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQ1UsY0FBaUMsRUFDakMscUJBQTRDO1FBRDVDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBR3RELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLDZCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUM5Qiw2QkFBd0IsR0FBRyxHQUFHLENBQUM7UUFDL0IsOEJBQXlCLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUN4RyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFP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bXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRBcmdzIH0gZnJvbSAnLi9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWFyZ3MnO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEhhbmRsZXIgfSBmcm9tICcuL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XG5pbXBvcnQgeyBUcnVEZXNrdG9wU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJ1LWRlc2t0b3Atc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RydS1kZXNrdG9wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXNrdG9wLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cnUtZGVza3RvcC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJ1RGVza3RvcFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3AgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvcHRpb25zOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkZXNrdG9wU2VydmljZTogVHJ1RGVza3RvcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cnVXaW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcikge1xuICB9XHJcblxuICBtaW5pbWl6ZUFsbCA9IGZhbHNlO1xuICBkZXNrdG9wID0gdGhpcy5kZXNrdG9wU2VydmljZS5jcmVhdGVEZXNrdG9wKCk7XG4gIG1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbiA9IDQwO1xuICBtYXhXaW5kb3dDYXNjYWRlUG9zaXRpb24gPSAxMDA7XG4gIGxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24gPSB7IHRvcDogdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb24sIGxlZnQ6IHRoaXMubWluV2luZG93Q2FzY2FkZVBvc2l0aW9uIH07XG4gIHNoaWZ0UHJlc3NlZCA9IGZhbHNlO1xuICBhbHRQcmVzc2VkID0gZmFsc2U7XG4gIHhQcmVzc2VkID0gZmFsc2U7XG4gIGtleWJvYXJkTWFwID0gW1wiXCIsIFwiXCIsIFwiXCIsIFwiQ0FOQ0VMXCIsIFwiXCIsIFwiXCIsIFwiSEVMUFwiLCBcIlwiLCBcIkJBQ0tfU1BBQ0VcIiwgXCJUQUJcIiwgXCJcIiwgXCJcIiwgXCJDTEVBUlwiLCBcIkVOVEVSXCIsIFwiUkVUVVJOXCIsIFwiXCIsIFwiU0hJRlRcIiwgXCJDT05UUk9MXCIsIFwiQUxUXCIsIFwiUEFVU0VcIiwgXCJDQVBTX0xPQ0tcIiwgXCJLQU5BXCIsIFwiRUlTVVwiLCBcIkpVTkpBXCIsIFwiRklOQUxcIiwgXCJIQU5KQVwiLCBcIlwiLCBcIkVTQ0FQRVwiLCBcIkNPTlZFUlRcIiwgXCJOT05DT05WRVJUXCIsIFwiQUNDRVBUXCIsIFwiTU9ERUNIQU5HRVwiLCBcIlNQQUNFXCIsIFwiUEFHRV9VUFwiLCBcIlBBR0VfRE9XTlwiLCBcIkVORFwiLCBcIkhPTUVcIiwgXCJMRUZUXCIsIFwiVVBcIiwgXCJSSUdIVFwiLCBcIkRPV05cIiwgXCJTRUxFQ1RcIiwgXCJQUklOVFwiLCBcIkVYRUNVVEVcIiwgXCJQUklOVFNDUkVFTlwiLCBcIklOU0VSVFwiLCBcIkRFTEVURVwiLCBcIlwiLCBcIjBcIiwgXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCJDT0xPTlwiLCBcIlNFTUlDT0xPTlwiLCBcIkxFU1NfVEhBTlwiLCBcIkVRVUFMU1wiLCBcIkdSRUFURVJfVEhBTlwiLCBcIlFVRVNUSU9OX01BUktcIiwgXCJBVFwiLCBcIkFcIiwgXCJCXCIsIFwiQ1wiLCBcIkRcIiwgXCJFXCIsIFwiRlwiLCBcIkdcIiwgXCJIXCIsIFwiSVwiLCBcIkpcIiwgXCJLXCIsIFwiTFwiLCBcIk1cIiwgXCJOXCIsIFwiT1wiLCBcIlBcIiwgXCJRXCIsIFwiUlwiLCBcIlNcIiwgXCJUXCIsIFwiVVwiLCBcIlZcIiwgXCJXXCIsIFwiWFwiLCBcIllcIiwgXCJaXCIsIFwiV0lOXCIsIFwiXCIsIFwiQ09OVEVYVF9NRU5VXCIsIFwiXCIsIFwiU0xFRVBcIiwgXCJOVU1QQUQwXCIsIFwiTlVNUEFEMVwiLCBcIk5VTVBBRDJcIiwgXCJOVU1QQUQzXCIsIFwiTlVNUEFENFwiLCBcIk5VTVBBRDVcIiwgXCJOVU1QQUQ2XCIsIFwiTlVNUEFEN1wiLCBcIk5VTVBBRDhcIiwgXCJOVU1QQUQ5XCIsIFwiTVVMVElQTFlcIiwgXCJBRERcIiwgXCJTRVBBUkFUT1JcIiwgXCJTVUJUUkFDVFwiLCBcIkRFQ0lNQUxcIiwgXCJESVZJREVcIiwgXCJGMVwiLCBcIkYyXCIsIFwiRjNcIiwgXCJGNFwiLCBcIkY1XCIsIFwiRjZcIiwgXCJGN1wiLCBcIkY4XCIsIFwiRjlcIiwgXCJGMTBcIiwgXCJGMTFcIiwgXCJGMTJcIiwgXCJGMTNcIiwgXCJGMTRcIiwgXCJGMTVcIiwgXCJGMTZcIiwgXCJGMTdcIiwgXCJGMThcIiwgXCJGMTlcIiwgXCJGMjBcIiwgXCJGMjFcIiwgXCJGMjJcIiwgXCJGMjNcIiwgXCJGMjRcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJOVU1fTE9DS1wiLCBcIlNDUk9MTF9MT0NLXCIsIFwiV0lOX09FTV9GSl9KSVNIT1wiLCBcIldJTl9PRU1fRkpfTUFTU0hPVVwiLCBcIldJTl9PRU1fRkpfVE9VUk9LVVwiLCBcIldJTl9PRU1fRkpfTE9ZQVwiLCBcIldJTl9PRU1fRkpfUk9ZQVwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIlwiLCBcIkNJUkNVTUZMRVhcIiwgXCJFWENMQU1BVElPTlwiLCBcIkRPVUJMRV9RVU9URVwiLCBcIkhBU0hcIiwgXCJET0xMQVJcIiwgXCJQRVJDRU5UXCIsIFwiQU1QRVJTQU5EXCIsIFwiVU5ERVJTQ09SRVwiLCBcIk9QRU5fUEFSRU5cIiwgXCJDTE9TRV9QQVJFTlwiLCBcIkFTVEVSSVNLXCIsIFwiUExVU1wiLCBcIlBJUEVcIiwgXCJIWVBIRU5fTUlOVVNcIiwgXCJPUEVOX0NVUkxZX0JSQUNLRVRcIiwgXCJDTE9TRV9DVVJMWV9CUkFDS0VUXCIsIFwiVElMREVcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJWT0xVTUVfTVVURVwiLCBcIlZPTFVNRV9ET1dOXCIsIFwiVk9MVU1FX1VQXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiXCIsIFwiQ09NTUFcIiwgXCJcIiwgXCJQRVJJT0RcIiwgXCJTTEFTSFwiLCBcIkJBQ0tfUVVPVEVcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgXCJPUEVOX0JSQUNLRVRcIiwgXCJCQUNLX1NMQVNIXCIsIFwiQ0xPU0VfQlJBQ0tFVFwiLCBcIlFVT1RFXCIsIFwiXCIsIFwiTUVUQVwiLCBcIkFMVEdSXCIsIFwiXCIsIFwiV0lOX0lDT19IRUxQXCIsIFwiV0lOX0lDT18wMFwiLCBcIlwiLCBcIldJTl9JQ09fQ0xFQVJcIiwgXCJcIiwgXCJcIiwgXCJXSU5fT0VNX1JFU0VUXCIsIFwiV0lOX09FTV9KVU1QXCIsIFwiV0lOX09FTV9QQTFcIiwgXCJXSU5fT0VNX1BBMlwiLCBcIldJTl9PRU1fUEEzXCIsIFwiV0lOX09FTV9XU0NUUkxcIiwgXCJXSU5fT0VNX0NVU0VMXCIsIFwiV0lOX09FTV9BVFROXCIsIFwiV0lOX09FTV9GSU5JU0hcIiwgXCJXSU5fT0VNX0NPUFlcIiwgXCJXSU5fT0VNX0FVVE9cIiwgXCJXSU5fT0VNX0VOTFdcIiwgXCJXSU5fT0VNX0JBQ0tUQUJcIiwgXCJBVFROXCIsIFwiQ1JTRUxcIiwgXCJFWFNFTFwiLCBcIkVSRU9GXCIsIFwiUExBWVwiLCBcIlpPT01cIiwgXCJcIiwgXCJQQTFcIiwgXCJXSU5fT0VNX0NMRUFSXCIsIFwiXCJdO1xuICBsb2dvVXJsID0gbnVsbDtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXREZXNrdG9wXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybiBhbiBvYmplY3Qgb2YgZGVza3RvcC5cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gZGVza3RvcC5cbiAgICovXG4gIGdldERlc2t0b3AgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGVza3RvcDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRPcHRpb25zXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybiBhbiBvYmplY3Qgb2YgZGVza3RvcCBvcHRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSBvcHRpb25zLlxuICAgKi9cbiAgZ2V0T3B0aW9ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldFdpbmRvd3NcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHdpbmRvd3MuXG4gICAqXG4gICAqIEByZXR1cm5zIHthcnJheX0gd2luZG93cy5cbiAgICovXG4gIGdldFdpbmRvd3MgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93cztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXROZXh0TWF4WkluZGV4XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEl0ZXJhdGVzIHRocm91Z2ggYWxsIHdpbmRvdyBvYmplY3RzIGluIHRoZSB3aW5kb3dzIGFycmF5IHRvIGZpbmQgdGhlIG1heCB6LWluZGV4XG4gICAqIGFuZCBpbmNyZWFzZXMgdGhlIHZhbHVlIGZvdW5kIGJ5IDEuXG4gICAqXG4gICAqIEByZXR1cm5zIHtpbnR9XG4gICAqL1xuICBnZXROZXh0TWF4WkluZGV4ID0gKCkgPT4ge1xuICAgIHZhciBtYXggPSAwO1xuICAgIHZhciB0bXA7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMud2luZG93cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdG1wID0gdGhpcy53aW5kb3dzW2ldLnpJbmRleDtcbiAgICAgIGlmICh0bXAgPiBtYXgpIG1heCA9IHRtcDtcbiAgICB9XG4gICAgcmV0dXJuICsrbWF4O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNsZWFyQWN0aXZlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEl0ZXJhdGVzIHRocm91Z2ggYWxsIHdpbmRvdyBvYmplY3RzIGluIHRoZSB3aW5kb3dzXG4gICAqIGFuZCBzZXRzIHRoZSBhY3RpdmUgcHJvcGVydHkgdG8gZmFsc2UuXG4gICAqXG4gICAqL1xuICBjbGVhckFjdGl2ZSA9ICgpID0+IHtcbiAgICB0aGlzLndpbmRvd3MuZm9yRWFjaCgod2luZG93OiBhbnkpID0+IHtcbiAgICAgIHdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5nZXRBY3RpdmVXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogR2V0cyB0aGUgYWN0aXZlIHdpbmRvdy5cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gdmlldyBvYmplY3QuXG4gICAqL1xuICBnZXRBY3RpdmVXaW5kb3cgPSAoKTogYW55ID0+IHtcbiAgICB2YXIgYWN0aXZlV2luZG93ID0gbnVsbDtcbiAgICB0aGlzLndpbmRvd3MuZm9yRWFjaCgod2R3OiBhbnkpID0+IHtcbiAgICAgIGlmICh3ZHcuYWN0aXZlID09PSB0cnVlKSB7XG4gICAgICAgIGFjdGl2ZVdpbmRvdyA9IHdkdztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWN0aXZlV2luZG93O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmdldEFjdGl2ZVZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogR2V0cyB0aGUgYWN0aXZlIHZpZXcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IHZpZXcgb2JqZWN0LlxuICAgKi9cbiAgZ2V0QWN0aXZlVmlldyA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIHZhciBhY3RpdmVWaWV3ID0gbnVsbDtcbiAgICB3ZHcudmlld3MuZm9yRWFjaCgodmlldzogYW55KSA9PiB7XG4gICAgICBpZiAodmlldy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgICAgYWN0aXZlVmlldyA9IHZpZXc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZVZpZXc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYWxsV2luZG93c0FyZU1pbmltaXplZFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgdG8gZGV0ZXJtaW5lIGlmIGFsbCBhcmUgbWluaW1pemVkLlxuICAgKlxuICAgKi9cbiAgYWxsV2luZG93c0FyZU1pbmltaXplZCA9ICgpID0+IHtcbiAgICB2YXIgYWxsTWluaW1pemVkID0gdHJ1ZTtcbiAgICB0aGlzLndpbmRvd3MuZm9yRWFjaCgod2luZG93OiBhbnkpID0+IHtcbiAgICAgIGlmICghd2luZG93Lm1pbmltaXplZCkge1xuICAgICAgICBhbGxNaW5pbWl6ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWxsTWluaW1pemVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmhpZGVTaG93QWxsXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEhpZGVzL3Nob3dzIGFsbCB3aW5kb3dzXG4gICAqXG4gICAqL1xuICBoaWRlU2hvd0FsbCA9ICgpID0+IHtcbiAgICB0aGlzLm1pbmltaXplQWxsID0gdGhpcy5hbGxXaW5kb3dzQXJlTWluaW1pemVkKCkgPyBmYWxzZSA6ICF0aGlzLm1pbmltaXplQWxsO1xuICAgIHRoaXMud2luZG93cy5mb3JFYWNoKCh3ZHc6IGFueSkgPT4ge1xuICAgICAgaWYgKHdkdy5vdXRPZkJvdW5kcykgdGhpcy5yZWNvdmVyKHdkdyk7XG4gICAgICB3ZHcuYWN0aXZlID0gZmFsc2U7XG4gICAgICB3ZHcubWluaW1pemVkID0gdGhpcy5taW5pbWl6ZUFsbDtcbiAgICB9KTtcbiAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICByZXR1cm4gdGhpcy5taW5pbWl6ZUFsbDtcbiAgfTtcblxuICAvKipcclxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxyXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZmluZFdpbmRvd1ZpZXdEaXJlY3RpdmVcclxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBMb29rcyBmb3IgcHJldmlvdXNseSBvcGVuIHdpbmRvdyB3aXRoIGEgdmlldyBkaXJlY3RpdmVcclxuICAgKlxyXG4gICAqL1xyXG4gIGZpbmRXaW5kb3dWaWV3RGlyZWN0aXZlID0gKHdpbmRvd1ZpZXdEaXJlY3RpdmU6IGFueSkgPT4ge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndpbmRvd3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLndpbmRvd3NbaV0udmlld3MubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAodGhpcy53aW5kb3dzW2ldLnZpZXdzWzBdLnZpZXdEaXJlY3RpdmUgPT09IHdpbmRvd1ZpZXdEaXJlY3RpdmUpXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53aW5kb3dzW2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50Lm9wZW5XaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzcGxheXMgYSBuZXcgd2luZG93LiBBbGwgd2luZG93IHByb3BlcnRpZXMgZGVmaW5lZCBieSB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIHdpbGwgYmVcbiAgICogb3ZlcmxhaWQgaGVyZSBiZWZvcmUgZGlzcGxheWluZyB0aGUgd2luZG93XG4gICAqXG4gICAqL1xuICBvcGVuV2luZG93ID0gKHdpbmRvd0NvbmZpZ092ZXJsYXlzOiBhbnksIHNpbmdsZUluc3RhbmNlOiBhbnkpID0+IHtcbiAgICBsZXQgYWN0aXZlV2luZG93ID0gdGhpcy5nZXRBY3RpdmVXaW5kb3coKTtcclxuICAgIGlmIChhY3RpdmVXaW5kb3cgJiYgYWN0aXZlV2luZG93LmlzTW9kYWwpIHtcclxuICAgICAgYWN0aXZlV2luZG93LmludmFsaWRPcGVyYXRpb24gPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNpbmdsZUluc3RhbmNlKSB7XHJcbiAgICAgIGxldCB3aW5kb3cgPSB0aGlzLmZpbmRXaW5kb3dWaWV3RGlyZWN0aXZlKHdpbmRvd0NvbmZpZ092ZXJsYXlzLnZpZXdzWzBdLnZpZXdEaXJlY3RpdmUpO1xyXG4gICAgICBpZiAod2luZG93KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVXaW5kb3dTdGF0ZSh3aW5kb3cpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3dDb25maWdPdmVybGF5cy5pc01vZGFsKSB7XHJcbiAgICAgIGxldCBoZWlnaHRPZmZzZXQgPSAocGFyc2VJbnQod2luZG93Q29uZmlnT3ZlcmxheXMuaGVpZ2h0LCAxMCkgLyAyKSArIDMwO1xyXG4gICAgICBsZXQgd2lkdGhPZmZzZXQgPSAocGFyc2VJbnQod2luZG93Q29uZmlnT3ZlcmxheXMud2lkdGgsIDEwKSAvIDIpO1xyXG4gICAgICB3aW5kb3dDb25maWdPdmVybGF5cy50b3AgPSAnY2FsYyg1MCUgLSAnICsgaGVpZ2h0T2Zmc2V0ICsgJ3B4ICknO1xyXG4gICAgICB3aW5kb3dDb25maWdPdmVybGF5cy5sZWZ0ID0gJ2NhbGMoNTAlIC0gJyArIHdpZHRoT2Zmc2V0ICsgJ3B4ICknO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcclxuICAgIGxldCBjb25maWd1cmVkV2luZG93ID0gdGhpcy5jb25maWd1cmVXaW5kb3cod2luZG93Q29uZmlnT3ZlcmxheXMpO1xyXG4gICAgY29uZmlndXJlZFdpbmRvdy52aWV3cyA9IHRoaXMuY29uZmlndXJlVmlld3Mod2luZG93Q29uZmlnT3ZlcmxheXMsIGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgaWYgKCFjb25maWd1cmVkV2luZG93LmlzTW9kYWwpIHtcclxuICAgICAgY29uZmlndXJlZFdpbmRvdy5jYXNjYWRlV2luZG93ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2F2ZVBvc2l0aW9uKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgICB0aGlzLm1heGltaXplKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgICB0aGlzLndpbmRvd3MucHVzaChjb25maWd1cmVkV2luZG93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2luZG93cy5wdXNoKGNvbmZpZ3VyZWRXaW5kb3cpO1xyXG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmNvbmZpZ3VyZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDcmVhdGVzIGEgbmV3IHdpbmRvdyBpbnN0YW5jZS5cbiAgICpcbiAgICovXG4gIGNvbmZpZ3VyZVdpbmRvdyA9ICh3aW5kb3dDb25maWdPdmVybGF5czogYW55KSA9PiB7XG4gICAgdmFyIHdpbmRvd0NvbmZpZ0luc3RhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZXNrdG9wLndpbmRvd0NvbmZpZyk7XG4gICAgd2luZG93Q29uZmlnSW5zdGFuY2Uuc2F2ZWRQb3NpdGlvbiA9IE9iamVjdC5jcmVhdGUoeyB0b3A6IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGhlaWdodDogMCwgd2lkdGg6IDAgfSk7XG4gICAgd2luZG93Q29uZmlnSW5zdGFuY2UuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gICAgLy93aW5kb3dDb25maWdJbnN0YW5jZS5nbG9iYWxzID0gT2JqZWN0LmFzc2lnbih7fSwgJHJvb3RTY29wZS4kZXZhbCh0aGlzLm9wdGlvbnMuZ2xvYmFscykpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHdpbmRvd0NvbmZpZ0luc3RhbmNlLCB3aW5kb3dDb25maWdPdmVybGF5cyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuY29uZmlndXJlVmlld3NcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSB2aWV3IGluc3RhbmNlc1xuICAgKlxuICAgKi9cbiAgY29uZmlndXJlVmlld3MgPSAod2luZG93Q29uZmlnT3ZlcmxheXM6IGFueSwgY29uZmlndXJlZFdpbmRvdzogYW55KTogQXJyYXk8YW55PiA9PiB7XG4gICAgbGV0IGNvbmZpZ3VyZWRWaWV3czogQXJyYXk8YW55PiA9IFtdO1xuICAgIHdpbmRvd0NvbmZpZ092ZXJsYXlzLnZpZXdzLmZvckVhY2goKHZpZXc6IGFueSkgPT4ge1xuICAgICAgbGV0IHZpZXdDb25maWdJbnN0YW5jZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVza3RvcC52aWV3Q29uZmlnKTtcbiAgICAgIC8vdmlld0NvbmZpZ0luc3RhbmNlLmdsb2JhbHMgPSB0aGlzLm9wdGlvbnMuZ2xvYmFscztcbiAgICAgIGxldCBjb25maWd1cmVkVmlldyA9IE9iamVjdC5hc3NpZ24odmlld0NvbmZpZ0luc3RhbmNlLCB2aWV3KTtcbiAgICAgIGNvbmZpZ3VyZWRWaWV3LndpbmRvdyA9IGNvbmZpZ3VyZWRXaW5kb3c7XG4gICAgICBjb25maWd1cmVkVmlld3MucHVzaChjb25maWd1cmVkVmlldyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWRWaWV3cztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jbG9zZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmUgYSB3aW5kb3cge29iamVjdH0gZnJvbSB0aGUgd2luZG93cyBhcnJheS5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHJldHVybnMgdHJ1ZSBpZiB3aW5kb3cgd2FzIGNsb3NlZCwgZmFsc2UgaWYgbm90IGNsb3NlZC5cbiAgICovXG4gIGNsb3NlV2luZG93ID0gKHdkdzogYW55KSA9PiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dEaXJ0eUNsb3NlICYmIHdkdy5pc0RpcnR5KSB7XG4gICAgICBhbGVydChcIlVuc2F2ZWQgQ2hhbmdlcy4gU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nIHdpbmRvdy5cIik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYWxsb3dJbnZhbGlkQ2xvc2UgJiYgd2R3LmlzSW52YWxpZCkge1xuICAgICAgYWxlcnQoXCJEYXRhIGlzIGludmFsaWQuIENvcnJlY3QgSW52YWxpZCBkYXRhIGJlZm9yZSBjbG9zaW5nIHdpbmRvdy5cIik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jYW5DbG9zZUZuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuY2FuQ2xvc2VGbih3ZHcpKSB7XG4gICAgICAgIHRoaXMud2luZG93cy5zcGxpY2UodGhpcy53aW5kb3dzLmluZGV4T2Yod2R3KSwgMSk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2luZG93cy5zcGxpY2UodGhpcy53aW5kb3dzLmluZGV4T2Yod2R3KSwgMSk7XG4gICAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYWN0aXZhdGVGb3JlbW9zdFdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgdGhlIGZvcmVtb3N0IHdpbmRvdyB0byBhbiBhY3RpdmUgc3RhdGVcbiAgICpcbiAgICovXG4gIGFjdGl2YXRlRm9yZW1vc3RXaW5kb3cgPSAoKSA9PiB7XG4gICAgdmFyIGZvcmVtb3N0ID0gdW5kZWZpbmVkO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy53aW5kb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoKGZvcmVtb3N0ID09PSB1bmRlZmluZWQgfHwgdGhpcy53aW5kb3dzW2ldLnpJbmRleCA+IGZvcmVtb3N0LnpJbmRleCkgJiYgIXRoaXMud2luZG93c1tpXS5taW5pbWl6ZWQgJiYgIXRoaXMud2luZG93c1tpXS5vdXRPZkJvdW5kcylcbiAgICAgICAgZm9yZW1vc3QgPSB0aGlzLndpbmRvd3NbaV07XG4gICAgfVxuICAgIGlmIChmb3JlbW9zdClcbiAgICAgIGZvcmVtb3N0LmFjdGl2ZSA9IHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuYWN0aXZhdGVOZXh0V2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgbmV4dCB3aW5kb3cgdG8gYW4gYWN0aXZlIHN0YXRlXG4gICAqXG4gICAqL1xuICBhY3RpdmF0ZU5leHRXaW5kb3cgPSAoYWN0aXZlV2luZG93TG9jYXRpb246IGFueSkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvd3MubGVuZ3RoIDw9IDEpIHJldHVybjtcbiAgICB2YXIgYmFja2VuZCA9IHRoaXMud2luZG93cy5zbGljZShhY3RpdmVXaW5kb3dMb2NhdGlvbik7XG4gICAgdmFyIGZyb250ZW5kID0gdGhpcy53aW5kb3dzLnNsaWNlKDAsIGFjdGl2ZVdpbmRvd0xvY2F0aW9uIC0gMSk7XG4gICAgdmFyIHNvcnRlZCA9IGJhY2tlbmQuY29uY2F0KGZyb250ZW5kKTtcbiAgICB2YXIgbmV4dFdpbmRvdyA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFzb3J0ZWRbaV0ubWluaW1pemVkICYmICFzb3J0ZWRbaV0ub3V0T2ZCb3VuZHMgJiYgIW5leHRXaW5kb3cpXG4gICAgICAgIG5leHRXaW5kb3cgPSBzb3J0ZWRbaV07XG4gICAgfVxuXG4gICAgaWYgKG5leHRXaW5kb3cpIHtcbiAgICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICAgIG5leHRXaW5kb3cuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gICAgICBuZXh0V2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LmFjdGl2YXRlUHJldmlvdXNXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSBwcmV2aW91cyB3aW5kb3cgdG8gYW4gYWN0aXZlIHN0YXRlXG4gICAqXG4gICAqL1xuICBhY3RpdmF0ZVByZXZpb3VzV2luZG93ID0gKGFjdGl2ZVdpbmRvd0xvY2F0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3dzLmxlbmd0aCA8PSAxKSByZXR1cm47XG4gICAgdmFyIGJhY2tlbmQgPSB0aGlzLndpbmRvd3Muc2xpY2UoYWN0aXZlV2luZG93TG9jYXRpb24pO1xuICAgIHZhciBmcm9udGVuZCA9IHRoaXMud2luZG93cy5zbGljZSgwLCBhY3RpdmVXaW5kb3dMb2NhdGlvbiAtIDEpO1xuICAgIHZhciBzb3J0ZWQgPSBiYWNrZW5kLmNvbmNhdChmcm9udGVuZCk7XG4gICAgdmFyIG5leHRXaW5kb3cgPSB1bmRlZmluZWQ7XG4gICAgZm9yICh2YXIgaSA9IHNvcnRlZC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKCFzb3J0ZWRbaV0ubWluaW1pemVkICYmICFzb3J0ZWRbaV0ub3V0T2ZCb3VuZHMgJiYgIW5leHRXaW5kb3cpXG4gICAgICAgIG5leHRXaW5kb3cgPSBzb3J0ZWRbaV07XG4gICAgfVxuXG4gICAgaWYgKG5leHRXaW5kb3cpIHtcbiAgICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICAgIG5leHRXaW5kb3cuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XG4gICAgICBuZXh0V2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50Lm1pbmltaXplXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFZpc3VhbGx5IHJlbW92ZXMgd2luZG93IGZyb20gdGhlIHZpZXdwb3J0LlxuICAgKlxuICAgKi9cbiAgbWluaW1pemUgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB0aGlzLnNhdmVQb3NpdGlvbih3aW5kb3cpO1xuXG4gICAgd2luZG93LmFjdGl2ZSA9IGZhbHNlO1xuICAgIHdpbmRvdy5taW5pbWl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50Lm1heGltaXplXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBvc2l0aW9ucyB3aW5kb3cgc3VjaCB0aGF0IGl0IGZpbGxzIHRoZSB3aG9sZSB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1heGltaXplID0gKHdpbmRvdzogYW55KSA9PiB7XG4gICAgd2luZG93LnRvcCA9IDA7XG4gICAgd2luZG93LmxlZnQgPSAwO1xuICAgIHdpbmRvdy5yaWdodCA9IDA7XG4gICAgd2luZG93LmJvdHRvbSA9IDA7XG4gICAgd2luZG93LmhlaWdodCA9ICdhdXRvJztcbiAgICB3aW5kb3cud2lkdGggPSAnMTAwJSc7XG4gICAgd2luZG93Lm1heGltaXplZCA9ICdmaWxsJztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5tYXhpbWl6ZUxlZnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUG9zaXRpb25zIHdpbmRvdyBzdWNoIHRoYXQgaXQgZmlsbHMgdGhlIGxlZnQgcG9ydGlvbiB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIG1heGltaXplTGVmdCA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHdpbmRvdy5zcGxpdCA9IHRydWU7XG4gICAgd2luZG93LnRvcCA9IDA7XG4gICAgd2luZG93LmxlZnQgPSAwO1xuICAgIHdpbmRvdy5ib3R0b20gPSAwO1xuICAgIHdpbmRvdy53aWR0aCA9ICc1MCUnO1xuICAgIHdpbmRvdy5oZWlnaHQgPSAnYXV0byc7XG4gICAgd2luZG93Lm1heGltaXplZCA9ICdsZWZ0JztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5tYXhpbWl6ZVJpZ2h0XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBvc2l0aW9ucyB3aW5kb3cgc3VjaCB0aGF0IGl0IGZpbGxzIHRoZSByaWdodCBwb3J0aW9uIHZpZXdwb3J0LlxuICAgKlxuICAgKi9cbiAgbWF4aW1pemVSaWdodCA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIHdpbmRvdy50b3AgPSAwO1xuICAgIHdpbmRvdy5sZWZ0ID0gJzUwJSc7XG4gICAgd2luZG93LnJpZ2h0ID0gMDtcbiAgICB3aW5kb3cuYm90dG9tID0gMDtcbiAgICB3aW5kb3cud2lkdGggPSAnNTAlJztcbiAgICB3aW5kb3cuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIHdpbmRvdy5tYXhpbWl6ZWQgPSAncmlnaHQnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LnJlY292ZXJcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQnJpbmdzIHdpbmRvdyBiYWNrIGludG8gdmlldyB3aGVuIGl0IGhhcyBlc2NhcGVkIHRoZSB2aWV3cG9ydC5cbiAgICpcbiAgICovXG4gIHJlY292ZXIgPSAod2luZG93OiBhbnkpID0+IHtcbiAgICB3aW5kb3cuYWN0aXZlID0gdHJ1ZTtcbiAgICB3aW5kb3cub3V0T2ZCb3VuZHMgPSBmYWxzZTtcbiAgICB3aW5kb3cubWluaW1pemVkID0gZmFsc2U7XG4gICAgd2luZG93LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICAgIHRoaXMuY2FzY2FkZVdpbmRvdyh3aW5kb3cpO1xuICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICB0aGlzLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5yZXN0b3JlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICByZXN0b3JlID0gKHdkdzogYW55KSA9PiB7XG4gICAgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdmaWxsJykge1xuICAgICAgdGhpcy5tYXhpbWl6ZSh3ZHcpO1xuICAgIH0gZWxzZSBpZiAod2R3Lm1heGltaXplZCA9PT0gJ2xlZnQnKSB7XG4gICAgICB0aGlzLm1heGltaXplTGVmdCh3ZHcpO1xuICAgIH0gZWxzZSBpZiAod2R3Lm1heGltaXplZCA9PT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5tYXhpbWl6ZVJpZ2h0KHdkdyk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlV2luZG93U3RhdGUod2R3KTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5icmluZ1RvRnJvbnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIHVwZGF0ZVdpbmRvd1N0YXRlID0gKHdkdzogYW55KSA9PiB7XHJcbiAgICBpZiAod2R3Lm91dE9mQm91bmRzKSB7XHJcbiAgICAgIHRoaXMucmVjb3Zlcih3ZHcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdmaWxsJykge1xyXG4gICAgICB0aGlzLm1heGltaXplKHdkdyk7XHJcbiAgICB9IGVsc2UgaWYgKHdkdy5tYXhpbWl6ZWQgPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLm1heGltaXplTGVmdCh3ZHcpO1xyXG4gICAgfSBlbHNlIGlmICh3ZHcubWF4aW1pemVkID09PSAncmlnaHQnKSB7XHJcbiAgICAgIHRoaXMubWF4aW1pemVSaWdodCh3ZHcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgd2R3LmFjdGl2ZSA9IHRydWU7XHJcbiAgICB3ZHcubWluaW1pemVkID0gZmFsc2U7XHJcbiAgICB3ZHcuekluZGV4ID0gdGhpcy5nZXROZXh0TWF4WkluZGV4KCk7XHJcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5yZXN0b3JlU2F2ZWRQb3NpdGlvblxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgdGhlIHdpbmRvd3MgbGFzdCBrbm93IHBvc2l0aW9uIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuICAgKlxuICAgKi9cbiAgcmVzdG9yZVNhdmVkUG9zaXRpb24gPSAod2R3OiBhbnkpID0+IHtcbiAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgd2R3LnRvcCA9IHdkdy5zYXZlZFBvc2l0aW9uLnRvcDtcbiAgICB3ZHcubGVmdCA9IHdkdy5zYXZlZFBvc2l0aW9uLmxlZnQ7XG4gICAgd2R3LnJpZ2h0ID0gd2R3LnNhdmVkUG9zaXRpb24ucmlnaHQ7XG4gICAgd2R3LmJvdHRvbSA9IHdkdy5zYXZlZFBvc2l0aW9uLmJvdHRvbTtcbiAgICB3ZHcuaGVpZ2h0ID0gd2R3LnNhdmVkUG9zaXRpb24uaGVpZ2h0O1xuICAgIHdkdy53aWR0aCA9IHdkdy5zYXZlZFBvc2l0aW9uLndpZHRoO1xuICAgIHdkdy5tYXhpbWl6ZWQgPSB1bmRlZmluZWQ7XG4gICAgd2R3Lm1pbmltaXplZCA9IHVuZGVmaW5lZDtcbiAgICB3ZHcuYWN0aXZlID0gdHJ1ZTtcbiAgICB3ZHcubWluaW1pemVkID0gZmFsc2U7XG4gICAgd2R3LnpJbmRleCA9IHRoaXMuZ2V0TmV4dE1heFpJbmRleCgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wQ29tcG9uZW50LnNhdmVQb3NpdGlvblxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTYXZlIHRoZSB3aW5kb3dzIGxhc3Qga25vdyBwb3NpdGlvbi5cbiAgICpcbiAgICovXG4gIHNhdmVQb3NpdGlvbiA9ICh3ZHc6IGFueSkgPT4ge1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLnRvcCA9IHdkdy50b3A7XG4gICAgd2R3LnNhdmVkUG9zaXRpb24ubGVmdCA9IHdkdy5sZWZ0O1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLnJpZ2h0ID0gd2R3LnJpZ2h0O1xuICAgIHdkdy5zYXZlZFBvc2l0aW9uLmJvdHRvbSA9IHdkdy5ib3R0b207XG4gICAgd2R3LnNhdmVkUG9zaXRpb24uaGVpZ2h0ID0gd2R3LmhlaWdodDtcbiAgICB3ZHcuc2F2ZWRQb3NpdGlvbi53aWR0aCA9IHdkdy53aWR0aDtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5jbG9zZVdpbmRvd1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNb3ZlcyBhIHdpbmRvdyB0byB0aGUgbmV4dCBjYXNjYWRlIHBvc2l0aW9uLlxuICAgKlxuICAgKi9cbiAgY2FzY2FkZVdpbmRvdyA9ICh3aW5kb3c6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmVuYWJsZVdpbmRvd0Nhc2NhZGluZyB8fCB3aW5kb3cuaXNNb2RhbCkgcmV0dXJuO1xuICAgIHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi50b3AgKz0gMTA7XG4gICAgdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLmxlZnQgKz0gMTA7XG4gICAgaWYgKHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi50b3AgPiB0aGlzLm1heFdpbmRvd0Nhc2NhZGVQb3NpdGlvbilcbiAgICAgIHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi50b3AgPSB0aGlzLm1pbldpbmRvd0Nhc2NhZGVQb3NpdGlvbjtcbiAgICBpZiAodGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLmxlZnQgPiB0aGlzLm1heFdpbmRvd0Nhc2NhZGVQb3NpdGlvbilcbiAgICAgIHRoaXMubGFzdFdpbmRvd0Nhc2NhZGVQb3NpdGlvbi5sZWZ0ID0gdGhpcy5taW5XaW5kb3dDYXNjYWRlUG9zaXRpb247XG5cbiAgICB3aW5kb3cudG9wID0gdGhpcy5sYXN0V2luZG93Q2FzY2FkZVBvc2l0aW9uLnRvcCArICdweCc7XG4gICAgd2luZG93LmxlZnQgPSB0aGlzLmxhc3RXaW5kb3dDYXNjYWRlUG9zaXRpb24ubGVmdCArICdweCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BDb21wb25lbnQuZ2V0S2V5Q29kZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgZ2V0S2V5U2VxdWVuY2UgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIHZhciBrZXlzID0gW107XG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSBrZXlzLnB1c2goJ3NoaWZ0Jyk7XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIGtleXMucHVzaCgnY3RybCcpO1xuICAgIGlmIChldmVudC5hbHRLZXkpIGtleXMucHVzaCgnYWx0Jyk7XG4gICAgaWYgKGV2ZW50Lm1ldGFLZXkpIGtleXMucHVzaCgnbWV0YScpO1xuXG4gICAgdmFyIGtleUNvZGUgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoO1xuICAgIGlmIChrZXlDb2RlKSBrZXlzLnB1c2godGhpcy5rZXlib2FyZE1hcFtrZXlDb2RlXS50b0xvd2VyQ2FzZSgpKTtcblxuICAgIHJldHVybiBrZXlzLmpvaW4oJysnKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZXZlbnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIG9uS2V5RG93biA9IChldmVudDogYW55KSA9PiB7XG4gICAgdmFyIGtleVNlcXVlbmNlID0gdGhpcy5nZXRLZXlTZXF1ZW5jZShldmVudCk7XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K20nKSB7IC8vTWF4aW1pemVcbiAgICAgIHZhciBhY3RpdmVXaW5kb3cgPSB0aGlzLmdldEFjdGl2ZVdpbmRvdygpO1xuICAgICAgaWYgKGFjdGl2ZVdpbmRvdyA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgaWYgKCFhY3RpdmVXaW5kb3cubWF4aW1pemVkKSB7XG4gICAgICAgIHRoaXMuc2F2ZVBvc2l0aW9uKGFjdGl2ZVdpbmRvdyk7XG4gICAgICAgIHRoaXMubWF4aW1pemUoYWN0aXZlV2luZG93KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlV2luZG93Lm1heGltaXplZCA9PT0gJ3JpZ2h0JyB8fCBhY3RpdmVXaW5kb3cubWF4aW1pemVkID09PSAnbGVmdCcpXG4gICAgICAgIHRoaXMubWF4aW1pemUoYWN0aXZlV2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5yZXN0b3JlU2F2ZWRQb3NpdGlvbihhY3RpdmVXaW5kb3cpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K24nKSB7IC8vTWluaW1pemVcbiAgICAgIHZhciBhY3RpdmVXaW5kb3cgPSB0aGlzLmdldEFjdGl2ZVdpbmRvdygpO1xuICAgICAgaWYgKGFjdGl2ZVdpbmRvdyA9PT0gbnVsbCB8fCBhY3RpdmVXaW5kb3cubWluaW1pemVkKSByZXR1cm47XG4gICAgICB0aGlzLm1pbmltaXplKGFjdGl2ZVdpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrdycpIHsgLy9DeWNsZXMgRm9yd2FyZFxuICAgICAgdmFyIGluZGV4ID0gdGhpcy53aW5kb3dzLmluZGV4T2YodGhpcy5nZXRBY3RpdmVXaW5kb3coKSk7XG4gICAgICB0aGlzLmFjdGl2YXRlTmV4dFdpbmRvdyhpbmRleCArIDEpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnc2hpZnQrYWx0K3cnKSB7IC8vQ3ljbGVzIEJhY2t3YXJkXG4gICAgICB2YXIgaW5kZXggPSB0aGlzLndpbmRvd3MuaW5kZXhPZih0aGlzLmdldEFjdGl2ZVdpbmRvdygpKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVQcmV2aW91c1dpbmRvdyhpbmRleCArIDEpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnc2hpZnQrYWx0K3gnICYmICEodGhpcy5zaGlmdFByZXNzZWQgJiYgdGhpcy5hbHRQcmVzc2VkICYmIHRoaXMueFByZXNzZWQpKSB7IC8vQ2xvc2VcbiAgICAgIHZhciBhY3RpdmVXaW5kb3cgPSB0aGlzLmdldEFjdGl2ZVdpbmRvdygpO1xuICAgICAgaWYgKCFhY3RpdmVXaW5kb3cpIHJldHVybjtcbiAgICAgIHRoaXMuY2xvc2VXaW5kb3coYWN0aXZlV2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtkJykgeyAvL1RvZ2dsZSBEZXNrdG9wXG4gICAgICAvL3RoaXMuZGVza3RvcFNob3duID0gdGhpcy5oaWRlU2hvd0FsbCgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkpXG4gICAgICB0aGlzLnNoaWZ0UHJlc3NlZCA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmFsdEtleSlcbiAgICAgIHRoaXMuYWx0UHJlc3NlZCA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDg4KVxuICAgICAgdGhpcy54UHJlc3NlZCA9IHRydWU7XG4gIH1cblxuICBvbktleVVwID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkpXG4gICAgICB0aGlzLnNoaWZ0UHJlc3NlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC5hbHRLZXkpXG4gICAgICB0aGlzLmFsdFByZXNzZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gODgpXG4gICAgICB0aGlzLnhQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcENvbXBvbmVudC5oYW5kbGVTZWxlY3RBdHRlbXB0XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3BcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFByZXZlbnRzIHRoZSB1c2VyIGZyb20gaGlnaGxpZ2h0IGRlc2t0b3AgZWxlbWVudHMuXG4gICAqXG4gICAqL1xuICBoYW5kbGVTZWxlY3RBdHRlbXB0ID0gKGU6IGFueSkgPT4ge1xuICAgIHZhciBub2RlTmFtZSA9IGUudGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKG5vZGVOYW1lID09PSAnaW5wdXQnIHx8IG5vZGVOYW1lID09PSAndGV4dGFyZWEnIHx8IG5vZGVOYW1lID09PSAnc2VsZWN0JykgcmV0dXJuIHRydWU7XG4gICAgaWYgKHdpbmRvdy5ldmVudCkgeyBlLnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHdpbmRvd3M6IEFycmF5PGFueT4gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nb1VybCA9IHRoaXMub3B0aW9ucy5sb2dvVXJsO1xyXG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLmRlc2t0b3Aub3B0aW9ucywgdGhpcy5vcHRpb25zKTtcclxuICAgIHRoaXMub3B0aW9ucy52aWV3cG9ydFRvcCA9IHRoaXMub3B0aW9ucy5tZW51YmFyQ29uZmlnICE9PSB1bmRlZmluZWQgPyB0aGlzLm9wdGlvbnMubWVudWJhckhlaWdodCArIDEgOiAwO1xyXG4gICAgdGhpcy50cnVXaW5kb3dFdmVudEhhbmRsZXIub25PcGVuKCkuc3Vic2NyaWJlKCh3aW5kaW93RXZlbnQ6IFRydVdpbmRvd0V2ZW50QXJncykgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5XaW5kb3cod2luZGlvd0V2ZW50LCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgPSB0aGlzLmhhbmRsZVNlbGVjdEF0dGVtcHQ7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd24pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdyYXBwZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3AtbWVudWJhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IG9wdGlvbnMubWVudWJhckhlaWdodCArICdweCd9XCI+XHJcbiAgICA8dHJ1LWRlc2t0b3AtbWVudWJhciBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtbWVudWJhcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHRydS1kZXNrdG9wLXZpZXdwb3J0IFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3Atdmlld3BvcnQ+XHJcblxyXG4gIDx0cnUtZGVza3RvcC10YXNrYmFyIFt3aW5kb3dzXT1cIndpbmRvd3NcIiBbZGVza3RvcEN0cmxdPVwidGhpc1wiPjwvdHJ1LWRlc2t0b3AtdGFza2Jhcj5cclxuXHJcbiAgPGltZyBjbGFzcz1cImRlc2t0b3Atdmlld3BvcnQtbG9nb1wiIGRhdGEtbmctc2hvdz1cImxvZ29VcmxcIiBhbHQ9XCJcIj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { TruDataContext } from '../../../services/tru-data-context';
|
|
3
3
|
import { TruEntityAccessor } from '../../../services/tru-entity-accessor';
|
|
4
|
-
import { TruWindowEventHandler } from '
|
|
4
|
+
import { TruWindowEventHandler } from '../services/tru-window-event-handler';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../../services/tru-data-context";
|
|
7
|
-
import * as i2 from "
|
|
7
|
+
import * as i2 from "../services/tru-window-event-handler";
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
import * as i4 from "../directives/resizable/tru-desktop-resizable";
|
|
10
10
|
import * as i5 from "../view/tru-desktop-view";
|
|
@@ -446,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
446
446
|
}], desktopCtrl: [{
|
|
447
447
|
type: Input
|
|
448
448
|
}] } });
|
|
449
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avd2luZG93L3RydS1kZXNrdG9wLXdpbmRvdy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3dpbmRvdy90cnUtZGVza3RvcC13aW5kb3cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRbkYsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxVQUFzQixFQUN0QixFQUFxQjtRQUhyQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBRy9CLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFdkIsOEJB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RyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIElucHV0LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJ1V2luZG93QWRkVmlld0V2ZW50IH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90cnUtd2luZG93LWFkZC12aWV3LWV2ZW50JztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IFRydUVudGl0eUFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJ1LWVudGl0eS1hY2Nlc3Nvcic7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndHJ1LWRlc2t0b3Atd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXNrdG9wLXdpbmRvdy5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL3RydS1kZXNrdG9wLmNzcycsICcuL3RydS1kZXNrdG9wLXdpbmRvdy5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJ1RGF0YUNvbnRleHQsIFRydUVudGl0eUFjY2Vzc29yLCBUcnVXaW5kb3dFdmVudEhhbmRsZXJdXG59KVxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BXaW5kb3cgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB3aW5kb3c6IGFueTtcbiAgQElucHV0KCkgdmlld3BvcnRDdHJsOiBhbnk7XG4gIEBJbnB1dCgpIGRlc2t0b3BDdHJsOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXG4gICAgcHJpdmF0ZSB0cnVXaW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIHggPSAwO1xuICB5ID0gMDtcbiAgbGFzdFggPSAwO1xuICBsYXN0WSA9IDA7XG4gIHN0YXJ0WCA9IDA7XG4gIHN0YXJ0WSA9IDA7XG4gIHRpdGxlQmFyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBjYW5DbG9zZUZuID0gdW5kZWZpbmVkO1xuICBjYW5OYXZpZ2F0ZUZuITogKCkgPT4gYm9vbGVhbjtcbiAgY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbiA9IGZhbHNlO1xuICB2aWV3cG9ydERpbWVuc2lvbnM6IGFueSA9IHVuZGVmaW5lZDtcblxuICBoYXNDaGFuZ2VzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0Lmhhc0NoYW5nZXMoKS5sZW5ndGg7XHJcbiAgfVxuXG4gIG1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuXG4gICAgdGhpcy52aWV3cG9ydERpbWVuc2lvbnMgPSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKTtcbiAgICBpZiAoZXZlbnQucGFnZVggPD0gMCB8fFxuICAgICAgZXZlbnQucGFnZVggPj0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggfHxcbiAgICAgIHRoaXMud2luZG93Lm1heGltaXplZCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMudGl0bGVCYXIgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgLy90aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ29wYWNpdHk6IDAuNTsnKTtcbiAgICB0aGlzLnggPSBldmVudC5zY3JlZW5YIC0gdGhpcy5zdGFydFg7XG4gICAgdGhpcy55ID0gZXZlbnQuc2NyZWVuWSAtIHRoaXMuc3RhcnRZO1xuXG4gICAgLy9Ub3AgQ29udGFpbm1lbnRcbiAgICB0aGlzLnkgPSB0aGlzLnkgPj0gMCA/IHRoaXMueSA6IDA7XG4gICAgLy9Cb3R0b20gQ29udGFpbm1lbnRcbiAgICB0aGlzLnkgPSB0aGlzLnkgPD0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0IC0gdGhpcy50aXRsZUJhci5vZmZzZXRIZWlnaHQgPyB0aGlzLnkgOiB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHQgLSB0aGlzLnRpdGxlQmFyLm9mZnNldEhlaWdodDtcblxuICAgIC8vTGVmdCBDb250YWlubWVudFxuICAgIHRoaXMueCA9IHRoaXMueCA+PSAtKHRoaXMudGl0bGVCYXIub2Zmc2V0V2lkdGggKyB0aGlzLnRpdGxlQmFyLm9mZnNldExlZnQpID8gdGhpcy54IDogLSh0aGlzLnRpdGxlQmFyLm9mZnNldFdpZHRoICsgdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0KTtcbiAgICAvL1JpZ2h0IENvbnRhaW5tZW50XG4gICAgdGhpcy54ID0gdGhpcy54IDw9IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0ID8gdGhpcy54IDogdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggLSB0aGlzLnRpdGxlQmFyLm9mZnNldExlZnQ7XG5cbiAgICB0aGlzLndpbmRvdy50b3AgPSB0aGlzLnkgKyAncHgnO1xuICAgIHRoaXMud2luZG93LmxlZnQgPSB0aGlzLnggKyAncHgnO1xuICB9O1xuXG4gIG1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQucGFnZVkgPD0gdGhpcy5kZXNrdG9wQ3RybC5vcHRpb25zLnZpZXdwb3J0VG9wKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplKHRoaXMud2luZG93KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnBhZ2VYIDw9IDApIHtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVMZWZ0KHRoaXMud2luZG93KTtcbiAgICB9XG4gICAgdGhpcy52aWV3cG9ydERpbWVuc2lvbnMgPSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKTtcbiAgICBpZiAoZXZlbnQucGFnZVggPj0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggLSAxKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplUmlnaHQodGhpcy53aW5kb3cpO1xuICAgIH1cblxuICAgIC8vdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdvcGFjaXR5OiAxLjA7Jyk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnVwZGF0ZU5hdmlnYXRpb25TdGF0ZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVXBkYXRlcyB3aW5kb3cgbmF2aWdhdGlvbiBidXR0b25zIGJhc2VkIGxvY2F0aW9uIG9mIHRoZSBhY3RpdmUgdmlldyBpbiB0aGUgdmlld3MgYXJyYXkuXG4gICAqXG4gICAqL1xuICB1cGRhdGVOYXZpZ2F0aW9uU3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93LnZpZXdzID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICB2YXIgbGVuZ3RoID0gdGhpcy53aW5kb3cudmlld3MubGVuZ3RoO1xuICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzID0gISEodGhpcy53aW5kb3cudmlld3NbMF0uYWN0aXZlIHx8IGxlbmd0aCA9PT0gMSk7XG4gICAgdGhpcy5kaXNhYmxlTmV4dCA9ICEhKHRoaXMud2luZG93LnZpZXdzW2xlbmd0aCAtIDFdLmFjdGl2ZSB8fCBsZW5ndGggPT09IDEpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmlzV2luZG93SW5WaWV3cG9ydFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgd2luZG93IGlzIHdpdGhpbiB0aGUgdmlld3BvcnQgYm91bmRhcmllcy5cbiAgICpcbiAgICovXG4gIGlzV2luZG93SW5WaWV3cG9ydCA9ICgpID0+IHtcbiAgICB2YXIgd2luZG93VG9wID0gMDtcbiAgICB2YXIgd2luZG93TGVmdCA9IDA7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5taW5pbWl6ZWQpIHtcbiAgICAgIHdpbmRvd1RvcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIHdpbmRvd0xlZnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3dUb3AgPSBwYXJzZUludCh0aGlzLndpbmRvdy5zYXZlZFBvc2l0aW9uLnRvcCwgMTApO1xuICAgICAgd2luZG93TGVmdCA9IHBhcnNlSW50KHRoaXMud2luZG93LnNhdmVkUG9zaXRpb24ubGVmdCwgMTApO1xuICAgIH1cbiAgICBpZiAoKHdpbmRvd1RvcCArIDEwKSA+PSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKS5oZWlnaHQgfHxcbiAgICAgICh3aW5kb3dMZWZ0ICsgNjApID49IHRoaXMudmlld3BvcnRDdHJsLmdldFZpZXdwb3J0RGltZW5zaW9ucygpLndpZHRoKSB7XG4gICAgICB0aGlzLndpbmRvdy5vdXRPZkJvdW5kcyA9IHRydWU7XG4gICAgICB0aGlzLndpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwuYWN0aXZhdGVGb3JlbW9zdFdpbmRvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpbmRvdy5vdXRPZkJvdW5kcyA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5nZXRXaW5kb3dcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgdGhlIHdpbmRvdyBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IHdpbmRvdyBvYmplY3QuXG4gICAqL1xuICBnZXRXaW5kb3cgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnNldFdpbmRvd1RpdGxlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSB3aW5kb3cgdGl0bGUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSB0byBkaXNwbGF5IGluIHRoZSB3aW5kb3cgdGl0bGUgYmFyLlxuICAgKi9cbiAgc2V0V2luZG93VGl0bGUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHRoaXMud2luZG93LnRpdGxlID0gdmFsdWU7XG4gIH07XG5cbiAgZ2V0V2luZG93VGl0bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93LnRpdGxlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmdvVG9QcmV2aW91c1ZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFB1YmxpYyBtZXRob2QgZm9yIG5hdmlnYXRpbmcgdG8gdGhlIHByZXZpb3VzIHZpZXcuXG4gICAqXG4gICAqL1xuICBnb1RvUHJldmlvdXNWaWV3ID0gKCkgPT4ge1xuICAgIHRoaXMucHJldmlvdXNWaWV3KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQudmlld0lzRWRpdGluZ1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ2hlY2tzIHdoZXRoZXIgdmlldyBpcyBlZGl0aW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0uXG4gICAqL1xuICB2aWV3SXNFZGl0aW5nID0gKCkgPT4ge1xuICAgIHZhciBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLndpbmRvdy52aWV3cy5mb3JFYWNoKCh2aWV3OiBhbnkpID0+IHtcbiAgICAgIGlmICh2aWV3LmlzRWRpdGluZyA9PT0gdHJ1ZSkge1xuICAgICAgICBpc0VkaXRpbmcgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIG51bGwpO1xuICAgIHJldHVybiBpc0VkaXRpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuY2FuTmF2aWdhdGVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENoZWNrcyB3aGV0aGVyIG5hdmlnYXRpb24gY2FuIG9jY3VyLi5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59LlxuICAgKi9cbiAgY2FuTmF2aWdhdGUgPSAoKSA9PiB7XG4gICAgdmFyIGNhbk5hdmlnYXRlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5jYW5OYXZpZ2F0ZUZuICE9PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy52aWV3SXNFZGl0aW5nKCkpIHtcbiAgICAgICAgY2FuTmF2aWdhdGUgPSB0aGlzIS5jYW5OYXZpZ2F0ZUZuKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYW5OYXZpZ2F0ZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5yZW1vdmVGb3J3YXJkVmlld3NcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZXMgYWxsIHZpZXcocykgZm9yd2FyZCBvZiB0aGUgYWN0aXZlIHZpZXcuXG4gICAqXG4gICAqL1xuICByZW1vdmVGb3J3YXJkVmlld3MgPSAoKSA9PiB7XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIHZhciBhY3RpdmVWaWV3SW5kZXggPSB0aGlzLndpbmRvdy52aWV3cy5pbmRleE9mKGFjdGl2ZVZpZXcpO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLndpbmRvdy52aWV3cy5sZW5ndGg7IGkgPiBhY3RpdmVWaWV3SW5kZXg7IGktLSkge1xuICAgICAgdGhpcy53aW5kb3cudmlld3Muc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmFkZFZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZXMgYWxsIGluYWN0aXZlIHZpZXcocykgZm9sbG93aW5nIHRoZSBhY3RpdmUgdmlldyBhbmQgaW5zZXJ0cyBhIG5ldyB2aWV3LlxuICAgKlxuICAgKi9cbiAgYWRkVmlldyA9ICh2aWV3Q29uZmlnT3ZlcmxheTogYW55KSA9PiB7XG4gICAgdGhpcy5yZW1vdmVGb3J3YXJkVmlld3MoKTtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUgPSBmYWxzZTtcbiAgICB2YXIgdmlld0NvbmZpZyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0RGVza3RvcCgpLnZpZXdDb25maWc7XG4gICAgdmFyIHZpZXdDb25maWdJbnN0YW5jZSA9IE9iamVjdC5hc3NpZ24oe30sIHZpZXdDb25maWcpO1xuICAgIHZhciBleHRlbmRlZCA9IE9iamVjdC5hc3NpZ24odmlld0NvbmZpZ0luc3RhbmNlLCB2aWV3Q29uZmlnT3ZlcmxheSk7XG4gICAgZXh0ZW5kZWQud2luZG93ID0gdGhpcztcbiAgICB0aGlzLndpbmRvdy52aWV3cy5wdXNoKGV4dGVuZGVkKTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmdldEdsb2JhbHNcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIHJldHVybnMgdGhlIGdsb2JhbCB2YWx1ZXMuXG4gICAqXG4gICAqL1xuICBnZXRHbG9iYWxzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdy5nbG9iYWxzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmZpcnN0Vmlld1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIGZpcnN0VmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVQcmV2aW91cykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24pIHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdykuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgbGV0IGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy53aW5kb3cudmlld3NbMF0uYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmZpcnN0Vmlld1xuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICovXG4gIGxhc3RWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZU5leHQpIHJldHVybjtcbiAgICBpZiAodGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uKSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGxldCBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMud2luZG93LnZpZXdzW3RoaXMud2luZG93LnZpZXdzLmxlbmd0aCAtIDFdLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTs7XG5cbiAgcmVzaXplRXZlbnRIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMuaXNXaW5kb3dJblZpZXdwb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogQHRydS5kb2MgZXZlbnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICBvbktleWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMud2luZG93LmFjdGl2ZSkgcmV0dXJuO1xuICAgIHZhciBrZXlTZXF1ZW5jZSA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0S2V5U2VxdWVuY2UoZXZlbnQpO1xuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtsZWZ0JykgeyAvL1ByZXZpb3VzIFZpZXdcbiAgICAgIHRoaXMucHJldmlvdXNWaWV3KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrcmlnaHQnKSB7IC8vTmV4dCBWaWV3XG4gICAgICB0aGlzLm5leHRWaWV3KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrdXAnKSB7IC8vRmlyc3QgVmlld1xuICAgICAgdGhpcy5maXJzdFZpZXcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtkb3duJykgeyAvL0xhc3QgVmlld1xuICAgICAgdGhpcy5sYXN0VmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K2wnKSB7IC8vTWF4aW1pemUgbGVmdFxuICAgICAgaWYgKCF0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplTGVmdCh0aGlzLndpbmRvdyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMud2luZG93Lm1heGltaXplZCA9PT0gJ3JpZ2h0JyB8fCB0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdmaWxsJylcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZUxlZnQodGhpcy53aW5kb3cpO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLnJlc3RvcmVTYXZlZFBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtyJykgeyAvL01heGltaXplIHJpZ2h0XG4gICAgICBpZiAoIXRoaXMud2luZG93Lm1heGltaXplZCkge1xuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLnNhdmVQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVSaWdodCh0aGlzLndpbmRvdyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMud2luZG93Lm1heGltaXplZCA9PT0gJ2xlZnQnIHx8IHRoaXMud2luZG93Lm1heGltaXplZCA9PT0gJ2ZpbGwnKVxuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplUmlnaHQodGhpcy53aW5kb3cpO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLnJlc3RvcmVTYXZlZFBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyB3YXRjaFxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTW9uaXRvcnMgdGhlIHdpbmRvdydzIG1pbmltaXplZCBzdGF0ZVxuICAgKlxuICAgKi9cbiAgLy8kc2NvcGUuJHdhdGNoKCd3aW5kb3cubWluaW1pemVkJyxcbiAgLy8gICAgICAgICAgICAgIGZ1bmN0aW9uKHZhbHVlKSB7XG4gIC8vICBpZiAodmFsdWUgJiYgISRzY29wZS53aW5kb3cubWF4aW1pemVkKSB7XG4gIC8vICAgICRzY29wZS5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24oJHNjb3BlLndpbmRvdyk7XG4gIC8vICB9XG4gIC8vfVxuICAvLyAgICAgICAgICApO1xuXG4gIGRpc2FibGVQcmV2aW91cyA9IHRydWU7XG4gIGRpc2FibGVOZXh0ID0gdHJ1ZTtcblxuICBhY3RpdmF0ZSA9ICgpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3cub3V0T2ZCb3VuZHMpIHJldHVybjtcbiAgICB0aGlzLmRlc2t0b3BDdHJsLmNsZWFyQWN0aXZlKCk7XG4gICAgdGhpcy53aW5kb3cuYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLndpbmRvdy56SW5kZXggPSB0aGlzLmRlc2t0b3BDdHJsLmdldE5leHRNYXhaSW5kZXgoKTtcbiAgfTtcblxuICBtaW5pbWl6ZSA9ICgpID0+IHtcbiAgICB0aGlzLmRlc2t0b3BDdHJsLm1pbmltaXplKHRoaXMud2luZG93KTtcbiAgfTtcblxuICBtYXhpbWl6ZSA9ICgpID0+IHtcbiAgICBpZiAodGhpcy53aW5kb3cubWF4aW1pemVkKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLnJlc3RvcmVTYXZlZFBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgIHRoaXMud2luZG93Lm1heGltaXplZCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZSh0aGlzLndpbmRvdyk7XG4gICAgfVxuICB9O1xuXG4gIGNsb3NlID0gKCkgPT4ge1xuICAgIHRoaXMuZGVza3RvcEN0cmwuY2xvc2VXaW5kb3codGhpcy53aW5kb3cpO1xuICB9O1xuXG4gIHdpbmRvd1RpdGxlTW91c2VEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93Lm1heGltaXplZCkgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50aXRsZUJhciA9IGV2ZW50LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfHwgZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMueCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLm9mZnNldExlZnQ7XG4gICAgdGhpcy55ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0ub2Zmc2V0VG9wO1xuICAgIHRoaXMuc3RhcnRYID0gZXZlbnQuc2NyZWVuWCAtIHRoaXMueDtcbiAgICB0aGlzLnN0YXJ0WSA9IGV2ZW50LnNjcmVlblkgLSB0aGlzLnk7XG5cbiAgICB0aGlzLmRlc2t0b3BDdHJsLnNhdmVQb3NpdGlvbih0aGlzLndpbmRvdyk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcCk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVFdmVudEhhbmRsZXIpO1xuICB9O1xuXG4gIHByZXZpb3VzVmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVQcmV2aW91cykgcmV0dXJuO1xuICAgIHZhciBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICB2YXIgYWN0aXZlVmlld0luZGV4ID0gdGhpcy53aW5kb3cudmlld3MuaW5kZXhPZihhY3RpdmVWaWV3KTtcbiAgICBpZiAodGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uKSBhY3RpdmVWaWV3LmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy53aW5kb3cudmlld3NbYWN0aXZlVmlld0luZGV4IC0gMV0uYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuICB9O1xuXG4gIG5leHRWaWV3ID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5jYW5OYXZpZ2F0ZSgpIHx8IHRoaXMuZGlzYWJsZU5leHQpIHJldHVybjtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgdmFyIGFjdGl2ZVZpZXdJbmRleCA9IHRoaXMud2luZG93LnZpZXdzLmluZGV4T2YoYWN0aXZlVmlldyk7XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgYWN0aXZlVmlldy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMud2luZG93LnZpZXdzW2FjdGl2ZVZpZXdJbmRleCArIDFdLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICBzYXZlID0gKCkgPT4ge1xuICAgIHRoaXMuZGF0YUNvbnRleHQuc2F2ZSgpO1xuICB9O1xuXG4gIHJldmVydCA9ICgpID0+IHtcbiAgICB0aGlzLmRhdGFDb250ZXh0LnJldmVydCgpO1xuICB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQ2xvc2VGbiA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0T3B0aW9ucygpLmNhbkNsb3NlRm47XG4gICAgdGhpcy5jYW5OYXZpZ2F0ZUZuID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRPcHRpb25zKCkuY2FuTmF2aWdhdGVGbjtcbiAgICB0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24gPSB0aGlzLmRlc2t0b3BDdHJsLmdldE9wdGlvbnMoKS5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG5cbiAgICB0aGlzLnRydVdpbmRvd0V2ZW50SGFuZGxlci5vbkFkZFZpZXcoKS5zdWJzY3JpYmUoKHdpbmRpb3dBZGRWaWV3RXZlbnQ6IFRydVdpbmRvd0FkZFZpZXdFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmFkZFZpZXcod2luZGlvd0FkZFZpZXdFdmVudCk7XHJcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcCk7XG5cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVFdmVudEhhbmRsZXIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGVza3RvcC13aW5kb3ctY29udGFpbmVyXCJcclxuICAgICBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LWFjdGl2ZSc6IHdpbmRvdy5hY3RpdmUsICdkZXNrdG9wLXdpbmRvdy1tYXhpbWl6ZWQnOiB3aW5kb3cubWF4aW1pemVkfVwiXHJcbiAgICAgW25nU3R5bGVdPVwieyd6LWluZGV4Jzogd2luZG93LnpJbmRleCwgJ3RvcCc6IHdpbmRvdy50b3AsICdsZWZ0Jzogd2luZG93LmxlZnQsICdyaWdodCc6IHdpbmRvdy5yaWdodCwgJ2JvdHRvbSc6IHdpbmRvdy5ib3R0b20sICdoZWlnaHQnOiB3aW5kb3cuaGVpZ2h0LCAnd2lkdGgnOiB3aW5kb3cud2lkdGgsICdtaW4taGVpZ2h0Jzogd2luZG93Lm1pbkhlaWdodCwgJ21pbldpZHRoJzogd2luZG93Lm1pbldpZHRofVwiXHJcbiAgICAgW3N0eWxlLm9mZnNldExlZnQucHhdPVwieFwiXHJcbiAgICAgW3N0eWxlLm9mZnNldFRvcC5weF09XCJ5XCJcclxuICAgICAobW91c2Vkb3duKT1cImFjdGl2YXRlKClcIlxyXG4gICAgIFtoaWRkZW5dPVwid2luZG93Lm1pbmltaXplZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1oZWFkZXJcIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LW1heGltaXplZCc6IHdpbmRvdy5tYXhpbWl6ZWQsICdkZXNrdG9wLXdpbmRvdy1vcGFjaXR5JzogIXdpbmRvdy5hY3RpdmV9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci13aW5kb3ctbmF2aWdhdGlvblwiPlxyXG4gICAgICA8dHJ1LXRvb2xiYXI+XHJcbiAgICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItcHJldmlvdXMtaWNvbidcIiBbdG9vbHRpcF09XCInR28gQmFjayBPbmUgVmlldyAtIFtBbHQgKyBMZWZ0XSdcIiAoY2xpY2spPVwicHJldmlvdXNWaWV3KClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1uZXh0LWljb24nXCIgW3Rvb2x0aXBdPVwiJ0dvIEZvcndhcmQgT25lIFZpZXcgLSBbQWx0ICsgUmlnaHRdJ1wiIChjbGljayk9XCJuZXh0VmlldygpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItc2F2ZS1pY29uJ1wiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctc2F2ZS1pY29uXCIgW25nQ2xhc3NdPVwieydkZXNrdG9wLXdpbmRvdy1zYXZlLWljb24taGFzLWNoYW5nZXMnOiBoYXNDaGFuZ2VzKCl9XCIgW3Rvb2x0aXBdPVwiJ1NhdmUgLSBbQ3RybCArIFNdJ1wiIChjbGljayk9XCJzYXZlKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1yZXZlcnQtaWNvbidcIiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJldmVydC1pY29uXCIgW25nQ2xhc3NdPVwieydkZXNrdG9wLXdpbmRvdy1yZXZlcnQtaWNvbi1oYXMtY2hhbmdlcyc6IGhhc0NoYW5nZXMoKX1cIiBbdG9vbHRpcF09XCInUmV2ZXJ0IC0gW0N0cmwgKyBTaGlmdCArIFJdJ1wiIChjbGljayk9XCJyZXZlcnQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1zZXBhcmF0b3I+PC90cnUtdG9vbGJhci1zZXBhcmF0b3I+XHJcbiAgICAgIDwvdHJ1LXRvb2xiYXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy10aXRsZVwiIChkYmxjbGljayk9XCJtYXhpbWl6ZSgpXCIgKG1vdXNlZG93bik9XCJ3aW5kb3dUaXRsZU1vdXNlRG93bigkZXZlbnQpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLWNsaWNrLXRocm91Z2hcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC10ZXh0XCI+e3t3aW5kb3cudGl0bGV9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LWFjdGlvblwiPlxyXG4gICAgICA8dHJ1LXRvb2xiYXI+XHJcbiAgICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItbWluaW1pemUtaWNvbidcIiBbdG9vbHRpcF09XCInTWluaW1pemUgLSBbQWx0ICsgTl0nXCIgKGNsaWNrKT1cIm1pbmltaXplKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbaWNvbl09XCIndHJ1LXRvb2xiYXItbWF4aW1pemUtaWNvbidcIiBbdG9vbHRpcF09XCInR28gRm9yd2FyZCBPbmUgVmlldyAtIFtBbHQgKyBSaWdodF0nXCIgKGNsaWNrKT1cIm1heGltaXplKClcIiBjbGFzcz1cIm1heGltaXplXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiAqbmdJZj1cIndpbmRvdy5tYXhpbWl6ZWRcIiBbaWNvbl09XCIndHJ1LXRvb2xiYXItcmVzdG9yZS1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBGb3J3YXJkIE9uZSBWaWV3IC0gW0FsdCArIFJpZ2h0XSdcIiAoY2xpY2spPVwibWF4aW1pemUoKVwiIGNsYXNzPVwibWF4aW1pemVcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1jbG9zZS1pY29uJ1wiIFt0b29sdGlwXT1cIidDbG9zZSBXaW5kb3cgLSBbQWx0ICsgU0hJRlQgKyBYXSdcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L3RydS10b29sYmFyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGZpZWxkc2V0IG5nLWRpc2FibGVkPVwiIXdpbmRvdy5hY3RpdmVcIiBjbGFzcz1cImRlc2t0b3Atd2luZG93LWZpZWxkc2V0XCIgW25nQ2xhc3NdPVwieydkZXNrdG9wLXdpbmRvdy1vcGFjaXR5JzogIXdpbmRvdy5hY3RpdmV9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC13aW5kb3ctY29udGVudFwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2aWV3IG9mIHdpbmRvdy52aWV3c1wiPlxyXG4gICAgICAgIDx0cnUtZGVza3RvcC12aWV3IFt2aWV3XT1cInZpZXdcIiBbaGlkZGVuXT1cIiF2aWV3LmFjdGl2ZVwiPjxuZy10ZW1wbGF0ZT48L25nLXRlbXBsYXRlPjwvdHJ1LWRlc2t0b3Atdmlldz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2ZpZWxkc2V0PlxyXG4gIDx0cnUtZGVza3RvcC1zdGF0dXNiYXI+PC90cnUtZGVza3RvcC1zdGF0dXNiYXI+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1ud1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIidudydcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1uZVwiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIiduZSdcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1zd1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIidzdydcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1zZVwiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIidzZSdcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1uXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ24nXCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWhhbmRsZSBkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtc1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIidzJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXdcIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCIndydcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1lXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ2UnXCI+PC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|
|
449
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avd2luZG93L3RydS1kZXNrdG9wLXdpbmRvdy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wL3dpbmRvdy90cnUtZGVza3RvcC13aW5kb3cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUNVLFdBQTJCLEVBQzNCLHFCQUE0QyxFQUM1QyxVQUFzQixFQUN0QixFQUFxQjtRQUhyQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBRy9CLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFdkIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLHVCQUFrQixHQUFRLFNBQVMsQ0FBQztRQUVwQyxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDOUMsQ0FBQyxDQUFBO1FBRUQsY0FBUyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBRWhDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDcEUsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFBRSxPQUFPO1lBRWhDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFFbEMsdUVBQXVFO1lBQ3ZFLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXJDLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBRXRKLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlJLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUVoSixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFRixZQUFPLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM3QztZQUVELHVFQUF1RTtZQUN2RSxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxRCxRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7V0FRRztRQUNILDBCQUFxQixHQUFHLEdBQUcsRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUM1QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7O1dBUUc7UUFDSCx1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BELFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0wsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTTtnQkFDdEUsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssRUFBRTtnQkFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUMzQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7O1dBU0c7UUFDSCxjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGOzs7Ozs7Ozs7V0FTRztRQUNILG1CQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxHQUFHLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7V0FRRztRQUNILHFCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7OztXQVNHO1FBQ0gsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO29CQUMzQixTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtZQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNULE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVGOzs7Ozs7Ozs7V0FTRztRQUNILGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQkFDeEIsV0FBVyxHQUFHLElBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDckM7YUFDRjtZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ0gsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ0gsWUFBTyxHQUFHLENBQUMsaUJBQXNCLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDMUQsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2RCxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDcEUsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ0gsZUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdCLENBQUMsQ0FBQztRQUVGOzs7Ozs7O1dBT0c7UUFDSCxjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZTtnQkFBRSxPQUFPO1lBQ3hELElBQUksSUFBSSxDQUFDLHlCQUF5QjtnQkFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsRyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRjs7Ozs7OztXQU9HO1FBQ0gsYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVc7Z0JBQUUsT0FBTztZQUNwRCxJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEcsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzlELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGLHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN4QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUE7UUFrREQ7Ozs7Ozs7V0FPRztRQUNILG1DQUFtQztRQUNuQyxpQ0FBaUM7UUFDakMsNENBQTRDO1FBQzVDLHFEQUFxRDtRQUNyRCxLQUFLO1FBQ0wsR0FBRztRQUNILGNBQWM7UUFFZCxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7Z0JBQUUsT0FBTztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsQ0FBQyxDQUFDO1FBRUYsYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFFRixhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzthQUNuQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsQ0FBQztRQUVGLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7Z0JBQUUsT0FBTztZQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBeUIsSUFBSSxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMvRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUzQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQUUsT0FBTztZQUN4RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVELElBQUksSUFBSSxDQUFDLHlCQUF5QjtnQkFBRSxVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNqRSxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRixhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVztnQkFBRSxPQUFPO1lBQ3BELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMseUJBQXlCO2dCQUFFLFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2pFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGLFNBQUksR0FBRyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQztJQWphRixDQUFDO0lBb1JDLENBQUM7SUFNSDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDaEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLEVBQUUsZUFBZTtZQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssV0FBVyxFQUFFLEVBQUUsV0FBVztZQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssUUFBUSxFQUFFLEVBQUUsWUFBWTtZQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLEVBQUUsV0FBVztZQUMzQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxXQUFXLEtBQUssT0FBTyxFQUFFLEVBQUUsZUFBZTtZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVDO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU07Z0JBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBRTNDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksV0FBVyxLQUFLLE9BQU8sRUFBRSxFQUFFLGdCQUFnQjtZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU07Z0JBQzdFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBRTVDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFBQSxDQUFDO0lBMkZGLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDakUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDekYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUE4QyxFQUFFLEVBQUU7WUFDbEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs2R0FqY1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IscUlBRmhCLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLDBCQ1Z2RSw2bEpBZ0RBOzJGRHBDYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO2tNQUc1RCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIElucHV0LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJ1V2luZG93QWRkVmlld0V2ZW50QXJncyB9IGZyb20gJy4uL3NlcnZpY2VzL3RydS13aW5kb3ctYWRkLXZpZXctZXZlbnQtYXJncyc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBUcnVFbnRpdHlBY2Nlc3NvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RydS1lbnRpdHktYWNjZXNzb3InO1xyXG5pbXBvcnQgeyBUcnVXaW5kb3dFdmVudEhhbmRsZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RydS1kZXNrdG9wLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGVza3RvcC13aW5kb3cuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90cnUtZGVza3RvcC5jc3MnLCAnLi90cnUtZGVza3RvcC13aW5kb3cuY3NzJ10sXG4gIHByb3ZpZGVyczogW1RydURhdGFDb250ZXh0LCBUcnVFbnRpdHlBY2Nlc3NvciwgVHJ1V2luZG93RXZlbnRIYW5kbGVyXVxufSlcbmV4cG9ydCBjbGFzcyBUcnVEZXNrdG9wV2luZG93IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgd2luZG93OiBhbnk7XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q3RybDogYW55O1xuICBASW5wdXQoKSBkZXNrdG9wQ3RybDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgdHJ1V2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICB4ID0gMDtcbiAgeSA9IDA7XG4gIGxhc3RYID0gMDtcbiAgbGFzdFkgPSAwO1xuICBzdGFydFggPSAwO1xuICBzdGFydFkgPSAwO1xuICB0aXRsZUJhcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgY2FuQ2xvc2VGbiA9IHVuZGVmaW5lZDtcbiAgY2FuTmF2aWdhdGVGbiE6ICgpID0+IGJvb2xlYW47XG4gIGNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24gPSBmYWxzZTtcbiAgdmlld3BvcnREaW1lbnNpb25zOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgaGFzQ2hhbmdlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dC5oYXNDaGFuZ2VzKCkubGVuZ3RoO1xyXG4gIH1cblxuICBtb3VzZU1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcblxuICAgIHRoaXMudmlld3BvcnREaW1lbnNpb25zID0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk7XG4gICAgaWYgKGV2ZW50LnBhZ2VYIDw9IDAgfHxcbiAgICAgIGV2ZW50LnBhZ2VYID49IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIHx8XG4gICAgICB0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnRpdGxlQmFyID09IG51bGwpIHJldHVybjtcblxuICAgIC8vdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdvcGFjaXR5OiAwLjU7Jyk7XG4gICAgdGhpcy54ID0gZXZlbnQuc2NyZWVuWCAtIHRoaXMuc3RhcnRYO1xuICAgIHRoaXMueSA9IGV2ZW50LnNjcmVlblkgLSB0aGlzLnN0YXJ0WTtcblxuICAgIC8vVG9wIENvbnRhaW5tZW50XG4gICAgdGhpcy55ID0gdGhpcy55ID49IDAgPyB0aGlzLnkgOiAwO1xuICAgIC8vQm90dG9tIENvbnRhaW5tZW50XG4gICAgdGhpcy55ID0gdGhpcy55IDw9IHRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodCAtIHRoaXMudGl0bGVCYXIub2Zmc2V0SGVpZ2h0ID8gdGhpcy55IDogdGhpcy52aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0IC0gdGhpcy50aXRsZUJhci5vZmZzZXRIZWlnaHQ7XG5cbiAgICAvL0xlZnQgQ29udGFpbm1lbnRcbiAgICB0aGlzLnggPSB0aGlzLnggPj0gLSh0aGlzLnRpdGxlQmFyLm9mZnNldFdpZHRoICsgdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0KSA/IHRoaXMueCA6IC0odGhpcy50aXRsZUJhci5vZmZzZXRXaWR0aCArIHRoaXMudGl0bGVCYXIub2Zmc2V0TGVmdCk7XG4gICAgLy9SaWdodCBDb250YWlubWVudFxuICAgIHRoaXMueCA9IHRoaXMueCA8PSB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aCAtIHRoaXMudGl0bGVCYXIub2Zmc2V0TGVmdCA/IHRoaXMueCA6IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gdGhpcy50aXRsZUJhci5vZmZzZXRMZWZ0O1xuXG4gICAgdGhpcy53aW5kb3cudG9wID0gdGhpcy55ICsgJ3B4JztcbiAgICB0aGlzLndpbmRvdy5sZWZ0ID0gdGhpcy54ICsgJ3B4JztcbiAgfTtcblxuICBtb3VzZVVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnBhZ2VZIDw9IHRoaXMuZGVza3RvcEN0cmwub3B0aW9ucy52aWV3cG9ydFRvcCkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZSh0aGlzLndpbmRvdyk7XG4gICAgfVxuICAgIGlmIChldmVudC5wYWdlWCA8PSAwKSB7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplTGVmdCh0aGlzLndpbmRvdyk7XG4gICAgfVxuICAgIHRoaXMudmlld3BvcnREaW1lbnNpb25zID0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk7XG4gICAgaWYgKGV2ZW50LnBhZ2VYID49IHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRoIC0gMSkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZVJpZ2h0KHRoaXMud2luZG93KTtcbiAgICB9XG5cbiAgICAvL3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnb3BhY2l0eTogMS4wOycpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC51cGRhdGVOYXZpZ2F0aW9uU3RhdGVcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFVwZGF0ZXMgd2luZG93IG5hdmlnYXRpb24gYnV0dG9ucyBiYXNlZCBsb2NhdGlvbiBvZiB0aGUgYWN0aXZlIHZpZXcgaW4gdGhlIHZpZXdzIGFycmF5LlxuICAgKlxuICAgKi9cbiAgdXBkYXRlTmF2aWdhdGlvblN0YXRlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy52aWV3cyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgdmFyIGxlbmd0aCA9IHRoaXMud2luZG93LnZpZXdzLmxlbmd0aDtcbiAgICB0aGlzLmRpc2FibGVQcmV2aW91cyA9ICEhKHRoaXMud2luZG93LnZpZXdzWzBdLmFjdGl2ZSB8fCBsZW5ndGggPT09IDEpO1xuICAgIHRoaXMuZGlzYWJsZU5leHQgPSAhISh0aGlzLndpbmRvdy52aWV3c1tsZW5ndGggLSAxXS5hY3RpdmUgfHwgbGVuZ3RoID09PSAxKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5pc1dpbmRvd0luVmlld3BvcnRcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldGVybWluZXMgaWYgdGhlIHdpbmRvdyBpcyB3aXRoaW4gdGhlIHZpZXdwb3J0IGJvdW5kYXJpZXMuXG4gICAqXG4gICAqL1xuICBpc1dpbmRvd0luVmlld3BvcnQgPSAoKSA9PiB7XG4gICAgdmFyIHdpbmRvd1RvcCA9IDA7XG4gICAgdmFyIHdpbmRvd0xlZnQgPSAwO1xuICAgIGlmICghdGhpcy53aW5kb3cubWluaW1pemVkKSB7XG4gICAgICB3aW5kb3dUb3AgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICB3aW5kb3dMZWZ0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93VG9wID0gcGFyc2VJbnQodGhpcy53aW5kb3cuc2F2ZWRQb3NpdGlvbi50b3AsIDEwKTtcbiAgICAgIHdpbmRvd0xlZnQgPSBwYXJzZUludCh0aGlzLndpbmRvdy5zYXZlZFBvc2l0aW9uLmxlZnQsIDEwKTtcbiAgICB9XG4gICAgaWYgKCh3aW5kb3dUb3AgKyAxMCkgPj0gdGhpcy52aWV3cG9ydEN0cmwuZ2V0Vmlld3BvcnREaW1lbnNpb25zKCkuaGVpZ2h0IHx8XG4gICAgICAod2luZG93TGVmdCArIDYwKSA+PSB0aGlzLnZpZXdwb3J0Q3RybC5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKS53aWR0aCkge1xuICAgICAgdGhpcy53aW5kb3cub3V0T2ZCb3VuZHMgPSB0cnVlO1xuICAgICAgdGhpcy53aW5kb3cuYWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLmRlc2t0b3BDdHJsLmFjdGl2YXRlRm9yZW1vc3RXaW5kb3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53aW5kb3cub3V0T2ZCb3VuZHMgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQuZ2V0V2luZG93XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIHRoZSB3aW5kb3cgb2JqZWN0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSB3aW5kb3cgb2JqZWN0LlxuICAgKi9cbiAgZ2V0V2luZG93ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5zZXRXaW5kb3dUaXRsZVxuICAgKiBAbW9kdWxlIHRydS5kZXNrdG9wLndpbmRvd1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgd2luZG93IHRpdGxlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgd2luZG93IHRpdGxlIGJhci5cbiAgICovXG4gIHNldFdpbmRvd1RpdGxlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLndpbmRvdy50aXRsZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldFdpbmRvd1RpdGxlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLndpbmRvdy50aXRsZTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5nb1RvUHJldmlvdXNWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQdWJsaWMgbWV0aG9kIGZvciBuYXZpZ2F0aW5nIHRvIHRoZSBwcmV2aW91cyB2aWV3LlxuICAgKlxuICAgKi9cbiAgZ29Ub1ByZXZpb3VzVmlldyA9ICgpID0+IHtcbiAgICB0aGlzLnByZXZpb3VzVmlldygpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LnZpZXdJc0VkaXRpbmdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENoZWNrcyB3aGV0aGVyIHZpZXcgaXMgZWRpdGluZy5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59LlxuICAgKi9cbiAgdmlld0lzRWRpdGluZyA9ICgpID0+IHtcbiAgICB2YXIgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy53aW5kb3cudmlld3MuZm9yRWFjaCgodmlldzogYW55KSA9PiB7XG4gICAgICBpZiAodmlldy5pc0VkaXRpbmcgPT09IHRydWUpIHtcbiAgICAgICAgaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCBudWxsKTtcbiAgICByZXR1cm4gaXNFZGl0aW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAdHJ1LmRvYyBmdW5jdGlvblxuICAgKiBAbmFtZSB0cnVEZXNrdG9wV2luZG93Q29tcG9uZW50LmNhbk5hdmlnYXRlXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDaGVja3Mgd2hldGhlciBuYXZpZ2F0aW9uIGNhbiBvY2N1ci4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufS5cbiAgICovXG4gIGNhbk5hdmlnYXRlID0gKCkgPT4ge1xuICAgIHZhciBjYW5OYXZpZ2F0ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGVGbiAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMudmlld0lzRWRpdGluZygpKSB7XG4gICAgICAgIGNhbk5hdmlnYXRlID0gdGhpcyEuY2FuTmF2aWdhdGVGbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FuTmF2aWdhdGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGZ1bmN0aW9uXG4gICAqIEBuYW1lIHRydURlc2t0b3BXaW5kb3dDb21wb25lbnQucmVtb3ZlRm9yd2FyZFZpZXdzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmVzIGFsbCB2aWV3KHMpIGZvcndhcmQgb2YgdGhlIGFjdGl2ZSB2aWV3LlxuICAgKlxuICAgKi9cbiAgcmVtb3ZlRm9yd2FyZFZpZXdzID0gKCkgPT4ge1xuICAgIHZhciBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICB2YXIgYWN0aXZlVmlld0luZGV4ID0gdGhpcy53aW5kb3cudmlld3MuaW5kZXhPZihhY3RpdmVWaWV3KTtcbiAgICBmb3IgKHZhciBpID0gdGhpcy53aW5kb3cudmlld3MubGVuZ3RoOyBpID4gYWN0aXZlVmlld0luZGV4OyBpLS0pIHtcbiAgICAgIHRoaXMud2luZG93LnZpZXdzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5hZGRWaWV3XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmVzIGFsbCBpbmFjdGl2ZSB2aWV3KHMpIGZvbGxvd2luZyB0aGUgYWN0aXZlIHZpZXcgYW5kIGluc2VydHMgYSBuZXcgdmlldy5cbiAgICpcbiAgICovXG4gIGFkZFZpZXcgPSAodmlld0NvbmZpZ092ZXJsYXk6IGFueSkgPT4ge1xuICAgIHRoaXMucmVtb3ZlRm9yd2FyZFZpZXdzKCk7XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIGFjdGl2ZVZpZXcuYWN0aXZlID0gZmFsc2U7XG4gICAgdmFyIHZpZXdDb25maWcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldERlc2t0b3AoKS52aWV3Q29uZmlnO1xuICAgIHZhciB2aWV3Q29uZmlnSW5zdGFuY2UgPSBPYmplY3QuYXNzaWduKHt9LCB2aWV3Q29uZmlnKTtcbiAgICB2YXIgZXh0ZW5kZWQgPSBPYmplY3QuYXNzaWduKHZpZXdDb25maWdJbnN0YW5jZSwgdmlld0NvbmZpZ092ZXJsYXkpO1xuICAgIGV4dGVuZGVkLndpbmRvdyA9IHRoaXM7XG4gICAgdGhpcy53aW5kb3cudmlld3MucHVzaChleHRlbmRlZCk7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5nZXRHbG9iYWxzXG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiByZXR1cm5zIHRoZSBnbG9iYWwgdmFsdWVzLlxuICAgKlxuICAgKi9cbiAgZ2V0R2xvYmFscyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy53aW5kb3cuZ2xvYmFscztcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5maXJzdFZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICBmaXJzdFZpZXcgPSAoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhbk5hdmlnYXRlKCkgfHwgdGhpcy5kaXNhYmxlUHJldmlvdXMpIHJldHVybjtcbiAgICBpZiAodGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uKSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGxldCBhY3RpdmVWaWV3ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMud2luZG93LnZpZXdzWzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2MgZnVuY3Rpb25cbiAgICogQG5hbWUgdHJ1RGVza3RvcFdpbmRvd0NvbXBvbmVudC5maXJzdFZpZXdcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqL1xuICBsYXN0VmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVOZXh0KSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgdGhpcy5kZXNrdG9wQ3RybC5nZXRBY3RpdmVWaWV3KHRoaXMud2luZG93KS5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBsZXQgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLndpbmRvdy52aWV3c1t0aGlzLndpbmRvdy52aWV3cy5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07O1xuXG4gIHJlc2l6ZUV2ZW50SGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmlzV2luZG93SW5WaWV3cG9ydCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0cnUuZG9jIGV2ZW50XG4gICAqIEBtb2R1bGUgdHJ1LmRlc2t0b3Aud2luZG93XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKi9cbiAgb25LZXlkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5hY3RpdmUpIHJldHVybjtcbiAgICB2YXIga2V5U2VxdWVuY2UgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEtleVNlcXVlbmNlKGV2ZW50KTtcbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrbGVmdCcpIHsgLy9QcmV2aW91cyBWaWV3XG4gICAgICB0aGlzLnByZXZpb3VzVmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3JpZ2h0JykgeyAvL05leHQgVmlld1xuICAgICAgdGhpcy5uZXh0VmlldygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKGtleVNlcXVlbmNlID09PSAnYWx0K3VwJykgeyAvL0ZpcnN0IFZpZXdcbiAgICAgIHRoaXMuZmlyc3RWaWV3KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrZG93bicpIHsgLy9MYXN0IFZpZXdcbiAgICAgIHRoaXMubGFzdFZpZXcoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChrZXlTZXF1ZW5jZSA9PT0gJ2FsdCtsJykgeyAvL01heGltaXplIGxlZnRcbiAgICAgIGlmICghdGhpcy53aW5kb3cubWF4aW1pemVkKSB7XG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZUxlZnQodGhpcy53aW5kb3cpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdyaWdodCcgfHwgdGhpcy53aW5kb3cubWF4aW1pemVkID09PSAnZmlsbCcpXG4gICAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemVMZWZ0KHRoaXMud2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoa2V5U2VxdWVuY2UgPT09ICdhbHQrcicpIHsgLy9NYXhpbWl6ZSByaWdodFxuICAgICAgaWYgKCF0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuICAgICAgICB0aGlzLmRlc2t0b3BDdHJsLm1heGltaXplUmlnaHQodGhpcy53aW5kb3cpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdsZWZ0JyB8fCB0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPT09ICdmaWxsJylcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5tYXhpbWl6ZVJpZ2h0KHRoaXMud2luZG93KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHRydS5kb2Mgd2F0Y2hcbiAgICogQG1vZHVsZSB0cnUuZGVza3RvcC53aW5kb3dcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE1vbml0b3JzIHRoZSB3aW5kb3cncyBtaW5pbWl6ZWQgc3RhdGVcbiAgICpcbiAgICovXG4gIC8vJHNjb3BlLiR3YXRjaCgnd2luZG93Lm1pbmltaXplZCcsXG4gIC8vICAgICAgICAgICAgICBmdW5jdGlvbih2YWx1ZSkge1xuICAvLyAgaWYgKHZhbHVlICYmICEkc2NvcGUud2luZG93Lm1heGltaXplZCkge1xuICAvLyAgICAkc2NvcGUuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKCRzY29wZS53aW5kb3cpO1xuICAvLyAgfVxuICAvL31cbiAgLy8gICAgICAgICAgKTtcblxuICBkaXNhYmxlUHJldmlvdXMgPSB0cnVlO1xuICBkaXNhYmxlTmV4dCA9IHRydWU7XG5cbiAgYWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93Lm91dE9mQm91bmRzKSByZXR1cm47XG4gICAgdGhpcy5kZXNrdG9wQ3RybC5jbGVhckFjdGl2ZSgpO1xuICAgIHRoaXMud2luZG93LmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy53aW5kb3cuekluZGV4ID0gdGhpcy5kZXNrdG9wQ3RybC5nZXROZXh0TWF4WkluZGV4KCk7XG4gIH07XG5cbiAgbWluaW1pemUgPSAoKSA9PiB7XG4gICAgdGhpcy5kZXNrdG9wQ3RybC5taW5pbWl6ZSh0aGlzLndpbmRvdyk7XG4gIH07XG5cbiAgbWF4aW1pemUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud2luZG93Lm1heGltaXplZCkge1xuICAgICAgdGhpcy5kZXNrdG9wQ3RybC5yZXN0b3JlU2F2ZWRQb3NpdGlvbih0aGlzLndpbmRvdyk7XG4gICAgICB0aGlzLndpbmRvdy5tYXhpbWl6ZWQgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwuc2F2ZVBvc2l0aW9uKHRoaXMud2luZG93KTtcbiAgICAgIHRoaXMuZGVza3RvcEN0cmwubWF4aW1pemUodGhpcy53aW5kb3cpO1xuICAgIH1cbiAgfTtcblxuICBjbG9zZSA9ICgpID0+IHtcbiAgICB0aGlzLmRlc2t0b3BDdHJsLmNsb3NlV2luZG93KHRoaXMud2luZG93KTtcbiAgfTtcblxuICB3aW5kb3dUaXRsZU1vdXNlRG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLndpbmRvdy5tYXhpbWl6ZWQpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudGl0bGVCYXIgPSBldmVudC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50IHx8IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5vZmZzZXRMZWZ0O1xuICAgIHRoaXMueSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLm9mZnNldFRvcDtcbiAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LnNjcmVlblggLSB0aGlzLng7XG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5zY3JlZW5ZIC0gdGhpcy55O1xuXG4gICAgdGhpcy5kZXNrdG9wQ3RybC5zYXZlUG9zaXRpb24odGhpcy53aW5kb3cpO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXApO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplRXZlbnRIYW5kbGVyKTtcbiAgfTtcblxuICBwcmV2aW91c1ZpZXcgPSAoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhbk5hdmlnYXRlKCkgfHwgdGhpcy5kaXNhYmxlUHJldmlvdXMpIHJldHVybjtcbiAgICB2YXIgYWN0aXZlVmlldyA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0QWN0aXZlVmlldyh0aGlzLndpbmRvdyk7XG4gICAgdmFyIGFjdGl2ZVZpZXdJbmRleCA9IHRoaXMud2luZG93LnZpZXdzLmluZGV4T2YoYWN0aXZlVmlldyk7XG4gICAgaWYgKHRoaXMuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbikgYWN0aXZlVmlldy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBhY3RpdmVWaWV3LmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMud2luZG93LnZpZXdzW2FjdGl2ZVZpZXdJbmRleCAtIDFdLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uU3RhdGUoKTtcbiAgfTtcblxuICBuZXh0VmlldyA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuTmF2aWdhdGUoKSB8fCB0aGlzLmRpc2FibGVOZXh0KSByZXR1cm47XG4gICAgdmFyIGFjdGl2ZVZpZXcgPSB0aGlzLmRlc2t0b3BDdHJsLmdldEFjdGl2ZVZpZXcodGhpcy53aW5kb3cpO1xuICAgIHZhciBhY3RpdmVWaWV3SW5kZXggPSB0aGlzLndpbmRvdy52aWV3cy5pbmRleE9mKGFjdGl2ZVZpZXcpO1xuICAgIGlmICh0aGlzLmNhbmNlbEVkaXRpbmdPbk5hdmlnYXRpb24pIGFjdGl2ZVZpZXcuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgYWN0aXZlVmlldy5hY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLndpbmRvdy52aWV3c1thY3RpdmVWaWV3SW5kZXggKyAxXS5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvblN0YXRlKCk7XG4gIH07XG5cbiAgc2F2ZSA9ICgpID0+IHtcbiAgICB0aGlzLmRhdGFDb250ZXh0LnNhdmUoKTtcbiAgfTtcblxuICByZXZlcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5kYXRhQ29udGV4dC5yZXZlcnQoKTtcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbkNsb3NlRm4gPSB0aGlzLmRlc2t0b3BDdHJsLmdldE9wdGlvbnMoKS5jYW5DbG9zZUZuO1xuICAgIHRoaXMuY2FuTmF2aWdhdGVGbiA9IHRoaXMuZGVza3RvcEN0cmwuZ2V0T3B0aW9ucygpLmNhbk5hdmlnYXRlRm47XG4gICAgdGhpcy5jYW5jZWxFZGl0aW5nT25OYXZpZ2F0aW9uID0gdGhpcy5kZXNrdG9wQ3RybC5nZXRPcHRpb25zKCkuY2FuY2VsRWRpdGluZ09uTmF2aWdhdGlvbjtcbiAgICB0aGlzLnVwZGF0ZU5hdmlnYXRpb25TdGF0ZSgpO1xuXG4gICAgdGhpcy50cnVXaW5kb3dFdmVudEhhbmRsZXIub25BZGRWaWV3KCkuc3Vic2NyaWJlKCh3aW5kaW93QWRkVmlld0V2ZW50OiBUcnVXaW5kb3dBZGRWaWV3RXZlbnRBcmdzKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkVmlldyh3aW5kaW93QWRkVmlld0V2ZW50KTtcclxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwKTtcblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUV2ZW50SGFuZGxlcik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250YWluZXJcIlxyXG4gICAgIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctYWN0aXZlJzogd2luZG93LmFjdGl2ZSwgJ2Rlc2t0b3Atd2luZG93LW1heGltaXplZCc6IHdpbmRvdy5tYXhpbWl6ZWR9XCJcclxuICAgICBbbmdTdHlsZV09XCJ7J3otaW5kZXgnOiB3aW5kb3cuekluZGV4LCAndG9wJzogd2luZG93LnRvcCwgJ2xlZnQnOiB3aW5kb3cubGVmdCwgJ3JpZ2h0Jzogd2luZG93LnJpZ2h0LCAnYm90dG9tJzogd2luZG93LmJvdHRvbSwgJ2hlaWdodCc6IHdpbmRvdy5oZWlnaHQsICd3aWR0aCc6IHdpbmRvdy53aWR0aCwgJ21pbi1oZWlnaHQnOiB3aW5kb3cubWluSGVpZ2h0LCAnbWluV2lkdGgnOiB3aW5kb3cubWluV2lkdGh9XCJcclxuICAgICBbc3R5bGUub2Zmc2V0TGVmdC5weF09XCJ4XCJcclxuICAgICBbc3R5bGUub2Zmc2V0VG9wLnB4XT1cInlcIlxyXG4gICAgIChtb3VzZWRvd24pPVwiYWN0aXZhdGUoKVwiXHJcbiAgICAgW2hpZGRlbl09XCJ3aW5kb3cubWluaW1pemVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LWhlYWRlclwiIFtuZ0NsYXNzXT1cInsnZGVza3RvcC13aW5kb3ctbWF4aW1pemVkJzogd2luZG93Lm1heGltaXplZCwgJ2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXdpbmRvdy1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1wcmV2aW91cy1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBCYWNrIE9uZSBWaWV3IC0gW0FsdCArIExlZnRdJ1wiIChjbGljayk9XCJwcmV2aW91c1ZpZXcoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLW5leHQtaWNvbidcIiBbdG9vbHRpcF09XCInR28gRm9yd2FyZCBPbmUgVmlldyAtIFtBbHQgKyBSaWdodF0nXCIgKGNsaWNrKT1cIm5leHRWaWV3KClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1zYXZlLWljb24nXCIgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1zYXZlLWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXNhdmUtaWNvbi1oYXMtY2hhbmdlcyc6IGhhc0NoYW5nZXMoKX1cIiBbdG9vbHRpcF09XCInU2F2ZSAtIFtDdHJsICsgU10nXCIgKGNsaWNrKT1cInNhdmUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJldmVydC1pY29uJ1wiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmV2ZXJ0LWljb25cIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LXJldmVydC1pY29uLWhhcy1jaGFuZ2VzJzogaGFzQ2hhbmdlcygpfVwiIFt0b29sdGlwXT1cIidSZXZlcnQgLSBbQ3RybCArIFNoaWZ0ICsgUl0nXCIgKGNsaWNrKT1cInJldmVydCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPC90cnUtdG9vbGJhcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXRpdGxlXCIgKGRibGNsaWNrKT1cIm1heGltaXplKClcIiAobW91c2Vkb3duKT1cIndpbmRvd1RpdGxlTW91c2VEb3duKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRlc2t0b3AtY2xpY2stdGhyb3VnaFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXRleHRcIj57e3dpbmRvdy50aXRsZX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC13aW5kb3ctYWN0aW9uXCI+XHJcbiAgICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1taW5pbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidNaW5pbWl6ZSAtIFtBbHQgKyBOXSdcIiAoY2xpY2spPVwibWluaW1pemUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1tYXhpbWl6ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidHbyBGb3J3YXJkIE9uZSBWaWV3IC0gW0FsdCArIFJpZ2h0XSdcIiAoY2xpY2spPVwibWF4aW1pemUoKVwiIGNsYXNzPVwibWF4aW1pemVcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uICpuZ0lmPVwid2luZG93Lm1heGltaXplZFwiIFtpY29uXT1cIid0cnUtdG9vbGJhci1yZXN0b3JlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0dvIEZvcndhcmQgT25lIFZpZXcgLSBbQWx0ICsgUmlnaHRdJ1wiIChjbGljayk9XCJtYXhpbWl6ZSgpXCIgY2xhc3M9XCJtYXhpbWl6ZVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLWNsb3NlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0Nsb3NlIFdpbmRvdyAtIFtBbHQgKyBTSElGVCArIFhdJ1wiIChjbGljayk9XCJjbG9zZSgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwvdHJ1LXRvb2xiYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZmllbGRzZXQgbmctZGlzYWJsZWQ9XCIhd2luZG93LmFjdGl2ZVwiIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctZmllbGRzZXRcIiBbbmdDbGFzc109XCJ7J2Rlc2t0b3Atd2luZG93LW9wYWNpdHknOiAhd2luZG93LmFjdGl2ZX1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZpZXcgb2Ygd2luZG93LnZpZXdzXCI+XHJcbiAgICAgICAgPHRydS1kZXNrdG9wLXZpZXcgW3ZpZXddPVwidmlld1wiIFtoaWRkZW5dPVwiIXZpZXcuYWN0aXZlXCI+PG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+PC90cnUtZGVza3RvcC12aWV3PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPHRydS1kZXNrdG9wLXN0YXR1c2Jhcj48L3RydS1kZXNrdG9wLXN0YXR1c2Jhcj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW53XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ253J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5lXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ25lJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXN3XCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3N3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLXNlXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3NlJ1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLW5cIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInbidcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtaGFuZGxlIGRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1zXCIgdHJ1LWRlc2t0b3AtcmVzaXphYmxlIFt3aW5kb3ddPVwid2luZG93XCIgKm5nSWY9XCIhd2luZG93Lm1heGltaXplZFwiIFtkaXJlY3Rpb25dPVwiJ3MnXCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWhhbmRsZSBkZXNrdG9wLXdpbmRvdy1yZXNpemFibGUtd1wiIHRydS1kZXNrdG9wLXJlc2l6YWJsZSBbd2luZG93XT1cIndpbmRvd1wiICpuZ0lmPVwiIXdpbmRvdy5tYXhpbWl6ZWRcIiBbZGlyZWN0aW9uXT1cIid3J1wiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atd2luZG93LXJlc2l6YWJsZS1oYW5kbGUgZGVza3RvcC13aW5kb3ctcmVzaXphYmxlLWVcIiB0cnUtZGVza3RvcC1yZXNpemFibGUgW3dpbmRvd109XCJ3aW5kb3dcIiAqbmdJZj1cIiF3aW5kb3cubWF4aW1pemVkXCIgW2RpcmVjdGlvbl09XCInZSdcIj48L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormsModule } from "@angular/forms";
|
|
4
|
+
import { TruColumn } from "./tru-column";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TruColumnModule {
|
|
7
|
+
}
|
|
8
|
+
TruColumnModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
TruColumnModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: TruColumnModule, declarations: [TruColumn], imports: [CommonModule, FormsModule], exports: [TruColumn] });
|
|
10
|
+
TruColumnModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruColumnModule, imports: [CommonModule, FormsModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruColumnModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [TruColumn],
|
|
15
|
+
imports: [CommonModule, FormsModule],
|
|
16
|
+
exports: [TruColumn]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbHVtbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2NvbHVtbi90cnUtY29sdW1uLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPekMsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFKWCxTQUFTLGFBQ2QsWUFBWSxFQUFFLFdBQVcsYUFDekIsU0FBUzs2R0FFUixlQUFlLFlBSGhCLFlBQVksRUFBRSxXQUFXOzJGQUd4QixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgVHJ1Q29sdW1uIH0gZnJvbSBcIi4vdHJ1LWNvbHVtblwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtUcnVDb2x1bW5dLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICBleHBvcnRzOiBbVHJ1Q29sdW1uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1Q29sdW1uTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TruColumn {
|
|
4
|
+
constructor() { }
|
|
5
|
+
}
|
|
6
|
+
TruColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
TruColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: TruColumn, selector: "tru-column", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-vList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruColumn, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'tru-column', template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-vList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] }]
|
|
11
|
+
}], ctorParameters: function () { return []; } });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvY29sdW1uL3RydS1jb2x1bW4udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2NvbHVtbi90cnUtY29sdW1uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsZ0JBQWdCLENBQUM7O3NHQUROLFNBQVM7MEZBQVQsU0FBUyxrRENQdEIsOFNBV0E7MkZESmEsU0FBUztrQkFMckIsU0FBUzsrQkFDRSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY29sdW1uLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1jb2x1bW4uY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUNvbHVtbiB7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG4iLCI8bGk+XHJcbiAgPGRpdiBjbGFzcz1cInR2bC1jb250YWluZXItZ3JpZCBqcy1ncmlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1ncmlkLWNvbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1wYW5lbFwiPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInR2bC1jb250YWluZXItdkxpc3RcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2xpPlxyXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormsModule } from "@angular/forms";
|
|
4
|
+
import { TruForm } from "./tru-form";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TruFormModule {
|
|
7
|
+
}
|
|
8
|
+
TruFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
TruFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: TruFormModule, declarations: [TruForm], imports: [CommonModule, FormsModule], exports: [TruForm] });
|
|
10
|
+
TruFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruFormModule, imports: [CommonModule, FormsModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruFormModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [TruForm],
|
|
15
|
+
imports: [CommonModule, FormsModule],
|
|
16
|
+
exports: [TruForm]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWZvcm0tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9mb3JtL3RydS1mb3JtLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFPckMsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxPQUFPLGFBQ1osWUFBWSxFQUFFLFdBQVcsYUFDekIsT0FBTzsyR0FFTixhQUFhLFlBSGQsWUFBWSxFQUFFLFdBQVc7MkZBR3hCLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBUcnVGb3JtIH0gZnJvbSBcIi4vdHJ1LWZvcm1cIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVHJ1Rm9ybV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcnVGb3JtXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1Rm9ybU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TruForm {
|
|
4
|
+
constructor(element) {
|
|
5
|
+
this.element = element;
|
|
6
|
+
this.updateLayout = () => {
|
|
7
|
+
let rowComponentElements = this.element.nativeElement.querySelectorAll('.tvl-container-hList');
|
|
8
|
+
rowComponentElements.forEach((rowComponentElement) => {
|
|
9
|
+
var numberOfItems = rowComponentElement.children.length;
|
|
10
|
+
var childWidth = 100 / numberOfItems;
|
|
11
|
+
[...rowComponentElement.children].forEach((rowChildElement) => {
|
|
12
|
+
rowChildElement.style['width'] = childWidth + '%';
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
ngAfterViewInit() {
|
|
18
|
+
this.updateLayout();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
TruForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruForm, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
TruForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: TruForm, selector: "tru-form", ngImport: i0, template: "<div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruForm, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'tru-form', template: "<div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["button{margin-right:5px}.button-container{margin-bottom:10px}\n"] }]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2Zvcm0vdHJ1LWZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2Zvcm0vdHJ1LWZvcm0uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLE9BQU87SUFFbEIsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQU0vQixpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUMxQixJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDL0Ysb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQXdCLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEQsSUFBSSxVQUFVLEdBQUcsR0FBRyxHQUFHLGFBQWEsQ0FBQztnQkFDckMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQW9CLEVBQUUsRUFBRTtvQkFDakUsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO0lBZjBDLENBQUM7SUFFNUMsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOztvR0FOVSxPQUFPO3dGQUFQLE9BQU8sZ0RDUHBCLDJRQVNBOzJGREZhLE9BQU87a0JBTG5CLFNBQVM7K0JBQ0UsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1mb3JtLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1mb3JtLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVGb3JtIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlTGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxheW91dCA9ICgpID0+IHtcclxuICAgIGxldCByb3dDb21wb25lbnRFbGVtZW50cyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dmwtY29udGFpbmVyLWhMaXN0Jyk7XHJcbiAgICByb3dDb21wb25lbnRFbGVtZW50cy5mb3JFYWNoKChyb3dDb21wb25lbnRFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgdmFyIG51bWJlck9mSXRlbXMgPSByb3dDb21wb25lbnRFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgdmFyIGNoaWxkV2lkdGggPSAxMDAgLyBudW1iZXJPZkl0ZW1zO1xyXG4gICAgICBbLi4ucm93Q29tcG9uZW50RWxlbWVudC5jaGlsZHJlbl0uZm9yRWFjaCgocm93Q2hpbGRFbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICByb3dDaGlsZEVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gPSBjaGlsZFdpZHRoICsgJyUnO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1ncmlkIGpzLWdyaWRcIj5cclxuICA8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1ncmlkLWNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInR2bC1jb250YWluZXItcGFuZWxcIj5cclxuICAgICAgPHVsIGNsYXNzPVwidHZsLWNvbnRhaW5lci1oTGlzdFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|