@unovis/angular 1.4.0-beta.5 → 1.4.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.
@@ -70,6 +70,10 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
70
70
  * the scales of the chart.
71
71
  * Default: `false` */
72
72
  excludeFromDomainCalculation?: boolean;
73
+ /** Optional stroke color accessor function for crosshair circles. Default: `undefined` */
74
+ strokeColor?: ColorAccessor<Datum>;
75
+ /** Optional stroke width for crosshair circles. Default: `undefined` */
76
+ strokeWidth?: NumericAccessor<Datum>;
73
77
  /** Separate array of accessors for stacked components (eg StackedBar, Area). Default: `undefined` */
74
78
  yStacked?: NumericAccessor<Datum>[];
75
79
  /** Baseline accessor function for stacked values, useful with stacked areas. Default: `null` */
@@ -100,5 +104,5 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
100
104
  ngOnChanges(changes: SimpleChanges): void;
101
105
  private getConfig;
102
106
  static ɵfac: i0.ɵɵFactoryDeclaration<VisCrosshairComponent<any>, never>;
103
- static ɵcmp: i0.ɵɵComponentDeclaration<VisCrosshairComponent<any>, "vis-crosshair", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "yStacked": "yStacked"; "baseline": "baseline"; "tooltip": "tooltip"; "template": "template"; "hideWhenFarFromPointer": "hideWhenFarFromPointer"; "hideWhenFarFromPointerDistance": "hideWhenFarFromPointerDistance"; "snapToData": "snapToData"; "getCircles": "getCircles"; "data": "data"; }, {}, never, never>;
107
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisCrosshairComponent<any>, "vis-crosshair", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "strokeColor": "strokeColor"; "strokeWidth": "strokeWidth"; "yStacked": "yStacked"; "baseline": "baseline"; "tooltip": "tooltip"; "template": "template"; "hideWhenFarFromPointer": "hideWhenFarFromPointer"; "hideWhenFarFromPointerDistance": "hideWhenFarFromPointerDistance"; "snapToData": "snapToData"; "getCircles": "getCircles"; "data": "data"; }, {}, never, never>;
104
108
  }
@@ -1,5 +1,7 @@
1
1
  import { AfterViewInit, SimpleChanges } from '@angular/core';
2
- import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GenericAccessor, GraphElkLayoutSettings, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphNodeShape, TrimMode, GraphPanelConfig } from '@unovis/ts';
2
+ import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphNodeShape, TrimMode, GraphPanelConfig, GraphNode, GraphLink } from '@unovis/ts';
3
+ import { D3DragEvent } from 'd3-drag';
4
+ import { D3ZoomEvent } from 'd3-zoom';
3
5
  import * as i0 from "@angular/core";
4
6
  export declare class VisGraphComponent<N extends GraphInputNode, L extends GraphInputLink> implements GraphConfigInterface<N, L>, AfterViewInit {
5
7
  /** Animation duration of the data update transitions in milliseconds. Default: `600` */
@@ -57,8 +59,6 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
57
59
  disableDrag?: boolean;
58
60
  /** Interval to re-render the graph when zooming. Default: `100` */
59
61
  zoomThrottledUpdateNodeThreshold?: number;
60
- /** Zoom event callback. Default: `undefined` */
61
- onZoom?: (zoomScale: number, zoomScaleExtent: [number, number]) => void;
62
62
  /** Type of the graph layout. Default: `GraphLayoutType.Force` */
63
63
  layoutType?: GraphLayoutType | string;
64
64
  /** Fit the graph to container on data or config updates, or on container resize. Default: `true` */
@@ -101,14 +101,10 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
101
101
  * Default: `undefined` */
102
102
  layoutParallelSortConnectionsByGroup?: string;
103
103
  /** Force Layout settings, see the `d3-force` package for more details */
104
- forceLayoutSettings?: GraphForceLayoutSettings;
104
+ forceLayoutSettings?: GraphForceLayoutSettings<N, L>;
105
105
  /** Darge Layout settings, see the `dagrejs` package
106
106
  * for more details: https://github.com/dagrejs/dagre/wiki#configuring-the-layout */
107
- dagreLayoutSettings?: {
108
- rankdir: string;
109
- ranker: string;
110
- [key: string]: any;
111
- };
107
+ dagreLayoutSettings?: GraphDagreLayoutSetting;
112
108
  /** ELK layout options, see the `elkjs` package for more details: https://github.com/kieler/elkjs.
113
109
  * If you want to specify custom layout option for each node group, you can provide an accessor function that
114
110
  * receives group name ('root' for the top-level configuration) as the first argument and returns an object containing
@@ -125,7 +121,7 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
125
121
  /** Link band width accessor function or constant value. Default: `0` */
126
122
  linkBandWidth?: NumericAccessor<L>;
127
123
  /** Link arrow accessor function or constant value. Default: `undefined` */
128
- linkArrow?: GenericAccessor<GraphLinkArrowStyle, L> | undefined;
124
+ linkArrow?: GenericAccessor<GraphLinkArrowStyle | string | boolean, L> | undefined;
129
125
  /** Link stroke color accessor function or constant value. Default: `undefined` */
130
126
  linkStroke?: ColorAccessor<L>;
131
127
  /** Link disabled state accessor function or constant value. Default: `false` */
@@ -142,6 +138,12 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
142
138
  linkLabelShiftFromCenter?: BooleanAccessor<L>;
143
139
  /** Spacing between neighboring links. Default: `8` */
144
140
  linkNeighborSpacing?: number;
141
+ /** Curvature of the link. Recommended value range: [0:1.5].
142
+ * `0` - straight line,
143
+ * `1` - nice curvature,
144
+ * `1.5` - very curve.
145
+ * Default: `0` */
146
+ linkCurvature?: NumericAccessor<L>;
145
147
  /** Set selected link by its unique id. Default: `undefined` */
146
148
  selectedLinkId?: number | string;
147
149
  /** Node size accessor function or constant value. Default: `30` */
@@ -200,6 +202,16 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
200
202
  selectedNodeId?: number | string;
201
203
  /** Panels configuration. An array of `GraphPanelConfig` objects. Default: `[]` */
202
204
  panels?: GraphPanelConfig[] | undefined;
205
+ /** Graph node drag start callback function. Default: `undefined` */
206
+ onNodeDragStart?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined;
207
+ /** Graph node drag callback function. Default: `undefined` */
208
+ onNodeDrag?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined;
209
+ /** Graph node drag end callback function. Default: `undefined` */
210
+ onNodeDragEnd?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined;
211
+ /** Zoom event callback. Default: `undefined` */
212
+ onZoom?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined) => void;
213
+ /** Callback function to be called when the graph layout is calculated. Default: `undefined` */
214
+ onLayoutCalculated?: (n: GraphNode<N, L>[], links: GraphLink<N, L>[]) => void;
203
215
  data: {
204
216
  nodes: N[];
205
217
  links?: L[];
@@ -210,5 +222,5 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
210
222
  ngOnChanges(changes: SimpleChanges): void;
211
223
  private getConfig;
212
224
  static ɵfac: i0.ɵɵFactoryDeclaration<VisGraphComponent<any, any>, never>;
213
- static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "disableDrag": "disableDrag"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "onZoom": "onZoom"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "selectedNodeId": "selectedNodeId"; "panels": "panels"; "data": "data"; }, {}, never, never>;
225
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "disableDrag": "disableDrag"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "selectedNodeId": "selectedNodeId"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onLayoutCalculated": "onLayoutCalculated"; "data": "data"; }, {}, never, never>;
214
226
  }
@@ -29,7 +29,7 @@ export declare class VisTooltipComponent implements TooltipConfigInterface, Afte
29
29
  * }
