kepler.gl 3.1.0 → 3.1.1
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/README.md +27 -132
- package/dist/src/common-utils/src/data-type.d.ts +9 -1
- package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
- package/dist/src/components/src/common/data-table/index.d.ts +1 -0
- package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
- package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
- package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
- package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
- package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
- package/dist/src/components/src/geocoder-panel.d.ts +2 -2
- package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/dist/src/constants/src/default-settings.d.ts +14 -1
- package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
- package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
- package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
- package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
- package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
- package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
- package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
- package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
- package/dist/src/processors/src/data-processor.d.ts +15 -1
- package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
- package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
- package/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/dist/src/utils/src/application-config.d.ts +4 -3
- package/dist/src/utils/src/data-utils.d.ts +9 -3
- package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
- package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
- package/dist/src/utils/src/map-utils.d.ts +1 -1
- package/dist/src/utils/src/plot.d.ts +2 -2
- package/package.json +5 -5
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
- package/src/ai-assistant/package.json +7 -7
- package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/dist/data-type.d.ts +9 -1
- package/src/common-utils/dist/data-type.js +50 -1
- package/src/common-utils/package.json +3 -3
- package/src/common-utils/src/data-type.ts +49 -1
- package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
- package/src/components/dist/common/data-table/header-cell.js +2 -2
- package/src/components/dist/common/data-table/index.d.ts +1 -0
- package/src/components/dist/common/data-table/index.js +5 -1
- package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
- package/src/components/dist/common/file-uploader/file-drop.js +152 -167
- package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
- package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
- package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
- package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
- package/src/components/dist/common/range-brush.js +3 -3
- package/src/components/dist/geocoder/geocoder.d.ts +7 -0
- package/src/components/dist/geocoder/geocoder.js +19 -11
- package/src/components/dist/geocoder-panel.d.ts +2 -2
- package/src/components/dist/geocoder-panel.js +64 -91
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
- package/src/components/dist/hooks/use-legend-position.js +8 -4
- package/src/components/dist/map/map-legend-panel.js +2 -3
- package/src/components/dist/modal-container.js +8 -8
- package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
- package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
- package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
- package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
- package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
- package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
- package/src/components/package.json +16 -16
- package/src/components/src/common/data-table/header-cell.tsx +2 -1
- package/src/components/src/common/data-table/index.tsx +4 -0
- package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
- package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
- package/src/components/src/common/range-brush.tsx +2 -2
- package/src/components/src/geocoder/geocoder.tsx +16 -8
- package/src/components/src/geocoder-panel.tsx +95 -85
- package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
- package/src/components/src/hooks/use-legend-position.ts +5 -2
- package/src/components/src/map/map-legend-panel.tsx +1 -2
- package/src/components/src/modal-container.tsx +7 -7
- package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
- package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
- package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
- package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
- package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
- package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
- package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
- package/src/constants/dist/default-settings.d.ts +14 -1
- package/src/constants/dist/default-settings.js +20 -5
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/src/default-settings.ts +16 -1
- package/src/constants/umd/keplergl.min.js +2 -2
- package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
- package/src/deckgl-arrow-layers/dist/constants.js +4 -15
- package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
- package/src/deckgl-arrow-layers/dist/index.js +1 -8
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
- package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
- package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
- package/src/deckgl-arrow-layers/package.json +2 -1
- package/src/deckgl-arrow-layers/src/constants.ts +0 -13
- package/src/deckgl-arrow-layers/src/index.ts +0 -2
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
- package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
- package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
- package/src/deckgl-layers/package.json +5 -5
- package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
- package/src/duckdb/dist/components/monaco-editor.js +4 -5
- package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
- package/src/duckdb/dist/components/preview-data-panel.js +7 -8
- package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
- package/src/duckdb/dist/components/schema-panel.js +41 -24
- package/src/duckdb/dist/components/sql-panel.js +245 -56
- package/src/duckdb/dist/init.js +20 -14
- package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
- package/src/duckdb/dist/processors/data-processor.js +4 -4
- package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
- package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
- package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
- package/src/duckdb/dist/table/duckdb-table.js +153 -261
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/components/monaco-editor.tsx +3 -3
- package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
- package/src/duckdb/src/components/schema-panel.tsx +92 -21
- package/src/duckdb/src/components/sql-panel.tsx +160 -22
- package/src/duckdb/src/init.ts +4 -1
- package/src/duckdb/src/processors/data-processor.ts +2 -2
- package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
- package/src/duckdb/src/table/duckdb-table.ts +61 -92
- package/src/effects/package.json +5 -5
- package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
- package/src/layers/dist/arc-layer/arc-layer.js +2 -3
- package/src/layers/dist/base-layer.d.ts +7 -6
- package/src/layers/dist/base-layer.js +36 -19
- package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
- package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
- package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
- package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
- package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
- package/src/layers/dist/icon-layer/icon-layer.js +19 -11
- package/src/layers/dist/index.d.ts +1 -1
- package/src/layers/dist/index.js +1 -1
- package/src/layers/dist/layer-text-label.d.ts +9 -0
- package/src/layers/dist/layer-text-label.js +51 -6
- package/src/layers/dist/layer-utils.d.ts +39 -30
- package/src/layers/dist/layer-utils.js +69 -9
- package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
- package/src/layers/dist/line-layer/line-layer.js +2 -3
- package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
- package/src/layers/dist/point-layer/point-layer.js +16 -8
- package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
- package/src/layers/dist/trip-layer/trip-layer.js +4 -2
- package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
- package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
- package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
- package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
- package/src/layers/package.json +11 -10
- package/src/layers/src/arc-layer/arc-layer.ts +1 -1
- package/src/layers/src/base-layer.ts +50 -9
- package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
- package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
- package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
- package/src/layers/src/icon-layer/icon-layer.ts +7 -3
- package/src/layers/src/index.ts +1 -2
- package/src/layers/src/layer-text-label.ts +53 -4
- package/src/layers/src/layer-utils.ts +88 -9
- package/src/layers/src/line-layer/line-layer.ts +1 -1
- package/src/layers/src/point-layer/point-layer.ts +15 -11
- package/src/layers/src/trip-layer/trip-layer.ts +4 -2
- package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
- package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
- package/src/localization/package.json +1 -1
- package/src/processors/dist/data-processor.d.ts +15 -1
- package/src/processors/dist/data-processor.js +104 -11
- package/src/processors/package.json +8 -7
- package/src/processors/src/data-processor.ts +116 -13
- package/src/reducers/dist/export-utils.js +2 -2
- package/src/reducers/dist/layer-utils.js +1 -1
- package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
- package/src/reducers/dist/provider-state-updaters.js +5 -2
- package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
- package/src/reducers/dist/vis-state-updaters.js +23 -12
- package/src/reducers/package.json +16 -16
- package/src/reducers/src/export-utils.ts +1 -1
- package/src/reducers/src/layer-utils.ts +2 -1
- package/src/reducers/src/provider-state-updaters.ts +4 -1
- package/src/reducers/src/vis-state-updaters.ts +45 -10
- package/src/schemas/dist/dataset-schema.js +35 -6
- package/src/schemas/package.json +7 -7
- package/src/schemas/src/dataset-schema.ts +36 -8
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +2 -2
- package/src/table/dist/dataset-utils.js +23 -14
- package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/src/table/dist/tileset/vector-tile-utils.js +122 -2
- package/src/table/package.json +5 -5
- package/src/table/src/dataset-utils.ts +16 -6
- package/src/table/src/tileset/vector-tile-utils.ts +131 -8
- package/src/tasks/package.json +2 -2
- package/src/types/actions.d.ts +1 -0
- package/src/types/layers.d.ts +1 -0
- package/src/types/package.json +1 -1
- package/src/types/types.d.ts +17 -0
- package/src/utils/dist/application-config.d.ts +4 -3
- package/src/utils/dist/application-config.js +3 -2
- package/src/utils/dist/data-scale-utils.js +4 -4
- package/src/utils/dist/data-utils.d.ts +9 -3
- package/src/utils/dist/data-utils.js +40 -7
- package/src/utils/dist/dataset-utils.js +23 -8
- package/src/utils/dist/indexed-data-container.d.ts +2 -2
- package/src/utils/dist/indexed-data-container.js +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
- package/src/utils/dist/plot.d.ts +2 -2
- package/src/utils/dist/plot.js +6 -6
- package/src/utils/map-utils.spec.js +1 -2
- package/src/utils/package.json +5 -4
- package/src/utils/src/application-config.ts +11 -8
- package/src/utils/src/data-scale-utils.ts +3 -3
- package/src/utils/src/data-utils.ts +36 -7
- package/src/utils/src/dataset-utils.ts +41 -9
- package/src/utils/src/indexed-data-container.ts +1 -1
- package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
- package/src/utils/src/plot.ts +5 -5
- package/umd/keplergl.min.js +1279 -1295
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright contributors to the kepler.gl project
|
|
3
3
|
|
|
4
4
|
import {Analyzer, DATA_TYPES as AnalyzerDATA_TYPES} from 'type-analyzer';
|
|
5
|
-
import {RowData, Field} from '@kepler.gl/types';
|
|
5
|
+
import {ArrowTableInterface, ApacheVectorInterface, RowData, Field} from '@kepler.gl/types';
|
|
6
6
|
import {ALL_FIELD_TYPES} from '@kepler.gl/constants';
|
|
7
7
|
import {console as globalConsole} from 'global/window';
|
|
8
8
|
import {range} from 'd3-array';
|
|
@@ -80,6 +80,54 @@ export function getSampleForTypeAnalyze({
|
|
|
80
80
|
return sample;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Getting sample data for analyzing field type for Arrow tables.
|
|
85
|
+
* @param table Arrow table or an array of vectors.
|
|
86
|
+
* @param fields Field names.
|
|
87
|
+
* @param sampleCount Number of sample rows to get.
|
|
88
|
+
* @returns Sample rows.
|
|
89
|
+
*/
|
|
90
|
+
export function getSampleForTypeAnalyzeArrow(
|
|
91
|
+
table: ArrowTableInterface | ApacheVectorInterface[],
|
|
92
|
+
fields: string[],
|
|
93
|
+
sampleCount = 50
|
|
94
|
+
): any[] {
|
|
95
|
+
const isTable = !Array.isArray(table);
|
|
96
|
+
|
|
97
|
+
const numRows = isTable ? table.numRows : table[0].length;
|
|
98
|
+
const getVector = isTable ? index => table.getChildAt(index) : index => table[index];
|
|
99
|
+
|
|
100
|
+
const total = Math.min(sampleCount, numRows);
|
|
101
|
+
const sample = range(0, total, 1).map(() => ({}));
|
|
102
|
+
|
|
103
|
+
if (numRows < 1) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// collect sample data for each field
|
|
108
|
+
fields.forEach((field, fieldIdx) => {
|
|
109
|
+
let rowIndex = 0;
|
|
110
|
+
let sampleIndex = 0;
|
|
111
|
+
|
|
112
|
+
while (sampleIndex < total) {
|
|
113
|
+
if (rowIndex >= numRows) {
|
|
114
|
+
// if depleted data pool
|
|
115
|
+
sample[sampleIndex][field] = null;
|
|
116
|
+
sampleIndex++;
|
|
117
|
+
} else if (notNullorUndefined(getVector(fieldIdx)?.get(rowIndex))) {
|
|
118
|
+
const value = getVector(fieldIdx)?.get(rowIndex);
|
|
119
|
+
sample[sampleIndex][field] = typeof value === 'string' ? value.trim() : value;
|
|
120
|
+
sampleIndex++;
|
|
121
|
+
rowIndex++;
|
|
122
|
+
} else {
|
|
123
|
+
rowIndex++;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
return sample;
|
|
129
|
+
}
|
|
130
|
+
|
|
83
131
|
/**
|
|
84
132
|
* Convert type-analyzer output to kepler.gl field types
|
|
85
133
|
*
|
|
@@ -20,6 +20,7 @@ declare type HeaderCellProps = {
|
|
|
20
20
|
props: DataTableProps;
|
|
21
21
|
toggleMoreOptions: (moreOptionsColumn: string) => void;
|
|
22
22
|
moreOptionsColumn: null | string;
|
|
23
|
+
style: CSSProperties;
|
|
23
24
|
};
|
|
24
25
|
declare const HeaderCellFactory: {
|
|
25
26
|
(FieldToken: React.FC<FieldTokenProps>): ({ cellInfo, columns, isPinned, props, toggleMoreOptions, moreOptionsColumn }: HeaderCellProps) => React.JSX.Element;
|
|
@@ -64,7 +64,7 @@ var HeaderCellFactory = function HeaderCellFactory(FieldToken) {
|
|
|
64
64
|
var isFormatted = Boolean((_colMeta$column = colMeta[column]) === null || _colMeta$column === void 0 ? void 0 : _colMeta$column.displayFormat);
|
|
65
65
|
var formatLabels = isFormatted ? (0, _utils.getFieldFormatLabels)(colMeta[column].type) : [];
|
|
66
66
|
var onSortTable = (0, _react.useCallback)(function () {
|
|
67
|
-
return sortTableColumn(column);
|
|
67
|
+
return sortTableColumn === null || sortTableColumn === void 0 ? void 0 : sortTableColumn(column);
|
|
68
68
|
}, [sortTableColumn, column]);
|
|
69
69
|
var onToggleOptionMenu = (0, _react.useCallback)(function () {
|
|
70
70
|
return toggleMoreOptions(column);
|
|
@@ -146,4 +146,4 @@ var HeaderCellFactory = function HeaderCellFactory(FieldToken) {
|
|
|
146
146
|
};
|
|
147
147
|
HeaderCellFactory.deps = [_fieldToken["default"]];
|
|
148
148
|
var _default = exports["default"] = HeaderCellFactory;
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lczIiLCJfYnV0dG9uIiwiX2ljb25zIiwiX2NvbnN0YW50cyIsIl9vcHRpb25Ecm9wZG93biIsIl91dGlscyIsIl9maWVsZFRva2VuIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3R5bGVkSGVhZGVyQ2VsbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImhlYWRlckNlbGxCb3JkZXJDb2xvciIsImhlYWRlclBhZGRpbmdUb3AiLCJoZWFkZXJQYWRkaW5nQm90dG9tIiwiY2VsbFBhZGRpbmdTaWRlIiwiaGVhZGVyQ2VsbEJhY2tncm91bmQiLCJIZWFkZXJDZWxsRmFjdG9yeSIsIkZpZWxkVG9rZW4iLCJIZWFkZXJDZWxsIiwiX3JlZiIsIl9jb2xNZXRhJGNvbHVtbiIsImNlbGxJbmZvIiwiY29sdW1ucyIsImlzUGlubmVkIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJtb3JlT3B0aW9uc0NvbHVtbiIsImNvbHVtbkluZGV4Iiwia2V5Iiwic3R5bGUiLCJjb2xNZXRhIiwic29ydENvbHVtbiIsInNvcnRUYWJsZUNvbHVtbiIsInBpblRhYmxlQ29sdW1uIiwiY29weVRhYmxlQ29sdW1uIiwic2V0Q29sdW1uRGlzcGxheUZvcm1hdCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNob3dGb3JtYXR0ZXIiLCJzZXRTaG93Rm9ybWF0dGVyIiwiY29sdW1uIiwiaXNHaG9zdCIsImdob3N0IiwiaXNTb3J0ZWQiLCJmaXJzdENlbGwiLCJpc0Zvcm1hdHRlZCIsIkJvb2xlYW4iLCJkaXNwbGF5Rm9ybWF0IiwiZm9ybWF0TGFiZWxzIiwiZ2V0RmllbGRGb3JtYXRMYWJlbHMiLCJ0eXBlIiwib25Tb3J0VGFibGUiLCJ1c2VDYWxsYmFjayIsIm9uVG9nZ2xlT3B0aW9uTWVudSIsIm9uUGluIiwib25Db3B5Iiwib25TZXREaXNwbGF5Rm9ybWF0IiwiX2RlZmluZVByb3BlcnR5MiIsImZvcm1hdCIsIm9uVG9nZ2xlRGlzcGxheUZvcm1hdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwiY29uY2F0Iiwib25DbGljayIsInNoaWZ0S2V5Iiwib25Eb3VibGVDbGljayIsInRpdGxlIiwiRnJhZ21lbnQiLCJuYW1lIiwiU09SVF9PUkRFUiIsIkFTQ0VORElORyIsIkFycm93VXAiLCJoZWlnaHQiLCJBcnJvd0Rvd24iLCJIYXNoIiwiRm9ybWF0dGVyRHJvcGRvd24iLCJsZWZ0IiwidG9wIiwiaXNPcGVuZWQiLCJzZXREaXNwbGF5Rm9ybWF0Iiwib25DbG9zZSIsIlZlcnRUaHJlZURvdHMiLCJtb2RlIiwidW5kZWZpbmVkIiwiZGVwcyIsIkZpZWxkVG9rZW5GYWN0b3J5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9kYXRhLXRhYmxlL2hlYWRlci1jZWxsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDU1NQcm9wZXJ0aWVzLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcbmltcG9ydCB7QXJyb3dVcCwgQXJyb3dEb3duLCBWZXJ0VGhyZWVEb3RzLCBIYXNofSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtTT1JUX09SREVSfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgT3B0aW9uRHJvcGRvd24sIHtGb3JtYXR0ZXJEcm9wZG93bn0gZnJvbSAnLi9vcHRpb24tZHJvcGRvd24nO1xuaW1wb3J0IHtnZXRGaWVsZEZvcm1hdExhYmVsc30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0NvbE1ldGF9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IEZpZWxkVG9rZW5GYWN0b3J5LCB7RmllbGRUb2tlblByb3BzfSBmcm9tICcuLi8uLi9jb21tb24vZmllbGQtdG9rZW4nO1xuaW1wb3J0IHtEYXRhVGFibGVQcm9wc30gZnJvbSAnLi9pbmRleCc7XG5cbmNvbnN0IFN0eWxlZEhlYWRlckNlbGwgPSBzdHlsZWQuZGl2YFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsQm9yZGVyQ29sb3J9O1xuICBwYWRkaW5nLXRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJQYWRkaW5nVG9wfXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJQYWRkaW5nQm90dG9tfXB4O1xuICBwYWRkaW5nLWxlZnQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaGVhZGVyQ2VsbEJhY2tncm91bmR9O1xuXG4gIC5uLXNvcnQtaWR4IHtcbiAgICBmb250LXNpemU6IDlweDtcbiAgfVxuICAuZGV0YWlscyB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIC5jb2wtbmFtZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgLmNvbC1uYW1lX19sZWZ0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jb2wtbmFtZV9fbmFtZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG5cbiAgLmNvbC1uYW1lX19mb3JtYXQgc3ZnIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgc3Ryb2tlLXdpZHRoOiAxO1xuICB9XG5gO1xuXG50eXBlIENlbGxJbmZvID0ge1xuICBjb2x1bW5JbmRleDogbnVtYmVyO1xuICBpc1Njcm9sbGluZzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBrZXk6IHN0cmluZztcbiAgcGFyZW50OiBhbnk7XG4gIHJvd0luZGV4OiBudW1iZXI7XG4gIHN0eWxlOiBDU1NQcm9wZXJ0aWVzO1xufTtcblxudHlwZSBIZWFkZXJDZWxsUHJvcHMgPSB7XG4gIC8vIHBhc3NlZCBkb3duIGZyb20gcmVhY3QgdmlydHVhbGl6ZWQgR3JpZFxuICBjZWxsSW5mbzogQ2VsbEluZm87XG4gIGNvbHVtbnM6IERhdGFUYWJsZVByb3BzWydjb2x1bW5zJ107XG4gIGNvbE1ldGE/OiBDb2xNZXRhO1xuICBpc1Bpbm5lZD86IGJvb2xlYW47XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHByb3BzOiBEYXRhVGFibGVQcm9wcztcbiAgdG9nZ2xlTW9yZU9wdGlvbnM6IChtb3JlT3B0aW9uc0NvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBtb3JlT3B0aW9uc0NvbHVtbjogbnVsbCB8IHN0cmluZztcbn07XG5cbmNvbnN0IEhlYWRlckNlbGxGYWN0b3J5ID0gKEZpZWxkVG9rZW46IFJlYWN0LkZDPEZpZWxkVG9rZW5Qcm9wcz4pID0+IHtcbiAgY29uc3QgSGVhZGVyQ2VsbCA9ICh7XG4gICAgY2VsbEluZm8sXG4gICAgY29sdW1ucyxcbiAgICBpc1Bpbm5lZCxcbiAgICBwcm9wcyxcbiAgICB0b2dnbGVNb3JlT3B0aW9ucyxcbiAgICBtb3JlT3B0aW9uc0NvbHVtblxuICB9OiBIZWFkZXJDZWxsUHJvcHMpID0+IHtcbiAgICBjb25zdCB7Y29sdW1uSW5kZXgsIGtleSwgc3R5bGV9ID0gY2VsbEluZm87XG4gICAgY29uc3Qge1xuICAgICAgY29sTWV0YSxcbiAgICAgIHNvcnRDb2x1bW4sXG4gICAgICBzb3J0VGFibGVDb2x1bW4sXG4gICAgICBwaW5UYWJsZUNvbHVtbixcbiAgICAgIGNvcHlUYWJsZUNvbHVtbixcbiAgICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXRcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW3Nob3dGb3JtYXR0ZXIsIHNldFNob3dGb3JtYXR0ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuXG4gICAgY29uc3QgaXNHaG9zdCA9IGNvbHVtbi5naG9zdDtcbiAgICBjb25zdCBpc1NvcnRlZCA9IHNvcnRDb2x1bW5bY29sdW1uXTtcbiAgICBjb25zdCBmaXJzdENlbGwgPSBjb2x1bW5JbmRleCA9PT0gMDtcbiAgICBjb25zdCBpc0Zvcm1hdHRlZCA9IEJvb2xlYW4oY29sTWV0YVtjb2x1bW5dPy5kaXNwbGF5Rm9ybWF0KTtcbiAgICBjb25zdCBmb3JtYXRMYWJlbHMgPSBpc0Zvcm1hdHRlZCA/IGdldEZpZWxkRm9ybWF0TGFiZWxzKGNvbE1ldGFbY29sdW1uXS50eXBlKSA6IFtdO1xuICAgIGNvbnN0IG9uU29ydFRhYmxlID0gdXNlQ2FsbGJhY2soKCkgPT4gc29ydFRhYmxlQ29sdW1uKGNvbHVtbiksIFtzb3J0VGFibGVDb2x1bW4sIGNvbHVtbl0pO1xuICAgIGNvbnN0IG9uVG9nZ2xlT3B0aW9uTWVudSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gdG9nZ2xlTW9yZU9wdGlvbnMoY29sdW1uKSxcbiAgICAgIFt0b2dnbGVNb3JlT3B0aW9ucywgY29sdW1uXVxuICAgICk7XG4gICAgY29uc3Qgb25QaW4gPSB1c2VDYWxsYmFjaygoKSA9PiBwaW5UYWJsZUNvbHVtbihjb2x1bW4pLCBbcGluVGFibGVDb2x1bW4sIGNvbHVtbl0pO1xuICAgIGNvbnN0IG9uQ29weSA9IHVzZUNhbGxiYWNrKCgpID0+IGNvcHlUYWJsZUNvbHVtbihjb2x1bW4pLCBbY29weVRhYmxlQ29sdW1uLCBjb2x1bW5dKTtcbiAgICBjb25zdCBvblNldERpc3BsYXlGb3JtYXQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGRpc3BsYXlGb3JtYXQgPT4ge1xuICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0Py4oe1tjb2x1bW5dOiBkaXNwbGF5Rm9ybWF0LmZvcm1hdH0pO1xuICAgICAgfSxcbiAgICAgIFtjb2x1bW4sIHNldENvbHVtbkRpc3BsYXlGb3JtYXRdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlRGlzcGxheUZvcm1hdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFNob3dGb3JtYXR0ZXIoIXNob3dGb3JtYXR0ZXIpO1xuICAgIH0sIFtzaG93Rm9ybWF0dGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEhlYWRlckNlbGxcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdoZWFkZXItY2VsbCcsIHtcbiAgICAgICAgICBbYGNvbHVtbi0ke2NvbHVtbkluZGV4fWBdOiB0cnVlLFxuICAgICAgICAgICdwaW5uZWQtaGVhZGVyLWNlbGwnOiBpc1Bpbm5lZCxcbiAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbFxuICAgICAgICB9KX1cbiAgICAgICAga2V5PXtrZXl9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zaGlmdEtleSA/IHNvcnRUYWJsZUNvbHVtbihjb2x1bW4pIDogbnVsbDtcbiAgICAgICAgfX1cbiAgICAgICAgb25Eb3VibGVDbGljaz17b25Tb3J0VGFibGV9XG4gICAgICAgIHRpdGxlPXtjb2x1bW59XG4gICAgICA+XG4gICAgICAgIHtpc0dob3N0ID8gKFxuICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZGV0YWlsc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbmFtZV9fbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbmFtZV9fbmFtZVwiPntjb2xNZXRhW2NvbHVtbl0ubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiY29sLW5hbWVfX3NvcnRcIiBvbkNsaWNrPXtvblNvcnRUYWJsZX0+XG4gICAgICAgICAgICAgICAgICAgIHtpc1NvcnRlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgICBpc1NvcnRlZCA9PT0gU09SVF9PUkRFUi5BU0NFTkRJTkcgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImNvbC1uYW1lX19mb3JtYXRcIiBvbkNsaWNrPXtvblRvZ2dsZURpc3BsYXlGb3JtYXR9PlxuICAgICAgICAgICAgICAgICAgICB7aXNGb3JtYXR0ZWQgPyA8SGFzaCBoZWlnaHQ9XCIxNHB4XCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVyRHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgICAgICAgICAgICAgIHRvcD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBpc09wZW5lZD17aXNGb3JtYXR0ZWQgJiYgc2hvd0Zvcm1hdHRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PXtjb2xNZXRhW2NvbHVtbl0uZGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgICBzZXREaXNwbGF5Rm9ybWF0PXtvblNldERpc3BsYXlGb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvd0Zvcm1hdHRlcihmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgICAgZm9ybWF0TGFiZWxzPXtmb3JtYXRMYWJlbHN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cIm1vcmVcIiBvbkNsaWNrPXtvblRvZ2dsZU9wdGlvbk1lbnV9PlxuICAgICAgICAgICAgICAgICAgPFZlcnRUaHJlZURvdHMgaGVpZ2h0PVwiMTRweFwiIC8+XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8RmllbGRUb2tlbiB0eXBlPXtjb2xNZXRhW2NvbHVtbl0udHlwZX0gLz5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8T3B0aW9uRHJvcGRvd25cbiAgICAgICAgICAgICAgICBpc09wZW5lZD17bW9yZU9wdGlvbnNDb2x1bW4gPT09IGNvbHVtbn1cbiAgICAgICAgICAgICAgICBjb2x1bW49e2NvbHVtbn1cbiAgICAgICAgICAgICAgICBjb2xNZXRhPXtjb2xNZXRhfVxuICAgICAgICAgICAgICAgIHRvZ2dsZU1vcmVPcHRpb25zPXt0b2dnbGVNb3JlT3B0aW9uc31cbiAgICAgICAgICAgICAgICBzb3J0VGFibGVDb2x1bW49e1xuICAgICAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uID8gbW9kZSA9PiBzb3J0VGFibGVDb2x1bW4oY29sdW1uLCBtb2RlKSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwaW5UYWJsZUNvbHVtbj17b25QaW59XG4gICAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXtvbkNvcHl9XG4gICAgICAgICAgICAgICAgc2V0RGlzcGxheUZvcm1hdD17c2V0Q29sdW1uRGlzcGxheUZvcm1hdCA/IG9uU2V0RGlzcGxheUZvcm1hdCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkSGVhZGVyQ2VsbD5cbiAgICApO1xuICB9O1xuICByZXR1cm4gSGVhZGVyQ2VsbDtcbn07XG5IZWFkZXJDZWxsRmFjdG9yeS5kZXBzID0gW0ZpZWxkVG9rZW5GYWN0b3J5XTtcbmV4cG9ydCBkZWZhdWx0IEhlYWRlckNlbGxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFSLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxXQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFBNEUsSUFBQVUsZUFBQSxFQVo1RTtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JB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
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lczIiLCJfYnV0dG9uIiwiX2ljb25zIiwiX2NvbnN0YW50cyIsIl9vcHRpb25Ecm9wZG93biIsIl91dGlscyIsIl9maWVsZFRva2VuIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3R5bGVkSGVhZGVyQ2VsbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImhlYWRlckNlbGxCb3JkZXJDb2xvciIsImhlYWRlclBhZGRpbmdUb3AiLCJoZWFkZXJQYWRkaW5nQm90dG9tIiwiY2VsbFBhZGRpbmdTaWRlIiwiaGVhZGVyQ2VsbEJhY2tncm91bmQiLCJIZWFkZXJDZWxsRmFjdG9yeSIsIkZpZWxkVG9rZW4iLCJIZWFkZXJDZWxsIiwiX3JlZiIsIl9jb2xNZXRhJGNvbHVtbiIsImNlbGxJbmZvIiwiY29sdW1ucyIsImlzUGlubmVkIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJtb3JlT3B0aW9uc0NvbHVtbiIsImNvbHVtbkluZGV4Iiwia2V5Iiwic3R5bGUiLCJjb2xNZXRhIiwic29ydENvbHVtbiIsInNvcnRUYWJsZUNvbHVtbiIsInBpblRhYmxlQ29sdW1uIiwiY29weVRhYmxlQ29sdW1uIiwic2V0Q29sdW1uRGlzcGxheUZvcm1hdCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNob3dGb3JtYXR0ZXIiLCJzZXRTaG93Rm9ybWF0dGVyIiwiY29sdW1uIiwiaXNHaG9zdCIsImdob3N0IiwiaXNTb3J0ZWQiLCJmaXJzdENlbGwiLCJpc0Zvcm1hdHRlZCIsIkJvb2xlYW4iLCJkaXNwbGF5Rm9ybWF0IiwiZm9ybWF0TGFiZWxzIiwiZ2V0RmllbGRGb3JtYXRMYWJlbHMiLCJ0eXBlIiwib25Tb3J0VGFibGUiLCJ1c2VDYWxsYmFjayIsIm9uVG9nZ2xlT3B0aW9uTWVudSIsIm9uUGluIiwib25Db3B5Iiwib25TZXREaXNwbGF5Rm9ybWF0IiwiX2RlZmluZVByb3BlcnR5MiIsImZvcm1hdCIsIm9uVG9nZ2xlRGlzcGxheUZvcm1hdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwiY29uY2F0Iiwib25DbGljayIsInNoaWZ0S2V5Iiwib25Eb3VibGVDbGljayIsInRpdGxlIiwiRnJhZ21lbnQiLCJuYW1lIiwiU09SVF9PUkRFUiIsIkFTQ0VORElORyIsIkFycm93VXAiLCJoZWlnaHQiLCJBcnJvd0Rvd24iLCJIYXNoIiwiRm9ybWF0dGVyRHJvcGRvd24iLCJsZWZ0IiwidG9wIiwiaXNPcGVuZWQiLCJzZXREaXNwbGF5Rm9ybWF0Iiwib25DbG9zZSIsIlZlcnRUaHJlZURvdHMiLCJtb2RlIiwidW5kZWZpbmVkIiwiZGVwcyIsIkZpZWxkVG9rZW5GYWN0b3J5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9kYXRhLXRhYmxlL2hlYWRlci1jZWxsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDU1NQcm9wZXJ0aWVzLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcbmltcG9ydCB7QXJyb3dVcCwgQXJyb3dEb3duLCBWZXJ0VGhyZWVEb3RzLCBIYXNofSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtTT1JUX09SREVSfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgT3B0aW9uRHJvcGRvd24sIHtGb3JtYXR0ZXJEcm9wZG93bn0gZnJvbSAnLi9vcHRpb24tZHJvcGRvd24nO1xuaW1wb3J0IHtnZXRGaWVsZEZvcm1hdExhYmVsc30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0NvbE1ldGF9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IEZpZWxkVG9rZW5GYWN0b3J5LCB7RmllbGRUb2tlblByb3BzfSBmcm9tICcuLi8uLi9jb21tb24vZmllbGQtdG9rZW4nO1xuaW1wb3J0IHtEYXRhVGFibGVQcm9wc30gZnJvbSAnLi9pbmRleCc7XG5cbmNvbnN0IFN0eWxlZEhlYWRlckNlbGwgPSBzdHlsZWQuZGl2YFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsQm9yZGVyQ29sb3J9O1xuICBwYWRkaW5nLXRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJQYWRkaW5nVG9wfXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJQYWRkaW5nQm90dG9tfXB4O1xuICBwYWRkaW5nLWxlZnQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaGVhZGVyQ2VsbEJhY2tncm91bmR9O1xuXG4gIC5uLXNvcnQtaWR4IHtcbiAgICBmb250LXNpemU6IDlweDtcbiAgfVxuICAuZGV0YWlscyB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIC5jb2wtbmFtZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgLmNvbC1uYW1lX19sZWZ0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jb2wtbmFtZV9fbmFtZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG5cbiAgLmNvbC1uYW1lX19mb3JtYXQgc3ZnIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgc3Ryb2tlLXdpZHRoOiAxO1xuICB9XG5gO1xuXG50eXBlIENlbGxJbmZvID0ge1xuICBjb2x1bW5JbmRleDogbnVtYmVyO1xuICBpc1Njcm9sbGluZzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBrZXk6IHN0cmluZztcbiAgcGFyZW50OiBhbnk7XG4gIHJvd0luZGV4OiBudW1iZXI7XG4gIHN0eWxlOiBDU1NQcm9wZXJ0aWVzO1xufTtcblxudHlwZSBIZWFkZXJDZWxsUHJvcHMgPSB7XG4gIC8vIHBhc3NlZCBkb3duIGZyb20gcmVhY3QgdmlydHVhbGl6ZWQgR3JpZFxuICBjZWxsSW5mbzogQ2VsbEluZm87XG4gIGNvbHVtbnM6IERhdGFUYWJsZVByb3BzWydjb2x1bW5zJ107XG4gIGNvbE1ldGE/OiBDb2xNZXRhO1xuICBpc1Bpbm5lZD86IGJvb2xlYW47XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHByb3BzOiBEYXRhVGFibGVQcm9wcztcbiAgdG9nZ2xlTW9yZU9wdGlvbnM6IChtb3JlT3B0aW9uc0NvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBtb3JlT3B0aW9uc0NvbHVtbjogbnVsbCB8IHN0cmluZztcbiAgc3R5bGU6IENTU1Byb3BlcnRpZXM7XG59O1xuXG5jb25zdCBIZWFkZXJDZWxsRmFjdG9yeSA9IChGaWVsZFRva2VuOiBSZWFjdC5GQzxGaWVsZFRva2VuUHJvcHM+KSA9PiB7XG4gIGNvbnN0IEhlYWRlckNlbGwgPSAoe1xuICAgIGNlbGxJbmZvLFxuICAgIGNvbHVtbnMsXG4gICAgaXNQaW5uZWQsXG4gICAgcHJvcHMsXG4gICAgdG9nZ2xlTW9yZU9wdGlvbnMsXG4gICAgbW9yZU9wdGlvbnNDb2x1bW5cbiAgfTogSGVhZGVyQ2VsbFByb3BzKSA9PiB7XG4gICAgY29uc3Qge2NvbHVtbkluZGV4LCBrZXksIHN0eWxlfSA9IGNlbGxJbmZvO1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbE1ldGEsXG4gICAgICBzb3J0Q29sdW1uLFxuICAgICAgc29ydFRhYmxlQ29sdW1uLFxuICAgICAgcGluVGFibGVDb2x1bW4sXG4gICAgICBjb3B5VGFibGVDb2x1bW4sXG4gICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0XG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtzaG93Rm9ybWF0dGVyLCBzZXRTaG93Rm9ybWF0dGVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2NvbHVtbkluZGV4XTtcblxuICAgIGNvbnN0IGlzR2hvc3QgPSBjb2x1bW4uZ2hvc3Q7XG4gICAgY29uc3QgaXNTb3J0ZWQgPSBzb3J0Q29sdW1uW2NvbHVtbl07XG4gICAgY29uc3QgZmlyc3RDZWxsID0gY29sdW1uSW5kZXggPT09IDA7XG4gICAgY29uc3QgaXNGb3JtYXR0ZWQgPSBCb29sZWFuKGNvbE1ldGFbY29sdW1uXT8uZGlzcGxheUZvcm1hdCk7XG4gICAgY29uc3QgZm9ybWF0TGFiZWxzID0gaXNGb3JtYXR0ZWQgPyBnZXRGaWVsZEZvcm1hdExhYmVscyhjb2xNZXRhW2NvbHVtbl0udHlwZSkgOiBbXTtcbiAgICBjb25zdCBvblNvcnRUYWJsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNvcnRUYWJsZUNvbHVtbj8uKGNvbHVtbiksIFtzb3J0VGFibGVDb2x1bW4sIGNvbHVtbl0pO1xuICAgIGNvbnN0IG9uVG9nZ2xlT3B0aW9uTWVudSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gdG9nZ2xlTW9yZU9wdGlvbnMoY29sdW1uKSxcbiAgICAgIFt0b2dnbGVNb3JlT3B0aW9ucywgY29sdW1uXVxuICAgICk7XG4gICAgY29uc3Qgb25QaW4gPSB1c2VDYWxsYmFjaygoKSA9PiBwaW5UYWJsZUNvbHVtbihjb2x1bW4pLCBbcGluVGFibGVDb2x1bW4sIGNvbHVtbl0pO1xuICAgIGNvbnN0IG9uQ29weSA9IHVzZUNhbGxiYWNrKCgpID0+IGNvcHlUYWJsZUNvbHVtbihjb2x1bW4pLCBbY29weVRhYmxlQ29sdW1uLCBjb2x1bW5dKTtcbiAgICBjb25zdCBvblNldERpc3BsYXlGb3JtYXQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGRpc3BsYXlGb3JtYXQgPT4ge1xuICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0Py4oe1tjb2x1bW5dOiBkaXNwbGF5Rm9ybWF0LmZvcm1hdH0pO1xuICAgICAgfSxcbiAgICAgIFtjb2x1bW4sIHNldENvbHVtbkRpc3BsYXlGb3JtYXRdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlRGlzcGxheUZvcm1hdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFNob3dGb3JtYXR0ZXIoIXNob3dGb3JtYXR0ZXIpO1xuICAgIH0sIFtzaG93Rm9ybWF0dGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEhlYWRlckNlbGxcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdoZWFkZXItY2VsbCcsIHtcbiAgICAgICAgICBbYGNvbHVtbi0ke2NvbHVtbkluZGV4fWBdOiB0cnVlLFxuICAgICAgICAgICdwaW5uZWQtaGVhZGVyLWNlbGwnOiBpc1Bpbm5lZCxcbiAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbFxuICAgICAgICB9KX1cbiAgICAgICAga2V5PXtrZXl9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zaGlmdEtleSA/IHNvcnRUYWJsZUNvbHVtbihjb2x1bW4pIDogbnVsbDtcbiAgICAgICAgfX1cbiAgICAgICAgb25Eb3VibGVDbGljaz17b25Tb3J0VGFibGV9XG4gICAgICAgIHRpdGxlPXtjb2x1bW59XG4gICAgICA+XG4gICAgICAgIHtpc0dob3N0ID8gKFxuICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZGV0YWlsc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbmFtZV9fbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbmFtZV9fbmFtZVwiPntjb2xNZXRhW2NvbHVtbl0ubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiY29sLW5hbWVfX3NvcnRcIiBvbkNsaWNrPXtvblNvcnRUYWJsZX0+XG4gICAgICAgICAgICAgICAgICAgIHtpc1NvcnRlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgICBpc1NvcnRlZCA9PT0gU09SVF9PUkRFUi5BU0NFTkRJTkcgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImNvbC1uYW1lX19mb3JtYXRcIiBvbkNsaWNrPXtvblRvZ2dsZURpc3BsYXlGb3JtYXR9PlxuICAgICAgICAgICAgICAgICAgICB7aXNGb3JtYXR0ZWQgPyA8SGFzaCBoZWlnaHQ9XCIxNHB4XCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVyRHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgICAgICAgICAgICAgIHRvcD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBpc09wZW5lZD17aXNGb3JtYXR0ZWQgJiYgc2hvd0Zvcm1hdHRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PXtjb2xNZXRhW2NvbHVtbl0uZGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgICBzZXREaXNwbGF5Rm9ybWF0PXtvblNldERpc3BsYXlGb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvd0Zvcm1hdHRlcihmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgICAgZm9ybWF0TGFiZWxzPXtmb3JtYXRMYWJlbHN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT1cIm1vcmVcIiBvbkNsaWNrPXtvblRvZ2dsZU9wdGlvbk1lbnV9PlxuICAgICAgICAgICAgICAgICAgPFZlcnRUaHJlZURvdHMgaGVpZ2h0PVwiMTRweFwiIC8+XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8RmllbGRUb2tlbiB0eXBlPXtjb2xNZXRhW2NvbHVtbl0udHlwZX0gLz5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8T3B0aW9uRHJvcGRvd25cbiAgICAgICAgICAgICAgICBpc09wZW5lZD17bW9yZU9wdGlvbnNDb2x1bW4gPT09IGNvbHVtbn1cbiAgICAgICAgICAgICAgICBjb2x1bW49e2NvbHVtbn1cbiAgICAgICAgICAgICAgICBjb2xNZXRhPXtjb2xNZXRhfVxuICAgICAgICAgICAgICAgIHRvZ2dsZU1vcmVPcHRpb25zPXt0b2dnbGVNb3JlT3B0aW9uc31cbiAgICAgICAgICAgICAgICBzb3J0VGFibGVDb2x1bW49e1xuICAgICAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uID8gbW9kZSA9PiBzb3J0VGFibGVDb2x1bW4oY29sdW1uLCBtb2RlKSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwaW5UYWJsZUNvbHVtbj17b25QaW59XG4gICAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXtvbkNvcHl9XG4gICAgICAgICAgICAgICAgc2V0RGlzcGxheUZvcm1hdD17c2V0Q29sdW1uRGlzcGxheUZvcm1hdCA/IG9uU2V0RGlzcGxheUZvcm1hdCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkSGVhZGVyQ2VsbD5cbiAgICApO1xuICB9O1xuICByZXR1cm4gSGVhZGVyQ2VsbDtcbn07XG5IZWFkZXJDZWxsRmFjdG9yeS5kZXBzID0gW0ZpZWxkVG9rZW5GYWN0b3J5XTtcbmV4cG9ydCBkZWZhdWx0IEhlYWRlckNlbGxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFSLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxXQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFBNEUsSUFBQVUsZUFBQSxFQVo1RTtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFB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
|
|
@@ -94,6 +94,7 @@ declare namespace DataTableFactory {
|
|
|
94
94
|
props: DataTableProps;
|
|
95
95
|
toggleMoreOptions: (moreOptionsColumn: string) => void;
|
|
96
96
|
moreOptionsColumn: string | null;
|
|
97
|
+
style: React.CSSProperties;
|
|
97
98
|
}) => React.JSX.Element;
|
|
98
99
|
deps: typeof import("../field-token").default[];
|
|
99
100
|
}[];
|
|
@@ -191,6 +191,7 @@ var TableSection = exports.TableSection = function TableSection(_ref4) {
|
|
|
191
191
|
}))));
|
|
192
192
|
});
|
|
193
193
|
};
|
|
194
|
+
var DUMMY_STYLE = {};
|
|
194
195
|
DataTableFactory.deps = [_headerCell["default"]];
|
|
195
196
|
function DataTableFactory(HeaderCell) {
|
|
196
197
|
var DataTable = /*#__PURE__*/function (_Component) {
|
|
@@ -325,6 +326,9 @@ function DataTableFactory(HeaderCell) {
|
|
|
325
326
|
props: props,
|
|
326
327
|
toggleMoreOptions: toggleMoreOptions,
|
|
327
328
|
moreOptionsColumn: moreOptionsColumn
|
|
329
|
+
// pass dummy style to prevent warnings from react-virtualized Grid
|
|
330
|
+
,
|
|
331
|
+
style: DUMMY_STYLE
|
|
328
332
|
});
|
|
329
333
|
};
|
|
330
334
|
return HeaderCellRenderer;
|
|
@@ -460,4 +464,4 @@ function DataTableFactory(HeaderCell) {
|
|
|
460
464
|
return (0, _styledComponents.withTheme)(DataTable);
|
|
461
465
|
}
|
|
462
466
|
var _default = exports["default"] = DataTableFactory;
|
|
463
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9sb2Rhc2giLCJfbG9kYXNoMiIsIl9pY29ucyIsIl9ncmlkIiwiX2hlYWRlckNlbGwiLCJfdXRpbHMiLCJfY2VsbFNpemUiLCJfY29uc3RhbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZGVmYXVsdEhlYWRlclJvd0hlaWdodCIsImRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQiLCJkZWZhdWx0Um93SGVpZ2h0Iiwib3ZlcnNjYW5Db2x1bW5Db3VudCIsIm92ZXJzY2FuUm93Q291bnQiLCJicm93c2VyU2Nyb2xsQmFyV2lkdGgiLCJmaWVsZFRvQWxpZ25SaWdodCIsIkFMTF9GSUVMRF9UWVBFUyIsImludGVnZXIiLCJyZWFsIiwicGlubmVkQ2xhc3NMaXN0IiwiaGVhZGVyIiwicm93cyIsInVucGlubmVkQ2xhc3NMaXN0IiwiQ29udGFpbmVyIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImRhdGFUYWJsZVRleHRDb2xvciIsImhhc0N1c3RvbVNjcm9sbEJhclN0eWxlIiwibW9kYWxTY3JvbGxCYXIiLCJjZWxsQm9yZGVyQ29sb3IiLCJwaW5uZWRHcmlkQm9yZGVyQ29sb3IiLCJldmVuUm93QmFja2dyb3VuZCIsIm9kZFJvd0JhY2tncm91bmQiLCJjZWxsUGFkZGluZ1NpZGUiLCJjZWxsRm9udFNpemUiLCJlZGdlQ2VsbFBhZGRpbmdTaWRlIiwiZGVmYXVsdENvbHVtbldpZHRoIiwiY29sdW1uV2lkdGhGdW5jdGlvbiIsImNvbHVtbnMiLCJjZWxsU2l6ZUNhY2hlIiwiZ2hvc3QiLCJfcmVmIiwiaW5kZXgiLCJkZWZhdWx0R2V0Um93Q2VsbCIsIl9yZWYyIiwiZm9ybWF0dGVyIiwiZGF0YUNvbnRhaW5lciIsImNvbHVtbiIsImNvbE1ldGEiLCJyb3dJbmRleCIsInNvcnRPcmRlciIsInJvd0lkeCIsInR5cGUiLCJ2YWx1ZSIsInZhbHVlQXQiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwicGFyc2VGaWVsZFZhbHVlIiwiU3R5bGVkU3RhdHNDb250cm9sIiwiaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwidG9wIiwiZm9udEZhbWlseU1lZGl1bSIsImFjdGl2ZUNvbG9yIiwiaGVhZGVyQ2VsbFN0YXRzQ29udHJvbEJhY2tncm91bmQiLCJzaG93U3RhdHMiLCJTdGF0c0NvbnRyb2wiLCJfcmVmMyIsInRvZ2dsZVNob3dTdGF0cyIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiQXJyb3dEb3duIiwiaGVpZ2h0IiwiVGFibGVTZWN0aW9uIiwiX3JlZjQiLCJjbGFzc0xpc3QiLCJpc1Bpbm5lZCIsImhlYWRlckdyaWRQcm9wcyIsImZpeGVkV2lkdGgiLCJfcmVmNCRmaXhlZEhlaWdodCIsImZpeGVkSGVpZ2h0Iiwib25TY3JvbGwiLCJzY3JvbGxUb3AiLCJkYXRhR3JpZFByb3BzIiwiY29sdW1uV2lkdGgiLCJfcmVmNCRzZXRHcmlkUmVmIiwic2V0R3JpZFJlZiIsImhlYWRlckNlbGxSZW5kZXIiLCJkYXRhQ2VsbFJlbmRlciIsIl9yZWY0JHNjcm9sbExlZnQiLCJzY3JvbGxMZWZ0IiwiaGVhZGVySGVpZ2h0IiwiaGVhZGVyU3R5bGUiLCJ1c2VNZW1vIiwiY29uY2F0IiwiY29udGVudFN0eWxlIiwiQXV0b1NpemVyIiwiX3JlZjUiLCJ3aWR0aCIsImdyaWREaW1lbnNpb24iLCJjb2x1bW5Db3VudCIsImhlYWRlckdyaWRXaWR0aCIsImRhdGFHcmlkSGVpZ2h0IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJfZXh0ZW5kczIiLCJjZWxsUmVuZGVyZXIiLCJEYXRhVGFibGVGYWN0b3J5IiwiZGVwcyIsIkhlYWRlckNlbGxGYWN0b3J5IiwiSGVhZGVyQ2VsbCIsIkRhdGFUYWJsZSIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIm1vcmVPcHRpb25zQ29sdW1uIiwiY3JlYXRlUmVmIiwicGlubmVkQ29sdW1ucyIsImNyZWF0ZVNlbGVjdG9yIiwiaXNBcnJheSIsImMiLCJpbmNsdWRlcyIsImhhc01vdW50ZWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRjZWxsU2l6ZUMiLCJwcm9wc0NhY2hlIiwiX3RoaXMkcHJvcHMkcGlubmVkQ29sIiwidW5waW5uZWRDb2x1bW5zIiwicm9vdCIsImN1cnJlbnQiLCJjbGllbnRXaWR0aCIsImFkanVzdFdpZHRoIiwiX3JlZjYiLCJhZGp1c3RDZWxsc1RvQ29udGFpbmVyIiwiZ2V0Q2VsbFNpemVDYWNoZSIsImRlYm91bmNlIiwiZG9TY2FsZUNlbGxzVG9XaWR0aCIsIl90aGlzJHByb3BzJGdldFJvd0NlbCIsImdldFJvd0NlbGwiLCJEYXRhQ2VsbFJlbmRlcmVyIiwiY2VsbEluZm8iLCJjb2x1bW5JbmRleCIsImtleSIsImlzR2hvc3QiLCJnZXRDb2x1bW5Gb3JtYXR0ZXIiLCJyb3dDZWxsIiwibGFzdFJvd0luZGV4IiwibnVtUm93cyIsImVuZENlbGwiLCJmaXJzdENlbGwiLCJib3R0b21DZWxsIiwiYWxpZ25SaWdodCIsIk51bWJlciIsImNlbGwiLCJ0aXRsZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwic2NhbGVDZWxsc1RvV2lkdGgiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDZWxsIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJfdGhpczIiLCJIZWFkZXJDZWxsUmVuZGVyZXIiLCJyZW5kZXIiLCJfdGhpczMiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczIkcGlubmVkQ28iLCJfdGhpcyRwcm9wczIkdGhlbWUiLCJfdGhpcyRwcm9wczIkZml4ZWRIZWkiLCJoYXNTdGF0cyIsIl90aGlzJHN0YXRlIiwiX3RoaXMkc3RhdGUkY2VsbFNpemVDIiwidW5waW5uZWRDb2x1bW5zR2hvc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicGlubmVkQ29sdW1uc1dpZHRoIiwicmVkdWNlIiwiYWNjIiwidmFsIiwiaGFzUGlubmVkQ29sdW1ucyIsIl90aGVtZSRoZWFkZXJSb3dIZWlnaCIsImhlYWRlclJvd0hlaWdodCIsIl90aGVtZSRoZWFkZXJTdGF0c0NvbiIsIl90aGVtZSRoZWFkZXJSb3dXU3RhdCIsImhlYWRlclJvd1dTdGF0c0hlaWdodCIsIl90aGVtZSRyb3dIZWlnaHQiLCJyb3dIZWlnaHQiLCJyb3dDb3VudCIsInJlZiIsIlNjcm9sbFN5bmMiLCJfcmVmNyIsInBpbm5lZEdyaWQiLCJyZW5kZXJEYXRhQ2VsbCIsIm1hcmdpbkxlZnQiLCJ1bnBpbm5lZEdyaWQiLCJDb21wb25lbnQiLCJzb3J0Q29sdW1uIiwid2l0aFRoZW1lIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1Njcm9sbFN5bmMsIEF1dG9TaXplciwgT25TY3JvbGxQYXJhbXMsIEdyaWRQcm9wcywgSW5kZXh9IGZyb20gJ3JlYWN0LXZpcnR1YWxpemVkJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IHtBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcblxuaW1wb3J0IHtDZWxsU2l6ZUNhY2hlfSBmcm9tICcuL2NlbGwtc2l6ZSc7XG5cbmltcG9ydCBHcmlkIGZyb20gJy4vZ3JpZCc7XG5pbXBvcnQgSGVhZGVyQ2VsbEZhY3RvcnkgZnJvbSAnLi9oZWFkZXItY2VsbCc7XG5cbmltcG9ydCB7Q29sTWV0YX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Q29sdW1uRm9ybWF0dGVyLCBEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YWRqdXN0Q2VsbHNUb0NvbnRhaW5lcn0gZnJvbSAnLi9jZWxsLXNpemUnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5jb25zdCBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0ID0gNTU7XG5jb25zdCBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0ID0gNDA7XG5jb25zdCBkZWZhdWx0Um93SGVpZ2h0ID0gMzI7XG5jb25zdCBvdmVyc2NhbkNvbHVtbkNvdW50ID0gMTA7XG5jb25zdCBvdmVyc2NhblJvd0NvdW50ID0gMTA7XG4vLyBUaGUgZGVmYXVsdCBzY3JvbGxiYXIgd2lkdGggY2FuIHJhbmdlIGFueXdoZXJlIGZyb20gMTJweCB0byAxN3B4XG5jb25zdCBicm93c2VyU2Nyb2xsQmFyV2lkdGggPSAxNztcbmNvbnN0IGZpZWxkVG9BbGlnblJpZ2h0ID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdOiB0cnVlLFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB0cnVlXG59O1xuXG5jb25zdCBwaW5uZWRDbGFzc0xpc3QgPSB7XG4gIGhlYWRlcjogJ3Bpbm5lZC1jb2x1bW5zLS1oZWFkZXIgcGlubmVkLWdyaWQtY29udGFpbmVyJyxcbiAgcm93czogJ3Bpbm5lZC1jb2x1bW5zLS1yb3dzIHBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbmNvbnN0IHVucGlubmVkQ2xhc3NMaXN0ID0ge1xuICBoZWFkZXI6ICd1bnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIgdW5waW5uZWQtZ3JpZC1jb250YWluZXInLFxuICByb3dzOiAndW5waW5uZWQtY29sdW1ucy0tcm93cyB1bnBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbnR5cGUgQ29udGFpbmVyUHJvcHMgPSB7XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2PENvbnRhaW5lclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRhdGFUYWJsZVRleHRDb2xvcn07XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmZvY3VzLFxuICAuUmVhY3RWaXJ0dWFsaXplZF9fR3JpZDphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgLmJvZHktZ3JpZCB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy5oYXNDdXN0b21TY3JvbGxCYXJTdHlsZSAmJiBwcm9wcy50aGVtZS5tb2RhbFNjcm9sbEJhcn1cbiAgfVxuXG4gIC5jZWxsIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAucmVzdWx0cy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnVucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHNjcm9sbGJhclxuICAgICAgcGFkZGluZy1ib3R0b206ICR7YnJvd3NlclNjcm9sbEJhcldpZHRofXB4O1xuICAgIH1cblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ncmlkLXJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgLmdyaWQtY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC5waW5uZWQtZ3JpZC1jb250YWluZXIge1xuICAgICAgZmxleDogMCAwIDc1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBpbm5lZEdyaWRCb3JkZXJDb2xvcn07XG4gICAgfVxuICAgIC5ldmVuLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmV2ZW5Sb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLm9kZC1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5vZGRSb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLmNlbGwsXG4gICAgLmhlYWRlci1jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC8vIGhlYWRlciBib3JkZXIgaXMgcmVuZGVyZWQgYnkgaGVhZGVyIGNvbnRhaW5lclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIC5uLXNvcnQtaWR4IHtcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxGb250U2l6ZX1weDtcblxuICAgICAgLnJlc3VsdC1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbC5lbmQtY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwuZW5kLWNlbGwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5maXJzdC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5maXJzdC1jZWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5ib3R0b20tY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuY2VsbC5hbGlnbi1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgZGVmYXVsdENvbHVtbldpZHRoID0gMjAwO1xuXG5leHBvcnQgdHlwZSBTb3J0Q29sdW1uID0ge1xuICBjb2x1bW4/OiBzdHJpbmc7XG4gIG1vZGU/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2x1bW5XaWR0aEZ1bmN0aW9uID1cbiAgKGNvbHVtbnMsIGNlbGxTaXplQ2FjaGUsIGdob3N0PykgPT5cbiAgKHtpbmRleH0pID0+IHtcbiAgICByZXR1cm4gKGNvbHVtbnNbaW5kZXhdIHx8IHt9KS5naG9zdFxuICAgICAgPyBnaG9zdFxuICAgICAgOiBjZWxsU2l6ZUNhY2hlW2NvbHVtbnNbaW5kZXhdXSB8fCBkZWZhdWx0Q29sdW1uV2lkdGg7XG4gIH07XG5cbmludGVyZmFjZSBHZXRSb3dDZWxsUHJvcHMge1xuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHwgbnVsbDtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBjb2x1bW46IHN0cmluZztcbiAgY29sTWV0YTtcbiAgcm93SW5kZXg6IG51bWJlcjtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xufVxuXG4vKlxuICogVGhpcyBpcyBhbiBhY2Nlc3NvciBtZXRob2QgdXNlZCB0byBnZW5lcmFsaXplIGdldHRpbmcgYSBjZWxsIGZyb20gYSBkYXRhIHJvd1xuICovXG5jb25zdCBkZWZhdWx0R2V0Um93Q2VsbCA9IChcbiAge2RhdGFDb250YWluZXIsIGNvbHVtbnMsIGNvbHVtbiwgY29sTWV0YSwgcm93SW5kZXgsIHNvcnRPcmRlcn06IEdldFJvd0NlbGxQcm9wcyxcbiAgZm9ybWF0dGVyXG4pID0+IHtcbiAgY29uc3Qgcm93SWR4ID0gc29ydE9yZGVyICYmIHNvcnRPcmRlci5sZW5ndGggPyBnZXQoc29ydE9yZGVyLCByb3dJbmRleCkgOiByb3dJbmRleDtcbiAgY29uc3Qge3R5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuXG4gIGNvbnN0IHZhbHVlID0gZGF0YUNvbnRhaW5lcj8udmFsdWVBdChyb3dJZHgsIGNvbHVtbnMuaW5kZXhPZihjb2x1bW4pKTtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnXG4gICAgPyAnJ1xuICAgIDogZm9ybWF0dGVyXG4gICAgPyBmb3JtYXR0ZXIodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIHR5cGUpO1xufTtcblxudHlwZSBTdGF0c0NvbnRyb2xQcm9wcyA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRTdGF0c0NvbnRyb2wgPSBzdHlsZWQuZGl2PFN0YXRzQ29udHJvbFByb3BzPmBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlclN0YXRzQ29udHJvbEhlaWdodH1weDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7cHJvcHMgPT4gcHJvcHMudG9wfXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5TWVkaXVtfXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsU3RhdHNDb250cm9sQmFja2dyb3VuZH07XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJHtwcm9wcyA9PiAocHJvcHMuc2hvd1N0YXRzID8gMTgwIDogMCl9ZGVnKTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0YXRzQ29udHJvbCA9ICh7XG4gIHRvcCxcbiAgc2hvd1N0YXRzLFxuICB0b2dnbGVTaG93U3RhdHNcbn06IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHRvZ2dsZVNob3dTdGF0czogKCkgPT4gdm9pZDtcbn0pID0+IChcbiAgPFN0eWxlZFN0YXRzQ29udHJvbCB0b3A9e3RvcH0gc2hvd1N0YXRzPXtzaG93U3RhdHN9PlxuICAgIDxkaXYgb25DbGljaz17dG9nZ2xlU2hvd1N0YXRzfT5cbiAgICAgIHtzaG93U3RhdHMgPyAnSGlkZSBDb2x1bW4gU3RhdHMnIDogJ1Nob3cgQ29sdW1uIFN0YXRzJ31cbiAgICAgIDxBcnJvd0Rvd24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvU3R5bGVkU3RhdHNDb250cm9sPlxuKTtcblxuaW50ZXJmYWNlIFRhYmxlU2VjdGlvblByb3BzIHtcbiAgY2xhc3NMaXN0Pzoge1xuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIHJvd3M6IHN0cmluZztcbiAgfTtcbiAgaXNQaW5uZWQ/OiBib29sZWFuO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGhlYWRlckdyaWRQcm9wcz87XG4gIGZpeGVkV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIG9uU2Nyb2xsPzogKHBhcmFtczogT25TY3JvbGxQYXJhbXMpID0+IHZvaWQ7XG4gIHNjcm9sbFRvcD86IG51bWJlcjtcbiAgZGF0YUdyaWRQcm9wczoge1xuICAgIHJvd0hlaWdodDogbnVtYmVyIHwgKChwYXJhbXM6IEluZGV4KSA9PiBudW1iZXIpO1xuICAgIHJvd0NvdW50OiBudW1iZXI7XG4gIH0gJiBQYXJ0aWFsPEdyaWRQcm9wcz47XG4gIGNvbHVtbldpZHRoPztcbiAgc2V0R3JpZFJlZj86IChyZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgaGVhZGVyQ2VsbFJlbmRlcj87XG4gIGRhdGFDZWxsUmVuZGVyPztcbiAgc2Nyb2xsTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlU2VjdGlvbiA9ICh7XG4gIGNsYXNzTGlzdCxcbiAgaXNQaW5uZWQsXG4gIGNvbHVtbnMsXG4gIGhlYWRlckdyaWRQcm9wcyxcbiAgZml4ZWRXaWR0aCxcbiAgZml4ZWRIZWlnaHQgPSB1bmRlZmluZWQsXG4gIG9uU2Nyb2xsLFxuICBzY3JvbGxUb3AsXG4gIGRhdGFHcmlkUHJvcHMsXG4gIGNvbHVtbldpZHRoLFxuICBzZXRHcmlkUmVmID0gdW5kZWZpbmVkLFxuICBoZWFkZXJDZWxsUmVuZGVyLFxuICBkYXRhQ2VsbFJlbmRlcixcbiAgc2Nyb2xsTGVmdCA9IDBcbn06IFRhYmxlU2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckdyaWRQcm9wcy5oZWlnaHQ7XG5cbiAgY29uc3QgaGVhZGVyU3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBoZWlnaHQ6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0b3A6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEF1dG9TaXplcj5cbiAgICAgIHsoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbnMubGVuZ3RoLFxuICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgIHdpZHRoOiBmaXhlZFdpZHRoIHx8IHdpZHRoXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhlYWRlckdyaWRXaWR0aCA9IGZpeGVkV2lkdGggfHwgd2lkdGg7XG4gICAgICAgIGNvbnN0IGRhdGFHcmlkSGVpZ2h0ID0gZml4ZWRIZWlnaHQgfHwgaGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5oZWFkZXIpfVxuICAgICAgICAgICAgICBzdHlsZT17aGVhZGVyU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyPXtoZWFkZXJDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJHcmlkUHJvcHMuaGVpZ2h0ICsgYnJvd3NlclNjcm9sbEJhcldpZHRofVxuICAgICAgICAgICAgICAgIHdpZHRoPXtoZWFkZXJHcmlkV2lkdGh9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5yb3dzKX1cbiAgICAgICAgICAgICAgc3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2RhdGFDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5kYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgIHsuLi5ncmlkRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNQaW5uZWQgPyAncGlubmVkLWdyaWQnIDogJ2JvZHktZ3JpZCd9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtkYXRhR3JpZEhlaWdodCAtIGhlYWRlckdyaWRQcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17c2V0R3JpZFJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0F1dG9TaXplcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlUHJvcHMge1xuICBkYXRhSWQ/OiBzdHJpbmc7XG4gIGhhc1N0YXRzPzogYm9vbGVhbjtcbiAgY2VsbFNpemVDYWNoZT86IENlbGxTaXplQ2FjaGU7XG4gIHBpbm5lZENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBmaXhlZFdpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgdGhlbWU/OiBhbnk7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIGNvbE1ldGE6IENvbE1ldGE7XG4gIHNvcnRDb2x1bW46IFNvcnRDb2x1bW47XG4gIHNvcnRUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xuICBwaW5UYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PzogKGZvcm1hdHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB2b2lkO1xuICBjb3B5VGFibGVDb2x1bW46IChjb2x1bW46IHN0cmluZykgPT4gdm9pZDtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xuICBzaG93U3RhdHM/OiBib29sZWFuO1xuICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT86IGJvb2xlYW47XG4gIGdldFJvd0NlbGw/OiAocmVuZGVyRGF0YUNlbGxQcm9wczogR2V0Um93Q2VsbFByb3BzLCBmb3JtYXR0ZXI6IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGF0YVRhYmxlU3RhdGUge1xuICBjZWxsU2l6ZUNhY2hlPzogQ2VsbFNpemVDYWNoZTtcbiAgbW9yZU9wdGlvbnNDb2x1bW4/O1xuICBnaG9zdD87XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59XG5cbkRhdGFUYWJsZUZhY3RvcnkuZGVwcyA9IFtIZWFkZXJDZWxsRmFjdG9yeV07XG5mdW5jdGlvbiBEYXRhVGFibGVGYWN0b3J5KFxuICBIZWFkZXJDZWxsOiBSZXR1cm5UeXBlPHR5cGVvZiBIZWFkZXJDZWxsRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+IHtcbiAgY2xhc3MgRGF0YVRhYmxlIGV4dGVuZHMgQ29tcG9uZW50PERhdGFUYWJsZVByb3BzLCBEYXRhVGFibGVTdGF0ZT4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBkYXRhQ29udGFpbmVyOiBudWxsLFxuICAgICAgcGlubmVkQ29sdW1uczogW10sXG4gICAgICBjb2xNZXRhOiB7fSxcbiAgICAgIGNlbGxTaXplQ2FjaGU6IHt9LFxuICAgICAgc29ydENvbHVtbjoge30sXG4gICAgICBmaXhlZFdpZHRoOiBudWxsLFxuICAgICAgZml4ZWRIZWlnaHQ6IG51bGwsXG4gICAgICB0aGVtZToge30sXG4gICAgICBoYXNTdGF0czogZmFsc2UsXG4gICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZTogdHJ1ZVxuICAgIH07XG5cbiAgICBwaW5uZWRHcmlkOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHVucGlubmVkR3JpZDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBoYXNNb3VudGVkID0gZmFsc2U7XG5cbiAgICBzdGF0ZTogRGF0YVRhYmxlU3RhdGUgPSB7XG4gICAgICBjZWxsU2l6ZUNhY2hlOiB7fSxcbiAgICAgIG1vcmVPcHRpb25zQ29sdW1uOiBudWxsLFxuICAgICAgc2hvd1N0YXRzOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5oYXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKTtcbiAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcHMuY2VsbFNpemVDYWNoZSAhPT0gcHJldlByb3BzLmNlbGxTaXplQ2FjaGUgfHxcbiAgICAgICAgdGhpcy5wcm9wcy5waW5uZWRDb2x1bW5zICE9PSBwcmV2UHJvcHMucGlubmVkQ29sdW1uc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuaGFzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgpO1xuICAgIH1cblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgY29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLmNvbHVtbnM7XG4gICAgcGlubmVkQ29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLnBpbm5lZENvbHVtbnM7XG4gICAgdW5waW5uZWRDb2x1bW5zID0gY3JlYXRlU2VsZWN0b3IodGhpcy5jb2x1bW5zLCB0aGlzLnBpbm5lZENvbHVtbnMsIChjb2x1bW5zLCBwaW5uZWRDb2x1bW5zKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkocGlubmVkQ29sdW1ucykgPyBjb2x1bW5zIDogY29sdW1ucy5maWx0ZXIoYyA9PiAhcGlubmVkQ29sdW1ucy5pbmNsdWRlcyhjKSlcbiAgICApO1xuXG4gICAgdG9nZ2xlTW9yZU9wdGlvbnMgPSBtb3JlT3B0aW9uc0NvbHVtbiA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtbjpcbiAgICAgICAgICAgIHRoaXMuc3RhdGUubW9yZU9wdGlvbnNDb2x1bW4gPT09IG1vcmVPcHRpb25zQ29sdW1uID8gbnVsbCA6IG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgdG9nZ2xlU2hvd1N0YXRzID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZCkgdGhpcy5zZXRTdGF0ZSh7c2hvd1N0YXRzOiAhdGhpcy5zdGF0ZS5zaG93U3RhdHN9KTtcbiAgICB9O1xuICAgIGdldENlbGxTaXplQ2FjaGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZTogcHJvcHNDYWNoZSA9IHt9LCBmaXhlZFdpZHRoLCBwaW5uZWRDb2x1bW5zID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB3aWR0aCA9IGZpeGVkV2lkdGggPyBmaXhlZFdpZHRoIDogdGhpcy5yb290LmN1cnJlbnQgPyB0aGlzLnJvb3QuY3VycmVudC5jbGllbnRXaWR0aCA6IDA7XG5cbiAgICAgIC8vIHBpbiBjb2x1bW4gYm9yZGVyIGlzIDIgcGl4ZWwgdnMgMSBwaXhlbFxuICAgICAgY29uc3QgYWRqdXN0V2lkdGggPSBwaW5uZWRDb2x1bW5zLmxlbmd0aCA/IHdpZHRoIC0gMSA6IHdpZHRoO1xuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGUsIGdob3N0fSA9IGFkanVzdENlbGxzVG9Db250YWluZXIoXG4gICAgICAgIGFkanVzdFdpZHRoLFxuICAgICAgICBwcm9wc0NhY2hlLFxuICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICB1bnBpbm5lZENvbHVtbnNcbiAgICAgICkgYXMge2NlbGxTaXplQ2FjaGU6IENlbGxTaXplQ2FjaGU7IGdob3N0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgZ2hvc3RcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGRvU2NhbGVDZWxsc1RvV2lkdGggPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKSB0aGlzLnNldFN0YXRlKHRoaXMuZ2V0Q2VsbFNpemVDYWNoZSgpKTtcbiAgICB9O1xuXG4gICAgc2NhbGVDZWxsc1RvV2lkdGggPSBkZWJvdW5jZSh0aGlzLmRvU2NhbGVDZWxsc1RvV2lkdGgsIDMwMCk7XG5cbiAgICByZW5kZXJEYXRhQ2VsbCA9IChjb2x1bW5zLCBpc1Bpbm5lZCwgcHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiB7XG4gICAgICBjb25zdCBnZXRSb3dDZWxsID0gdGhpcy5wcm9wcy5nZXRSb3dDZWxsID8/IGRlZmF1bHRHZXRSb3dDZWxsO1xuICAgICAgY29uc3QgRGF0YUNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IHtcbiAgICAgICAgY29uc3Qge2NvbHVtbkluZGV4LCBrZXksIHN0eWxlLCByb3dJbmRleH0gPSBjZWxsSW5mbztcbiAgICAgICAgY29uc3Qge2RhdGFDb250YWluZXIsIGNvbE1ldGF9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBjb25zdCBpc0dob3N0ID0gY29sdW1uLmdob3N0O1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGlzR2hvc3QgPyBudWxsIDogZ2V0Q29sdW1uRm9ybWF0dGVyKGNvbE1ldGFbY29sdW1uXSk7XG4gICAgICAgIGNvbnN0IHJvd0NlbGwgPSBpc0dob3N0ID8gJycgOiBnZXRSb3dDZWxsKHsuLi5wcm9wcywgY29sdW1uLCByb3dJbmRleH0sIGZvcm1hdHRlcik7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc0dob3N0ID8gbnVsbCA6IGNvbE1ldGFbY29sdW1uXS50eXBlO1xuXG4gICAgICAgIGNvbnN0IGxhc3RSb3dJbmRleCA9IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSAtIDEgOiAwO1xuXG4gICAgICAgIGNvbnN0IGVuZENlbGwgPSBjb2x1bW5JbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBmaXJzdENlbGwgPSBjb2x1bW5JbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgYm90dG9tQ2VsbCA9IHJvd0luZGV4ID09PSBsYXN0Um93SW5kZXg7XG4gICAgICAgIGNvbnN0IGFsaWduUmlnaHQgPSBmaWVsZFRvQWxpZ25SaWdodFtOdW1iZXIodHlwZSldO1xuXG4gICAgICAgIGNvbnN0IGNlbGwgPSAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdjZWxsJywge1xuICAgICAgICAgICAgICBbcm93SW5kZXggJSAyID09PSAwID8gJ2V2ZW4tcm93JyA6ICdvZGQtcm93J106IHRydWUsXG4gICAgICAgICAgICAgIFtgcm93LSR7cm93SW5kZXh9YF06IHRydWUsXG4gICAgICAgICAgICAgICdwaW5uZWQtY2VsbCc6IGlzUGlubmVkLFxuICAgICAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbCxcbiAgICAgICAgICAgICAgJ2VuZC1jZWxsJzogZW5kQ2VsbCxcbiAgICAgICAgICAgICAgJ2JvdHRvbS1jZWxsJzogYm90dG9tQ2VsbCxcbiAgICAgICAgICAgICAgJ2FsaWduLXJpZ2h0JzogYWxpZ25SaWdodFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHRpdGxlPXtpc0dob3N0ID8gdW5kZWZpbmVkIDogcm93Q2VsbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YCR7cm93Q2VsbH0ke2VuZENlbGwgPyAnXFxuJyA6ICdcXHQnfWB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIERhdGFDZWxsUmVuZGVyZXI7XG4gICAgfTtcblxuICAgIHJlbmRlckhlYWRlckNlbGwoY29sdW1ucywgaXNQaW5uZWQsIHByb3BzLCB0b2dnbGVNb3JlT3B0aW9ucywgbW9yZU9wdGlvbnNDb2x1bW4pIHtcbiAgICAgIGNvbnN0IEhlYWRlckNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IChcbiAgICAgICAgPEhlYWRlckNlbGxcbiAgICAgICAgICBjZWxsSW5mbz17Y2VsbEluZm99XG4gICAgICAgICAga2V5PXtjZWxsSW5mby5jb2x1bW5JbmRleH1cbiAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgIGlzUGlubmVkPXtpc1Bpbm5lZH1cbiAgICAgICAgICBzaG93U3RhdHM9e3RoaXMuc3RhdGUuc2hvd1N0YXRzfVxuICAgICAgICAgIHByb3BzPXtwcm9wc31cbiAgICAgICAgICB0b2dnbGVNb3JlT3B0aW9ucz17dG9nZ2xlTW9yZU9wdGlvbnN9XG4gICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW49e21vcmVPcHRpb25zQ29sdW1ufVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICAgIHJldHVybiBIZWFkZXJDZWxsUmVuZGVyZXI7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZGF0YUNvbnRhaW5lcixcbiAgICAgICAgcGlubmVkQ29sdW1ucyA9IFtdLFxuICAgICAgICB0aGVtZSA9IHt9LFxuICAgICAgICBmaXhlZFdpZHRoLFxuICAgICAgICBmaXhlZEhlaWdodCA9IDAsXG4gICAgICAgIGhhc1N0YXRzLFxuICAgICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB1bnBpbm5lZENvbHVtbnMgPSB0aGlzLnVucGlubmVkQ29sdW1ucyh0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGUgPSB7fSwgbW9yZU9wdGlvbnNDb2x1bW4sIGdob3N0LCBzaG93U3RhdHN9ID0gdGhpcy5zdGF0ZTtcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1uc0dob3N0ID0gZ2hvc3RcbiAgICAgICAgPyBbLi4udW5waW5uZWRDb2x1bW5zLCB7Z2hvc3Q6IHRydWV9IGFzIHN0cmluZyAmIHtnaG9zdDogYm9vbGVhbn1dXG4gICAgICAgIDogdW5waW5uZWRDb2x1bW5zO1xuICAgICAgY29uc3QgcGlubmVkQ29sdW1uc1dpZHRoID0gcGlubmVkQ29sdW1ucy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHZhbCkgPT4gYWNjICsgKGdldChjZWxsU2l6ZUNhY2hlLCB2YWwsIDApIGFzIG51bWJlciksXG4gICAgICAgIDBcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhhc1Bpbm5lZENvbHVtbnMgPSBCb29sZWFuKHBpbm5lZENvbHVtbnMubGVuZ3RoKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaGVhZGVyUm93SGVpZ2h0ID0gZGVmYXVsdEhlYWRlclJvd0hlaWdodCxcbiAgICAgICAgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0ID0gZGVmYXVsdEhlYWRlclN0YXRzQ29udHJvbEhlaWdodCxcbiAgICAgICAgaGVhZGVyUm93V1N0YXRzSGVpZ2h0ID0gZGVmYXVsdEhlYWRlclJvd0hlaWdodCxcbiAgICAgICAgcm93SGVpZ2h0ID0gZGVmYXVsdFJvd0hlaWdodFxuICAgICAgfSA9IHRoZW1lO1xuXG4gICAgICBjb25zdCBoZWFkZXJHcmlkUHJvcHMgPSB7XG4gICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgIGNsYXNzTmFtZTogJ2hlYWRlci1ncmlkJyxcbiAgICAgICAgaGVpZ2h0OiAhaGFzU3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd0hlaWdodFxuICAgICAgICAgIDogc2hvd1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dXU3RhdHNIZWlnaHRcbiAgICAgICAgICA6IGhlYWRlclJvd0hlaWdodCArIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodCxcbiAgICAgICAgcm93Q291bnQ6IDEsXG4gICAgICAgIHJvd0hlaWdodDogIWhhc1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dIZWlnaHRcbiAgICAgICAgICA6IHNob3dTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93V1N0YXRzSGVpZ2h0XG4gICAgICAgICAgOiBoZWFkZXJSb3dIZWlnaHQgKyBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHRcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRhdGFHcmlkUHJvcHMgPSB7XG4gICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgIG92ZXJzY2FuQ29sdW1uQ291bnQsXG4gICAgICAgIG92ZXJzY2FuUm93Q291bnQsXG4gICAgICAgIHJvd0NvdW50OiBkYXRhQ29udGFpbmVyID8gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCkgOiAwLFxuICAgICAgICByb3dIZWlnaHRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGU9e2hhc0N1c3RvbVNjcm9sbEJhclN0eWxlfVxuICAgICAgICA+XG4gICAgICAgICAge09iamVjdC5rZXlzKGNlbGxTaXplQ2FjaGUpLmxlbmd0aCA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxTY3JvbGxTeW5jPlxuICAgICAgICAgICAgICAgIHsoe29uU2Nyb2xsLCBzY3JvbGxMZWZ0LCBzY3JvbGxUb3B9KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3VsdHMtdGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtoYXNQaW5uZWRDb2x1bW5zICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PVwicGlubmVkLWNvbHVtbnNcIiBjbGFzc05hbWU9XCJwaW5uZWQtY29sdW1ucyBncmlkLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVTZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0PXtwaW5uZWRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtwaW5uZWRDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckdyaWRQcm9wcz17aGVhZGVyR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkV2lkdGg9e3Bpbm5lZENvbHVtbnNXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17YXJncyA9PiBvblNjcm9sbCh7Li4uYXJncywgc2Nyb2xsTGVmdH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcD17c2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUdyaWRQcm9wcz17ZGF0YUdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRHcmlkUmVmPXtwaW5uZWRHcmlkID0+ICh0aGlzLnBpbm5lZEdyaWQgPSBwaW5uZWRHcmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aD17Y29sdW1uV2lkdGhGdW5jdGlvbihwaW5uZWRDb2x1bW5zLCBjZWxsU2l6ZUNhY2hlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckhlYWRlckNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZU1vcmVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckRhdGFDZWxsKHBpbm5lZENvbHVtbnMsIHRydWUsIHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJ1bnBpbm5lZC1jb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IGAke2hhc1Bpbm5lZENvbHVtbnMgPyBgJHtwaW5uZWRDb2x1bW5zV2lkdGh9cHhgIDogJzAnfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1bnBpbm5lZC1jb2x1bW5zIGdyaWQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVTZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdD17dW5waW5uZWRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlubmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17dW5waW5uZWRDb2x1bW5zR2hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckdyaWRQcm9wcz17aGVhZGVyR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXtmaXhlZFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZEhlaWdodD17Zml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFHcmlkUHJvcHM9e2RhdGFHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldEdyaWRSZWY9e3VucGlubmVkR3JpZCA9PiAodGhpcy51bnBpbm5lZEdyaWQgPSB1bnBpbm5lZEdyaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aD17Y29sdW1uV2lkdGhGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdob3N0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckNlbGxSZW5kZXI9e3RoaXMucmVuZGVySGVhZGVyQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9yZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUNlbGxSZW5kZXI9e3RoaXMucmVuZGVyRGF0YUNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICAgICAgICAgICAge2hhc1N0YXRzID8gKFxuICAgICAgICAgICAgICAgIDxTdGF0c0NvbnRyb2xcbiAgICAgICAgICAgICAgICAgIHRvcD17aGVhZGVyUm93SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgc2hvd1N0YXRzPXtzaG93U3RhdHN9XG4gICAgICAgICAgICAgICAgICB0b2dnbGVTaG93U3RhdHM9e3RoaXMudG9nZ2xlU2hvd1N0YXRzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2l0aFRoZW1lKERhdGFUYWJsZSBhcyBSZWFjdC5Db21wb25lbnRUeXBlPERhdGFUYWJsZVByb3BzPik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFUYWJsZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFILHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFGLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFILHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFJQSxJQUFBUyxLQUFBLEdBQUFMLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFOLHNCQUFBLENBQUFKLE9BQUE7QUFHQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxTQUFB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QVcsRUFBRUEsV0FBWTtZQUN6QkMsUUFBUSxFQUFFQSxTQUFTO1lBQ25CQyxTQUFTLEVBQUVBLFNBQVU7WUFDckJRLFVBQVUsRUFBRUEsVUFBVztZQUN2QlAsYUFBYSxFQUFFQSxhQUFjO1lBQzdCRyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBRXlILFlBQVk7Y0FBQSxPQUFLN0IsTUFBSSxDQUFDNkIsWUFBWSxHQUFHQSxZQUFZO1lBQUEsQ0FBRTtZQUMvRDNILFdBQVcsRUFBRTlDLG1CQUFtQixDQUM5Qm9KLG9CQUFvQixFQUNwQmxKLGFBQWEsRUFDYkMsS0FDRixDQUFFO1lBQ0Y4QyxnQkFBZ0IsRUFBRTJGLE1BQUksQ0FBQ0wsZ0JBQWdCLENBQ3JDYSxvQkFBb0IsRUFDcEIsS0FBSyxFQUNMUixNQUFJLENBQUN6SixLQUFLLEVBQ1Z5SixNQUFJLENBQUNKLGlCQUFpQixFQUN0QnJELGlCQUNGLENBQUU7WUFDRmpDLGNBQWMsRUFBRTBGLE1BQUksQ0FBQzJCLGNBQWMsQ0FDakNuQixvQkFBb0IsRUFDcEIsS0FBSyxFQUNMUixNQUFJLENBQUN6SixLQUNQO1VBQUUsQ0FDSCxDQUNFLENBQ0YsQ0FBQztRQUVWLENBQ1UsQ0FBQyxFQUNaOEosUUFBUSxnQkFDUGhQLE1BQUEsWUFBQThILGFBQUEsQ0FBQ0gsWUFBWTtVQUNYTCxHQUFHLEVBQUVxSSxlQUFnQjtVQUNyQmpJLFNBQVMsRUFBRUEsU0FBVTtVQUNyQkcsZUFBZSxFQUFFLElBQUksQ0FBQ0E7UUFBZ0IsQ0FDdkMsQ0FBQyxHQUNBLElBQ0osQ0FBQyxHQUNELElBQ0ssQ0FBQztNQUVoQjtJQUFDO0VBQUEsRUFqU3FCNEksZ0JBQVM7RUFBQSxJQUFBdk4sZ0JBQUEsYUFBM0J3SCxTQUFTLGtCQUNTO0lBQ3BCbEUsYUFBYSxFQUFFLElBQUk7SUFDbkI0RSxhQUFhLEVBQUUsRUFBRTtJQUNqQjFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDWFQsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqQnlLLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDZG5JLFVBQVUsRUFBRSxJQUFJO0lBQ2hCRSxXQUFXLEVBQUUsSUFBSTtJQUNqQnRELEtBQUssRUFBRSxDQUFDLENBQUM7SUFDVDZKLFFBQVEsRUFBRSxLQUFLO0lBQ2YzSix1QkFBdUIsRUFBRTtFQUMzQixDQUFDO0VBd1JILE9BQU8sSUFBQXNMLDJCQUFTLEVBQUNqRyxTQUFnRCxDQUFDO0FBQ3BFO0FBQUMsSUFBQWtHLFFBQUEsR0FBQTlMLE9BQUEsY0FFY3dGLGdCQUFnQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
467
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9sb2Rhc2giLCJfbG9kYXNoMiIsIl9pY29ucyIsIl9ncmlkIiwiX2hlYWRlckNlbGwiLCJfdXRpbHMiLCJfY2VsbFNpemUiLCJfY29uc3RhbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZGVmYXVsdEhlYWRlclJvd0hlaWdodCIsImRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQiLCJkZWZhdWx0Um93SGVpZ2h0Iiwib3ZlcnNjYW5Db2x1bW5Db3VudCIsIm92ZXJzY2FuUm93Q291bnQiLCJicm93c2VyU2Nyb2xsQmFyV2lkdGgiLCJmaWVsZFRvQWxpZ25SaWdodCIsIkFMTF9GSUVMRF9UWVBFUyIsImludGVnZXIiLCJyZWFsIiwicGlubmVkQ2xhc3NMaXN0IiwiaGVhZGVyIiwicm93cyIsInVucGlubmVkQ2xhc3NMaXN0IiwiQ29udGFpbmVyIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImRhdGFUYWJsZVRleHRDb2xvciIsImhhc0N1c3RvbVNjcm9sbEJhclN0eWxlIiwibW9kYWxTY3JvbGxCYXIiLCJjZWxsQm9yZGVyQ29sb3IiLCJwaW5uZWRHcmlkQm9yZGVyQ29sb3IiLCJldmVuUm93QmFja2dyb3VuZCIsIm9kZFJvd0JhY2tncm91bmQiLCJjZWxsUGFkZGluZ1NpZGUiLCJjZWxsRm9udFNpemUiLCJlZGdlQ2VsbFBhZGRpbmdTaWRlIiwiZGVmYXVsdENvbHVtbldpZHRoIiwiY29sdW1uV2lkdGhGdW5jdGlvbiIsImNvbHVtbnMiLCJjZWxsU2l6ZUNhY2hlIiwiZ2hvc3QiLCJfcmVmIiwiaW5kZXgiLCJkZWZhdWx0R2V0Um93Q2VsbCIsIl9yZWYyIiwiZm9ybWF0dGVyIiwiZGF0YUNvbnRhaW5lciIsImNvbHVtbiIsImNvbE1ldGEiLCJyb3dJbmRleCIsInNvcnRPcmRlciIsInJvd0lkeCIsInR5cGUiLCJ2YWx1ZSIsInZhbHVlQXQiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwicGFyc2VGaWVsZFZhbHVlIiwiU3R5bGVkU3RhdHNDb250cm9sIiwiaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwidG9wIiwiZm9udEZhbWlseU1lZGl1bSIsImFjdGl2ZUNvbG9yIiwiaGVhZGVyQ2VsbFN0YXRzQ29udHJvbEJhY2tncm91bmQiLCJzaG93U3RhdHMiLCJTdGF0c0NvbnRyb2wiLCJfcmVmMyIsInRvZ2dsZVNob3dTdGF0cyIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiQXJyb3dEb3duIiwiaGVpZ2h0IiwiVGFibGVTZWN0aW9uIiwiX3JlZjQiLCJjbGFzc0xpc3QiLCJpc1Bpbm5lZCIsImhlYWRlckdyaWRQcm9wcyIsImZpeGVkV2lkdGgiLCJfcmVmNCRmaXhlZEhlaWdodCIsImZpeGVkSGVpZ2h0Iiwib25TY3JvbGwiLCJzY3JvbGxUb3AiLCJkYXRhR3JpZFByb3BzIiwiY29sdW1uV2lkdGgiLCJfcmVmNCRzZXRHcmlkUmVmIiwic2V0R3JpZFJlZiIsImhlYWRlckNlbGxSZW5kZXIiLCJkYXRhQ2VsbFJlbmRlciIsIl9yZWY0JHNjcm9sbExlZnQiLCJzY3JvbGxMZWZ0IiwiaGVhZGVySGVpZ2h0IiwiaGVhZGVyU3R5bGUiLCJ1c2VNZW1vIiwiY29uY2F0IiwiY29udGVudFN0eWxlIiwiQXV0b1NpemVyIiwiX3JlZjUiLCJ3aWR0aCIsImdyaWREaW1lbnNpb24iLCJjb2x1bW5Db3VudCIsImhlYWRlckdyaWRXaWR0aCIsImRhdGFHcmlkSGVpZ2h0IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJfZXh0ZW5kczIiLCJjZWxsUmVuZGVyZXIiLCJEVU1NWV9TVFlMRSIsIkRhdGFUYWJsZUZhY3RvcnkiLCJkZXBzIiwiSGVhZGVyQ2VsbEZhY3RvcnkiLCJIZWFkZXJDZWxsIiwiRGF0YVRhYmxlIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwibW9yZU9wdGlvbnNDb2x1bW4iLCJjcmVhdGVSZWYiLCJwaW5uZWRDb2x1bW5zIiwiY3JlYXRlU2VsZWN0b3IiLCJpc0FycmF5IiwiYyIsImluY2x1ZGVzIiwiaGFzTW91bnRlZCIsInNldFN0YXRlIiwic3RhdGUiLCJfdGhpcyRwcm9wcyIsIl90aGlzJHByb3BzJGNlbGxTaXplQyIsInByb3BzQ2FjaGUiLCJfdGhpcyRwcm9wcyRwaW5uZWRDb2wiLCJ1bnBpbm5lZENvbHVtbnMiLCJyb290IiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwiYWRqdXN0V2lkdGgiLCJfcmVmNiIsImFkanVzdENlbGxzVG9Db250YWluZXIiLCJnZXRDZWxsU2l6ZUNhY2hlIiwiZGVib3VuY2UiLCJkb1NjYWxlQ2VsbHNUb1dpZHRoIiwiX3RoaXMkcHJvcHMkZ2V0Um93Q2VsIiwiZ2V0Um93Q2VsbCIsIkRhdGFDZWxsUmVuZGVyZXIiLCJjZWxsSW5mbyIsImNvbHVtbkluZGV4Iiwia2V5IiwiaXNHaG9zdCIsImdldENvbHVtbkZvcm1hdHRlciIsInJvd0NlbGwiLCJsYXN0Um93SW5kZXgiLCJudW1Sb3dzIiwiZW5kQ2VsbCIsImZpcnN0Q2VsbCIsImJvdHRvbUNlbGwiLCJhbGlnblJpZ2h0IiwiTnVtYmVyIiwiY2VsbCIsInRpdGxlIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY2FsZUNlbGxzVG9XaWR0aCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNlbGwiLCJ0b2dnbGVNb3JlT3B0aW9ucyIsIl90aGlzMiIsIkhlYWRlckNlbGxSZW5kZXJlciIsInJlbmRlciIsIl90aGlzMyIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzMiRwaW5uZWRDbyIsIl90aGlzJHByb3BzMiR0aGVtZSIsIl90aGlzJHByb3BzMiRmaXhlZEhlaSIsImhhc1N0YXRzIiwiX3RoaXMkc3RhdGUiLCJfdGhpcyRzdGF0ZSRjZWxsU2l6ZUMiLCJ1bnBpbm5lZENvbHVtbnNHaG9zdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJwaW5uZWRDb2x1bW5zV2lkdGgiLCJyZWR1Y2UiLCJhY2MiLCJ2YWwiLCJoYXNQaW5uZWRDb2x1bW5zIiwiX3RoZW1lJGhlYWRlclJvd0hlaWdoIiwiaGVhZGVyUm93SGVpZ2h0IiwiX3RoZW1lJGhlYWRlclN0YXRzQ29uIiwiX3RoZW1lJGhlYWRlclJvd1dTdGF0IiwiaGVhZGVyUm93V1N0YXRzSGVpZ2h0IiwiX3RoZW1lJHJvd0hlaWdodCIsInJvd0hlaWdodCIsInJvd0NvdW50IiwicmVmIiwiU2Nyb2xsU3luYyIsIl9yZWY3IiwicGlubmVkR3JpZCIsInJlbmRlckRhdGFDZWxsIiwibWFyZ2luTGVmdCIsInVucGlubmVkR3JpZCIsIkNvbXBvbmVudCIsInNvcnRDb2x1bW4iLCJ3aXRoVGhlbWUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vZGF0YS10YWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U2Nyb2xsU3luYywgQXV0b1NpemVyLCBPblNjcm9sbFBhcmFtcywgR3JpZFByb3BzLCBJbmRleH0gZnJvbSAncmVhY3QtdmlydHVhbGl6ZWQnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC5kZWJvdW5jZSc7XG5pbXBvcnQge0Fycm93RG93bn0gZnJvbSAnLi4vaWNvbnMnO1xuXG5pbXBvcnQge0NlbGxTaXplQ2FjaGV9IGZyb20gJy4vY2VsbC1zaXplJztcblxuaW1wb3J0IEdyaWQgZnJvbSAnLi9ncmlkJztcbmltcG9ydCBIZWFkZXJDZWxsRmFjdG9yeSBmcm9tICcuL2hlYWRlci1jZWxsJztcblxuaW1wb3J0IHtDb2xNZXRhfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7cGFyc2VGaWVsZFZhbHVlLCBnZXRDb2x1bW5Gb3JtYXR0ZXIsIERhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHthZGp1c3RDZWxsc1RvQ29udGFpbmVyfSBmcm9tICcuL2NlbGwtc2l6ZSc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmNvbnN0IGRlZmF1bHRIZWFkZXJSb3dIZWlnaHQgPSA1NTtcbmNvbnN0IGRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQgPSA0MDtcbmNvbnN0IGRlZmF1bHRSb3dIZWlnaHQgPSAzMjtcbmNvbnN0IG92ZXJzY2FuQ29sdW1uQ291bnQgPSAxMDtcbmNvbnN0IG92ZXJzY2FuUm93Q291bnQgPSAxMDtcbi8vIFRoZSBkZWZhdWx0IHNjcm9sbGJhciB3aWR0aCBjYW4gcmFuZ2UgYW55d2hlcmUgZnJvbSAxMnB4IHRvIDE3cHhcbmNvbnN0IGJyb3dzZXJTY3JvbGxCYXJXaWR0aCA9IDE3O1xuY29uc3QgZmllbGRUb0FsaWduUmlnaHQgPSB7XG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHRydWUsXG4gIFtBTExfRklFTERfVFlQRVMucmVhbF06IHRydWVcbn07XG5cbmNvbnN0IHBpbm5lZENsYXNzTGlzdCA9IHtcbiAgaGVhZGVyOiAncGlubmVkLWNvbHVtbnMtLWhlYWRlciBwaW5uZWQtZ3JpZC1jb250YWluZXInLFxuICByb3dzOiAncGlubmVkLWNvbHVtbnMtLXJvd3MgcGlubmVkLWdyaWQtY29udGFpbmVyJ1xufTtcblxuY29uc3QgdW5waW5uZWRDbGFzc0xpc3QgPSB7XG4gIGhlYWRlcjogJ3VucGlubmVkLWNvbHVtbnMtLWhlYWRlciB1bnBpbm5lZC1ncmlkLWNvbnRhaW5lcicsXG4gIHJvd3M6ICd1bnBpbm5lZC1jb2x1bW5zLS1yb3dzIHVucGlubmVkLWdyaWQtY29udGFpbmVyJ1xufTtcblxudHlwZSBDb250YWluZXJQcm9wcyA9IHtcbiAgaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXY8Q29udGFpbmVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZGF0YVRhYmxlVGV4dENvbG9yfTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLlJlYWN0VmlydHVhbGl6ZWRfX0dyaWQ6Zm9jdXMsXG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuICAuYm9keS1ncmlkIHtcbiAgICAke3Byb3BzID0+IHByb3BzLmhhc0N1c3RvbVNjcm9sbEJhclN0eWxlICYmIHByb3BzLnRoZW1lLm1vZGFsU2Nyb2xsQmFyfVxuICB9XG5cbiAgLmNlbGwge1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgKjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC5yZXN1bHRzLXRhYmxlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLnNjcm9sbC1pbi11aS10aHJlYWQucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAke2Jyb3dzZXJTY3JvbGxCYXJXaWR0aH1weDtcbiAgICB9XG4gICAgLnNjcm9sbC1pbi11aS10aHJlYWQudW5waW5uZWQtY29sdW1ucy0taGVhZGVyIHtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsQm9yZGVyQ29sb3J9O1xuICAgICAgLy8gbGVhdmUgcm9vbSBmb3Igc2Nyb2xsYmFyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuXG4gICAgLnNjcm9sbC1pbi11aS10aHJlYWQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmdyaWQtcm93IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICAuZ3JpZC1jb2x1bW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG4gICAgLnBpbm5lZC1ncmlkLWNvbnRhaW5lciB7XG4gICAgICBmbGV4OiAwIDAgNzVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGlubmVkR3JpZEJvcmRlckNvbG9yfTtcbiAgICB9XG4gICAgLmV2ZW4tcm93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXZlblJvd0JhY2tncm91bmR9O1xuICAgIH1cbiAgICAub2RkLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm9kZFJvd0JhY2tncm91bmR9O1xuICAgIH1cbiAgICAuY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgLy8gaGVhZGVyIGJvcmRlciBpcyByZW5kZXJlZCBieSBoZWFkZXIgY29udGFpbmVyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgLm4tc29ydC1pZHgge1xuICAgICAgICBmb250LXNpemU6IDlweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNlbGwge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGV9cHg7XG4gICAgICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEZvbnRTaXplfXB4O1xuXG4gICAgICAucmVzdWx0LWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsLmVuZC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5lbmQtY2VsbCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxQYWRkaW5nU2lkZSArIHByb3BzLnRoZW1lLmVkZ2VDZWxsUGFkZGluZ1NpZGV9cHg7XG4gICAgfVxuICAgIC5jZWxsLmZpcnN0LWNlbGwsXG4gICAgLmhlYWRlci1jZWxsLmZpcnN0LWNlbGwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxQYWRkaW5nU2lkZSArIHByb3BzLnRoZW1lLmVkZ2VDZWxsUGFkZGluZ1NpZGV9cHg7XG4gICAgfVxuICAgIC5jZWxsLmJvdHRvbS1jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICAgIC5jZWxsLmFsaWduLXJpZ2h0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gO1xuXG5jb25zdCBkZWZhdWx0Q29sdW1uV2lkdGggPSAyMDA7XG5cbmV4cG9ydCB0eXBlIFNvcnRDb2x1bW4gPSB7XG4gIGNvbHVtbj86IHN0cmluZztcbiAgbW9kZT86IHN0cmluZztcbn07XG5cbmNvbnN0IGNvbHVtbldpZHRoRnVuY3Rpb24gPVxuICAoY29sdW1ucywgY2VsbFNpemVDYWNoZSwgZ2hvc3Q/KSA9PlxuICAoe2luZGV4fSkgPT4ge1xuICAgIHJldHVybiAoY29sdW1uc1tpbmRleF0gfHwge30pLmdob3N0XG4gICAgICA/IGdob3N0XG4gICAgICA6IGNlbGxTaXplQ2FjaGVbY29sdW1uc1tpbmRleF1dIHx8IGRlZmF1bHRDb2x1bW5XaWR0aDtcbiAgfTtcblxuaW50ZXJmYWNlIEdldFJvd0NlbGxQcm9wcyB7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UgfCBudWxsO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGNvbHVtbjogc3RyaW5nO1xuICBjb2xNZXRhO1xuICByb3dJbmRleDogbnVtYmVyO1xuICBzb3J0T3JkZXI/OiBudW1iZXJbXSB8IG51bGw7XG59XG5cbi8qXG4gKiBUaGlzIGlzIGFuIGFjY2Vzc29yIG1ldGhvZCB1c2VkIHRvIGdlbmVyYWxpemUgZ2V0dGluZyBhIGNlbGwgZnJvbSBhIGRhdGEgcm93XG4gKi9cbmNvbnN0IGRlZmF1bHRHZXRSb3dDZWxsID0gKFxuICB7ZGF0YUNvbnRhaW5lciwgY29sdW1ucywgY29sdW1uLCBjb2xNZXRhLCByb3dJbmRleCwgc29ydE9yZGVyfTogR2V0Um93Q2VsbFByb3BzLFxuICBmb3JtYXR0ZXJcbikgPT4ge1xuICBjb25zdCByb3dJZHggPSBzb3J0T3JkZXIgJiYgc29ydE9yZGVyLmxlbmd0aCA/IGdldChzb3J0T3JkZXIsIHJvd0luZGV4KSA6IHJvd0luZGV4O1xuICBjb25zdCB7dHlwZX0gPSBjb2xNZXRhW2NvbHVtbl07XG5cbiAgY29uc3QgdmFsdWUgPSBkYXRhQ29udGFpbmVyPy52YWx1ZUF0KHJvd0lkeCwgY29sdW1ucy5pbmRleE9mKGNvbHVtbikpO1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJydcbiAgICA/ICcnXG4gICAgOiBmb3JtYXR0ZXJcbiAgICA/IGZvcm1hdHRlcih2YWx1ZSlcbiAgICA6IHBhcnNlRmllbGRWYWx1ZSh2YWx1ZSwgdHlwZSk7XG59O1xuXG50eXBlIFN0YXRzQ29udHJvbFByb3BzID0ge1xuICB0b3A6IG51bWJlcjtcbiAgc2hvd1N0YXRzPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFN0eWxlZFN0YXRzQ29udHJvbCA9IHN0eWxlZC5kaXY8U3RhdHNDb250cm9sUHJvcHM+YFxuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0fXB4O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy50b3B9cHg7XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHlNZWRpdW19cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlckNlbGxTdGF0c0NvbnRyb2xCYWNrZ3JvdW5kfTtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIHBhZGRpbmc6IDBweCAyNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgke3Byb3BzID0+IChwcm9wcy5zaG93U3RhdHMgPyAxODAgOiAwKX1kZWcpO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3RhdHNDb250cm9sID0gKHtcbiAgdG9wLFxuICBzaG93U3RhdHMsXG4gIHRvZ2dsZVNob3dTdGF0c1xufToge1xuICB0b3A6IG51bWJlcjtcbiAgc2hvd1N0YXRzPzogYm9vbGVhbjtcbiAgdG9nZ2xlU2hvd1N0YXRzOiAoKSA9PiB2b2lkO1xufSkgPT4gKFxuICA8U3R5bGVkU3RhdHNDb250cm9sIHRvcD17dG9wfSBzaG93U3RhdHM9e3Nob3dTdGF0c30+XG4gICAgPGRpdiBvbkNsaWNrPXt0b2dnbGVTaG93U3RhdHN9PlxuICAgICAge3Nob3dTdGF0cyA/ICdIaWRlIENvbHVtbiBTdGF0cycgOiAnU2hvdyBDb2x1bW4gU3RhdHMnfVxuICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9TdHlsZWRTdGF0c0NvbnRyb2w+XG4pO1xuXG5pbnRlcmZhY2UgVGFibGVTZWN0aW9uUHJvcHMge1xuICBjbGFzc0xpc3Q/OiB7XG4gICAgaGVhZGVyOiBzdHJpbmc7XG4gICAgcm93czogc3RyaW5nO1xuICB9O1xuICBpc1Bpbm5lZD86IGJvb2xlYW47XG4gIGNvbHVtbnM6IChzdHJpbmcgJiB7Z2hvc3Q/OiBib29sZWFufSlbXTtcbiAgaGVhZGVyR3JpZFByb3BzPztcbiAgZml4ZWRXaWR0aD86IG51bWJlciB8IG51bGw7XG4gIGZpeGVkSGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgb25TY3JvbGw/OiAocGFyYW1zOiBPblNjcm9sbFBhcmFtcykgPT4gdm9pZDtcbiAgc2Nyb2xsVG9wPzogbnVtYmVyO1xuICBkYXRhR3JpZFByb3BzOiB7XG4gICAgcm93SGVpZ2h0OiBudW1iZXIgfCAoKHBhcmFtczogSW5kZXgpID0+IG51bWJlcik7XG4gICAgcm93Q291bnQ6IG51bWJlcjtcbiAgfSAmIFBhcnRpYWw8R3JpZFByb3BzPjtcbiAgY29sdW1uV2lkdGg/O1xuICBzZXRHcmlkUmVmPzogKHJlZjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuICBoZWFkZXJDZWxsUmVuZGVyPztcbiAgZGF0YUNlbGxSZW5kZXI/O1xuICBzY3JvbGxMZWZ0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgVGFibGVTZWN0aW9uID0gKHtcbiAgY2xhc3NMaXN0LFxuICBpc1Bpbm5lZCxcbiAgY29sdW1ucyxcbiAgaGVhZGVyR3JpZFByb3BzLFxuICBmaXhlZFdpZHRoLFxuICBmaXhlZEhlaWdodCA9IHVuZGVmaW5lZCxcbiAgb25TY3JvbGwsXG4gIHNjcm9sbFRvcCxcbiAgZGF0YUdyaWRQcm9wcyxcbiAgY29sdW1uV2lkdGgsXG4gIHNldEdyaWRSZWYgPSB1bmRlZmluZWQsXG4gIGhlYWRlckNlbGxSZW5kZXIsXG4gIGRhdGFDZWxsUmVuZGVyLFxuICBzY3JvbGxMZWZ0ID0gMFxufTogVGFibGVTZWN0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgaGVhZGVySGVpZ2h0ID0gaGVhZGVyR3JpZFByb3BzLmhlaWdodDtcblxuICBjb25zdCBoZWFkZXJTdHlsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGhlaWdodDogYCR7aGVhZGVySGVpZ2h0fXB4YFxuICAgIH0pLFxuICAgIFtoZWFkZXJIZWlnaHRdXG4gICk7XG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHRvcDogYCR7aGVhZGVySGVpZ2h0fXB4YFxuICAgIH0pLFxuICAgIFtoZWFkZXJIZWlnaHRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8QXV0b1NpemVyPlxuICAgICAgeyh7d2lkdGgsIGhlaWdodH0pID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZERpbWVuc2lvbiA9IHtcbiAgICAgICAgICBjb2x1bW5Db3VudDogY29sdW1ucy5sZW5ndGgsXG4gICAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgICAgd2lkdGg6IGZpeGVkV2lkdGggfHwgd2lkdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGVhZGVyR3JpZFdpZHRoID0gZml4ZWRXaWR0aCB8fCB3aWR0aDtcbiAgICAgICAgY29uc3QgZGF0YUdyaWRIZWlnaHQgPSBmaXhlZEhlaWdodCB8fCBoZWlnaHQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ3Njcm9sbC1pbi11aS10aHJlYWQnLCBjbGFzc0xpc3Q/LmhlYWRlcil9XG4gICAgICAgICAgICAgIHN0eWxlPXtoZWFkZXJTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2hlYWRlckNlbGxSZW5kZXJ9XG4gICAgICAgICAgICAgICAgey4uLmhlYWRlckdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICB7Li4uZ3JpZERpbWVuc2lvbn1cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlYWRlckdyaWRQcm9wcy5oZWlnaHQgKyBicm93c2VyU2Nyb2xsQmFyV2lkdGh9XG4gICAgICAgICAgICAgICAgd2lkdGg9e2hlYWRlckdyaWRXaWR0aH1cbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0PXtzY3JvbGxMZWZ0fVxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ3Njcm9sbC1pbi11aS10aHJlYWQnLCBjbGFzc0xpc3Q/LnJvd3MpfVxuICAgICAgICAgICAgICBzdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8R3JpZFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcj17ZGF0YUNlbGxSZW5kZXJ9XG4gICAgICAgICAgICAgICAgey4uLmRhdGFHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtpc1Bpbm5lZCA/ICdwaW5uZWQtZ3JpZCcgOiAnYm9keS1ncmlkJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2RhdGFHcmlkSGVpZ2h0IC0gaGVhZGVyR3JpZFByb3BzLmhlaWdodH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A9e3Njcm9sbFRvcH1cbiAgICAgICAgICAgICAgICBzZXRHcmlkUmVmPXtzZXRHcmlkUmVmfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC8+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvQXV0b1NpemVyPlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVQcm9wcyB7XG4gIGRhdGFJZD86IHN0cmluZztcbiAgaGFzU3RhdHM/OiBib29sZWFuO1xuICBjZWxsU2l6ZUNhY2hlPzogQ2VsbFNpemVDYWNoZTtcbiAgcGlubmVkQ29sdW1ucz86IHN0cmluZ1tdO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGZpeGVkV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuICB0aGVtZT86IGFueTtcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSB8IG51bGw7XG4gIGZpeGVkSGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcbiAgY29sTWV0YTogQ29sTWV0YTtcbiAgc29ydENvbHVtbjogU29ydENvbHVtbjtcbiAgc29ydFRhYmxlQ29sdW1uOiAoY29sdW1uOiBzdHJpbmcsIG1vZGU/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHBpblRhYmxlQ29sdW1uOiAoY29sdW1uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ/OiAoZm9ybWF0czoge1trZXk6IHN0cmluZ106IHN0cmluZ30pID0+IHZvaWQ7XG4gIGNvcHlUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzb3J0T3JkZXI/OiBudW1iZXJbXSB8IG51bGw7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbiAgZ2V0Um93Q2VsbD86IChyZW5kZXJEYXRhQ2VsbFByb3BzOiBHZXRSb3dDZWxsUHJvcHMsIGZvcm1hdHRlcjogYW55KSA9PiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmludGVyZmFjZSBEYXRhVGFibGVTdGF0ZSB7XG4gIGNlbGxTaXplQ2FjaGU/OiBDZWxsU2l6ZUNhY2hlO1xuICBtb3JlT3B0aW9uc0NvbHVtbj87XG4gIGdob3N0PztcbiAgc2hvd1N0YXRzPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRFVNTVlfU1RZTEUgPSB7fTtcblxuRGF0YVRhYmxlRmFjdG9yeS5kZXBzID0gW0hlYWRlckNlbGxGYWN0b3J5XTtcbmZ1bmN0aW9uIERhdGFUYWJsZUZhY3RvcnkoXG4gIEhlYWRlckNlbGw6IFJldHVyblR5cGU8dHlwZW9mIEhlYWRlckNlbGxGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxEYXRhVGFibGVQcm9wcz4ge1xuICBjbGFzcyBEYXRhVGFibGUgZXh0ZW5kcyBDb21wb25lbnQ8RGF0YVRhYmxlUHJvcHMsIERhdGFUYWJsZVN0YXRlPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIGRhdGFDb250YWluZXI6IG51bGwsXG4gICAgICBwaW5uZWRDb2x1bW5zOiBbXSxcbiAgICAgIGNvbE1ldGE6IHt9LFxuICAgICAgY2VsbFNpemVDYWNoZToge30sXG4gICAgICBzb3J0Q29sdW1uOiB7fSxcbiAgICAgIGZpeGVkV2lkdGg6IG51bGwsXG4gICAgICBmaXhlZEhlaWdodDogbnVsbCxcbiAgICAgIHRoZW1lOiB7fSxcbiAgICAgIGhhc1N0YXRzOiBmYWxzZSxcbiAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlOiB0cnVlXG4gICAgfTtcblxuICAgIHBpbm5lZEdyaWQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgdW5waW5uZWRHcmlkOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGhhc01vdW50ZWQgPSBmYWxzZTtcblxuICAgIHN0YXRlOiBEYXRhVGFibGVTdGF0ZSA9IHtcbiAgICAgIGNlbGxTaXplQ2FjaGU6IHt9LFxuICAgICAgbW9yZU9wdGlvbnNDb2x1bW46IG51bGwsXG4gICAgICBzaG93U3RhdHM6IHRydWVcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLmhhc01vdW50ZWQgPSB0cnVlO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgpO1xuICAgICAgdGhpcy5zY2FsZUNlbGxzVG9XaWR0aCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5wcm9wcy5jZWxsU2l6ZUNhY2hlICE9PSBwcmV2UHJvcHMuY2VsbFNpemVDYWNoZSB8fFxuICAgICAgICB0aGlzLnByb3BzLnBpbm5lZENvbHVtbnMgIT09IHByZXZQcm9wcy5waW5uZWRDb2x1bW5zXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zY2FsZUNlbGxzVG9XaWR0aCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5oYXNNb3VudGVkID0gZmFsc2U7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zY2FsZUNlbGxzVG9XaWR0aCk7XG4gICAgfVxuXG4gICAgcm9vdCA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgICBjb2x1bW5zID0gKHByb3BzOiBEYXRhVGFibGVQcm9wcykgPT4gcHJvcHMuY29sdW1ucztcbiAgICBwaW5uZWRDb2x1bW5zID0gKHByb3BzOiBEYXRhVGFibGVQcm9wcykgPT4gcHJvcHMucGlubmVkQ29sdW1ucztcbiAgICB1bnBpbm5lZENvbHVtbnMgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmNvbHVtbnMsIHRoaXMucGlubmVkQ29sdW1ucywgKGNvbHVtbnMsIHBpbm5lZENvbHVtbnMpID0+XG4gICAgICAhQXJyYXkuaXNBcnJheShwaW5uZWRDb2x1bW5zKSA/IGNvbHVtbnMgOiBjb2x1bW5zLmZpbHRlcihjID0+ICFwaW5uZWRDb2x1bW5zLmluY2x1ZGVzKGMpKVxuICAgICk7XG5cbiAgICB0b2dnbGVNb3JlT3B0aW9ucyA9IG1vcmVPcHRpb25zQ29sdW1uID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc01vdW50ZWQpXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uOlxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5tb3JlT3B0aW9uc0NvbHVtbiA9PT0gbW9yZU9wdGlvbnNDb2x1bW4gPyBudWxsIDogbW9yZU9wdGlvbnNDb2x1bW5cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICB0b2dnbGVTaG93U3RhdHMgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKSB0aGlzLnNldFN0YXRlKHtzaG93U3RhdHM6ICF0aGlzLnN0YXRlLnNob3dTdGF0c30pO1xuICAgIH07XG4gICAgZ2V0Q2VsbFNpemVDYWNoZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtjZWxsU2l6ZUNhY2hlOiBwcm9wc0NhY2hlID0ge30sIGZpeGVkV2lkdGgsIHBpbm5lZENvbHVtbnMgPSBbXX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zID0gdGhpcy51bnBpbm5lZENvbHVtbnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gZml4ZWRXaWR0aCA/IGZpeGVkV2lkdGggOiB0aGlzLnJvb3QuY3VycmVudCA/IHRoaXMucm9vdC5jdXJyZW50LmNsaWVudFdpZHRoIDogMDtcblxuICAgICAgLy8gcGluIGNvbHVtbiBib3JkZXIgaXMgMiBwaXhlbCB2cyAxIHBpeGVsXG4gICAgICBjb25zdCBhZGp1c3RXaWR0aCA9IHBpbm5lZENvbHVtbnMubGVuZ3RoID8gd2lkdGggLSAxIDogd2lkdGg7XG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZSwgZ2hvc3R9ID0gYWRqdXN0Q2VsbHNUb0NvbnRhaW5lcihcbiAgICAgICAgYWRqdXN0V2lkdGgsXG4gICAgICAgIHByb3BzQ2FjaGUsXG4gICAgICAgIHBpbm5lZENvbHVtbnMsXG4gICAgICAgIHVucGlubmVkQ29sdW1uc1xuICAgICAgKSBhcyB7Y2VsbFNpemVDYWNoZTogQ2VsbFNpemVDYWNoZTsgZ2hvc3Q6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWR9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICBnaG9zdFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgZG9TY2FsZUNlbGxzVG9XaWR0aCA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc01vdW50ZWQpIHRoaXMuc2V0U3RhdGUodGhpcy5nZXRDZWxsU2l6ZUNhY2hlKCkpO1xuICAgIH07XG5cbiAgICBzY2FsZUNlbGxzVG9XaWR0aCA9IGRlYm91bmNlKHRoaXMuZG9TY2FsZUNlbGxzVG9XaWR0aCwgMzAwKTtcblxuICAgIHJlbmRlckRhdGFDZWxsID0gKGNvbHVtbnMsIGlzUGlubmVkLCBwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IGdldFJvd0NlbGwgPSB0aGlzLnByb3BzLmdldFJvd0NlbGwgPz8gZGVmYXVsdEdldFJvd0NlbGw7XG4gICAgICBjb25zdCBEYXRhQ2VsbFJlbmRlcmVyID0gY2VsbEluZm8gPT4ge1xuICAgICAgICBjb25zdCB7Y29sdW1uSW5kZXgsIGtleSwgc3R5bGUsIHJvd0luZGV4fSA9IGNlbGxJbmZvO1xuICAgICAgICBjb25zdCB7ZGF0YUNvbnRhaW5lciwgY29sTWV0YX0gPSBwcm9wcztcbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGNvbnN0IGlzR2hvc3QgPSBjb2x1bW4uZ2hvc3Q7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gaXNHaG9zdCA/IG51bGwgOiBnZXRDb2x1bW5Gb3JtYXR0ZXIoY29sTWV0YVtjb2x1bW5dKTtcbiAgICAgICAgY29uc3Qgcm93Q2VsbCA9IGlzR2hvc3QgPyAnJyA6IGdldFJvd0NlbGwoey4uLnByb3BzLCBjb2x1bW4sIHJvd0luZGV4fSwgZm9ybWF0dGVyKTtcbiAgICAgICAgY29uc3QgdHlwZSA9IGlzR2hvc3QgPyBudWxsIDogY29sTWV0YVtjb2x1bW5dLnR5cGU7XG5cbiAgICAgICAgY29uc3QgbGFzdFJvd0luZGV4ID0gZGF0YUNvbnRhaW5lciA/IGRhdGFDb250YWluZXIubnVtUm93cygpIC0gMSA6IDA7XG5cbiAgICAgICAgY29uc3QgZW5kQ2VsbCA9IGNvbHVtbkluZGV4ID09PSBjb2x1bW5zLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGZpcnN0Q2VsbCA9IGNvbHVtbkluZGV4ID09PSAwO1xuICAgICAgICBjb25zdCBib3R0b21DZWxsID0gcm93SW5kZXggPT09IGxhc3RSb3dJbmRleDtcbiAgICAgICAgY29uc3QgYWxpZ25SaWdodCA9IGZpZWxkVG9BbGlnblJpZ2h0W051bWJlcih0eXBlKV07XG5cbiAgICAgICAgY29uc3QgY2VsbCA9IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2NlbGwnLCB7XG4gICAgICAgICAgICAgIFtyb3dJbmRleCAlIDIgPT09IDAgPyAnZXZlbi1yb3cnIDogJ29kZC1yb3cnXTogdHJ1ZSxcbiAgICAgICAgICAgICAgW2Byb3ctJHtyb3dJbmRleH1gXTogdHJ1ZSxcbiAgICAgICAgICAgICAgJ3Bpbm5lZC1jZWxsJzogaXNQaW5uZWQsXG4gICAgICAgICAgICAgICdmaXJzdC1jZWxsJzogZmlyc3RDZWxsLFxuICAgICAgICAgICAgICAnZW5kLWNlbGwnOiBlbmRDZWxsLFxuICAgICAgICAgICAgICAnYm90dG9tLWNlbGwnOiBib3R0b21DZWxsLFxuICAgICAgICAgICAgICAnYWxpZ24tcmlnaHQnOiBhbGlnblJpZ2h0XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgdGl0bGU9e2lzR2hvc3QgPyB1bmRlZmluZWQgOiByb3dDZWxsfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtgJHtyb3dDZWxsfSR7ZW5kQ2VsbCA/ICdcXG4nIDogJ1xcdCd9YH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY2VsbDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gRGF0YUNlbGxSZW5kZXJlcjtcbiAgICB9O1xuXG4gICAgcmVuZGVySGVhZGVyQ2VsbChjb2x1bW5zLCBpc1Bpbm5lZCwgcHJvcHMsIHRvZ2dsZU1vcmVPcHRpb25zLCBtb3JlT3B0aW9uc0NvbHVtbikge1xuICAgICAgY29uc3QgSGVhZGVyQ2VsbFJlbmRlcmVyID0gY2VsbEluZm8gPT4gKFxuICAgICAgICA8SGVhZGVyQ2VsbFxuICAgICAgICAgIGNlbGxJbmZvPXtjZWxsSW5mb31cbiAgICAgICAgICBrZXk9e2NlbGxJbmZvLmNvbHVtbkluZGV4fVxuICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgaXNQaW5uZWQ9e2lzUGlubmVkfVxuICAgICAgICAgIHNob3dTdGF0cz17dGhpcy5zdGF0ZS5zaG93U3RhdHN9XG4gICAgICAgICAgcHJvcHM9e3Byb3BzfVxuICAgICAgICAgIHRvZ2dsZU1vcmVPcHRpb25zPXt0b2dnbGVNb3JlT3B0aW9uc31cbiAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtbj17bW9yZU9wdGlvbnNDb2x1bW59XG4gICAgICAgICAgLy8gcGFzcyBkdW1teSBzdHlsZSB0byBwcmV2ZW50IHdhcm5pbmdzIGZyb20gcmVhY3QtdmlydHVhbGl6ZWQgR3JpZFxuICAgICAgICAgIHN0eWxlPXtEVU1NWV9TVFlMRX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgICByZXR1cm4gSGVhZGVyQ2VsbFJlbmRlcmVyO1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGRhdGFDb250YWluZXIsXG4gICAgICAgIHBpbm5lZENvbHVtbnMgPSBbXSxcbiAgICAgICAgdGhlbWUgPSB7fSxcbiAgICAgICAgZml4ZWRXaWR0aCxcbiAgICAgICAgZml4ZWRIZWlnaHQgPSAwLFxuICAgICAgICBoYXNTdGF0cyxcbiAgICAgICAgaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGVcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zID0gdGhpcy51bnBpbm5lZENvbHVtbnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHtjZWxsU2l6ZUNhY2hlID0ge30sIG1vcmVPcHRpb25zQ29sdW1uLCBnaG9zdCwgc2hvd1N0YXRzfSA9IHRoaXMuc3RhdGU7XG4gICAgICBjb25zdCB1bnBpbm5lZENvbHVtbnNHaG9zdCA9IGdob3N0XG4gICAgICAgID8gWy4uLnVucGlubmVkQ29sdW1ucywge2dob3N0OiB0cnVlfSBhcyBzdHJpbmcgJiB7Z2hvc3Q6IGJvb2xlYW59XVxuICAgICAgICA6IHVucGlubmVkQ29sdW1ucztcbiAgICAgIGNvbnN0IHBpbm5lZENvbHVtbnNXaWR0aCA9IHBpbm5lZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAoYWNjLCB2YWwpID0+IGFjYyArIChnZXQoY2VsbFNpemVDYWNoZSwgdmFsLCAwKSBhcyBudW1iZXIpLFxuICAgICAgICAwXG4gICAgICApO1xuXG4gICAgICBjb25zdCBoYXNQaW5uZWRDb2x1bW5zID0gQm9vbGVhbihwaW5uZWRDb2x1bW5zLmxlbmd0aCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGhlYWRlclJvd0hlaWdodCA9IGRlZmF1bHRIZWFkZXJSb3dIZWlnaHQsXG4gICAgICAgIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodCA9IGRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQsXG4gICAgICAgIGhlYWRlclJvd1dTdGF0c0hlaWdodCA9IGRlZmF1bHRIZWFkZXJSb3dIZWlnaHQsXG4gICAgICAgIHJvd0hlaWdodCA9IGRlZmF1bHRSb3dIZWlnaHRcbiAgICAgIH0gPSB0aGVtZTtcblxuICAgICAgY29uc3QgaGVhZGVyR3JpZFByb3BzID0ge1xuICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICBjbGFzc05hbWU6ICdoZWFkZXItZ3JpZCcsXG4gICAgICAgIGhlaWdodDogIWhhc1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dIZWlnaHRcbiAgICAgICAgICA6IHNob3dTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93V1N0YXRzSGVpZ2h0XG4gICAgICAgICAgOiBoZWFkZXJSb3dIZWlnaHQgKyBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQsXG4gICAgICAgIHJvd0NvdW50OiAxLFxuICAgICAgICByb3dIZWlnaHQ6ICFoYXNTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93SGVpZ2h0XG4gICAgICAgICAgOiBzaG93U3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd1dTdGF0c0hlaWdodFxuICAgICAgICAgIDogaGVhZGVyUm93SGVpZ2h0ICsgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkYXRhR3JpZFByb3BzID0ge1xuICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICBvdmVyc2NhbkNvbHVtbkNvdW50LFxuICAgICAgICBvdmVyc2NhblJvd0NvdW50LFxuICAgICAgICByb3dDb3VudDogZGF0YUNvbnRhaW5lciA/IGRhdGFDb250YWluZXIubnVtUm93cygpIDogMCxcbiAgICAgICAgcm93SGVpZ2h0XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YS10YWJsZS1jb250YWluZXJcIlxuICAgICAgICAgIHJlZj17dGhpcy5yb290fVxuICAgICAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPXtoYXNDdXN0b21TY3JvbGxCYXJTdHlsZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtPYmplY3Qua2V5cyhjZWxsU2l6ZUNhY2hlKS5sZW5ndGggPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8U2Nyb2xsU3luYz5cbiAgICAgICAgICAgICAgICB7KHtvblNjcm9sbCwgc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXN1bHRzLXRhYmxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7aGFzUGlubmVkQ29sdW1ucyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT1cInBpbm5lZC1jb2x1bW5zXCIgY2xhc3NOYW1lPVwicGlubmVkLWNvbHVtbnMgZ3JpZC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdD17cGlubmVkQ2xhc3NMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17cGlubmVkQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJHcmlkUHJvcHM9e2hlYWRlckdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXtwaW5uZWRDb2x1bW5zV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e2FyZ3MgPT4gb25TY3JvbGwoey4uLmFyZ3MsIHNjcm9sbExlZnR9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A9e3Njcm9sbFRvcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0PXtzY3JvbGxMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFHcmlkUHJvcHM9e2RhdGFHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17cGlubmVkR3JpZCA9PiAodGhpcy5waW5uZWRHcmlkID0gcGlubmVkR3JpZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGg9e2NvbHVtbldpZHRoRnVuY3Rpb24ocGlubmVkQ29sdW1ucywgY2VsbFNpemVDYWNoZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJIZWFkZXJDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVNb3JlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJEYXRhQ2VsbChwaW5uZWRDb2x1bW5zLCB0cnVlLCB0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwidW5waW5uZWQtY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBgJHtoYXNQaW5uZWRDb2x1bW5zID8gYCR7cGlubmVkQ29sdW1uc1dpZHRofXB4YCA6ICcwJ31gXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidW5waW5uZWQtY29sdW1ucyBncmlkLWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0xpc3Q9e3VucGlubmVkQ2xhc3NMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bpbm5lZD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e3VucGlubmVkQ29sdW1uc0dob3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJHcmlkUHJvcHM9e2hlYWRlckdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRXaWR0aD17Zml4ZWRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRIZWlnaHQ9e2ZpeGVkSGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcD17c2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0PXtzY3JvbGxMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhR3JpZFByb3BzPXtkYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRHcmlkUmVmPXt1bnBpbm5lZEdyaWQgPT4gKHRoaXMudW5waW5uZWRHcmlkID0gdW5waW5uZWRHcmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGg9e2NvbHVtbldpZHRoRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaG9zdFxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckhlYWRlckNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZU1vcmVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckRhdGFDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L1Njcm9sbFN5bmM+XG4gICAgICAgICAgICAgIHtoYXNTdGF0cyA/IChcbiAgICAgICAgICAgICAgICA8U3RhdHNDb250cm9sXG4gICAgICAgICAgICAgICAgICB0b3A9e2hlYWRlclJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICAgIHNob3dTdGF0cz17c2hvd1N0YXRzfVxuICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd1N0YXRzPXt0aGlzLnRvZ2dsZVNob3dTdGF0c31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdpdGhUaGVtZShEYXRhVGFibGUgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxEYXRhVGFibGVQcm9wcz4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGVGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBSCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBSCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVEsTUFBQSxHQUFBUixPQUFBO0FBSUEsSUFBQVMsS0FBQSxHQUFBTCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVUsV0FBQSxHQUFBTixzQkFBQSxDQUFBSixPQUFBO0FBR0EsSUFBQVcsTUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksU0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBQXFELElBQUFjLGVBQUEsRUFBQUMsZ0JBQUEsRUFyQnJEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWxCLHdCQUFBa0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFBQSxTQUFBa0MsV0FBQS9CLENBQUEsRUFBQW1CLENBQUEsRUFBQXRCLENBQUEsV0FBQXNCLENBQUEsT0FBQWEsZ0JBQUEsYUFBQWIsQ0FBQSxPQUFBYywyQkFBQSxhQUFBakMsQ0FBQSxFQUFBa0MseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFqQixDQUFBLEVBQUF0QixDQUFBLFlBQUFtQyxnQkFBQSxhQUFBaEMsQ0FBQSxFQUFBcUMsV0FBQSxJQUFBbEIsQ0FBQSxDQUFBSSxLQUFBLENBQUF2QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBcUMsMEJBQUEsY0FBQWxDLENBQUEsSUFBQXNDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUEzQixJQUFBLENBQUFzQixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXRDLENBQUEsYUFBQWtDLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFsQyxDQUFBO0FBc0JBLElBQU15QyxzQkFBc0IsR0FBRyxFQUFFO0FBQ2pDLElBQU1DLCtCQUErQixHQUFHLEVBQUU7QUFDMUMsSUFBTUMsZ0JBQWdCLEdBQUcsRUFBRTtBQUMzQixJQUFNQyxtQkFBbUIsR0FBRyxFQUFFO0FBQzlCLElBQU1DLGdCQUFnQixHQUFHLEVBQUU7QUFDM0I7QUFDQSxJQUFNQyxxQkFBcUIsR0FBRyxFQUFFO0FBQ2hDLElBQU1DLGlCQUFpQixPQUFBbkIsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUNwQm9CLDBCQUFlLENBQUNDLE9BQU8sRUFBRyxJQUFJLEdBQzlCRCwwQkFBZSxDQUFDRSxJQUFJLEVBQUcsSUFBSSxDQUM3QjtBQUVELElBQU1DLGVBQWUsR0FBRztFQUN0QkMsTUFBTSxFQUFFLDhDQUE4QztFQUN0REMsSUFBSSxFQUFFO0FBQ1IsQ0FBQztBQUVELElBQU1DLGlCQUFpQixHQUFHO0VBQ3hCRixNQUFNLEVBQUUsa0RBQWtEO0VBQzFEQyxJQUFJLEVBQUU7QUFDUixDQUFDO0FBTU0sSUFBTUUsU0FBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBR0UsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBaEUsZUFBQSxLQUFBQSxlQUFBLE9BQUFpRSx1QkFBQSw4akZBSXhCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0Msa0JBQWtCO0FBQUEsR0FRNUMsVUFBQUYsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0csdUJBQXVCLElBQUlILEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxjQUFjO0FBQUEsR0F3QnpDLFVBQUFKLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBQzdDbkIscUJBQXFCLEVBS1osVUFBQWMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSSxlQUFlO0FBQUEsR0FFN0NuQixxQkFBcUIsRUE2QmIsVUFBQWMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxxQkFBcUI7QUFBQSxHQUdoRCxVQUFBTixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNNLGlCQUFpQjtBQUFBLEdBR3RDLFVBQUFQLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ08sZ0JBQWdCO0FBQUEsR0FtQjlCLFVBQUFSLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBQ3JDLFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBR2pELFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsZUFBZTtBQUFBLEdBQ3BDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsWUFBWTtBQUFBLEdBUzdCLFVBQUFWLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsZUFBZSxHQUFHVCxLQUFLLENBQUNDLEtBQUssQ0FBQ1UsbUJBQW1CO0FBQUEsR0FJdkUsVUFBQVgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxlQUFlLEdBQUdULEtBQUssQ0FBQ0MsS0FBSyxDQUFDVSxtQkFBbUI7QUFBQSxFQWEzRjtBQUVELElBQU1DLGtCQUFrQixHQUFHLEdBQUc7QUFPOUIsSUFBTUMsbUJBQW1CLEdBQ3ZCLFNBRElBLG1CQUFtQkEsQ0FDdEJDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxLQUFNO0VBQUEsT0FDL0IsVUFBQUMsSUFBQSxFQUFhO0lBQUEsSUFBWEMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTCxPQUFPLENBQUNKLE9BQU8sQ0FBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUVGLEtBQUssR0FDL0JBLEtBQUssR0FDTEQsYUFBYSxDQUFDRCxPQUFPLENBQUNJLEtBQUssQ0FBQyxDQUFDLElBQUlOLGtCQUFrQjtFQUN6RCxDQUFDO0FBQUE7QUFXSDtBQUNBO0FBQ0E7QUFDQSxJQUFNTyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxLQUFBLEVBRXJCQyxTQUFTLEVBQ047RUFBQSxJQUZGQyxhQUFhLEdBQUFGLEtBQUEsQ0FBYkUsYUFBYTtJQUFFUixPQUFPLEdBQUFNLEtBQUEsQ0FBUE4sT0FBTztJQUFFUyxNQUFNLEdBQUFILEtBQUEsQ0FBTkcsTUFBTTtJQUFFQyxPQUFPLEdBQUFKLEtBQUEsQ0FBUEksT0FBTztJQUFFQyxRQUFRLEdBQUFMLEtBQUEsQ0FBUkssUUFBUTtJQUFFQyxTQUFTLEdBQUFOLEtBQUEsQ0FBVE0sU0FBUztFQUc3RCxJQUFNQyxNQUFNLEdBQUdELFNBQVMsSUFBSUEsU0FBUyxDQUFDNUQsTUFBTSxHQUFHLElBQUF0QixrQkFBRyxFQUFDa0YsU0FBUyxFQUFFRCxRQUFRLENBQUMsR0FBR0EsUUFBUTtFQUNsRixJQUFPRyxJQUFJLEdBQUlKLE9BQU8sQ0FBQ0QsTUFBTSxDQUFDLENBQXZCSyxJQUFJO0VBRVgsSUFBTUMsS0FBSyxHQUFHUCxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRVEsT0FBTyxDQUFDSCxNQUFNLEVBQUViLE9BQU8sQ0FBQ2lCLE9BQU8sQ0FBQ1IsTUFBTSxDQUFDLENBQUM7RUFDckUsT0FBT00sS0FBSyxLQUFLLElBQUksSUFBSUEsS0FBSyxLQUFLRyxTQUFTLElBQUlILEtBQUssS0FBSyxFQUFFLEdBQ3hELEVBQUUsR0FDRlIsU0FBUyxHQUNUQSxTQUFTLENBQUNRLEtBQUssQ0FBQyxHQUNoQixJQUFBSSxzQkFBZSxFQUFDSixLQUFLLEVBQUVELElBQUksQ0FBQztBQUNsQyxDQUFDO0FBT0QsSUFBTU0sa0JBQWtCLEdBQUdyQyw0QkFBTSxDQUFDQyxHQUFHLENBQUEvRCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBZ0UsdUJBQUEsd2ZBQ3pCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ2tDLHdCQUF3QjtBQUFBLEdBTWhELFVBQUFuQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDb0MsR0FBRztBQUFBLEdBQ1YsVUFBQXBDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ29DLGdCQUFnQjtBQUFBLEdBRTNDLFVBQUFyQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNxQyxXQUFXO0FBQUEsR0FDckIsVUFBQXRDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ3NDLGdDQUFnQztBQUFBLEdBYWpELFVBQUF2QyxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDd0MsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsQ0FBQyxDQUc3RDtBQUVELElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxLQUFBO0VBQUEsSUFDaEJOLEdBQUcsR0FBQU0sS0FBQSxDQUFITixHQUFHO0lBQ0hJLFNBQVMsR0FBQUUsS0FBQSxDQUFURixTQUFTO0lBQ1RHLGVBQWUsR0FBQUQsS0FBQSxDQUFmQyxlQUFlO0VBQUEsb0JBTWY3SCxNQUFBLFlBQUE4SCxhQUFBLENBQUNWLGtCQUFrQjtJQUFDRSxHQUFHLEVBQUVBLEdBQUk7SUFBQ0ksU0FBUyxFQUFFQTtFQUFVLGdCQUNqRDFILE1BQUEsWUFBQThILGFBQUE7SUFBS0MsT0FBTyxFQUFFRjtFQUFnQixHQUMzQkgsU0FBUyxHQUFHLG1CQUFtQixHQUFHLG1CQUFtQixlQUN0RDFILE1BQUEsWUFBQThILGFBQUEsQ0FBQ3BILE1BQUEsQ0FBQXNILFNBQVM7SUFBQ0MsTUFBTSxFQUFDO0VBQU0sQ0FBRSxDQUN2QixDQUNhLENBQUM7QUFBQSxDQUN0QjtBQXlCTSxJQUFNQyxZQUFZLEdBQUFwRCxPQUFBLENBQUFvRCxZQUFBLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQUMsS0FBQSxFQWVBO0VBQUEsSUFkdkJDLFNBQVMsR0FBQUQsS0FBQSxDQUFUQyxTQUFTO0lBQ1RDLFFBQVEsR0FBQUYsS0FBQSxDQUFSRSxRQUFRO0lBQ1JyQyxPQUFPLEdBQUFtQyxLQUFBLENBQVBuQyxPQUFPO0lBQ1BzQyxlQUFlLEdBQUFILEtBQUEsQ0FBZkcsZUFBZTtJQUNmQyxVQUFVLEdBQUFKLEtBQUEsQ0FBVkksVUFBVTtJQUFBQyxpQkFBQSxHQUFBTCxLQUFBLENBQ1ZNLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxpQkFBQSxjQUFHdEIsU0FBUyxHQUFBc0IsaUJBQUE7SUFDdkJFLFFBQVEsR0FBQVAsS0FBQSxDQUFSTyxRQUFRO0lBQ1JDLFNBQVMsR0FBQVIsS0FBQSxDQUFUUSxTQUFTO0lBQ1RDLGFBQWEsR0FBQVQsS0FBQSxDQUFiUyxhQUFhO0lBQ2JDLFdBQVcsR0FBQVYsS0FBQSxDQUFYVSxXQUFXO0lBQUFDLGdCQUFBLEdBQUFYLEtBQUEsQ0FDWFksVUFBVTtJQUFWQSxVQUFVLEdBQUFELGdCQUFBLGNBQUc1QixTQUFTLEdBQUE0QixnQkFBQTtJQUN0QkUsZ0JBQWdCLEdBQUFiLEtBQUEsQ0FBaEJhLGdCQUFnQjtJQUNoQkMsY0FBYyxHQUFBZCxLQUFBLENBQWRjLGNBQWM7SUFBQUMsZ0JBQUEsR0FBQWYsS0FBQSxDQUNkZ0IsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGdCQUFBLGNBQUcsQ0FBQyxHQUFBQSxnQkFBQTtFQUVkLElBQU1FLFlBQVksR0FBR2QsZUFBZSxDQUFDTCxNQUFNO0VBRTNDLElBQU1vQixXQUFXLEdBQUcsSUFBQUMsY0FBTyxFQUN6QjtJQUFBLE9BQU87TUFDTHJCLE1BQU0sS0FBQXNCLE1BQUEsQ0FBS0gsWUFBWTtJQUN6QixDQUFDO0VBQUEsQ0FBQyxFQUNGLENBQUNBLFlBQVksQ0FDZixDQUFDO0VBQ0QsSUFBTUksWUFBWSxHQUFHLElBQUFGLGNBQU8sRUFDMUI7SUFBQSxPQUFPO01BQ0xoQyxHQUFHLEtBQUFpQyxNQUFBLENBQUtILFlBQVk7SUFDdEIsQ0FBQztFQUFBLENBQUMsRUFDRixDQUFDQSxZQUFZLENBQ2YsQ0FBQztFQUVELG9CQUNFcEosTUFBQSxZQUFBOEgsYUFBQSxDQUFDM0gsaUJBQUEsQ0FBQXNKLFNBQVMsUUFDUCxVQUFBQyxLQUFBLEVBQXFCO0lBQUEsSUFBbkJDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO01BQUUxQixNQUFNLEdBQUF5QixLQUFBLENBQU56QixNQUFNO0lBQ2QsSUFBTTJCLGFBQWEsR0FBRztNQUNwQkMsV0FBVyxFQUFFN0QsT0FBTyxDQUFDaEQsTUFBTTtNQUMzQjZGLFdBQVcsRUFBWEEsV0FBVztNQUNYYyxLQUFLLEVBQUVwQixVQUFVLElBQUlvQjtJQUN2QixDQUFDO0lBQ0QsSUFBTUcsZUFBZSxHQUFHdkIsVUFBVSxJQUFJb0IsS0FBSztJQUMzQyxJQUFNSSxjQUFjLEdBQUd0QixXQUFXLElBQUlSLE1BQU07SUFFNUMsb0JBQ0VqSSxNQUFBLFlBQUE4SCxhQUFBLENBQUE5SCxNQUFBLFlBQUFnSyxRQUFBLHFCQUNFaEssTUFBQSxZQUFBOEgsYUFBQTtNQUNFbUMsU0FBUyxFQUFFLElBQUFDLHVCQUFVLEVBQUMscUJBQXFCLEVBQUU5QixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRTFELE1BQU0sQ0FBRTtNQUNoRXlGLEtBQUssRUFBRWQ7SUFBWSxnQkFFbkJySixNQUFBLFlBQUE4SCxhQUFBLENBQUNuSCxLQUFBLFdBQUksTUFBQXlKLFNBQUE7TUFDSEMsWUFBWSxFQUFFckI7SUFBaUIsR0FDM0JWLGVBQWUsRUFDZnNCLGFBQWE7TUFDakIzQixNQUFNLEVBQUVLLGVBQWUsQ0FBQ0wsTUFBTSxHQUFHN0QscUJBQXNCO01BQ3ZEdUYsS0FBSyxFQUFFRyxlQUFnQjtNQUN2QlgsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCVCxRQUFRLEVBQUVBO0lBQVMsRUFDcEIsQ0FDRSxDQUFDLGVBQ04xSSxNQUFBLFlBQUE4SCxhQUFBO01BQ0VtQyxTQUFTLEVBQUUsSUFBQUMsdUJBQVUsRUFBQyxxQkFBcUIsRUFBRTlCLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFekQsSUFBSSxDQUFFO01BQzlEd0YsS0FBSyxFQUFFWDtJQUFhLGdCQUVwQnhKLE1BQUEsWUFBQThILGFBQUEsQ0FBQ25ILEtBQUEsV0FBSSxNQUFBeUosU0FBQTtNQUNIQyxZQUFZLEVBQUVwQjtJQUFlLEdBQ3pCTCxhQUFhLEVBQ2JnQixhQUFhO01BQ2pCSyxTQUFTLEVBQUU1QixRQUFRLEdBQUcsYUFBYSxHQUFHLFdBQVk7TUFDbERKLE1BQU0sRUFBRThCLGNBQWMsR0FBR3pCLGVBQWUsQ0FBQ0wsTUFBTztNQUNoRFMsUUFBUSxFQUFFQSxRQUFTO01BQ25CUyxVQUFVLEVBQUVBLFVBQVc7TUFDdkJSLFNBQVMsRUFBRUEsU0FBVTtNQUNyQkksVUFBVSxFQUFFQTtJQUFXLEVBQ3hCLENBQ0UsQ0FDTCxDQUFDO0VBRVAsQ0FDUyxDQUFDO0FBRWhCLENBQUM7QUErQkQsSUFBTXVCLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEJDLGdCQUFnQixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0Msc0JBQWlCLENBQUM7QUFDM0MsU0FBU0YsZ0JBQWdCQSxDQUN2QkcsVUFBZ0QsRUFDWDtFQUFBLElBQy9CQyxTQUFTLDBCQUFBQyxVQUFBO0lBQUEsU0FBQUQsVUFBQTtNQUFBLElBQUFFLEtBQUE7TUFBQSxJQUFBQyxnQkFBQSxtQkFBQUgsU0FBQTtNQUFBLFNBQUFJLElBQUEsR0FBQWhJLFNBQUEsQ0FBQUMsTUFBQSxFQUFBZ0ksSUFBQSxPQUFBQyxLQUFBLENBQUFGLElBQUEsR0FBQUcsSUFBQSxNQUFBQSxJQUFBLEdBQUFILElBQUEsRUFBQUcsSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQW5JLFNBQUEsQ0FBQW1JLElBQUE7TUFBQTtNQUFBTCxLQUFBLEdBQUF4SCxVQUFBLE9BQUFzSCxTQUFBLEtBQUFwQixNQUFBLENBQUF5QixJQUFBO01BQUEsSUFBQTlILGdCQUFBLGFBQUEySCxLQUFBLGdCQWN1QixJQUFJO01BQUEsSUFBQTNILGdCQUFBLGFBQUEySCxLQUFBLGtCQUNGLElBQUk7TUFBQSxJQUFBM0gsZ0JBQUEsYUFBQTJILEtBQUEsZ0JBQzdCLEtBQUs7TUFBQSxJQUFBM0gsZ0JBQUEsYUFBQTJILEtBQUEsV0FFTTtRQUN0QjVFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDakJrRixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCekQsU0FBUyxFQUFFO01BQ2IsQ0FBQztNQUFBLElBQUF4RSxnQkFBQSxhQUFBMkgsS0FBQSx1QkFzQk0sSUFBQU8sZ0JBQVMsRUFBaUIsQ0FBQztNQUFBLElBQUFsSSxnQkFBQSxhQUFBMkgsS0FBQSxhQUN4QixVQUFDM0YsS0FBcUI7UUFBQSxPQUFLQSxLQUFLLENBQUNjLE9BQU87TUFBQTtNQUFBLElBQUE5QyxnQkFBQSxhQUFBMkgsS0FBQSxtQkFDbEMsVUFBQzNGLEtBQXFCO1FBQUEsT0FBS0EsS0FBSyxDQUFDbUcsYUFBYTtNQUFBO01BQUEsSUFBQW5JLGdCQUFBLGFBQUEySCxLQUFBLHFCQUM1QyxJQUFBUyx3QkFBYyxFQUFDVCxLQUFBLENBQUs3RSxPQUFPLEVBQUU2RSxLQUFBLENBQUtRLGFBQWEsRUFBRSxVQUFDckYsT0FBTyxFQUFFcUYsYUFBYTtRQUFBLE9BQ3hGLENBQUNKLEtBQUssQ0FBQ00sT0FBTyxDQUFDRixhQUFhLENBQUMsR0FBR3JGLE9BQU8sR0FBR0EsT0FBTyxDQUFDdEQsTUFBTSxDQUFDLFVBQUE4SSxDQUFDO1VBQUEsT0FBSSxDQUFDSCxhQUFhLENBQUNJLFFBQVEsQ0FBQ0QsQ0FBQyxDQUFDO1FBQUEsRUFBQztNQUFBLENBQzNGLENBQUM7TUFBQSxJQUFBdEksZ0JBQUEsYUFBQTJILEtBQUEsdUJBRW1CLFVBQUFNLGlCQUFpQixFQUFJO1FBQ3ZDLElBQUlOLEtBQUEsQ0FBS2EsVUFBVSxFQUNqQmIsS0FBQSxDQUFLYyxRQUFRLENBQUM7VUFDWlIsaUJBQWlCLEVBQ2ZOLEtBQUEsQ0FBS2UsS0FBSyxDQUFDVCxpQkFBaUIsS0FBS0EsaUJBQWlCLEdBQUcsSUFBSSxHQUFHQTtRQUNoRSxDQUFDLENBQUM7TUFDTixDQUFDO01BQUEsSUFBQWpJLGdCQUFBLGFBQUEySCxLQUFBLHFCQUNpQixZQUFNO1FBQ3RCLElBQUlBLEtBQUEsQ0FBS2EsVUFBVSxFQUFFYixLQUFBLENBQUtjLFFBQVEsQ0FBQztVQUFDakUsU0FBUyxFQUFFLENBQUNtRCxLQUFBLENBQUtlLEtBQUssQ0FBQ2xFO1FBQVMsQ0FBQyxDQUFDO01BQ3hFLENBQUM7TUFBQSxJQUFBeEUsZ0JBQUEsYUFBQTJILEtBQUEsc0JBQ2tCLFlBQU07UUFDdkIsSUFBQWdCLFdBQUEsR0FBeUVoQixLQUFBLENBQUszRixLQUFLO1VBQUE0RyxxQkFBQSxHQUFBRCxXQUFBLENBQTVFNUYsYUFBYTtVQUFFOEYsVUFBVSxHQUFBRCxxQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxxQkFBQTtVQUFFdkQsVUFBVSxHQUFBc0QsV0FBQSxDQUFWdEQsVUFBVTtVQUFBeUQscUJBQUEsR0FBQUgsV0FBQSxDQUFFUixhQUFhO1VBQWJBLGFBQWEsR0FBQVcscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO1FBQ3JFLElBQU1DLGVBQWUsR0FBR3BCLEtBQUEsQ0FBS29CLGVBQWUsQ0FBQ3BCLEtBQUEsQ0FBSzNGLEtBQUssQ0FBQztRQUV4RCxJQUFNeUUsS0FBSyxHQUFHcEIsVUFBVSxHQUFHQSxVQUFVLEdBQUdzQyxLQUFBLENBQUtxQixJQUFJLENBQUNDLE9BQU8sR0FBR3RCLEtBQUEsQ0FBS3FCLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxXQUFXLEdBQUcsQ0FBQzs7UUFFN0Y7UUFDQSxJQUFNQyxXQUFXLEdBQUdoQixhQUFhLENBQUNySSxNQUFNLEdBQUcyRyxLQUFLLEdBQUcsQ0FBQyxHQUFHQSxLQUFLO1FBQzVELElBQUEyQyxLQUFBLEdBQStCLElBQUFDLGdDQUFzQixFQUNuREYsV0FBVyxFQUNYTixVQUFVLEVBQ1ZWLGFBQWEsRUFDYlksZUFDRixDQUFDO1VBTE1oRyxhQUFhLEdBQUFxRyxLQUFBLENBQWJyRyxhQUFhO1VBQUVDLEtBQUssR0FBQW9HLEtBQUEsQ0FBTHBHLEtBQUs7UUFPM0IsT0FBTztVQUNMRCxhQUFhLEVBQWJBLGFBQWE7VUFDYkMsS0FBSyxFQUFMQTtRQUNGLENBQUM7TUFDSCxDQUFDO01BQUEsSUFBQWhELGdCQUFBLGFBQUEySCxLQUFBLHlCQUVxQixZQUFNO1FBQzFCLElBQUlBLEtBQUEsQ0FBS2EsVUFBVSxFQUFFYixLQUFBLENBQUtjLFFBQVEsQ0FBQ2QsS0FBQSxDQUFLMkIsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO01BQzdELENBQUM7TUFBQSxJQUFBdEosZ0JBQUEsYUFBQTJILEtBQUEsdUJBRW1CLElBQUE0QixtQkFBUSxFQUFDNUIsS0FBQSxDQUFLNkIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO01BQUEsSUFBQXhKLGdCQUFBLGFBQUEySCxLQUFBLG9CQUUxQyxVQUFDN0UsT0FBTyxFQUFFcUMsUUFBUSxFQUFFbkQsS0FBcUIsRUFBSztRQUFBLElBQUF5SCxxQkFBQTtRQUM3RCxJQUFNQyxVQUFVLElBQUFELHFCQUFBLEdBQUc5QixLQUFBLENBQUszRixLQUFLLENBQUMwSCxVQUFVLGNBQUFELHFCQUFBLGNBQUFBLHFCQUFBLEdBQUl0RyxpQkFBaUI7UUFDN0QsSUFBTXdHLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUdDLFFBQVEsRUFBSTtVQUNuQyxJQUFPQyxXQUFXLEdBQTBCRCxRQUFRLENBQTdDQyxXQUFXO1lBQUVDLEdBQUcsR0FBcUJGLFFBQVEsQ0FBaENFLEdBQUc7WUFBRTdDLEtBQUssR0FBYzJDLFFBQVEsQ0FBM0IzQyxLQUFLO1lBQUV4RCxRQUFRLEdBQUltRyxRQUFRLENBQXBCbkcsUUFBUTtVQUN4QyxJQUFPSCxhQUFhLEdBQWF0QixLQUFLLENBQS9Cc0IsYUFBYTtZQUFFRSxPQUFPLEdBQUl4QixLQUFLLENBQWhCd0IsT0FBTztVQUM3QixJQUFNRCxNQUFNLEdBQUdULE9BQU8sQ0FBQytHLFdBQVcsQ0FBQztVQUNuQyxJQUFNRSxPQUFPLEdBQUd4RyxNQUFNLENBQUNQLEtBQUs7VUFFNUIsSUFBTUssU0FBUyxHQUFHMEcsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFBQyx5QkFBa0IsRUFBQ3hHLE9BQU8sQ0FBQ0QsTUFBTSxDQUFDLENBQUM7VUFDdEUsSUFBTTBHLE9BQU8sR0FBR0YsT0FBTyxHQUFHLEVBQUUsR0FBR0wsVUFBVSxDQUFBOUosYUFBQSxDQUFBQSxhQUFBLEtBQUtvQyxLQUFLO1lBQUV1QixNQUFNLEVBQU5BLE1BQU07WUFBRUUsUUFBUSxFQUFSQTtVQUFRLElBQUdKLFNBQVMsQ0FBQztVQUNsRixJQUFNTyxJQUFJLEdBQUdtRyxPQUFPLEdBQUcsSUFBSSxHQUFHdkcsT0FBTyxDQUFDRCxNQUFNLENBQUMsQ0FBQ0ssSUFBSTtVQUVsRCxJQUFNc0csWUFBWSxHQUFHNUcsYUFBYSxHQUFHQSxhQUFhLENBQUM2RyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1VBRXBFLElBQU1DLE9BQU8sR0FBR1AsV0FBVyxLQUFLL0csT0FBTyxDQUFDaEQsTUFBTSxHQUFHLENBQUM7VUFDbEQsSUFBTXVLLFNBQVMsR0FBR1IsV0FBVyxLQUFLLENBQUM7VUFDbkMsSUFBTVMsVUFBVSxHQUFHN0csUUFBUSxLQUFLeUcsWUFBWTtVQUM1QyxJQUFNSyxVQUFVLEdBQUdwSixpQkFBaUIsQ0FBQ3FKLE1BQU0sQ0FBQzVHLElBQUksQ0FBQyxDQUFDO1VBRWxELElBQU02RyxJQUFJLGdCQUNSM04sTUFBQSxZQUFBOEgsYUFBQTtZQUNFbUMsU0FBUyxFQUFFLElBQUFDLHVCQUFVLEVBQUMsTUFBTSxNQUFBaEgsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQ3pCeUQsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxHQUFHLFNBQVMsRUFBRyxJQUFJLFVBQUE0QyxNQUFBLENBQzNDNUMsUUFBUSxHQUFLLElBQUksR0FDekIsYUFBYSxFQUFFMEIsUUFBUSxHQUN2QixZQUFZLEVBQUVrRixTQUFTLEdBQ3ZCLFVBQVUsRUFBRUQsT0FBTyxHQUNuQixhQUFhLEVBQUVFLFVBQVUsR0FDekIsYUFBYSxFQUFFQyxVQUFVLENBQzFCLENBQUU7WUFDSFQsR0FBRyxFQUFFQSxHQUFJO1lBQ1Q3QyxLQUFLLEVBQUVBLEtBQU07WUFDYnlELEtBQUssRUFBRVgsT0FBTyxHQUFHL0YsU0FBUyxHQUFHaUc7VUFBUSxNQUFBNUQsTUFBQSxDQUVqQzRELE9BQU8sRUFBQTVELE1BQUEsQ0FBRytELE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUNoQyxDQUNOO1VBRUQsT0FBT0ssSUFBSTtRQUNiLENBQUM7UUFDRCxPQUFPZCxnQkFBZ0I7TUFDekIsQ0FBQztNQUFBLE9BQUFoQyxLQUFBO0lBQUE7SUFBQSxJQUFBZ0QsVUFBQSxhQUFBbEQsU0FBQSxFQUFBQyxVQUFBO0lBQUEsV0FBQWtELGFBQUEsYUFBQW5ELFNBQUE7TUFBQXFDLEdBQUE7TUFBQWpHLEtBQUEsRUF6R0QsU0FBQWdILGlCQUFpQkEsQ0FBQSxFQUFHO1FBQ2xCLElBQUksQ0FBQ3JDLFVBQVUsR0FBRyxJQUFJO1FBQ3RCc0MsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQztRQUN6RCxJQUFJLENBQUNBLGlCQUFpQixDQUFDLENBQUM7TUFDMUI7SUFBQztNQUFBbEIsR0FBQTtNQUFBakcsS0FBQSxFQUVELFNBQUFvSCxrQkFBa0JBLENBQUNDLFNBQVMsRUFBRTtRQUM1QixJQUNFLElBQUksQ0FBQ2xKLEtBQUssQ0FBQ2UsYUFBYSxLQUFLbUksU0FBUyxDQUFDbkksYUFBYSxJQUNwRCxJQUFJLENBQUNmLEtBQUssQ0FBQ21HLGFBQWEsS0FBSytDLFNBQVMsQ0FBQy9DLGFBQWEsRUFDcEQ7VUFDQSxJQUFJLENBQUM2QyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFCO01BQ0Y7SUFBQztNQUFBbEIsR0FBQTtNQUFBakcsS0FBQSxFQUVELFNBQUFzSCxvQkFBb0JBLENBQUEsRUFBRztRQUNyQixJQUFJLENBQUMzQyxVQUFVLEdBQUcsS0FBSztRQUN2QnNDLE1BQU0sQ0FBQ00sbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQ0osaUJBQWlCLENBQUM7TUFDOUQ7SUFBQztNQUFBbEIsR0FBQTtNQUFBakcsS0FBQSxFQXlGRCxTQUFBd0gsZ0JBQWdCQSxDQUFDdkksT0FBTyxFQUFFcUMsUUFBUSxFQUFFbkQsS0FBSyxFQUFFc0osaUJBQWlCLEVBQUVyRCxpQkFBaUIsRUFBRTtRQUFBLElBQUFzRCxNQUFBO1FBQy9FLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUc1QixRQUFRO1VBQUEsb0JBQ2pDOU0sTUFBQSxZQUFBOEgsYUFBQSxDQUFDNEMsVUFBVTtZQUNUb0MsUUFBUSxFQUFFQSxRQUFTO1lBQ25CRSxHQUFHLEVBQUVGLFFBQVEsQ0FBQ0MsV0FBWTtZQUMxQi9HLE9BQU8sRUFBRUEsT0FBUTtZQUNqQnFDLFFBQVEsRUFBRUEsUUFBUztZQUNuQlgsU0FBUyxFQUFFK0csTUFBSSxDQUFDN0MsS0FBSyxDQUFDbEUsU0FBVTtZQUNoQ3hDLEtBQUssRUFBRUEsS0FBTTtZQUNic0osaUJBQWlCLEVBQUVBLGlCQUFrQjtZQUNyQ3JELGlCQUFpQixFQUFFQTtZQUNuQjtZQUFBO1lBQ0FoQixLQUFLLEVBQUVHO1VBQVksQ0FDcEIsQ0FBQztRQUFBLENBQ0g7UUFDRCxPQUFPb0Usa0JBQWtCO01BQzNCO0lBQUM7TUFBQTFCLEdBQUE7TUFBQWpHLEtBQUEsRUFDRCxTQUFBNEgsTUFBTUEsQ0FBQSxFQUFHO1FBQUEsSUFBQUMsTUFBQTtRQUNQLElBQUFDLFlBQUEsR0FRSSxJQUFJLENBQUMzSixLQUFLO1VBUFpzQixhQUFhLEdBQUFxSSxZQUFBLENBQWJySSxhQUFhO1VBQUFzSSxxQkFBQSxHQUFBRCxZQUFBLENBQ2J4RCxhQUFhO1VBQWJBLGFBQWEsR0FBQXlELHFCQUFBLGNBQUcsRUFBRSxHQUFBQSxxQkFBQTtVQUFBQyxrQkFBQSxHQUFBRixZQUFBLENBQ2xCMUosS0FBSztVQUFMQSxLQUFLLEdBQUE0SixrQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxrQkFBQTtVQUNWeEcsVUFBVSxHQUFBc0csWUFBQSxDQUFWdEcsVUFBVTtVQUFBeUcscUJBQUEsR0FBQUgsWUFBQSxDQUNWcEcsV0FBVztVQUFYQSxXQUFXLEdBQUF1RyxxQkFBQSxjQUFHLENBQUMsR0FBQUEscUJBQUE7VUFDZkMsUUFBUSxHQUFBSixZQUFBLENBQVJJLFFBQVE7VUFDUjVKLHVCQUF1QixHQUFBd0osWUFBQSxDQUF2QnhKLHVCQUF1QjtRQUV6QixJQUFNNEcsZUFBZSxHQUFHLElBQUksQ0FBQ0EsZUFBZSxDQUFDLElBQUksQ0FBQy9HLEtBQUssQ0FBQztRQUV4RCxJQUFBZ0ssV0FBQSxHQUFrRSxJQUFJLENBQUN0RCxLQUFLO1VBQUF1RCxxQkFBQSxHQUFBRCxXQUFBLENBQXJFakosYUFBYTtVQUFiQSxhQUFhLEdBQUFrSixxQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxxQkFBQTtVQUFFaEUsaUJBQWlCLEdBQUErRCxXQUFBLENBQWpCL0QsaUJBQWlCO1VBQUVqRixLQUFLLEdBQUFnSixXQUFBLENBQUxoSixLQUFLO1VBQUV3QixTQUFTLEdBQUF3SCxXQUFBLENBQVR4SCxTQUFTO1FBQzlELElBQU0wSCxvQkFBb0IsR0FBR2xKLEtBQUssTUFBQXFELE1BQUEsS0FBQThGLG1CQUFBLGFBQzFCcEQsZUFBZSxJQUFFO1VBQUMvRixLQUFLLEVBQUU7UUFBSSxDQUFDLEtBQ2xDK0YsZUFBZTtRQUNuQixJQUFNcUQsa0JBQWtCLEdBQUdqRSxhQUFhLENBQUNrRSxNQUFNLENBQzdDLFVBQUNDLEdBQUcsRUFBRUMsR0FBRztVQUFBLE9BQUtELEdBQUcsR0FBSSxJQUFBOU4sa0JBQUcsRUFBQ3VFLGFBQWEsRUFBRXdKLEdBQUcsRUFBRSxDQUFDLENBQVk7UUFBQSxHQUMxRCxDQUNGLENBQUM7UUFFRCxJQUFNQyxnQkFBZ0IsR0FBRzlMLE9BQU8sQ0FBQ3lILGFBQWEsQ0FBQ3JJLE1BQU0sQ0FBQztRQUN0RCxJQUFBMk0scUJBQUEsR0FLSXhLLEtBQUssQ0FKUHlLLGVBQWU7VUFBZkEsZUFBZSxHQUFBRCxxQkFBQSxjQUFHNUwsc0JBQXNCLEdBQUE0TCxxQkFBQTtVQUFBRSxxQkFBQSxHQUl0QzFLLEtBQUssQ0FIUGtDLHdCQUF3QjtVQUF4QkEsd0JBQXdCLEdBQUF3SSxxQkFBQSxjQUFHN0wsK0JBQStCLEdBQUE2TCxxQkFBQTtVQUFBQyxxQkFBQSxHQUd4RDNLLEtBQUssQ0FGUDRLLHFCQUFxQjtVQUFyQkEscUJBQXFCLEdBQUFELHFCQUFBLGNBQUcvTCxzQkFBc0IsR0FBQStMLHFCQUFBO1VBQUFFLGdCQUFBLEdBRTVDN0ssS0FBSyxDQURQOEssU0FBUztVQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcvTCxnQkFBZ0IsR0FBQStMLGdCQUFBO1FBRzlCLElBQU0xSCxlQUFlLEdBQUc7VUFDdEJyQyxhQUFhLEVBQWJBLGFBQWE7VUFDYmdFLFNBQVMsRUFBRSxhQUFhO1VBQ3hCaEMsTUFBTSxFQUFFLENBQUNnSCxRQUFRLEdBQ2JXLGVBQWUsR0FDZmxJLFNBQVMsR0FDVHFJLHFCQUFxQixHQUNyQkgsZUFBZSxHQUFHdkksd0JBQXdCO1VBQzlDNkksUUFBUSxFQUFFLENBQUM7VUFDWEQsU0FBUyxFQUFFLENBQUNoQixRQUFRLEdBQ2hCVyxlQUFlLEdBQ2ZsSSxTQUFTLEdBQ1RxSSxxQkFBcUIsR0FDckJILGVBQWUsR0FBR3ZJO1FBQ3hCLENBQUM7UUFFRCxJQUFNdUIsYUFBYSxHQUFHO1VBQ3BCM0MsYUFBYSxFQUFiQSxhQUFhO1VBQ2IvQixtQkFBbUIsRUFBbkJBLG1CQUFtQjtVQUNuQkMsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7VUFDaEIrTCxRQUFRLEVBQUUxSixhQUFhLEdBQUdBLGFBQWEsQ0FBQzZHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQztVQUNyRDRDLFNBQVMsRUFBVEE7UUFDRixDQUFDO1FBRUQsb0JBQ0VqUSxNQUFBLFlBQUE4SCxhQUFBLENBQUNqRCxTQUFTO1VBQ1JvRixTQUFTLEVBQUMsc0JBQXNCO1VBQ2hDa0csR0FBRyxFQUFFLElBQUksQ0FBQ2pFLElBQUs7VUFDZjdHLHVCQUF1QixFQUFFQTtRQUF3QixHQUVoRHZELE1BQU0sQ0FBQ1MsSUFBSSxDQUFDMEQsYUFBYSxDQUFDLENBQUNqRCxNQUFNLGdCQUNoQ2hELE1BQUEsWUFBQThILGFBQUEsQ0FBQTlILE1BQUEsWUFBQWdLLFFBQUEscUJBQ0VoSyxNQUFBLFlBQUE4SCxhQUFBLENBQUMzSCxpQkFBQSxDQUFBaVEsVUFBVSxRQUNSLFVBQUFDLEtBQUEsRUFBdUM7VUFBQSxJQUFyQzNILFNBQVEsR0FBQTJILEtBQUEsQ0FBUjNILFFBQVE7WUFBRVMsVUFBVSxHQUFBa0gsS0FBQSxDQUFWbEgsVUFBVTtZQUFFUixTQUFTLEdBQUEwSCxLQUFBLENBQVQxSCxTQUFTO1VBQ2hDLG9CQUNFM0ksTUFBQSxZQUFBOEgsYUFBQTtZQUFLbUMsU0FBUyxFQUFDO1VBQXVCLEdBQ25DeUYsZ0JBQWdCLGlCQUNmMVAsTUFBQSxZQUFBOEgsYUFBQTtZQUFLa0YsR0FBRyxFQUFDLGdCQUFnQjtZQUFDL0MsU0FBUyxFQUFDO1VBQXlCLGdCQUMzRGpLLE1BQUEsWUFBQThILGFBQUEsQ0FBQ0ksWUFBWTtZQUNYRSxTQUFTLEVBQUUzRCxlQUFnQjtZQUMzQjRELFFBQVE7WUFDUnJDLE9BQU8sRUFBRXFGLGFBQWM7WUFDdkIvQyxlQUFlLEVBQUVBLGVBQWdCO1lBQ2pDQyxVQUFVLEVBQUUrRyxrQkFBbUI7WUFDL0I1RyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBRXNDLElBQUk7Y0FBQSxPQUFJdEMsU0FBUSxDQUFBNUYsYUFBQSxDQUFBQSxhQUFBLEtBQUtrSSxJQUFJO2dCQUFFN0IsVUFBVSxFQUFWQTtjQUFVLEVBQUMsQ0FBQztZQUFBLENBQUM7WUFDbERSLFNBQVMsRUFBRUEsU0FBVTtZQUNyQlEsVUFBVSxFQUFFQSxVQUFXO1lBQ3ZCUCxhQUFhLEVBQUVBLGFBQWM7WUFDN0JHLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFFdUgsVUFBVTtjQUFBLE9BQUsxQixNQUFJLENBQUMwQixVQUFVLEdBQUdBLFVBQVU7WUFBQSxDQUFFO1lBQ3pEekgsV0FBVyxFQUFFOUMsbUJBQW1CLENBQUNzRixhQUFhLEVBQUVwRixhQUFhLENBQUU7WUFDL0QrQyxnQkFBZ0IsRUFBRTRGLE1BQUksQ0FBQ0wsZ0JBQWdCLENBQ3JDbEQsYUFBYSxFQUNiLElBQUksRUFDSnVELE1BQUksQ0FBQzFKLEtBQUssRUFDVjBKLE1BQUksQ0FBQ0osaUJBQWlCLEVBQ3RCckQsaUJBQ0YsQ0FBRTtZQUNGbEMsY0FBYyxFQUFFMkYsTUFBSSxDQUFDMkIsY0FBYyxDQUFDbEYsYUFBYSxFQUFFLElBQUksRUFBRXVELE1BQUksQ0FBQzFKLEtBQUs7VUFBRSxDQUN0RSxDQUNFLENBQ04sZUFDRGxGLE1BQUEsWUFBQThILGFBQUE7WUFDRWtGLEdBQUcsRUFBQyxrQkFBa0I7WUFDdEI3QyxLQUFLLEVBQUU7Y0FDTHFHLFVBQVUsS0FBQWpILE1BQUEsQ0FBS21HLGdCQUFnQixNQUFBbkcsTUFBQSxDQUFNK0Ysa0JBQWtCLFVBQU8sR0FBRztZQUNuRSxDQUFFO1lBQ0ZyRixTQUFTLEVBQUM7VUFBOEIsZ0JBRXhDakssTUFBQSxZQUFBOEgsYUFBQSxDQUFDSSxZQUFZO1lBQ1hFLFNBQVMsRUFBRXhELGlCQUFrQjtZQUM3QnlELFFBQVEsRUFBRSxLQUFNO1lBQ2hCckMsT0FBTyxFQUFFb0osb0JBQXFCO1lBQzlCOUcsZUFBZSxFQUFFQSxlQUFnQjtZQUNqQ0MsVUFBVSxFQUFFQSxVQUFXO1lBQ3ZCRSxXQUFXLEVBQUVBLFdBQVk7WUFDekJDLFFBQVEsRUFBRUEsU0FBUztZQUNuQkMsU0FBUyxFQUFFQSxTQUFVO1lBQ3JCUSxVQUFVLEVBQUVBLFVBQVc7WUFDdkJQLGFBQWEsRUFBRUEsYUFBYztZQUM3QkcsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUUwSCxZQUFZO2NBQUEsT0FBSzdCLE1BQUksQ0FBQzZCLFlBQVksR0FBR0EsWUFBWTtZQUFBLENBQUU7WUFDL0Q1SCxXQUFXLEVBQUU5QyxtQkFBbUIsQ0FDOUJxSixvQkFBb0IsRUFDcEJuSixhQUFhLEVBQ2JDLEtBQ0YsQ0FBRTtZQUNGOEMsZ0JBQWdCLEVBQUU0RixNQUFJLENBQUNMLGdCQUFnQixDQUNyQ2Esb0JBQW9CLEVBQ3BCLEtBQUssRUFDTFIsTUFBSSxDQUFDMUosS0FBSyxFQUNWMEosTUFBSSxDQUFDSixpQkFBaUIsRUFDdEJyRCxpQkFDRixDQUFFO1lBQ0ZsQyxjQUFjLEVBQUUyRixNQUFJLENBQUMyQixjQUFjLENBQ2pDbkIsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTFIsTUFBSSxDQUFDMUosS0FDUDtVQUFFLENBQ0gsQ0FDRSxDQUNGLENBQUM7UUFFVixDQUNVLENBQUMsRUFDWitKLFFBQVEsZ0JBQ1BqUCxNQUFBLFlBQUE4SCxhQUFBLENBQUNILFlBQVk7VUFDWEwsR0FBRyxFQUFFc0ksZUFBZ0I7VUFDckJsSSxTQUFTLEVBQUVBLFNBQVU7VUFDckJHLGVBQWUsRUFBRSxJQUFJLENBQUNBO1FBQWdCLENBQ3ZDLENBQUMsR0FDQSxJQUNKLENBQUMsR0FDRCxJQUNLLENBQUM7TUFFaEI7SUFBQztFQUFBLEVBblNxQjZJLGdCQUFTO0VBQUEsSUFBQXhOLGdCQUFBLGFBQTNCeUgsU0FBUyxrQkFDUztJQUNwQm5FLGFBQWEsRUFBRSxJQUFJO0lBQ25CNkUsYUFBYSxFQUFFLEVBQUU7SUFDakIzRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ1hULGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakIwSyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2RwSSxVQUFVLEVBQUUsSUFBSTtJQUNoQkUsV0FBVyxFQUFFLElBQUk7SUFDakJ0RCxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ1Q4SixRQUFRLEVBQUUsS0FBSztJQUNmNUosdUJBQXVCLEVBQUU7RUFDM0IsQ0FBQztFQTBSSCxPQUFPLElBQUF1TCwyQkFBUyxFQUFDakcsU0FBZ0QsQ0FBQztBQUNwRTtBQUFDLElBQUFrRyxRQUFBLEdBQUEvTCxPQUFBLGNBRWN5RixnQkFBZ0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -19,36 +19,5 @@ export declare type FileDropProps = {
|
|
|
19
19
|
onFrameDrop?: (event: any) => void;
|
|
20
20
|
children?: ReactNode;
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
/** @augments React.PureComponent<FileDropProps> */
|
|
24
|
-
declare class FileDrop extends React.PureComponent<FileDropProps> {
|
|
25
|
-
static isIE: () => any;
|
|
26
|
-
static eventHasFiles: (event: any) => boolean;
|
|
27
|
-
static defaultProps: {
|
|
28
|
-
dropEffect: string;
|
|
29
|
-
frame: any;
|
|
30
|
-
className: string;
|
|
31
|
-
targetClassName: string;
|
|
32
|
-
draggingOverFrameClassName: string;
|
|
33
|
-
draggingOverTargetClassName: string;
|
|
34
|
-
};
|
|
35
|
-
frameDragCounter: number;
|
|
36
|
-
state: {
|
|
37
|
-
draggingOverFrame: boolean;
|
|
38
|
-
draggingOverTarget: boolean;
|
|
39
|
-
};
|
|
40
|
-
componentDidMount(): void;
|
|
41
|
-
componentDidUpdate(prevProps: any): void;
|
|
42
|
-
componentWillUnmount(): void;
|
|
43
|
-
resetDragging: () => void;
|
|
44
|
-
handleWindowDragOverOrDrop: (event: any) => void;
|
|
45
|
-
handleFrameDrag: (event: any) => void;
|
|
46
|
-
handleFrameDrop: (event: any) => void;
|
|
47
|
-
handleDragOver: (event: any) => void;
|
|
48
|
-
handleDragLeave: (event: any) => void;
|
|
49
|
-
handleDrop: (event: any) => void;
|
|
50
|
-
stopFrameListeners: (frame: any) => void;
|
|
51
|
-
startFrameListeners: (frame: any) => void;
|
|
52
|
-
render(): React.JSX.Element;
|
|
53
|
-
}
|
|
22
|
+
declare const FileDrop: ({ dropEffect, frame, className, targetClassName, draggingOverFrameClassName, draggingOverTargetClassName, onDragOver, onDragLeave, onDrop, onFrameDragEnter, onFrameDragLeave, onFrameDrop, children }: FileDropProps) => React.JSX.Element;
|
|
54
23
|
export default FileDrop;
|