@esfaenza/es-diagrams 15.2.5 → 16.2.0
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 → esm2022}/lib/components/es-diagram.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/esdiagram.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/extensions/ReactiveExtensions.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/es-diagram.dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/es-diagram.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/esfaenza-es-diagrams.mjs +16 -16
- package/{fesm2020 → fesm2022}/esfaenza-es-diagrams.mjs.map +1 -1
- package/lib/components/es-diagram.component.d.ts +1 -1
- package/package.json +9 -15
- package/fesm2015/esfaenza-es-diagrams.mjs +0 -1396
- package/fesm2015/esfaenza-es-diagrams.mjs.map +0 -1
- /package/{esm2020 → esm2022}/esfaenza-es-diagrams.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/extensions/ResizeSensor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/EsDiagramModuleConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/contextmenu/ContextMenuCommand.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/contextmenu/ContextMenuOptions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/grouping/ExpandCollapseOptions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/nodes/NodeHTMLTemplate.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/nodes/NodeTemplate.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/component/nodes/ZoomLevelBasedTemplate.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/BreadthFirstLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/CircleLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/ConcentricLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/CoseLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/DagreLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/GridLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/NullLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/PresetLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/RandomLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/base/AnimateLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/base/BaseLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/layouts/base/ShapedLayoutOptionsImpl.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -470,10 +470,10 @@ export class EsDiagramComponent {
|
|
|
470
470
|
el.position = positionCache[el.data.id];
|
|
471
471
|
}
|
|
472
472
|
}
|
|
473
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramComponent, deps: [{ token: i1.EsDiagramService, optional: true }, { token: i2.EsDiagramDispatcher, optional: true }, { token: i3.ReactiveExtensions }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
474
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EsDiagramComponent, selector: "es-diagram", inputs: { name: "name", UseContextMenu: "UseContextMenu", ContextMenuOptions: "ContextMenuOptions", UseExpandCollapse: "UseExpandCollapse", ExpandCollapseOptions: "ExpandCollapseOptions", NativeOptions: "NativeOptions", Elements: "Elements", NodeStyles: "NodeStyles", EdgeStyles: "EdgeStyles", Readonly: "Readonly", AutoupdateSize: "AutoupdateSize", PreserveElementsPosition: "PreserveElementsPosition", AnimateLayoutChanges: "AnimateLayoutChanges", SmartSelection: "SmartSelection", SingleSelection: "SingleSelection", SmartSelectionStyles: "SmartSelectionStyles", ResizeThrottleTime: "ResizeThrottleTime", Layout: "Layout", NodeHTMLTemplates: "NodeHTMLTemplates", ExtensionModulesImporter: "ExtensionModulesImporter", ExtensionModulesApplyer: "ExtensionModulesApplyer" }, outputs: { onNodeClick: "onNodeClick", onNodeSelection: "onNodeSelection", onLayoutDone: "onLayoutDone", onLoaded: "onLoaded" }, viewQueries: [{ propertyName: "cyGraph", first: true, predicate: ["graph"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] }); }
|
|
473
475
|
}
|
|
474
|
-
|
|
475
|
-
EsDiagramComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EsDiagramComponent, selector: "es-diagram", inputs: { name: "name", UseContextMenu: "UseContextMenu", ContextMenuOptions: "ContextMenuOptions", UseExpandCollapse: "UseExpandCollapse", ExpandCollapseOptions: "ExpandCollapseOptions", NativeOptions: "NativeOptions", Elements: "Elements", NodeStyles: "NodeStyles", EdgeStyles: "EdgeStyles", Readonly: "Readonly", AutoupdateSize: "AutoupdateSize", PreserveElementsPosition: "PreserveElementsPosition", AnimateLayoutChanges: "AnimateLayoutChanges", SmartSelection: "SmartSelection", SingleSelection: "SingleSelection", SmartSelectionStyles: "SmartSelectionStyles", ResizeThrottleTime: "ResizeThrottleTime", Layout: "Layout", NodeHTMLTemplates: "NodeHTMLTemplates", ExtensionModulesImporter: "ExtensionModulesImporter", ExtensionModulesApplyer: "ExtensionModulesApplyer" }, outputs: { onNodeClick: "onNodeClick", onNodeSelection: "onNodeSelection", onLayoutDone: "onLayoutDone", onLoaded: "onLoaded" }, viewQueries: [{ propertyName: "cyGraph", first: true, predicate: ["graph"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] });
|
|
476
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramComponent, decorators: [{
|
|
476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramComponent, decorators: [{
|
|
477
477
|
type: Component,
|
|
478
478
|
args: [{ selector: 'es-diagram', template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] }]
|
|
479
479
|
}], ctorParameters: function () { return [{ type: i1.EsDiagramService, decorators: [{
|
|
@@ -534,4 +534,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
534
534
|
}], onLoaded: [{
|
|
535
535
|
type: Output
|
|
536
536
|
}] } });
|
|
537
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL2NvbXBvbmVudHMvZXMtZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL2NvbXBvbmVudHMvZXMtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBa0JqSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJMUQsT0FBTyxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUM7Ozs7O0FBQ2pDLGNBQWMsQ0FBQSxNQUFNLFNBQVMsR0FBUyxHQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBTyxHQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFFNUU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBK043Qjs7OztPQUlHO0lBQ0gsWUFBZ0MsT0FBeUIsRUFBc0IsVUFBK0IsRUFBVSxJQUF3QjtRQUFoSCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFzQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQW9CO1FBN05oSjs7V0FFRztRQUNNLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFM0I7O1dBRUc7UUFDTSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVN6Qzs7V0FFRztRQUNNLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU81Qzs7OztXQUlHO1FBQ00sa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBc0J4RDs7V0FFRztRQUNNLG1CQUFjLEdBQVksSUFBSSxDQUFD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QUFLO2dCQW1CRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBbUJHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQgeyBDb250ZXh0TWVudU9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvY29tcG9uZW50L2NvbnRleHRtZW51L0NvbnRleHRNZW51T3B0aW9ucyc7XHJcbmltcG9ydCB7IEV4cGFuZENvbGxhcHNlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy9jb21wb25lbnQvZ3JvdXBpbmcvRXhwYW5kQ29sbGFwc2VPcHRpb25zJztcclxuaW1wb3J0IHsgTm9kZUhUTUxUZW1wbGF0ZSB9IGZyb20gJy4uL21vZGVscy9jb21wb25lbnQvbm9kZXMvTm9kZUhUTUxUZW1wbGF0ZSc7XHJcblxyXG5pbXBvcnQgeyBCcmVhZHRoRmlyc3RMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0JyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgQ2lyY2xlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9DaXJjbGVMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IENvbmNlbnRyaWNMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0NvbmNlbnRyaWNMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IENvc2VMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0Nvc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IERhZ3JlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9EYWdyZUxheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgR3JpZExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvR3JpZExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgTnVsbExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvTnVsbExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgUHJlc2V0TGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9QcmVzZXRMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IFJhbmRvbUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuaW1wb3J0IHsgRXNEaWFncmFtU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VzLWRpYWdyYW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEVzRGlhZ3JhbURpc3BhdGNoZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9lcy1kaWFncmFtLmRpc3BhdGNoZXInO1xyXG5pbXBvcnQgeyBSZXNpemVTZW5zb3IgfSBmcm9tIFwiLi4vZXh0ZW5zaW9ucy9SZXNpemVTZW5zb3JcIjtcclxuXHJcbmltcG9ydCB7IFJlYWN0aXZlRXh0ZW5zaW9ucyB9IGZyb20gJy4uL2V4dGVuc2lvbnMvUmVhY3RpdmVFeHRlbnNpb25zJztcclxuXHJcbmltcG9ydCAqIGFzIGN5XyBmcm9tICdjeXRvc2NhcGUnO1xyXG4vKiogQGlnbm9yZSAqL2NvbnN0IGN5dG9zY2FwZSA9ICg8YW55PmN5XykuZGVmYXVsdD8gKDxhbnk+Y3lfKS5kZWZhdWx0OiBjeV87XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBjaGUgc2kgb2NjdXBhIGRpIGdyYWZpY2FyZSB1biBkaWFncmFtbWEgZSBkaSBnZXN0aXJuZSBpbCBjaWNsbyBkaSB2aXRhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VzLWRpYWdyYW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lcy1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lcy1kaWFncmFtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVzRGlhZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpZmVyaW1lbnRvIGFsbCdvZ2dldHRvIEhUTUwgc3UgY3VpIGNyZWFyZSBpbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdncmFwaCcpIGN5R3JhcGg6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5vbWUgZGVsIGRpYWdyYW1tYSwgZm9uZGFtZW50YWxlIGFzc2VnbmFybG8gcGVyIHBlcm1ldHRlcmUgYWxsYSBsaWJyZXJpYSBkaSBzY2hlZHVsYXJuZSBsYSBjcmVhemlvbmVcclxuICAgKi9cclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgdXRpbGl6emFyZSBpbCBtZW7DuSBjb250ZXN0dWFsZSBhIHJ1b3RhIGF0dG9ybm8gYWQgb2duaSBub2RvXHJcbiAgICovXHJcbiAgQElucHV0KCkgVXNlQ29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGxlIG9wemlvbmkgZGVsIG1lbsO5IGNvbnRlc3R1YWxlIHF1YWxvcmEgKipVc2VDb250ZXh0TWVudSoqIGZvc3NlICoqdHJ1ZSoqLlxyXG4gICAqIFxyXG4gICAqIE9nbmkgZWxlbWVudG8gZGkgcXVlc3RvIGFycmF5IMOoIHVuIHNlbGV0dG9yZSBjb24gaWwgbWVudSBkYSBtb3N0cmFyZSBwZXIgcXVlbGxhIGNhc2lzdGljYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIENvbnRleHRNZW51T3B0aW9uczogQ29udGV4dE1lbnVPcHRpb25zW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERpY2UgYWwgY29tcG9uZW50ZSBzZSBpbCBkaWFncmFtbWEgZGV2ZSB1dGlsaXp6YXJlIGlsIHNpc3RlbWEgZGkgZXN0ZW5zaW9uZSBwZXIgbCdleHBhbmQgZSBjb2xsYXBzZSBkZWkgZ3J1cHBpXHJcbiAgICovXHJcbiAgQElucHV0KCkgVXNlRXhwYW5kQ29sbGFwc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B6aW9uaSBuYXRpdmUgZGVsbCdlc3RlbnNpb25lIGV4cGFuZC1jb2xsYXBzZSwgdmVuZ29ubyBvdnZpYW1lbnRlIHV0aWxpenphdGUgc29sbyBzZSAqKlVzZUV4cGFuZENvbGxhcHNlKiogw6ggKip0cnVlKipcclxuICAgKi9cclxuICBASW5wdXQoKSBFeHBhbmRDb2xsYXBzZU9wdGlvbnM6IEV4cGFuZENvbGxhcHNlT3B0aW9ucztcclxuXHJcbiAgLyoqXHJcbiAgICogQmxvY2NvIGNvbXBsZXRvIGRlbGxlIG9wemlvbmksIGFsdGVybmF0aXZvIGFsbCdhc3NlZ25hemlvbmUgZGkgKipFbGVtZW50cyoqLCAqKk5vZGVTdHlsZXMqKiwgKipFZGdlU3R5bGVzKiosIGUgKipMYXlvdXQqKi5cclxuICAgKiBcclxuICAgKiBRdWFsb3JhIGVudHJhbWJlIHZlbmlzc2VybyBzcGVjaWZpY2F0ZSB2ZXJyw6AgZWZmZXR0dWF0YSB1bid1bmlvbmUgZnJhIHF1ZXN0ZSBvcHppb25pIGUgcXVlbGxlIHNwZWNpZmljYXRlLCBkYW5kbyBwcmlvcml0w6AgYWxsZSBzcGVjaWZpY2F0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE5hdGl2ZU9wdGlvbnM6IGN5dG9zY2FwZS5DeXRvc2NhcGVPcHRpb25zID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaXppb25lIGRlZ2xpIGVsZW1lbnRpIGRhIG1vc3RyYXJlIG5lbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBASW5wdXQoKSBFbGVtZW50czogY3l0b3NjYXBlLkVsZW1lbnREZWZpbml0aW9uW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaXppb25lIGRlZ2xpIHN0aWxpIGRlaSBub2RpXHJcbiAgICovXHJcbiAgQElucHV0KCkgTm9kZVN0eWxlczogY3l0b3NjYXBlLkNzcy5Ob2RlO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbml6aW9uZSBkZWdsaSBzdGlsaSBkZWkgY29sbGVnYW1lbnRpIGZyYSBpIG5vZGlcclxuICAgKi9cclxuICBASW5wdXQoKSBFZGdlU3R5bGVzOiBjeXRvc2NhcGUuQ3NzLkVkZ2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluIHVuIGRpYWdyYW1tYSBpbiBzb2xhIGxldHR1cmEgdHV0dGUgbGUgaW50ZXJhemlvbmkgdXRlbnRlIHNvbm8gYW5udWxsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgUmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEFnZ2lvcm5hIGF1dG9tYXRpY2FtZW50ZSBsZSBkaW1lbnNpb25pIGRlbCBkaWFncmFtbWEgcXVhbmRvIGNhbWJpYW5vIGxlIGRpbWVuc2lvbmkgZGVsbGEgZmluZXN0cmFcclxuICAgKi9cclxuICBASW5wdXQoKSBBdXRvdXBkYXRlU2l6ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBkaSBtYW50ZW5lcmUgbGEgcG9zaXppb25lIGRlaSBub2RpIHF1YWxvcmEgdmVuaXNzZXJvIGNhbWJpYXRpIGRhbGwnSW5wdXQgKipFbGVtZW50cyoqLlxyXG4gICAqIFxyXG4gICAqIFNlIGwnSUQgZGkgdW4gbm9kbyDDqCB1Z3VhbGUgYWxsJ0lEIGRpIHVuIG5vZG8gcHJlc2VudGUgaW4gcHJlY2VkZW56YSwgaWwgbnVvdm8gbm9kbyBuZSBlcmVkaXRlcsOgIGxhIHBvc2l6aW9uZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFByZXNlcnZlRWxlbWVudHNQb3NpdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFF1YWxvcmEgdmVuaXNzZSBtb2RpZmljYXRvIGwnSW5wdXQgKipFbGVtZW50cyoqLCBwaXV0dG9zdG8gY2hlIG1ldHRlcmUgc2VtcGxpY2VtZW50ZSBpbCBudW92byBFbGVtZW50byBpbiBiYXNlIGFsIExheW91dCBwcmVjZWRlbnRlLCBhcHBsaWNhIGFuY2hlIHVuJ2FuaW1hemlvbmUgXHJcbiAgICogXHJcbiAgICogRnVuemlvbmEgc29sYW1lbnRlIHNlIGlsICoqTGF5b3V0KiogY29ycmVudGUgZGVsIGRpYWdyYW1tYSBzdXBwb3J0YSBsZSBhbmltYXppb25pXHJcbiAgICovXHJcbiAgQElucHV0KCkgQW5pbWF0ZUxheW91dENoYW5nZXM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBBdHRpdmEgdW5hIG1vZGFsaXTDoCBkaSBzZWxlemlvbmUgXCJzbWFydFwiLi4uIG8gcGVybG9tZW5vIFwic21hcnRlclwiIGRlbCBkZWZhdWx0IGRpIEN5dG9zY2FwZS5cclxuICAgKiBcclxuICAgKiAtIElsIGNsaWNrIGRpIHVuIGVsZW1lbnRvIG5vbiBzZWxlemlvbmF0byBsbyBzZWxlemlvbmFcclxuICAgKiAtIElsIGNsaWNrIGRpIHVuIGVsZW1lbnRvIHNlbGV6aW9uYXRvIGxvIGRlc2VsZXppb25hXHJcbiAgICogLSBMbyBzdGF0byBkaSBzZWxlemlvbmUgdmllbmUgcGVyc2lzdGl0byBzdWxsJ29nZ2V0dG8gb3JpZ2luYWxlIGludmVjZSBkaSByaW1hbmVyZSBpbiB1biBpbnRlcm5hbFxyXG4gICAqIC0gQWxsJ2Fzc2VnbmF6aW9uZSBkaSBvZ2dldHRpIHNlbGV6aW9uYXRpLCBxdWVzdGkgdmVuZ29ubyBtYXJjYXRpIGNvcnJldHRhbWVudGUgY29uIGwnb3ZlcmxheSBkaSBzZWxlemlvbmVcclxuICAgKiBcclxuICAgKiBOLkI6IGxhIGNoaWFtYXRhIGFsbCdldmVudG8gKipvbk5vZGVDbGljayoqIGF2dmllbmUgKipET1BPKiogbGEgZ2VzdGlvbmUgZGVsbGEgc2VsZXppb25lXHJcbiAgICovXHJcbiAgQElucHV0KCkgU21hcnRTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGRpIHNlbGV6aW9uYXJlIHVuIGVsZW1lbnRvIHBlciB2b2x0YSBxdWFsb3JhICoqU21hcnRTZWxlY3Rpb24qKiBmb3NzZSBhdHRpdm9cclxuICAgKi9cclxuICBASW5wdXQoKSBTaW5nbGVTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ1NTIHBlciBsYSBncmFmaWNhemlvbmUgZGVsbGEgc2VsZXppb25lIGRlaSBub2RpLiBRdWFuZG8gdW4gbm9kbyB2ZXJyw6Agc2VsZXppb25hdG8gYXZyw6Agc29wcmEgZGkgc2UgdW4gb3ZlcmxheSBjaGUgJ3Nib3JkYScgZGkgKipvdmVybGF5LXBhZGRpbmcqKiBwaXhlbCxcclxuICAgKiBkaSBjb2xvcmUgKipvdmVybGF5LWNvbG9yKiogZSBjb24gdW4gb3BhY2l0w6AgKipvdmVybGF5LW9wYWNpdHkqKlxyXG4gICAqIFxyXG4gICAqIEFzc2VnbmFuZG8gXCJ7fVwiIGEgcXVlc3RvIGlucHV0LCBsYSBTbWFydCBzZWxlY3Rpb24gdmllbmUgZ2VzdGl0YSBtYSBsYSBnZXN0aW9uZSBncmFmaWNhIMOoIGFmZmlkYXRhIGFsbCd1dGVudGUsXHJcbiAgICogYWQgZXNlbXBpbyB1c2FuZG8gZGVpICoqTm9kZUhUTUxUZW1wbGF0ZXMqKiBjaGUgZGVmaW5pc2Nhbm8gc2VsZXR0b3JpIHN1IG5vZGkgXCI6c2VsZWN0ZWRcIlxyXG4gICAqIFxyXG4gICAqIEBkZWZhdWx0IHsnb3ZlcmxheS1jb2xvcic6J2JsdWUnLCdvdmVybGF5LW9wYWNpdHknOjAuNSwnb3ZlcmxheS1wYWRkaW5nJzo3fVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFNtYXJ0U2VsZWN0aW9uU3R5bGVzOiB7ICdvdmVybGF5LWNvbG9yJzogc3RyaW5nLCAnb3ZlcmxheS1vcGFjaXR5JzogbnVtYmVyLCAnb3ZlcmxheS1wYWRkaW5nJzogbnVtYmVyIH0gPSBudWxsXHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmlvZG8gZGkgdGhyb3R0bGUgZGEgcXVhbmRvIHZpZW5lIGVmZmV0dHVhdG8gdW4gcmVzaXplIGEgcXVhbmRvIHJpY2FsY29sYXJlIGxlIGRpbWVuc2lvbmkgZGVsIGRpYWdyYW1tYS5cclxuICAgKiBcclxuICAgKiBQdcOyIGVzc2VyZSB0ZW51dG8gYSAwIChyZWRyYXcgaXN0YW50YW5lbykgZmluY2jDqSBub24gY2kgc29ubyBwcm9ibGVtaSBkaSBwcmVzdGF6aW9uaSBjb24gZXZlbnR1YWxtZW50ZSB0YW50aSByZXNpemUgYSBwb2NhIGRpc3RhbnphIGwndW5vIGRhbGwnYWx0cm8uXHJcbiAgICovXHJcbiAgQElucHV0KCkgUmVzaXplVGhyb3R0bGVUaW1lOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBMYXlvdXQgZGkgb3JkaW5hbWVudG8gZGVpIG5vZGlcclxuICAgKi9cclxuICBASW5wdXQoKSBMYXlvdXQ6IEJyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsIHwgQ2lyY2xlTGF5b3V0T3B0aW9uc0ltcGwgfCBDb25jZW50cmljTGF5b3V0T3B0aW9uc0ltcGwgfFxyXG4gICAgQ29zZUxheW91dE9wdGlvbnNJbXBsIHwgRGFncmVMYXlvdXRPcHRpb25zSW1wbCB8IEdyaWRMYXlvdXRPcHRpb25zSW1wbCB8IE51bGxMYXlvdXRPcHRpb25zSW1wbCB8IFByZXNldExheW91dE9wdGlvbnNJbXBsIHxcclxuICAgIFJhbmRvbUxheW91dE9wdGlvbnNJbXBsO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBIVE1MIGRhIGFwcGxpY2FyZSBhaSBub2RpIHBlciBkYXJnbGkgc3RpbGkgcGFydGljb2xhcmksIGRpdmVyc2kgZGFsbGUgc2hhcGUgZGkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE5vZGVIVE1MVGVtcGxhdGVzOiBOb2RlSFRNTFRlbXBsYXRlW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm5pc2NlIGlsIGdsb2JhbCBkZWxsYSBsaWJyZXJpYSAobmFtZXNwYWNlICoqY3l0b3NjYXBlKiopIGUgc2kgYXNwZXR0YSBjaGUgZG9wbyBvcGVyYXppb25pIGRpIGltcG9ydGF6aW9uZSBcclxuICAgKiBsYXNjaWF0ZSBhbGwndXRlbnRlIHZlbmdhbm8gYWdnaXVudGkgdHV0dGkgaSBtb2R1bGkgZGVzaWRlcmF0aS4gXHJcbiAgICogXHJcbiAgICogw4ggKipmb25kYW1lbnRhbGUqKiBjaGUgaWwgcHJpbW8gcGFyYW1ldHJvIChpbCBub21lIGRlbCBtb2R1bG8pIHNpYSB1Z3VhbGUgYSBjacOyIGRpIGN1aSB2aWVuZSBmYXR0byBpbCByZXF1aXJlIGluIG1vZG8gY2hlIGxhIGxpYnJlcmlhXHJcbiAgICogcG9zc2EgY29udHJvbGxhcmUgY2hlIGlsIG1vZHVsbyBpbXBvcnRhdG8gbm9uIHNpYSBnacOgIHN0YXRvIGltcG9ydGF0byBpbiBwcmVjZWRlbnphXHJcbiAgICogXHJcbiAgICogIyMgRXNlbXBpbzpcclxuICAgKiBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogKGdsb2JhbCkgPT4ge1xyXG4gICAqICAgIHJldHVybiBpbXBvcnQoXCJjeXRvc2NhcGUtZXh0ZW5zaW9uLWxpYnJhcnlcIikudGhlbihtb2R1bGUgPT4gZ2xvYmFsLnVzZShcImN5dG9zY2FwZS1leHRlbnNpb24tbGlicmFyeVwiLCBtb2R1bGUuZGVmYXVsdCkpO1xyXG4gICAqIFxyXG4gICAqICAgIC4uLlxyXG4gICAqIH1cclxuICAgKiBgYGBcclxuICAgKi9cclxuICBASW5wdXQoKSBFeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXI6IChnbG9iYWw6IHsgdXNlOiAobW9kdWxlTmFtZTogc3RyaW5nLCBtb2R1bGU6IHZvaWQgfCBjeXRvc2NhcGUuRXh0KSA9PiB2b2lkIH0pID0+IFByb21pc2U8YW55PiA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm5pc2NlIGwnaXN0YW56YSBhdHR1YWxlIGRpIEN5dG9zY2FwZSBkYSBjdWkgw6ggcG9zc2liaWxlIHByZW5kZXJlIGxlIGxpYnJlcmllIGRpIGVzdGVuc2lvbmUgY2FyaWNhdGUgaW4gKipFeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXIqKlxyXG4gICAqIGUgY29uZmlndXJhcmxlIGluIGJhc2UgYWkgY29tcG9ydGFtZW50aSBzcGVjaWZpY2lcclxuICAgKiBcclxuICAgKiAjIyBFc2VtcGlvOlxyXG4gICAqIFxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiAoY3l0b3NjYXBlQ29yZSkgPT4ge1xyXG4gICAqICAgIC8vIEZhcmUgcXVlc3RvIGxhdm9ybyBwZXIgb2duaSBlc3RlbnNpb25lIGNhcmljYXRhXHJcbiAgICogICAgbGV0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSB7IC4uLiB9O1xyXG4gICAqICAgIGxldCBleHRlbnNpb25JbnN0YW5jZSA9IGN5dG9zY2FwZUNvcmUuZXh0ZW5zaW9uTGlicmFyeShleHRlbnNpb25Db25maWd1cmF0aW9uKTtcclxuICAgKiAgICBleHRlbnNpb25JbnN0YW5jZS5kb1NvbWV0aGluZ1NwZWNpZmljVG9UaGlzRXh0ZW5zaW9uKCk7XHJcbiAgICogXHJcbiAgICogICAgLi4uXHJcbiAgICogfVxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEV4dGVuc2lvbk1vZHVsZXNBcHBseWVyOiAoY3l0b3NjYXBlQ29yZTogY3l0b3NjYXBlLkNvcmUpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWwgY2xpY2sgZGkgdW4gbm9kbywgY29udGllbmUgbCdvZ2dldHRvICoqZGF0YSoqIGRlbCBub2RvIGluIHF1ZXN0aW9uZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbk5vZGVDbGljazogRXZlbnRFbWl0dGVyPHsgZGF0YTogYW55IH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IGFueSB9PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWxsYSBzZWxlemlvbmUgbyBkZXNlbGV6aW9uZSBkaSB1biBub2RvLCBjb250aWVuZSBsJ29nZ2V0dG8gKipkYXRhKiogZGVsIG5vZG8gaW4gcXVlc3Rpb25lIGUgaW5mb3JtYXppb25pIHN1bCBzdW8gc3RhdG8gZGkgc2VsZXppb25lXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uTm9kZVNlbGVjdGlvbjogRXZlbnRFbWl0dGVyPHsgZGF0YTogYW55LCBzZWxlY3RlZDogYm9vbGVhbiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBkYXRhOiBhbnksIHNlbGVjdGVkOiBib29sZWFuIH0+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBsYW5jaWF0byBhbCB0ZXJtaW5lIGRlbCBMYXlvdXRpbmcuIFNlIHNpIHZ1b2xlIGVzZWd1aXJlIGNvZGljZSBkb3BvIGNoZSBpbCBMYXlvdXQgw6ggZmF0dG8gZSBjb21wbGV0YW1lbnRlIGdyYWZpY2F0bywgcXVlc3RvIMOoIGlsIHB1bnRvXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uTGF5b3V0RG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWwgdGVybWluZSBkZWwgY2FyaWNhbWVudG8gZGVsIGRpYWdyYW1tYVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkxvYWRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBWYXJpYWJpbGUgc3UgY3VpIHNhbHZhcnNpIHNlIGkgbm9kaSBoYW5ubyB1bmEgZ2VyYXJjaGlhIGEgZ3J1cHBpIG8gbm8uIFNlcnZlIHBlciBwb2kgY2FyaWNhcmUgbCdlc3RlbnNpb25lIGV4cGFuZC1jb2xsYXBzZSBxdWFsb3JhIGZvc3NlIHJpY2hpZXN0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgTm9kZXNIaWVyYXJjaHk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBpbCByZW5kZXJpbmcgZGVsIGRpYWdyYW1tYSDDqCB0ZXJtaW5hdG9cclxuICAgKi9cclxuICBwcml2YXRlIFJlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIElzdGFuemEgZGVsIGRpYWdyYW1tYSBhdHR1YWxtZW50ZSBpbiB1c29cclxuICAgKi9cclxuICBwdWJsaWMgY3k6IGN5dG9zY2FwZS5Db3JlXHJcblxyXG4gIC8qKlxyXG4gICAqIEFwaSBkZWxsJ2VzdGVuc2lvbmUgZXhwYW5kLWNvbGxhcHNlIHBlciBwZXJtZXR0ZXJlIGRpIGVmZmV0dHVhcmUgb3BlcmF6aW9uaSBkYWxsJ2VzdGVybm8gZGVsIGRpYWdyYW1tYS4gVmVuZ29ubyB2YWxvcml6emF0ZSBzZSAqKlVzZUV4cGFuZENvbGxhcHNlKiogw6ggKip0cnVlKipcclxuICAgKi9cclxuICBwdWJsaWMgRXhwYW5kQ29sbGFwc2VBcGk6IGFueSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwaSBkZWxsJ2VzdGVuc2lvbmUgaHRtbC1ub2RlIHBlciBwZXJtZXR0ZXJlIGRpIGVmZmV0dHVhcmUgb3BlcmF6aW9uaSBkYWxsJ2VzdGVybm8gZGVsIGRpYWdyYW1tYS4gVmVuZ29ubyB2YWxvcml6emF0ZSBzZSBzb25vIGltcG9zdGF0aSBkZWkgKipOb2RlSFRNTFRlbXBsYXRlcyoqXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBIdG1sTm9kZUFwaTogYW55ID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogT3NzZXJ2YXRvcmUgZGVsbGUgbW9kaWZpY2hlIGFsIGNvbnRlbml0b3JlIGRlbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVTZW5zb3I7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpZmVyaW1lbnRvIGFsbCd1bHRpbW8gbGF5b3V0IHV0aWxpenphdG8uIFZpZW5lIHJpYXBwbGljYXRvIHF1YWxvcmEgdmVuaXNzZSBjYW1iaWF0byBsJ0lucHV0ICoqRWxlbWVudHMqKi5cclxuICAgKiBcclxuICAgKiBOb24gdXRpbGl6em8gaWwgbWFrZUxheW91dHMgcGVyY2jDqSBhbHRyaW1lbnRpIHJpc2NoaWVyZWkgZGkgY3JlYXJlIHVuIGxheW91dCByaWZlcml0byBhIFggZWxlbWVudGksIG5lIGFnZ2l1bmdvIDEsIHJpYXBwbGljbyBpbCBMYXlvdXQgXHJcbiAgICogbWEgbWkgdmllbmUgcmlhcHBsaWNhdG8gYSBYIGVsZW1lbnRpIGludmVjZSBjaGUgWCArIDFcclxuICAgKi9cclxuICBwcml2YXRlIExhc3RMYXlvdXQ6IGN5dG9zY2FwZS5MYXlvdXRPcHRpb25zO1xyXG5cclxuICAvKipcclxuICAgKiBDb3N0cnV0dG9yZVxyXG4gICAqIFxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHNlcnZpY2U6IEVzRGlhZ3JhbVNlcnZpY2UsIEBPcHRpb25hbCgpIHByaXZhdGUgZGlzcGF0Y2hlcjogRXNEaWFncmFtRGlzcGF0Y2hlciwgcHJpdmF0ZSBleHRzOiBSZWFjdGl2ZUV4dGVuc2lvbnMpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlIFxyXG4gICAqIFxyXG4gICAqIEFuZ3VsYXIgUGlwZWxpbmVcclxuICAgKi9cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLnNlcnZpY2UgfHwgIXRoaXMuZGlzcGF0Y2hlcilcclxuICAgICAgdGhyb3cgXCJJbCBtb2R1bG8gQGVzZmFlbnphL2RpYWdyYW1zIG5vbiDDqCBzdGF0byBpbXBvcnRhdG8gY29uIGlsIGZvclJvb3QoKTtcIjtcclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoTG9hZENoYXJ0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGwnb25EZXN0cm95IHJpcHVsaXNjbyBsYSBtZW1vcmlhIGRhbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xyXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc3Bvc2UoKTtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3kpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJEaWFncmFtXCIgKyBcIiBcIiArIHRoaXMubmFtZSArIFwiOiBVbmxvYWRpbmcgZGVzdHJveWVkIGRpYWdyYW1cIiwgZmFsc2UpO1xyXG4gICAgICB0aGlzLmN5LmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5kaXNwYXRjaGVyLmRlcmVnaXN0ZXIodGhpcy5uYW1lKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJDaGFydCBcIiArIHRoaXMubmFtZSArIFwiOiBVbmxvYWRpbmcgdW5jcmVhdGVkIGNoYXJ0IGNvbXBvbmVudC4gSXQgcHJvYmFibHkgd2FzIGEgZHVwbGljYXRlZFwiLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RyYSBpbCBkaWFncmFtbWEgYXR0dWFsZSBuZWwgRGlzcGF0Y2hlciBpbiBtb2RvIGNoZSB2ZW5nYSBjYXJpY2F0byBhcHBlbmEgcG9zc2liaWxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaExvYWRDaGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLm5hbWUsICgpID0+IHsgcmV0dXJuIHRoaXMucmVuZGVyKCk7IH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZSBcclxuICAgKiBcclxuICAgKiBBbmd1bGFyIFBpcGVsaW5lOiBHZXN0aW9uZSByaS1ncmFmaWNhemlvbmUgZGVsIGRpYWdyYW1tYSwgc2UgcG9zc2liaWxlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBhbnkge1xyXG4gICAgbGV0IHRvQ2hlY2sgPSBbXCJUZW1wbGF0ZXNcIiwgXCJVc2VDb250ZXh0TWVudVwiLCBcIkNvbnRleHRNZW51T3B0aW9uc1wiLCBcIlVzZUV4cGFuZENvbGxhcHNlXCIsIFwiRXhwYW5kQ29sbGFwc2VPcHRpb25zXCIsIFwiTm9kZVN0eWxlc1wiLCBcIkVkZ2VTdHlsZXNcIiwgXCJOYXRpdmVPcHRpb25zXCJdO1xyXG5cclxuICAgIGlmICh0aGlzLlJlbmRlcmVkICYmIHRvQ2hlY2suc29tZSh0ID0+IGNoYW5nZXNbdF0pKVxyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiV1wiLCBcIlJlZHJhdyBiYXNlZCBvbiBkeW5hbWljIElucHV0IGNoYW5nZSBpcyBzdXBwb3J0ZWQgb25seSBmb3IgJ0VsZW1lbnRzJyBhbmQgJ0xheW91dCcgaW5wdXRzLCBwbGVhc2UgZGVzdHJveSB0aGUgY29tcG9uZW50IGFuZCByZWNyZWF0ZSBpdCB3aXRoIHRoZSBuZXcgc2V0dGluZ3NcIik7XHJcblxyXG4gICAgbGV0IGVsZW1lbnRDaGFuZ2VzID0gY2hhbmdlc1tcIkVsZW1lbnRzXCJdO1xyXG4gICAgbGV0IGxheW91dENoYW5nZXMgPSBjaGFuZ2VzW1wiTGF5b3V0XCJdO1xyXG4gICAgaWYgKGVsZW1lbnRDaGFuZ2VzICYmICFlbGVtZW50Q2hhbmdlcy5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiSVwiLCBcIkVsZW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkIGFmdGVyIGRpYWdyYW0gaW5pdGlhbGl6YXRpb25cIik7XHJcblxyXG4gICAgICAvLyBDYW1iaWFtZW50byBhZ2xpIEVsZW1lbnRpOiByaXB1bGlzY28gZ2xpIGVsZW1lbnRpIHZlY2NoaSwgcHJlbmRvIGkgbnVvdmksIGxpIHNpc3RlbW8gZSBsaSByaWFzc2Vnbm8uIFxyXG4gICAgICAvLyBTZSBpbCBudW92byBJbnB1dCBFbGVtZW50cyDDqCByb2JhIHN0cmFuYSBtaSBsaW1pdG8gYSByaXB1bGlyZSBpbCBkaWFncmFtbWFcclxuICAgICAgLy8gU2UgY3l0b3NjYXBlIGF2ZXZhIGdpw6AgZGVnbGkgZWxlbWVudGkgcHJlY2VkZW50ZW1lbnRlIG5lIHByZW5kbyBsZSBwb3NpemlvbmkgaW4gbW9kbyBkYSByaWRpc2VnbmFybGkgcGFydGVuZG8gZGFsbG8gc3Rlc3NvIHB1bnRvIChjYXJpbm8gcGVyIGxlIGFuaW1hemlvbmkpXHJcbiAgICAgIGxldCBlbGVtZW50cyA9IGVsZW1lbnRDaGFuZ2VzPy5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGxldCBwcmV2aW91c19lbGVtZW50cyA9IHRoaXMuUHJlc2VydmVFbGVtZW50c1Bvc2l0aW9uID8gPGFueT50aGlzLmN5Lm5vZGVzKCkgOiBudWxsO1xyXG5cclxuICAgICAgdGhpcy5jeS5lbGVtZW50cygpLnJlbW92ZSgpO1xyXG4gICAgICBpZiAoZWxlbWVudHMgJiYgZWxlbWVudHMubGVuZ3RoICYmIGVsZW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJldmlld0N5dG9zY2FwZUVsZW1lbnRzKGVsZW1lbnRzLCBwcmV2aW91c19lbGVtZW50cyk7XHJcbiAgICAgICAgdGhpcy5jeS5hZGQoZWxlbWVudHMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5TbWFydFNlbGVjdGlvbilcclxuICAgICAgICAgIHRoaXMuc2V0dXBFbGVtZW50c1NlbGVjdGlvbklmTmVlZGVkKCk7XHJcblxyXG4gICAgICAgIC8vIFNlIHNvbG8gZ2xpIGVsZW1lbnRpIGNhbWJpYW5vLCByaWFwcGxpY28gaWwgTGF5b3V0IHByZWNlZGVudGVcclxuICAgICAgICBpZiAoIWxheW91dENoYW5nZXMgJiYgdGhpcy5MYXN0TGF5b3V0KSB7XHJcblxyXG4gICAgICAgICAgLy8gU2UgZGV2byBhbmltYXJlIGxlIG1vZGlmY2hlIGFsIGxheW91dCBmb3J6byBpbCBwYXJhbWV0cm8gcmVsYXRpdm9cclxuICAgICAgICAgIGlmICh0aGlzLkFuaW1hdGVMYXlvdXRDaGFuZ2VzKVxyXG4gICAgICAgICAgICAoPGFueT50aGlzLkxhc3RMYXlvdXQpLmFuaW1hdGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuY3kubGF5b3V0KHRoaXMuTGFzdExheW91dCkucnVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2UgaWwgbGF5b3V0IGNhbWJpYSBsbyBhcHBsaWNvIGUgbWUgbG8gc2Fsdm8gY29tZSBsYXlvdXQgcHJlY2VkZW50ZSBwZXIgaWwgZnV0dXJvXHJcbiAgICBpZiAobGF5b3V0Q2hhbmdlcyAmJiAhbGF5b3V0Q2hhbmdlcy5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiSVwiLCBcIkxheW91dCBoYXZlIGJlZW4gY2hhbmdlZCBhZnRlciBkaWFncmFtIGluaXRpYWxpemF0aW9uXCIpO1xyXG4gICAgICB0aGlzLkxhc3RMYXlvdXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxheW91dENoYW5nZXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgIHRoaXMuY3kubGF5b3V0KHRoaXMuTGFzdExheW91dCkucnVuKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVmZmV0dHVhIGlsIHJlbmRlcmluZyBkZWwgZGlhZ3JhbW1hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyByZW5kZXIoKSB7XHJcblxyXG4gICAgLy8gVGlybyBmdW9yaSBsZSBvcHppb25pIGNvbiBjdWkgZ2VuZXJhcmUgaWwgZGlhZ3JhbW1hXHJcbiAgICBsZXQgY3lPcHRpb25zID0gdGhpcy5nZXRDb21wbGV0ZWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLk5vZGVzSGllcmFyY2h5ID0gY3lPcHRpb25zLmVsZW1lbnRzICYmICg8Y3lfLkVsZW1lbnREZWZpbml0aW9uW10+Y3lPcHRpb25zLmVsZW1lbnRzKS5zb21lKHQgPT4gdC5kYXRhLnBhcmVudCk7XHJcblxyXG4gICAgLy8gQ2FyaWNvIGV2ZW50dWFsaSBjbGFzc2kgZGkgZXN0ZW5zaW9uZSBjaGUgc2Vydm9ub1xyXG4gICAgYXdhaXQgdGhpcy5wZXJmb3JtTW9kdWxlc0xvYWRpbmcoKTtcclxuXHJcbiAgICAvLyBHZW5lcm8gaWwgZGlhZ3JhbW1hXHJcbiAgICB0aGlzLmN5ID0gY3l0b3NjYXBlKGN5T3B0aW9ucyk7XHJcblxyXG4gICAgLy8gQ29sbGVnbyBnbGkgZXZlbnRpIGFsIGNvbXBvbmVudGVcclxuICAgIHRoaXMuYmluZEN5dG9zY2FwZUV2ZW50cygpO1xyXG5cclxuICAgIC8vIFV0aWxpenpvIGxlIGNsYXNzaSBkaSBlc3RlbnNpb25lIGNhcmljYXRlIHByZWNlZGVudGVtZW50ZSBwZXIgZmFyZSBpbCByZXN0byBkZWxsZSBtaWUgb3BlcmF6aW9uaVxyXG4gICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uc1dpdGhMb2FkZWRNb2R1bGVzKCk7XHJcblxyXG4gICAgLy8gSW1wb3N0byBsYSB2YXJpYWJpbGUgUmVuZGVyZWQgYSB0cnVlIGluIG1vZG8gY2hlIHNlIGRhIGFkZXNzbyB2ZW5nb25vIGZhdHRlIG1vZGlmaWNoZSBjaGUgZG92cmViYmVybyBjYXVzYXJlIHVuIHJlZHJhdyBwb3NzbyBhY2Nvcmdlcm1lbmVcclxuICAgIC8vIGUgbWFuZGFyZSBhIGNhZ2FyZSBsbyBzdHJvbnpvIGRpIHR1cm5vXHJcbiAgICB0aGlzLlJlbmRlcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBTZSBkZXZvIGFnZ2lvcm5hcmUgaW4gYXV0b21hdGljbyBpbiBiYXNlIGFsbGEgZGltZW5zaW9uZSBkZWwgY29udGVuaXRvcmUgY29sbGVnbyBpbCBSZXNpemVPYnNlcnZlclxyXG4gICAgaWYgKHRoaXMuQXV0b3VwZGF0ZVNpemUpXHJcbiAgICAgIHRoaXMubGlzdGVuT25DaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuU21hcnRTZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zZXR1cFNlbGVjdGlvblN0eWxlcygpO1xyXG4gICAgICB0aGlzLnNldHVwRWxlbWVudHNTZWxlY3Rpb25JZk5lZWRlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25Mb2FkZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlbmRlIHR1dHRpIGdsaSBlbGVtZW50aSBhcHBlbmEgYXNzZWduYXRpLCBlIHNlIHF1YWxjdW5vIGVyYSBzZWxlemlvbmF0byBsYSBzaXR1YXppb25lIHZpZW5lIHBlcnNpc3RpdGEgc3UgY3l0b3NjYXBlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXR1cEVsZW1lbnRzU2VsZWN0aW9uSWZOZWVkZWQoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVsZGF0YSA9IDxhbnk+dGhpcy5FbGVtZW50c1tpXS5kYXRhO1xyXG4gICAgICBpZiAoZWxkYXRhLl9fc2VsZWN0ZWQpIHtcclxuICAgICAgICBsZXQgZWwgPSB0aGlzLmN5LiRpZChlbGRhdGEuaWQpO1xyXG4gICAgICAgIGVsLnNlbGVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXJpY2EgZ2xpIHN0aWxpIHBlciBtb3N0cmFyZSBjYXJpbmEgbGEgc2VsZXppb25lIGRlaSBub2RpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvblN0eWxlcygpe1xyXG4gICAgbGV0IGNzc0l0ZW0gPSB0aGlzLlNtYXJ0U2VsZWN0aW9uU3R5bGVzIHx8IHtcclxuICAgICAgJ292ZXJsYXktY29sb3InOiAnYmx1ZScsXHJcbiAgICAgICdvdmVybGF5LW9wYWNpdHknOiAwLjUsXHJcbiAgICAgICdvdmVybGF5LXBhZGRpbmcnOiA3XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEJhY2tkb29yIHBlciBwb3RlciBhc3NlZ25hcmUgXCJ7fVwiIGEgU21hcnRTZWxlY3Rpb25TdHlsZXMgaW4gbW9kbyBkaSB1dGlsaXp6YXJlIGxhIHNtYXJ0IHNlbGVjdGlvbiBtYSBzZW56YSBjaGUgbmVzc3VubyBzdGlsZSB2ZW5nYSBhcHBsaWNhdG9cclxuICAgIC8vIGFkIGVzZW1waW8gcXVhbG9yYSBzaSB2b2xlc3NlIHV0aWxpenphcmUgbCdodG1sbm9kZSBwZXIgZ2VzdGlyZSBsYSBncmFmaWNhIGRlZ2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXHJcbiAgICBpZihjc3NJdGVtWydvdmVybGF5LWNvbG9yJ10gJiYgY3NzSXRlbVsnb3ZlcmxheS1vcGFjaXR5J10gJiYgY3NzSXRlbVsnb3ZlcmxheS1wYWRkaW5nJ10pXHJcbiAgICAgICg8YW55PnRoaXMuY3kuc3R5bGUoKSkuc2VsZWN0b3IoJ25vZGU6c2VsZWN0ZWQnKS5jc3MoY3NzSXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RyYSBsJ2FzY29sdG8gYWwgY29udGVuaXRvcmUgZGVsIGdyYWZpY28gZSBpbiBjYXNvIGRpIG1vZGlmaWNoZSBhbGxhIGRpbWVuc2lvbmUsIGFsIG1hc3NpbW8gdW5hIHZvbHRhIG9nbmkgNTAwIG1pbGxpc2Vjb25kaSwgbG8gcmlkaXNlZ25hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaXN0ZW5PbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZVNlbnNvcih0aGlzLmN5R3JhcGgubmF0aXZlRWxlbWVudCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmV4dHMudGhyb3R0bGUodGhpcy5uYW1lLCB0aGlzLm9uQ29udGFpbmVyU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSwgdGhpcy5SZXNpemVUaHJvdHRsZVRpbWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW56aW9uZSBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgaWwgcmVwYWludCBkZWwgZGlhZ3JhbW1hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkNvbnRhaW5lclNpemVDaGFuZ2VkKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJEaWFncmFtIGNvbnRhaW5lciBzaXplIGhhcyBjaGFuZ2VkLCByZWRyYXdpbmdcIik7XHJcbiAgICB0aGlzLmN5LnJlc2l6ZSgpO1xyXG4gICAgdGhpcy5jeS5maXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxlZ2EgdHV0dGkgZ2xpIGV2ZW50aSBjaGUgbWkgcG9zc29ubyBzZXJ2aXJlIGUgbGkgZXNwb25lIGluIG91dHB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYmluZEN5dG9zY2FwZUV2ZW50cygpIHtcclxuICAgIHRoaXMuY3kuYmluZCgnY2xpY2snLCAnbm9kZScsIChldmVudCkgPT4ge1xyXG4gICAgICBsZXQgdGFyZ2V0RGF0YSA9IGV2ZW50LnRhcmdldC5kYXRhKClcclxuICAgICAgaWYgKHRoaXMuU21hcnRTZWxlY3Rpb24pIHtcclxuXHJcbiAgICAgICAgLy8gSW4gY2FzbyBkaSBzZWxlemlvbmUgc2luZ29sYSByaXB1bGlzY28gdHV0dGkgZ2xpIGVsZW1lbnRpIHByZWNlZGVudGVtZW50ZSBzZWxlemlvbmF0aVxyXG4gICAgICAgIGlmICh0aGlzLlNpbmdsZVNlbGVjdGlvbikge1xyXG4gICAgICAgICAgbGV0IHNlbGVjdGVkID0gdGhpcy5jeS5lbGVtZW50cygnbm9kZTpzZWxlY3RlZCcpO1xyXG4gICAgICAgICAgc2VsZWN0ZWQuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgICAgIGVsLnNlbGVjdGlmeSgpO1xyXG4gICAgICAgICAgICBlbC51bnNlbGVjdCgpO1xyXG4gICAgICAgICAgICBlbC51bnNlbGVjdGlmeSgpO1xyXG4gICAgICAgICAgICBlbC5kYXRhKFwiX19zZWxlY3RlZFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGlkID0gdGFyZ2V0RGF0YS5pZFxyXG4gICAgICAgIGxldCBlbCA9IHRoaXMuY3kuJGlkKGlkKTtcclxuICAgICAgICBsZXQgc2VsZWN0ZWQgPSBlbC5zZWxlY3RlZCgpO1xyXG5cclxuICAgICAgICBlbC5zZWxlY3RpZnkoKTtcclxuICAgICAgICBpZiAoc2VsZWN0ZWQpXHJcbiAgICAgICAgICBlbC51bnNlbGVjdCgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGVsLnNlbGVjdCgpO1xyXG4gICAgICAgIGVsLnVuc2VsZWN0aWZ5KCk7XHJcblxyXG4gICAgICAgIC8vIFF1ZXN0byB2YSBhbmNoZSBuZWxsYSBsaXN0YSBkZWdsaSBlbGVtZW50aSBvcmlnaW5hbGkgKHRoaXMuRWxlbWVudHMpIGRhdG8gY2hlIGN5dG9zY2FwZSBsaSBwcmVuZGUgcGVyIHJpZmVyaW1lbnRvIChiYmJiYnJhdm8gY3l0by1jaGFuKVxyXG4gICAgICAgIGVsLmRhdGEoXCJfX3NlbGVjdGVkXCIsICFzZWxlY3RlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25Ob2RlQ2xpY2suZW1pdCh7IGRhdGE6IHRhcmdldERhdGEgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmN5LmJpbmQoJ3NlbGVjdCcsICdub2RlJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIGxldCB0YXJnZXREYXRhID0gZXZlbnQudGFyZ2V0LmRhdGEoKVxyXG5cclxuICAgICAgdGhpcy5vbk5vZGVTZWxlY3Rpb24uZW1pdCh7IGRhdGE6IHRhcmdldERhdGEsIHNlbGVjdGVkOiB0cnVlIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jeS5iaW5kKCdsYXlvdXRzdG9wJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMub25MYXlvdXREb25lLmVtaXQoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY3kuYmluZCgndW5zZWxlY3QnLCAnbm9kZScsIChldmVudCkgPT4ge1xyXG4gICAgICBsZXQgdGFyZ2V0RGF0YSA9IGV2ZW50LnRhcmdldC5kYXRhKClcclxuXHJcbiAgICAgIHRoaXMub25Ob2RlU2VsZWN0aW9uLmVtaXQoeyBkYXRhOiB0YXJnZXREYXRhLCBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBbHRyaSBldmVudGkuLi5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBjaGUgc2VydmUgcGVyIGNhcmljYXJlIHR1dHRlIGxlIGVzdGVuc2lvbmkgZGVsbGEgbGlicmVyaWEgaW4gYmFzZSBhIGNpw7IgY2hlIHZpZW5lIHV0aWxpenphdG9cclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHBlcmZvcm1Nb2R1bGVzTG9hZGluZygpIHtcclxuICAgIGlmICh0aGlzLkxheW91dC5uYW1lID09ICdkYWdyZScpXHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZEludGVybmFsKFwiY3l0b3NjYXBlLWRhZ3JlXCIpO1xyXG5cclxuICAgIGlmICh0aGlzLk5vZGVIVE1MVGVtcGxhdGVzICYmIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMubGVuZ3RoID4gMClcclxuICAgICAgYXdhaXQgdGhpcy5sb2FkSW50ZXJuYWwoXCJjeXRvc2NhcGUtaHRtbC1ub2RlXCIpO1xyXG5cclxuICAgIGlmICh0aGlzLlVzZUNvbnRleHRNZW51KVxyXG4gICAgICBhd2FpdCB0aGlzLmxvYWRJbnRlcm5hbChcImN5dG9zY2FwZS1jeHRtZW51XCIpO1xyXG5cclxuICAgIGlmICh0aGlzLk5vZGVzSGllcmFyY2h5ICYmIHRoaXMuVXNlRXhwYW5kQ29sbGFwc2UpXHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZEludGVybmFsKFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5FeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXIpIHtcclxuICAgICAgLy8gV3JhcHBvIGlsIG5hbWVzcGFjZSBpbiBtb2RvIGNoZSBwb3NzYSBkaXJlIGxhIG1pYSBzdWwgZmF0dG8gY2hlIGwndXRlbnRlIGFnZ2l1bmdhIHVuIG1vZHVsbyBvIG1lbm8gOkRcclxuICAgICAgdmFyIHdyYXBwZWRDeXRvc2NhcGUgPSB7XHJcbiAgICAgICAgdXNlOiAobW9kdWxlTmFtZTogc3RyaW5nLCBtb2R1bGU6IGN5dG9zY2FwZS5FeHQpID0+IHtcclxuICAgICAgICAgIGlmICghbW9kdWxlKVxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UubG9nKFwiRVwiLCB0aGlzLnNlcnZpY2UubG9jKFwiUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG1vZHVsZS4gTWFrZSBzdXJlIHlvdSBhcmUgY29ycmVjdGx5IGxvYWRpbmcgaXRcIikgKyBcIjogXCIgKyBtb2R1bGVOYW1lLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgaWYgKFtcImN5dG9zY2FwZS1kYWdyZVwiLCBcImN5dG9zY2FwZS1odG1sLW5vZGVcIiwgXCJjeXRvc2NhcGUtY3h0bWVudVwiLCBcImN5dG9zY2FwZS1leHBhbmQtY29sbGFwc2VcIl0uaW5jbHVkZXMobW9kdWxlTmFtZSkpXHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5sb2coXCJXXCIsIHRoaXMuc2VydmljZS5sb2MoXCJNb2R1bGVcIikgKyBcIiBcIiArIG1vZHVsZU5hbWUgKyBcIiBcIiArIHRoaXMuc2VydmljZS5sb2MoXCJpcyBsb2FkZWQgYW5kIG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhpcyBsaWJyYXJ5LiBZb3UgZG9uJ3QgbmVlZCB0byBpbXBvcnQgaXQgb3IgdXNlIGl0IGRpcmVjdGx5LCBqdXN0IGJlIHN1cmUgdG8gc2V0IHRoZSByZWxhdGl2ZSBvcHRpb25zXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGN5dG9zY2FwZS51c2UobW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0ltcG9ydGVyKHdyYXBwZWRDeXRvc2NhcGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGNoZSBzZXJ2ZSBwZXIgY2FyaWNhcmUgdHV0dGUgbGUgZXN0ZW5zaW9uaSBkZWxsYSBsaWJyZXJpYSBpbiBiYXNlIGEgY2nDsiBjaGUgdmllbmUgdXRpbGl6emF0byBjb24gbGUgb3B6aW9uaSBkZWZpbml0ZSBkYWdsaSBJbnB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbnNXaXRoTG9hZGVkTW9kdWxlcygpIHtcclxuXHJcbiAgICBsZXQgYW55Q3kgPSAoPGFueT50aGlzLmN5KTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkZWwgbGF5b3V0LCBsbyBzYWx2byBwZXIgcG90ZXJsbyByaXV0aWxpenphcmUgaW4gZnV0dXJvXHJcbiAgICBpZiAodGhpcy5MYXlvdXQpIHtcclxuICAgICAgdGhpcy5MYXN0TGF5b3V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLkxheW91dCkpO1xyXG4gICAgICB0aGlzLmN5LmxheW91dCh0aGlzLkxhc3RMYXlvdXQpLnJ1bigpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXRpbGl6em8gZGVsbCdIVE1MIG5vZGVcclxuICAgIGlmICh0aGlzLk5vZGVIVE1MVGVtcGxhdGVzICYmIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLkh0bWxOb2RlQXBpID0gYW55Q3kuaHRtbG5vZGUoKTtcclxuICAgICAgdGhpcy5IdG1sTm9kZUFwaS5jcmVhdGVIdG1sTm9kZShjeXRvc2NhcGUsIHRoaXMuY3ksIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFV0aWxpenpvIGRlbCBDb250ZXh0IE1lbnVcclxuICAgIGlmICh0aGlzLlVzZUNvbnRleHRNZW51KVxyXG4gICAgICB0aGlzLkNvbnRleHRNZW51T3B0aW9ucy5mb3JFYWNoKG8gPT4geyBhbnlDeS5jeHRtZW51KG8pOyB9KTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkZWxsJ2V4cGFuZCBjb2xsYXBzZSBzb2xvIHF1YW5kbyBjJ8OoIHVuYSBnZXJhcmNoaWEgZGkgbm9kaVxyXG4gICAgaWYgKHRoaXMuTm9kZXNIaWVyYXJjaHkgJiYgdGhpcy5Vc2VFeHBhbmRDb2xsYXBzZSlcclxuICAgICAgdGhpcy5FeHBhbmRDb2xsYXBzZUFwaSA9IGFueUN5LmV4cGFuZENvbGxhcHNlKHRoaXMuRXhwYW5kQ29sbGFwc2VPcHRpb25zKTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkaSBlc3RlbnNpb25pIGV4dHJhLCBpbXBsZW1lbnRhemlvbmUgYWZmaWRhdGEgYWwgcHJvZ3JhbW1hdG9yZVxyXG4gICAgaWYgKHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0FwcGx5ZXIpXHJcbiAgICAgIHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0FwcGx5ZXIodGhpcy5jeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQ2FyZERhdGEoKSB7XHJcbiAgICBpZiAoIXRoaXMuSHRtbE5vZGVBcGkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIkVcIiwgXCJDYW5ub3QgdXBkYXRlIE5vZGVIVE1MVGVtcGxhdGVzIGFzIHRoZXkgZG9uJ3Qgc2VlbSB0byBiZSB1c2VkXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLkh0bWxOb2RlQXBpLnVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludGVybm8gcGVyIGlsIGNhcmljYW1lbnRvIGRlaSBtb2R1bGkgZGkgZXN0ZW5zaW9uZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7J2N5dG9zY2FwZS1leHBhbmQtY29sbGFwc2UnIHwgJ2N5dG9zY2FwZS1jeHRtZW51JyB8ICdjeXRvc2NhcGUtaHRtbC1ub2RlJyB8ICdjeXRvc2NhcGUtZGFncmUnfSBtb2R1bGVJZCBNb2R1bG8gZGEgY2FyaWNhcmVcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIGxvYWRJbnRlcm5hbChtb2R1bGVJZDogJ2N5dG9zY2FwZS1leHBhbmQtY29sbGFwc2UnIHwgJ2N5dG9zY2FwZS1jeHRtZW51JyB8ICdjeXRvc2NhcGUtaHRtbC1ub2RlJyB8ICdjeXRvc2NhcGUtZGFncmUnKSB7XHJcbiAgICBsZXQgdG9Mb2FkID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmltcG9ydElmTmVlZGVkKG1vZHVsZUlkKTtcclxuICAgIGlmICh0b0xvYWQpIGN5dG9zY2FwZS51c2UodG9Mb2FkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBjaGUgYmFzYW5kb3NpIHN1bGxlIG9wemlvbmkgbmF0aXZlIGV2ZW50dWFsbWVudGUgYXNzZWduYXRlIGxlIGNvbXBsZXRhIGNvbiBnbGkgSW5wdXQgYWRkaXppb25hbGlcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7Y3lfLkN5dG9zY2FwZU9wdGlvbnN9IE9wemlvbmkgZmluYWxpIHVuaXRlIGRhIElucHV0IGVkIG9wemlvbmkgbmF0aXZlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRDb21wbGV0ZWRPcHRpb25zKCk6IGN5Xy5DeXRvc2NhcGVPcHRpb25zIHtcclxuICAgIHZhciBvcHRzOiBjeV8uQ3l0b3NjYXBlT3B0aW9ucyA9IHRoaXMuTmF0aXZlT3B0aW9ucyB8fCB7fTtcclxuICAgIG9wdHMuY29udGFpbmVyID0gdGhpcy5jeUdyYXBoLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBvcHRzLnN0eWxlID0gb3B0cy5zdHlsZSB8fCBbXTtcclxuXHJcbiAgICAvLyBQZXIgdHV0dGUgbGUgY29zZSBwZXIgY3VpIGdsaSBJbnB1dCBoYW5ubyBwcmlvcml0w6Agc292cmFzY3Jpdm8gZ2xpIG9yaWdpbmFsaSBkZWxsZSBvcHppb25pXHJcblxyXG4gICAgaWYgKHRoaXMuTm9kZVN0eWxlcyB8fCB0aGlzLkVkZ2VTdHlsZXMpIHtcclxuICAgICAgb3B0cy5zdHlsZSA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5Ob2RlU3R5bGVzKSBvcHRzLnN0eWxlLnB1c2goeyBzZWxlY3RvcjogJ25vZGUnLCBjc3M6IHRoaXMuTm9kZVN0eWxlcyB9KTtcclxuICAgICAgaWYgKHRoaXMuRWRnZVN0eWxlcykgb3B0cy5zdHlsZS5wdXNoKHsgc2VsZWN0b3I6ICdlZGdlJywgY3NzOiB0aGlzLkVkZ2VTdHlsZXMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuRWxlbWVudHMpXHJcbiAgICAgIG9wdHMuZWxlbWVudHMgPSB0aGlzLkVsZW1lbnRzO1xyXG5cclxuICAgIHRoaXMucmV2aWV3Q3l0b3NjYXBlRWxlbWVudHMoPGN5dG9zY2FwZS5FbGVtZW50RGVmaW5pdGlvbltdPm9wdHMuZWxlbWVudHMpO1xyXG5cclxuICAgIGlmICh0aGlzLkxheW91dClcclxuICAgICAgb3B0cy5sYXlvdXQgPSB0aGlzLkxheW91dDtcclxuXHJcbiAgICBpZiAodGhpcy5SZWFkb25seSkge1xyXG4gICAgICAvLyBRdWVzdG8gY29zbyBmYSBlZmZldHRpIHN0cmFuaS4uLi5cclxuICAgICAgLy9vcHRzLmF1dG9sb2NrID0gdHJ1ZTtcclxuXHJcbiAgICAgIG9wdHMuYXV0b3VuZ3JhYmlmeSA9IHRydWU7XHJcbiAgICAgIG9wdHMuYXV0b3Vuc2VsZWN0aWZ5ID0gZmFsc2U7XHJcbiAgICAgIG9wdHMuYm94U2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIG9wdHMudXNlclpvb21pbmdFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIG9wdHMudXNlclBhbm5pbmdFbmFibGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9wdHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZ2dpdXN0YW1lbnRpIGRlZ2xpIGVsZW1lbnRpIGRpIEN5dG9zY2FwZS4gXHJcbiAgICogXHJcbiAgICogSSBub2RpIG5vbiB2ZW5nb25vIHRvY2NhdGkuXHJcbiAgICogXHJcbiAgICogUGVyIG9nbmkgZWRnZSB2aWVuZSBjb250cm9sbGF0byBzZSDDqCBzcGVjaWZpY2F0YSB1bmEgc29yZ2VudGUgZWQgdW5hIGRlc3RpbmF6aW9uZSwgaW4gY2FzbyBjb250cmFyaW8gc2kgY2VyY2EgZGkgZGVkdXJsaSBkYWxsJ0lEXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtjeXRvc2NhcGUuRWxlbWVudERlZmluaXRpb25bXX0gZWxlbWVudHMgRWxlbWVudGkgZGEgc2lzdGVtYXJlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXZpZXdDeXRvc2NhcGVFbGVtZW50cyhlbGVtZW50czogY3l0b3NjYXBlLkVsZW1lbnREZWZpbml0aW9uW10sIHByZXZQb3NpdGlvbnM/OiBhbnkpIHtcclxuICAgIGxldCBoYXNQcmV2aW91c1Bvc2l0aW9ucyA9IHByZXZQb3NpdGlvbnMgJiYgcHJldlBvc2l0aW9ucy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHBvc2l0aW9uQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBjeXRvc2NhcGUuUG9zaXRpb24gfSA9IHt9O1xyXG5cclxuICAgIGlmIChoYXNQcmV2aW91c1Bvc2l0aW9ucykge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZQb3NpdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHByZXZQb3NpdGlvbnNbaV07XHJcbiAgICAgICAgaWYgKCFwb3NpdGlvbkNhY2hlW2l0ZW0uZGF0YSgpLmlkXSlcclxuICAgICAgICAgIHBvc2l0aW9uQ2FjaGVbaXRlbS5kYXRhKCkuaWRdID0gaXRlbS5wb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWwgPSBlbGVtZW50c1tpXTtcclxuICAgICAgaWYgKGVsLmdyb3VwID09IFwiZWRnZXNcIiAmJiAoIWVsLmRhdGEuc291cmNlICYmICFlbC5kYXRhLnRhcmdldCkpIHtcclxuICAgICAgICBpZiAoIWVsLmRhdGEuaWQuaW5jbHVkZXMoXCItXCIpKVxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIkVcIiwgXCJJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHNvdXJjZSBhbmQgYSB0YXJnZXQgZm9yIGFuIGVkZ2UgeW91IGhhdmUgdG8gd3JpdGUgaXRzIGlkIGluIHRoZSBmb3JtYXQge3NvdXJjZX0te3RhcmdldH1cIik7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB2YXIgc291cmNlVGFyZ2V0ID0gZWwuZGF0YS5pZC5zcGxpdCgnLScpO1xyXG4gICAgICAgICAgZWwuZGF0YS5zb3VyY2UgPSBzb3VyY2VUYXJnZXRbMF0udHJpbSgpO1xyXG4gICAgICAgICAgZWwuZGF0YS50YXJnZXQgPSBzb3VyY2VUYXJnZXRbMV0udHJpbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGhhc1ByZXZpb3VzUG9zaXRpb25zICYmIGVsLmdyb3VwID09IFwibm9kZXNcIilcclxuICAgICAgICBlbC5wb3NpdGlvbiA9IHBvc2l0aW9uQ2FjaGVbZWwuZGF0YS5pZF1cclxuICAgIH1cclxuICB9XHJcbn0iLCI8ZGl2ICNncmFwaCBjbGFzcz1cImdyYXBoLXdyYXBwZXIge3tuYW1lfX1cIj48L2Rpdj4iXX0=
|
|
537
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL2NvbXBvbmVudHMvZXMtZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1kaWFncmFtcy9zcmMvbGliL2NvbXBvbmVudHMvZXMtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBa0JqSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJMUQsT0FBTyxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUM7Ozs7O0FBQ2pDLGNBQWMsQ0FBQSxNQUFNLFNBQVMsR0FBUyxHQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBTyxHQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFFNUU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBK043Qjs7OztPQUlHO0lBQ0gsWUFBZ0MsT0FBeUIsRUFBc0IsVUFBK0IsRUFBVSxJQUF3QjtRQUFoSCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFzQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQW9CO1FBN05oSjs7V0FFRztRQUNNLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFM0I7O1dBRUc7UUFDTSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVN6Qzs7V0FFRztRQUNNLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU81Qzs7OztXQUlHO1FBQ00sa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBc0J4RDs7V0FFRztRQUNNLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRXhDOzs7O1dBSUc7UUFDTSw2QkFBd0IsR0FBWSxJQUFJLENBQUM7UUFFbEQ7Ozs7V0FJRztRQUNNLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUU5Qzs7Ozs7Ozs7O1dBU0c7UUFDTSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUV6Qzs7V0FFRztRQUNNLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRTFDOzs7Ozs7OztXQVFHO1FBQ00seUJBQW9CLEdBQXNGLElBQUksQ0FBQTtRQUV2SDs7OztXQUlHO1FBQ00sdUJBQWtCLEdBQVcsQ0FBQyxDQUFDO1FBY3hDOzs7Ozs7Ozs7Ozs7Ozs7O1dBZ0JHO1FBQ00sNkJBQXdCLEdBQWtHLElBQUksQ0FBQztRQUV4STs7Ozs7Ozs7Ozs7Ozs7OztXQWdCRztRQUNNLDRCQUF1QixHQUE0QyxJQUFJLENBQUM7UUFFakY7O1dBRUc7UUFDTyxnQkFBVyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUV2Rjs7V0FFRztRQUNPLG9CQUFlLEdBQW1ELElBQUksWUFBWSxFQUFvQyxDQUFDO1FBRWpJOztXQUVHO1FBQ08saUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0RTs7V0FFRztRQUNPLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQU9sRTs7V0FFRztRQUNLLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPbEM7O1dBRUc7UUFDSSxzQkFBaUIsR0FBUSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDSyxnQkFBVyxHQUFRLElBQUksQ0FBQztJQW9Cb0gsQ0FBQztJQUVySjs7OztPQUlHO0lBQ0ksZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ25DLE1BQU0sc0VBQXNFLENBQUM7UUFFL0UsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtRQUVELElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7O1lBRUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLHFFQUFxRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ILENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUUvSixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsK0pBQStKLENBQUMsQ0FBQztRQUV6TCxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRTtZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUseURBQXlELENBQUMsQ0FBQztZQUVqRix3R0FBd0c7WUFDeEcsNkVBQTZFO1lBQzdFLDhKQUE4SjtZQUM5SixJQUFJLFFBQVEsR0FBRyxjQUFjLEVBQUUsWUFBWSxDQUFDO1lBQzVDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFcEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUV0QixJQUFJLElBQUksQ0FBQyxjQUFjO29CQUNyQixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztnQkFFeEMsZ0VBQWdFO2dCQUNoRSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBRXJDLG9FQUFvRTtvQkFDcEUsSUFBSSxJQUFJLENBQUMsb0JBQW9CO3dCQUNyQixJQUFJLENBQUMsVUFBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBRXhDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDdkM7YUFDRjtTQUNGO1FBRUQsb0ZBQW9GO1FBQ3BGLElBQUksYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsdURBQXVELENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7U0FDdEM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsTUFBTTtRQUVsQixzREFBc0Q7UUFDdEQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsUUFBUSxJQUE4QixTQUFTLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkgsb0RBQW9EO1FBQ3BELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFbkMsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9CLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFFMUMsNElBQTRJO1FBQzVJLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixxR0FBcUc7UUFDckcsSUFBSSxJQUFJLENBQUMsY0FBYztZQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyw4QkFBOEI7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdDLElBQUksTUFBTSxHQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDckIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSTtZQUN6QyxlQUFlLEVBQUUsTUFBTTtZQUN2QixpQkFBaUIsRUFBRSxHQUFHO1lBQ3RCLGlCQUFpQixFQUFFLENBQUM7U0FDckIsQ0FBQztRQUVGLCtJQUErSTtRQUMvSSx3R0FBd0c7UUFDeEcsSUFBRyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQy9FLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsK0NBQStDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3BDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFFdkIsd0ZBQXdGO2dCQUN4RixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3hCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNqRCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO3dCQUNwQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ2YsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNkLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakIsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9CLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUE7Z0JBQ3RCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRTdCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZixJQUFJLFFBQVE7b0JBQ1YsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDOztvQkFFZCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2QsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVqQiwwSUFBMEk7Z0JBQzFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEM7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7WUFFcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1lBRXBDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUVILGtCQUFrQjtJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMscUJBQXFCO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksT0FBTztZQUM3QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDN0QsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFakQsSUFBSSxJQUFJLENBQUMsY0FBYztZQUNyQixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGlCQUFpQjtZQUMvQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV2RCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyx3R0FBd0c7WUFDeEcsSUFBSSxnQkFBZ0IsR0FBRztnQkFDckIsR0FBRyxFQUFFLENBQUMsVUFBa0IsRUFBRSxNQUFxQixFQUFFLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxNQUFNO3dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzRUFBc0UsQ0FBQyxHQUFHLElBQUksR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBRTdJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7d0JBQ25ILElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwSUFBMEksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDOzt3QkFFalAsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUIsQ0FBQzthQUNGLENBQUE7WUFFRCxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0NBQWtDO1FBRXhDLElBQUksS0FBSyxHQUFTLElBQUksQ0FBQyxFQUFHLENBQUM7UUFFM0IsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUN0QztRQUVELDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RTtRQUVELDRCQUE0QjtRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUQsc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsaUJBQWlCO1lBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTVFLDBFQUEwRTtRQUMxRSxJQUFJLElBQUksQ0FBQyx1QkFBdUI7WUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsK0RBQStELENBQUMsQ0FBQztZQUN2RixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUF1RztRQUNoSSxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELElBQUksTUFBTTtZQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLEdBQXlCLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUU5Qiw2RkFBNkY7UUFFN0YsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLElBQUksSUFBSSxDQUFDLFVBQVU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNsRjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVE7WUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFnQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0UsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsb0NBQW9DO1lBQ3BDLHVCQUF1QjtZQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUNqQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssdUJBQXVCLENBQUMsUUFBdUMsRUFBRSxhQUFtQjtRQUMxRixJQUFJLG9CQUFvQixHQUFHLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyRSxJQUFJLGFBQWEsR0FBNEMsRUFBRSxDQUFDO1FBRWhFLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNoQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNuRDtTQUNGO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxpSEFBaUgsQ0FBQyxDQUFDO3FCQUN0STtvQkFDSCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDeEMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN6QzthQUNGO1lBRUQsSUFBSSxvQkFBb0IsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLE9BQU87Z0JBQzdDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDMUM7SUFDSCxDQUFDOytHQXptQlUsa0JBQWtCO21HQUFsQixrQkFBa0IsZ2pDQ2pDL0IscURBQWlEOzs0RkRpQ3BDLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZOzswQkF3T1QsUUFBUTs7MEJBQXVDLFFBQVE7NkVBL05oRCxPQUFPO3NCQUExQixTQUFTO3VCQUFDLE9BQU87Z0JBS1QsSUFBSTtzQkFBWixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBT0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFZRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBV0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQW1CRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBbUJHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5pbXBvcnQgeyBDb250ZXh0TWVudU9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvY29tcG9uZW50L2NvbnRleHRtZW51L0NvbnRleHRNZW51T3B0aW9ucyc7XHJcbmltcG9ydCB7IEV4cGFuZENvbGxhcHNlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy9jb21wb25lbnQvZ3JvdXBpbmcvRXhwYW5kQ29sbGFwc2VPcHRpb25zJztcclxuaW1wb3J0IHsgTm9kZUhUTUxUZW1wbGF0ZSB9IGZyb20gJy4uL21vZGVscy9jb21wb25lbnQvbm9kZXMvTm9kZUhUTUxUZW1wbGF0ZSc7XHJcblxyXG5pbXBvcnQgeyBCcmVhZHRoRmlyc3RMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0JyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgQ2lyY2xlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9DaXJjbGVMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IENvbmNlbnRyaWNMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0NvbmNlbnRyaWNMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IENvc2VMYXlvdXRPcHRpb25zSW1wbCB9IGZyb20gJy4uL21vZGVscy9sYXlvdXRzL0Nvc2VMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IERhZ3JlTGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9EYWdyZUxheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgR3JpZExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvR3JpZExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgTnVsbExheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvTnVsbExheW91dE9wdGlvbnNJbXBsJztcclxuaW1wb3J0IHsgUHJlc2V0TGF5b3V0T3B0aW9uc0ltcGwgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0cy9QcmVzZXRMYXlvdXRPcHRpb25zSW1wbCc7XHJcbmltcG9ydCB7IFJhbmRvbUxheW91dE9wdGlvbnNJbXBsIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dHMvUmFuZG9tTGF5b3V0T3B0aW9uc0ltcGwnO1xyXG5cclxuaW1wb3J0IHsgRXNEaWFncmFtU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VzLWRpYWdyYW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEVzRGlhZ3JhbURpc3BhdGNoZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9lcy1kaWFncmFtLmRpc3BhdGNoZXInO1xyXG5pbXBvcnQgeyBSZXNpemVTZW5zb3IgfSBmcm9tIFwiLi4vZXh0ZW5zaW9ucy9SZXNpemVTZW5zb3JcIjtcclxuXHJcbmltcG9ydCB7IFJlYWN0aXZlRXh0ZW5zaW9ucyB9IGZyb20gJy4uL2V4dGVuc2lvbnMvUmVhY3RpdmVFeHRlbnNpb25zJztcclxuXHJcbmltcG9ydCAqIGFzIGN5XyBmcm9tICdjeXRvc2NhcGUnO1xyXG4vKiogQGlnbm9yZSAqL2NvbnN0IGN5dG9zY2FwZSA9ICg8YW55PmN5XykuZGVmYXVsdD8gKDxhbnk+Y3lfKS5kZWZhdWx0OiBjeV87XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBjaGUgc2kgb2NjdXBhIGRpIGdyYWZpY2FyZSB1biBkaWFncmFtbWEgZSBkaSBnZXN0aXJuZSBpbCBjaWNsbyBkaSB2aXRhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VzLWRpYWdyYW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lcy1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lcy1kaWFncmFtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVzRGlhZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpZmVyaW1lbnRvIGFsbCdvZ2dldHRvIEhUTUwgc3UgY3VpIGNyZWFyZSBpbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdncmFwaCcpIGN5R3JhcGg6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5vbWUgZGVsIGRpYWdyYW1tYSwgZm9uZGFtZW50YWxlIGFzc2VnbmFybG8gcGVyIHBlcm1ldHRlcmUgYWxsYSBsaWJyZXJpYSBkaSBzY2hlZHVsYXJuZSBsYSBjcmVhemlvbmVcclxuICAgKi9cclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgdXRpbGl6emFyZSBpbCBtZW7DuSBjb250ZXN0dWFsZSBhIHJ1b3RhIGF0dG9ybm8gYWQgb2duaSBub2RvXHJcbiAgICovXHJcbiAgQElucHV0KCkgVXNlQ29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGxlIG9wemlvbmkgZGVsIG1lbsO5IGNvbnRlc3R1YWxlIHF1YWxvcmEgKipVc2VDb250ZXh0TWVudSoqIGZvc3NlICoqdHJ1ZSoqLlxyXG4gICAqIFxyXG4gICAqIE9nbmkgZWxlbWVudG8gZGkgcXVlc3RvIGFycmF5IMOoIHVuIHNlbGV0dG9yZSBjb24gaWwgbWVudSBkYSBtb3N0cmFyZSBwZXIgcXVlbGxhIGNhc2lzdGljYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIENvbnRleHRNZW51T3B0aW9uczogQ29udGV4dE1lbnVPcHRpb25zW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERpY2UgYWwgY29tcG9uZW50ZSBzZSBpbCBkaWFncmFtbWEgZGV2ZSB1dGlsaXp6YXJlIGlsIHNpc3RlbWEgZGkgZXN0ZW5zaW9uZSBwZXIgbCdleHBhbmQgZSBjb2xsYXBzZSBkZWkgZ3J1cHBpXHJcbiAgICovXHJcbiAgQElucHV0KCkgVXNlRXhwYW5kQ29sbGFwc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B6aW9uaSBuYXRpdmUgZGVsbCdlc3RlbnNpb25lIGV4cGFuZC1jb2xsYXBzZSwgdmVuZ29ubyBvdnZpYW1lbnRlIHV0aWxpenphdGUgc29sbyBzZSAqKlVzZUV4cGFuZENvbGxhcHNlKiogw6ggKip0cnVlKipcclxuICAgKi9cclxuICBASW5wdXQoKSBFeHBhbmRDb2xsYXBzZU9wdGlvbnM6IEV4cGFuZENvbGxhcHNlT3B0aW9ucztcclxuXHJcbiAgLyoqXHJcbiAgICogQmxvY2NvIGNvbXBsZXRvIGRlbGxlIG9wemlvbmksIGFsdGVybmF0aXZvIGFsbCdhc3NlZ25hemlvbmUgZGkgKipFbGVtZW50cyoqLCAqKk5vZGVTdHlsZXMqKiwgKipFZGdlU3R5bGVzKiosIGUgKipMYXlvdXQqKi5cclxuICAgKiBcclxuICAgKiBRdWFsb3JhIGVudHJhbWJlIHZlbmlzc2VybyBzcGVjaWZpY2F0ZSB2ZXJyw6AgZWZmZXR0dWF0YSB1bid1bmlvbmUgZnJhIHF1ZXN0ZSBvcHppb25pIGUgcXVlbGxlIHNwZWNpZmljYXRlLCBkYW5kbyBwcmlvcml0w6AgYWxsZSBzcGVjaWZpY2F0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE5hdGl2ZU9wdGlvbnM6IGN5dG9zY2FwZS5DeXRvc2NhcGVPcHRpb25zID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaXppb25lIGRlZ2xpIGVsZW1lbnRpIGRhIG1vc3RyYXJlIG5lbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBASW5wdXQoKSBFbGVtZW50czogY3l0b3NjYXBlLkVsZW1lbnREZWZpbml0aW9uW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaXppb25lIGRlZ2xpIHN0aWxpIGRlaSBub2RpXHJcbiAgICovXHJcbiAgQElucHV0KCkgTm9kZVN0eWxlczogY3l0b3NjYXBlLkNzcy5Ob2RlO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbml6aW9uZSBkZWdsaSBzdGlsaSBkZWkgY29sbGVnYW1lbnRpIGZyYSBpIG5vZGlcclxuICAgKi9cclxuICBASW5wdXQoKSBFZGdlU3R5bGVzOiBjeXRvc2NhcGUuQ3NzLkVkZ2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluIHVuIGRpYWdyYW1tYSBpbiBzb2xhIGxldHR1cmEgdHV0dGUgbGUgaW50ZXJhemlvbmkgdXRlbnRlIHNvbm8gYW5udWxsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgUmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEFnZ2lvcm5hIGF1dG9tYXRpY2FtZW50ZSBsZSBkaW1lbnNpb25pIGRlbCBkaWFncmFtbWEgcXVhbmRvIGNhbWJpYW5vIGxlIGRpbWVuc2lvbmkgZGVsbGEgZmluZXN0cmFcclxuICAgKi9cclxuICBASW5wdXQoKSBBdXRvdXBkYXRlU2l6ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBkaSBtYW50ZW5lcmUgbGEgcG9zaXppb25lIGRlaSBub2RpIHF1YWxvcmEgdmVuaXNzZXJvIGNhbWJpYXRpIGRhbGwnSW5wdXQgKipFbGVtZW50cyoqLlxyXG4gICAqIFxyXG4gICAqIFNlIGwnSUQgZGkgdW4gbm9kbyDDqCB1Z3VhbGUgYWxsJ0lEIGRpIHVuIG5vZG8gcHJlc2VudGUgaW4gcHJlY2VkZW56YSwgaWwgbnVvdm8gbm9kbyBuZSBlcmVkaXRlcsOgIGxhIHBvc2l6aW9uZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFByZXNlcnZlRWxlbWVudHNQb3NpdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFF1YWxvcmEgdmVuaXNzZSBtb2RpZmljYXRvIGwnSW5wdXQgKipFbGVtZW50cyoqLCBwaXV0dG9zdG8gY2hlIG1ldHRlcmUgc2VtcGxpY2VtZW50ZSBpbCBudW92byBFbGVtZW50byBpbiBiYXNlIGFsIExheW91dCBwcmVjZWRlbnRlLCBhcHBsaWNhIGFuY2hlIHVuJ2FuaW1hemlvbmUgXHJcbiAgICogXHJcbiAgICogRnVuemlvbmEgc29sYW1lbnRlIHNlIGlsICoqTGF5b3V0KiogY29ycmVudGUgZGVsIGRpYWdyYW1tYSBzdXBwb3J0YSBsZSBhbmltYXppb25pXHJcbiAgICovXHJcbiAgQElucHV0KCkgQW5pbWF0ZUxheW91dENoYW5nZXM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBBdHRpdmEgdW5hIG1vZGFsaXTDoCBkaSBzZWxlemlvbmUgXCJzbWFydFwiLi4uIG8gcGVybG9tZW5vIFwic21hcnRlclwiIGRlbCBkZWZhdWx0IGRpIEN5dG9zY2FwZS5cclxuICAgKiBcclxuICAgKiAtIElsIGNsaWNrIGRpIHVuIGVsZW1lbnRvIG5vbiBzZWxlemlvbmF0byBsbyBzZWxlemlvbmFcclxuICAgKiAtIElsIGNsaWNrIGRpIHVuIGVsZW1lbnRvIHNlbGV6aW9uYXRvIGxvIGRlc2VsZXppb25hXHJcbiAgICogLSBMbyBzdGF0byBkaSBzZWxlemlvbmUgdmllbmUgcGVyc2lzdGl0byBzdWxsJ29nZ2V0dG8gb3JpZ2luYWxlIGludmVjZSBkaSByaW1hbmVyZSBpbiB1biBpbnRlcm5hbFxyXG4gICAqIC0gQWxsJ2Fzc2VnbmF6aW9uZSBkaSBvZ2dldHRpIHNlbGV6aW9uYXRpLCBxdWVzdGkgdmVuZ29ubyBtYXJjYXRpIGNvcnJldHRhbWVudGUgY29uIGwnb3ZlcmxheSBkaSBzZWxlemlvbmVcclxuICAgKiBcclxuICAgKiBOLkI6IGxhIGNoaWFtYXRhIGFsbCdldmVudG8gKipvbk5vZGVDbGljayoqIGF2dmllbmUgKipET1BPKiogbGEgZ2VzdGlvbmUgZGVsbGEgc2VsZXppb25lXHJcbiAgICovXHJcbiAgQElucHV0KCkgU21hcnRTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGRpIHNlbGV6aW9uYXJlIHVuIGVsZW1lbnRvIHBlciB2b2x0YSBxdWFsb3JhICoqU21hcnRTZWxlY3Rpb24qKiBmb3NzZSBhdHRpdm9cclxuICAgKi9cclxuICBASW5wdXQoKSBTaW5nbGVTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ1NTIHBlciBsYSBncmFmaWNhemlvbmUgZGVsbGEgc2VsZXppb25lIGRlaSBub2RpLiBRdWFuZG8gdW4gbm9kbyB2ZXJyw6Agc2VsZXppb25hdG8gYXZyw6Agc29wcmEgZGkgc2UgdW4gb3ZlcmxheSBjaGUgJ3Nib3JkYScgZGkgKipvdmVybGF5LXBhZGRpbmcqKiBwaXhlbCxcclxuICAgKiBkaSBjb2xvcmUgKipvdmVybGF5LWNvbG9yKiogZSBjb24gdW4gb3BhY2l0w6AgKipvdmVybGF5LW9wYWNpdHkqKlxyXG4gICAqIFxyXG4gICAqIEFzc2VnbmFuZG8gXCJ7fVwiIGEgcXVlc3RvIGlucHV0LCBsYSBTbWFydCBzZWxlY3Rpb24gdmllbmUgZ2VzdGl0YSBtYSBsYSBnZXN0aW9uZSBncmFmaWNhIMOoIGFmZmlkYXRhIGFsbCd1dGVudGUsXHJcbiAgICogYWQgZXNlbXBpbyB1c2FuZG8gZGVpICoqTm9kZUhUTUxUZW1wbGF0ZXMqKiBjaGUgZGVmaW5pc2Nhbm8gc2VsZXR0b3JpIHN1IG5vZGkgXCI6c2VsZWN0ZWRcIlxyXG4gICAqIFxyXG4gICAqIEBkZWZhdWx0IHsnb3ZlcmxheS1jb2xvcic6J2JsdWUnLCdvdmVybGF5LW9wYWNpdHknOjAuNSwnb3ZlcmxheS1wYWRkaW5nJzo3fVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFNtYXJ0U2VsZWN0aW9uU3R5bGVzOiB7ICdvdmVybGF5LWNvbG9yJzogc3RyaW5nLCAnb3ZlcmxheS1vcGFjaXR5JzogbnVtYmVyLCAnb3ZlcmxheS1wYWRkaW5nJzogbnVtYmVyIH0gPSBudWxsXHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmlvZG8gZGkgdGhyb3R0bGUgZGEgcXVhbmRvIHZpZW5lIGVmZmV0dHVhdG8gdW4gcmVzaXplIGEgcXVhbmRvIHJpY2FsY29sYXJlIGxlIGRpbWVuc2lvbmkgZGVsIGRpYWdyYW1tYS5cclxuICAgKiBcclxuICAgKiBQdcOyIGVzc2VyZSB0ZW51dG8gYSAwIChyZWRyYXcgaXN0YW50YW5lbykgZmluY2jDqSBub24gY2kgc29ubyBwcm9ibGVtaSBkaSBwcmVzdGF6aW9uaSBjb24gZXZlbnR1YWxtZW50ZSB0YW50aSByZXNpemUgYSBwb2NhIGRpc3RhbnphIGwndW5vIGRhbGwnYWx0cm8uXHJcbiAgICovXHJcbiAgQElucHV0KCkgUmVzaXplVGhyb3R0bGVUaW1lOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBMYXlvdXQgZGkgb3JkaW5hbWVudG8gZGVpIG5vZGlcclxuICAgKi9cclxuICBASW5wdXQoKSBMYXlvdXQ6IEJyZWFkdGhGaXJzdExheW91dE9wdGlvbnNJbXBsIHwgQ2lyY2xlTGF5b3V0T3B0aW9uc0ltcGwgfCBDb25jZW50cmljTGF5b3V0T3B0aW9uc0ltcGwgfFxyXG4gICAgQ29zZUxheW91dE9wdGlvbnNJbXBsIHwgRGFncmVMYXlvdXRPcHRpb25zSW1wbCB8IEdyaWRMYXlvdXRPcHRpb25zSW1wbCB8IE51bGxMYXlvdXRPcHRpb25zSW1wbCB8IFByZXNldExheW91dE9wdGlvbnNJbXBsIHxcclxuICAgIFJhbmRvbUxheW91dE9wdGlvbnNJbXBsO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBIVE1MIGRhIGFwcGxpY2FyZSBhaSBub2RpIHBlciBkYXJnbGkgc3RpbGkgcGFydGljb2xhcmksIGRpdmVyc2kgZGFsbGUgc2hhcGUgZGkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE5vZGVIVE1MVGVtcGxhdGVzOiBOb2RlSFRNTFRlbXBsYXRlW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm5pc2NlIGlsIGdsb2JhbCBkZWxsYSBsaWJyZXJpYSAobmFtZXNwYWNlICoqY3l0b3NjYXBlKiopIGUgc2kgYXNwZXR0YSBjaGUgZG9wbyBvcGVyYXppb25pIGRpIGltcG9ydGF6aW9uZSBcclxuICAgKiBsYXNjaWF0ZSBhbGwndXRlbnRlIHZlbmdhbm8gYWdnaXVudGkgdHV0dGkgaSBtb2R1bGkgZGVzaWRlcmF0aS4gXHJcbiAgICogXHJcbiAgICogw4ggKipmb25kYW1lbnRhbGUqKiBjaGUgaWwgcHJpbW8gcGFyYW1ldHJvIChpbCBub21lIGRlbCBtb2R1bG8pIHNpYSB1Z3VhbGUgYSBjacOyIGRpIGN1aSB2aWVuZSBmYXR0byBpbCByZXF1aXJlIGluIG1vZG8gY2hlIGxhIGxpYnJlcmlhXHJcbiAgICogcG9zc2EgY29udHJvbGxhcmUgY2hlIGlsIG1vZHVsbyBpbXBvcnRhdG8gbm9uIHNpYSBnacOgIHN0YXRvIGltcG9ydGF0byBpbiBwcmVjZWRlbnphXHJcbiAgICogXHJcbiAgICogIyMgRXNlbXBpbzpcclxuICAgKiBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogKGdsb2JhbCkgPT4ge1xyXG4gICAqICAgIHJldHVybiBpbXBvcnQoXCJjeXRvc2NhcGUtZXh0ZW5zaW9uLWxpYnJhcnlcIikudGhlbihtb2R1bGUgPT4gZ2xvYmFsLnVzZShcImN5dG9zY2FwZS1leHRlbnNpb24tbGlicmFyeVwiLCBtb2R1bGUuZGVmYXVsdCkpO1xyXG4gICAqIFxyXG4gICAqICAgIC4uLlxyXG4gICAqIH1cclxuICAgKiBgYGBcclxuICAgKi9cclxuICBASW5wdXQoKSBFeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXI6IChnbG9iYWw6IHsgdXNlOiAobW9kdWxlTmFtZTogc3RyaW5nLCBtb2R1bGU6IHZvaWQgfCBjeXRvc2NhcGUuRXh0KSA9PiB2b2lkIH0pID0+IFByb21pc2U8YW55PiA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm5pc2NlIGwnaXN0YW56YSBhdHR1YWxlIGRpIEN5dG9zY2FwZSBkYSBjdWkgw6ggcG9zc2liaWxlIHByZW5kZXJlIGxlIGxpYnJlcmllIGRpIGVzdGVuc2lvbmUgY2FyaWNhdGUgaW4gKipFeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXIqKlxyXG4gICAqIGUgY29uZmlndXJhcmxlIGluIGJhc2UgYWkgY29tcG9ydGFtZW50aSBzcGVjaWZpY2lcclxuICAgKiBcclxuICAgKiAjIyBFc2VtcGlvOlxyXG4gICAqIFxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiAoY3l0b3NjYXBlQ29yZSkgPT4ge1xyXG4gICAqICAgIC8vIEZhcmUgcXVlc3RvIGxhdm9ybyBwZXIgb2duaSBlc3RlbnNpb25lIGNhcmljYXRhXHJcbiAgICogICAgbGV0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSB7IC4uLiB9O1xyXG4gICAqICAgIGxldCBleHRlbnNpb25JbnN0YW5jZSA9IGN5dG9zY2FwZUNvcmUuZXh0ZW5zaW9uTGlicmFyeShleHRlbnNpb25Db25maWd1cmF0aW9uKTtcclxuICAgKiAgICBleHRlbnNpb25JbnN0YW5jZS5kb1NvbWV0aGluZ1NwZWNpZmljVG9UaGlzRXh0ZW5zaW9uKCk7XHJcbiAgICogXHJcbiAgICogICAgLi4uXHJcbiAgICogfVxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEV4dGVuc2lvbk1vZHVsZXNBcHBseWVyOiAoY3l0b3NjYXBlQ29yZTogY3l0b3NjYXBlLkNvcmUpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWwgY2xpY2sgZGkgdW4gbm9kbywgY29udGllbmUgbCdvZ2dldHRvICoqZGF0YSoqIGRlbCBub2RvIGluIHF1ZXN0aW9uZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbk5vZGVDbGljazogRXZlbnRFbWl0dGVyPHsgZGF0YTogYW55IH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IGFueSB9PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWxsYSBzZWxlemlvbmUgbyBkZXNlbGV6aW9uZSBkaSB1biBub2RvLCBjb250aWVuZSBsJ29nZ2V0dG8gKipkYXRhKiogZGVsIG5vZG8gaW4gcXVlc3Rpb25lIGUgaW5mb3JtYXppb25pIHN1bCBzdW8gc3RhdG8gZGkgc2VsZXppb25lXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uTm9kZVNlbGVjdGlvbjogRXZlbnRFbWl0dGVyPHsgZGF0YTogYW55LCBzZWxlY3RlZDogYm9vbGVhbiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBkYXRhOiBhbnksIHNlbGVjdGVkOiBib29sZWFuIH0+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBsYW5jaWF0byBhbCB0ZXJtaW5lIGRlbCBMYXlvdXRpbmcuIFNlIHNpIHZ1b2xlIGVzZWd1aXJlIGNvZGljZSBkb3BvIGNoZSBpbCBMYXlvdXQgw6ggZmF0dG8gZSBjb21wbGV0YW1lbnRlIGdyYWZpY2F0bywgcXVlc3RvIMOoIGlsIHB1bnRvXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uTGF5b3V0RG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gbGFuY2lhdG8gYWwgdGVybWluZSBkZWwgY2FyaWNhbWVudG8gZGVsIGRpYWdyYW1tYVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkxvYWRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBWYXJpYWJpbGUgc3UgY3VpIHNhbHZhcnNpIHNlIGkgbm9kaSBoYW5ubyB1bmEgZ2VyYXJjaGlhIGEgZ3J1cHBpIG8gbm8uIFNlcnZlIHBlciBwb2kgY2FyaWNhcmUgbCdlc3RlbnNpb25lIGV4cGFuZC1jb2xsYXBzZSBxdWFsb3JhIGZvc3NlIHJpY2hpZXN0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgTm9kZXNIaWVyYXJjaHk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBpbCByZW5kZXJpbmcgZGVsIGRpYWdyYW1tYSDDqCB0ZXJtaW5hdG9cclxuICAgKi9cclxuICBwcml2YXRlIFJlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIElzdGFuemEgZGVsIGRpYWdyYW1tYSBhdHR1YWxtZW50ZSBpbiB1c29cclxuICAgKi9cclxuICBwdWJsaWMgY3k6IGN5dG9zY2FwZS5Db3JlXHJcblxyXG4gIC8qKlxyXG4gICAqIEFwaSBkZWxsJ2VzdGVuc2lvbmUgZXhwYW5kLWNvbGxhcHNlIHBlciBwZXJtZXR0ZXJlIGRpIGVmZmV0dHVhcmUgb3BlcmF6aW9uaSBkYWxsJ2VzdGVybm8gZGVsIGRpYWdyYW1tYS4gVmVuZ29ubyB2YWxvcml6emF0ZSBzZSAqKlVzZUV4cGFuZENvbGxhcHNlKiogw6ggKip0cnVlKipcclxuICAgKi9cclxuICBwdWJsaWMgRXhwYW5kQ29sbGFwc2VBcGk6IGFueSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwaSBkZWxsJ2VzdGVuc2lvbmUgaHRtbC1ub2RlIHBlciBwZXJtZXR0ZXJlIGRpIGVmZmV0dHVhcmUgb3BlcmF6aW9uaSBkYWxsJ2VzdGVybm8gZGVsIGRpYWdyYW1tYS4gVmVuZ29ubyB2YWxvcml6emF0ZSBzZSBzb25vIGltcG9zdGF0aSBkZWkgKipOb2RlSFRNTFRlbXBsYXRlcyoqXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBIdG1sTm9kZUFwaTogYW55ID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogT3NzZXJ2YXRvcmUgZGVsbGUgbW9kaWZpY2hlIGFsIGNvbnRlbml0b3JlIGRlbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVTZW5zb3I7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpZmVyaW1lbnRvIGFsbCd1bHRpbW8gbGF5b3V0IHV0aWxpenphdG8uIFZpZW5lIHJpYXBwbGljYXRvIHF1YWxvcmEgdmVuaXNzZSBjYW1iaWF0byBsJ0lucHV0ICoqRWxlbWVudHMqKi5cclxuICAgKiBcclxuICAgKiBOb24gdXRpbGl6em8gaWwgbWFrZUxheW91dHMgcGVyY2jDqSBhbHRyaW1lbnRpIHJpc2NoaWVyZWkgZGkgY3JlYXJlIHVuIGxheW91dCByaWZlcml0byBhIFggZWxlbWVudGksIG5lIGFnZ2l1bmdvIDEsIHJpYXBwbGljbyBpbCBMYXlvdXQgXHJcbiAgICogbWEgbWkgdmllbmUgcmlhcHBsaWNhdG8gYSBYIGVsZW1lbnRpIGludmVjZSBjaGUgWCArIDFcclxuICAgKi9cclxuICBwcml2YXRlIExhc3RMYXlvdXQ6IGN5dG9zY2FwZS5MYXlvdXRPcHRpb25zO1xyXG5cclxuICAvKipcclxuICAgKiBDb3N0cnV0dG9yZVxyXG4gICAqIFxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHNlcnZpY2U6IEVzRGlhZ3JhbVNlcnZpY2UsIEBPcHRpb25hbCgpIHByaXZhdGUgZGlzcGF0Y2hlcjogRXNEaWFncmFtRGlzcGF0Y2hlciwgcHJpdmF0ZSBleHRzOiBSZWFjdGl2ZUV4dGVuc2lvbnMpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlIFxyXG4gICAqIFxyXG4gICAqIEFuZ3VsYXIgUGlwZWxpbmVcclxuICAgKi9cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLnNlcnZpY2UgfHwgIXRoaXMuZGlzcGF0Y2hlcilcclxuICAgICAgdGhyb3cgXCJJbCBtb2R1bG8gQGVzZmFlbnphL2RpYWdyYW1zIG5vbiDDqCBzdGF0byBpbXBvcnRhdG8gY29uIGlsIGZvclJvb3QoKTtcIjtcclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoTG9hZENoYXJ0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGwnb25EZXN0cm95IHJpcHVsaXNjbyBsYSBtZW1vcmlhIGRhbCBkaWFncmFtbWFcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xyXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc3Bvc2UoKTtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3kpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJEaWFncmFtXCIgKyBcIiBcIiArIHRoaXMubmFtZSArIFwiOiBVbmxvYWRpbmcgZGVzdHJveWVkIGRpYWdyYW1cIiwgZmFsc2UpO1xyXG4gICAgICB0aGlzLmN5LmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5kaXNwYXRjaGVyLmRlcmVnaXN0ZXIodGhpcy5uYW1lKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJDaGFydCBcIiArIHRoaXMubmFtZSArIFwiOiBVbmxvYWRpbmcgdW5jcmVhdGVkIGNoYXJ0IGNvbXBvbmVudC4gSXQgcHJvYmFibHkgd2FzIGEgZHVwbGljYXRlZFwiLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RyYSBpbCBkaWFncmFtbWEgYXR0dWFsZSBuZWwgRGlzcGF0Y2hlciBpbiBtb2RvIGNoZSB2ZW5nYSBjYXJpY2F0byBhcHBlbmEgcG9zc2liaWxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaExvYWRDaGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLm5hbWUsICgpID0+IHsgcmV0dXJuIHRoaXMucmVuZGVyKCk7IH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZSBcclxuICAgKiBcclxuICAgKiBBbmd1bGFyIFBpcGVsaW5lOiBHZXN0aW9uZSByaS1ncmFmaWNhemlvbmUgZGVsIGRpYWdyYW1tYSwgc2UgcG9zc2liaWxlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBhbnkge1xyXG4gICAgbGV0IHRvQ2hlY2sgPSBbXCJUZW1wbGF0ZXNcIiwgXCJVc2VDb250ZXh0TWVudVwiLCBcIkNvbnRleHRNZW51T3B0aW9uc1wiLCBcIlVzZUV4cGFuZENvbGxhcHNlXCIsIFwiRXhwYW5kQ29sbGFwc2VPcHRpb25zXCIsIFwiTm9kZVN0eWxlc1wiLCBcIkVkZ2VTdHlsZXNcIiwgXCJOYXRpdmVPcHRpb25zXCJdO1xyXG5cclxuICAgIGlmICh0aGlzLlJlbmRlcmVkICYmIHRvQ2hlY2suc29tZSh0ID0+IGNoYW5nZXNbdF0pKVxyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiV1wiLCBcIlJlZHJhdyBiYXNlZCBvbiBkeW5hbWljIElucHV0IGNoYW5nZSBpcyBzdXBwb3J0ZWQgb25seSBmb3IgJ0VsZW1lbnRzJyBhbmQgJ0xheW91dCcgaW5wdXRzLCBwbGVhc2UgZGVzdHJveSB0aGUgY29tcG9uZW50IGFuZCByZWNyZWF0ZSBpdCB3aXRoIHRoZSBuZXcgc2V0dGluZ3NcIik7XHJcblxyXG4gICAgbGV0IGVsZW1lbnRDaGFuZ2VzID0gY2hhbmdlc1tcIkVsZW1lbnRzXCJdO1xyXG4gICAgbGV0IGxheW91dENoYW5nZXMgPSBjaGFuZ2VzW1wiTGF5b3V0XCJdO1xyXG4gICAgaWYgKGVsZW1lbnRDaGFuZ2VzICYmICFlbGVtZW50Q2hhbmdlcy5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiSVwiLCBcIkVsZW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkIGFmdGVyIGRpYWdyYW0gaW5pdGlhbGl6YXRpb25cIik7XHJcblxyXG4gICAgICAvLyBDYW1iaWFtZW50byBhZ2xpIEVsZW1lbnRpOiByaXB1bGlzY28gZ2xpIGVsZW1lbnRpIHZlY2NoaSwgcHJlbmRvIGkgbnVvdmksIGxpIHNpc3RlbW8gZSBsaSByaWFzc2Vnbm8uIFxyXG4gICAgICAvLyBTZSBpbCBudW92byBJbnB1dCBFbGVtZW50cyDDqCByb2JhIHN0cmFuYSBtaSBsaW1pdG8gYSByaXB1bGlyZSBpbCBkaWFncmFtbWFcclxuICAgICAgLy8gU2UgY3l0b3NjYXBlIGF2ZXZhIGdpw6AgZGVnbGkgZWxlbWVudGkgcHJlY2VkZW50ZW1lbnRlIG5lIHByZW5kbyBsZSBwb3NpemlvbmkgaW4gbW9kbyBkYSByaWRpc2VnbmFybGkgcGFydGVuZG8gZGFsbG8gc3Rlc3NvIHB1bnRvIChjYXJpbm8gcGVyIGxlIGFuaW1hemlvbmkpXHJcbiAgICAgIGxldCBlbGVtZW50cyA9IGVsZW1lbnRDaGFuZ2VzPy5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGxldCBwcmV2aW91c19lbGVtZW50cyA9IHRoaXMuUHJlc2VydmVFbGVtZW50c1Bvc2l0aW9uID8gPGFueT50aGlzLmN5Lm5vZGVzKCkgOiBudWxsO1xyXG5cclxuICAgICAgdGhpcy5jeS5lbGVtZW50cygpLnJlbW92ZSgpO1xyXG4gICAgICBpZiAoZWxlbWVudHMgJiYgZWxlbWVudHMubGVuZ3RoICYmIGVsZW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJldmlld0N5dG9zY2FwZUVsZW1lbnRzKGVsZW1lbnRzLCBwcmV2aW91c19lbGVtZW50cyk7XHJcbiAgICAgICAgdGhpcy5jeS5hZGQoZWxlbWVudHMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5TbWFydFNlbGVjdGlvbilcclxuICAgICAgICAgIHRoaXMuc2V0dXBFbGVtZW50c1NlbGVjdGlvbklmTmVlZGVkKCk7XHJcblxyXG4gICAgICAgIC8vIFNlIHNvbG8gZ2xpIGVsZW1lbnRpIGNhbWJpYW5vLCByaWFwcGxpY28gaWwgTGF5b3V0IHByZWNlZGVudGVcclxuICAgICAgICBpZiAoIWxheW91dENoYW5nZXMgJiYgdGhpcy5MYXN0TGF5b3V0KSB7XHJcblxyXG4gICAgICAgICAgLy8gU2UgZGV2byBhbmltYXJlIGxlIG1vZGlmY2hlIGFsIGxheW91dCBmb3J6byBpbCBwYXJhbWV0cm8gcmVsYXRpdm9cclxuICAgICAgICAgIGlmICh0aGlzLkFuaW1hdGVMYXlvdXRDaGFuZ2VzKVxyXG4gICAgICAgICAgICAoPGFueT50aGlzLkxhc3RMYXlvdXQpLmFuaW1hdGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuY3kubGF5b3V0KHRoaXMuTGFzdExheW91dCkucnVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2UgaWwgbGF5b3V0IGNhbWJpYSBsbyBhcHBsaWNvIGUgbWUgbG8gc2Fsdm8gY29tZSBsYXlvdXQgcHJlY2VkZW50ZSBwZXIgaWwgZnV0dXJvXHJcbiAgICBpZiAobGF5b3V0Q2hhbmdlcyAmJiAhbGF5b3V0Q2hhbmdlcy5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UubG9nKFwiSVwiLCBcIkxheW91dCBoYXZlIGJlZW4gY2hhbmdlZCBhZnRlciBkaWFncmFtIGluaXRpYWxpemF0aW9uXCIpO1xyXG4gICAgICB0aGlzLkxhc3RMYXlvdXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxheW91dENoYW5nZXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgIHRoaXMuY3kubGF5b3V0KHRoaXMuTGFzdExheW91dCkucnVuKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVmZmV0dHVhIGlsIHJlbmRlcmluZyBkZWwgZGlhZ3JhbW1hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyByZW5kZXIoKSB7XHJcblxyXG4gICAgLy8gVGlybyBmdW9yaSBsZSBvcHppb25pIGNvbiBjdWkgZ2VuZXJhcmUgaWwgZGlhZ3JhbW1hXHJcbiAgICBsZXQgY3lPcHRpb25zID0gdGhpcy5nZXRDb21wbGV0ZWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLk5vZGVzSGllcmFyY2h5ID0gY3lPcHRpb25zLmVsZW1lbnRzICYmICg8Y3lfLkVsZW1lbnREZWZpbml0aW9uW10+Y3lPcHRpb25zLmVsZW1lbnRzKS5zb21lKHQgPT4gdC5kYXRhLnBhcmVudCk7XHJcblxyXG4gICAgLy8gQ2FyaWNvIGV2ZW50dWFsaSBjbGFzc2kgZGkgZXN0ZW5zaW9uZSBjaGUgc2Vydm9ub1xyXG4gICAgYXdhaXQgdGhpcy5wZXJmb3JtTW9kdWxlc0xvYWRpbmcoKTtcclxuXHJcbiAgICAvLyBHZW5lcm8gaWwgZGlhZ3JhbW1hXHJcbiAgICB0aGlzLmN5ID0gY3l0b3NjYXBlKGN5T3B0aW9ucyk7XHJcblxyXG4gICAgLy8gQ29sbGVnbyBnbGkgZXZlbnRpIGFsIGNvbXBvbmVudGVcclxuICAgIHRoaXMuYmluZEN5dG9zY2FwZUV2ZW50cygpO1xyXG5cclxuICAgIC8vIFV0aWxpenpvIGxlIGNsYXNzaSBkaSBlc3RlbnNpb25lIGNhcmljYXRlIHByZWNlZGVudGVtZW50ZSBwZXIgZmFyZSBpbCByZXN0byBkZWxsZSBtaWUgb3BlcmF6aW9uaVxyXG4gICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uc1dpdGhMb2FkZWRNb2R1bGVzKCk7XHJcblxyXG4gICAgLy8gSW1wb3N0byBsYSB2YXJpYWJpbGUgUmVuZGVyZWQgYSB0cnVlIGluIG1vZG8gY2hlIHNlIGRhIGFkZXNzbyB2ZW5nb25vIGZhdHRlIG1vZGlmaWNoZSBjaGUgZG92cmViYmVybyBjYXVzYXJlIHVuIHJlZHJhdyBwb3NzbyBhY2Nvcmdlcm1lbmVcclxuICAgIC8vIGUgbWFuZGFyZSBhIGNhZ2FyZSBsbyBzdHJvbnpvIGRpIHR1cm5vXHJcbiAgICB0aGlzLlJlbmRlcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBTZSBkZXZvIGFnZ2lvcm5hcmUgaW4gYXV0b21hdGljbyBpbiBiYXNlIGFsbGEgZGltZW5zaW9uZSBkZWwgY29udGVuaXRvcmUgY29sbGVnbyBpbCBSZXNpemVPYnNlcnZlclxyXG4gICAgaWYgKHRoaXMuQXV0b3VwZGF0ZVNpemUpXHJcbiAgICAgIHRoaXMubGlzdGVuT25DaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuU21hcnRTZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zZXR1cFNlbGVjdGlvblN0eWxlcygpO1xyXG4gICAgICB0aGlzLnNldHVwRWxlbWVudHNTZWxlY3Rpb25JZk5lZWRlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25Mb2FkZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlbmRlIHR1dHRpIGdsaSBlbGVtZW50aSBhcHBlbmEgYXNzZWduYXRpLCBlIHNlIHF1YWxjdW5vIGVyYSBzZWxlemlvbmF0byBsYSBzaXR1YXppb25lIHZpZW5lIHBlcnNpc3RpdGEgc3UgY3l0b3NjYXBlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXR1cEVsZW1lbnRzU2VsZWN0aW9uSWZOZWVkZWQoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVsZGF0YSA9IDxhbnk+dGhpcy5FbGVtZW50c1tpXS5kYXRhO1xyXG4gICAgICBpZiAoZWxkYXRhLl9fc2VsZWN0ZWQpIHtcclxuICAgICAgICBsZXQgZWwgPSB0aGlzLmN5LiRpZChlbGRhdGEuaWQpO1xyXG4gICAgICAgIGVsLnNlbGVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXJpY2EgZ2xpIHN0aWxpIHBlciBtb3N0cmFyZSBjYXJpbmEgbGEgc2VsZXppb25lIGRlaSBub2RpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvblN0eWxlcygpe1xyXG4gICAgbGV0IGNzc0l0ZW0gPSB0aGlzLlNtYXJ0U2VsZWN0aW9uU3R5bGVzIHx8IHtcclxuICAgICAgJ292ZXJsYXktY29sb3InOiAnYmx1ZScsXHJcbiAgICAgICdvdmVybGF5LW9wYWNpdHknOiAwLjUsXHJcbiAgICAgICdvdmVybGF5LXBhZGRpbmcnOiA3XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEJhY2tkb29yIHBlciBwb3RlciBhc3NlZ25hcmUgXCJ7fVwiIGEgU21hcnRTZWxlY3Rpb25TdHlsZXMgaW4gbW9kbyBkaSB1dGlsaXp6YXJlIGxhIHNtYXJ0IHNlbGVjdGlvbiBtYSBzZW56YSBjaGUgbmVzc3VubyBzdGlsZSB2ZW5nYSBhcHBsaWNhdG9cclxuICAgIC8vIGFkIGVzZW1waW8gcXVhbG9yYSBzaSB2b2xlc3NlIHV0aWxpenphcmUgbCdodG1sbm9kZSBwZXIgZ2VzdGlyZSBsYSBncmFmaWNhIGRlZ2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXHJcbiAgICBpZihjc3NJdGVtWydvdmVybGF5LWNvbG9yJ10gJiYgY3NzSXRlbVsnb3ZlcmxheS1vcGFjaXR5J10gJiYgY3NzSXRlbVsnb3ZlcmxheS1wYWRkaW5nJ10pXHJcbiAgICAgICg8YW55PnRoaXMuY3kuc3R5bGUoKSkuc2VsZWN0b3IoJ25vZGU6c2VsZWN0ZWQnKS5jc3MoY3NzSXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RyYSBsJ2FzY29sdG8gYWwgY29udGVuaXRvcmUgZGVsIGdyYWZpY28gZSBpbiBjYXNvIGRpIG1vZGlmaWNoZSBhbGxhIGRpbWVuc2lvbmUsIGFsIG1hc3NpbW8gdW5hIHZvbHRhIG9nbmkgNTAwIG1pbGxpc2Vjb25kaSwgbG8gcmlkaXNlZ25hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaXN0ZW5PbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZVNlbnNvcih0aGlzLmN5R3JhcGgubmF0aXZlRWxlbWVudCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmV4dHMudGhyb3R0bGUodGhpcy5uYW1lLCB0aGlzLm9uQ29udGFpbmVyU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSwgdGhpcy5SZXNpemVUaHJvdHRsZVRpbWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW56aW9uZSBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgaWwgcmVwYWludCBkZWwgZGlhZ3JhbW1hXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkNvbnRhaW5lclNpemVDaGFuZ2VkKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmxvZyhcIklcIiwgXCJEaWFncmFtIGNvbnRhaW5lciBzaXplIGhhcyBjaGFuZ2VkLCByZWRyYXdpbmdcIik7XHJcbiAgICB0aGlzLmN5LnJlc2l6ZSgpO1xyXG4gICAgdGhpcy5jeS5maXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxlZ2EgdHV0dGkgZ2xpIGV2ZW50aSBjaGUgbWkgcG9zc29ubyBzZXJ2aXJlIGUgbGkgZXNwb25lIGluIG91dHB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYmluZEN5dG9zY2FwZUV2ZW50cygpIHtcclxuICAgIHRoaXMuY3kuYmluZCgnY2xpY2snLCAnbm9kZScsIChldmVudCkgPT4ge1xyXG4gICAgICBsZXQgdGFyZ2V0RGF0YSA9IGV2ZW50LnRhcmdldC5kYXRhKClcclxuICAgICAgaWYgKHRoaXMuU21hcnRTZWxlY3Rpb24pIHtcclxuXHJcbiAgICAgICAgLy8gSW4gY2FzbyBkaSBzZWxlemlvbmUgc2luZ29sYSByaXB1bGlzY28gdHV0dGkgZ2xpIGVsZW1lbnRpIHByZWNlZGVudGVtZW50ZSBzZWxlemlvbmF0aVxyXG4gICAgICAgIGlmICh0aGlzLlNpbmdsZVNlbGVjdGlvbikge1xyXG4gICAgICAgICAgbGV0IHNlbGVjdGVkID0gdGhpcy5jeS5lbGVtZW50cygnbm9kZTpzZWxlY3RlZCcpO1xyXG4gICAgICAgICAgc2VsZWN0ZWQuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgICAgIGVsLnNlbGVjdGlmeSgpO1xyXG4gICAgICAgICAgICBlbC51bnNlbGVjdCgpO1xyXG4gICAgICAgICAgICBlbC51bnNlbGVjdGlmeSgpO1xyXG4gICAgICAgICAgICBlbC5kYXRhKFwiX19zZWxlY3RlZFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGlkID0gdGFyZ2V0RGF0YS5pZFxyXG4gICAgICAgIGxldCBlbCA9IHRoaXMuY3kuJGlkKGlkKTtcclxuICAgICAgICBsZXQgc2VsZWN0ZWQgPSBlbC5zZWxlY3RlZCgpO1xyXG5cclxuICAgICAgICBlbC5zZWxlY3RpZnkoKTtcclxuICAgICAgICBpZiAoc2VsZWN0ZWQpXHJcbiAgICAgICAgICBlbC51bnNlbGVjdCgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGVsLnNlbGVjdCgpO1xyXG4gICAgICAgIGVsLnVuc2VsZWN0aWZ5KCk7XHJcblxyXG4gICAgICAgIC8vIFF1ZXN0byB2YSBhbmNoZSBuZWxsYSBsaXN0YSBkZWdsaSBlbGVtZW50aSBvcmlnaW5hbGkgKHRoaXMuRWxlbWVudHMpIGRhdG8gY2hlIGN5dG9zY2FwZSBsaSBwcmVuZGUgcGVyIHJpZmVyaW1lbnRvIChiYmJiYnJhdm8gY3l0by1jaGFuKVxyXG4gICAgICAgIGVsLmRhdGEoXCJfX3NlbGVjdGVkXCIsICFzZWxlY3RlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25Ob2RlQ2xpY2suZW1pdCh7IGRhdGE6IHRhcmdldERhdGEgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmN5LmJpbmQoJ3NlbGVjdCcsICdub2RlJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIGxldCB0YXJnZXREYXRhID0gZXZlbnQudGFyZ2V0LmRhdGEoKVxyXG5cclxuICAgICAgdGhpcy5vbk5vZGVTZWxlY3Rpb24uZW1pdCh7IGRhdGE6IHRhcmdldERhdGEsIHNlbGVjdGVkOiB0cnVlIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jeS5iaW5kKCdsYXlvdXRzdG9wJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMub25MYXlvdXREb25lLmVtaXQoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY3kuYmluZCgndW5zZWxlY3QnLCAnbm9kZScsIChldmVudCkgPT4ge1xyXG4gICAgICBsZXQgdGFyZ2V0RGF0YSA9IGV2ZW50LnRhcmdldC5kYXRhKClcclxuXHJcbiAgICAgIHRoaXMub25Ob2RlU2VsZWN0aW9uLmVtaXQoeyBkYXRhOiB0YXJnZXREYXRhLCBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBbHRyaSBldmVudGkuLi5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBjaGUgc2VydmUgcGVyIGNhcmljYXJlIHR1dHRlIGxlIGVzdGVuc2lvbmkgZGVsbGEgbGlicmVyaWEgaW4gYmFzZSBhIGNpw7IgY2hlIHZpZW5lIHV0aWxpenphdG9cclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHBlcmZvcm1Nb2R1bGVzTG9hZGluZygpIHtcclxuICAgIGlmICh0aGlzLkxheW91dC5uYW1lID09ICdkYWdyZScpXHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZEludGVybmFsKFwiY3l0b3NjYXBlLWRhZ3JlXCIpO1xyXG5cclxuICAgIGlmICh0aGlzLk5vZGVIVE1MVGVtcGxhdGVzICYmIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMubGVuZ3RoID4gMClcclxuICAgICAgYXdhaXQgdGhpcy5sb2FkSW50ZXJuYWwoXCJjeXRvc2NhcGUtaHRtbC1ub2RlXCIpO1xyXG5cclxuICAgIGlmICh0aGlzLlVzZUNvbnRleHRNZW51KVxyXG4gICAgICBhd2FpdCB0aGlzLmxvYWRJbnRlcm5hbChcImN5dG9zY2FwZS1jeHRtZW51XCIpO1xyXG5cclxuICAgIGlmICh0aGlzLk5vZGVzSGllcmFyY2h5ICYmIHRoaXMuVXNlRXhwYW5kQ29sbGFwc2UpXHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZEludGVybmFsKFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5FeHRlbnNpb25Nb2R1bGVzSW1wb3J0ZXIpIHtcclxuICAgICAgLy8gV3JhcHBvIGlsIG5hbWVzcGFjZSBpbiBtb2RvIGNoZSBwb3NzYSBkaXJlIGxhIG1pYSBzdWwgZmF0dG8gY2hlIGwndXRlbnRlIGFnZ2l1bmdhIHVuIG1vZHVsbyBvIG1lbm8gOkRcclxuICAgICAgdmFyIHdyYXBwZWRDeXRvc2NhcGUgPSB7XHJcbiAgICAgICAgdXNlOiAobW9kdWxlTmFtZTogc3RyaW5nLCBtb2R1bGU6IGN5dG9zY2FwZS5FeHQpID0+IHtcclxuICAgICAgICAgIGlmICghbW9kdWxlKVxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UubG9nKFwiRVwiLCB0aGlzLnNlcnZpY2UubG9jKFwiUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG1vZHVsZS4gTWFrZSBzdXJlIHlvdSBhcmUgY29ycmVjdGx5IGxvYWRpbmcgaXRcIikgKyBcIjogXCIgKyBtb2R1bGVOYW1lLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgaWYgKFtcImN5dG9zY2FwZS1kYWdyZVwiLCBcImN5dG9zY2FwZS1odG1sLW5vZGVcIiwgXCJjeXRvc2NhcGUtY3h0bWVudVwiLCBcImN5dG9zY2FwZS1leHBhbmQtY29sbGFwc2VcIl0uaW5jbHVkZXMobW9kdWxlTmFtZSkpXHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5sb2coXCJXXCIsIHRoaXMuc2VydmljZS5sb2MoXCJNb2R1bGVcIikgKyBcIiBcIiArIG1vZHVsZU5hbWUgKyBcIiBcIiArIHRoaXMuc2VydmljZS5sb2MoXCJpcyBsb2FkZWQgYW5kIG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhpcyBsaWJyYXJ5LiBZb3UgZG9uJ3QgbmVlZCB0byBpbXBvcnQgaXQgb3IgdXNlIGl0IGRpcmVjdGx5LCBqdXN0IGJlIHN1cmUgdG8gc2V0IHRoZSByZWxhdGl2ZSBvcHRpb25zXCIpLCBmYWxzZSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGN5dG9zY2FwZS51c2UobW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0ltcG9ydGVyKHdyYXBwZWRDeXRvc2NhcGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGNoZSBzZXJ2ZSBwZXIgY2FyaWNhcmUgdHV0dGUgbGUgZXN0ZW5zaW9uaSBkZWxsYSBsaWJyZXJpYSBpbiBiYXNlIGEgY2nDsiBjaGUgdmllbmUgdXRpbGl6emF0byBjb24gbGUgb3B6aW9uaSBkZWZpbml0ZSBkYWdsaSBJbnB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbnNXaXRoTG9hZGVkTW9kdWxlcygpIHtcclxuXHJcbiAgICBsZXQgYW55Q3kgPSAoPGFueT50aGlzLmN5KTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkZWwgbGF5b3V0LCBsbyBzYWx2byBwZXIgcG90ZXJsbyByaXV0aWxpenphcmUgaW4gZnV0dXJvXHJcbiAgICBpZiAodGhpcy5MYXlvdXQpIHtcclxuICAgICAgdGhpcy5MYXN0TGF5b3V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLkxheW91dCkpO1xyXG4gICAgICB0aGlzLmN5LmxheW91dCh0aGlzLkxhc3RMYXlvdXQpLnJ1bigpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXRpbGl6em8gZGVsbCdIVE1MIG5vZGVcclxuICAgIGlmICh0aGlzLk5vZGVIVE1MVGVtcGxhdGVzICYmIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLkh0bWxOb2RlQXBpID0gYW55Q3kuaHRtbG5vZGUoKTtcclxuICAgICAgdGhpcy5IdG1sTm9kZUFwaS5jcmVhdGVIdG1sTm9kZShjeXRvc2NhcGUsIHRoaXMuY3ksIHRoaXMuTm9kZUhUTUxUZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFV0aWxpenpvIGRlbCBDb250ZXh0IE1lbnVcclxuICAgIGlmICh0aGlzLlVzZUNvbnRleHRNZW51KVxyXG4gICAgICB0aGlzLkNvbnRleHRNZW51T3B0aW9ucy5mb3JFYWNoKG8gPT4geyBhbnlDeS5jeHRtZW51KG8pOyB9KTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkZWxsJ2V4cGFuZCBjb2xsYXBzZSBzb2xvIHF1YW5kbyBjJ8OoIHVuYSBnZXJhcmNoaWEgZGkgbm9kaVxyXG4gICAgaWYgKHRoaXMuTm9kZXNIaWVyYXJjaHkgJiYgdGhpcy5Vc2VFeHBhbmRDb2xsYXBzZSlcclxuICAgICAgdGhpcy5FeHBhbmRDb2xsYXBzZUFwaSA9IGFueUN5LmV4cGFuZENvbGxhcHNlKHRoaXMuRXhwYW5kQ29sbGFwc2VPcHRpb25zKTtcclxuXHJcbiAgICAvLyBVdGlsaXp6byBkaSBlc3RlbnNpb25pIGV4dHJhLCBpbXBsZW1lbnRhemlvbmUgYWZmaWRhdGEgYWwgcHJvZ3JhbW1hdG9yZVxyXG4gICAgaWYgKHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0FwcGx5ZXIpXHJcbiAgICAgIHRoaXMuRXh0ZW5zaW9uTW9kdWxlc0FwcGx5ZXIodGhpcy5jeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQ2FyZERhdGEoKSB7XHJcbiAgICBpZiAoIXRoaXMuSHRtbE5vZGVBcGkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIkVcIiwgXCJDYW5ub3QgdXBkYXRlIE5vZGVIVE1MVGVtcGxhdGVzIGFzIHRoZXkgZG9uJ3Qgc2VlbSB0byBiZSB1c2VkXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLkh0bWxOb2RlQXBpLnVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludGVybm8gcGVyIGlsIGNhcmljYW1lbnRvIGRlaSBtb2R1bGkgZGkgZXN0ZW5zaW9uZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7J2N5dG9zY2FwZS1leHBhbmQtY29sbGFwc2UnIHwgJ2N5dG9zY2FwZS1jeHRtZW51JyB8ICdjeXRvc2NhcGUtaHRtbC1ub2RlJyB8ICdjeXRvc2NhcGUtZGFncmUnfSBtb2R1bGVJZCBNb2R1bG8gZGEgY2FyaWNhcmVcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIGxvYWRJbnRlcm5hbChtb2R1bGVJZDogJ2N5dG9zY2FwZS1leHBhbmQtY29sbGFwc2UnIHwgJ2N5dG9zY2FwZS1jeHRtZW51JyB8ICdjeXRvc2NhcGUtaHRtbC1ub2RlJyB8ICdjeXRvc2NhcGUtZGFncmUnKSB7XHJcbiAgICBsZXQgdG9Mb2FkID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmltcG9ydElmTmVlZGVkKG1vZHVsZUlkKTtcclxuICAgIGlmICh0b0xvYWQpIGN5dG9zY2FwZS51c2UodG9Mb2FkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBjaGUgYmFzYW5kb3NpIHN1bGxlIG9wemlvbmkgbmF0aXZlIGV2ZW50dWFsbWVudGUgYXNzZWduYXRlIGxlIGNvbXBsZXRhIGNvbiBnbGkgSW5wdXQgYWRkaXppb25hbGlcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7Y3lfLkN5dG9zY2FwZU9wdGlvbnN9IE9wemlvbmkgZmluYWxpIHVuaXRlIGRhIElucHV0IGVkIG9wemlvbmkgbmF0aXZlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRDb21wbGV0ZWRPcHRpb25zKCk6IGN5Xy5DeXRvc2NhcGVPcHRpb25zIHtcclxuICAgIHZhciBvcHRzOiBjeV8uQ3l0b3NjYXBlT3B0aW9ucyA9IHRoaXMuTmF0aXZlT3B0aW9ucyB8fCB7fTtcclxuICAgIG9wdHMuY29udGFpbmVyID0gdGhpcy5jeUdyYXBoLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBvcHRzLnN0eWxlID0gb3B0cy5zdHlsZSB8fCBbXTtcclxuXHJcbiAgICAvLyBQZXIgdHV0dGUgbGUgY29zZSBwZXIgY3VpIGdsaSBJbnB1dCBoYW5ubyBwcmlvcml0w6Agc292cmFzY3Jpdm8gZ2xpIG9yaWdpbmFsaSBkZWxsZSBvcHppb25pXHJcblxyXG4gICAgaWYgKHRoaXMuTm9kZVN0eWxlcyB8fCB0aGlzLkVkZ2VTdHlsZXMpIHtcclxuICAgICAgb3B0cy5zdHlsZSA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5Ob2RlU3R5bGVzKSBvcHRzLnN0eWxlLnB1c2goeyBzZWxlY3RvcjogJ25vZGUnLCBjc3M6IHRoaXMuTm9kZVN0eWxlcyB9KTtcclxuICAgICAgaWYgKHRoaXMuRWRnZVN0eWxlcykgb3B0cy5zdHlsZS5wdXNoKHsgc2VsZWN0b3I6ICdlZGdlJywgY3NzOiB0aGlzLkVkZ2VTdHlsZXMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuRWxlbWVudHMpXHJcbiAgICAgIG9wdHMuZWxlbWVudHMgPSB0aGlzLkVsZW1lbnRzO1xyXG5cclxuICAgIHRoaXMucmV2aWV3Q3l0b3NjYXBlRWxlbWVudHMoPGN5dG9zY2FwZS5FbGVtZW50RGVmaW5pdGlvbltdPm9wdHMuZWxlbWVudHMpO1xyXG5cclxuICAgIGlmICh0aGlzLkxheW91dClcclxuICAgICAgb3B0cy5sYXlvdXQgPSB0aGlzLkxheW91dDtcclxuXHJcbiAgICBpZiAodGhpcy5SZWFkb25seSkge1xyXG4gICAgICAvLyBRdWVzdG8gY29zbyBmYSBlZmZldHRpIHN0cmFuaS4uLi5cclxuICAgICAgLy9vcHRzLmF1dG9sb2NrID0gdHJ1ZTtcclxuXHJcbiAgICAgIG9wdHMuYXV0b3VuZ3JhYmlmeSA9IHRydWU7XHJcbiAgICAgIG9wdHMuYXV0b3Vuc2VsZWN0aWZ5ID0gZmFsc2U7XHJcbiAgICAgIG9wdHMuYm94U2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIG9wdHMudXNlclpvb21pbmdFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIG9wdHMudXNlclBhbm5pbmdFbmFibGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9wdHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZ2dpdXN0YW1lbnRpIGRlZ2xpIGVsZW1lbnRpIGRpIEN5dG9zY2FwZS4gXHJcbiAgICogXHJcbiAgICogSSBub2RpIG5vbiB2ZW5nb25vIHRvY2NhdGkuXHJcbiAgICogXHJcbiAgICogUGVyIG9nbmkgZWRnZSB2aWVuZSBjb250cm9sbGF0byBzZSDDqCBzcGVjaWZpY2F0YSB1bmEgc29yZ2VudGUgZWQgdW5hIGRlc3RpbmF6aW9uZSwgaW4gY2FzbyBjb250cmFyaW8gc2kgY2VyY2EgZGkgZGVkdXJsaSBkYWxsJ0lEXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtjeXRvc2NhcGUuRWxlbWVudERlZmluaXRpb25bXX0gZWxlbWVudHMgRWxlbWVudGkgZGEgc2lzdGVtYXJlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXZpZXdDeXRvc2NhcGVFbGVtZW50cyhlbGVtZW50czogY3l0b3NjYXBlLkVsZW1lbnREZWZpbml0aW9uW10sIHByZXZQb3NpdGlvbnM/OiBhbnkpIHtcclxuICAgIGxldCBoYXNQcmV2aW91c1Bvc2l0aW9ucyA9IHByZXZQb3NpdGlvbnMgJiYgcHJldlBvc2l0aW9ucy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHBvc2l0aW9uQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBjeXRvc2NhcGUuUG9zaXRpb24gfSA9IHt9O1xyXG5cclxuICAgIGlmIChoYXNQcmV2aW91c1Bvc2l0aW9ucykge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZQb3NpdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHByZXZQb3NpdGlvbnNbaV07XHJcbiAgICAgICAgaWYgKCFwb3NpdGlvbkNhY2hlW2l0ZW0uZGF0YSgpLmlkXSlcclxuICAgICAgICAgIHBvc2l0aW9uQ2FjaGVbaXRlbS5kYXRhKCkuaWRdID0gaXRlbS5wb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWwgPSBlbGVtZW50c1tpXTtcclxuICAgICAgaWYgKGVsLmdyb3VwID09IFwiZWRnZXNcIiAmJiAoIWVsLmRhdGEuc291cmNlICYmICFlbC5kYXRhLnRhcmdldCkpIHtcclxuICAgICAgICBpZiAoIWVsLmRhdGEuaWQuaW5jbHVkZXMoXCItXCIpKVxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmxvZyhcIkVcIiwgXCJJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHNvdXJjZSBhbmQgYSB0YXJnZXQgZm9yIGFuIGVkZ2UgeW91IGhhdmUgdG8gd3JpdGUgaXRzIGlkIGluIHRoZSBmb3JtYXQge3NvdXJjZX0te3RhcmdldH1cIik7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB2YXIgc291cmNlVGFyZ2V0ID0gZWwuZGF0YS5pZC5zcGxpdCgnLScpO1xyXG4gICAgICAgICAgZWwuZGF0YS5zb3VyY2UgPSBzb3VyY2VUYXJnZXRbMF0udHJpbSgpO1xyXG4gICAgICAgICAgZWwuZGF0YS50YXJnZXQgPSBzb3VyY2VUYXJnZXRbMV0udHJpbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGhhc1ByZXZpb3VzUG9zaXRpb25zICYmIGVsLmdyb3VwID09IFwibm9kZXNcIilcclxuICAgICAgICBlbC5wb3NpdGlvbiA9IHBvc2l0aW9uQ2FjaGVbZWwuZGF0YS5pZF1cclxuICAgIH1cclxuICB9XHJcbn0iLCI8ZGl2ICNncmFwaCBjbGFzcz1cImdyYXBoLXdyYXBwZXIge3tuYW1lfX1cIj48L2Rpdj4iXX0=
|
|
@@ -17,11 +17,11 @@ export class EsDiagramModule {
|
|
|
17
17
|
]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, declarations: [EsDiagramComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule], exports: [EsDiagramComponent] }); }
|
|
22
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule] }); }
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
EsDiagramModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, declarations: [EsDiagramComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule], exports: [EsDiagramComponent] });
|
|
23
|
-
EsDiagramModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule] });
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, decorators: [{
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, decorators: [{
|
|
25
25
|
type: NgModule,
|
|
26
26
|
args: [{
|
|
27
27
|
declarations: [EsDiagramComponent],
|
|
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
29
29
|
exports: [EsDiagramComponent]
|
|
30
30
|
}]
|
|
31
31
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNkaWFncmFtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWRpYWdyYW1zL3NyYy9saWIvZXNkaWFncmFtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEI7UUFDM0MsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVCxnQkFBZ0I7Z0JBQ2hCLG1CQUFtQjtnQkFDbkIsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxJQUFJLEtBQUssRUFBRTthQUNsRTtTQUNGLENBQUM7SUFDSixDQUFDOytHQVZVLGVBQWU7Z0hBQWYsZUFBZSxpQkFKVixrQkFBa0IsYUFDdkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLGFBQzVELGtCQUFrQjtnSEFFbEIsZUFBZSxZQUhmLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTs7NEZBRzVELGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUUsa0JBQWtCLENBQUU7b0JBQ3BDLE9BQU8sRUFBRSxDQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFFO29CQUN6RSxPQUFPLEVBQUUsQ0FBRSxrQkFBa0IsQ0FBRTtpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFc0RpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXMtZGlhZ3JhbS5jb21wb25lbnQnXG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFc0RpYWdyYW1TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9lcy1kaWFncmFtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXNEaWFncmFtRGlzcGF0Y2hlciB9IGZyb20gJy4vc2VydmljZXMvZXMtZGlhZ3JhbS5kaXNwYXRjaGVyJztcbmltcG9ydCB7IEVzRGlhZ3JhbU1vZHVsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL0VzRGlhZ3JhbU1vZHVsZUNvbmZpZyc7XG5cbmltcG9ydCB7IERJQV9ERUJVR19NT0RFIH0gZnJvbSAnLi90b2tlbnMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsgRXNEaWFncmFtQ29tcG9uZW50IF0sXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlIF0sXG4gIGV4cG9ydHM6IFsgRXNEaWFncmFtQ29tcG9uZW50IF1cbn0pXG5leHBvcnQgY2xhc3MgRXNEaWFncmFtTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogRXNEaWFncmFtTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxFc0RpYWdyYW1Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEVzRGlhZ3JhbU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBFc0RpYWdyYW1TZXJ2aWNlLFxuICAgICAgICBFc0RpYWdyYW1EaXNwYXRjaGVyLFxuICAgICAgICB7IHByb3ZpZGU6IERJQV9ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnPy5kZWJ1Z01vZGUgfHwgZmFsc2UgfSxcbiAgICAgIF1cbiAgICB9O1xuICB9XG59Il19
|
|
@@ -26,11 +26,11 @@ export class ReactiveExtensions {
|
|
|
26
26
|
var executionTimer = setTimeout(() => { func(); this.executionTimers[key] = null; }, throttleTime);
|
|
27
27
|
this.executionTimers[key] = executionTimer;
|
|
28
28
|
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, providedIn: "root" }); }
|
|
29
31
|
}
|
|
30
|
-
|
|
31
|
-
ReactiveExtensions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveExtensions, providedIn: "root" });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveExtensions, decorators: [{
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, decorators: [{
|
|
33
33
|
type: Injectable,
|
|
34
34
|
args: [{ providedIn: "root" }]
|
|
35
35
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhY3RpdmVFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9leHRlbnNpb25zL1JlYWN0aXZlRXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFHSTs7V0FFRztRQUNLLG9CQUFlLEdBQTZCLEVBQUUsQ0FBQztLQW9CMUQ7SUFsQkc7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUFjLEVBQUUsZUFBdUIsQ0FBQztRQUNoRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFFL0IsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDekIsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU1QywrRUFBK0U7UUFDL0UsSUFBSSxjQUFjLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUM7SUFDL0MsQ0FBQzsrR0F4QlEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBjaGUgZm9ybmlzY2UgbWV0b2RpIHJlYXR0aXZpIGRpIGVzdGVuc2lvbmUuIFBlciBvcmEgaW1wbGVtZW50YXRvIHNvbG8gdW5vIHBzZXVkby10aHJvdHRsZVxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVFeHRlbnNpb25zIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRpIHR1dHRpIGkgdGltZXIgaW4gZXNlY3V6aW9uZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV4ZWN1dGlvblRpbWVyczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFc2VjdXppb25lIGRlbGV5YXRhIGRpIHVuYSBmdW56aW9uZS4gU2UgdmllbmUgcmljaGlhbWF0YSBudW92YW1lbnRlIHByaW1hIGRpIHZlbmlyZSBlc2VndWl0YSBkb3BvIGlsIGRlbGF5LCBpbCBkZWxheSB2aWVuZSByZXNldHRhdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGlkIElkIHBlciBhaXV0YXJlIGlsIHNlcnZpemlvIGEgZGlzdGluZ3VlcmUgZnVuemlvbmkgY29uIG5vbWUgdWd1YWxlIGNoaWFtYXRlIGRhIGNvbXBvbmVudGkgZGl2ZXJzaVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBGdW56aW9uZSBkYSBjaGlhbWFyZSBhbCB0ZXJtaW5lIGRlbCB0aHJvdHRsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHRocm90dGxlVGltZSBUZW1wbyBkaSB0aHJvdHRsaW5nIGluIG1pbGxpc2Vjb25kaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGhyb3R0bGUoaWQ6IHN0cmluZywgZnVuYzogRnVuY3Rpb24sIHRocm90dGxlVGltZTogbnVtYmVyID0gMCkge1xyXG4gICAgICAgIGxldCBrZXkgPSBmdW5jLm5hbWUgKyBcIl9cIiArIGlkO1xyXG5cclxuICAgICAgICAvL1NlIGhvIGxhIGZ1bnppb25lIGNoZSB2dW9sZSBlc2VndWlyZSByaXB1bGlzY28gcXVlbCB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuZXhlY3V0aW9uVGltZXJzW2tleV0pXHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmV4ZWN1dGlvblRpbWVyc1trZXldKTtcclxuXHJcbiAgICAgICAgLy9SaWNyZW8gaWwgdGltZW91dCBwZXIgZXNlZ3VpcmUgcXVlbGxhIGZ1bnppb25lIGRvcG8gdGhyb3R0bGVUaW1lIG1pbGxpc2Vjb25kaVxyXG4gICAgICAgIHZhciBleGVjdXRpb25UaW1lciA9IHNldFRpbWVvdXQoKCkgPT4geyBmdW5jKCk7IHRoaXMuZXhlY3V0aW9uVGltZXJzW2tleV0gPSBudWxsOyB9LCB0aHJvdHRsZVRpbWUpO1xyXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uVGltZXJzW2tleV0gPSBleGVjdXRpb25UaW1lcjtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -77,13 +77,13 @@ export class EsDiagramDispatcher {
|
|
|
77
77
|
if (this.logs)
|
|
78
78
|
console.log("@esfaenza/es-diagrams: " + text);
|
|
79
79
|
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher, deps: [{ token: DIA_DEBUG_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
81
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher }); }
|
|
80
82
|
}
|
|
81
|
-
|
|
82
|
-
EsDiagramDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramDispatcher });
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramDispatcher, decorators: [{
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher, decorators: [{
|
|
84
84
|
type: Injectable
|
|
85
85
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
86
86
|
type: Inject,
|
|
87
87
|
args: [DIA_DEBUG_MODE]
|
|
88
88
|
}] }]; } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5kaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9zZXJ2aWNlcy9lcy1kaWFncmFtLmRpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCOztPQUVHO0lBQ0gsWUFBNEMsSUFBYTtRQUFiLFNBQUksR0FBSixJQUFJLENBQVM7UUFiekQ7O1dBRUc7UUFDSyxvQkFBZSxHQUFzQyxFQUFFLENBQUM7UUFFaEU7O1dBRUc7UUFDSyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztJQUswQixDQUFDO0lBRTlEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxJQUFZLEVBQUUsZ0JBQTBCO1FBQ3BELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sNkNBQTZDLEdBQUcsSUFBSSxHQUFHLGlFQUFpRSxDQUFDO1FBRW5JLElBQUksQ0FBQyxHQUFHLENBQUMsa0VBQWtFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDMUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQ2Y7WUFDSSxzRkFBc0Y7WUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsR0FBRyxJQUFJLEdBQUcsd0NBQXdDLENBQUMsQ0FBQztZQUMzRyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsMkRBQTJELEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZGLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsd0NBQXdDLEdBQUcsU0FBUyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjs7Z0JBRUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssR0FBRyxDQUFDLElBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0FqRlEsbUJBQW1CLGtCQWVSLGNBQWM7bUhBZnpCLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBZ0JNLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRElBX0RFQlVHX01PREUgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBjaGUgc2kgb2NjdXBhIGRlbCBkaXNwYXRjaCBkZWxsZSBvcGVyYXppb25pIGRpIHJlbmRlcmluZyBkZWdsaSBvZ2dldHRpIHV0aWxpenphbmRvIHVuYSBjb2RhIFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXNEaWFncmFtRGlzcGF0Y2hlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2RhIGRpIGluaXppYWxpenphemlvbmkgYW5jb3JhIGRhIGVzZWd1aXJlLiBRdWFuZG8gcXVlc3RhIMOoIHZ1b3RhIHNpZ25pZmljYSBjaGUgbmVzc3VubyBzdGEgY3JlYW5kbyBvZ2dldHRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgSW5pdGlhbGl6YXRpb25zOiB7IG5hbWU6IHN0cmluZywgZnVuY3Rpb246IGFueSB9W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3RhIGRlZ2xpIG9nZ2V0dGkgaW5pemlhbGl6emF0aSBlIGF0dGl2aSBpbiB1biBkYXRvIG1vbWVudG8gKHZpZW5lIHJlZ2lzdHJhdGEgbGEgcHJvcHJpZXTDoCAqKm5hbWUqKikuIE5vbiDDqCBwb3NzaWJpbGUgcmVnaXN0cmFyZSBkdWUgZ3JhZmljaSBjb24gbG8gc3Rlc3NvIGlkZW50aWZpY2F0aXZvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgSW5pdGlhbGl6ZWQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRElBX0RFQlVHX01PREUpIHByaXZhdGUgbG9nczogYm9vbGVhbikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RyYSB1biBvZ2dldHRvIGRhIHZpc3VhbGl6emFyZSBpbnNpZW1lIGFsbGEgcHJvcHJpYSBmdW56aW9uZSBkaSBjcmVhemlvbmUuIFF1ZXN0J3VsdGltYSBzYXLDoCBkaWZmZXJpdGEgZmlubyBhIGNoZSB0dXR0aSBnbGkgb2dnZXR0aVxyXG4gICAgICogcHJlY2VkZW50ZW1lbnRlIHJlZ2lzdGF0aSBub24gaGFubm8gZmluaXRvIGxhIGZhc2UgZGkgaW5pemlhbGl6emF6aW9uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBJZGVudGlmaWNhdGl2byBkZWxsJ29nZ2V0dG8gZGEgcmVnaXN0cmFyZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3JlYXRpb25GdW5jdGlvbiBGdW56aW9uZSBjaGUgZmlzaWNhbWVudGUgZG92csOgIG9jY3VwYXJzaSBkZWxsYSBjcmVhemlvbmUgZGVsbCdvZ2dldHRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3RlcihuYW1lOiBzdHJpbmcsIGNyZWF0aW9uRnVuY3Rpb246IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuSW5pdGlhbGl6ZWQuaW5kZXhPZihuYW1lKSAhPSAtMSlcclxuICAgICAgICAgICAgdGhyb3cgXCJBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgZHVwbGljYXRlIG9iamVjdCAnXCIgKyBuYW1lICsgXCInLiBNYWtlIHN1cmUgdGhlICduYW1lJyBwcm9wZXJ0aWVzIG9mIHlvdXIgZGlhZ3JhbSBhcmUgdW5pdm9xdWVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBSZWdpc3RlcmluZyBkaWFncmFtIGNyZWF0aW9uIGZ1bmN0aW9uIGV4ZWN1dGlvbiBmb3IgXCIgKyBuYW1lKTtcclxuICAgICAgICB0aGlzLkluaXRpYWxpemF0aW9ucy5wdXNoKHsgbmFtZTogbmFtZSwgZnVuY3Rpb246IGNyZWF0aW9uRnVuY3Rpb24gfSk7XHJcbiAgICAgICAgaWYgKHRoaXMuSW5pdGlhbGl6YXRpb25zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogSW5pdGlhbCBkcmFpbiBzdGFydGVkXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmRyYWluSW5pdFF1ZXVlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0cmEgdW4gb2dnZXR0byBwcmVzZW50ZS4gQ2hpYW1hdGEgZ2VuZXJhbG1lbnRlIGFsIGRpc3Bvc2UgZGVsbCdvZ2dldHRvIGluIHF1ZXN0aW9uZSBxdWFuZG8gbm9uIGRldidlc3NlcmUgcGnDuSBtb3N0cmF0byBuZWxsYSBwYWdpbmEgY29ycmVudGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgSWRlbnRpZmljYXRpdm8gZGVsbCdvZ2dldHRvIGRhIGRlcmVnaXN0cmFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVyZWdpc3RlcihuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLkluaXRpYWxpemVkLmluZGV4T2YobmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID09IC0xKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy9RdWVzdG8gc3VjY2VkZSBxdWFuZG8gc2kgY2VyY2EgZGkgZGlzdHJ1Z2dlcmUgbCdvZ2dldHRvIG1lbnRyZSBzdGEgdmVuZW5kbyBncmFmaWNhdG9cclxuICAgICAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBSZWdpc3RyYXRpb24gbWlzc2luZyBmb3Igb2JqZWN0IFwiICsgbmFtZSArIFwiIGl0IHdhcyBwcm9iYWJseSBkZXN0cm95ZWQgZHVyaW5nIGxvYWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogT2JqZWN0IGRlcmVnaXN0ZXJlZCBcIiArIG5hbWUpO1xyXG4gICAgICAgIHRoaXMuSW5pdGlhbGl6ZWQuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBlc2VndWUgaW4gbWFuaWVyYSBzZXF1ZW56aWFsZSBsZSBmdW56aW9uaSBkaSBpbml6aWFsaXp6YXppb25lIGRlZ2xpIG9nZ2V0dGkgZmluY2jDqSBwcmVzZW50aSBcclxuICAgICAqIGluIG1vZG8gY2hlIG5lc3N1biBvZ2dldHRvIHBvc3NhIGVzc2VyZSBpbml6aWFsaXp6YXRvIGNvbnRlbXBvcmFuZWFtZW50ZSBhZCB1biBhbHRyb1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRyYWluSW5pdFF1ZXVlcygpIHtcclxuICAgICAgICBsZXQgdG9FeGVjdXRlID0gdGhpcy5Jbml0aWFsaXphdGlvbnNbMF07XHJcbiAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBFeGVjdXRpbmcgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gZm9yIG9iamVjdCBcIiArIHRvRXhlY3V0ZS5uYW1lKTtcclxuXHJcbiAgICAgICAgdG9FeGVjdXRlLmZ1bmN0aW9uKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogaW5pdGlhbGl6YXRpb24gZm9yIG9iamVjdCBcIiArIHRvRXhlY3V0ZS5uYW1lICsgXCIgaXMgZG9uZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5Jbml0aWFsaXplZC5wdXNoKHRvRXhlY3V0ZS5uYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5Jbml0aWFsaXphdGlvbnMuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5Jbml0aWFsaXphdGlvbnMubGVuZ3RoID49IDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogRm91bmQgcXVldWVkIGluaXRpYWxpemF0aW9ucy4gQ29udGludWluZ1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhaW5Jbml0UXVldWVzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBxdWV1ZSBpcyBvdmVyLCBub3RoaW5nIG1vcmUgdG8gZG9cIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9nKHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh0aGlzLmxvZ3MpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQGVzZmFlbnphL2VzLWRpYWdyYW1zOiBcIiArIHRleHQpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -92,10 +92,10 @@ export class EsDiagramService {
|
|
|
92
92
|
//return Loc[text][this.DIA_LOCALE];
|
|
93
93
|
return text;
|
|
94
94
|
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService, deps: [{ token: DIA_DEBUG_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
96
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService }); }
|
|
95
97
|
}
|
|
96
|
-
|
|
97
|
-
EsDiagramService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramService });
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramService, decorators: [{
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService, decorators: [{
|
|
99
99
|
type: Injectable
|
|
100
100
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
101
101
|
type: Optional
|
|
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
103
103
|
type: Inject,
|
|
104
104
|
args: [DIA_DEBUG_MODE]
|
|
105
105
|
}] }]; } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9zZXJ2aWNlcy9lcy1kaWFncmFtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFM0MsNkdBQTZHO0FBQzdHLDJKQUEySjtBQUMzSixPQUFPLEtBQUssR0FBRyxNQUFNLFdBQVcsQ0FBQzs7QUFDakMsY0FBYyxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUVyQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCOzs7O09BSUc7SUFDSCxZQUF3RCxjQUFzQjtRQUF0QixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQVY5RTs7V0FFRztRQUNLLGlCQUFZLEdBQXVDLEVBQUUsQ0FBQztJQU9vQixDQUFDO0lBRW5GOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUc7UUFFL0gsb0VBQW9FO1FBQ3BFLDhLQUE4SztRQUM5SyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RixRQUFRLFFBQVEsRUFBRTtnQkFDZCxLQUFLLG1CQUFtQixDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdB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QkFDNUIsTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxJQUFZO1FBQ25CLG9DQUFvQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs2R0F0RlEsZ0JBQWdCLGtCQVlPLGNBQWM7aUhBWnJDLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFhTSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IERJQV9ERUJVR19NT0RFIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gUXVlc3RvIG1vZHVsbyBlc3BvcnRhIHNpYSB1biBuYW1lc3BhY2UgY2hlIHNpIGNoaWFtYSBcImN5dG9zY2FwZVwiIHNpYSBsYSBmdW56aW9uZSBcImN5dG9zY2FwZVwiIChjb3N0cnV0dG9yZSlcclxuLy8gQ29uIHF1ZXN0aSAyIHNhbHRpIHNpIHJpZXNjb25vIGEgbm9uIGF2ZXJlIHByb2JsZW1pIGRpIHR5cGluZ3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdmFuZGVtby9nZW5lcmF0b3ItYW5ndWxhcjItbGlicmFyeS9pc3N1ZXMvMjIxI2lzc3VlY29tbWVudC0zNTU5NDUyMDdcclxuaW1wb3J0ICogYXMgY3lfIGZyb20gJ2N5dG9zY2FwZSc7XHJcbi8qKiBAaWdub3JlICovIGNvbnN0IGN5dG9zY2FwZSA9IGN5XztcclxuXHJcbi8qKlxyXG4gKiBMb2FkZXIgZGVpIG1vZHVsaSBkaSBDeXRvc2NhcGUuIFV0aWxpenphIHVuYSBjYWNoZSBwZXIgdGVuZXJzZWxpIGluIG1lbW9yaWEgYSBsaXZlbGxvIGRpIGFwcGxpY2F6aW9uZSBcclxuICogaW4gbW9kbyBkYSBub24gZG92ZXIgcmljYXJpY2FyZSBudWxsYSBkb3BvIGF2ZXJlIHVzYXRvIHVuIG1vZHVsbyBhbG1lbm8gdW5hIHZvbHRhXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFc0RpYWdyYW1TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRlaSBtb2R1bGkgY2FyaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBtb2R1bGVzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBjeXRvc2NhcGUuRXh0IH0gPSB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChESUFfREVCVUdfTU9ERSkgcHJpdmF0ZSBESUFfREVCVUdfTU9ERTogc3RyaW5nKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcm1ldHRlIGRpIGltcG9ydGFyZSwgc2Ugc2VydmUgdW4gZGF0byB0ZW1hIG8gbG9jYWxpenphemlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsnY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZScgfCAnY3l0b3NjYXBlLWN4dG1lbnUnIHwgJ2N5dG9zY2FwZS1odG1sLW5vZGUnIHwgJ2N5dG9zY2FwZS1kYWdyZSd9IG1vZHVsZUlkIE5vbWUgZGVsIG1vZHVsbyBkaSBDeXRvc2NhcGUgZGEgaW1wb3J0YXJlIChkZXYnZXNzZXJlIGlsIG5vbWUgZGVsbGEgY2FydGVsbGEgaW4gbm9kZV9tb2R1bGVzKVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgY3l0b3NjYXBlLkV4dD59IEZ1bnppb25lIGRpIGVzdGVuc2lvbmUgcGVyIEN5dG9zY2FwZSBwcmVzYSBkYWwgbW9kdWxvIHJpY2hpZXN0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgaW1wb3J0SWZOZWVkZWQobW9kdWxlSWQ6ICdjeXRvc2NhcGUtZXhwYW5kLWNvbGxhcHNlJyB8ICdjeXRvc2NhcGUtY3h0bWVudScgfCAnY3l0b3NjYXBlLWh0bWwtbm9kZScgfCAnY3l0b3NjYXBlLWRhZ3JlJyk6IFByb21pc2U8dm9pZCB8IGN5dG9zY2FwZS5FeHQ+IHtcclxuXHJcbiAgICAgICAgLy8gT2dudW5vIGVzcG9ydGEgaWwgbW9kdWxvIHVuIHBvJyBjb21lIGNhenpvIGdsaSBwYXJlIHF1aW5kaSBvY2lvLiBcclxuICAgICAgICAvLyBOb3RhcmUgY2hlIHR1dHRpIGkgXCJtb3VkbGVcIiBkb3BvIGxvIHRoZW4gc29ubyBjYXN0YXRpIGFkIDxhbnk+IGUgY2hlIGwnb2dnZXR0byByZWN1cGVyYXRvIG9nbmkgdGFudG8gw6ggXCJkZWZhdWx0XCIsIGFsdHJlIHZvbHRlIMOoIGlsIFwicmVnaXN0ZXJcIiwgYWx0cmUgw6ggbCdcImV4dFwiLCBlY2NldGVyYS4uLlxyXG4gICAgICAgIGlmICghdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiSVwiLCB0aGlzLmxvYyhcIk1vZHVsZSBub3QgYXZhaWxhYmxlLiBMb2FkaW5nIGl0IG5vd1wiKSArIFwiOiBcIiArIG1vZHVsZUlkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjeXRvc2NhcGUtY3h0bWVudVwiOiByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWN4dG1lbnVcIikudGhlbigobW9kdWxlOiBhbnkpID0+IHRoaXMubW9kdWxlc0NhY2hlW21vZHVsZUlkXSA9IG1vZHVsZS5kZWZhdWx0KS5jYXRjaChlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihtb2R1bGVJZCwgZXJyKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiOiByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiKS50aGVuKChtb2R1bGU6IGFueSkgPT4gdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdID0gbW9kdWxlLmRlZmF1bHQpLmNhdGNoKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKG1vZHVsZUlkLCBlcnIpKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjeXRvc2NhcGUtaHRtbC1ub2RlXCI6IHJldHVybiBpbXBvcnQoXCJAZXNmYWVuemEvY3l0b3NjYXBlLWh0bWwtbm9kZVwiKS50aGVuKChtb2R1bGU6IGFueSkgPT4gdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdID0gbW9kdWxlLnJlZ2lzdGVyKS5jYXRjaChlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihtb2R1bGVJZCwgZXJyKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiY3l0b3NjYXBlLWRhZ3JlXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW1wb3J0KFwiZGFncmVcIikuY2F0Y2goZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoXCJkYWdyZVwiLCBlcnIpKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWRhZ3JlXCIpLnRoZW4oKG1vZHVsZTogYW55KSA9PiB0aGlzLm1vZHVsZXNDYWNoZVttb2R1bGVJZF0gPSBtb2R1bGUuZGVmYXVsdCkuY2F0Y2goZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IobW9kdWxlSWQsIGVycikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJIG1vZHVsaSBub24gZGV2b25vIG1haSBlc3NlcmUgcmljYXJpY2F0aSBuZWwgZ2xvYmFsZSwgcXVpbmRpIGludmVjZSBjaGUgcmVzdGl0dWlyZSBsYSBjb3BpYSBkZWxsYSBjYWNoZSByZXN0aXR1aXNjbyB2dW90b1xyXG4gICAgICAgICAgICB0aGlzLmxvZyhcIklcIiwgdGhpcy5sb2MoXCJNb2R1bGUgYWxyZWFkeSBsb2FkZWRcIikgKyBcIjogXCIgKyBtb2R1bGVJZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZShudWxsKSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXN0aW9uZSBkZWdsaSBlcnJvcmkgZGkgY2FyaWNhbWVudG8gZGVpIG1vZHVsaSBxdWFsb3JhIHF1YWxjdW5vIHV0aWxpenphc3NlIHVuIG1vZHVsbyBub24gaW5zdGFsbGF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlSWQgTm9tZSBkZWwgbW9kdWxvIGNoZSBzaSDDqCBjZXJjYXRvIGRpIGNhcmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZXJyIEVycm9yZSByZXN0aXR1aXRvIGRhbGxhIHByb21pc2UgZGkgY2FyaWNhbWVudG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihtb2R1bGVJZDogc3RyaW5nLCBlcnI6IGFueSkge1xyXG4gICAgICAgIHRoaXMubG9nKFwiRVwiLCB0aGlzLmxvYyhcIk1vZHVsZSBjYW5ub3QgYmUgbG9hZGVkXCIpICsgXCI6IFwiICsgbW9kdWxlSWQgKyBcIiAtIFwiICsgZXJyLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JpdHRvcmUgZGkgbG9nIGEgY29uc29sZS4gQXR0aXZvIHNvbG8gcXVhbmRvIGxhIGxpYnJlcmlhIMOoIGluIG1vZGFsaXTDoCBkaSBEZWJ1Z1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0geydFJyB8ICdJJyB8ICdXJ30gc2V2ZXJpdHkgVGlwbyBkaSBtZXNzYWdnaW8gKEVycm9yZSwgSW5mbywgV2FybmluZylcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIHRyYWR1cnJlXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlcXVpcmVzVHJhbnNsYXRpb24gSW5kaWNhIHNlICoqdGV4dCoqIMOoIHVuYSBmcmFzZSBnacOgIHRyYWRvdHRhIG8gc2Ugw6ggZGEgdHJhZHVycmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvZyhzZXZlcml0eTogJ0UnIHwgJ0knIHwgJ1cnLCB0ZXh0OiBzdHJpbmcsIHJlcXVpcmVzVHJhbnNsYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5ESUFfREVCVUdfTU9ERSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgbWVzc2FnZSA9IFwiQGVzZmFlbnphL2RpYWdyYW1zOiBcIiArIChyZXF1aXJlc1RyYW5zbGF0aW9uID8gdGhpcy5sb2ModGV4dCkgOiB0ZXh0KTtcclxuICAgICAgICBzd2l0Y2ggKHNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0UnOiBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0knOiBjb25zb2xlLmluZm8obWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnVyc6IGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBkaSBsb2NhbGl6emF6aW9uZSBkZWkgbWVzc2FnZ2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgTWVzc2FnZ2lvIGRhIHRyYWR1cnJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IE1lc3NhZ2dpbyB0cmFkb3R0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbG9jKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy9yZXR1cm4gTG9jW3RleHRdW3RoaXMuRElBX0xPQ0FMRV07XHJcbiAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICB9XHJcbn0iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtZGlhZ3JhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtZGlhZ3JhbXMvc3JjL2xpYi9zZXJ2aWNlcy9lcy1kaWFncmFtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFM0MsNkdBQTZHO0FBQzdHLDJKQUEySjtBQUMzSixPQUFPLEtBQUssR0FBRyxNQUFNLFdBQVcsQ0FBQzs7QUFDakMsY0FBYyxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUVyQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCOzs7O09BSUc7SUFDSCxZQUF3RCxjQUFzQjtRQUF0QixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQVY5RTs7V0FFRztRQUNLLGlCQUFZLEdBQXVDLEVBQUUsQ0FBQztJQU9vQixDQUFDO0lBRW5GOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUc7UUFFL0gsb0VBQW9FO1FBQ3BFLDhLQUE4SztRQUM5SyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RixRQUFRLFFBQVEsRUFBRTtnQkFDZCxLQUFLLG1CQUFtQixDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdB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QkFDNUIsTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxJQUFZO1FBQ25CLG9DQUFvQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOytHQXRGUSxnQkFBZ0Isa0JBWU8sY0FBYzttSEFackMsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFhTSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IERJQV9ERUJVR19NT0RFIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gUXVlc3RvIG1vZHVsbyBlc3BvcnRhIHNpYSB1biBuYW1lc3BhY2UgY2hlIHNpIGNoaWFtYSBcImN5dG9zY2FwZVwiIHNpYSBsYSBmdW56aW9uZSBcImN5dG9zY2FwZVwiIChjb3N0cnV0dG9yZSlcclxuLy8gQ29uIHF1ZXN0aSAyIHNhbHRpIHNpIHJpZXNjb25vIGEgbm9uIGF2ZXJlIHByb2JsZW1pIGRpIHR5cGluZ3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdmFuZGVtby9nZW5lcmF0b3ItYW5ndWxhcjItbGlicmFyeS9pc3N1ZXMvMjIxI2lzc3VlY29tbWVudC0zNTU5NDUyMDdcclxuaW1wb3J0ICogYXMgY3lfIGZyb20gJ2N5dG9zY2FwZSc7XHJcbi8qKiBAaWdub3JlICovIGNvbnN0IGN5dG9zY2FwZSA9IGN5XztcclxuXHJcbi8qKlxyXG4gKiBMb2FkZXIgZGVpIG1vZHVsaSBkaSBDeXRvc2NhcGUuIFV0aWxpenphIHVuYSBjYWNoZSBwZXIgdGVuZXJzZWxpIGluIG1lbW9yaWEgYSBsaXZlbGxvIGRpIGFwcGxpY2F6aW9uZSBcclxuICogaW4gbW9kbyBkYSBub24gZG92ZXIgcmljYXJpY2FyZSBudWxsYSBkb3BvIGF2ZXJlIHVzYXRvIHVuIG1vZHVsbyBhbG1lbm8gdW5hIHZvbHRhXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFc0RpYWdyYW1TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRlaSBtb2R1bGkgY2FyaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBtb2R1bGVzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBjeXRvc2NhcGUuRXh0IH0gPSB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChESUFfREVCVUdfTU9ERSkgcHJpdmF0ZSBESUFfREVCVUdfTU9ERTogc3RyaW5nKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcm1ldHRlIGRpIGltcG9ydGFyZSwgc2Ugc2VydmUgdW4gZGF0byB0ZW1hIG8gbG9jYWxpenphemlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsnY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZScgfCAnY3l0b3NjYXBlLWN4dG1lbnUnIHwgJ2N5dG9zY2FwZS1odG1sLW5vZGUnIHwgJ2N5dG9zY2FwZS1kYWdyZSd9IG1vZHVsZUlkIE5vbWUgZGVsIG1vZHVsbyBkaSBDeXRvc2NhcGUgZGEgaW1wb3J0YXJlIChkZXYnZXNzZXJlIGlsIG5vbWUgZGVsbGEgY2FydGVsbGEgaW4gbm9kZV9tb2R1bGVzKVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgY3l0b3NjYXBlLkV4dD59IEZ1bnppb25lIGRpIGVzdGVuc2lvbmUgcGVyIEN5dG9zY2FwZSBwcmVzYSBkYWwgbW9kdWxvIHJpY2hpZXN0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgaW1wb3J0SWZOZWVkZWQobW9kdWxlSWQ6ICdjeXRvc2NhcGUtZXhwYW5kLWNvbGxhcHNlJyB8ICdjeXRvc2NhcGUtY3h0bWVudScgfCAnY3l0b3NjYXBlLWh0bWwtbm9kZScgfCAnY3l0b3NjYXBlLWRhZ3JlJyk6IFByb21pc2U8dm9pZCB8IGN5dG9zY2FwZS5FeHQ+IHtcclxuXHJcbiAgICAgICAgLy8gT2dudW5vIGVzcG9ydGEgaWwgbW9kdWxvIHVuIHBvJyBjb21lIGNhenpvIGdsaSBwYXJlIHF1aW5kaSBvY2lvLiBcclxuICAgICAgICAvLyBOb3RhcmUgY2hlIHR1dHRpIGkgXCJtb3VkbGVcIiBkb3BvIGxvIHRoZW4gc29ubyBjYXN0YXRpIGFkIDxhbnk+IGUgY2hlIGwnb2dnZXR0byByZWN1cGVyYXRvIG9nbmkgdGFudG8gw6ggXCJkZWZhdWx0XCIsIGFsdHJlIHZvbHRlIMOoIGlsIFwicmVnaXN0ZXJcIiwgYWx0cmUgw6ggbCdcImV4dFwiLCBlY2NldGVyYS4uLlxyXG4gICAgICAgIGlmICghdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiSVwiLCB0aGlzLmxvYyhcIk1vZHVsZSBub3QgYXZhaWxhYmxlLiBMb2FkaW5nIGl0IG5vd1wiKSArIFwiOiBcIiArIG1vZHVsZUlkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjeXRvc2NhcGUtY3h0bWVudVwiOiByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWN4dG1lbnVcIikudGhlbigobW9kdWxlOiBhbnkpID0+IHRoaXMubW9kdWxlc0NhY2hlW21vZHVsZUlkXSA9IG1vZHVsZS5kZWZhdWx0KS5jYXRjaChlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihtb2R1bGVJZCwgZXJyKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiOiByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWV4cGFuZC1jb2xsYXBzZVwiKS50aGVuKChtb2R1bGU6IGFueSkgPT4gdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdID0gbW9kdWxlLmRlZmF1bHQpLmNhdGNoKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKG1vZHVsZUlkLCBlcnIpKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjeXRvc2NhcGUtaHRtbC1ub2RlXCI6IHJldHVybiBpbXBvcnQoXCJAZXNmYWVuemEvY3l0b3NjYXBlLWh0bWwtbm9kZVwiKS50aGVuKChtb2R1bGU6IGFueSkgPT4gdGhpcy5tb2R1bGVzQ2FjaGVbbW9kdWxlSWRdID0gbW9kdWxlLnJlZ2lzdGVyKS5jYXRjaChlcnIgPT4gdGhpcy5oYW5kbGVFcnJvcihtb2R1bGVJZCwgZXJyKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiY3l0b3NjYXBlLWRhZ3JlXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW1wb3J0KFwiZGFncmVcIikuY2F0Y2goZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoXCJkYWdyZVwiLCBlcnIpKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiY3l0b3NjYXBlLWRhZ3JlXCIpLnRoZW4oKG1vZHVsZTogYW55KSA9PiB0aGlzLm1vZHVsZXNDYWNoZVttb2R1bGVJZF0gPSBtb2R1bGUuZGVmYXVsdCkuY2F0Y2goZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IobW9kdWxlSWQsIGVycikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJIG1vZHVsaSBub24gZGV2b25vIG1haSBlc3NlcmUgcmljYXJpY2F0aSBuZWwgZ2xvYmFsZSwgcXVpbmRpIGludmVjZSBjaGUgcmVzdGl0dWlyZSBsYSBjb3BpYSBkZWxsYSBjYWNoZSByZXN0aXR1aXNjbyB2dW90b1xyXG4gICAgICAgICAgICB0aGlzLmxvZyhcIklcIiwgdGhpcy5sb2MoXCJNb2R1bGUgYWxyZWFkeSBsb2FkZWRcIikgKyBcIjogXCIgKyBtb2R1bGVJZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZShudWxsKSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXN0aW9uZSBkZWdsaSBlcnJvcmkgZGkgY2FyaWNhbWVudG8gZGVpIG1vZHVsaSBxdWFsb3JhIHF1YWxjdW5vIHV0aWxpenphc3NlIHVuIG1vZHVsbyBub24gaW5zdGFsbGF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlSWQgTm9tZSBkZWwgbW9kdWxvIGNoZSBzaSDDqCBjZXJjYXRvIGRpIGNhcmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZXJyIEVycm9yZSByZXN0aXR1aXRvIGRhbGxhIHByb21pc2UgZGkgY2FyaWNhbWVudG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihtb2R1bGVJZDogc3RyaW5nLCBlcnI6IGFueSkge1xyXG4gICAgICAgIHRoaXMubG9nKFwiRVwiLCB0aGlzLmxvYyhcIk1vZHVsZSBjYW5ub3QgYmUgbG9hZGVkXCIpICsgXCI6IFwiICsgbW9kdWxlSWQgKyBcIiAtIFwiICsgZXJyLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JpdHRvcmUgZGkgbG9nIGEgY29uc29sZS4gQXR0aXZvIHNvbG8gcXVhbmRvIGxhIGxpYnJlcmlhIMOoIGluIG1vZGFsaXTDoCBkaSBEZWJ1Z1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0geydFJyB8ICdJJyB8ICdXJ30gc2V2ZXJpdHkgVGlwbyBkaSBtZXNzYWdnaW8gKEVycm9yZSwgSW5mbywgV2FybmluZylcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIHRyYWR1cnJlXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlcXVpcmVzVHJhbnNsYXRpb24gSW5kaWNhIHNlICoqdGV4dCoqIMOoIHVuYSBmcmFzZSBnacOgIHRyYWRvdHRhIG8gc2Ugw6ggZGEgdHJhZHVycmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvZyhzZXZlcml0eTogJ0UnIHwgJ0knIHwgJ1cnLCB0ZXh0OiBzdHJpbmcsIHJlcXVpcmVzVHJhbnNsYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5ESUFfREVCVUdfTU9ERSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgbWVzc2FnZSA9IFwiQGVzZmFlbnphL2RpYWdyYW1zOiBcIiArIChyZXF1aXJlc1RyYW5zbGF0aW9uID8gdGhpcy5sb2ModGV4dCkgOiB0ZXh0KTtcclxuICAgICAgICBzd2l0Y2ggKHNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0UnOiBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0knOiBjb25zb2xlLmluZm8obWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnVyc6IGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBkaSBsb2NhbGl6emF6aW9uZSBkZWkgbWVzc2FnZ2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgTWVzc2FnZ2lvIGRhIHRyYWR1cnJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IE1lc3NhZ2dpbyB0cmFkb3R0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbG9jKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy9yZXR1cm4gTG9jW3RleHRdW3RoaXMuRElBX0xPQ0FMRV07XHJcbiAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -683,10 +683,10 @@ class EsDiagramService {
|
|
|
683
683
|
//return Loc[text][this.DIA_LOCALE];
|
|
684
684
|
return text;
|
|
685
685
|
}
|
|
686
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService, deps: [{ token: DIA_DEBUG_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
687
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService }); }
|
|
686
688
|
}
|
|
687
|
-
|
|
688
|
-
EsDiagramService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramService });
|
|
689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramService, decorators: [{
|
|
689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramService, decorators: [{
|
|
690
690
|
type: Injectable
|
|
691
691
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
692
692
|
type: Optional
|
|
@@ -771,10 +771,10 @@ class EsDiagramDispatcher {
|
|
|
771
771
|
if (this.logs)
|
|
772
772
|
console.log("@esfaenza/es-diagrams: " + text);
|
|
773
773
|
}
|
|
774
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher, deps: [{ token: DIA_DEBUG_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
775
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher }); }
|
|
774
776
|
}
|
|
775
|
-
|
|
776
|
-
EsDiagramDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramDispatcher });
|
|
777
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramDispatcher, decorators: [{
|
|
777
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramDispatcher, decorators: [{
|
|
778
778
|
type: Injectable
|
|
779
779
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
780
780
|
type: Inject,
|
|
@@ -807,10 +807,10 @@ class ReactiveExtensions {
|
|
|
807
807
|
var executionTimer = setTimeout(() => { func(); this.executionTimers[key] = null; }, throttleTime);
|
|
808
808
|
this.executionTimers[key] = executionTimer;
|
|
809
809
|
}
|
|
810
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
811
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, providedIn: "root" }); }
|
|
810
812
|
}
|
|
811
|
-
|
|
812
|
-
ReactiveExtensions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveExtensions, providedIn: "root" });
|
|
813
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveExtensions, decorators: [{
|
|
813
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactiveExtensions, decorators: [{
|
|
814
814
|
type: Injectable,
|
|
815
815
|
args: [{ providedIn: "root" }]
|
|
816
816
|
}] });
|
|
@@ -1280,10 +1280,10 @@ class EsDiagramComponent {
|
|
|
1280
1280
|
el.position = positionCache[el.data.id];
|
|
1281
1281
|
}
|
|
1282
1282
|
}
|
|
1283
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramComponent, deps: [{ token: EsDiagramService, optional: true }, { token: EsDiagramDispatcher, optional: true }, { token: ReactiveExtensions }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EsDiagramComponent, selector: "es-diagram", inputs: { name: "name", UseContextMenu: "UseContextMenu", ContextMenuOptions: "ContextMenuOptions", UseExpandCollapse: "UseExpandCollapse", ExpandCollapseOptions: "ExpandCollapseOptions", NativeOptions: "NativeOptions", Elements: "Elements", NodeStyles: "NodeStyles", EdgeStyles: "EdgeStyles", Readonly: "Readonly", AutoupdateSize: "AutoupdateSize", PreserveElementsPosition: "PreserveElementsPosition", AnimateLayoutChanges: "AnimateLayoutChanges", SmartSelection: "SmartSelection", SingleSelection: "SingleSelection", SmartSelectionStyles: "SmartSelectionStyles", ResizeThrottleTime: "ResizeThrottleTime", Layout: "Layout", NodeHTMLTemplates: "NodeHTMLTemplates", ExtensionModulesImporter: "ExtensionModulesImporter", ExtensionModulesApplyer: "ExtensionModulesApplyer" }, outputs: { onNodeClick: "onNodeClick", onNodeSelection: "onNodeSelection", onLayoutDone: "onLayoutDone", onLoaded: "onLoaded" }, viewQueries: [{ propertyName: "cyGraph", first: true, predicate: ["graph"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] }); }
|
|
1283
1285
|
}
|
|
1284
|
-
|
|
1285
|
-
EsDiagramComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EsDiagramComponent, selector: "es-diagram", inputs: { name: "name", UseContextMenu: "UseContextMenu", ContextMenuOptions: "ContextMenuOptions", UseExpandCollapse: "UseExpandCollapse", ExpandCollapseOptions: "ExpandCollapseOptions", NativeOptions: "NativeOptions", Elements: "Elements", NodeStyles: "NodeStyles", EdgeStyles: "EdgeStyles", Readonly: "Readonly", AutoupdateSize: "AutoupdateSize", PreserveElementsPosition: "PreserveElementsPosition", AnimateLayoutChanges: "AnimateLayoutChanges", SmartSelection: "SmartSelection", SingleSelection: "SingleSelection", SmartSelectionStyles: "SmartSelectionStyles", ResizeThrottleTime: "ResizeThrottleTime", Layout: "Layout", NodeHTMLTemplates: "NodeHTMLTemplates", ExtensionModulesImporter: "ExtensionModulesImporter", ExtensionModulesApplyer: "ExtensionModulesApplyer" }, outputs: { onNodeClick: "onNodeClick", onNodeSelection: "onNodeSelection", onLayoutDone: "onLayoutDone", onLoaded: "onLoaded" }, viewQueries: [{ propertyName: "cyGraph", first: true, predicate: ["graph"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] });
|
|
1286
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramComponent, decorators: [{
|
|
1286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramComponent, decorators: [{
|
|
1287
1287
|
type: Component,
|
|
1288
1288
|
args: [{ selector: 'es-diagram', template: "<div #graph class=\"graph-wrapper {{name}}\"></div>", styles: [".graph-wrapper{height:100%;width:100%}.html-node-notransition{transition:none!important;transform:none!important}\n"] }]
|
|
1289
1289
|
}], ctorParameters: function () { return [{ type: EsDiagramService, decorators: [{
|
|
@@ -1356,11 +1356,11 @@ class EsDiagramModule {
|
|
|
1356
1356
|
]
|
|
1357
1357
|
};
|
|
1358
1358
|
}
|
|
1359
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1360
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, declarations: [EsDiagramComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule], exports: [EsDiagramComponent] }); }
|
|
1361
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule] }); }
|
|
1359
1362
|
}
|
|
1360
|
-
|
|
1361
|
-
EsDiagramModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, declarations: [EsDiagramComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule], exports: [EsDiagramComponent] });
|
|
1362
|
-
EsDiagramModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule] });
|
|
1363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EsDiagramModule, decorators: [{
|
|
1363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsDiagramModule, decorators: [{
|
|
1364
1364
|
type: NgModule,
|
|
1365
1365
|
args: [{
|
|
1366
1366
|
declarations: [EsDiagramComponent],
|