30
30
  * ``` */
31
31
  triggers?: {
32
- [selector: string]: (data: any, i: number, elements: (HTMLElement | SVGElement)[]) => string | HTMLElement | undefined | null;
32
+ [selector: string]: ((data: any, i: number, elements: (HTMLElement | SVGElement)[]) => string | HTMLElement | undefined | null) | undefined | null;
33
33
  };
34
34
  /** Custom DOM attributes for the tooltip. Useful when you need to refer to a specific tooltip instance
35
35
  * by using a CSS selector. Attributes configuration object has the following structure:
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
40
40
  }], items: [{
41
41
  type: Input
42
42
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQTZGLE1BQU0sWUFBWSxDQUFBO0FBQ25JLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLHVCQUF1QjtJQXNFbEMsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFBO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUF5QyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7O3FIQXRGVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix3SUFGdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywrQ0FGekUsRUFBRTs0RkFJRCx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUM7aUJBQ3BGOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFtQkcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEFubm90YXRpb25zQ29uZmlnSW50ZXJmYWNlLCBDb250YWluZXJDb3JlLCBWaXNFdmVudFR5cGUsIFZpc0V2ZW50Q2FsbGJhY2ssIEFubm90YXRpb25JdGVtIH0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtYW5ub3RhdGlvbnMnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc0dlbmVyaWNDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNBbm5vdGF0aW9uc0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQW5ub3RhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBBbm5vdGF0aW9uc0NvbmZpZ0ludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBMZWdlbmQgaXRlbXMuIEFycmF5IG9mIGBBbm5vdGF0aW9uSXRlbWA6XG4gICAqIGBgYFxuICAgKiB7XG4gICAqICBjb250ZW50OiBzdHJpbmcgfCBVbm92aXNUZXh0IHwgVW5vdmlzVGV4dFtdO1xuICAgKiAgc3ViamVjdD86IEFubm90YXRpb25TdWJqZWN0O1xuICAgKiAgeD86IExlbmd0aFVuaXQ7XG4gICAqICB5PzogTGVuZ3RoVW5pdDtcbiAgICogIHdpZHRoPzogTGVuZ3RoVW5pdDtcbiAgICogIGhlaWdodD86IExlbmd0aFVuaXQ7XG4gICAqIH1cbiAgICogYGBgXG4gICAqIFRvIGxlYXJuIG1vcmUsIHNlZSBvdXIgZG9jcyBodHRwczovL3Vub3Zpcy5kZXYvZG9jcy9hdXhpbGlhcnkvQW5ub3RhdGlvbnMvXG4gICAqIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgaXRlbXM6IEFubm90YXRpb25JdGVtW10gfCB1bmRlZmluZWRcblxuXG4gIGNvbXBvbmVudDogQW5ub3RhdGlvbnMgfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQW5ub3RhdGlvbnModGhpcy5nZXRDb25maWcoKSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEFubm90YXRpb25zQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIGl0ZW1zIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBpdGVtcyB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEFubm90YXRpb25zQ29uZmlnSW50ZXJmYWNlKVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQTZGLE1BQU0sWUFBWSxDQUFBO0FBQ25JLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLHVCQUF1QjtJQXFFbEMsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFBO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUF5QyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7O3FIQXJGVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix3SUFGdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywrQ0FGekUsRUFBRTs0RkFJRCx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUM7aUJBQ3BGOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFtQkcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEFubm90YXRpb25zQ29uZmlnSW50ZXJmYWNlLCBDb250YWluZXJDb3JlLCBWaXNFdmVudFR5cGUsIFZpc0V2ZW50Q2FsbGJhY2ssIEFubm90YXRpb25JdGVtIH0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtYW5ub3RhdGlvbnMnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc0dlbmVyaWNDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNBbm5vdGF0aW9uc0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQW5ub3RhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBBbm5vdGF0aW9uc0NvbmZpZ0ludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBMZWdlbmQgaXRlbXMuIEFycmF5IG9mIGBBbm5vdGF0aW9uSXRlbWA6XG4gICAqIGBgYFxuICAgKiB7XG4gICAqICBjb250ZW50OiBzdHJpbmcgfCBVbm92aXNUZXh0IHwgVW5vdmlzVGV4dFtdO1xuICAgKiAgc3ViamVjdD86IEFubm90YXRpb25TdWJqZWN0O1xuICAgKiAgeD86IExlbmd0aFVuaXQ7XG4gICAqICB5PzogTGVuZ3RoVW5pdDtcbiAgICogIHdpZHRoPzogTGVuZ3RoVW5pdDtcbiAgICogIGhlaWdodD86IExlbmd0aFVuaXQ7XG4gICAqIH1cbiAgICogYGBgXG4gICAqIFRvIGxlYXJuIG1vcmUsIHNlZSBvdXIgZG9jcyBodHRwczovL3Vub3Zpcy5kZXYvZG9jcy9hdXhpbGlhcnkvQW5ub3RhdGlvbnMvXG4gICAqIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgaXRlbXM6IEFubm90YXRpb25JdGVtW10gfCB1bmRlZmluZWRcblxuICBjb21wb25lbnQ6IEFubm90YXRpb25zIHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEFubm90YXRpb25zKHRoaXMuZ2V0Q29uZmlnKCkpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBBbm5vdGF0aW9uc0NvbmZpZ0ludGVyZmFjZSB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCBpdGVtcyB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgaXRlbXMgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBBbm5vdGF0aW9uc0NvbmZpZ0ludGVyZmFjZSlbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
@@ -21,8 +21,8 @@ export class VisCrosshairComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles } = this;
25
- const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles };
24
+ const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles } = this;
25
+ const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles };
26
26
  const keys = Object.keys(config);
27
27
  keys.forEach(key => { if (config[key] === undefined)
28
28
  delete config[key]; });
@@ -30,7 +30,7 @@ export class VisCrosshairComponent {
30
30
  }
31
31
  }
32
32
  VisCrosshairComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", strokeColor: "strokeColor", strokeWidth: "strokeWidth", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -59,6 +59,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
59
59
  type: Input
60
60
  }], excludeFromDomainCalculation: [{
61
61
  type: Input
62
+ }], strokeColor: [{
63
+ type: Input
64
+ }], strokeWidth: [{
65
+ type: Input
62
66
  }], yStacked: [{
63
67
  type: Input
64
68
  }], baseline: [{
@@ -78,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
78
82
  }], data: [{
79
83
  type: Input
80
84
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQWtIaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDbk8sTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFBO1FBQ3JPLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUE4QyxDQUFBO1FBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7O21IQXhJVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiw4Z0JBRnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLCtDQUZsRSxFQUFFOzRGQUlELHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDO2lCQUM3RTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLENBQUM7c0JBQVQsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDcm9zc2hhaXIsXG4gIENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIENvbG9yQWNjZXNzb3IsXG4gIENvbnRpbnVvdXNTY2FsZSxcbiAgVG9vbHRpcCxcbiAgQ3Jvc3NoYWlyQ2lyY2xlLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzWFlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtY3Jvc3NoYWlyJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNYWUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0Nyb3NzaGFpckNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQ3Jvc3NoYWlyQ29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogT3B0aW9uYWwgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWCBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4PzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcHRpb25hbCBzaW5nbGUgb2YgbXVsdGlwbGUgYWNjZXNzb3IgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFkgYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeT86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT4gfCBOdW1lcmljQWNjZXNzb3I8RGF0dW0+W11cblxuICAvKiogQWNjZXNzb3IgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIHVuaXF1ZSBkYXRhIHJlY29yZCBpZC4gVXNlZCBmb3IgbW9yZSBwZXJzaXN0ZW50IGRhdGEgdXBkYXRlcy4gRGVmYXVsdDogYChkLCBpKSA9PiBkLmlkID8/IGlgICovXG4gIEBJbnB1dCgpIGlkPzogKChkOiBEYXR1bSwgaTogbnVtYmVyLCAuLi5yZXN0KSA9PiBzdHJpbmcpXG5cbiAgLyoqIE9wdGlvbmFsIGNvbG9yIGFycmF5IG9yIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYGQgPT4gZC5jb2xvcmAgKi9cbiAgQElucHV0KCkgY29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBTY2FsZSBmb3IgWCBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB4U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogU2NhbGUgZm9yIFkgZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeVNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIElkZW50aWZpZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIG92ZXJhbGwgWCBhbmQgWSBkb21haW4gY2FsY3VsYXRpb25zIG9yIG5vdC5cbiAgICogVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZnVsIHdoZW4geW91IHdhbnQgcGFzcyBpbmRpdmlkdWFsIGRhdGEgdG8gYSBjb21wb25lbnQgYW5kIHlvdSBkb24ndCB3YW50IGl0IHRvIGFmZmVjdFxuICAgKiB0aGUgc2NhbGVzIG9mIHRoZSBjaGFydC5cbiAgICogRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uPzogYm9vbGVhblxuXG4gIC8qKiBTZXBhcmF0ZSBhcnJheSBvZiBhY2Nlc3NvcnMgZm9yIHN0YWNrZWQgY29tcG9uZW50cyAoZWcgU3RhY2tlZEJhciwgQXJlYSkuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTdGFja2VkPzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEJhc2VsaW5lIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBzdGFja2VkIHZhbHVlcywgdXNlZnVsIHdpdGggc3RhY2tlZCBhcmVhcy4gRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIGJhc2VsaW5lPzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBBbiBpbnN0YW5jZSBvZiB0aGUgVG9vbHRpcCBjb21wb25lbnQgdG8gYmUgdXNlZCB3aXRoIENyb3NzaGFpci4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgdG9vbHRpcD86IFRvb2x0aXAgfCB1bmRlZmluZWRcblxuICAvKiogVG9vbHRpcCB0ZW1wbGF0ZSBhY2Nlc3Nvci4gVGhlIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIHJldHVybiBlaXRoZXIgYSB2YWxpZCBIVE1MIHN0cmluZyBvciBhbiBIVE1MRWxlbWVudC4gRGVmYXVsdDogYGQgPT4gJydgICovXG4gIEBJbnB1dCgpIHRlbXBsYXRlPzogKGRhdGE6IERhdHVtLCB4OiBudW1iZXIgfCBEYXRlKSA9PiBzdHJpbmcgfCBIVE1MRWxlbWVudFxuXG4gIC8qKiBIaWRlIENyb3NzaGFpciB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaXMgZmFyIGZyb20gbW91c2UgcG9pbnRlci4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXI/OiBib29sZWFuXG5cbiAgLyoqIERpc3RhbmNlIGluIHBpeGVscyB0byBjaGVjayBpbiB0aGUgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciBjb25kaXRpb24uIERlZmF1bHQ6IGAxMDBgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZT86IG51bWJlclxuXG4gIC8qKiBTbmFwIHRvIHRoZSBuZWFyZXN0IGRhdGEgcG9pbnQuXG4gICAqIElmIGRpc2FibGVkLCB0aGUgdG9vbHRpcCB0ZW1wbGF0ZSB3aWxsIHJlY2VpdmUgb25seSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIGFuZCB5b3UnbGwgYmUgcmVzcG9uc2libGVcbiAgICogZm9yIGdldHRpbmcgdGhlIHVuZGVybHlpbmcgZGF0YSByZWNvcmRzIGFuZCBjcm9zc2hhaXIgY2lyY2xlcyAoc2VlIHRoZSBgZ2V0Q2lyY2xlc2AgY29uZmlndXJhdGlvbiBvcHRpb24pLlxuICAgKiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgc25hcFRvRGF0YT86IGJvb2xlYW5cblxuICAvKiogQ3VzdG9tIGZ1bmN0aW9uIGZvciBzZXR0aW5nIHVwIHRoZSBjcm9zc2hhaXIgY2lyY2xlcywgdXN1YWxseSBuZWVkZWQgd2hlbiBgc25hcFRvRGF0YWAgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAqIFRoZSBmdW5jdGlvbiByZWNlaXZlcyB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIChpbiB0aGUgZGF0YSBzcGFjZSwgbm90IGluIHBpeGVscyksIHRoZSBkYXRhIGFycmF5XG4gICAqIGFuZCB0aGUgYHlTY2FsZWAgaW5zdGFuY2UgdG8gaGVscCB5b3UgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBjaXJjbGVzLlxuICAgKiBJdCBoYXMgdG8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBDcm9zc2hhaXJDaXJjbGUgb2JqZWN0czogYHsgeTogbnVtYmVyOyBjb2xvcjogc3RyaW5nOyBvcGFjaXR5PzogbnVtYmVyIH1bXWAuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGdldENpcmNsZXM/OiAoeDogbnVtYmVyIHwgRGF0ZSB8IERhdGUsIGRhdGE6IERhdHVtW10sIHlTY2FsZTogQ29udGludW91c1NjYWxlKSA9PiBDcm9zc2hhaXJDaXJjbGVbXVxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBDcm9zc2hhaXI8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IENyb3NzaGFpcjxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcyB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXdIaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUM3UCxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUMvUCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBOEMsQ0FBQTtRQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzttSEE5SVUscUJBQXFCO3VHQUFyQixxQkFBcUIsc2tCQUZyQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsQ0FBQywrQ0FGbEUsRUFBRTs0RkFJRCxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsdUJBQXVCLEVBQUUsQ0FBQztpQkFDN0U7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsTUFBTTtzQkFBZCxLQUFLO2dCQXdCRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLENBQUM7c0JBQVQsS0FBSztnQkFHRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csRUFBRTtzQkFBVixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENyb3NzaGFpcixcbiAgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlLFxuICBDb250YWluZXJDb3JlLFxuICBWaXNFdmVudFR5cGUsXG4gIFZpc0V2ZW50Q2FsbGJhY2ssXG4gIE51bWVyaWNBY2Nlc3NvcixcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQ29udGludW91c1NjYWxlLFxuICBUb29sdGlwLFxuICBDcm9zc2hhaXJDaXJjbGUsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1jcm9zc2hhaXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc1hZQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzQ3Jvc3NoYWlyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNDcm9zc2hhaXJDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPcHRpb25hbCBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBYIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIE9wdGlvbmFsIHNpbmdsZSBvZiBtdWx0aXBsZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWSBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5PzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPiB8IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdW5pcXVlIGRhdGEgcmVjb3JkIGlkLiBVc2VkIGZvciBtb3JlIHBlcnNpc3RlbnQgZGF0YSB1cGRhdGVzLiBEZWZhdWx0OiBgKGQsIGkpID0+IGQuaWQgPz8gaWAgKi9cbiAgQElucHV0KCkgaWQ/OiAoKGQ6IERhdHVtLCBpOiBudW1iZXIsIC4uLnJlc3QpID0+IHN0cmluZylcblxuICAvKiogT3B0aW9uYWwgY29sb3IgYXJyYXkgb3IgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgZCA9PiBkLmNvbG9yYCAqL1xuICBASW5wdXQoKSBjb2xvcj86IENvbG9yQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNjYWxlIGZvciBYIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHhTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBTY2FsZSBmb3IgWSBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB5U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogSWRlbnRpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gb3ZlcmFsbCBYIGFuZCBZIGRvbWFpbiBjYWxjdWxhdGlvbnMgb3Igbm90LlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VmdWwgd2hlbiB5b3Ugd2FudCBwYXNzIGluZGl2aWR1YWwgZGF0YSB0byBhIGNvbXBvbmVudCBhbmQgeW91IGRvbid0IHdhbnQgaXQgdG8gYWZmZWN0XG4gICAqIHRoZSBzY2FsZXMgb2YgdGhlIGNoYXJ0LlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24/OiBib29sZWFuXG5cbiAgLyoqIE9wdGlvbmFsIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHN0cm9rZUNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIHdpZHRoIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIFNlcGFyYXRlIGFycmF5IG9mIGFjY2Vzc29ycyBmb3Igc3RhY2tlZCBjb21wb25lbnRzIChlZyBTdGFja2VkQmFyLCBBcmVhKS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVN0YWNrZWQ/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+W11cblxuICAvKiogQmFzZWxpbmUgYWNjZXNzb3IgZnVuY3Rpb24gZm9yIHN0YWNrZWQgdmFsdWVzLCB1c2VmdWwgd2l0aCBzdGFja2VkIGFyZWFzLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgYmFzZWxpbmU/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIEFuIGluc3RhbmNlIG9mIHRoZSBUb29sdGlwIGNvbXBvbmVudCB0byBiZSB1c2VkIHdpdGggQ3Jvc3NoYWlyLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB0b29sdGlwPzogVG9vbHRpcCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBUb29sdGlwIHRlbXBsYXRlIGFjY2Vzc29yLiBUaGUgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIGVpdGhlciBhIHZhbGlkIEhUTUwgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LiBEZWZhdWx0OiBgZCA9PiAnJ2AgKi9cbiAgQElucHV0KCkgdGVtcGxhdGU/OiAoZGF0YTogRGF0dW0sIHg6IG51bWJlciB8IERhdGUpID0+IHN0cmluZyB8IEhUTUxFbGVtZW50XG5cbiAgLyoqIEhpZGUgQ3Jvc3NoYWlyIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpcyBmYXIgZnJvbSBtb3VzZSBwb2ludGVyLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgaGlkZVdoZW5GYXJGcm9tUG9pbnRlcj86IGJvb2xlYW5cblxuICAvKiogRGlzdGFuY2UgaW4gcGl4ZWxzIHRvIGNoZWNrIGluIHRoZSBoaWRlV2hlbkZhckZyb21Qb2ludGVyIGNvbmRpdGlvbi4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlPzogbnVtYmVyXG5cbiAgLyoqIFNuYXAgdG8gdGhlIG5lYXJlc3QgZGF0YSBwb2ludC5cbiAgICogSWYgZGlzYWJsZWQsIHRoZSB0b29sdGlwIHRlbXBsYXRlIHdpbGwgcmVjZWl2ZSBvbmx5IHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjcm9zc2hhaXIgYW5kIHlvdSdsbCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgZ2V0dGluZyB0aGUgdW5kZXJseWluZyBkYXRhIHJlY29yZHMgYW5kIGNyb3NzaGFpciBjaXJjbGVzIChzZWUgdGhlIGBnZXRDaXJjbGVzYCBjb25maWd1cmF0aW9uIG9wdGlvbikuXG4gICAqIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBzbmFwVG9EYXRhPzogYm9vbGVhblxuXG4gIC8qKiBDdXN0b20gZnVuY3Rpb24gZm9yIHNldHRpbmcgdXAgdGhlIGNyb3NzaGFpciBjaXJjbGVzLCB1c3VhbGx5IG5lZWRlZCB3aGVuIGBzbmFwVG9EYXRhYCBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICogVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjcm9zc2hhaXIgKGluIHRoZSBkYXRhIHNwYWNlLCBub3QgaW4gcGl4ZWxzKSwgdGhlIGRhdGEgYXJyYXlcbiAgICogYW5kIHRoZSBgeVNjYWxlYCBpbnN0YW5jZSB0byBoZWxwIHlvdSBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIGNpcmNsZXMuXG4gICAqIEl0IGhhcyB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIENyb3NzaGFpckNpcmNsZSBvYmplY3RzOiBgeyB5OiBudW1iZXI7IGNvbG9yOiBzdHJpbmc7IG9wYWNpdHk/OiBudW1iZXIgfVtdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZ2V0Q2lyY2xlcz86ICh4OiBudW1iZXIgfCBEYXRlIHwgRGF0ZSwgZGF0YTogRGF0dW1bXSwgeVNjYWxlOiBDb250aW51b3VzU2NhbGUpID0+IENyb3NzaGFpckNpcmNsZVtdXG4gIEBJbnB1dCgpIGRhdGE6IERhdHVtW11cblxuICBjb21wb25lbnQ6IENyb3NzaGFpcjxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQ3Jvc3NoYWlyPERhdHVtPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCB5U3RhY2tlZCwgYmFzZWxpbmUsIHRvb2x0aXAsIHRlbXBsYXRlLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyLCBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2UsIHNuYXBUb0RhdGEsIGdldENpcmNsZXMgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQ3Jvc3NoYWlyQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
@@ -21,8 +21,8 @@ export class VisGraphComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, onZoom, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels } = this;
25
- const config = { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, onZoom, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels };
24
+ const { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated } = this;
25
+ const config = { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated };
26
26
  const keys = Object.keys(config);
27
27
  keys.forEach(key => { if (config[key] === undefined)
28
28
  delete config[key]; });
@@ -30,7 +30,7 @@ export class VisGraphComponent {
30
30
  }
31
31
  }
32
32
  VisGraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", disableDrag: "disableDrag", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", onZoom: "onZoom", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", selectedNodeId: "selectedNodeId", panels: "panels", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", disableDrag: "disableDrag", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", selectedNodeId: "selectedNodeId", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onLayoutCalculated: "onLayoutCalculated", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -53,8 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
53
53
  type: Input
54
54
  }], zoomThrottledUpdateNodeThreshold: [{
55
55
  type: Input
56
- }], onZoom: [{
57
- type: Input
58
56
  }], layoutType: [{
59
57
  type: Input
60
58
  }], layoutAutofit: [{
@@ -109,6 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
109
107
  type: Input
110
108
  }], linkNeighborSpacing: [{
111
109
  type: Input
110
+ }], linkCurvature: [{
111
+ type: Input
112
112
  }], selectedLinkId: [{
113
113
  type: Input
114
114
  }], nodeSize: [{
@@ -167,7 +167,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
167
167
  type: Input
168
168
  }], panels: [{
169
169
  type: Input
170
+ }], onNodeDragStart: [{
171
+ type: Input
172
+ }], onNodeDrag: [{
173
+ type: Input
174
+ }], onNodeDragEnd: [{
175
+ type: Input
176
+ }], onZoom: [{
177
+ type: Input
178
+ }], onLayoutCalculated: [{
179
+ type: Input
170
180
  }], data: [{
171
181
  type: Input
172
182
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBcUJOLE1BQU0sWUFBWSxDQUFBO0FBQ25CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTJRNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVB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QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBHcmFwaCxcbiAgR3JhcGhDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIEdyYXBoSW5wdXROb2RlLFxuICBHcmFwaElucHV0TGluayxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBHcmFwaExheW91dFR5cGUsXG4gIFN0cmluZ0FjY2Vzc29yLFxuICBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3MsXG4gIEdlbmVyaWNBY2Nlc3NvcixcbiAgR3JhcGhFbGtMYXlvdXRTZXR0aW5ncyxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBHcmFwaExpbmtTdHlsZSxcbiAgR3JhcGhMaW5rQXJyb3dTdHlsZSxcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQm9vbGVhbkFjY2Vzc29yLFxuICBHcmFwaENpcmNsZUxhYmVsLFxuICBHcmFwaE5vZGVTaGFwZSxcbiAgVHJpbU1vZGUsXG4gIEdyYXBoUGFuZWxDb25maWcsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNDb3JlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWdyYXBoJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNDb3JlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzR3JhcGhDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0dyYXBoQ29tcG9uZW50PE4gZXh0ZW5kcyBHcmFwaElucHV0Tm9kZSwgTCBleHRlbmRzIEdyYXBoSW5wdXRMaW5rPiBpbXBsZW1lbnRzIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIFpvb20gbGV2ZWwgY29uc3RyYWludHMuIERlZmF1bHQ6IFswLjM1LCAxLjI1XSAqL1xuICBASW5wdXQoKSB6b29tU2NhbGVFeHRlbnQ/OiBbbnVtYmVyLCBudW1iZXJdXG5cbiAgLyoqIERpc2FibGUgem9vbWluZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlWm9vbT86IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBub2RlIGRyYWdnaW5nLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVEcmFnPzogYm9vbGVhblxuXG4gIC8qKiBJbnRlcnZhbCB0byByZS1yZW5kZXIgdGhlIGdyYXBoIHdoZW4gem9vbWluZy4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQ/OiBudW1iZXJcblxuICAvKiogWm9vbSBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tPzogKHpvb21TY2FsZTogbnVtYmVyLCB6b29tU2NhbGVFeHRlbnQ6IFtudW1iZXIsIG51bWJlcl0pID0+IHZvaWRcblxuICAvKiogVHlwZSBvZiB0aGUgZ3JhcGggbGF5b3V0LiBEZWZhdWx0OiBgR3JhcGhMYXlvdXRUeXBlLkZvcmNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRUeXBlPzogR3JhcGhMYXlvdXRUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEZpdCB0aGUgZ3JhcGggdG8gY29udGFpbmVyIG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZXMsIG9yIG9uIGNvbnRhaW5lciByZXNpemUuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0PzogYm9vbGVhblxuXG4gIC8qKiBUb2xlcmFuY2UgY29uc3RhbnQgZGVmaW5pbmcgd2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGZpdHRlZCB0byBjb250YWluZXJcbiAgICogKG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZSwgb3IgY29udGFpbmVyIHJlc2l6ZSkgYWZ0ZXIgYSB6b29tIC8gcGFuIGludGVyYWN0aW9uIG9yIG5vdC5cbiAgICogYDBgIOKAlCBTdG9wIGZpdHRpbmcgYWZ0ZXIgYW55IHBhbiBvciB6b29tXG4gICAqIGBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlgIOKAlCBBbHdheXMgZml0XG4gICAqIERlZmF1bHQ6IGA4LjBgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXRUb2xlcmFuY2U/OiBudW1iZXJcblxuICAvKiogUGxhY2Ugbm9uLWNvbm5lY3RlZCBub2RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmFwaC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb25Db25uZWN0ZWRBc2lkZT86IGJvb2xlYW5cblxuICAvKiogTm9kZSBncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb2RlR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBPcmRlciBvZiB0aGUgbGF5b3V0IGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIGxheW91dEdyb3VwT3JkZXI/OiBzdHJpbmdbXVxuXG4gIC8qKiBTZXRzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBzdWItZ3JvdXAgYWZ0ZXIgd2hpY2ggdGhleSdsbCBjb250aW51ZSBvbiB0aGUgbmV4dCBjb2x1bW4gKG9yIHJvdyBpZiBgbGF5b3V0VHlwZWAgaXNcbiAgICogYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKS5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgNmAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIHN1Yi1ncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN1Ymdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE51bWJlciBvZiBzdWItZ3JvdXBzIHBlciByb3cgKG9yIGNvbHVtbiBpZiBgbGF5b3V0VHlwZWAgaXMgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKSBpbiBhIGdyb3VwLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdz86IG51bWJlclxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIFNldCBhIGdyb3VwIGJ5IG5hbWUgdG8gaGF2ZSBwcmlvcml0eSBpbiBzb3J0aW5nIHRoZSBncmFwaCBsaW5rcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXA/OiBzdHJpbmdcblxuICAvKiogRm9yY2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkMy1mb3JjZWAgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzICovXG4gIEBJbnB1dCgpIGZvcmNlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3NcblxuICAvKiogRGFyZ2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkYWdyZWpzYCBwYWNrYWdlXG4gICAqIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYWdyZWpzL2RhZ3JlL3dpa2kjY29uZmlndXJpbmctdGhlLWxheW91dCAqL1xuICBASW5wdXQoKSBkYWdyZUxheW91dFNldHRpbmdzPzoge1xuICAgIHJhbmtkaXI6IHN0cmluZztcbiAgICByYW5rZXI6IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH1cblxuICAvKiogRUxLIGxheW91dCBvcHRpb25zLCBzZWUgdGhlIGBlbGtqc2AgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20va2llbGVyL2Vsa2pzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGN1c3RvbSBsYXlvdXQgb3B0aW9uIGZvciBlYWNoIG5vZGUgZ3JvdXAsIHlvdSBjYW4gcHJvdmlkZSBhbiBhY2Nlc3NvciBmdW5jdGlvbiB0aGF0XG4gICAqIHJlY2VpdmVzIGdyb3VwIG5hbWUgKCdyb290JyBmb3IgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogbGF5b3V0IG9wdGlvbnMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa1NldHRpbmdzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsIHN0cmluZz4gfCB1bmRlZmluZWRcblxuICAvKiogQXJyYXkgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGRlZmluZSBuZXN0ZWQgbm9kZSBncm91cHMgZm9yIHRoZSBFTEsgTGF5ZXJlZCBsYXlvdXQuXG4gICAqIEUuZy46IGBbbiA9PiBuLmdyb3VwLCBuID0+IG4uc3ViR3JvdXBdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrTm9kZUdyb3Vwcz86IFN0cmluZ0FjY2Vzc29yPE4+W11cblxuICAvKiogTGluayB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvdCBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxpbmtXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIHN0eWxlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhMaW5rU3R5bGUuU29saWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHlsZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtTdHlsZSwgTD5cblxuICAvKiogTGluayBiYW5kIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0JhbmRXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGFycm93IGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rQXJyb3c/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rQXJyb3dTdHlsZSwgTD4gfCB1bmRlZmluZWRcblxuICAvKiogTGluayBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHJva2U/OiBDb2xvckFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Rpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZmxvdyBhbmltYXRpb24gYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3c/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBmbG93ICh0cmFmZmljKSBjaXJjbGVzLiBEZWZhdWx0OiBgMjAwMDBgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93QW5pbUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIFNpemUgb2YgdGhlIG1vdmluZyBwYXJ0aWNsZXMgdGhhdCByZXByZXNlbnQgdHJhZmZpYyBmbG93LiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3dQYXJ0aWNsZVNpemU/OiBudW1iZXJcblxuICAvKiogTGluayBsYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoQ2lyY2xlTGFiZWwsIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNoaWZ0IGxhYmVsIGFsb25nIHRoZSBsaW5rIGNlbnRlciBhIGxpdHRsZSBiaXQgdG8gYXZvaWQgb3ZlcmxhcCB3aXRoIHRoZSBsaW5rIGFycm93LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIFNwYWNpbmcgYmV0d2VlbiBuZWlnaGJvcmluZyBsaW5rcy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxpbmtOZWlnaGJvclNwYWNpbmc/OiBudW1iZXJcblxuICAvKiogU2V0IHNlbGVjdGVkIGxpbmsgYnkgaXRzIHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRMaW5rSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogTm9kZSBzaXplIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMzBgICovXG4gIEBJbnB1dCgpIG5vZGVTaXplPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3Ryb2tlIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgM2AgKi9cbiAgQElucHV0KCkgbm9kZVN0cm9rZVdpZHRoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc2hhcGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBHcmFwaE5vZGVTaGFwZS5DaXJjbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTaGFwZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaE5vZGVTaGFwZSB8IHN0cmluZywgTj5cblxuICAvKiogTm9kZSBnYXVnZSBvdXRsaW5lIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlIGluIHRoZSByYW5nZSBbMCwxMDBdLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbm9kZUdhdWdlVmFsdWU/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBnYXVnZSBvdXRsaW5lIGZpbGwgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUZpbGw/OiBDb2xvckFjY2Vzc29yPE4+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgbm9kZSBnYXVnZSBvdXRsaW5lLiBEZWZhdWx0OiBgMTUwMGAgKi9cbiAgQElucHV0KCkgbm9kZUdhdWdlQW5pbUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmljb25gICovXG4gIEBJbnB1dCgpIG5vZGVJY29uPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBjZW50cmFsIGljb24gc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUljb25TaXplPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUubGFiZWxgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIERlZmluZXMgd2hldGhlciB0byB0cmltIHRoZSBub2RlIGxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgdHJpbW1pbmcgbW9kZS4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbU1vZGU/OiBHZW5lcmljQWNjZXNzb3I8VHJpbU1vZGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgbWF4aW11bSBhbGxvd2VkIHRleHQgbGVuZ3RoIGFib3ZlIHdoaWNoIHRoZSBsYWJlbCB3aWxsIGJlIHRyaW1tZWQuIERlZmF1bHQ6IGAxNWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbUxlbmd0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZTogRGVmYXVsdDogYCcnYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBzdWItbGFiZWxzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW0/OiBCb29sZWFuQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgdHJpbW1pbmcgbW9kZS4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsVHJpbU1vZGU/OiBHZW5lcmljQWNjZXNzb3I8VHJpbU1vZGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBjaXJjdWxhciBzaWRlIGxhYmVscyBhY2Nlc3NvciBmdW5jdGlvbi4gVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gYXJyYXkgb2YgR3JhcGhDaXJjbGVMYWJlbCBvYmplY3RzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlU2lkZUxhYmVscz86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaENpcmNsZUxhYmVsW10sIE4+XG5cbiAgLyoqIE5vZGUgYm90dG9tIGljb24gYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVCb3R0b21JY29uPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBkaXNhYmxlZCBzdGF0ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBub2RlRGlzYWJsZWQ/OiBCb29sZWFuQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmZpbGxgICovXG4gIEBJbnB1dCgpIG5vZGVGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5zdHJva2VgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2U/OiBDb2xvckFjY2Vzc29yPE4+XG5cbiAgLyoqIFNvcnRpbmcgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIG5vZGUgcGxhY2VtZW50LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlU29ydD86ICgoYTogTiwgYjogTikgPT4gbnVtYmVyKVxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHBvc2l0aW9uIGZvciBlbnRlcmluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFbnRlclBvc2l0aW9uPzogR2VuZXJpY0FjY2Vzc29yPFtudW1iZXIsIG51bWJlcl0sIE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGluaXRpYWwgc2NhbGUgZm9yIGVudGVyaW5nIG5vZGVzIGluIHRoZSByYW5nZSBbMCwxXS4gRGVmYXVsdDogYDAuNzVgICovXG4gIEBJbnB1dCgpIG5vZGVFbnRlclNjYWxlPzogTnVtZXJpY0FjY2Vzc29yPE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGRlc3RpbmF0aW9uIHBvc2l0aW9uIGZvciBleGl0aW5nIG5vZGVzIGFzIFt4LCB5XS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBzY2FsZSBmb3IgZXhpdGluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRXhpdFNjYWxlPzogTnVtZXJpY0FjY2Vzc29yPE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogUGFuZWxzIGNvbmZpZ3VyYXRpb24uIEFuIGFycmF5IG9mIGBHcmFwaFBhbmVsQ29uZmlnYCBvYmplY3RzLiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIHBhbmVscz86IEdyYXBoUGFuZWxDb25maWdbXSB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkYXRhOiB7IG5vZGVzOiBOW107IGxpbmtzPzogTFtdIH1cblxuICBjb21wb25lbnQ6IEdyYXBoPE4sIEw+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEdyYXBoPE4sIEw+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgZGlzYWJsZURyYWcsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBvblpvb20sIGxheW91dFR5cGUsIGxheW91dEF1dG9maXQsIGxheW91dEF1dG9maXRUb2xlcmFuY2UsIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlLCBsYXlvdXROb2RlR3JvdXAsIGxheW91dEdyb3VwT3JkZXIsIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4sIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwLCBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdywgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmcsIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cCwgZm9yY2VMYXlvdXRTZXR0aW5ncywgZGFncmVMYXlvdXRTZXR0aW5ncywgbGF5b3V0RWxrU2V0dGluZ3MsIGxheW91dEVsa05vZGVHcm91cHMsIGxpbmtXaWR0aCwgbGlua1N0eWxlLCBsaW5rQmFuZFdpZHRoLCBsaW5rQXJyb3csIGxpbmtTdHJva2UsIGxpbmtEaXNhYmxlZCwgbGlua0Zsb3csIGxpbmtGbG93QW5pbUR1cmF0aW9uLCBsaW5rRmxvd1BhcnRpY2xlU2l6ZSwgbGlua0xhYmVsLCBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXIsIGxpbmtOZWlnaGJvclNwYWNpbmcsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgc2VsZWN0ZWROb2RlSWQsIHBhbmVscyB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgZGlzYWJsZURyYWcsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBvblpvb20sIGxheW91dFR5cGUsIGxheW91dEF1dG9maXQsIGxheW91dEF1dG9maXRUb2xlcmFuY2UsIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlLCBsYXlvdXROb2RlR3JvdXAsIGxheW91dEdyb3VwT3JkZXIsIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4sIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwLCBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdywgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmcsIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cCwgZm9yY2VMYXlvdXRTZXR0aW5ncywgZGFncmVMYXlvdXRTZXR0aW5ncywgbGF5b3V0RWxrU2V0dGluZ3MsIGxheW91dEVsa05vZGVHcm91cHMsIGxpbmtXaWR0aCwgbGlua1N0eWxlLCBsaW5rQmFuZFdpZHRoLCBsaW5rQXJyb3csIGxpbmtTdHJva2UsIGxpbmtEaXNhYmxlZCwgbGlua0Zsb3csIGxpbmtGbG93QW5pbUR1cmF0aW9uLCBsaW5rRmxvd1BhcnRpY2xlU2l6ZSwgbGlua0xhYmVsLCBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXIsIGxpbmtOZWlnaGJvclNwYWNpbmcsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgc2VsZWN0ZWROb2RlSWQsIHBhbmVscyB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBd0JOLE1BQU0sWUFBWSxDQUFBO0FBR25CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTBSNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVB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QUExQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyYXBoLFxuICBHcmFwaENvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgR3JhcGhJbnB1dE5vZGUsXG4gIEdyYXBoSW5wdXRMaW5rLFxuICBWaXNFdmVudFR5cGUsXG4gIFZpc0V2ZW50Q2FsbGJhY2ssXG4gIEdyYXBoTGF5b3V0VHlwZSxcbiAgU3RyaW5nQWNjZXNzb3IsXG4gIEdyYXBoRm9yY2VMYXlvdXRTZXR0aW5ncyxcbiAgR3JhcGhEYWdyZUxheW91dFNldHRpbmcsXG4gIEdlbmVyaWNBY2Nlc3NvcixcbiAgR3JhcGhFbGtMYXlvdXRTZXR0aW5ncyxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBHcmFwaExpbmtTdHlsZSxcbiAgR3JhcGhMaW5rQXJyb3dTdHlsZSxcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQm9vbGVhbkFjY2Vzc29yLFxuICBHcmFwaENpcmNsZUxhYmVsLFxuICBHcmFwaE5vZGVTaGFwZSxcbiAgVHJpbU1vZGUsXG4gIEdyYXBoUGFuZWxDb25maWcsXG4gIEdyYXBoTm9kZSxcbiAgR3JhcGhMaW5rLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRDNEcmFnRXZlbnQgfSBmcm9tICdkMy1kcmFnJ1xuaW1wb3J0IHsgRDNab29tRXZlbnQgfSBmcm9tICdkMy16b29tJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1ncmFwaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzQ29yZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0dyYXBoQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNHcmFwaENvbXBvbmVudDxOIGV4dGVuZHMgR3JhcGhJbnB1dE5vZGUsIEwgZXh0ZW5kcyBHcmFwaElucHV0TGluaz4gaW1wbGVtZW50cyBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBab29tIGxldmVsIGNvbnN0cmFpbnRzLiBEZWZhdWx0OiBbMC4zNSwgMS4yNV0gKi9cbiAgQElucHV0KCkgem9vbVNjYWxlRXh0ZW50PzogW251bWJlciwgbnVtYmVyXVxuXG4gIC8qKiBEaXNhYmxlIHpvb21pbmcuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVpvb20/OiBib29sZWFuXG5cbiAgLyoqIERpc2FibGUgbm9kZSBkcmFnZ2luZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlRHJhZz86IGJvb2xlYW5cblxuICAvKiogSW50ZXJ2YWwgdG8gcmUtcmVuZGVyIHRoZSBncmFwaCB3aGVuIHpvb21pbmcuIERlZmF1bHQ6IGAxMDBgICovXG4gIEBJbnB1dCgpIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkPzogbnVtYmVyXG5cbiAgLyoqIFR5cGUgb2YgdGhlIGdyYXBoIGxheW91dC4gRGVmYXVsdDogYEdyYXBoTGF5b3V0VHlwZS5Gb3JjZWAgKi9cbiAgQElucHV0KCkgbGF5b3V0VHlwZT86IEdyYXBoTGF5b3V0VHlwZSB8IHN0cmluZ1xuXG4gIC8qKiBGaXQgdGhlIGdyYXBoIHRvIGNvbnRhaW5lciBvbiBkYXRhIG9yIGNvbmZpZyB1cGRhdGVzLCBvciBvbiBjb250YWluZXIgcmVzaXplLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGF5b3V0QXV0b2ZpdD86IGJvb2xlYW5cblxuICAvKiogVG9sZXJhbmNlIGNvbnN0YW50IGRlZmluaW5nIHdoZXRoZXIgdGhlIGdyYXBoIHNob3VsZCBiZSBmaXR0ZWQgdG8gY29udGFpbmVyXG4gICAqIChvbiBkYXRhIG9yIGNvbmZpZyB1cGRhdGUsIG9yIGNvbnRhaW5lciByZXNpemUpIGFmdGVyIGEgem9vbSAvIHBhbiBpbnRlcmFjdGlvbiBvciBub3QuXG4gICAqIGAwYCDigJQgU3RvcCBmaXR0aW5nIGFmdGVyIGFueSBwYW4gb3Igem9vbVxuICAgKiBgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZYCDigJQgQWx3YXlzIGZpdFxuICAgKiBEZWZhdWx0OiBgOC4wYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0VG9sZXJhbmNlPzogbnVtYmVyXG5cbiAgLyoqIFBsYWNlIG5vbi1jb25uZWN0ZWQgbm9kZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZ3JhcGguIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGU/OiBib29sZWFuXG5cbiAgLyoqIE5vZGUgZ3JvdXAgYWNjZXNzb3IgZnVuY3Rpb24uXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgLCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgYW5kIGBHcmFwaExheW91dFR5cGUuQ29uY2VudHJpY2AgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5ncm91cGAgKi9cbiAgQElucHV0KCkgbGF5b3V0Tm9kZUdyb3VwPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogT3JkZXIgb2YgdGhlIGxheW91dCBncm91cHMuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgLCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgYW5kIGBHcmFwaExheW91dFR5cGUuQ29uY2VudHJpY2AgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYFtdYCAqL1xuICBASW5wdXQoKSBsYXlvdXRHcm91cE9yZGVyPzogc3RyaW5nW11cblxuICAvKiogU2V0cyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIGEgc3ViLWdyb3VwIGFmdGVyIHdoaWNoIHRoZXknbGwgY29udGludWUgb24gdGhlIG5leHQgY29sdW1uIChvciByb3cgaWYgYGxheW91dFR5cGVgIGlzXG4gICAqIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCkuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYDZgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4/OiBudW1iZXJcblxuICAvKiogTm9kZSBzdWItZ3JvdXAgYWNjZXNzb3IgZnVuY3Rpb24uXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5zdWJncm91cGAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOdW1iZXIgb2Ygc3ViLWdyb3VwcyBwZXIgcm93IChvciBjb2x1bW4gaWYgYGxheW91dFR5cGVgIGlzIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCkgaW4gYSBncm91cC5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgMWAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxTdWJHcm91cHNQZXJSb3c/OiBudW1iZXJcblxuICAvKiogU3BhY2luZyBiZXR3ZWVuIGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZz86IG51bWJlclxuXG4gIC8qKiBTZXQgYSBncm91cCBieSBuYW1lIHRvIGhhdmUgcHJpb3JpdHkgaW4gc29ydGluZyB0aGUgZ3JhcGggbGlua3MuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwPzogc3RyaW5nXG5cbiAgLyoqIEZvcmNlIExheW91dCBzZXR0aW5ncywgc2VlIHRoZSBgZDMtZm9yY2VgIHBhY2thZ2UgZm9yIG1vcmUgZGV0YWlscyAqL1xuICBASW5wdXQoKSBmb3JjZUxheW91dFNldHRpbmdzPzogR3JhcGhGb3JjZUxheW91dFNldHRpbmdzPE4sIEw+XG5cbiAgLyoqIERhcmdlIExheW91dCBzZXR0aW5ncywgc2VlIHRoZSBgZGFncmVqc2AgcGFja2FnZVxuICAgKiBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vZGFncmVqcy9kYWdyZS93aWtpI2NvbmZpZ3VyaW5nLXRoZS1sYXlvdXQgKi9cbiAgQElucHV0KCkgZGFncmVMYXlvdXRTZXR0aW5ncz86IEdyYXBoRGFncmVMYXlvdXRTZXR0aW5nXG5cbiAgLyoqIEVMSyBsYXlvdXQgb3B0aW9ucywgc2VlIHRoZSBgZWxranNgIHBhY2thZ2UgZm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRodWIuY29tL2tpZWxlci9lbGtqcy5cbiAgICogSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBjdXN0b20gbGF5b3V0IG9wdGlvbiBmb3IgZWFjaCBub2RlIGdyb3VwLCB5b3UgY2FuIHByb3ZpZGUgYW4gYWNjZXNzb3IgZnVuY3Rpb24gdGhhdFxuICAgKiByZWNlaXZlcyBncm91cCBuYW1lICgncm9vdCcgZm9yIHRoZSB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbikgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nXG4gICAqIGxheW91dCBvcHRpb25zLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRFbGtTZXR0aW5ncz86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaEVsa0xheW91dFNldHRpbmdzLCBzdHJpbmc+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEFycmF5IG9mIGFjY2Vzc29yIGZ1bmN0aW9ucyB0byBkZWZpbmUgbmVzdGVkIG5vZGUgZ3JvdXBzIGZvciB0aGUgRUxLIExheWVyZWQgbGF5b3V0LlxuICAgKiBFLmcuOiBgW24gPT4gbi5ncm91cCwgbiA9PiBuLnN1Ykdyb3VwXWAuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa05vZGVHcm91cHM/OiBTdHJpbmdBY2Nlc3NvcjxOPltdXG5cbiAgLyoqIExpbmsgd2lkdGggYWNjZXNzb3IgZnVuY3Rpb24gb3QgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsaW5rV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8TD5cblxuICAvKiogTGluayBzdHlsZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYEdyYXBoTGlua1N0eWxlLlNvbGlkYCAqL1xuICBASW5wdXQoKSBsaW5rU3R5bGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rU3R5bGUsIEw+XG5cbiAgLyoqIExpbmsgYmFuZCB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIGxpbmtCYW5kV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8TD5cblxuICAvKiogTGluayBhcnJvdyBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua0Fycm93PzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoTGlua0Fycm93U3R5bGUgfCBzdHJpbmcgfCBib29sZWFuLCBMPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBMaW5rIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua1N0cm9rZT86IENvbG9yQWNjZXNzb3I8TD5cblxuICAvKiogTGluayBkaXNhYmxlZCBzdGF0ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsaW5rRGlzYWJsZWQ/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogTGluayBmbG93IGFuaW1hdGlvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsaW5rRmxvdz86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGZsb3cgKHRyYWZmaWMpIGNpcmNsZXMuIERlZmF1bHQ6IGAyMDAwMGAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3dBbmltRHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogU2l6ZSBvZiB0aGUgbW92aW5nIHBhcnRpY2xlcyB0aGF0IHJlcHJlc2VudCB0cmFmZmljIGZsb3cuIERlZmF1bHQ6IGAyYCAqL1xuICBASW5wdXQoKSBsaW5rRmxvd1BhcnRpY2xlU2l6ZT86IG51bWJlclxuXG4gIC8qKiBMaW5rIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rTGFiZWw/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbCwgTD4gfCB1bmRlZmluZWRcblxuICAvKiogU2hpZnQgbGFiZWwgYWxvbmcgdGhlIGxpbmsgY2VudGVyIGEgbGl0dGxlIGJpdCB0byBhdm9pZCBvdmVybGFwIHdpdGggdGhlIGxpbmsgYXJyb3cuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXI/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogU3BhY2luZyBiZXR3ZWVuIG5laWdoYm9yaW5nIGxpbmtzLiBEZWZhdWx0OiBgOGAgKi9cbiAgQElucHV0KCkgbGlua05laWdoYm9yU3BhY2luZz86IG51bWJlclxuXG4gIC8qKiBDdXJ2YXR1cmUgb2YgdGhlIGxpbmsuIFJlY29tbWVuZGVkIHZhbHVlIHJhbmdlOiBbMDoxLjVdLlxuICAgKiBgMGAgLSBzdHJhaWdodCBsaW5lLFxuICAgKiBgMWAgLSBuaWNlIGN1cnZhdHVyZSxcbiAgICogYDEuNWAgLSB2ZXJ5IGN1cnZlLlxuICAgKiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0N1cnZhdHVyZT86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBTZXQgc2VsZWN0ZWQgbGluayBieSBpdHMgdW5pcXVlIGlkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZExpbmtJZD86IG51bWJlciB8IHN0cmluZ1xuXG4gIC8qKiBOb2RlIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGAzMGAgKi9cbiAgQElucHV0KCkgbm9kZVNpemU/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2Ugd2lkdGggYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGAzYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlV2lkdGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzaGFwZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYEdyYXBoTm9kZVNoYXBlLkNpcmNsZWAgKi9cbiAgQElucHV0KCkgbm9kZVNoYXBlPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoTm9kZVNoYXBlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGdhdWdlIG91dGxpbmUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUgaW4gdGhlIHJhbmdlIFswLDEwMF0uIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VWYWx1ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGdhdWdlIG91dGxpbmUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUdhdWdlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBub2RlIGdhdWdlIG91dGxpbmUuIERlZmF1bHQ6IGAxNTAwYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VBbmltRHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogTm9kZSBjZW50cmFsIGljb24gYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuaWNvbmAgKi9cbiAgQElucHV0KCkgbm9kZUljb24/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBzaXplIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlSWNvblNpemU/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBsYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5sYWJlbGAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgbGFiZWxzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW0/OiBCb29sZWFuQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBsYWJlbCB0cmltbWluZyBtb2RlLiBEZWZhdWx0OiBgVHJpbU1vZGUuTWlkZGxlYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWxUcmltTW9kZT86IEdlbmVyaWNBY2Nlc3NvcjxUcmltTW9kZSB8IHN0cmluZywgTj5cblxuICAvKiogTm9kZSBsYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlOiBEZWZhdWx0OiBgJydgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIERlZmluZXMgd2hldGhlciB0byB0cmltIHRoZSBub2RlIHN1Yi1sYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCB0cmltbWluZyBtb2RlLiBEZWZhdWx0OiBgVHJpbU1vZGUuTWlkZGxlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTW9kZT86IEdlbmVyaWNBY2Nlc3NvcjxUcmltTW9kZSB8IHN0cmluZywgTj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgbWF4aW11bSBhbGxvd2VkIHRleHQgbGVuZ3RoIGFib3ZlIHdoaWNoIHRoZSBsYWJlbCB3aWxsIGJlIHRyaW1tZWQuIERlZmF1bHQ6IGAxNWAgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsVHJpbUxlbmd0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGNpcmN1bGFyIHNpZGUgbGFiZWxzIGFjY2Vzc29yIGZ1bmN0aW9uLiBUaGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBHcmFwaENpcmNsZUxhYmVsIG9iamVjdHMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVTaWRlTGFiZWxzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoQ2lyY2xlTGFiZWxbXSwgTj5cblxuICAvKiogTm9kZSBib3R0b20gaWNvbiBhY2Nlc3NvciBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUJvdHRvbUljb24/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGRpc2FibGVkIHN0YXRlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIG5vZGVEaXNhYmxlZD86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGZpbGwgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuZmlsbGAgKi9cbiAgQElucHV0KCkgbm9kZUZpbGw/OiBDb2xvckFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN0cm9rZWAgKi9cbiAgQElucHV0KCkgbm9kZVN0cm9rZT86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogU29ydGluZyBmdW5jdGlvbiB0byBkZXRlcm1pbmUgbm9kZSBwbGFjZW1lbnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVTb3J0PzogKChhOiBOLCBiOiBOKSA9PiBudW1iZXIpXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGluaXRpYWwgcG9zaXRpb24gZm9yIGVudGVyaW5nIG5vZGVzIGFzIFt4LCB5XS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyUG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBzY2FsZSBmb3IgZW50ZXJpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyU2NhbGU/OiBOdW1lcmljQWNjZXNzb3I8Tj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gcG9zaXRpb24gZm9yIGV4aXRpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRXhpdFBvc2l0aW9uPzogR2VuZXJpY0FjY2Vzc29yPFtudW1iZXIsIG51bWJlcl0sIE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGRlc3RpbmF0aW9uIHNjYWxlIGZvciBleGl0aW5nIG5vZGVzIGluIHRoZSByYW5nZSBbMCwxXS4gRGVmYXVsdDogYDAuNzVgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0U2NhbGU/OiBOdW1lcmljQWNjZXNzb3I8Tj4gfCB1bmRlZmluZWRcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGUgYnkgdW5pcXVlIGlkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZE5vZGVJZD86IG51bWJlciB8IHN0cmluZ1xuXG4gIC8qKiBQYW5lbHMgY29uZmlndXJhdGlvbi4gQW4gYXJyYXkgb2YgYEdyYXBoUGFuZWxDb25maWdgIG9iamVjdHMuIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgcGFuZWxzPzogR3JhcGhQYW5lbENvbmZpZ1tdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBzdGFydCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ1N0YXJ0PzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZz86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgZW5kIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnRW5kPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFpvb20gZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbT86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkKSA9PiB2b2lkXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBncmFwaCBsYXlvdXQgaXMgY2FsY3VsYXRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25MYXlvdXRDYWxjdWxhdGVkPzogKG46IEdyYXBoTm9kZTxOLCBMPltdLCBsaW5rczogR3JhcGhMaW5rPE4sIEw+W10pID0+IHZvaWRcbiAgQElucHV0KCkgZGF0YTogeyBub2RlczogTltdOyBsaW5rcz86IExbXSB9XG5cbiAgY29tcG9uZW50OiBHcmFwaDxOLCBMPiB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBHcmFwaDxOLCBMPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHpvb21TY2FsZUV4dGVudCwgZGlzYWJsZVpvb20sIGRpc2FibGVEcmFnLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGlua1dpZHRoLCBsaW5rU3R5bGUsIGxpbmtCYW5kV2lkdGgsIGxpbmtBcnJvdywgbGlua1N0cm9rZSwgbGlua0Rpc2FibGVkLCBsaW5rRmxvdywgbGlua0Zsb3dBbmltRHVyYXRpb24sIGxpbmtGbG93UGFydGljbGVTaXplLCBsaW5rTGFiZWwsIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlciwgbGlua05laWdoYm9yU3BhY2luZywgbGlua0N1cnZhdHVyZSwgc2VsZWN0ZWRMaW5rSWQsIG5vZGVTaXplLCBub2RlU3Ryb2tlV2lkdGgsIG5vZGVTaGFwZSwgbm9kZUdhdWdlVmFsdWUsIG5vZGVHYXVnZUZpbGwsIG5vZGVHYXVnZUFuaW1EdXJhdGlvbiwgbm9kZUljb24sIG5vZGVJY29uU2l6ZSwgbm9kZUxhYmVsLCBub2RlTGFiZWxUcmltLCBub2RlTGFiZWxUcmltTW9kZSwgbm9kZUxhYmVsVHJpbUxlbmd0aCwgbm9kZVN1YkxhYmVsLCBub2RlU3ViTGFiZWxUcmltLCBub2RlU3ViTGFiZWxUcmltTW9kZSwgbm9kZVN1YkxhYmVsVHJpbUxlbmd0aCwgbm9kZVNpZGVMYWJlbHMsIG5vZGVCb3R0b21JY29uLCBub2RlRGlzYWJsZWQsIG5vZGVGaWxsLCBub2RlU3Ryb2tlLCBub2RlU29ydCwgbm9kZUVudGVyUG9zaXRpb24sIG5vZGVFbnRlclNjYWxlLCBub2RlRXhpdFBvc2l0aW9uLCBub2RlRXhpdFNjYWxlLCBzZWxlY3RlZE5vZGVJZCwgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25MYXlvdXRDYWxjdWxhdGVkIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB6b29tU2NhbGVFeHRlbnQsIGRpc2FibGVab29tLCBkaXNhYmxlRHJhZywgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQsIGxheW91dFR5cGUsIGxheW91dEF1dG9maXQsIGxheW91dEF1dG9maXRUb2xlcmFuY2UsIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlLCBsYXlvdXROb2RlR3JvdXAsIGxheW91dEdyb3VwT3JkZXIsIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4sIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwLCBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdywgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmcsIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cCwgZm9yY2VMYXlvdXRTZXR0aW5ncywgZGFncmVMYXlvdXRTZXR0aW5ncywgbGF5b3V0RWxrU2V0dGluZ3MsIGxheW91dEVsa05vZGVHcm91cHMsIGxpbmtXaWR0aCwgbGlua1N0eWxlLCBsaW5rQmFuZFdpZHRoLCBsaW5rQXJyb3csIGxpbmtTdHJva2UsIGxpbmtEaXNhYmxlZCwgbGlua0Zsb3csIGxpbmtGbG93QW5pbUR1cmF0aW9uLCBsaW5rRmxvd1BhcnRpY2xlU2l6ZSwgbGlua0xhYmVsLCBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXIsIGxpbmtOZWlnaGJvclNwYWNpbmcsIGxpbmtDdXJ2YXR1cmUsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgc2VsZWN0ZWROb2RlSWQsIHBhbmVscywgb25Ob2RlRHJhZ1N0YXJ0LCBvbk5vZGVEcmFnLCBvbk5vZGVEcmFnRW5kLCBvblpvb20sIG9uTGF5b3V0Q2FsY3VsYXRlZCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
48
48
  }], attributes: [{
49
49
  type: Input
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQWtFLE1BQU0sWUFBWSxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLG1CQUFtQjtJQTREOUIsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3BJLE1BQU0sTUFBTSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUN0SSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBcUMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOztpSEE1RVUsbUJBQW1CO3FHQUFuQixtQkFBbUIsNFNBRm5CLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLENBQUMsK0NBRnJFLEVBQUU7NEZBSUQsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcscUJBQXFCLEVBQUUsQ0FBQztpQkFDaEY7OEJBR1UsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQWdCRyxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbmZpZ0ludGVyZmFjZSwgQ29udGFpbmVyQ29yZSwgQ29tcG9uZW50Q29yZSwgUG9zaXRpb24gfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy10b29sdGlwJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNHZW5lcmljQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzVG9vbHRpcENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIFRvb2x0aXBDb25maWdJbnRlcmZhY2UsIEFmdGVyVmlld0luaXQge1xuICAvKiogQW4gYXJyYXkgb2YgdmlzdWFsaXphdGlvbiBjb21wb25lbnRzIHRvIGludGVyYWN0IHdpdGguIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgY29tcG9uZW50cz86IENvbXBvbmVudENvcmU8dW5rbm93bj5bXVxuXG4gIC8qKiBDb250YWluZXIgdG8gd2hlcmUgdGhlIFRvb2x0aXAgY29tcG9uZW50IHNob3VsZCBiZSBpbnNlcnRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyPzogSFRNTEVsZW1lbnRcblxuICAvKiogSG9yaXpvbnRhbCBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAuIERlZmF1bHQ6IGBQb3NpdGlvbi5BdXRvYCAqL1xuICBASW5wdXQoKSBob3Jpem9udGFsUGxhY2VtZW50PzogUG9zaXRpb24gfCBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvKiogSG9yaXpvbnRhbCBzaGlmdCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHMuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBob3Jpem9udGFsU2hpZnQ/OiBudW1iZXJcblxuICAvKiogVmVydGljYWwgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwLiBEZWZhdWx0OiBgUG9zaXRpb24uVG9wYCAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFBsYWNlbWVudD86IFBvc2l0aW9uIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFZlcnRpY2FsIHNoaWZ0IG9mIHRoZSB0b29sdGlwIGluIHBpeGVscy4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIHZlcnRpY2FsU2hpZnQ/OiBudW1iZXJcblxuICAvKiogRGVmaW5lcyB0aGUgY29udGVudCBvZiB0aGUgdG9vbHRpcCBhbmQgaG92ZXJpbmcgb3ZlciB3aGljaCBlbGVtZW50cyBzaG91bGQgdHJpZ2dlciBpdC5cbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiAoZDogdW5rbm93bikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IChkOiBBcmVhRGF0dW1bXSkgPT4gYDxkaXY+JHtkLnZhbHVlLnRvU3RyaW5nKCl9PC9kaXY+XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIHRyaWdnZXJzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXTogKGRhdGE6IGFueSwgaTogbnVtYmVyLCBlbGVtZW50czogKEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudClbXSkgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuICB9XG5cbiAgLyoqIEN1c3RvbSBET00gYXR0cmlidXRlcyBmb3IgdGhlIHRvb2x0aXAuIFVzZWZ1bCB3aGVuIHlvdSBuZWVkIHRvIHJlZmVyIHRvIGEgc3BlY2lmaWMgdG9vbHRpcCBpbnN0YW5jZVxuICAgKiBieSB1c2luZyBhIENTUyBzZWxlY3Rvci4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgdmFsdWVcbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFwndHlwZSc6ICdhcmVhLXRvb2x0aXAnLFxuICAgKiBcXCd2YWx1ZSc6IDQyXG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG4gIH1cblxuXG4gIGNvbXBvbmVudDogVG9vbHRpcCB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBUb29sdGlwKHRoaXMuZ2V0Q29uZmlnKCkpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgaG9yaXpvbnRhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFNoaWZ0LCB2ZXJ0aWNhbFBsYWNlbWVudCwgdmVydGljYWxTaGlmdCwgdHJpZ2dlcnMsIGF0dHJpYnV0ZXMgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgaG9yaXpvbnRhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFNoaWZ0LCB2ZXJ0aWNhbFBsYWNlbWVudCwgdmVydGljYWxTaGlmdCwgdHJpZ2dlcnMsIGF0dHJpYnV0ZXMgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlKVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQWtFLE1BQU0sWUFBWSxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLG1CQUFtQjtJQTREOUIsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3BJLE1BQU0sTUFBTSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUN0SSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBcUMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOztpSEE1RVUsbUJBQW1CO3FHQUFuQixtQkFBbUIsNFNBRm5CLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLENBQUMsK0NBRnJFLEVBQUU7NEZBSUQsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcscUJBQXFCLEVBQUUsQ0FBQztpQkFDaEY7OEJBR1UsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQWdCRyxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbmZpZ0ludGVyZmFjZSwgQ29udGFpbmVyQ29yZSwgQ29tcG9uZW50Q29yZSwgUG9zaXRpb24gfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy10b29sdGlwJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNHZW5lcmljQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzVG9vbHRpcENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIFRvb2x0aXBDb25maWdJbnRlcmZhY2UsIEFmdGVyVmlld0luaXQge1xuICAvKiogQW4gYXJyYXkgb2YgdmlzdWFsaXphdGlvbiBjb21wb25lbnRzIHRvIGludGVyYWN0IHdpdGguIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgY29tcG9uZW50cz86IENvbXBvbmVudENvcmU8dW5rbm93bj5bXVxuXG4gIC8qKiBDb250YWluZXIgdG8gd2hlcmUgdGhlIFRvb2x0aXAgY29tcG9uZW50IHNob3VsZCBiZSBpbnNlcnRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyPzogSFRNTEVsZW1lbnRcblxuICAvKiogSG9yaXpvbnRhbCBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAuIERlZmF1bHQ6IGBQb3NpdGlvbi5BdXRvYCAqL1xuICBASW5wdXQoKSBob3Jpem9udGFsUGxhY2VtZW50PzogUG9zaXRpb24gfCBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvKiogSG9yaXpvbnRhbCBzaGlmdCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHMuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBob3Jpem9udGFsU2hpZnQ/OiBudW1iZXJcblxuICAvKiogVmVydGljYWwgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwLiBEZWZhdWx0OiBgUG9zaXRpb24uVG9wYCAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFBsYWNlbWVudD86IFBvc2l0aW9uIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFZlcnRpY2FsIHNoaWZ0IG9mIHRoZSB0b29sdGlwIGluIHBpeGVscy4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIHZlcnRpY2FsU2hpZnQ/OiBudW1iZXJcblxuICAvKiogRGVmaW5lcyB0aGUgY29udGVudCBvZiB0aGUgdG9vbHRpcCBhbmQgaG92ZXJpbmcgb3ZlciB3aGljaCBlbGVtZW50cyBzaG91bGQgdHJpZ2dlciBpdC5cbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiAoZDogdW5rbm93bikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IChkOiBBcmVhRGF0dW1bXSkgPT4gYDxkaXY+JHtkLnZhbHVlLnRvU3RyaW5nKCl9PC9kaXY+XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIHRyaWdnZXJzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXTogKChkYXRhOiBhbnksIGk6IG51bWJlciwgZWxlbWVudHM6IChIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpW10pID0+IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCkgfCB1bmRlZmluZWQgfCBudWxsO1xuICB9XG5cbiAgLyoqIEN1c3RvbSBET00gYXR0cmlidXRlcyBmb3IgdGhlIHRvb2x0aXAuIFVzZWZ1bCB3aGVuIHlvdSBuZWVkIHRvIHJlZmVyIHRvIGEgc3BlY2lmaWMgdG9vbHRpcCBpbnN0YW5jZVxuICAgKiBieSB1c2luZyBhIENTUyBzZWxlY3Rvci4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgdmFsdWVcbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFwndHlwZSc6ICdhcmVhLXRvb2x0aXAnLFxuICAgKiBcXCd2YWx1ZSc6IDQyXG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG4gIH1cblxuXG4gIGNvbXBvbmVudDogVG9vbHRpcCB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBUb29sdGlwKHRoaXMuZ2V0Q29uZmlnKCkpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgaG9yaXpvbnRhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFNoaWZ0LCB2ZXJ0aWNhbFBsYWNlbWVudCwgdmVydGljYWxTaGlmdCwgdHJpZ2dlcnMsIGF0dHJpYnV0ZXMgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgaG9yaXpvbnRhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFNoaWZ0LCB2ZXJ0aWNhbFBsYWNlbWVudCwgdmVydGljYWxTaGlmdCwgdHJpZ2dlcnMsIGF0dHJpYnV0ZXMgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlKVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
@@ -764,8 +764,8 @@ class VisCrosshairComponent {
764
764
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
765
765
  }
766
766
  getConfig() {
767
- const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles } = this;
768
- const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles };
767
+ const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles } = this;
768
+ const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles };
769
769
  const keys = Object.keys(config);
770
770
  keys.forEach(key => { if (config[key] === undefined)
771
771
  delete config[key]; });
@@ -773,7 +773,7 @@ class VisCrosshairComponent {
773
773
  }
774
774
  }
775
775
  VisCrosshairComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
776
- VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
776
+ VisCrosshairComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisCrosshairComponent, selector: "vis-crosshair", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", strokeColor: "strokeColor", strokeWidth: "strokeWidth", yStacked: "yStacked", baseline: "baseline", tooltip: "tooltip", template: "template", hideWhenFarFromPointer: "hideWhenFarFromPointer", hideWhenFarFromPointerDistance: "hideWhenFarFromPointerDistance", snapToData: "snapToData", getCircles: "getCircles", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
777
777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisCrosshairComponent, decorators: [{
778
778
  type: Component,
779
779
  args: [{
@@ -802,6 +802,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
802
802
  type: Input
803
803
  }], excludeFromDomainCalculation: [{
804
804
  type: Input
805
+ }], strokeColor: [{
806
+ type: Input
807
+ }], strokeWidth: [{
808
+ type: Input
805
809
  }], yStacked: [{
806
810
  type: Input
807
811
  }], baseline: [{
@@ -1030,8 +1034,8 @@ class VisGraphComponent {
1030
1034
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
1031
1035
  }
1032
1036
  getConfig() {
1033
- const { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, onZoom, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels } = this;
1034
- const config = { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, onZoom, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels };
1037
+ const { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated } = this;
1038
+ const config = { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, selectedNodeId, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated };
1035
1039
  const keys = Object.keys(config);
1036
1040
  keys.forEach(key => { if (config[key] === undefined)
1037
1041
  delete config[key]; });
@@ -1039,7 +1043,7 @@ class VisGraphComponent {
1039
1043
  }
1040
1044
  }
1041
1045
  VisGraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1042
- VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", disableDrag: "disableDrag", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", onZoom: "onZoom", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", selectedNodeId: "selectedNodeId", panels: "panels", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
1046
+ VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", disableDrag: "disableDrag", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", selectedNodeId: "selectedNodeId", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onLayoutCalculated: "onLayoutCalculated", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
1043
1047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, decorators: [{
1044
1048
  type: Component,
1045
1049
  args: [{
@@ -1062,8 +1066,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1062
1066
  type: Input
1063
1067
  }], zoomThrottledUpdateNodeThreshold: [{
1064
1068
  type: Input
1065
- }], onZoom: [{
1066
- type: Input
1067
1069
  }], layoutType: [{
1068
1070
  type: Input
1069
1071
  }], layoutAutofit: [{
@@ -1118,6 +1120,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1118
1120
  type: Input
1119
1121
  }], linkNeighborSpacing: [{
1120
1122
  type: Input
1123
+ }], linkCurvature: [{
1124
+ type: Input
1121
1125
  }], selectedLinkId: [{
1122
1126
  type: Input
1123
1127
  }], nodeSize: [{
@@ -1176,6 +1180,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1176
1180
  type: Input
1177
1181
  }], panels: [{
1178
1182
  type: Input
1183
+ }], onNodeDragStart: [{
1184
+ type: Input
1185
+ }], onNodeDrag: [{
1186
+ type: Input
1187
+ }], onNodeDragEnd: [{
1188
+ type: Input
1189
+ }], onZoom: [{
1190
+ type: Input
1191
+ }], onLayoutCalculated: [{
1192
+ type: Input
1179
1193
  }], data: [{
1180
1194
  type: Input
1181
1195
  }] } });