@unovis/angular 1.4.4 → 1.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/bundles/unovis-angular.umd.js +30 -6
- package/dist/lib/bundles/unovis-angular.umd.js.map +1 -1
- package/dist/lib/components/graph/graph.component.d.ts +32 -4
- package/dist/lib/containers/single-container/single-container.component.d.ts +17 -4
- package/dist/lib/containers/xy-container/xy-container.component.d.ts +10 -2
- package/dist/lib/esm2015/components/graph/graph.component.js +24 -4
- package/dist/lib/esm2015/containers/single-container/single-container.component.js +8 -4
- package/dist/lib/esm2015/containers/xy-container/xy-container.component.js +1 -1
- package/dist/lib/fesm2015/unovis-angular.js +30 -6
- package/dist/lib/fesm2015/unovis-angular.js.map +1 -1
- package/dist/lib/package.json +2 -2
- package/package.json +2 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AfterViewInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphNodeShape, TrimMode,
|
|
2
|
+
import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphNodeShape, TrimMode, GraphNode, GraphNodeSelectionHighlightMode, GraphPanelConfig, GraphLink } from '@unovis/ts';
|
|
3
|
+
import { Selection } from 'd3-selection';
|
|
3
4
|
import { D3DragEvent } from 'd3-drag';
|
|
4
|
-
import { D3ZoomEvent } from 'd3-zoom';
|
|
5
|
+
import { D3ZoomEvent, ZoomTransform } from 'd3-zoom';
|
|
5
6
|
import { D3BrushEvent } from 'd3-brush';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class VisGraphComponent<N extends GraphInputNode, L extends GraphInputLink> implements GraphConfigInterface<N, L>, AfterViewInit {
|
|
@@ -56,6 +57,10 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
56
57
|
zoomScaleExtent?: [number, number];
|
|
57
58
|
/** Disable zooming. Default: `false` */
|
|
58
59
|
disableZoom?: boolean;
|
|
60
|
+
/** Custom Zoom event filter to better control which actions should trigger zooming.
|
|
61
|
+
* Learn more: https://d3js.org/d3-zoom#zoom_filter.
|
|
62
|
+
* Default: `undefined` */
|
|
63
|
+
zoomEventFilter?: (event: PointerEvent) => boolean;
|
|
59
64
|
/** Disable node dragging. Default: `false` */
|
|
60
65
|
disableDrag?: boolean;
|
|
61
66
|
/** Disable brush for multiple node selection. Default: `false` */
|
|
@@ -201,6 +206,23 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
201
206
|
nodeExitPosition?: GenericAccessor<[number, number], N> | undefined;
|
|
202
207
|
/** Specify the destination scale for exiting nodes in the range [0,1]. Default: `0.75` */
|
|
203
208
|
nodeExitScale?: NumericAccessor<N> | undefined;
|
|
209
|
+
/** Custom "enter" function for node rendering. Default: `undefined` */
|
|
210
|
+
nodeEnterCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void;
|
|
211
|
+
/** Custom "update" function for node rendering. Default: `undefined` */
|
|
212
|
+
nodeUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void;
|
|
213
|
+
/** Custom partial "update" function for node rendering which will be triggered after the following events:
|
|
214
|
+
* - Full node update (`nodeUpdateCustomRenderFunction`);
|
|
215
|
+
* - Background click;
|
|
216
|
+
* - Node and Link mouseover and mouseout;
|
|
217
|
+
* - Node brushing,
|
|
218
|
+
* Default: `undefined` */
|
|
219
|
+
nodePartialUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void;
|
|
220
|
+
/** Custom "exit" function for node rendering. Default: `undefined` */
|
|
221
|
+
nodeExitCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void;
|
|
222
|
+
/** Custom render function that will be called while zooming / panning the graph. Default: `undefined` */
|
|
223
|
+
nodeOnZoomCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, zoomLevel: number) => void;
|
|
224
|
+
/** Define the mode for highlighting selected nodes in the graph. Default: `GraphNodeSelectionHighlightMode.GreyoutNonConnected` */
|
|
225
|
+
nodeSelectionHighlightMode?: GraphNodeSelectionHighlightMode;
|
|
204
226
|
/** Set selected node by unique id. Default: `undefined` */
|
|
205
227
|
selectedNodeId?: number | string;
|
|
206
228
|
/** Set selected nodes by unique id. Default: `undefined` */
|
|
@@ -214,13 +236,19 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
214
236
|
/** Graph node drag end callback function. Default: `undefined` */
|
|
215
237
|
onNodeDragEnd?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined;
|
|
216
238
|
/** Zoom event callback. Default: `undefined` */
|
|
217
|
-
onZoom?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined) => void;
|
|
239
|
+
onZoom?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void;
|
|
240
|
+
/** Zoom start event callback. Default: `undefined` */
|
|
241
|
+
onZoomStart?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void;
|
|
242
|
+
/** Zoom end event callback. Default: `undefined` */
|
|
243
|
+
onZoomEnd?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void;
|
|
218
244
|
/** Callback function to be called when the graph layout is calculated. Default: `undefined` */
|
|
219
245
|
onLayoutCalculated?: (n: GraphNode<N, L>[], links: GraphLink<N, L>[]) => void;
|
|
220
246
|
/** Graph node selection brush callback function. Default: `undefined` */
|
|
221
247
|
onNodeSelectionBrush?: (selectedNodes: GraphNode<N, L>[], event: D3BrushEvent<SVGGElement> | undefined) => void;
|
|
222
248
|
/** Graph multiple node drag callback function. Default: `undefined` */
|
|
223
249
|
onNodeSelectionDrag?: (selectedNodes: GraphNode<N, L>[], event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void;
|
|
250
|
+
/** Callback function to be called when the graph rendering is complete. Default: `undefined` */
|
|
251
|
+
onRenderComplete?: (g: Selection<SVGGElement, unknown, null, undefined>, nodes: GraphNode<N, L>[], links: GraphLink<N, L>[], config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number, width: number, height: number) => void;
|
|
224
252
|
data: {
|
|
225
253
|
nodes: N[];
|
|
226
254
|
links?: L[];
|
|
@@ -231,5 +259,5 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
|
|
|
231
259
|
ngOnChanges(changes: SimpleChanges): void;
|
|
232
260
|
private getConfig;
|
|
233
261
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisGraphComponent<any, any>, never>;
|
|
234
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "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"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "data": "data"; }, {}, never, never>;
|
|
262
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "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"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "data": "data"; }, {}, never, never>;
|
|
235
263
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ElementRef, AfterViewInit, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { ComponentCore, SingleContainer, SingleContainerConfigInterface, Spacing } from '@unovis/ts';
|
|
2
|
+
import { ComponentCore, SingleContainer, SingleContainerConfigInterface, Spacing, Sizing } from '@unovis/ts';
|
|
3
3
|
import { VisCoreComponent } from '../../core';
|
|
4
4
|
import { VisTooltipComponent } from '../../components/tooltip/tooltip.component';
|
|
5
5
|
import { VisAnnotationsComponent } from '../../components/annotations/annotations.component';
|
|
@@ -9,9 +9,17 @@ export declare class VisSingleContainerComponent<Data = unknown, C extends Compo
|
|
|
9
9
|
visComponent: VisCoreComponent;
|
|
10
10
|
tooltipComponent: VisTooltipComponent;
|
|
11
11
|
annotationsComponent: VisAnnotationsComponent;
|
|
12
|
-
/** Width in pixels
|
|
12
|
+
/** Width in pixels or in CSS units.
|
|
13
|
+
* Percentage units `"%"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`
|
|
14
|
+
* of the corresponding DOM element.
|
|
15
|
+
* Default: `undefined`
|
|
16
|
+
*/
|
|
13
17
|
width?: number;
|
|
14
|
-
/** Height in pixels
|
|
18
|
+
/** Height in pixels or in CSS units.
|
|
19
|
+
* Percentage units `"%"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`
|
|
20
|
+
* of the corresponding DOM element.
|
|
21
|
+
* Default: `undefined`
|
|
22
|
+
*/
|
|
15
23
|
height?: number;
|
|
16
24
|
/** Margins. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */
|
|
17
25
|
margin?: Spacing;
|
|
@@ -21,6 +29,11 @@ export declare class VisSingleContainerComponent<Data = unknown, C extends Compo
|
|
|
21
29
|
* `aria-label` attribute to the div element containing your chart. Default: `undefined`.
|
|
22
30
|
*/
|
|
23
31
|
ariaLabel?: string | null | undefined;
|
|
32
|
+
/** Custom SVG defs available to all the components within the container. Default: `undefined`. */
|
|
33
|
+
svgDefs?: string;
|
|
34
|
+
/** Defines whether components should fit into the container or the container should expand to fit to the component's size.
|
|
35
|
+
* Works with a limited set of components. Default: `Sizing.Fit` */
|
|
36
|
+
sizing?: Sizing | string;
|
|
24
37
|
/** Data to be passed to the component. Default: `undefined`. */
|
|
25
38
|
data?: Data;
|
|
26
39
|
chart: SingleContainer<Data>;
|
|
@@ -29,5 +42,5 @@ export declare class VisSingleContainerComponent<Data = unknown, C extends Compo
|
|
|
29
42
|
getConfig(): SingleContainerConfigInterface<Data>;
|
|
30
43
|
ngOnDestroy(): void;
|
|
31
44
|
static ɵfac: i0.ɵɵFactoryDeclaration<VisSingleContainerComponent<any, any>, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VisSingleContainerComponent<any, any>, "vis-single-container", never, { "width": "width"; "height": "height"; "margin": "margin"; "duration": "duration"; "ariaLabel": "ariaLabel"; "data": "data"; }, {}, ["visComponent", "tooltipComponent", "annotationsComponent"], ["*"]>;
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisSingleContainerComponent<any, any>, "vis-single-container", never, { "width": "width"; "height": "height"; "margin": "margin"; "duration": "duration"; "ariaLabel": "ariaLabel"; "svgDefs": "svgDefs"; "sizing": "sizing"; "data": "data"; }, {}, ["visComponent", "tooltipComponent", "annotationsComponent"], ["*"]>;
|
|
33
46
|
}
|
|
@@ -9,9 +9,17 @@ export declare class VisXYContainerComponent<Datum> implements AfterViewInit, Af
|
|
|
9
9
|
visComponents: QueryList<VisXYComponent>;
|
|
10
10
|
tooltipComponent: VisTooltipComponent;
|
|
11
11
|
annotationsComponent: VisAnnotationsComponent;
|
|
12
|
-
/** Width in pixels
|
|
12
|
+
/** Width in pixels or in CSS units.
|
|
13
|
+
* Percentage units `"%"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`
|
|
14
|
+
* of the corresponding DOM element.
|
|
15
|
+
* Default: `undefined`
|
|
16
|
+
*/
|
|
13
17
|
width?: number;
|
|
14
|
-
/** Height in pixels
|
|
18
|
+
/** Height in pixels or in CSS units.
|
|
19
|
+
* Percentage units `"%"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`
|
|
20
|
+
* of the corresponding DOM element.
|
|
21
|
+
* Default: `undefined`
|
|
22
|
+
*/
|
|
15
23
|
height?: number;
|
|
16
24
|
/** Scale for X dimension, e.g. Scale.scaleLinear(). Default: `Scale.scaleLinear()` */
|
|
17
25
|
xScale?: ContinuousScale;
|
|
@@ -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, disableBrush, 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, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag } = this;
|
|
25
|
-
const config = { duration, events, attributes, zoomScaleExtent, disableZoom, disableDrag, disableBrush, 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, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag };
|
|
24
|
+
const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, 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, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete } = this;
|
|
25
|
+
const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, 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, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete };
|
|
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", disableBrush: "disableBrush", 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", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", 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", zoomEventFilter: "zoomEventFilter", disableDrag: "disableDrag", disableBrush: "disableBrush", 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", nodeEnterCustomRenderFunction: "nodeEnterCustomRenderFunction", nodeUpdateCustomRenderFunction: "nodeUpdateCustomRenderFunction", nodePartialUpdateCustomRenderFunction: "nodePartialUpdateCustomRenderFunction", nodeExitCustomRenderFunction: "nodeExitCustomRenderFunction", nodeOnZoomCustomRenderFunction: "nodeOnZoomCustomRenderFunction", nodeSelectionHighlightMode: "nodeSelectionHighlightMode", selectedNodeId: "selectedNodeId", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onZoomStart: "onZoomStart", onZoomEnd: "onZoomEnd", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", onRenderComplete: "onRenderComplete", 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: [{
|
|
@@ -49,6 +49,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
49
49
|
type: Input
|
|
50
50
|
}], disableZoom: [{
|
|
51
51
|
type: Input
|
|
52
|
+
}], zoomEventFilter: [{
|
|
53
|
+
type: Input
|
|
52
54
|
}], disableDrag: [{
|
|
53
55
|
type: Input
|
|
54
56
|
}], disableBrush: [{
|
|
@@ -165,6 +167,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
165
167
|
type: Input
|
|
166
168
|
}], nodeExitScale: [{
|
|
167
169
|
type: Input
|
|
170
|
+
}], nodeEnterCustomRenderFunction: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], nodeUpdateCustomRenderFunction: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], nodePartialUpdateCustomRenderFunction: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], nodeExitCustomRenderFunction: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], nodeOnZoomCustomRenderFunction: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], nodeSelectionHighlightMode: [{
|
|
181
|
+
type: Input
|
|
168
182
|
}], selectedNodeId: [{
|
|
169
183
|
type: Input
|
|
170
184
|
}], selectedNodeIds: [{
|
|
@@ -179,13 +193,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
179
193
|
type: Input
|
|
180
194
|
}], onZoom: [{
|
|
181
195
|
type: Input
|
|
196
|
+
}], onZoomStart: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], onZoomEnd: [{
|
|
199
|
+
type: Input
|
|
182
200
|
}], onLayoutCalculated: [{
|
|
183
201
|
type: Input
|
|
184
202
|
}], onNodeSelectionBrush: [{
|
|
185
203
|
type: Input
|
|
186
204
|
}], onNodeSelectionDrag: [{
|
|
187
205
|
type: Input
|
|
206
|
+
}], onRenderComplete: [{
|
|
207
|
+
type: Input
|
|
188
208
|
}], data: [{
|
|
189
209
|
type: Input
|
|
190
210
|
}] } });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBd0JOLE1BQU0sWUFBWSxDQUFBO0FBSW5CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQXNTNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFFLG9DQUFvQyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDL3VDLE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFFLG9DQUFvQyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQTtRQUNqdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXlDLENBQUE7UUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7K0dBNVRVLGlCQUFpQjttR0FBakIsaUJBQWlCLGdwRkFGakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQywrQ0FGaEUsRUFBRTs0RkFJRCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGdEQUFnRDtvQkFDaEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDO2lCQUMzRTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxnQ0FBZ0M7c0JBQXhDLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUtHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFLRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBS0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUtHLG9DQUFvQztzQkFBNUMsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQU1HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBHcmFwaCxcbiAgR3JhcGhDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIEdyYXBoSW5wdXROb2RlLFxuICBHcmFwaElucHV0TGluayxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBHcmFwaExheW91dFR5cGUsXG4gIFN0cmluZ0FjY2Vzc29yLFxuICBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3MsXG4gIEdyYXBoRGFncmVMYXlvdXRTZXR0aW5nLFxuICBHZW5lcmljQWNjZXNzb3IsXG4gIEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsXG4gIE51bWVyaWNBY2Nlc3NvcixcbiAgR3JhcGhMaW5rU3R5bGUsXG4gIEdyYXBoTGlua0Fycm93U3R5bGUsXG4gIENvbG9yQWNjZXNzb3IsXG4gIEJvb2xlYW5BY2Nlc3NvcixcbiAgR3JhcGhDaXJjbGVMYWJlbCxcbiAgR3JhcGhOb2RlU2hhcGUsXG4gIFRyaW1Nb2RlLFxuICBHcmFwaFBhbmVsQ29uZmlnLFxuICBHcmFwaE5vZGUsXG4gIEdyYXBoTGluayxcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IEQzRHJhZ0V2ZW50IH0gZnJvbSAnZDMtZHJhZydcbmltcG9ydCB7IEQzWm9vbUV2ZW50IH0gZnJvbSAnZDMtem9vbSdcbmltcG9ydCB7IEQzQnJ1c2hFdmVudCB9IGZyb20gJ2QzLWJydXNoJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1ncmFwaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzQ29yZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0dyYXBoQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNHcmFwaENvbXBvbmVudDxOIGV4dGVuZHMgR3JhcGhJbnB1dE5vZGUsIEwgZXh0ZW5kcyBHcmFwaElucHV0TGluaz4gaW1wbGVtZW50cyBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBab29tIGxldmVsIGNvbnN0cmFpbnRzLiBEZWZhdWx0OiBbMC4zNSwgMS4yNV0gKi9cbiAgQElucHV0KCkgem9vbVNjYWxlRXh0ZW50PzogW251bWJlciwgbnVtYmVyXVxuXG4gIC8qKiBEaXNhYmxlIHpvb21pbmcuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVpvb20/OiBib29sZWFuXG5cbiAgLyoqIERpc2FibGUgbm9kZSBkcmFnZ2luZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlRHJhZz86IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBicnVzaCBmb3IgbXVsdGlwbGUgbm9kZSBzZWxlY3Rpb24uIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJydXNoPzogYm9vbGVhblxuXG4gIC8qKiBJbnRlcnZhbCB0byByZS1yZW5kZXIgdGhlIGdyYXBoIHdoZW4gem9vbWluZy4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQ/OiBudW1iZXJcblxuICAvKiogVHlwZSBvZiB0aGUgZ3JhcGggbGF5b3V0LiBEZWZhdWx0OiBgR3JhcGhMYXlvdXRUeXBlLkZvcmNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRUeXBlPzogR3JhcGhMYXlvdXRUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEZpdCB0aGUgZ3JhcGggdG8gY29udGFpbmVyIG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZXMsIG9yIG9uIGNvbnRhaW5lciByZXNpemUuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0PzogYm9vbGVhblxuXG4gIC8qKiBUb2xlcmFuY2UgY29uc3RhbnQgZGVmaW5pbmcgd2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGZpdHRlZCB0byBjb250YWluZXJcbiAgICogKG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZSwgb3IgY29udGFpbmVyIHJlc2l6ZSkgYWZ0ZXIgYSB6b29tIC8gcGFuIGludGVyYWN0aW9uIG9yIG5vdC5cbiAgICogYDBgIOKAlCBTdG9wIGZpdHRpbmcgYWZ0ZXIgYW55IHBhbiBvciB6b29tXG4gICAqIGBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlgIOKAlCBBbHdheXMgZml0XG4gICAqIERlZmF1bHQ6IGA4LjBgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXRUb2xlcmFuY2U/OiBudW1iZXJcblxuICAvKiogUGxhY2Ugbm9uLWNvbm5lY3RlZCBub2RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmFwaC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb25Db25uZWN0ZWRBc2lkZT86IGJvb2xlYW5cblxuICAvKiogTm9kZSBncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb2RlR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBPcmRlciBvZiB0aGUgbGF5b3V0IGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIGxheW91dEdyb3VwT3JkZXI/OiBzdHJpbmdbXVxuXG4gIC8qKiBTZXRzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBzdWItZ3JvdXAgYWZ0ZXIgd2hpY2ggdGhleSdsbCBjb250aW51ZSBvbiB0aGUgbmV4dCBjb2x1bW4gKG9yIHJvdyBpZiBgbGF5b3V0VHlwZWAgaXNcbiAgICogYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKS5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgNmAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIHN1Yi1ncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN1Ymdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE51bWJlciBvZiBzdWItZ3JvdXBzIHBlciByb3cgKG9yIGNvbHVtbiBpZiBgbGF5b3V0VHlwZWAgaXMgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKSBpbiBhIGdyb3VwLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdz86IG51bWJlclxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIFNldCBhIGdyb3VwIGJ5IG5hbWUgdG8gaGF2ZSBwcmlvcml0eSBpbiBzb3J0aW5nIHRoZSBncmFwaCBsaW5rcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXA/OiBzdHJpbmdcblxuICAvKiogRm9yY2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkMy1mb3JjZWAgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzICovXG4gIEBJbnB1dCgpIGZvcmNlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3M8TiwgTD5cblxuICAvKiogRGFyZ2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkYWdyZWpzYCBwYWNrYWdlXG4gICAqIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYWdyZWpzL2RhZ3JlL3dpa2kjY29uZmlndXJpbmctdGhlLWxheW91dCAqL1xuICBASW5wdXQoKSBkYWdyZUxheW91dFNldHRpbmdzPzogR3JhcGhEYWdyZUxheW91dFNldHRpbmdcblxuICAvKiogRUxLIGxheW91dCBvcHRpb25zLCBzZWUgdGhlIGBlbGtqc2AgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20va2llbGVyL2Vsa2pzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGN1c3RvbSBsYXlvdXQgb3B0aW9uIGZvciBlYWNoIG5vZGUgZ3JvdXAsIHlvdSBjYW4gcHJvdmlkZSBhbiBhY2Nlc3NvciBmdW5jdGlvbiB0aGF0XG4gICAqIHJlY2VpdmVzIGdyb3VwIG5hbWUgKCdyb290JyBmb3IgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogbGF5b3V0IG9wdGlvbnMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa1NldHRpbmdzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsIHN0cmluZz4gfCB1bmRlZmluZWRcblxuICAvKiogQXJyYXkgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGRlZmluZSBuZXN0ZWQgbm9kZSBncm91cHMgZm9yIHRoZSBFTEsgTGF5ZXJlZCBsYXlvdXQuXG4gICAqIEUuZy46IGBbbiA9PiBuLmdyb3VwLCBuID0+IG4uc3ViR3JvdXBdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrTm9kZUdyb3Vwcz86IFN0cmluZ0FjY2Vzc29yPE4+W11cblxuICAvKiogTGluayB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvdCBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxpbmtXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIHN0eWxlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhMaW5rU3R5bGUuU29saWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHlsZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtTdHlsZSwgTD5cblxuICAvKiogTGluayBiYW5kIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0JhbmRXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGFycm93IGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rQXJyb3c/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rQXJyb3dTdHlsZSB8IHN0cmluZyB8IGJvb2xlYW4sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIExpbmsgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGRpc2FibGVkIHN0YXRlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtEaXNhYmxlZD86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGZsb3cgYW5pbWF0aW9uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93PzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZmxvdyAodHJhZmZpYykgY2lyY2xlcy4gRGVmYXVsdDogYDIwMDAwYCAqL1xuICBASW5wdXQoKSBsaW5rRmxvd0FuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBTaXplIG9mIHRoZSBtb3ZpbmcgcGFydGljbGVzIHRoYXQgcmVwcmVzZW50IHRyYWZmaWMgZmxvdy4gRGVmYXVsdDogYDJgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93UGFydGljbGVTaXplPzogbnVtYmVyXG5cbiAgLyoqIExpbmsgbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbD86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaENpcmNsZUxhYmVsLCBMPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTaGlmdCBsYWJlbCBhbG9uZyB0aGUgbGluayBjZW50ZXIgYSBsaXR0bGUgYml0IHRvIGF2b2lkIG92ZXJsYXAgd2l0aCB0aGUgbGluayBhcnJvdy4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlcj86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gbmVpZ2hib3JpbmcgbGlua3MuIERlZmF1bHQ6IGA4YCAqL1xuICBASW5wdXQoKSBsaW5rTmVpZ2hib3JTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIEN1cnZhdHVyZSBvZiB0aGUgbGluay4gUmVjb21tZW5kZWQgdmFsdWUgcmFuZ2U6IFswOjEuNV0uXG4gICAqIGAwYCAtIHN0cmFpZ2h0IGxpbmUsXG4gICAqIGAxYCAtIG5pY2UgY3VydmF0dXJlLFxuICAgKiBgMS41YCAtIHZlcnkgY3VydmUuXG4gICAqIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBsaW5rQ3VydmF0dXJlPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIFNldCBzZWxlY3RlZCBsaW5rIGJ5IGl0cyB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua0lkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIE5vZGUgc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDMwYCAqL1xuICBASW5wdXQoKSBub2RlU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHNoYXBlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2hhcGUuQ2lyY2xlYCAqL1xuICBASW5wdXQoKSBub2RlU2hhcGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhOb2RlU2hhcGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsMTAwXS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZVZhbHVlPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIG5vZGUgZ2F1Z2Ugb3V0bGluZS4gRGVmYXVsdDogYDE1MDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUFuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5pY29uYCAqL1xuICBASW5wdXQoKSBub2RlSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVJY29uU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmxhYmVsYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBsYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWU6IERlZmF1bHQ6IGAnJ2AgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgc3ViLWxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2lyY3VsYXIgc2lkZSBsYWJlbHMgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIEdyYXBoQ2lyY2xlTGFiZWwgb2JqZWN0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNpZGVMYWJlbHM/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbFtdLCBOPlxuXG4gIC8qKiBOb2RlIGJvdHRvbSBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlQm90dG9tSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbm9kZURpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5maWxsYCAqL1xuICBASW5wdXQoKSBub2RlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3Ryb2tlYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBTb3J0aW5nIGZ1bmN0aW9uIHRvIGRldGVybWluZSBub2RlIHBsYWNlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNvcnQ/OiAoKGE6IE4sIGI6IE4pID0+IG51bWJlcilcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBmb3IgZW50ZXJpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHNjYWxlIGZvciBlbnRlcmluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBwb3NpdGlvbiBmb3IgZXhpdGluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0UG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gc2NhbGUgZm9yIGV4aXRpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTZXQgc2VsZWN0ZWQgbm9kZSBieSB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTm9kZUlkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlcyBieSB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTm9kZUlkcz86IG51bWJlcltdIHwgc3RyaW5nW11cblxuICAvKiogUGFuZWxzIGNvbmZpZ3VyYXRpb24uIEFuIGFycmF5IG9mIGBHcmFwaFBhbmVsQ29uZmlnYCBvYmplY3RzLiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIHBhbmVscz86IEdyYXBoUGFuZWxDb25maWdbXSB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgc3RhcnQgY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZURyYWdTdGFydD86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZURyYWc/OiAobjogR3JhcGhOb2RlPE4sIEw+LCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWQgfCB1bmRlZmluZWRcblxuICAvKiogR3JhcGggbm9kZSBkcmFnIGVuZCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ0VuZD86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBab29tIGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb20/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCkgPT4gdm9pZFxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZ3JhcGggbGF5b3V0IGlzIGNhbGN1bGF0ZWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTGF5b3V0Q2FsY3VsYXRlZD86IChuOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdKSA9PiB2b2lkXG5cbiAgLyoqIEdyYXBoIG5vZGUgc2VsZWN0aW9uIGJydXNoIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25CcnVzaD86IChzZWxlY3RlZE5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxTVkdHRWxlbWVudD4gfCB1bmRlZmluZWQpID0+IHZvaWRcblxuICAvKiogR3JhcGggbXVsdGlwbGUgbm9kZSBkcmFnIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25EcmFnPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWRcbiAgQElucHV0KCkgZGF0YTogeyBub2RlczogTltdOyBsaW5rcz86IExbXSB9XG5cbiAgY29tcG9uZW50OiBHcmFwaDxOLCBMPiB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBHcmFwaDxOLCBMPih0aGlzLmdldENvbmZpZygpKVxuXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuc2V0RGF0YSh0aGlzLmRhdGEpXG4gICAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHsgdGhpcy5jb21wb25lbnQ/LnNldERhdGEodGhpcy5kYXRhKSB9XG4gICAgdGhpcy5jb21wb25lbnQ/LnNldENvbmZpZyh0aGlzLmdldENvbmZpZygpKVxuICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWcgKCk6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHpvb21TY2FsZUV4dGVudCwgZGlzYWJsZVpvb20sIGRpc2FibGVEcmFnLCBkaXNhYmxlQnJ1c2gsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBsYXlvdXRUeXBlLCBsYXlvdXRBdXRvZml0LCBsYXlvdXRBdXRvZml0VG9sZXJhbmNlLCBsYXlvdXROb25Db25uZWN0ZWRBc2lkZSwgbGF5b3V0Tm9kZUdyb3VwLCBsYXlvdXRHcm91cE9yZGVyLCBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uLCBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cCwgbGF5b3V0UGFyYWxsZWxTdWJHcm91cHNQZXJSb3csIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nLCBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXAsIGZvcmNlTGF5b3V0U2V0dGluZ3MsIGRhZ3JlTGF5b3V0U2V0dGluZ3MsIGxheW91dEVsa1NldHRpbmdzLCBsYXlvdXRFbGtOb2RlR3JvdXBzLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBzZWxlY3RlZExpbmtJZCwgbm9kZVNpemUsIG5vZGVTdHJva2VXaWR0aCwgbm9kZVNoYXBlLCBub2RlR2F1Z2VWYWx1ZSwgbm9kZUdhdWdlRmlsbCwgbm9kZUdhdWdlQW5pbUR1cmF0aW9uLCBub2RlSWNvbiwgbm9kZUljb25TaXplLCBub2RlTGFiZWwsIG5vZGVMYWJlbFRyaW0sIG5vZGVMYWJlbFRyaW1Nb2RlLCBub2RlTGFiZWxUcmltTGVuZ3RoLCBub2RlU3ViTGFiZWwsIG5vZGVTdWJMYWJlbFRyaW0sIG5vZGVTdWJMYWJlbFRyaW1Nb2RlLCBub2RlU3ViTGFiZWxUcmltTGVuZ3RoLCBub2RlU2lkZUxhYmVscywgbm9kZUJvdHRvbUljb24sIG5vZGVEaXNhYmxlZCwgbm9kZUZpbGwsIG5vZGVTdHJva2UsIG5vZGVTb3J0LCBub2RlRW50ZXJQb3NpdGlvbiwgbm9kZUVudGVyU2NhbGUsIG5vZGVFeGl0UG9zaXRpb24sIG5vZGVFeGl0U2NhbGUsIHNlbGVjdGVkTm9kZUlkLCBzZWxlY3RlZE5vZGVJZHMsIHBhbmVscywgb25Ob2RlRHJhZ1N0YXJ0LCBvbk5vZGVEcmFnLCBvbk5vZGVEcmFnRW5kLCBvblpvb20sIG9uTGF5b3V0Q2FsY3VsYXRlZCwgb25Ob2RlU2VsZWN0aW9uQnJ1c2gsIG9uTm9kZVNlbGVjdGlvbkRyYWcgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHpvb21TY2FsZUV4dGVudCwgZGlzYWJsZVpvb20sIGRpc2FibGVEcmFnLCBkaXNhYmxlQnJ1c2gsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBsYXlvdXRUeXBlLCBsYXlvdXRBdXRvZml0LCBsYXlvdXRBdXRvZml0VG9sZXJhbmNlLCBsYXlvdXROb25Db25uZWN0ZWRBc2lkZSwgbGF5b3V0Tm9kZUdyb3VwLCBsYXlvdXRHcm91cE9yZGVyLCBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uLCBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cCwgbGF5b3V0UGFyYWxsZWxTdWJHcm91cHNQZXJSb3csIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nLCBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXAsIGZvcmNlTGF5b3V0U2V0dGluZ3MsIGRhZ3JlTGF5b3V0U2V0dGluZ3MsIGxheW91dEVsa1NldHRpbmdzLCBsYXlvdXRFbGtOb2RlR3JvdXBzLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBzZWxlY3RlZExpbmtJZCwgbm9kZVNpemUsIG5vZGVTdHJva2VXaWR0aCwgbm9kZVNoYXBlLCBub2RlR2F1Z2VWYWx1ZSwgbm9kZUdhdWdlRmlsbCwgbm9kZUdhdWdlQW5pbUR1cmF0aW9uLCBub2RlSWNvbiwgbm9kZUljb25TaXplLCBub2RlTGFiZWwsIG5vZGVMYWJlbFRyaW0sIG5vZGVMYWJlbFRyaW1Nb2RlLCBub2RlTGFiZWxUcmltTGVuZ3RoLCBub2RlU3ViTGFiZWwsIG5vZGVTdWJMYWJlbFRyaW0sIG5vZGVTdWJMYWJlbFRyaW1Nb2RlLCBub2RlU3ViTGFiZWxUcmltTGVuZ3RoLCBub2RlU2lkZUxhYmVscywgbm9kZUJvdHRvbUljb24sIG5vZGVEaXNhYmxlZCwgbm9kZUZpbGwsIG5vZGVTdHJva2UsIG5vZGVTb3J0LCBub2RlRW50ZXJQb3NpdGlvbiwgbm9kZUVudGVyU2NhbGUsIG5vZGVFeGl0UG9zaXRpb24sIG5vZGVFeGl0U2NhbGUsIHNlbGVjdGVkTm9kZUlkLCBzZWxlY3RlZE5vZGVJZHMsIHBhbmVscywgb25Ob2RlRHJhZ1N0YXJ0LCBvbk5vZGVEcmFnLCBvbk5vZGVEcmFnRW5kLCBvblpvb20sIG9uTGF5b3V0Q2FsY3VsYXRlZCwgb25Ob2RlU2VsZWN0aW9uQnJ1c2gsIG9uTm9kZVNlbGVjdGlvbkRyYWcgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBeUJOLE1BQU0sWUFBWSxDQUFBO0FBS25CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTJVNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVB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Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBUUcscUNBQXFDO3NCQUE3QyxLQUFLO2dCQUdHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFHRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBR0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgR3JhcGgsXG4gIEdyYXBoQ29uZmlnSW50ZXJmYWNlLFxuICBDb250YWluZXJDb3JlLFxuICBHcmFwaElucHV0Tm9kZSxcbiAgR3JhcGhJbnB1dExpbmssXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgR3JhcGhMYXlvdXRUeXBlLFxuICBTdHJpbmdBY2Nlc3NvcixcbiAgR3JhcGhGb3JjZUxheW91dFNldHRpbmdzLFxuICBHcmFwaERhZ3JlTGF5b3V0U2V0dGluZyxcbiAgR2VuZXJpY0FjY2Vzc29yLFxuICBHcmFwaEVsa0xheW91dFNldHRpbmdzLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIEdyYXBoTGlua1N0eWxlLFxuICBHcmFwaExpbmtBcnJvd1N0eWxlLFxuICBDb2xvckFjY2Vzc29yLFxuICBCb29sZWFuQWNjZXNzb3IsXG4gIEdyYXBoQ2lyY2xlTGFiZWwsXG4gIEdyYXBoTm9kZVNoYXBlLFxuICBUcmltTW9kZSxcbiAgR3JhcGhOb2RlLFxuICBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlLFxuICBHcmFwaFBhbmVsQ29uZmlnLFxuICBHcmFwaExpbmssXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICdkMy1zZWxlY3Rpb24nXG5pbXBvcnQgeyBEM0RyYWdFdmVudCB9IGZyb20gJ2QzLWRyYWcnXG5pbXBvcnQgeyBEM1pvb21FdmVudCwgWm9vbVRyYW5zZm9ybSB9IGZyb20gJ2QzLXpvb20nXG5pbXBvcnQgeyBEM0JydXNoRXZlbnQgfSBmcm9tICdkMy1icnVzaCdcbmltcG9ydCB7IFZpc0NvcmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtZ3JhcGgnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc0NvcmVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNHcmFwaENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzR3JhcGhDb21wb25lbnQ8TiBleHRlbmRzIEdyYXBoSW5wdXROb2RlLCBMIGV4dGVuZHMgR3JhcGhJbnB1dExpbms+IGltcGxlbWVudHMgR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogWm9vbSBsZXZlbCBjb25zdHJhaW50cy4gRGVmYXVsdDogWzAuMzUsIDEuMjVdICovXG4gIEBJbnB1dCgpIHpvb21TY2FsZUV4dGVudD86IFtudW1iZXIsIG51bWJlcl1cblxuICAvKiogRGlzYWJsZSB6b29taW5nLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVab29tPzogYm9vbGVhblxuXG4gIC8qKiBDdXN0b20gWm9vbSBldmVudCBmaWx0ZXIgdG8gYmV0dGVyIGNvbnRyb2wgd2hpY2ggYWN0aW9ucyBzaG91bGQgdHJpZ2dlciB6b29taW5nLlxuICAgKiBMZWFybiBtb3JlOiBodHRwczovL2QzanMub3JnL2QzLXpvb20jem9vbV9maWx0ZXIuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHpvb21FdmVudEZpbHRlcj86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiBib29sZWFuXG5cbiAgLyoqIERpc2FibGUgbm9kZSBkcmFnZ2luZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlRHJhZz86IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBicnVzaCBmb3IgbXVsdGlwbGUgbm9kZSBzZWxlY3Rpb24uIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJydXNoPzogYm9vbGVhblxuXG4gIC8qKiBJbnRlcnZhbCB0byByZS1yZW5kZXIgdGhlIGdyYXBoIHdoZW4gem9vbWluZy4gRGVmYXVsdDogYDEwMGAgKi9cbiAgQElucHV0KCkgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQ/OiBudW1iZXJcblxuICAvKiogVHlwZSBvZiB0aGUgZ3JhcGggbGF5b3V0LiBEZWZhdWx0OiBgR3JhcGhMYXlvdXRUeXBlLkZvcmNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRUeXBlPzogR3JhcGhMYXlvdXRUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEZpdCB0aGUgZ3JhcGggdG8gY29udGFpbmVyIG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZXMsIG9yIG9uIGNvbnRhaW5lciByZXNpemUuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0PzogYm9vbGVhblxuXG4gIC8qKiBUb2xlcmFuY2UgY29uc3RhbnQgZGVmaW5pbmcgd2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGZpdHRlZCB0byBjb250YWluZXJcbiAgICogKG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZSwgb3IgY29udGFpbmVyIHJlc2l6ZSkgYWZ0ZXIgYSB6b29tIC8gcGFuIGludGVyYWN0aW9uIG9yIG5vdC5cbiAgICogYDBgIOKAlCBTdG9wIGZpdHRpbmcgYWZ0ZXIgYW55IHBhbiBvciB6b29tXG4gICAqIGBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlgIOKAlCBBbHdheXMgZml0XG4gICAqIERlZmF1bHQ6IGA4LjBgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXRUb2xlcmFuY2U/OiBudW1iZXJcblxuICAvKiogUGxhY2Ugbm9uLWNvbm5lY3RlZCBub2RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmFwaC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb25Db25uZWN0ZWRBc2lkZT86IGJvb2xlYW5cblxuICAvKiogTm9kZSBncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb2RlR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBPcmRlciBvZiB0aGUgbGF5b3V0IGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIGxheW91dEdyb3VwT3JkZXI/OiBzdHJpbmdbXVxuXG4gIC8qKiBTZXRzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBzdWItZ3JvdXAgYWZ0ZXIgd2hpY2ggdGhleSdsbCBjb250aW51ZSBvbiB0aGUgbmV4dCBjb2x1bW4gKG9yIHJvdyBpZiBgbGF5b3V0VHlwZWAgaXNcbiAgICogYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKS5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgNmAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIHN1Yi1ncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN1Ymdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE51bWJlciBvZiBzdWItZ3JvdXBzIHBlciByb3cgKG9yIGNvbHVtbiBpZiBgbGF5b3V0VHlwZWAgaXMgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKSBpbiBhIGdyb3VwLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdz86IG51bWJlclxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIFNldCBhIGdyb3VwIGJ5IG5hbWUgdG8gaGF2ZSBwcmlvcml0eSBpbiBzb3J0aW5nIHRoZSBncmFwaCBsaW5rcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXA/OiBzdHJpbmdcblxuICAvKiogRm9yY2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkMy1mb3JjZWAgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzICovXG4gIEBJbnB1dCgpIGZvcmNlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3M8TiwgTD5cblxuICAvKiogRGFyZ2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkYWdyZWpzYCBwYWNrYWdlXG4gICAqIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYWdyZWpzL2RhZ3JlL3dpa2kjY29uZmlndXJpbmctdGhlLWxheW91dCAqL1xuICBASW5wdXQoKSBkYWdyZUxheW91dFNldHRpbmdzPzogR3JhcGhEYWdyZUxheW91dFNldHRpbmdcblxuICAvKiogRUxLIGxheW91dCBvcHRpb25zLCBzZWUgdGhlIGBlbGtqc2AgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20va2llbGVyL2Vsa2pzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGN1c3RvbSBsYXlvdXQgb3B0aW9uIGZvciBlYWNoIG5vZGUgZ3JvdXAsIHlvdSBjYW4gcHJvdmlkZSBhbiBhY2Nlc3NvciBmdW5jdGlvbiB0aGF0XG4gICAqIHJlY2VpdmVzIGdyb3VwIG5hbWUgKCdyb290JyBmb3IgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogbGF5b3V0IG9wdGlvbnMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa1NldHRpbmdzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsIHN0cmluZz4gfCB1bmRlZmluZWRcblxuICAvKiogQXJyYXkgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGRlZmluZSBuZXN0ZWQgbm9kZSBncm91cHMgZm9yIHRoZSBFTEsgTGF5ZXJlZCBsYXlvdXQuXG4gICAqIEUuZy46IGBbbiA9PiBuLmdyb3VwLCBuID0+IG4uc3ViR3JvdXBdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrTm9kZUdyb3Vwcz86IFN0cmluZ0FjY2Vzc29yPE4+W11cblxuICAvKiogTGluayB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvdCBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxpbmtXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIHN0eWxlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhMaW5rU3R5bGUuU29saWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHlsZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtTdHlsZSwgTD5cblxuICAvKiogTGluayBiYW5kIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0JhbmRXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGFycm93IGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rQXJyb3c/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rQXJyb3dTdHlsZSB8IHN0cmluZyB8IGJvb2xlYW4sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIExpbmsgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGRpc2FibGVkIHN0YXRlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtEaXNhYmxlZD86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGZsb3cgYW5pbWF0aW9uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93PzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZmxvdyAodHJhZmZpYykgY2lyY2xlcy4gRGVmYXVsdDogYDIwMDAwYCAqL1xuICBASW5wdXQoKSBsaW5rRmxvd0FuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBTaXplIG9mIHRoZSBtb3ZpbmcgcGFydGljbGVzIHRoYXQgcmVwcmVzZW50IHRyYWZmaWMgZmxvdy4gRGVmYXVsdDogYDJgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93UGFydGljbGVTaXplPzogbnVtYmVyXG5cbiAgLyoqIExpbmsgbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbD86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaENpcmNsZUxhYmVsLCBMPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTaGlmdCBsYWJlbCBhbG9uZyB0aGUgbGluayBjZW50ZXIgYSBsaXR0bGUgYml0IHRvIGF2b2lkIG92ZXJsYXAgd2l0aCB0aGUgbGluayBhcnJvdy4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlcj86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gbmVpZ2hib3JpbmcgbGlua3MuIERlZmF1bHQ6IGA4YCAqL1xuICBASW5wdXQoKSBsaW5rTmVpZ2hib3JTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIEN1cnZhdHVyZSBvZiB0aGUgbGluay4gUmVjb21tZW5kZWQgdmFsdWUgcmFuZ2U6IFswOjEuNV0uXG4gICAqIGAwYCAtIHN0cmFpZ2h0IGxpbmUsXG4gICAqIGAxYCAtIG5pY2UgY3VydmF0dXJlLFxuICAgKiBgMS41YCAtIHZlcnkgY3VydmUuXG4gICAqIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBsaW5rQ3VydmF0dXJlPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIFNldCBzZWxlY3RlZCBsaW5rIGJ5IGl0cyB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua0lkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIE5vZGUgc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDMwYCAqL1xuICBASW5wdXQoKSBub2RlU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHNoYXBlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2hhcGUuQ2lyY2xlYCAqL1xuICBASW5wdXQoKSBub2RlU2hhcGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhOb2RlU2hhcGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsMTAwXS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZVZhbHVlPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIG5vZGUgZ2F1Z2Ugb3V0bGluZS4gRGVmYXVsdDogYDE1MDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUFuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5pY29uYCAqL1xuICBASW5wdXQoKSBub2RlSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVJY29uU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmxhYmVsYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBsYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWU6IERlZmF1bHQ6IGAnJ2AgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgc3ViLWxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2lyY3VsYXIgc2lkZSBsYWJlbHMgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIEdyYXBoQ2lyY2xlTGFiZWwgb2JqZWN0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNpZGVMYWJlbHM/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbFtdLCBOPlxuXG4gIC8qKiBOb2RlIGJvdHRvbSBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlQm90dG9tSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbm9kZURpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5maWxsYCAqL1xuICBASW5wdXQoKSBub2RlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3Ryb2tlYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBTb3J0aW5nIGZ1bmN0aW9uIHRvIGRldGVybWluZSBub2RlIHBsYWNlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNvcnQ/OiAoKGE6IE4sIGI6IE4pID0+IG51bWJlcilcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBmb3IgZW50ZXJpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHNjYWxlIGZvciBlbnRlcmluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBwb3NpdGlvbiBmb3IgZXhpdGluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0UG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gc2NhbGUgZm9yIGV4aXRpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBDdXN0b20gXCJlbnRlclwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24/OiAoZGF0dW06IEdyYXBoTm9kZTxOLCBMPiwgbm9kZUdyb3VwRWxlbWVudFNlbGVjdGlvbjogU2VsZWN0aW9uPFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIG51bGwsIHVua25vd24+LCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBDdXN0b20gXCJ1cGRhdGVcIiBmdW5jdGlvbiBmb3Igbm9kZSByZW5kZXJpbmcuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSBwYXJ0aWFsIFwidXBkYXRlXCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEZ1bGwgbm9kZSB1cGRhdGUgKGBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb25gKTtcbiAgICogLSBCYWNrZ3JvdW5kIGNsaWNrO1xuICAgKiAtIE5vZGUgYW5kIExpbmsgbW91c2VvdmVyIGFuZCBtb3VzZW91dDtcbiAgICogLSBOb2RlIGJydXNoaW5nLFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIFwiZXhpdFwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGlsZSB6b29taW5nIC8gcGFubmluZyB0aGUgZ3JhcGguIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIERlZmluZSB0aGUgbW9kZSBmb3IgaGlnaGxpZ2h0aW5nIHNlbGVjdGVkIG5vZGVzIGluIHRoZSBncmFwaC4gRGVmYXVsdDogYEdyYXBoTm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUuR3JleW91dE5vbkNvbm5lY3RlZGAgKi9cbiAgQElucHV0KCkgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGU/OiBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGVzIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWRzPzogbnVtYmVyW10gfCBzdHJpbmdbXVxuXG4gIC8qKiBQYW5lbHMgY29uZmlndXJhdGlvbi4gQW4gYXJyYXkgb2YgYEdyYXBoUGFuZWxDb25maWdgIG9iamVjdHMuIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgcGFuZWxzPzogR3JhcGhQYW5lbENvbmZpZ1tdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBzdGFydCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ1N0YXJ0PzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZz86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgZW5kIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnRW5kPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFpvb20gZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbT86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogWm9vbSBzdGFydCBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tU3RhcnQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIFpvb20gZW5kIGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb21FbmQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBncmFwaCBsYXlvdXQgaXMgY2FsY3VsYXRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25MYXlvdXRDYWxjdWxhdGVkPzogKG46IEdyYXBoTm9kZTxOLCBMPltdLCBsaW5rczogR3JhcGhMaW5rPE4sIEw+W10pID0+IHZvaWRcblxuICAvKiogR3JhcGggbm9kZSBzZWxlY3Rpb24gYnJ1c2ggY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZVNlbGVjdGlvbkJydXNoPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNCcnVzaEV2ZW50PFNWR0dFbGVtZW50PiB8IHVuZGVmaW5lZCkgPT4gdm9pZFxuXG4gIC8qKiBHcmFwaCBtdWx0aXBsZSBub2RlIGRyYWcgY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZVNlbGVjdGlvbkRyYWc/OiAoc2VsZWN0ZWROb2RlczogR3JhcGhOb2RlPE4sIEw+W10sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZFxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZ3JhcGggcmVuZGVyaW5nIGlzIGNvbXBsZXRlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblJlbmRlckNvbXBsZXRlPzogKGc6IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPiwgbm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBsaW5rczogR3JhcGhMaW5rPE4sIEw+W10sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gdm9pZFxuICBASW5wdXQoKSBkYXRhOiB7IG5vZGVzOiBOW107IGxpbmtzPzogTFtdIH1cblxuICBjb21wb25lbnQ6IEdyYXBoPE4sIEw+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEdyYXBoPE4sIEw+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGlua1dpZHRoLCBsaW5rU3R5bGUsIGxpbmtCYW5kV2lkdGgsIGxpbmtBcnJvdywgbGlua1N0cm9rZSwgbGlua0Rpc2FibGVkLCBsaW5rRmxvdywgbGlua0Zsb3dBbmltRHVyYXRpb24sIGxpbmtGbG93UGFydGljbGVTaXplLCBsaW5rTGFiZWwsIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlciwgbGlua05laWdoYm9yU3BhY2luZywgbGlua0N1cnZhdHVyZSwgc2VsZWN0ZWRMaW5rSWQsIG5vZGVTaXplLCBub2RlU3Ryb2tlV2lkdGgsIG5vZGVTaGFwZSwgbm9kZUdhdWdlVmFsdWUsIG5vZGVHYXVnZUZpbGwsIG5vZGVHYXVnZUFuaW1EdXJhdGlvbiwgbm9kZUljb24sIG5vZGVJY29uU2l6ZSwgbm9kZUxhYmVsLCBub2RlTGFiZWxUcmltLCBub2RlTGFiZWxUcmltTW9kZSwgbm9kZUxhYmVsVHJpbUxlbmd0aCwgbm9kZVN1YkxhYmVsLCBub2RlU3ViTGFiZWxUcmltLCBub2RlU3ViTGFiZWxUcmltTW9kZSwgbm9kZVN1YkxhYmVsVHJpbUxlbmd0aCwgbm9kZVNpZGVMYWJlbHMsIG5vZGVCb3R0b21JY29uLCBub2RlRGlzYWJsZWQsIG5vZGVGaWxsLCBub2RlU3Ryb2tlLCBub2RlU29ydCwgbm9kZUVudGVyUG9zaXRpb24sIG5vZGVFbnRlclNjYWxlLCBub2RlRXhpdFBvc2l0aW9uLCBub2RlRXhpdFNjYWxlLCBub2RlRW50ZXJDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlRXhpdEN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlT25ab29tQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlLCBzZWxlY3RlZE5vZGVJZCwgc2VsZWN0ZWROb2RlSWRzLCBwYW5lbHMsIG9uTm9kZURyYWdTdGFydCwgb25Ob2RlRHJhZywgb25Ob2RlRHJhZ0VuZCwgb25ab29tLCBvblpvb21TdGFydCwgb25ab29tRW5kLCBvbkxheW91dENhbGN1bGF0ZWQsIG9uTm9kZVNlbGVjdGlvbkJydXNoLCBvbk5vZGVTZWxlY3Rpb25EcmFnLCBvblJlbmRlckNvbXBsZXRlIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB6b29tU2NhbGVFeHRlbnQsIGRpc2FibGVab29tLCB6b29tRXZlbnRGaWx0ZXIsIGRpc2FibGVEcmFnLCBkaXNhYmxlQnJ1c2gsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBsYXlvdXRUeXBlLCBsYXlvdXRBdXRvZml0LCBsYXlvdXRBdXRvZml0VG9sZXJhbmNlLCBsYXlvdXROb25Db25uZWN0ZWRBc2lkZSwgbGF5b3V0Tm9kZUdyb3VwLCBsYXlvdXRHcm91cE9yZGVyLCBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uLCBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cCwgbGF5b3V0UGFyYWxsZWxTdWJHcm91cHNQZXJSb3csIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nLCBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXAsIGZvcmNlTGF5b3V0U2V0dGluZ3MsIGRhZ3JlTGF5b3V0U2V0dGluZ3MsIGxheW91dEVsa1NldHRpbmdzLCBsYXlvdXRFbGtOb2RlR3JvdXBzLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBzZWxlY3RlZExpbmtJZCwgbm9kZVNpemUsIG5vZGVTdHJva2VXaWR0aCwgbm9kZVNoYXBlLCBub2RlR2F1Z2VWYWx1ZSwgbm9kZUdhdWdlRmlsbCwgbm9kZUdhdWdlQW5pbUR1cmF0aW9uLCBub2RlSWNvbiwgbm9kZUljb25TaXplLCBub2RlTGFiZWwsIG5vZGVMYWJlbFRyaW0sIG5vZGVMYWJlbFRyaW1Nb2RlLCBub2RlTGFiZWxUcmltTGVuZ3RoLCBub2RlU3ViTGFiZWwsIG5vZGVTdWJMYWJlbFRyaW0sIG5vZGVTdWJMYWJlbFRyaW1Nb2RlLCBub2RlU3ViTGFiZWxUcmltTGVuZ3RoLCBub2RlU2lkZUxhYmVscywgbm9kZUJvdHRvbUljb24sIG5vZGVEaXNhYmxlZCwgbm9kZUZpbGwsIG5vZGVTdHJva2UsIG5vZGVTb3J0LCBub2RlRW50ZXJQb3NpdGlvbiwgbm9kZUVudGVyU2NhbGUsIG5vZGVFeGl0UG9zaXRpb24sIG5vZGVFeGl0U2NhbGUsIG5vZGVFbnRlckN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVQYXJ0aWFsVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVFeGl0Q3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUsIHNlbGVjdGVkTm9kZUlkLCBzZWxlY3RlZE5vZGVJZHMsIHBhbmVscywgb25Ob2RlRHJhZ1N0YXJ0LCBvbk5vZGVEcmFnLCBvbk5vZGVEcmFnRW5kLCBvblpvb20sIG9uWm9vbVN0YXJ0LCBvblpvb21FbmQsIG9uTGF5b3V0Q2FsY3VsYXRlZCwgb25Ob2RlU2VsZWN0aW9uQnJ1c2gsIG9uTm9kZVNlbGVjdGlvbkRyYWcsIG9uUmVuZGVyQ29tcGxldGUgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
|
|
@@ -27,18 +27,18 @@ export class VisSingleContainerComponent {
|
|
|
27
27
|
}
|
|
28
28
|
getConfig() {
|
|
29
29
|
var _a, _b, _c;
|
|
30
|
-
const { width, height, duration, margin, ariaLabel } = this;
|
|
30
|
+
const { width, height, duration, margin, ariaLabel, svgDefs, sizing } = this;
|
|
31
31
|
const component = (_a = this.visComponent) === null || _a === void 0 ? void 0 : _a.component;
|
|
32
32
|
const tooltip = (_b = this.tooltipComponent) === null || _b === void 0 ? void 0 : _b.component;
|
|
33
33
|
const annotations = (_c = this.annotationsComponent) === null || _c === void 0 ? void 0 : _c.component;
|
|
34
|
-
return { width, height, duration, margin, component, tooltip, ariaLabel, annotations };
|
|
34
|
+
return { width, height, duration, margin, component, tooltip, ariaLabel, annotations, svgDefs, sizing };
|
|
35
35
|
}
|
|
36
36
|
ngOnDestroy() {
|
|
37
37
|
this.chart.destroy();
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
VisSingleContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisSingleContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
VisSingleContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisSingleContainerComponent, selector: "vis-single-container", inputs: { width: "width", height: "height", margin: "margin", duration: "duration", ariaLabel: "ariaLabel", data: "data" }, queries: [{ propertyName: "visComponent", first: true, predicate: VisCoreComponent, descendants: true }, { propertyName: "tooltipComponent", first: true, predicate: VisTooltipComponent, descendants: true }, { propertyName: "annotationsComponent", first: true, predicate: VisAnnotationsComponent, descendants: true }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `<div #container class="unovis-single-container">
|
|
41
|
+
VisSingleContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisSingleContainerComponent, selector: "vis-single-container", inputs: { width: "width", height: "height", margin: "margin", duration: "duration", ariaLabel: "ariaLabel", svgDefs: "svgDefs", sizing: "sizing", data: "data" }, queries: [{ propertyName: "visComponent", first: true, predicate: VisCoreComponent, descendants: true }, { propertyName: "tooltipComponent", first: true, predicate: VisTooltipComponent, descendants: true }, { propertyName: "annotationsComponent", first: true, predicate: VisAnnotationsComponent, descendants: true }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `<div #container class="unovis-single-container">
|
|
42
42
|
<ng-content></ng-content>
|
|
43
43
|
</div>`, isInline: true, styles: [".unovis-single-container { width: 100%; height: 100%; position: relative; }"] });
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisSingleContainerComponent, decorators: [{
|
|
@@ -72,7 +72,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
72
72
|
type: Input
|
|
73
73
|
}], ariaLabel: [{
|
|
74
74
|
type: Input
|
|
75
|
+
}], svgDefs: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], sizing: [{
|
|
78
|
+
type: Input
|
|
75
79
|
}], data: [{
|
|
76
80
|
type: Input
|
|
77
81
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29udGFpbmVycy9zaW5nbGUtY29udGFpbmVyL3NpbmdsZS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixLQUFLLEVBQTRCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU5SCxNQUFNO0FBQ04sT0FBTyxFQUFpQixlQUFlLEVBQXlFLE1BQU0sWUFBWSxDQUFBO0FBQ2xJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQTs7QUFTNUYsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQTBCRSxtRUFBbUU7UUFDMUQsV0FBTSxHQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFBO0tBK0NyRTtJQTlCQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3BHLHVGQUF1RjtRQUN2RixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNoQixNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3BDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQTtTQUNwQjtRQUVELDhCQUE4QjtRQUM5QixNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsU0FBUzs7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBRTVFLE1BQU0sU0FBUyxHQUFHLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsU0FBYyxDQUFBO1FBQ25ELE1BQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxTQUFvQixDQUFBO1FBQzNELE1BQU0sV0FBVyxHQUFHLE1BQUEsSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSxTQUF3QixDQUFBO1FBRXZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQTtJQUN6RyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDdEIsQ0FBQzs7eUhBbEVVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHdRQUV4QixnQkFBZ0IsbUZBQ2hCLG1CQUFtQix1RkFDbkIsdUJBQXVCLGdMQVQzQjs7U0FFSDs0RkFHSSwyQkFBMkI7a0JBUHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOztTQUVIO29CQUNQLE1BQU0sRUFBRSxDQUFDLDZFQUE2RSxDQUFDO2lCQUN4Rjs4QkFFNEMsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNULFlBQVk7c0JBQTNDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNLLGdCQUFnQjtzQkFBbEQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBQ00sb0JBQW9CO3NCQUExRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFPNUIsS0FBSztzQkFBYixLQUFLO2dCQU1HLE1BQU07c0JBQWQsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIElucHV0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbi8vIFZpc1xuaW1wb3J0IHsgQ29tcG9uZW50Q29yZSwgU2luZ2xlQ29udGFpbmVyLCBTaW5nbGVDb250YWluZXJDb25maWdJbnRlcmZhY2UsIFRvb2x0aXAsIFNwYWNpbmcsIEFubm90YXRpb25zLCBTaXppbmcgfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5pbXBvcnQgeyBWaXNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50J1xuaW1wb3J0IHsgVmlzQW5ub3RhdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Fubm90YXRpb25zL2Fubm90YXRpb25zLmNvbXBvbmVudCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLXNpbmdsZS1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYDxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInVub3Zpcy1zaW5nbGUtY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5gLFxuICBzdHlsZXM6IFsnLnVub3Zpcy1zaW5nbGUtY29udGFpbmVyIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IHJlbGF0aXZlOyB9J10sXG59KVxuZXhwb3J0IGNsYXNzIFZpc1NpbmdsZUNvbnRhaW5lckNvbXBvbmVudDxEYXRhID0gdW5rbm93biwgQyBleHRlbmRzIENvbXBvbmVudENvcmU8RGF0YT4gPSBDb21wb25lbnRDb3JlPERhdGE+PiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWZcbiAgQENvbnRlbnRDaGlsZChWaXNDb3JlQ29tcG9uZW50KSB2aXNDb21wb25lbnQ6IFZpc0NvcmVDb21wb25lbnRcbiAgQENvbnRlbnRDaGlsZChWaXNUb29sdGlwQ29tcG9uZW50KSB0b29sdGlwQ29tcG9uZW50OiBWaXNUb29sdGlwQ29tcG9uZW50XG4gIEBDb250ZW50Q2hpbGQoVmlzQW5ub3RhdGlvbnNDb21wb25lbnQpIGFubm90YXRpb25zQ29tcG9uZW50OiBWaXNBbm5vdGF0aW9uc0NvbXBvbmVudFxuXG4gIC8qKiBXaWR0aCBpbiBwaXhlbHMgb3IgaW4gQ1NTIHVuaXRzLlxuICAgKiBQZXJjZW50YWdlIHVuaXRzIGBcIiVcImAgYXJlIG5vdCBzdXBwb3J0ZWQgaGVyZS4gSWYgeW91IHdhbnQgdG8gc2V0IGB3aWR0aGAgYXMgYSBwZXJjZW50YWdlLCBkbyBpdCB2aWEgYHN0eWxlYCBvciBgY2xhc3NgXG4gICAqIG9mIHRoZSBjb3JyZXNwb25kaW5nIERPTSBlbGVtZW50LlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYFxuICAqL1xuICBASW5wdXQoKSB3aWR0aD86IG51bWJlclxuICAvKiogSGVpZ2h0IGluIHBpeGVscyBvciBpbiBDU1MgdW5pdHMuXG4gICAqIFBlcmNlbnRhZ2UgdW5pdHMgYFwiJVwiYCBhcmUgbm90IHN1cHBvcnRlZCBoZXJlLiBJZiB5b3Ugd2FudCB0byBzZXQgYGhlaWdodGAgYXMgYSBwZXJjZW50YWdlLCBkbyBpdCB2aWEgYHN0eWxlYCBvciBgY2xhc3NgXG4gICAqIG9mIHRoZSBjb3JyZXNwb25kaW5nIERPTSBlbGVtZW50LlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYFxuICAqL1xuICBASW5wdXQoKSBoZWlnaHQ/OiBudW1iZXJcblxuICAvKiogTWFyZ2lucy4gRGVmYXVsdDogYHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1gICovXG4gIEBJbnB1dCgpIG1hcmdpbj86IFNwYWNpbmcgPSB7IHRvcDogMCwgYm90dG9tOiAwLCBsZWZ0OiAwLCByaWdodDogMCB9XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgYWxsIHRoZSBjb21wb25lbnRzIHdpdGhpbiB0aGUgY29udGFpbmVyLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuICAvKiogQWx0ZXJuYXRpdmUgdGV4dCBkZXNjcmlwdGlvbiBvZiB0aGUgY2hhcnQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuIEl0IHdpbGwgYmUgYXBwbGllZCBhcyBhblxuICAgKiBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBkaXYgZWxlbWVudCBjb250YWluaW5nIHlvdXIgY2hhcnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgLlxuICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gIC8qKiBDdXN0b20gU1ZHIGRlZnMgYXZhaWxhYmxlIHRvIGFsbCB0aGUgY29tcG9uZW50cyB3aXRoaW4gdGhlIGNvbnRhaW5lci4gRGVmYXVsdDogYHVuZGVmaW5lZGAuICovXG4gIEBJbnB1dCgpIHN2Z0RlZnM/OiBzdHJpbmdcbiAgLyoqIERlZmluZXMgd2hldGhlciBjb21wb25lbnRzIHNob3VsZCBmaXQgaW50byB0aGUgY29udGFpbmVyIG9yIHRoZSBjb250YWluZXIgc2hvdWxkIGV4cGFuZCB0byBmaXQgdG8gdGhlIGNvbXBvbmVudCdzIHNpemUuXG4gICAqIFdvcmtzIHdpdGggYSBsaW1pdGVkIHNldCBvZiBjb21wb25lbnRzLiBEZWZhdWx0OiBgU2l6aW5nLkZpdGAgKi9cbiAgQElucHV0KCkgc2l6aW5nPzogU2l6aW5nIHwgc3RyaW5nXG4gIC8qKiBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LiBEZWZhdWx0OiBgdW5kZWZpbmVkYC4gKi9cbiAgQElucHV0KCkgZGF0YT86IERhdGFcblxuICBjaGFydDogU2luZ2xlQ29udGFpbmVyPERhdGE+XG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IFNpbmdsZUNvbnRhaW5lcjxEYXRhPih0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmdldENvbmZpZygpLCB0aGlzLmRhdGEpXG4gICAgLy8gV2UgcGFzcyB0aGUgY29udGFpbmVyIGZvciB0aGUgY29tcG9uZW50IHRvIHRyaWdnZXIgcmUtcmVuZGVyIGlmIHRoZSBkYXRhIGhhcyBjaGFuZ2VkXG4gICAgdGhpcy52aXNDb21wb25lbnQuY29tcG9uZW50Q29udGFpbmVyID0gdGhpcy5jaGFydFxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBTZXQgbmV3IERhdGEgd2l0aG91dCByZS1yZW5kZXJcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7XG4gICAgICB0aGlzLmNoYXJ0Py5zZXREYXRhKHRoaXMuZGF0YSwgdHJ1ZSlcbiAgICAgIGRlbGV0ZSBjaGFuZ2VzLmRhdGFcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgQ29udGFpbmVyIGFuZCByZW5kZXJcbiAgICB0aGlzLmNoYXJ0Py51cGRhdGVDb250YWluZXIodGhpcy5nZXRDb25maWcoKSlcbiAgfVxuXG4gIGdldENvbmZpZyAoKTogU2luZ2xlQ29udGFpbmVyQ29uZmlnSW50ZXJmYWNlPERhdGE+IHtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGR1cmF0aW9uLCBtYXJnaW4sIGFyaWFMYWJlbCwgc3ZnRGVmcywgc2l6aW5nIH0gPSB0aGlzXG5cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnZpc0NvbXBvbmVudD8uY29tcG9uZW50IGFzIENcbiAgICBjb25zdCB0b29sdGlwID0gdGhpcy50b29sdGlwQ29tcG9uZW50Py5jb21wb25lbnQgYXMgVG9vbHRpcFxuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5hbm5vdGF0aW9uc0NvbXBvbmVudD8uY29tcG9uZW50IGFzIEFubm90YXRpb25zXG5cbiAgICByZXR1cm4geyB3aWR0aCwgaGVpZ2h0LCBkdXJhdGlvbiwgbWFyZ2luLCBjb21wb25lbnQsIHRvb2x0aXAsIGFyaWFMYWJlbCwgYW5ub3RhdGlvbnMsIHN2Z0RlZnMsIHNpemluZyB9XG4gIH1cblxuICBuZ09uRGVzdHJveSAoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydC5kZXN0cm95KClcbiAgfVxufVxuIl19
|
|
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
174
174
|
}], data: [{
|
|
175
175
|
type: Input
|
|
176
176
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb250YWluZXJzL3h5LWNvbnRhaW5lci94eS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE1BQU07QUFDTixPQUFPLEVBQWUsSUFBSSxFQUFtQixTQUFTLEVBQUUsU0FBUyxFQUFXLE9BQU8sRUFBRSxXQUFXLEVBQThCLE1BQU0sWUFBWSxDQUFBO0FBQ2hKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7O0FBUzVGLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUE0Q0U7Ozs7O2tDQUswQjtRQUNqQix5QkFBb0IsR0FBOEMsU0FBUyxDQUFBO1FBV3BGLG1EQUFtRDtRQUMxQyxlQUFVLEdBQWdELFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDbEY7Ozs7OzhCQUtzQjtRQUNiLHVCQUFrQixHQUFvQixJQUFJLENBQUE7UUFFbkQsMEZBQTBGO1FBQ2pGLGFBQVEsR0FBWSxTQUFTLENBQUE7UUFDdEMsbUVBQW1FO1FBQzFELFdBQU0sR0FBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQTtRQUNwRSxtRUFBbUU7UUFDMUQsWUFBTyxHQUFhLEVBQUUsQ0FBQTtRQUcvQixvR0FBb0c7UUFDM0YsZUFBVSxHQUFhLElBQUksQ0FBQTtRQU9wQzs4REFDc0Q7UUFDN0Ms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QUNNLG9CQUFvQjtzQkFBMUQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBRzVCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuLy8gVmlzXG5pbXBvcnQgeyBBbm5vdGF0aW9ucywgQXhpcywgQ29udGludW91c1NjYWxlLCBDcm9zc2hhaXIsIERpcmVjdGlvbiwgU3BhY2luZywgVG9vbHRpcCwgWFlDb250YWluZXIsIFhZQ29udGFpbmVyQ29uZmlnSW50ZXJmYWNlIH0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcbmltcG9ydCB7IFZpc1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnXG5pbXBvcnQgeyBWaXNBbm5vdGF0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMteHktY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGA8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJ1bm92aXMteHktY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5gLFxuICBzdHlsZXM6IFsnLnVub3Zpcy14eS1jb250YWluZXIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0nXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzWFlDb250YWluZXJDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZlxuICBAQ29udGVudENoaWxkcmVuKFZpc1hZQ29tcG9uZW50KSB2aXNDb21wb25lbnRzOiBRdWVyeUxpc3Q8VmlzWFlDb21wb25lbnQ+XG4gIEBDb250ZW50Q2hpbGQoVmlzVG9vbHRpcENvbXBvbmVudCkgdG9vbHRpcENvbXBvbmVudDogVmlzVG9vbHRpcENvbXBvbmVudFxuICBAQ29udGVudENoaWxkKFZpc0Fubm90YXRpb25zQ29tcG9uZW50KSBhbm5vdGF0aW9uc0NvbXBvbmVudDogVmlzQW5ub3RhdGlvbnNDb21wb25lbnRcblxuICAvKiogV2lkdGggaW4gcGl4ZWxzLiBCeSBkZWZhdWx0LCBDb250YWluZXIgYXV0b21hdGljYWxseSBmaXRzIHRvIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgZWxlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAuICovXG4gIEBJbnB1dCgpIHdpZHRoPzogbnVtYmVyXG4gIC8qKiBIZWlnaHQgaW4gcGl4ZWxzLiBCeSBkZWZhdWx0LCBDb250YWluZXIgYXV0b21hdGljYWxseSBmaXRzIHRvIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgZWxlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAuICovXG4gIEBJbnB1dCgpIGhlaWdodD86IG51bWJlclxuXG4gIC8qKiBTY2FsZSBmb3IgWCBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gRGVmYXVsdDogYFNjYWxlLnNjYWxlTGluZWFyKClgICovXG4gIEBJbnB1dCgpIHhTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuICAvKiogU2NhbGUgZG9tYWluIChkYXRhIGV4dGVudCkgZm9yIFggZGltZW5zaW9uLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIGRhdGEuICovXG4gIEBJbnB1dCgpIHhEb21haW4/OiBbbnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdXG4gIC8qKiBDb25zdHJhaW50IHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBYIHNjYWxlIGRvbWFpbi4gVXNlZnVsIHdoZW4gdGhlIGRhdGEgaXMgcGxvdHRlZCBhbG9uZyB0aGUgWCBheGlzLlxuICAgKiBGb3IgZXhhbXBsZSwgaW1hZ2luZSB0aGF0IHlvdSBoYXZlIGEgY2hhcnQgd2l0aCBkeW5hbWljIGRhdGEgdGhhdCBoYXMgbmVnYXRpdmUgdmFsdWVzLiBXaGVuIHZhbHVlcyBhcmUgc21hbGxcbiAgICogKGxldCdzIHNheSBpbiB0aGUgcmFuZ2Ugb2YgWy0wLjAxLCAwXSksIHlvdSBtaWdodCBzdGlsbCB3YW50IHRoZSBjaGFydCB0byBkaXNwbGF5IHNvbWUgbWVhbmluZ2Z1bCB2YWx1ZSByYW5nZSAoZS5nLiBbLTEsIDBdKS4gVGhhdCBjYW5cbiAgICogYmUgYWNoaWV2ZWQgYnkgc2V0dGluZyBgeERvbWFpbk1pbkNvbnN0cmFpbnRgIHRvIGBbdW5kZWZpbmVkLCAtMV1gLiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpZiB5b3Ugd2FudCB0byBjdXQgb2ZmIHRoZVxuICAgKiB2YWx1ZXMgdGhhdCBhcmUgdG9vIGxvdyAobGV0J3Mgc2F5IGxvd2VyIHRoYW4gLTEwMCksIHlvdSBjYW4gc2V0IHRoZSBjb25zdHJhaW50IHRvIGBbLTEwMCwgLTFdYFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4RG9tYWluTWluQ29uc3RyYWludD86IFtudW1iZXIgfCB1bmRlZmluZWQsIG51bWJlciB8IHVuZGVmaW5lZF1cbiAgLyoqIENvbnN0cmFpbnQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIFggc2NhbGUgZG9tYWluLiBVc2VmdWwgd2hlbiB0aGUgZGF0YSBpcyBwbG90dGVkIGFsb25nIHRoZSBYIGF4aXMuXG4gICAqIEZvciBleGFtcGxlLCBpbWFnaW5lIHRoYXQgeW91IGhhdmUgYSBjaGFydCB3aXRoIGR5bmFtaWMgZGF0YS4gV2hlbiB2YWx1ZXMgYXJlIHNtYWxsXG4gICAqIChsZXQncyBzYXkgPCAwLjAxKSwgeW91IG1pZ2h0IHN0aWxsIHdhbnQgdGhlIGNoYXJ0IHRvIGRpc3BsYXkgc29tZSBtZWFuaW5nZnVsIHZhbHVlIHJhbmdlIChlLmcuIFswLCAxXSkuIFRoYXQgY2FuXG4gICAqIGJlIGFjaGlldmVkIGJ5IHNldHRpbmcgYHhEb21haW5NYXhDb25zdHJhaW50YCB0byBgWzEsIHVuZGVmaW5lZF1gLiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpZiB5b3Ugd2FudCB0byBjdXQgb2ZmIHRoZVxuICAgKiB2YWx1ZXMgdGhhdCBhcmUgdG9vIGhpZ2ggKGxldCdzIHNheSBoaWdoZXIgdGhhbiAxMDApLCB5b3UgY2FuIHNldCB0aGUgY29uc3RyYWludCB0byBgWzEsIDEwMF1gXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhEb21haW5NYXhDb25zdHJhaW50PzogW251bWJlciB8IHVuZGVmaW5lZCwgbnVtYmVyIHwgdW5kZWZpbmVkXVxuICAvKiogRm9yY2Ugc2V0IHRoZSBYIHNjYWxlIHJhbmdlIChpbiB0aGUgc2NyZWVuIHNwYWNlKS4gQnkgZGVmYXVsdCB0aGUgcmFuZ2UgaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZVxuICAgKiBjaGFydCdzIHNldCB1cCAqL1xuICBASW5wdXQoKSB4UmFuZ2U/OiBbbnVtYmVyLCBudW1iZXJdXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5TY2FsZUxpbmVhci4gRGVmYXVsdDogYFNjYWxlLlNjYWxlTGluZWFyKClgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuICAvKiogU2NhbGUgZG9tYWluIChkYXRhIGV4dGVudCkgZm9yIFkgZGltZW5zaW9uLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIGRhdGEuICovXG4gIEBJbnB1dCgpIHlEb21haW4/OiBbbnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdXG4gIC8qKiBDb25zdHJhaW50IHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBZIHNjYWxlIGRvbWFpbi5cbiAgICogRm9yIGV4YW1wbGUsIGltYWdpbmUgdGhhdCB5b3UgaGF2ZSBhIGNoYXJ0IHdpdGggZHluYW1pYyBkYXRhIHRoYXQgaGFzIG5lZ2F0aXZlIHZhbHVlcy4gV2hlbiB2YWx1ZXMgYXJlIHNtYWxsXG4gICAqIChsZXQncyBzYXkgaW4gdGhlIHJhbmdlIG9mIFstMC4wMSwgMF0pLCB5b3UgbWlnaHQgc3RpbGwgd2FudCB0aGUgY2hhcnQgdG8gZGlzcGxheSBzb21lIG1lYW5pbmdmdWwgdmFsdWUgcmFuZ2UgKGUuZy4gWy0xLCAwXSkuIFRoYXQgY2FuXG4gICAqIGJlIGFjaGlldmVkIGJ5IHNldHRpbmcgYHlEb21haW5NaW5Db25zdHJhaW50YCB0byBgW3VuZGVmaW5lZCwgLTFdYC4gSW4gYWRkaXRpb24gdG8gdGhhdCwgaWYgeW91IHdhbnQgdG8gY3V0IG9mZiB0aGVcbiAgICogdmFsdWVzIHRoYXQgYXJlIHRvbyBsb3cgKGxldCdzIHNheSBsb3dlciB0aGFuIC0xMDApLCB5b3UgY2FuIHNldCB0aGUgY29uc3RyYWludCB0byBgWy0xMDAsIC0xXWBcbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeURvbWFpbk1pbkNvbnN0cmFpbnQ/OiBbbnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdID0gdW5kZWZpbmVkXG4gIC8qKiBDb25zdHJhaW50IHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBZIHNjYWxlIGRvbWFpbi5cbiAgICogRm9yIGV4YW1wbGUsIGltYWdpbmUgdGhhdCB5b3UgaGF2ZSBhIGNoYXJ0IHdpdGggZHluYW1pYyBkYXRhLiBXaGVuIHZhbHVlcyBhcmUgc21hbGxcbiAgICogKGxldCdzIHNheSA8IDAuMDEpLCB5b3UgbWlnaHQgc3RpbGwgd2FudCB0aGUgY2hhcnQgdG8gZGlzcGxheSBzb21lIG1lYW5pbmdmdWwgdmFsdWUgcmFuZ2UgKGUuZy4gWzAsIDFdKS4gVGhhdCBjYW5cbiAgICogYmUgYWNoaWV2ZWQgYnkgc2V0dGluZyBgeURvbWFpbk1heENvbnN0cmFpbnRgIHRvIGBbMSwgdW5kZWZpbmVkXWAuIEluIGFkZGl0aW9uIHRvIHRoYXQsIGlmIHlvdSB3YW50IHRvIGN1dCBvZmYgdGhlXG4gICAqIHZhbHVlcyB0aGF0IGFyZSB0b28gaGlnaCAobGV0J3Mgc2F5IGhpZ2hlciB0aGFuIDEwMCksIHlvdSBjYW4gc2V0IHRoZSBjb25zdHJhaW50IHRvIGBbMSwgMTAwXWBcbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeURvbWFpbk1heENvbnN0cmFpbnQ/OiBbbnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdXG4gIC8qKiBGb3JjZSBzZXQgdGhlIFkgc2NhbGUgcmFuZ2UgKGluIHRoZSBzY3JlZW4gc3BhY2UpLiBCeSBkZWZhdWx0IHRoZSByYW5nZSBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlXG4gICAqIGNoYXJ0J3Mgc2V0IHVwICovXG4gIEBJbnB1dCgpIHlSYW5nZT86IFtudW1iZXIsIG51bWJlcl1cbiAgLyoqIFkgQXhpcyBkaXJlY3Rpb24uIERlZmF1bHQ6IGBEaXJlY3Rpb24uTm9ydGhgICovXG4gIEBJbnB1dCgpIHlEaXJlY3Rpb24/OiBEaXJlY3Rpb24uU291dGggfCBEaXJlY3Rpb24uTm9ydGggfCBzdHJpbmcgPSBEaXJlY3Rpb24uTm9ydGhcbiAgLyoqIFByZXZlbnRzIHRoZSBjaGFydCBkb21haW4gZnJvbSBiZWluZyBlbXB0eSAod2hlbiBkb21haW4ncyBtaW4gYW5kIG1heCB2YWx1ZXMgYXJlIGVxdWFsKS5cbiAgICogIFRoYXQgdXN1YWxseSBoYXBwZW5zIHdoZW4gYWxsIHRoZSBkYXRhIHZhbHVlcyBhcmUgdGhlIHNhbWUgb3Igd2hlbiB0aGVyZSdzIG5vIGRhdGEuXG4gICAqICBTZXR0aW5nIHRvIGB0cnVlYCB3aWxsIGF1dG9tYXRpY2FsbHkgZXh0ZW5kIHRoZSBkb21haW4gYnkgYCsxYCB3aGVuIG5lZWRlZC5cbiAgICogIFNldHRpbmcgdG8gYG51bGxgIHdpbGwgZXh0ZW5kIHRoZSBkb21haW4gb25seSB3aGVuIHRoZXJlJ3Mgbm8gZGF0YS5cbiAgICogIFNldHRpbmcgdG8gYGZhbHNlYCB3aWxsIGtlZXAgdGhlIGRvbWFpbiBhcyBpcy5cbiAgICogIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBwcmV2ZW50RW1wdHlEb21haW4/OiBib29sZWFuIHwgbnVsbCA9IG51bGxcblxuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIGFsbCB0aGUgY29tcG9uZW50cyB3aXRoaW4gdGhlIGNvbnRhaW5lci4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXIgPSB1bmRlZmluZWRcbiAgLyoqIE1hcmdpbnMuIERlZmF1bHQ6IGB7IHRvcDogMCwgYm90dG9tOiAwLCBsZWZ0OiAwLCByaWdodDogMCB9YCAqL1xuICBASW5wdXQoKSBtYXJnaW4/OiBTcGFjaW5nID0geyB0b3A6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgcmlnaHQ6IDAgfVxuICAvKiogUGFkZGluZy4gRGVmYXVsdDogYHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1gICovXG4gIEBJbnB1dCgpIHBhZGRpbmc/OiBTcGFjaW5nID0ge31cbiAgLyoqIFNldHMgdGhlIFkgc2NhbGUgZG9tYWluIGJhc2VkIG9uIHRoZSBjdXJyZW50IFggc2NhbGUgZG9tYWluIChub3QgdGhlIHdob2xlIGRhdGFzZXQpLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIHNjYWxlQnlEb21haW4/OiBib29sZWFuXG4gIC8qKiBFbmFibGVzIGF1dG9tYXRpYyBjYWxjdWxhdGlvbiBvZiBjaGFydCBtYXJnaW5zIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBheGVzLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgYXV0b01hcmdpbj86IGJvb2xlYW4gPSB0cnVlXG5cbiAgLyoqIEFsdGVybmF0aXZlIHRleHQgZGVzY3JpcHRpb24gb2YgdGhlIGNoYXJ0IGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLiBJdCB3aWxsIGJlIGFwcGxpZWQgYXMgYW5cbiAgICogYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byB0aGUgZGl2IGVsZW1lbnQgY29udGFpbmluZyB5b3VyIGNoYXJ0LiBEZWZhdWx0OiBgdW5kZWZpbmVkYC5cbiAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBEYXRhIHRvIGJlIHBhc3NlZCB0byBhbGwgY2hpbGQgY29tcG9uZW50cy4gQnV0IGlmIGBkYXRhYCBpcyBgdW5kZWZpbmVkYCBpdCdsbCB0byBiZSBwYXNzZWQgYWxsb3dpbmcgY29tcG9uZW50cyB0b1xuICAgKiBoYXZlIHRoZWlyIGluZGl2aWR1YWwgZGF0YS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZGF0YT86IERhdHVtW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICBjaGFydDogWFlDb250YWluZXI8RGF0dW0+XG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IFhZQ29udGFpbmVyPERhdHVtPih0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmdldENvbmZpZygpLCB0aGlzLmRhdGEpXG4gICAgdGhpcy5wYXNzQ29udGFpbmVyUmVmZXJlbmNlVG9DaGlsZHJlbigpXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQgKCk6IHZvaWQge1xuICAgIC8vIFF1ZXJ5TGlzdCBkb2VzIHVuc3Vic2NyaWJlIGF1dG9tYXRpY2FsbHkgd2hlbiBpdCBnZXRzIGRlc3Ryb3llZFxuICAgIHRoaXMudmlzQ29tcG9uZW50cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnBhc3NDb250YWluZXJSZWZlcmVuY2VUb0NoaWxkcmVuKClcbiAgICAgIHRoaXMuY2hhcnQ/LnVwZGF0ZUNvbnRhaW5lcih0aGlzLmdldENvbmZpZygpKVxuICAgIH0pXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZlbnRSZW5kZXIgPSB0cnVlXG5cbiAgICAvLyBTZXQgbmV3IERhdGEgd2l0aG91dCByZS1yZW5kZXJcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7XG4gICAgICB0aGlzLmNoYXJ0Py5zZXREYXRhKHRoaXMuZGF0YSwgcHJldmVudFJlbmRlcilcbiAgICAgIGRlbGV0ZSBjaGFuZ2VzLmRhdGFcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgQ29udGFpbmVyIGFuZCByZW5kZXJcbiAgICB0aGlzLmNoYXJ0Py51cGRhdGVDb250YWluZXIodGhpcy5nZXRDb25maWcoKSlcbiAgfVxuXG4gIGdldENvbmZpZyAoKTogWFlDb250YWluZXJDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkdXJhdGlvbiwgbWFyZ2luLCBwYWRkaW5nLCBzY2FsZUJ5RG9tYWluLCBhdXRvTWFyZ2luLCB3aWR0aCwgaGVpZ2h0LFxuICAgICAgeFNjYWxlLCB4RG9tYWluLCB4RG9tYWluTWluQ29uc3RyYWludCwgeERvbWFpbk1heENvbnN0cmFpbnQsIHhSYW5nZSxcbiAgICAgIHlTY2FsZSwgeURvbWFpbiwgeURvbWFpbk1pbkNvbnN0cmFpbnQsIHlEb21haW5NYXhDb25zdHJhaW50LCB5UmFuZ2UsXG4gICAgICB5RGlyZWN0aW9uLCBhcmlhTGFiZWwsXG4gICAgfSA9IHRoaXNcbiAgICBjb25zdCB2aXNDb21wb25lbnRzID0gdGhpcy52aXNDb21wb25lbnRzLnRvQXJyYXkoKS5tYXAoZCA9PiBkLmNvbXBvbmVudClcblxuICAgIGNvbnN0IGNyb3NzaGFpciA9IHZpc0NvbXBvbmVudHMuZmluZChjID0+IGMgaW5zdGFuY2VvZiBDcm9zc2hhaXIpIGFzIENyb3NzaGFpcjxEYXR1bT5cbiAgICBjb25zdCB0b29sdGlwID0gdGhpcy50b29sdGlwQ29tcG9uZW50Py5jb21wb25lbnQgYXMgVG9vbHRpcFxuICAgIGNvbnN0IHhBeGlzID0gdmlzQ29tcG9uZW50cy5maW5kKGMgPT4gYyBpbnN0YW5jZW9mIEF4aXMgJiYgYz8uY29uZmlnPy50eXBlID09PSAneCcpIGFzIEF4aXM8RGF0dW0+XG4gICAgY29uc3QgeUF4aXMgPSB2aXNDb21wb25lbnRzLmZpbmQoYyA9PiBjIGluc3RhbmNlb2YgQXhpcyAmJiBjPy5jb25maWc/LnR5cGUgPT09ICd5JykgYXMgQXhpczxEYXR1bT5cbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuYW5ub3RhdGlvbnNDb21wb25lbnQ/LmNvbXBvbmVudCBhcyBBbm5vdGF0aW9uc1xuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IHZpc0NvbXBvbmVudHMuZmlsdGVyKGMgPT4gIShjIGluc3RhbmNlb2YgQ3Jvc3NoYWlyKSAmJiAhKGMgaW5zdGFuY2VvZiBUb29sdGlwKSAmJiAhKGMgaW5zdGFuY2VvZiBBeGlzKSlcblxuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnRzLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIG1hcmdpbixcbiAgICAgIHBhZGRpbmcsXG4gICAgICB4QXhpcyxcbiAgICAgIHlBeGlzLFxuICAgICAgdG9vbHRpcCxcbiAgICAgIGNyb3NzaGFpcixcbiAgICAgIGFubm90YXRpb25zLFxuICAgICAgc2NhbGVCeURvbWFpbixcbiAgICAgIGF1dG9NYXJnaW4sXG4gICAgICB4U2NhbGUsXG4gICAgICB4RG9tYWluLFxuICAgICAgeERvbWFpbk1pbkNvbnN0cmFpbnQsXG4gICAgICB4RG9tYWluTWF4Q29uc3RyYWludCxcbiAgICAgIHhSYW5nZSxcbiAgICAgIHlTY2FsZSxcbiAgICAgIHlEb21haW4sXG4gICAgICB5RG9tYWluTWluQ29uc3RyYWludCxcbiAgICAgIHlEb21haW5NYXhDb25zdHJhaW50LFxuICAgICAgeVJhbmdlLFxuICAgICAgeURpcmVjdGlvbixcbiAgICAgIGFyaWFMYWJlbCxcbiAgICB9XG4gIH1cblxuICBwYXNzQ29udGFpbmVyUmVmZXJlbmNlVG9DaGlsZHJlbiAoKTogdm9pZCB7XG4gICAgLy8gV2Ugc2V0IHRoZSBjb250YWluZXIgZm9yIGVhY2ggdmlzIGNvbXBvbmVudCB0byB0cmlnZ2VyIGNoYXJ0IHJlLXJlbmRlciBpZiB0aGUgZGF0YSBoYXMgY2hhbmdlZFxuICAgIGlmICh0aGlzLmNoYXJ0KSB0aGlzLnZpc0NvbXBvbmVudHMudG9BcnJheSgpLmZvckVhY2goYyA9PiB7IGMuY29tcG9uZW50Q29udGFpbmVyID0gdGhpcy5jaGFydCB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3kgKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnQ/LmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb250YWluZXJzL3h5LWNvbnRhaW5lci94eS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE1BQU07QUFDTixPQUFPLEVBQWUsSUFBSSxFQUFtQixTQUFTLEVBQUUsU0FBUyxFQUFXLE9BQU8sRUFBRSxXQUFXLEVBQThCLE1BQU0sWUFBWSxDQUFBO0FBQ2hKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7O0FBUzVGLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFvREU7Ozs7O2tDQUswQjtRQUNqQix5QkFBb0IsR0FBOEMsU0FBUyxDQUFBO1FBV3BGLG1EQUFtRDtRQUMxQyxlQUFVLEdBQWdELFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDbEY7Ozs7OzhCQUtzQjtRQUNiLHVCQUFrQixHQUFvQixJQUFJLENBQUE7UUFFbkQsMEZBQTBGO1FBQ2pGLGFBQVEsR0FBWSxTQUFTLENBQUE7UUFDdEMsbUVBQW1FO1FBQzFELFdBQU0sR0FBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQTtRQUNwRSxtRUFBbUU7UUFDMUQsWUFBTyxHQUFhLEVBQUUsQ0FBQTtRQUcvQixvR0FBb0c7UUFDM0YsZUFBVSxHQUFhLElBQUksQ0FBQTtRQU9wQzs4REFDc0Q7UUFDN0Ms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QUNNLG9CQUFvQjtzQkFBMUQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBTzVCLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuLy8gVmlzXG5pbXBvcnQgeyBBbm5vdGF0aW9ucywgQXhpcywgQ29udGludW91c1NjYWxlLCBDcm9zc2hhaXIsIERpcmVjdGlvbiwgU3BhY2luZywgVG9vbHRpcCwgWFlDb250YWluZXIsIFhZQ29udGFpbmVyQ29uZmlnSW50ZXJmYWNlIH0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcbmltcG9ydCB7IFZpc1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnXG5pbXBvcnQgeyBWaXNBbm5vdGF0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMteHktY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGA8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJ1bm92aXMteHktY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5gLFxuICBzdHlsZXM6IFsnLnVub3Zpcy14eS1jb250YWluZXIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0nXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzWFlDb250YWluZXJDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZlxuICBAQ29udGVudENoaWxkcmVuKFZpc1hZQ29tcG9uZW50KSB2aXNDb21wb25lbnRzOiBRdWVyeUxpc3Q8VmlzWFlDb21wb25lbnQ+XG4gIEBDb250ZW50Q2hpbGQoVmlzVG9vbHRpcENvbXBvbmVudCkgdG9vbHRpcENvbXBvbmVudDogVmlzVG9vbHRpcENvbXBvbmVudFxuICBAQ29udGVudENoaWxkKFZpc0Fubm90YXRpb25zQ29tcG9uZW50KSBhbm5vdGF0aW9uc0NvbXBvbmVudDogVmlzQW5ub3RhdGlvbnNDb21wb25lbnRcblxuICAvKiogV2lkdGggaW4gcGl4ZWxzIG9yIGluIENTUyB1bml0cy5cbiAgICogUGVyY2VudGFnZSB1bml0cyBgXCIlXCJgIGFyZSBub3Qgc3VwcG9ydGVkIGhlcmUuIElmIHlvdSB3YW50IHRvIHNldCBgd2lkdGhgIGFzIGEgcGVyY2VudGFnZSwgZG8gaXQgdmlhIGBzdHlsZWAgb3IgYGNsYXNzYFxuICAgKiBvZiB0aGUgY29ycmVzcG9uZGluZyBET00gZWxlbWVudC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGBcbiAgKi9cbiAgQElucHV0KCkgd2lkdGg/OiBudW1iZXJcbiAgLyoqIEhlaWdodCBpbiBwaXhlbHMgb3IgaW4gQ1NTIHVuaXRzLlxuICAgKiBQZXJjZW50YWdlIHVuaXRzIGBcIiVcImAgYXJlIG5vdCBzdXBwb3J0ZWQgaGVyZS4gSWYgeW91IHdhbnQgdG8gc2V0IGBoZWlnaHRgIGFzIGEgcGVyY2VudGFnZSwgZG8gaXQgdmlhIGBzdHlsZWAgb3IgYGNsYXNzYFxuICAgKiBvZiB0aGUgY29ycmVzcG9uZGluZyBET00gZWxlbWVudC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGBcbiAgKi9cbiAgQElucHV0KCkgaGVpZ2h0PzogbnVtYmVyXG5cbiAgLyoqIFNjYWxlIGZvciBYIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBEZWZhdWx0OiBgU2NhbGUuc2NhbGVMaW5lYXIoKWAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG4gIC8qKiBTY2FsZSBkb21haW4gKGRhdGEgZXh0ZW50KSBmb3IgWCBkaW1lbnNpb24uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gZGF0YS4gKi9cbiAgQElucHV0KCkgeERvbWFpbj86IFtudW1iZXIgfCB1bmRlZmluZWQsIG51bWJlciB8IHVuZGVmaW5lZF1cbiAgLyoqIENvbnN0cmFpbnQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIFggc2NhbGUgZG9tYWluLiBVc2VmdWwgd2hlbiB0aGUgZGF0YSBpcyBwbG90dGVkIGFsb25nIHRoZSBYIGF4aXMuXG4gICAqIEZvciBleGFtcGxlLCBpbWFnaW5lIHRoYXQgeW91IGhhdmUgYSBjaGFydCB3aXRoIGR5bmFtaWMgZGF0YSB0aGF0IGhhcyBuZWdhdGl2ZSB2YWx1ZXMuIFdoZW4gdmFsdWVzIGFyZSBzbWFsbFxuICAgKiAobGV0J3Mgc2F5IGluIHRoZSByYW5nZSBvZiBbLTAuMDEsIDBdKSwgeW91IG1pZ2h0IHN0aWxsIHdhbnQgdGhlIGNoYXJ0IHRvIGRpc3BsYXkgc29tZSBtZWFuaW5nZnVsIHZhbHVlIHJhbmdlIChlLmcuIFstMSwgMF0pLiBUaGF0IGNhblxuICAgKiBiZSBhY2hpZXZlZCBieSBzZXR0aW5nIGB4RG9tYWluTWluQ29uc3RyYWludGAgdG8gYFt1bmRlZmluZWQsIC0xXWAuIEluIGFkZGl0aW9uIHRvIHRoYXQsIGlmIHlvdSB3YW50IHRvIGN1dCBvZmYgdGhlXG4gICAqIHZhbHVlcyB0aGF0IGFyZSB0b28gbG93IChsZXQncyBzYXkgbG93ZXIgdGhhbiAtMTAwKSwgeW91IGNhbiBzZXQgdGhlIGNvbnN0cmFpbnQgdG8gYFstMTAwLCAtMV1gXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhEb21haW5NaW5Db25zdHJhaW50PzogW251bWJlciB8IHVuZGVmaW5lZCwgbnVtYmVyIHwgdW5kZWZpbmVkXVxuICAvKiogQ29uc3RyYWludCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgWCBzY2FsZSBkb21haW4uIFVzZWZ1bCB3aGVuIHRoZSBkYXRhIGlzIHBsb3R0ZWQgYWxvbmcgdGhlIFggYXhpcy5cbiAgICogRm9yIGV4YW1wbGUsIGltYWdpbmUgdGhhdCB5b3UgaGF2ZSBhIGNoYXJ0IHdpdGggZHluYW1pYyBkYXRhLiBXaGVuIHZhbHVlcyBhcmUgc21hbGxcbiAgICogKGxldCdzIHNheSA8IDAuMDEpLCB5b3UgbWlnaHQgc3RpbGwgd2FudCB0aGUgY2hhcnQgdG8gZGlzcGxheSBzb21lIG1lYW5pbmdmdWwgdmFsdWUgcmFuZ2UgKGUuZy4gWzAsIDFdKS4gVGhhdCBjYW5cbiAgICogYmUgYWNoaWV2ZWQgYnkgc2V0dGluZyBgeERvbWFpbk1heENvbnN0cmFpbnRgIHRvIGBbMSwgdW5kZWZpbmVkXWAuIEluIGFkZGl0aW9uIHRvIHRoYXQsIGlmIHlvdSB3YW50IHRvIGN1dCBvZmYgdGhlXG4gICAqIHZhbHVlcyB0aGF0IGFyZSB0b28gaGlnaCAobGV0J3Mgc2F5IGhpZ2hlciB0aGFuIDEwMCksIHlvdSBjYW4gc2V0IHRoZSBjb25zdHJhaW50IHRvIGBbMSwgMTAwXWBcbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeERvbWFpbk1heENvbnN0cmFpbnQ/OiBbbnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdXG4gIC8qKiBGb3JjZSBzZXQgdGhlIFggc2NhbGUgcmFuZ2UgKGluIHRoZSBzY3JlZW4gc3BhY2UpLiBCeSBkZWZhdWx0IHRoZSByYW5nZSBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlXG4gICAqIGNoYXJ0J3Mgc2V0IHVwICovXG4gIEBJbnB1dCgpIHhSYW5nZT86IFtudW1iZXIsIG51bWJlcl1cblxuICAvKiogU2NhbGUgZm9yIFkgZGltZW5zaW9uLCBlLmcuIFNjYWxlLlNjYWxlTGluZWFyLiBEZWZhdWx0OiBgU2NhbGUuU2NhbGVMaW5lYXIoKWAgKi9cbiAgQElucHV0KCkgeVNjYWxlPzogQ29udGludW91c1NjYWxlXG4gIC8qKiBTY2FsZSBkb21haW4gKGRhdGEgZXh0ZW50KSBmb3IgWSBkaW1lbnNpb24uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gZGF0YS4gKi9cbiAgQElucHV0KCkgeURvbWFpbj86IFtudW1iZXIgfCB1bmRlZmluZWQsIG51bWJlciB8IHVuZGVmaW5lZF1cbiAgLyoqIENvbnN0cmFpbnQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIFkgc2NhbGUgZG9tYWluLlxuICAgKiBGb3IgZXhhbXBsZSwgaW1hZ2luZSB0aGF0IHlvdSBoYXZlIGEgY2hhcnQgd2l0aCBkeW5hbWljIGRhdGEgdGhhdCBoYXMgbmVnYXRpdmUgdmFsdWVzLiBXaGVuIHZhbHVlcyBhcmUgc21hbGxcbiAgICogKGxldCdzIHNheSBpbiB0aGUgcmFuZ2Ugb2YgWy0wLjAxLCAwXSksIHlvdSBtaWdodCBzdGlsbCB3YW50IHRoZSBjaGFydCB0byBkaXNwbGF5IHNvbWUgbWVhbmluZ2Z1bCB2YWx1ZSByYW5nZSAoZS5nLiBbLTEsIDBdKS4gVGhhdCBjYW5cbiAgICogYmUgYWNoaWV2ZWQgYnkgc2V0dGluZyBgeURvbWFpbk1pbkNvbnN0cmFpbnRgIHRvIGBbdW5kZWZpbmVkLCAtMV1gLiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpZiB5b3Ugd2FudCB0byBjdXQgb2ZmIHRoZVxuICAgKiB2YWx1ZXMgdGhhdCBhcmUgdG9vIGxvdyAobGV0J3Mgc2F5IGxvd2VyIHRoYW4gLTEwMCksIHlvdSBjYW4gc2V0IHRoZSBjb25zdHJhaW50IHRvIGBbLTEwMCwgLTFdYFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5RG9tYWluTWluQ29uc3RyYWludD86IFtudW1iZXIgfCB1bmRlZmluZWQsIG51bWJlciB8IHVuZGVmaW5lZF0gPSB1bmRlZmluZWRcbiAgLyoqIENvbnN0cmFpbnQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIFkgc2NhbGUgZG9tYWluLlxuICAgKiBGb3IgZXhhbXBsZSwgaW1hZ2luZSB0aGF0IHlvdSBoYXZlIGEgY2hhcnQgd2l0aCBkeW5hbWljIGRhdGEuIFdoZW4gdmFsdWVzIGFyZSBzbWFsbFxuICAgKiAobGV0J3Mgc2F5IDwgMC4wMSksIHlvdSBtaWdodCBzdGlsbCB3YW50IHRoZSBjaGFydCB0byBkaXNwbGF5IHNvbWUgbWVhbmluZ2Z1bCB2YWx1ZSByYW5nZSAoZS5nLiBbMCwgMV0pLiBUaGF0IGNhblxuICAgKiBiZSBhY2hpZXZlZCBieSBzZXR0aW5nIGB5RG9tYWluTWF4Q29uc3RyYWludGAgdG8gYFsxLCB1bmRlZmluZWRdYC4gSW4gYWRkaXRpb24gdG8gdGhhdCwgaWYgeW91IHdhbnQgdG8gY3V0IG9mZiB0aGVcbiAgICogdmFsdWVzIHRoYXQgYXJlIHRvbyBoaWdoIChsZXQncyBzYXkgaGlnaGVyIHRoYW4gMTAwKSwgeW91IGNhbiBzZXQgdGhlIGNvbnN0cmFpbnQgdG8gYFsxLCAxMDBdYFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5RG9tYWluTWF4Q29uc3RyYWludD86IFtudW1iZXIgfCB1bmRlZmluZWQsIG51bWJlciB8IHVuZGVmaW5lZF1cbiAgLyoqIEZvcmNlIHNldCB0aGUgWSBzY2FsZSByYW5nZSAoaW4gdGhlIHNjcmVlbiBzcGFjZSkuIEJ5IGRlZmF1bHQgdGhlIHJhbmdlIGlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGVcbiAgICogY2hhcnQncyBzZXQgdXAgKi9cbiAgQElucHV0KCkgeVJhbmdlPzogW251bWJlciwgbnVtYmVyXVxuICAvKiogWSBBeGlzIGRpcmVjdGlvbi4gRGVmYXVsdDogYERpcmVjdGlvbi5Ob3J0aGAgKi9cbiAgQElucHV0KCkgeURpcmVjdGlvbj86IERpcmVjdGlvbi5Tb3V0aCB8IERpcmVjdGlvbi5Ob3J0aCB8IHN0cmluZyA9IERpcmVjdGlvbi5Ob3J0aFxuICAvKiogUHJldmVudHMgdGhlIGNoYXJ0IGRvbWFpbiBmcm9tIGJlaW5nIGVtcHR5ICh3aGVuIGRvbWFpbidzIG1pbiBhbmQgbWF4IHZhbHVlcyBhcmUgZXF1YWwpLlxuICAgKiAgVGhhdCB1c3VhbGx5IGhhcHBlbnMgd2hlbiBhbGwgdGhlIGRhdGEgdmFsdWVzIGFyZSB0aGUgc2FtZSBvciB3aGVuIHRoZXJlJ3Mgbm8gZGF0YS5cbiAgICogIFNldHRpbmcgdG8gYHRydWVgIHdpbGwgYXV0b21hdGljYWxseSBleHRlbmQgdGhlIGRvbWFpbiBieSBgKzFgIHdoZW4gbmVlZGVkLlxuICAgKiAgU2V0dGluZyB0byBgbnVsbGAgd2lsbCBleHRlbmQgdGhlIGRvbWFpbiBvbmx5IHdoZW4gdGhlcmUncyBubyBkYXRhLlxuICAgKiAgU2V0dGluZyB0byBgZmFsc2VgIHdpbGwga2VlcCB0aGUgZG9tYWluIGFzIGlzLlxuICAgKiAgRGVmYXVsdDogYG51bGxgICovXG4gIEBJbnB1dCgpIHByZXZlbnRFbXB0eURvbWFpbj86IGJvb2xlYW4gfCBudWxsID0gbnVsbFxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgYWxsIHRoZSBjb21wb25lbnRzIHdpdGhpbiB0aGUgY29udGFpbmVyLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlciA9IHVuZGVmaW5lZFxuICAvKiogTWFyZ2lucy4gRGVmYXVsdDogYHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1gICovXG4gIEBJbnB1dCgpIG1hcmdpbj86IFNwYWNpbmcgPSB7IHRvcDogMCwgYm90dG9tOiAwLCBsZWZ0OiAwLCByaWdodDogMCB9XG4gIC8qKiBQYWRkaW5nLiBEZWZhdWx0OiBgeyB0b3A6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgcmlnaHQ6IDAgfWAgKi9cbiAgQElucHV0KCkgcGFkZGluZz86IFNwYWNpbmcgPSB7fVxuICAvKiogU2V0cyB0aGUgWSBzY2FsZSBkb21haW4gYmFzZWQgb24gdGhlIGN1cnJlbnQgWCBzY2FsZSBkb21haW4gKG5vdCB0aGUgd2hvbGUgZGF0YXNldCkuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgc2NhbGVCeURvbWFpbj86IGJvb2xlYW5cbiAgLyoqIEVuYWJsZXMgYXV0b21hdGljIGNhbGN1bGF0aW9uIG9mIGNoYXJ0IG1hcmdpbnMgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGF4ZXMuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBhdXRvTWFyZ2luPzogYm9vbGVhbiA9IHRydWVcblxuICAvKiogQWx0ZXJuYXRpdmUgdGV4dCBkZXNjcmlwdGlvbiBvZiB0aGUgY2hhcnQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuIEl0IHdpbGwgYmUgYXBwbGllZCBhcyBhblxuICAgKiBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBkaXYgZWxlbWVudCBjb250YWluaW5nIHlvdXIgY2hhcnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgLlxuICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG5cbiAgLyoqIERhdGEgdG8gYmUgcGFzc2VkIHRvIGFsbCBjaGlsZCBjb21wb25lbnRzLiBCdXQgaWYgYGRhdGFgIGlzIGB1bmRlZmluZWRgIGl0J2xsIHRvIGJlIHBhc3NlZCBhbGxvd2luZyBjb21wb25lbnRzIHRvXG4gICAqIGhhdmUgdGhlaXIgaW5kaXZpZHVhbCBkYXRhLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBkYXRhPzogRGF0dW1bXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuXG4gIGNoYXJ0OiBYWUNvbnRhaW5lcjxEYXR1bT5cblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnQgPSBuZXcgWFlDb250YWluZXI8RGF0dW0+KHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZ2V0Q29uZmlnKCksIHRoaXMuZGF0YSlcbiAgICB0aGlzLnBhc3NDb250YWluZXJSZWZlcmVuY2VUb0NoaWxkcmVuKClcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCAoKTogdm9pZCB7XG4gICAgLy8gUXVlcnlMaXN0IGRvZXMgdW5zdWJzY3JpYmUgYXV0b21hdGljYWxseSB3aGVuIGl0IGdldHMgZGVzdHJveWVkXG4gICAgdGhpcy52aXNDb21wb25lbnRzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucGFzc0NvbnRhaW5lclJlZmVyZW5jZVRvQ2hpbGRyZW4oKVxuICAgICAgdGhpcy5jaGFydD8udXBkYXRlQ29udGFpbmVyKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgfSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcHJldmVudFJlbmRlciA9IHRydWVcblxuICAgIC8vIFNldCBuZXcgRGF0YSB3aXRob3V0IHJlLXJlbmRlclxuICAgIGlmIChjaGFuZ2VzLmRhdGEpIHtcbiAgICAgIHRoaXMuY2hhcnQ/LnNldERhdGEodGhpcy5kYXRhLCBwcmV2ZW50UmVuZGVyKVxuICAgICAgZGVsZXRlIGNoYW5nZXMuZGF0YVxuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBDb250YWluZXIgYW5kIHJlbmRlclxuICAgIHRoaXMuY2hhcnQ/LnVwZGF0ZUNvbnRhaW5lcih0aGlzLmdldENvbmZpZygpKVxuICB9XG5cbiAgZ2V0Q29uZmlnICgpOiBYWUNvbnRhaW5lckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGR1cmF0aW9uLCBtYXJnaW4sIHBhZGRpbmcsIHNjYWxlQnlEb21haW4sIGF1dG9NYXJnaW4sIHdpZHRoLCBoZWlnaHQsXG4gICAgICB4U2NhbGUsIHhEb21haW4sIHhEb21haW5NaW5Db25zdHJhaW50LCB4RG9tYWluTWF4Q29uc3RyYWludCwgeFJhbmdlLFxuICAgICAgeVNjYWxlLCB5RG9tYWluLCB5RG9tYWluTWluQ29uc3RyYWludCwgeURvbWFpbk1heENvbnN0cmFpbnQsIHlSYW5nZSxcbiAgICAgIHlEaXJlY3Rpb24sIGFyaWFMYWJlbCxcbiAgICB9ID0gdGhpc1xuICAgIGNvbnN0IHZpc0NvbXBvbmVudHMgPSB0aGlzLnZpc0NvbXBvbmVudHMudG9BcnJheSgpLm1hcChkID0+IGQuY29tcG9uZW50KVxuXG4gICAgY29uc3QgY3Jvc3NoYWlyID0gdmlzQ29tcG9uZW50cy5maW5kKGMgPT4gYyBpbnN0YW5jZW9mIENyb3NzaGFpcikgYXMgQ3Jvc3NoYWlyPERhdHVtPlxuICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLnRvb2x0aXBDb21wb25lbnQ/LmNvbXBvbmVudCBhcyBUb29sdGlwXG4gICAgY29uc3QgeEF4aXMgPSB2aXNDb21wb25lbnRzLmZpbmQoYyA9PiBjIGluc3RhbmNlb2YgQXhpcyAmJiBjPy5jb25maWc/LnR5cGUgPT09ICd4JykgYXMgQXhpczxEYXR1bT5cbiAgICBjb25zdCB5QXhpcyA9IHZpc0NvbXBvbmVudHMuZmluZChjID0+IGMgaW5zdGFuY2VvZiBBeGlzICYmIGM/LmNvbmZpZz8udHlwZSA9PT0gJ3knKSBhcyBBeGlzPERhdHVtPlxuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5hbm5vdGF0aW9uc0NvbXBvbmVudD8uY29tcG9uZW50IGFzIEFubm90YXRpb25zXG5cbiAgICBjb25zdCBjb21wb25lbnRzID0gdmlzQ29tcG9uZW50cy5maWx0ZXIoYyA9PiAhKGMgaW5zdGFuY2VvZiBDcm9zc2hhaXIpICYmICEoYyBpbnN0YW5jZW9mIFRvb2x0aXApICYmICEoYyBpbnN0YW5jZW9mIEF4aXMpKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgbWFyZ2luLFxuICAgICAgcGFkZGluZyxcbiAgICAgIHhBeGlzLFxuICAgICAgeUF4aXMsXG4gICAgICB0b29sdGlwLFxuICAgICAgY3Jvc3NoYWlyLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBzY2FsZUJ5RG9tYWluLFxuICAgICAgYXV0b01hcmdpbixcbiAgICAgIHhTY2FsZSxcbiAgICAgIHhEb21haW4sXG4gICAgICB4RG9tYWluTWluQ29uc3RyYWludCxcbiAgICAgIHhEb21haW5NYXhDb25zdHJhaW50LFxuICAgICAgeFJhbmdlLFxuICAgICAgeVNjYWxlLFxuICAgICAgeURvbWFpbixcbiAgICAgIHlEb21haW5NaW5Db25zdHJhaW50LFxuICAgICAgeURvbWFpbk1heENvbnN0cmFpbnQsXG4gICAgICB5UmFuZ2UsXG4gICAgICB5RGlyZWN0aW9uLFxuICAgICAgYXJpYUxhYmVsLFxuICAgIH1cbiAgfVxuXG4gIHBhc3NDb250YWluZXJSZWZlcmVuY2VUb0NoaWxkcmVuICgpOiB2b2lkIHtcbiAgICAvLyBXZSBzZXQgdGhlIGNvbnRhaW5lciBmb3IgZWFjaCB2aXMgY29tcG9uZW50IHRvIHRyaWdnZXIgY2hhcnQgcmUtcmVuZGVyIGlmIHRoZSBkYXRhIGhhcyBjaGFuZ2VkXG4gICAgaWYgKHRoaXMuY2hhcnQpIHRoaXMudmlzQ29tcG9uZW50cy50b0FycmF5KCkuZm9yRWFjaChjID0+IHsgYy5jb21wb25lbnRDb250YWluZXIgPSB0aGlzLmNoYXJ0IH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSAoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpXG4gIH1cbn1cbiJdfQ==
|