@kepler.gl/reducers 3.3.0-alpha.15 → 3.3.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/column-edit-reconcile.js +100 -0
- package/dist/cjs/column-edit-updaters.spec.js +840 -0
- package/dist/cjs/combined-updaters.js +166 -8
- package/dist/cjs/composers.js +4 -5
- package/dist/cjs/dataset-ops-updaters.js +375 -0
- package/dist/cjs/dataset-ops-updaters.spec.js +382 -0
- package/dist/cjs/export-utils.js +118 -46
- package/dist/cjs/interaction-utils.js +166 -6
- package/dist/cjs/layer-utils.js +135 -9
- package/dist/cjs/ui-state-updaters.js +134 -51
- package/dist/cjs/ui-state.js +2 -2
- package/dist/cjs/vis-state-merger-text-label.spec.js +75 -0
- package/dist/cjs/vis-state-merger.js +99 -25
- package/dist/cjs/vis-state-selectors.js +5 -4
- package/dist/cjs/vis-state-updaters.js +1077 -256
- package/dist/cjs/vis-state.js +2 -2
- package/dist/column-edit-reconcile.d.ts +4 -0
- package/dist/column-edit-updaters.spec.d.ts +1 -0
- package/dist/combined-updaters.d.ts +21 -1
- package/dist/composers.d.ts +3 -0
- package/dist/dataset-ops-updaters.d.ts +21 -0
- package/dist/dataset-ops-updaters.spec.d.ts +1 -0
- package/dist/esm/column-edit-reconcile.js +95 -0
- package/dist/esm/column-edit-updaters.spec.js +839 -0
- package/dist/esm/combined-updaters.js +166 -8
- package/dist/esm/composers.js +3 -2
- package/dist/esm/dataset-ops-updaters.js +357 -0
- package/dist/esm/dataset-ops-updaters.spec.js +381 -0
- package/dist/esm/export-utils.js +117 -45
- package/dist/esm/interaction-utils.js +159 -3
- package/dist/esm/layer-utils.js +133 -9
- package/dist/esm/ui-state-updaters.js +133 -50
- package/dist/esm/ui-state.js +2 -2
- package/dist/esm/vis-state-merger-text-label.spec.js +74 -0
- package/dist/esm/vis-state-merger.js +99 -26
- package/dist/esm/vis-state-selectors.js +5 -4
- package/dist/esm/vis-state-updaters.js +1020 -263
- package/dist/esm/vis-state.js +2 -2
- package/dist/export-utils.d.ts +2 -2
- package/dist/interaction-utils.d.ts +25 -2
- package/dist/layer-utils.d.ts +17 -0
- package/dist/ui-state-updaters.d.ts +30 -0
- package/dist/vis-state-merger-text-label.spec.d.ts +1 -0
- package/dist/vis-state-merger.d.ts +10 -2
- package/dist/vis-state-updaters.d.ts +61 -15
- package/dist/vis-state.d.ts +20 -0
- package/package.json +17 -17
package/dist/cjs/export-utils.js
CHANGED
|
@@ -1,69 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports["default"] = void 0;
|
|
7
8
|
exports.exportData = exportData;
|
|
8
9
|
exports.formatCsv = formatCsv;
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
12
|
var _window = require("global/window");
|
|
10
13
|
var _d3Dsv = require("d3-dsv");
|
|
11
14
|
var _constants = require("@kepler.gl/constants");
|
|
15
|
+
var _processors = require("@kepler.gl/processors");
|
|
12
16
|
var _utils = require("@kepler.gl/utils");
|
|
13
17
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
14
18
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
19
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } // SPDX-License-Identifier: MIT
|
|
16
20
|
// Copyright contributors to the kepler.gl project
|
|
17
|
-
function exportData(
|
|
18
|
-
|
|
19
|
-
appName = state.appName;
|
|
20
|
-
var datasets = visState.datasets;
|
|
21
|
-
var selectedDataset = options.selectedDataset,
|
|
22
|
-
dataType = options.dataType,
|
|
23
|
-
filtered = options.filtered;
|
|
24
|
-
// get the selected data
|
|
25
|
-
var filename = appName ? appName : (0, _utils.getApplicationConfig)().defaultDataName;
|
|
26
|
-
var selectedDatasets = datasets[selectedDataset] ? [datasets[selectedDataset]] : Object.values(datasets);
|
|
27
|
-
if (!selectedDatasets.length) {
|
|
28
|
-
// error: selected dataset not found.
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
selectedDatasets.forEach(function (selectedData) {
|
|
32
|
-
var _ref = selectedData,
|
|
33
|
-
dataContainer = _ref.dataContainer,
|
|
34
|
-
fields = _ref.fields,
|
|
35
|
-
label = _ref.label,
|
|
36
|
-
_ref$filteredIdxCPU = _ref.filteredIdxCPU,
|
|
37
|
-
filteredIdxCPU = _ref$filteredIdxCPU === void 0 ? [] : _ref$filteredIdxCPU;
|
|
38
|
-
var toExport = filtered ? (0, _utils.createIndexedDataContainer)(dataContainer, filteredIdxCPU) : dataContainer;
|
|
39
|
-
|
|
40
|
-
// start to export data according to selected data type
|
|
41
|
-
switch (dataType) {
|
|
42
|
-
case _constants.EXPORT_DATA_TYPE.CSV:
|
|
43
|
-
{
|
|
44
|
-
var csv = formatCsv(toExport, fields);
|
|
45
|
-
var fileBlob = new _window.Blob([csv], {
|
|
46
|
-
type: 'text/csv'
|
|
47
|
-
});
|
|
48
|
-
(0, _utils.downloadFile)(fileBlob, "".concat(filename, "_").concat(label, ".csv"));
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
// TODO: support more file types.
|
|
52
|
-
default:
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
21
|
+
function exportData(_x, _x2) {
|
|
22
|
+
return _exportData.apply(this, arguments);
|
|
56
23
|
}
|
|
57
|
-
|
|
58
24
|
/**
|
|
59
25
|
* On export data to csv
|
|
60
26
|
* @param dataContainer
|
|
61
27
|
* @param fields `dataset.fields`
|
|
62
28
|
* @returns csv string
|
|
63
29
|
*/
|
|
30
|
+
function _exportData() {
|
|
31
|
+
_exportData = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(state, options) {
|
|
32
|
+
var visState, appName, datasets, selectedDataset, dataType, filtered, filename, selectedDatasets, errors, _iterator2, _step2, selectedData, _ref4, dataContainer, fields, label, _ref4$filteredIdxCPU, filteredIdxCPU, hiddenColumns, fieldPairs, toExport, layerName, csv, file;
|
|
33
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
34
|
+
while (1) switch (_context.prev = _context.next) {
|
|
35
|
+
case 0:
|
|
36
|
+
visState = state.visState, appName = state.appName;
|
|
37
|
+
datasets = visState.datasets;
|
|
38
|
+
selectedDataset = options.selectedDataset, dataType = options.dataType, filtered = options.filtered; // get the selected data
|
|
39
|
+
filename = appName ? appName : (0, _utils.getApplicationConfig)().defaultDataName;
|
|
40
|
+
selectedDatasets = datasets[selectedDataset] ? [datasets[selectedDataset]] : Object.values(datasets);
|
|
41
|
+
if (selectedDatasets.length) {
|
|
42
|
+
_context.next = 7;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
return _context.abrupt("return");
|
|
46
|
+
case 7:
|
|
47
|
+
errors = [];
|
|
48
|
+
_iterator2 = _createForOfIteratorHelper(selectedDatasets);
|
|
49
|
+
_context.prev = 9;
|
|
50
|
+
_iterator2.s();
|
|
51
|
+
case 11:
|
|
52
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
53
|
+
_context.next = 32;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
selectedData = _step2.value;
|
|
57
|
+
_context.prev = 13;
|
|
58
|
+
_ref4 = selectedData, dataContainer = _ref4.dataContainer, fields = _ref4.fields, label = _ref4.label, _ref4$filteredIdxCPU = _ref4.filteredIdxCPU, filteredIdxCPU = _ref4$filteredIdxCPU === void 0 ? [] : _ref4$filteredIdxCPU, hiddenColumns = _ref4.hiddenColumns, fieldPairs = _ref4.fieldPairs;
|
|
59
|
+
toExport = filtered ? (0, _utils.createIndexedDataContainer)(dataContainer, filteredIdxCPU) : dataContainer;
|
|
60
|
+
layerName = (0, _processors.sanitizeExportName)(label);
|
|
61
|
+
if (!(dataType === _constants.EXPORT_DATA_TYPE.CSV)) {
|
|
62
|
+
_context.next = 21;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
csv = formatCsv(toExport, fields, hiddenColumns);
|
|
66
|
+
(0, _utils.downloadFile)(new _window.Blob([csv], {
|
|
67
|
+
type: 'text/csv'
|
|
68
|
+
}), "".concat(filename, "_").concat(layerName, ".csv"));
|
|
69
|
+
return _context.abrupt("continue", 30);
|
|
70
|
+
case 21:
|
|
71
|
+
_context.next = 23;
|
|
72
|
+
return (0, _processors.encodeDatasetExport)({
|
|
73
|
+
data: toExport,
|
|
74
|
+
fields: fields,
|
|
75
|
+
fieldPairs: fieldPairs,
|
|
76
|
+
hiddenColumns: hiddenColumns,
|
|
77
|
+
dataType: dataType,
|
|
78
|
+
layerName: layerName
|
|
79
|
+
});
|
|
80
|
+
case 23:
|
|
81
|
+
file = _context.sent;
|
|
82
|
+
(0, _utils.downloadFile)(new _window.Blob([file.data], {
|
|
83
|
+
type: file.mimeType
|
|
84
|
+
}), "".concat(filename, "_").concat(layerName, ".").concat(file.extension));
|
|
85
|
+
_context.next = 30;
|
|
86
|
+
break;
|
|
87
|
+
case 27:
|
|
88
|
+
_context.prev = 27;
|
|
89
|
+
_context.t0 = _context["catch"](13);
|
|
90
|
+
errors.push(_context.t0);
|
|
91
|
+
case 30:
|
|
92
|
+
_context.next = 11;
|
|
93
|
+
break;
|
|
94
|
+
case 32:
|
|
95
|
+
_context.next = 37;
|
|
96
|
+
break;
|
|
97
|
+
case 34:
|
|
98
|
+
_context.prev = 34;
|
|
99
|
+
_context.t1 = _context["catch"](9);
|
|
100
|
+
_iterator2.e(_context.t1);
|
|
101
|
+
case 37:
|
|
102
|
+
_context.prev = 37;
|
|
103
|
+
_iterator2.f();
|
|
104
|
+
return _context.finish(37);
|
|
105
|
+
case 40:
|
|
106
|
+
if (!errors.length) {
|
|
107
|
+
_context.next = 42;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
throw errors[0];
|
|
111
|
+
case 42:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context.stop();
|
|
114
|
+
}
|
|
115
|
+
}, _callee, null, [[9, 34, 37, 40], [13, 27]]);
|
|
116
|
+
}));
|
|
117
|
+
return _exportData.apply(this, arguments);
|
|
118
|
+
}
|
|
64
119
|
function formatCsv(data, fields) {
|
|
65
|
-
var
|
|
66
|
-
|
|
120
|
+
var hiddenColumns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
121
|
+
var hidden = new Set(hiddenColumns);
|
|
122
|
+
var included = fields.map(function (field, index) {
|
|
123
|
+
return {
|
|
124
|
+
field: field,
|
|
125
|
+
index: index
|
|
126
|
+
};
|
|
127
|
+
}).filter(function (_ref) {
|
|
128
|
+
var field = _ref.field;
|
|
129
|
+
return !hidden.has(field.name);
|
|
130
|
+
});
|
|
131
|
+
var columns = included.map(function (_ref2) {
|
|
132
|
+
var field = _ref2.field;
|
|
133
|
+
return field.displayName || field.name;
|
|
67
134
|
});
|
|
68
135
|
var formattedData = [columns];
|
|
69
136
|
|
|
@@ -71,11 +138,16 @@ function formatCsv(data, fields) {
|
|
|
71
138
|
var _iterator = _createForOfIteratorHelper(data.rows(true)),
|
|
72
139
|
_step;
|
|
73
140
|
try {
|
|
74
|
-
|
|
141
|
+
var _loop = function _loop() {
|
|
75
142
|
var row = _step.value;
|
|
76
|
-
formattedData.push(
|
|
77
|
-
|
|
143
|
+
formattedData.push(included.map(function (_ref3) {
|
|
144
|
+
var field = _ref3.field,
|
|
145
|
+
index = _ref3.index;
|
|
146
|
+
return (0, _utils.parseFieldValue)(typeof row.valueAt === 'function' ? row.valueAt(index) : row[index], field.type, field);
|
|
78
147
|
}));
|
|
148
|
+
};
|
|
149
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
150
|
+
_loop();
|
|
79
151
|
}
|
|
80
152
|
} catch (err) {
|
|
81
153
|
_iterator.e(err);
|
|
@@ -88,4 +160,4 @@ var exporters = {
|
|
|
88
160
|
exportData: exportData
|
|
89
161
|
};
|
|
90
162
|
var _default = exports["default"] = exporters;
|
|
91
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwicmVxdWlyZSIsIl9kM0RzdiIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImV4cG9ydERhdGEiLCJzdGF0ZSIsIm9wdGlvbnMiLCJ2aXNTdGF0ZSIsImFwcE5hbWUiLCJkYXRhc2V0cyIsInNlbGVjdGVkRGF0YXNldCIsImRhdGFUeXBlIiwiZmlsdGVyZWQiLCJmaWxlbmFtZSIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZGVmYXVsdERhdGFOYW1lIiwic2VsZWN0ZWREYXRhc2V0cyIsIk9iamVjdCIsInZhbHVlcyIsImZvckVhY2giLCJzZWxlY3RlZERhdGEiLCJfcmVmIiwiZGF0YUNvbnRhaW5lciIsImZpZWxkcyIsImxhYmVsIiwiX3JlZiRmaWx0ZXJlZElkeENQVSIsImZpbHRlcmVkSWR4Q1BVIiwidG9FeHBvcnQiLCJjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lciIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJjc3YiLCJmb3JtYXRDc3YiLCJmaWxlQmxvYiIsIkJsb2IiLCJ0eXBlIiwiZG93bmxvYWRGaWxlIiwiY29uY2F0IiwiZGF0YSIsImNvbHVtbnMiLCJtYXAiLCJkaXNwbGF5TmFtZSIsImZvcm1hdHRlZERhdGEiLCJfaXRlcmF0b3IiLCJyb3dzIiwiX3N0ZXAiLCJyb3ciLCJwdXNoIiwiZCIsImkiLCJwYXJzZUZpZWxkVmFsdWUiLCJlcnIiLCJjc3ZGb3JtYXRSb3dzIiwiZXhwb3J0ZXJzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cG9ydC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0Jsb2J9IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IHtjc3ZGb3JtYXRSb3dzfSBmcm9tICdkMy1kc3YnO1xuXG5pbXBvcnQge0VYUE9SVF9EQVRBX1RZUEV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IEtlcGxlclRhYmxlLCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lcixcbiAgRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgcGFyc2VGaWVsZFZhbHVlLFxuICBkb3dubG9hZEZpbGVcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW50ZXJmYWNlIFN0YXRlVHlwZSB7XG4gIHZpc1N0YXRlOiB7ZGF0YXNldHM6IERhdGFzZXRzfTtcbiAgYXBwTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydERhdGEoc3RhdGU6IFN0YXRlVHlwZSwgb3B0aW9ucykge1xuICBjb25zdCB7dmlzU3RhdGUsIGFwcE5hbWV9ID0gc3RhdGU7XG4gIGNvbnN0IHtkYXRhc2V0c30gPSB2aXNTdGF0ZTtcbiAgY29uc3Qge3NlbGVjdGVkRGF0YXNldCwgZGF0YVR5cGUsIGZpbHRlcmVkfSA9IG9wdGlvbnM7XG4gIC8vIGdldCB0aGUgc2VsZWN0ZWQgZGF0YVxuICBjb25zdCBmaWxlbmFtZSA9IGFwcE5hbWUgPyBhcHBOYW1lIDogZ2V0QXBwbGljYXRpb25Db25maWcoKS5kZWZhdWx0RGF0YU5hbWU7XG4gIGNvbnN0IHNlbGVjdGVkRGF0YXNldHMgPSBkYXRhc2V0c1tzZWxlY3RlZERhdGFzZXRdXG4gICAgPyBbZGF0YXNldHNbc2VsZWN0ZWREYXRhc2V0XV1cbiAgICA6IE9iamVjdC52YWx1ZXMoZGF0YXNldHMpO1xuICBpZiAoIXNlbGVjdGVkRGF0YXNldHMubGVuZ3RoKSB7XG4gICAgLy8gZXJyb3I6IHNlbGVjdGVkIGRhdGFzZXQgbm90IGZvdW5kLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHNlbGVjdGVkRGF0YXNldHMuZm9yRWFjaChzZWxlY3RlZERhdGEgPT4ge1xuICAgIGNvbnN0IHtkYXRhQ29udGFpbmVyLCBmaWVsZHMsIGxhYmVsLCBmaWx0ZXJlZElkeENQVSA9IFtdfSA9IHNlbGVjdGVkRGF0YSBhcyBLZXBsZXJUYWJsZTtcbiAgICBjb25zdCB0b0V4cG9ydCA9IGZpbHRlcmVkXG4gICAgICA/IGNyZWF0ZUluZGV4ZWREYXRhQ29udGFpbmVyKGRhdGFDb250YWluZXIsIGZpbHRlcmVkSWR4Q1BVKVxuICAgICAgOiBkYXRhQ29udGFpbmVyO1xuXG4gICAgLy8gc3RhcnQgdG8gZXhwb3J0IGRhdGEgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIGRhdGEgdHlwZVxuICAgIHN3aXRjaCAoZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgRVhQT1JUX0RBVEFfVFlQRS5DU1Y6IHtcbiAgICAgICAgY29uc3QgY3N2ID0gZm9ybWF0Q3N2KHRvRXhwb3J0LCBmaWVsZHMpO1xuXG4gICAgICAgIGNvbnN0IGZpbGVCbG9iID0gbmV3IEJsb2IoW2Nzdl0sIHt0eXBlOiAndGV4dC9jc3YnfSk7XG4gICAgICAgIGRvd25sb2FkRmlsZShmaWxlQmxvYiwgYCR7ZmlsZW5hbWV9XyR7bGFiZWx9LmNzdmApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IHN1cHBvcnQgbW9yZSBmaWxlIHR5cGVzLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBPbiBleHBvcnQgZGF0YSB0byBjc3ZcbiAqIEBwYXJhbSBkYXRhQ29udGFpbmVyXG4gKiBAcGFyYW0gZmllbGRzIGBkYXRhc2V0LmZpZWxkc2BcbiAqIEByZXR1cm5zIGNzdiBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENzdihkYXRhOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLCBmaWVsZHM6IEZpZWxkW10pOiBzdHJpbmcge1xuICBjb25zdCBjb2x1bW5zID0gZmllbGRzLm1hcChmID0+IGYuZGlzcGxheU5hbWUgfHwgZi5uYW1lKTtcbiAgY29uc3QgZm9ybWF0dGVkRGF0YSA9IFtjb2x1bW5zXTtcblxuICAvLyBwYXJzZSBnZW9qc29uIG9iamVjdCBhcyBzdHJpbmdcbiAgZm9yIChjb25zdCByb3cgb2YgZGF0YS5yb3dzKHRydWUpKSB7XG4gICAgZm9ybWF0dGVkRGF0YS5wdXNoKHJvdy5tYXAoKGQsIGkpID0+IHBhcnNlRmllbGRWYWx1ZShkLCBmaWVsZHNbaV0udHlwZSwgZmllbGRzW2ldKSkpO1xuICB9XG5cbiAgcmV0dXJuIGNzdkZvcm1hdFJvd3MoZm9ybWF0dGVkRGF0YSk7XG59XG5cbmNvbnN0IGV4cG9ydGVycyA9IHtcbiAgZXhwb3J0RGF0YVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZXhwb3J0ZXJzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUlBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUswQixTQUFBSSwyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEs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
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwicmVxdWlyZSIsIl9kM0RzdiIsIl9jb25zdGFudHMiLCJfcHJvY2Vzc29ycyIsIl91dGlscyIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiZXhwb3J0RGF0YSIsIl94IiwiX3gyIiwiX2V4cG9ydERhdGEiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwic3RhdGUiLCJvcHRpb25zIiwidmlzU3RhdGUiLCJhcHBOYW1lIiwiZGF0YXNldHMiLCJzZWxlY3RlZERhdGFzZXQiLCJkYXRhVHlwZSIsImZpbHRlcmVkIiwiZmlsZW5hbWUiLCJzZWxlY3RlZERhdGFzZXRzIiwiZXJyb3JzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInNlbGVjdGVkRGF0YSIsIl9yZWY0IiwiZGF0YUNvbnRhaW5lciIsImZpZWxkcyIsImxhYmVsIiwiX3JlZjQkZmlsdGVyZWRJZHhDUFUiLCJmaWx0ZXJlZElkeENQVSIsImhpZGRlbkNvbHVtbnMiLCJmaWVsZFBhaXJzIiwidG9FeHBvcnQiLCJsYXllck5hbWUiLCJjc3YiLCJmaWxlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJkZWZhdWx0RGF0YU5hbWUiLCJPYmplY3QiLCJ2YWx1ZXMiLCJhYnJ1cHQiLCJjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lciIsInNhbml0aXplRXhwb3J0TmFtZSIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJmb3JtYXRDc3YiLCJkb3dubG9hZEZpbGUiLCJCbG9iIiwidHlwZSIsImNvbmNhdCIsImVuY29kZURhdGFzZXRFeHBvcnQiLCJkYXRhIiwic2VudCIsIm1pbWVUeXBlIiwiZXh0ZW5zaW9uIiwidDAiLCJwdXNoIiwidDEiLCJmaW5pc2giLCJzdG9wIiwidW5kZWZpbmVkIiwiaGlkZGVuIiwiU2V0IiwiaW5jbHVkZWQiLCJtYXAiLCJmaWVsZCIsImluZGV4IiwiZmlsdGVyIiwiX3JlZiIsImhhcyIsImNvbHVtbnMiLCJfcmVmMiIsImRpc3BsYXlOYW1lIiwiZm9ybWF0dGVkRGF0YSIsIl9pdGVyYXRvciIsInJvd3MiLCJfc3RlcCIsIl9sb29wIiwicm93IiwiX3JlZjMiLCJwYXJzZUZpZWxkVmFsdWUiLCJ2YWx1ZUF0IiwiZXJyIiwiY3N2Rm9ybWF0Um93cyIsImV4cG9ydGVycyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnQtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtCbG9ifSBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCB7Y3N2Rm9ybWF0Um93c30gZnJvbSAnZDMtZHN2JztcblxuaW1wb3J0IHtFWFBPUlRfREFUQV9UWVBFfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge2VuY29kZURhdGFzZXRFeHBvcnQsIHNhbml0aXplRXhwb3J0TmFtZX0gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcbmltcG9ydCB7RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IEtlcGxlclRhYmxlLCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lcixcbiAgRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgcGFyc2VGaWVsZFZhbHVlLFxuICBkb3dubG9hZEZpbGVcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW50ZXJmYWNlIFN0YXRlVHlwZSB7XG4gIHZpc1N0YXRlOiB7ZGF0YXNldHM6IERhdGFzZXRzfTtcbiAgYXBwTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cG9ydERhdGEoc3RhdGU6IFN0YXRlVHlwZSwgb3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7dmlzU3RhdGUsIGFwcE5hbWV9ID0gc3RhdGU7XG4gIGNvbnN0IHtkYXRhc2V0c30gPSB2aXNTdGF0ZTtcbiAgY29uc3Qge3NlbGVjdGVkRGF0YXNldCwgZGF0YVR5cGUsIGZpbHRlcmVkfSA9IG9wdGlvbnM7XG4gIC8vIGdldCB0aGUgc2VsZWN0ZWQgZGF0YVxuICBjb25zdCBmaWxlbmFtZSA9IGFwcE5hbWUgPyBhcHBOYW1lIDogZ2V0QXBwbGljYXRpb25Db25maWcoKS5kZWZhdWx0RGF0YU5hbWU7XG4gIGNvbnN0IHNlbGVjdGVkRGF0YXNldHMgPSBkYXRhc2V0c1tzZWxlY3RlZERhdGFzZXRdXG4gICAgPyBbZGF0YXNldHNbc2VsZWN0ZWREYXRhc2V0XV1cbiAgICA6IE9iamVjdC52YWx1ZXMoZGF0YXNldHMpO1xuICBpZiAoIXNlbGVjdGVkRGF0YXNldHMubGVuZ3RoKSB7XG4gICAgLy8gZXJyb3I6IHNlbGVjdGVkIGRhdGFzZXQgbm90IGZvdW5kLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVycm9yczogdW5rbm93bltdID0gW107XG4gIGZvciAoY29uc3Qgc2VsZWN0ZWREYXRhIG9mIHNlbGVjdGVkRGF0YXNldHMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBmaWx0ZXJlZElkeENQVSA9IFtdLFxuICAgICAgICBoaWRkZW5Db2x1bW5zLFxuICAgICAgICBmaWVsZFBhaXJzXG4gICAgICB9ID0gc2VsZWN0ZWREYXRhIGFzIEtlcGxlclRhYmxlO1xuICAgICAgY29uc3QgdG9FeHBvcnQgPSBmaWx0ZXJlZFxuICAgICAgICA/IGNyZWF0ZUluZGV4ZWREYXRhQ29udGFpbmVyKGRhdGFDb250YWluZXIsIGZpbHRlcmVkSWR4Q1BVKVxuICAgICAgICA6IGRhdGFDb250YWluZXI7XG4gICAgICBjb25zdCBsYXllck5hbWUgPSBzYW5pdGl6ZUV4cG9ydE5hbWUobGFiZWwpO1xuXG4gICAgICBpZiAoZGF0YVR5cGUgPT09IEVYUE9SVF9EQVRBX1RZUEUuQ1NWKSB7XG4gICAgICAgIGNvbnN0IGNzdiA9IGZvcm1hdENzdih0b0V4cG9ydCwgZmllbGRzLCBoaWRkZW5Db2x1bW5zKTtcbiAgICAgICAgZG93bmxvYWRGaWxlKG5ldyBCbG9iKFtjc3ZdLCB7dHlwZTogJ3RleHQvY3N2J30pLCBgJHtmaWxlbmFtZX1fJHtsYXllck5hbWV9LmNzdmApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGVuY29kZURhdGFzZXRFeHBvcnQoe1xuICAgICAgICBkYXRhOiB0b0V4cG9ydCxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBmaWVsZFBhaXJzLFxuICAgICAgICBoaWRkZW5Db2x1bW5zLFxuICAgICAgICBkYXRhVHlwZSxcbiAgICAgICAgbGF5ZXJOYW1lXG4gICAgICB9KTtcbiAgICAgIGRvd25sb2FkRmlsZShcbiAgICAgICAgbmV3IEJsb2IoW2ZpbGUuZGF0YV0sIHt0eXBlOiBmaWxlLm1pbWVUeXBlfSksXG4gICAgICAgIGAke2ZpbGVuYW1lfV8ke2xheWVyTmFtZX0uJHtmaWxlLmV4dGVuc2lvbn1gXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBlcnJvcnMucHVzaChlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBlcnJvcnNbMF07XG4gIH1cbn1cblxuLyoqXG4gKiBPbiBleHBvcnQgZGF0YSB0byBjc3ZcbiAqIEBwYXJhbSBkYXRhQ29udGFpbmVyXG4gKiBAcGFyYW0gZmllbGRzIGBkYXRhc2V0LmZpZWxkc2BcbiAqIEByZXR1cm5zIGNzdiBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENzdihcbiAgZGF0YTogRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgZmllbGRzOiBGaWVsZFtdLFxuICBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSA9IFtdXG4pOiBzdHJpbmcge1xuICBjb25zdCBoaWRkZW4gPSBuZXcgU2V0KGhpZGRlbkNvbHVtbnMpO1xuICBjb25zdCBpbmNsdWRlZCA9IGZpZWxkc1xuICAgIC5tYXAoKGZpZWxkLCBpbmRleCkgPT4gKHtmaWVsZCwgaW5kZXh9KSlcbiAgICAuZmlsdGVyKCh7ZmllbGR9KSA9PiAhaGlkZGVuLmhhcyhmaWVsZC5uYW1lKSk7XG4gIGNvbnN0IGNvbHVtbnMgPSBpbmNsdWRlZC5tYXAoKHtmaWVsZH0pID0+IGZpZWxkLmRpc3BsYXlOYW1lIHx8IGZpZWxkLm5hbWUpO1xuICBjb25zdCBmb3JtYXR0ZWREYXRhID0gW2NvbHVtbnNdO1xuXG4gIC8vIHBhcnNlIGdlb2pzb24gb2JqZWN0IGFzIHN0cmluZ1xuICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhLnJvd3ModHJ1ZSkpIHtcbiAgICBmb3JtYXR0ZWREYXRhLnB1c2goXG4gICAgICBpbmNsdWRlZC5tYXAoKHtmaWVsZCwgaW5kZXh9KSA9PlxuICAgICAgICBwYXJzZUZpZWxkVmFsdWUoXG4gICAgICAgICAgdHlwZW9mIHJvdy52YWx1ZUF0ID09PSAnZnVuY3Rpb24nID8gcm93LnZhbHVlQXQoaW5kZXgpIDogcm93W2luZGV4XSxcbiAgICAgICAgICBmaWVsZC50eXBlLFxuICAgICAgICAgIGZpZWxkXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNzdkZvcm1hdFJvd3MoZm9ybWF0dGVkRGF0YSk7XG59XG5cbmNvbnN0IGV4cG9ydGVycyA9IHtcbiAgZXhwb3J0RGF0YVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZXhwb3J0ZXJzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUswQixTQUFBSywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUFRLE1BQUEsSUFBQU4sQ0FBQSxLQUFBRixDQUFBLEdBQUFFLENBQUEsT0FBQU8sRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUFULENBQUEsQ0FBQVEsTUFBQSxLQUFBSyxJQUFBLFdBQUFBLElBQUEsTUFBQUMsS0FBQSxFQUFBZCxDQUFBLENBQUFTLEVBQUEsVUFBQVIsQ0FBQSxXQUFBQSxFQUFBRCxDQUFBLFVBQUFBLENBQUEsS0FBQWUsQ0FBQSxFQUFBTCxDQUFBLGdCQUFBTSxTQUFBLGlKQUFBQyxD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S0FBSztJQUFBLE9BQU0sQ0FBQ0osTUFBTSxDQUFDUSxHQUFHLENBQUNKLEtBQUssQ0FBQ3hFLElBQUksQ0FBQztFQUFBLEVBQUM7RUFDL0MsSUFBTTZFLE9BQU8sR0FBR1AsUUFBUSxDQUFDQyxHQUFHLENBQUMsVUFBQU8sS0FBQTtJQUFBLElBQUVOLEtBQUssR0FBQU0sS0FBQSxDQUFMTixLQUFLO0lBQUEsT0FBTUEsS0FBSyxDQUFDTyxXQUFXLElBQUlQLEtBQUssQ0FBQ3hFLElBQUk7RUFBQSxFQUFDO0VBQzFFLElBQU1nRixhQUFhLEdBQUcsQ0FBQ0gsT0FBTyxDQUFDOztFQUUvQjtFQUFBLElBQUFJLFNBQUEsR0FBQTVHLDBCQUFBLENBQ2tCcUYsSUFBSSxDQUFDd0IsSUFBSSxDQUFDLElBQUksQ0FBQztJQUFBQyxLQUFBO0VBQUE7SUFBQSxJQUFBQyxLQUFBLFlBQUFBLE1BQUEsRUFBRTtNQUFBLElBQXhCQyxHQUFHLEdBQUFGLEtBQUEsQ0FBQS9GLEtBQUE7TUFDWjRGLGFBQWEsQ0FBQ2pCLElBQUksQ0FDaEJPLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLFVBQUFlLEtBQUE7UUFBQSxJQUFFZCxLQUFLLEdBQUFjLEtBQUEsQ0FBTGQsS0FBSztVQUFFQyxLQUFLLEdBQUFhLEtBQUEsQ0FBTGIsS0FBSztRQUFBLE9BQ3pCLElBQUFjLHNCQUFlLEVBQ2IsT0FBT0YsR0FBRyxDQUFDRyxPQUFPLEtBQUssVUFBVSxHQUFHSCxHQUFHLENBQUNHLE9BQU8sQ0FBQ2YsS0FBSyxDQUFDLEdBQUdZLEdBQUcsQ0FBQ1osS0FBSyxDQUFDLEVBQ25FRCxLQUFLLENBQUNqQixJQUFJLEVBQ1ZpQixLQUNGLENBQUM7TUFBQSxDQUNILENBQ0YsQ0FBQztJQUNILENBQUM7SUFWRCxLQUFBUyxTQUFBLENBQUFoRyxDQUFBLE1BQUFrRyxLQUFBLEdBQUFGLFNBQUEsQ0FBQS9GLENBQUEsSUFBQUMsSUFBQTtNQUFBaUcsS0FBQTtJQUFBO0VBVUMsU0FBQUssR0FBQTtJQUFBUixTQUFBLENBQUExRyxDQUFBLENBQUFrSCxHQUFBO0VBQUE7SUFBQVIsU0FBQSxDQUFBNUYsQ0FBQTtFQUFBO0VBRUQsT0FBTyxJQUFBcUcsb0JBQWEsRUFBQ1YsYUFBYSxDQUFDO0FBQ3JDO0FBRUEsSUFBTVcsU0FBUyxHQUFHO0VBQ2hCeEYsVUFBVSxFQUFWQTtBQUNGLENBQUM7QUFBQyxJQUFBeUYsUUFBQSxHQUFBQyxPQUFBLGNBRWFGLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -4,18 +4,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.TOOLTIP_MINUS_SIGN = exports.NEGATIVE_SIGNS = exports.BRUSH_CONFIG = void 0;
|
|
7
|
+
exports.ZOOM_OPACITY_RANGE = exports.TOOLTIP_MINUS_SIGN = exports.NEGATIVE_SIGNS = exports.DEFAULT_ZOOM_OPACITY_STOPS = exports.BRUSH_CONFIG = void 0;
|
|
8
|
+
exports.combineZoomOpacityControllers = combineZoomOpacityControllers;
|
|
8
9
|
exports.findFieldsToShow = findFieldsToShow;
|
|
10
|
+
exports.getLayerZoomOpacityFactor = getLayerZoomOpacityFactor;
|
|
9
11
|
exports.getTooltipDisplayDeltaValue = getTooltipDisplayDeltaValue;
|
|
10
12
|
exports.getTooltipDisplayValue = getTooltipDisplayValue;
|
|
13
|
+
exports.getZoomOpacityAnnotationTargetId = getZoomOpacityAnnotationTargetId;
|
|
14
|
+
exports.removeLayerFromZoomOpacity = removeLayerFromZoomOpacity;
|
|
15
|
+
exports.setZoomOpacityStop = setZoomOpacityStop;
|
|
16
|
+
exports.zoomOpacityFactor = zoomOpacityFactor;
|
|
11
17
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
19
|
var _constants = require("@kepler.gl/constants");
|
|
14
20
|
var _utils = require("@kepler.gl/utils");
|
|
15
21
|
var _commonUtils = require("@kepler.gl/common-utils");
|
|
16
|
-
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
17
24
|
// Copyright contributors to the kepler.gl project
|
|
18
|
-
|
|
19
25
|
/**
|
|
20
26
|
* Minus sign used in tooltip formatting.
|
|
21
27
|
* \u2212 or \u002D is the minus sign that d3-format uses for decimal number formatting
|
|
@@ -106,10 +112,164 @@ function getTooltipDisplayDeltaValue(_ref6) {
|
|
|
106
112
|
function getTooltipDisplayValue(_ref7) {
|
|
107
113
|
var item = _ref7.item,
|
|
108
114
|
field = _ref7.field,
|
|
109
|
-
value = _ref7.value
|
|
115
|
+
value = _ref7.value,
|
|
116
|
+
timezone = _ref7.timezone;
|
|
110
117
|
if (!(0, _commonUtils.notNullorUndefined)(value)) {
|
|
111
118
|
return '';
|
|
112
119
|
}
|
|
113
|
-
return item !== null && item !== void 0 && item.format ? (0, _utils.getFormatter)(item === null || item === void 0 ? void 0 : item.format, field)(value) : field.displayFormat ? (0, _utils.getFormatter)(field.displayFormat, field)(value) : (0, _utils.parseFieldValue)(value, field.type);
|
|
120
|
+
return item !== null && item !== void 0 && item.format ? (0, _utils.getFormatter)(item === null || item === void 0 ? void 0 : item.format, field, timezone)(value) : field.displayFormat ? (0, _utils.getFormatter)(field.displayFormat, field, timezone)(value) : (0, _utils.parseFieldValue)(value, field.type);
|
|
121
|
+
}
|
|
122
|
+
var ZOOM_OPACITY_RANGE = exports.ZOOM_OPACITY_RANGE = [0, 24];
|
|
123
|
+
var ZOOM_OPACITY_ANNOTATION_PREFIX = '__kepler_annotation__:';
|
|
124
|
+
|
|
125
|
+
/** Reserved fade-on-zoom target id for one map annotation. */
|
|
126
|
+
function getZoomOpacityAnnotationTargetId(annotationId) {
|
|
127
|
+
return "".concat(ZOOM_OPACITY_ANNOTATION_PREFIX).concat(annotationId);
|
|
128
|
+
}
|
|
129
|
+
var DEFAULT_ZOOM_OPACITY_STOPS = exports.DEFAULT_ZOOM_OPACITY_STOPS = {
|
|
130
|
+
appear: 1,
|
|
131
|
+
full: 3,
|
|
132
|
+
fade: 8,
|
|
133
|
+
gone: 12
|
|
134
|
+
};
|
|
135
|
+
var ZOOM_OPACITY_STOP_KEYS = ['appear', 'full', 'fade', 'gone'];
|
|
136
|
+
function isOrderedZoomOpacityStops(stops) {
|
|
137
|
+
if (!stops) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
var appear = stops.appear,
|
|
141
|
+
full = stops.full,
|
|
142
|
+
fade = stops.fade,
|
|
143
|
+
gone = stops.gone;
|
|
144
|
+
return [appear, full, fade, gone].every(function (value) {
|
|
145
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
146
|
+
}) && appear <= full && full <= fade && fade <= gone;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* 0–1 multiplier for a layer's opacity at `zoom`.
|
|
151
|
+
* 0 at and outside the envelope, rising from appear to full, holding through fade, then falling to gone.
|
|
152
|
+
* Equal neighbors are a step. Unordered stops leave opacity unchanged.
|
|
153
|
+
*/
|
|
154
|
+
function zoomOpacityFactor(zoom, stops) {
|
|
155
|
+
if (!isOrderedZoomOpacityStops(stops) || !Number.isFinite(zoom)) {
|
|
156
|
+
return 1;
|
|
157
|
+
}
|
|
158
|
+
var appear = stops.appear,
|
|
159
|
+
full = stops.full,
|
|
160
|
+
fade = stops.fade,
|
|
161
|
+
gone = stops.gone;
|
|
162
|
+
if (zoom <= appear || zoom >= gone) {
|
|
163
|
+
return 0;
|
|
164
|
+
}
|
|
165
|
+
if (zoom < full) {
|
|
166
|
+
var _span = full - appear;
|
|
167
|
+
return _span <= 0 ? 1 : (zoom - appear) / _span;
|
|
168
|
+
}
|
|
169
|
+
if (zoom <= fade) {
|
|
170
|
+
return 1;
|
|
171
|
+
}
|
|
172
|
+
var span = gone - fade;
|
|
173
|
+
return span <= 0 ? 0 : (gone - zoom) / span;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** Envelope multiplier for one layer. 1 when fade-on-zoom is off or the layer is not assigned. */
|
|
177
|
+
function getLayerZoomOpacityFactor(layerId, zoom, interactionConfig) {
|
|
178
|
+
var _zoomOpacity$config;
|
|
179
|
+
var zoomOpacity = interactionConfig === null || interactionConfig === void 0 ? void 0 : interactionConfig.zoomOpacity;
|
|
180
|
+
if (!(zoomOpacity !== null && zoomOpacity !== void 0 && zoomOpacity.enabled) || typeof zoom !== 'number') {
|
|
181
|
+
return 1;
|
|
182
|
+
}
|
|
183
|
+
var controller = (_zoomOpacity$config = zoomOpacity.config) === null || _zoomOpacity$config === void 0 || (_zoomOpacity$config = _zoomOpacity$config.controllers) === null || _zoomOpacity$config === void 0 ? void 0 : _zoomOpacity$config.find(function (item) {
|
|
184
|
+
var _item$layerIds;
|
|
185
|
+
return (_item$layerIds = item.layerIds) === null || _item$layerIds === void 0 ? void 0 : _item$layerIds.includes(layerId);
|
|
186
|
+
});
|
|
187
|
+
if (!controller) {
|
|
188
|
+
return 1;
|
|
189
|
+
}
|
|
190
|
+
return zoomOpacityFactor(zoom, controller.stops);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** Write one stop and push its neighbors so appear <= full <= fade <= gone. */
|
|
194
|
+
function setZoomOpacityStop(stops, key, value) {
|
|
195
|
+
var minZoom = ZOOM_OPACITY_RANGE[0],
|
|
196
|
+
maxZoom = ZOOM_OPACITY_RANGE[1];
|
|
197
|
+
var next = _objectSpread({}, stops);
|
|
198
|
+
var clamped = Math.min(maxZoom, Math.max(minZoom, value));
|
|
199
|
+
next[key] = Math.round(clamped * 10) / 10;
|
|
200
|
+
var index = ZOOM_OPACITY_STOP_KEYS.indexOf(key);
|
|
201
|
+
for (var i = index - 1; i >= 0; i--) {
|
|
202
|
+
var stopKey = ZOOM_OPACITY_STOP_KEYS[i];
|
|
203
|
+
if (next[stopKey] > next[ZOOM_OPACITY_STOP_KEYS[i + 1]]) {
|
|
204
|
+
next[stopKey] = next[ZOOM_OPACITY_STOP_KEYS[i + 1]];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
for (var _i = index + 1; _i < ZOOM_OPACITY_STOP_KEYS.length; _i++) {
|
|
208
|
+
var _stopKey = ZOOM_OPACITY_STOP_KEYS[_i];
|
|
209
|
+
if (next[_stopKey] < next[ZOOM_OPACITY_STOP_KEYS[_i - 1]]) {
|
|
210
|
+
next[_stopKey] = next[ZOOM_OPACITY_STOP_KEYS[_i - 1]];
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return next;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Concatenate controllers and keep the first assignment of each layer id. */
|
|
217
|
+
function combineZoomOpacityControllers(configs) {
|
|
218
|
+
var seen = new Set();
|
|
219
|
+
var controllers = [];
|
|
220
|
+
configs.forEach(function (config) {
|
|
221
|
+
((config === null || config === void 0 ? void 0 : config.controllers) || []).forEach(function (controller) {
|
|
222
|
+
var layerIds = (controller.layerIds || []).filter(function (id) {
|
|
223
|
+
if (seen.has(id)) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
seen.add(id);
|
|
227
|
+
return true;
|
|
228
|
+
});
|
|
229
|
+
if (layerIds.length || !(controller.layerIds || []).length) {
|
|
230
|
+
controllers.push(_objectSpread(_objectSpread({}, controller), {}, {
|
|
231
|
+
stops: _objectSpread({}, controller.stops),
|
|
232
|
+
layerIds: layerIds
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
return controllers;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** Drop a deleted layer from fade-on-zoom controllers. Returns the same config when nothing changes. */
|
|
241
|
+
function removeLayerFromZoomOpacity(interactionConfig, layerId) {
|
|
242
|
+
var _zoomOpacity$config2;
|
|
243
|
+
var zoomOpacity = interactionConfig === null || interactionConfig === void 0 ? void 0 : interactionConfig.zoomOpacity;
|
|
244
|
+
if (!zoomOpacity) {
|
|
245
|
+
return interactionConfig;
|
|
246
|
+
}
|
|
247
|
+
var controllers = (_zoomOpacity$config2 = zoomOpacity.config) === null || _zoomOpacity$config2 === void 0 ? void 0 : _zoomOpacity$config2.controllers;
|
|
248
|
+
if (!(controllers !== null && controllers !== void 0 && controllers.length)) {
|
|
249
|
+
return interactionConfig;
|
|
250
|
+
}
|
|
251
|
+
var changed = false;
|
|
252
|
+
var nextControllers = controllers.map(function (controller) {
|
|
253
|
+
var _controller$layerIds;
|
|
254
|
+
if (!((_controller$layerIds = controller.layerIds) !== null && _controller$layerIds !== void 0 && _controller$layerIds.includes(layerId))) {
|
|
255
|
+
return controller;
|
|
256
|
+
}
|
|
257
|
+
changed = true;
|
|
258
|
+
return _objectSpread(_objectSpread({}, controller), {}, {
|
|
259
|
+
layerIds: controller.layerIds.filter(function (id) {
|
|
260
|
+
return id !== layerId;
|
|
261
|
+
})
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
if (!changed) {
|
|
265
|
+
return interactionConfig;
|
|
266
|
+
}
|
|
267
|
+
return _objectSpread(_objectSpread({}, interactionConfig), {}, {
|
|
268
|
+
zoomOpacity: _objectSpread(_objectSpread({}, zoomOpacity), {}, {
|
|
269
|
+
config: _objectSpread(_objectSpread({}, zoomOpacity.config), {}, {
|
|
270
|
+
controllers: nextControllers
|
|
271
|
+
})
|
|
272
|
+
})
|
|
273
|
+
});
|
|
114
274
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl91dGlscyIsIl9jb21tb25VdGlscyIsIlRPT0xUSVBfTUlOVVNfU0lHTiIsImV4cG9ydHMiLCJORUdBVElWRV9TSUdOUyIsIkJSVVNIX0NPTkZJRyIsInJhbmdlIiwiZmluZEZpZWxkc1RvU2hvdyIsIl9yZWYiLCJmaWVsZHMiLCJpZCIsIm1heERlZmF1bHRUb29sdGlwcyIsImZpZWxkc1RvU2hvdyIsIkRFRkFVTFRfVE9PTFRJUF9GSUVMRFMiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyciIsImZpbmQiLCJfcmVmMiIsIm5hbWUiLCJwdXNoIiwiX2RlZmluZVByb3BlcnR5MiIsImxlbmd0aCIsImF1dG9GaW5kVG9vbHRpcEZpZWxkcyIsInB0RmllbGRzIiwiX21lcmdlRmllbGRQYWlycyIsIlRSSVBfUE9JTlRfRklFTERTIiwiZmlsdGVyIiwiX3JlZjQiLCJ0eXBlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpdCIsImV2ZXJ5Iiwic2VnIiwiaW5jbHVkZXMiLCJBTExfRklFTERfVFlQRVMiLCJnZW9qc29uIiwiZ2VvYXJyb3ciLCJzbGljZSIsIm1hcCIsIl9yZWY1IiwiZm9ybWF0IiwiZ2V0RGVmYXVsdFRvb2x0aXBGb3JtYXQiLCJ0aW1lc3RhbXAiLCJUT09MVElQX0ZPUk1BVFMiLCJEQVRFX1RJTUVfTF9MVFMiLCJUT09MVElQX0tFWSIsImRhdGUiLCJEQVRFX0wiLCJwYWlycyIsInBhaXIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlIiwiX3JlZjYiLCJmaWVsZCIsInZhbHVlIiwicHJpbWFyeVZhbHVlIiwiY29tcGFyZVR5cGUiLCJkaXNwbGF5RGVsdGFWYWx1ZSIsImludGVnZXIiLCJyZWFsIiwiaXNOdW1iZXIiLCJkZWx0YVZhbHVlIiwiQ09NUEFSRV9UWVBFUyIsIlJFTEFUSVZFIiwiZGVsdGFGb3JtYXQiLCJERUNJTUFMX1BFUkNFTlRfRlVMTF8yIiwiZGlzcGxheUZvcm1hdCIsIkRFQ0lNQUxfREVDSU1BTF9GSVhFRF8zIiwiZ2V0Rm9ybWF0dGVyIiwiZGVmYXVsdEZvcm1hdHRlciIsImRlbHRhRmlyc3RDaGFyIiwiY2hhckF0IiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsIl9yZWY3IiwiaXRlbSIsIm5vdE51bGxvclVuZGVmaW5lZCIsInBhcnNlRmllbGRWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmFjdGlvbi11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBERUZBVUxUX1RPT0xUSVBfRklFTERTLFxuICBBTExfRklFTERfVFlQRVMsXG4gIFRSSVBfUE9JTlRfRklFTERTLFxuICBUT09MVElQX0ZPUk1BVFMsXG4gIFRPT0xUSVBfS0VZLFxuICBDT01QQVJFX1RZUEVTXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtGaWVsZCwgVG9vbHRpcEZpZWxkLCBDb21wYXJlVHlwZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Rm9ybWF0dGVyLCBpc051bWJlciwgZGVmYXVsdEZvcm1hdHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG4vKipcbiAqIE1pbnVzIHNpZ24gdXNlZCBpbiB0b29sdGlwIGZvcm1hdHRpbmcuXG4gKiBcXHUyMjEyIG9yIFxcdTAwMkQgaXMgdGhlIG1pbnVzIHNpZ24gdGhhdCBkMy1mb3JtYXQgdXNlcyBmb3IgZGVjaW1hbCBudW1iZXIgZm9ybWF0dGluZ1xuICogZDMtZm9ybWF0IDIuMCB1c2VzIFxcdTAwMkRcbiAqL1xuZXhwb3J0IGNvbnN0IFRPT0xUSVBfTUlOVVNfU0lHTiA9ICdcXHUyMjEyJztcbi8vIGJvdGggYXJlIHBvc2libGUgbmVnYXRpdmUgc2lnbnNcbmV4cG9ydCBjb25zdCBORUdBVElWRV9TSUdOUyA9IFsnXFx1MDAyRCcsICdcXHUyMjEyJ107XG5cbmV4cG9ydCBjb25zdCBCUlVTSF9DT05GSUc6IHtcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG59ID0ge1xuICByYW5nZTogWzAsIDUwXVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaWVsZHNUb1Nob3coe1xuICBmaWVsZHMsXG4gIGlkLFxuICBtYXhEZWZhdWx0VG9vbHRpcHNcbn06IHtcbiAgZmllbGRzOiBGaWVsZFtdO1xuICBpZDogc3RyaW5nO1xuICBtYXhEZWZhdWx0VG9vbHRpcHM6IG51bWJlcjtcbn0pOiB7XG4gIFtrZXk6IHN0cmluZ106IFRvb2x0aXBGaWVsZFtdO1xufSB7XG4gIC8vIGZpcnN0IGZpbmQgZGVmYXVsdCB0b29sdGlwIGZpZWxkcyBmb3IgdHJpcHNcbiAgY29uc3QgZmllbGRzVG9TaG93ID0gREVGQVVMVF9UT09MVElQX0ZJRUxEUy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICBpZiAoZmllbGRzLmZpbmQoKHtuYW1lfSkgPT4gY3Vyci5uYW1lID09PSBuYW1lKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcHJldi5wdXNoKGN1cnIpO1xuICAgIH1cbiAgICByZXR1cm4gcHJldjtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgW2lkXTogZmllbGRzVG9TaG93Lmxlbmd0aCA/IGZpZWxkc1RvU2hvdyA6IGF1dG9GaW5kVG9vbHRpcEZpZWxkcyhmaWVsZHMsIG1heERlZmF1bHRUb29sdGlwcylcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXV0b0ZpbmRUb29sdGlwRmllbGRzKGZpZWxkcywgbWF4RGVmYXVsdFRvb2x0aXBzKSB7XG4gIGNvbnN0IHB0RmllbGRzID0gX21lcmdlRmllbGRQYWlycyhUUklQX1BPSU5UX0ZJRUxEUyk7XG4gIC8vIGZpbHRlciBvdXQgdGhlIGRlZmF1bHQgZmllbGRzIHRoYXQgY29udGFpbnMgbGF0IGFuZCBsbmcgYW5kIGFueSBnZW9tZXRyeVxuICBjb25zdCBmaWVsZHNUb1Nob3cgPSBmaWVsZHMuZmlsdGVyKFxuICAgICh7bmFtZSwgdHlwZX0pID0+XG4gICAgICBuYW1lXG4gICAgICAgIC5yZXBsYWNlKC9bXywuXSsvZywgJyAnKVxuICAgICAgICAudHJpbSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5ldmVyeShzZWcgPT4gIXB0RmllbGRzLmluY2x1ZGVzKHNlZykpICYmXG4gICAgICB0eXBlICE9PSBBTExfRklFTERfVFlQRVMuZ2VvanNvbiAmJlxuICAgICAgdHlwZSAhPT0gQUxMX0ZJRUxEX1RZUEVTLmdlb2Fycm93ICYmXG4gICAgICB0eXBlICE9PSAnb2JqZWN0J1xuICApO1xuXG4gIHJldHVybiBmaWVsZHNUb1Nob3cuc2xpY2UoMCwgbWF4RGVmYXVsdFRvb2x0aXBzKS5tYXAoKHtuYW1lLCB0eXBlfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZm9ybWF0OiBnZXREZWZhdWx0VG9vbHRpcEZvcm1hdCh0eXBlKVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0VG9vbHRpcEZvcm1hdCh0eXBlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICh0eXBlID09PSBBTExfRklFTERfVFlQRVMudGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIFRPT0xUSVBfRk9STUFUUy5EQVRFX1RJTUVfTF9MVFNbVE9PTFRJUF9LRVldO1xuICB9XG4gIGlmICh0eXBlID09PSBBTExfRklFTERfVFlQRVMuZGF0ZSkge1xuICAgIHJldHVybiBUT09MVElQX0ZPUk1BVFMuREFURV9MW1RPT0xUSVBfS0VZXTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gX21lcmdlRmllbGRQYWlycyhwYWlycykge1xuICByZXR1cm4gcGFpcnMucmVkdWNlKChwcmV2LCBwYWlyKSA9PiBbLi4ucHJldiwgLi4ucGFpcl0sIFtdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gIGZpZWxkLFxuICB2YWx1ZSxcbiAgcHJpbWFyeVZhbHVlLFxuICBjb21wYXJlVHlwZVxufToge1xuICBmaWVsZDogRmllbGQ7XG4gIHZhbHVlOiBhbnk7XG4gIHByaW1hcnlWYWx1ZTogYW55O1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xufSk6IHN0cmluZyB8IG51bGwge1xuICBsZXQgZGlzcGxheURlbHRhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChcbiAgICAvLyBjb21wYXJpc29uIG1vZGUgb25seSB3b3JrcyBmb3IgbnVtZXJpYyBmaWVsZFxuICAgIGZpZWxkLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyIHx8XG4gICAgZmllbGQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnJlYWxcbiAgKSB7XG4gICAgaWYgKGlzTnVtYmVyKHByaW1hcnlWYWx1ZSkgJiYgaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICBjb25zdCBkZWx0YVZhbHVlID1cbiAgICAgICAgY29tcGFyZVR5cGUgPT09IENPTVBBUkVfVFlQRVMuUkVMQVRJVkUgPyB2YWx1ZSAvIHByaW1hcnlWYWx1ZSAtIDEgOiB2YWx1ZSAtIHByaW1hcnlWYWx1ZTtcbiAgICAgIGNvbnN0IGRlbHRhRm9ybWF0ID1cbiAgICAgICAgY29tcGFyZVR5cGUgPT09IENPTVBBUkVfVFlQRVMuUkVMQVRJVkVcbiAgICAgICAgICA/IFRPT0xUSVBfRk9STUFUUy5ERUNJTUFMX1BFUkNFTlRfRlVMTF8yW1RPT0xUSVBfS0VZXVxuICAgICAgICAgIDogZmllbGQuZGlzcGxheUZvcm1hdCB8fCBUT09MVElQX0ZPUk1BVFMuREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzNbVE9PTFRJUF9LRVldO1xuXG4gICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IGdldEZvcm1hdHRlcihkZWx0YUZvcm1hdCwgZmllbGQpKGRlbHRhVmFsdWUpO1xuXG4gICAgICAvLyBzYWZlbHkgY2FzdCBzdHJpbmdcbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZGVmYXVsdEZvcm1hdHRlcihkaXNwbGF5RGVsdGFWYWx1ZSk7XG4gICAgICBjb25zdCBkZWx0YUZpcnN0Q2hhciA9IGRpc3BsYXlEZWx0YVZhbHVlLmNoYXJBdCgwKTtcblxuICAgICAgaWYgKGRlbHRhRmlyc3RDaGFyICE9PSAnKycgJiYgIU5FR0FUSVZFX1NJR05TLmluY2x1ZGVzKGRlbHRhRmlyc3RDaGFyKSkge1xuICAgICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IGArJHtkaXNwbGF5RGVsdGFWYWx1ZX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IFRPT0xUSVBfTUlOVVNfU0lHTjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlzcGxheURlbHRhVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtcbiAgaXRlbSxcbiAgZmllbGQsXG4gIHZhbHVlXG59OiB7XG4gIGl0ZW06IFRvb2x0aXBGaWVsZCB8IHVuZGVmaW5lZDtcbiAgZmllbGQ6IEZpZWxkO1xuICB2YWx1ZTogYW55O1xufSk6IHN0cmluZyB7XG4gIGlmICghbm90TnVsbG9yVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBpdGVtPy5mb3JtYXRcbiAgICA/IGdldEZvcm1hdHRlcihpdGVtPy5mb3JtYXQsIGZpZWxkKSh2YWx1ZSlcbiAgICA6IGZpZWxkLmRpc3BsYXlGb3JtYXRcbiAgICA/IGdldEZvcm1hdHRlcihmaWVsZC5kaXNwbGF5Rm9ybWF0LCBmaWVsZCkodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIGZpZWxkLnR5cGUpO1xu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
|
|
275
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl91dGlscyIsIl9jb21tb25VdGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiVE9PTFRJUF9NSU5VU19TSUdOIiwiZXhwb3J0cyIsIk5FR0FUSVZFX1NJR05TIiwiQlJVU0hfQ09ORklHIiwicmFuZ2UiLCJmaW5kRmllbGRzVG9TaG93IiwiX3JlZiIsImZpZWxkcyIsImlkIiwibWF4RGVmYXVsdFRvb2x0aXBzIiwiZmllbGRzVG9TaG93IiwiREVGQVVMVF9UT09MVElQX0ZJRUxEUyIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiZmluZCIsIl9yZWYyIiwibmFtZSIsImF1dG9GaW5kVG9vbHRpcEZpZWxkcyIsInB0RmllbGRzIiwiX21lcmdlRmllbGRQYWlycyIsIlRSSVBfUE9JTlRfRklFTERTIiwiX3JlZjQiLCJ0eXBlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpdCIsImV2ZXJ5Iiwic2VnIiwiaW5jbHVkZXMiLCJBTExfRklFTERfVFlQRVMiLCJnZW9qc29uIiwiZ2VvYXJyb3ciLCJzbGljZSIsIm1hcCIsIl9yZWY1IiwiZm9ybWF0IiwiZ2V0RGVmYXVsdFRvb2x0aXBGb3JtYXQiLCJ0aW1lc3RhbXAiLCJUT09MVElQX0ZPUk1BVFMiLCJEQVRFX1RJTUVfTF9MVFMiLCJUT09MVElQX0tFWSIsImRhdGUiLCJEQVRFX0wiLCJwYWlycyIsInBhaXIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlIiwiX3JlZjYiLCJmaWVsZCIsInZhbHVlIiwicHJpbWFyeVZhbHVlIiwiY29tcGFyZVR5cGUiLCJkaXNwbGF5RGVsdGFWYWx1ZSIsImludGVnZXIiLCJyZWFsIiwiaXNOdW1iZXIiLCJkZWx0YVZhbHVlIiwiQ09NUEFSRV9UWVBFUyIsIlJFTEFUSVZFIiwiZGVsdGFGb3JtYXQiLCJERUNJTUFMX1BFUkNFTlRfRlVMTF8yIiwiZGlzcGxheUZvcm1hdCIsIkRFQ0lNQUxfREVDSU1BTF9GSVhFRF8zIiwiZ2V0Rm9ybWF0dGVyIiwiZGVmYXVsdEZvcm1hdHRlciIsImRlbHRhRmlyc3RDaGFyIiwiY2hhckF0IiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsIl9yZWY3IiwiaXRlbSIsInRpbWV6b25lIiwibm90TnVsbG9yVW5kZWZpbmVkIiwicGFyc2VGaWVsZFZhbHVlIiwiWk9PTV9PUEFDSVRZX1JBTkdFIiwiWk9PTV9PUEFDSVRZX0FOTk9UQVRJT05fUFJFRklYIiwiZ2V0Wm9vbU9wYWNpdHlBbm5vdGF0aW9uVGFyZ2V0SWQiLCJhbm5vdGF0aW9uSWQiLCJERUZBVUxUX1pPT01fT1BBQ0lUWV9TVE9QUyIsImFwcGVhciIsImZ1bGwiLCJmYWRlIiwiZ29uZSIsIlpPT01fT1BBQ0lUWV9TVE9QX0tFWVMiLCJpc09yZGVyZWRab29tT3BhY2l0eVN0b3BzIiwic3RvcHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInpvb21PcGFjaXR5RmFjdG9yIiwiem9vbSIsInNwYW4iLCJnZXRMYXllclpvb21PcGFjaXR5RmFjdG9yIiwibGF5ZXJJZCIsImludGVyYWN0aW9uQ29uZmlnIiwiX3pvb21PcGFjaXR5JGNvbmZpZyIsInpvb21PcGFjaXR5IiwiZW5hYmxlZCIsImNvbnRyb2xsZXIiLCJjb25maWciLCJjb250cm9sbGVycyIsIl9pdGVtJGxheWVySWRzIiwibGF5ZXJJZHMiLCJzZXRab29tT3BhY2l0eVN0b3AiLCJrZXkiLCJtaW5ab29tIiwibWF4Wm9vbSIsIm5leHQiLCJjbGFtcGVkIiwiTWF0aCIsIm1pbiIsIm1heCIsInJvdW5kIiwiaW5kZXgiLCJpbmRleE9mIiwiaSIsInN0b3BLZXkiLCJjb21iaW5lWm9vbU9wYWNpdHlDb250cm9sbGVycyIsImNvbmZpZ3MiLCJzZWVuIiwiU2V0IiwiaGFzIiwiYWRkIiwicmVtb3ZlTGF5ZXJGcm9tWm9vbU9wYWNpdHkiLCJfem9vbU9wYWNpdHkkY29uZmlnMiIsImNoYW5nZWQiLCJuZXh0Q29udHJvbGxlcnMiLCJfY29udHJvbGxlciRsYXllcklkcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmFjdGlvbi11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICBERUZBVUxUX1RPT0xUSVBfRklFTERTLFxuICBBTExfRklFTERfVFlQRVMsXG4gIFRSSVBfUE9JTlRfRklFTERTLFxuICBUT09MVElQX0ZPUk1BVFMsXG4gIFRPT0xUSVBfS0VZLFxuICBDT01QQVJFX1RZUEVTXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtcbiAgRmllbGQsXG4gIEludGVyYWN0aW9uQ29uZmlnLFxuICBUb29sdGlwRmllbGQsXG4gIENvbXBhcmVUeXBlLFxuICBab29tT3BhY2l0eUNvbnRyb2xsZXIsXG4gIFpvb21PcGFjaXR5U3RvcHNcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Rm9ybWF0dGVyLCBpc051bWJlciwgZGVmYXVsdEZvcm1hdHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuXG4vKipcbiAqIE1pbnVzIHNpZ24gdXNlZCBpbiB0b29sdGlwIGZvcm1hdHRpbmcuXG4gKiBcXHUyMjEyIG9yIFxcdTAwMkQgaXMgdGhlIG1pbnVzIHNpZ24gdGhhdCBkMy1mb3JtYXQgdXNlcyBmb3IgZGVjaW1hbCBudW1iZXIgZm9ybWF0dGluZ1xuICogZDMtZm9ybWF0IDIuMCB1c2VzIFxcdTAwMkRcbiAqL1xuZXhwb3J0IGNvbnN0IFRPT0xUSVBfTUlOVVNfU0lHTiA9ICdcXHUyMjEyJztcbi8vIGJvdGggYXJlIHBvc2libGUgbmVnYXRpdmUgc2lnbnNcbmV4cG9ydCBjb25zdCBORUdBVElWRV9TSUdOUyA9IFsnXFx1MDAyRCcsICdcXHUyMjEyJ107XG5cbmV4cG9ydCBjb25zdCBCUlVTSF9DT05GSUc6IHtcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG59ID0ge1xuICByYW5nZTogWzAsIDUwXVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaWVsZHNUb1Nob3coe1xuICBmaWVsZHMsXG4gIGlkLFxuICBtYXhEZWZhdWx0VG9vbHRpcHNcbn06IHtcbiAgZmllbGRzOiBGaWVsZFtdO1xuICBpZDogc3RyaW5nO1xuICBtYXhEZWZhdWx0VG9vbHRpcHM6IG51bWJlcjtcbn0pOiB7XG4gIFtrZXk6IHN0cmluZ106IFRvb2x0aXBGaWVsZFtdO1xufSB7XG4gIC8vIGZpcnN0IGZpbmQgZGVmYXVsdCB0b29sdGlwIGZpZWxkcyBmb3IgdHJpcHNcbiAgY29uc3QgZmllbGRzVG9TaG93ID0gREVGQVVMVF9UT09MVElQX0ZJRUxEUy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICBpZiAoZmllbGRzLmZpbmQoKHtuYW1lfSkgPT4gY3Vyci5uYW1lID09PSBuYW1lKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcHJldi5wdXNoKGN1cnIpO1xuICAgIH1cbiAgICByZXR1cm4gcHJldjtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgW2lkXTogZmllbGRzVG9TaG93Lmxlbmd0aCA/IGZpZWxkc1RvU2hvdyA6IGF1dG9GaW5kVG9vbHRpcEZpZWxkcyhmaWVsZHMsIG1heERlZmF1bHRUb29sdGlwcylcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXV0b0ZpbmRUb29sdGlwRmllbGRzKGZpZWxkcywgbWF4RGVmYXVsdFRvb2x0aXBzKSB7XG4gIGNvbnN0IHB0RmllbGRzID0gX21lcmdlRmllbGRQYWlycyhUUklQX1BPSU5UX0ZJRUxEUyk7XG4gIC8vIGZpbHRlciBvdXQgdGhlIGRlZmF1bHQgZmllbGRzIHRoYXQgY29udGFpbnMgbGF0IGFuZCBsbmcgYW5kIGFueSBnZW9tZXRyeVxuICBjb25zdCBmaWVsZHNUb1Nob3cgPSBmaWVsZHMuZmlsdGVyKFxuICAgICh7bmFtZSwgdHlwZX0pID0+XG4gICAgICBuYW1lXG4gICAgICAgIC5yZXBsYWNlKC9bXywuXSsvZywgJyAnKVxuICAgICAgICAudHJpbSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5ldmVyeShzZWcgPT4gIXB0RmllbGRzLmluY2x1ZGVzKHNlZykpICYmXG4gICAgICB0eXBlICE9PSBBTExfRklFTERfVFlQRVMuZ2VvanNvbiAmJlxuICAgICAgdHlwZSAhPT0gQUxMX0ZJRUxEX1RZUEVTLmdlb2Fycm93ICYmXG4gICAgICB0eXBlICE9PSAnb2JqZWN0J1xuICApO1xuXG4gIHJldHVybiBmaWVsZHNUb1Nob3cuc2xpY2UoMCwgbWF4RGVmYXVsdFRvb2x0aXBzKS5tYXAoKHtuYW1lLCB0eXBlfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZm9ybWF0OiBnZXREZWZhdWx0VG9vbHRpcEZvcm1hdCh0eXBlKVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0VG9vbHRpcEZvcm1hdCh0eXBlPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICh0eXBlID09PSBBTExfRklFTERfVFlQRVMudGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIFRPT0xUSVBfRk9STUFUUy5EQVRFX1RJTUVfTF9MVFNbVE9PTFRJUF9LRVldO1xuICB9XG4gIGlmICh0eXBlID09PSBBTExfRklFTERfVFlQRVMuZGF0ZSkge1xuICAgIHJldHVybiBUT09MVElQX0ZPUk1BVFMuREFURV9MW1RPT0xUSVBfS0VZXTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gX21lcmdlRmllbGRQYWlycyhwYWlycykge1xuICByZXR1cm4gcGFpcnMucmVkdWNlKChwcmV2LCBwYWlyKSA9PiBbLi4ucHJldiwgLi4ucGFpcl0sIFtdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gIGZpZWxkLFxuICB2YWx1ZSxcbiAgcHJpbWFyeVZhbHVlLFxuICBjb21wYXJlVHlwZVxufToge1xuICBmaWVsZDogRmllbGQ7XG4gIHZhbHVlOiBhbnk7XG4gIHByaW1hcnlWYWx1ZTogYW55O1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xufSk6IHN0cmluZyB8IG51bGwge1xuICBsZXQgZGlzcGxheURlbHRhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChcbiAgICAvLyBjb21wYXJpc29uIG1vZGUgb25seSB3b3JrcyBmb3IgbnVtZXJpYyBmaWVsZFxuICAgIGZpZWxkLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyIHx8XG4gICAgZmllbGQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnJlYWxcbiAgKSB7XG4gICAgaWYgKGlzTnVtYmVyKHByaW1hcnlWYWx1ZSkgJiYgaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICBjb25zdCBkZWx0YVZhbHVlID1cbiAgICAgICAgY29tcGFyZVR5cGUgPT09IENPTVBBUkVfVFlQRVMuUkVMQVRJVkUgPyB2YWx1ZSAvIHByaW1hcnlWYWx1ZSAtIDEgOiB2YWx1ZSAtIHByaW1hcnlWYWx1ZTtcbiAgICAgIGNvbnN0IGRlbHRhRm9ybWF0ID1cbiAgICAgICAgY29tcGFyZVR5cGUgPT09IENPTVBBUkVfVFlQRVMuUkVMQVRJVkVcbiAgICAgICAgICA/IFRPT0xUSVBfRk9STUFUUy5ERUNJTUFMX1BFUkNFTlRfRlVMTF8yW1RPT0xUSVBfS0VZXVxuICAgICAgICAgIDogZmllbGQuZGlzcGxheUZvcm1hdCB8fCBUT09MVElQX0ZPUk1BVFMuREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzNbVE9PTFRJUF9LRVldO1xuXG4gICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IGdldEZvcm1hdHRlcihkZWx0YUZvcm1hdCwgZmllbGQpKGRlbHRhVmFsdWUpO1xuXG4gICAgICAvLyBzYWZlbHkgY2FzdCBzdHJpbmdcbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZGVmYXVsdEZvcm1hdHRlcihkaXNwbGF5RGVsdGFWYWx1ZSk7XG4gICAgICBjb25zdCBkZWx0YUZpcnN0Q2hhciA9IGRpc3BsYXlEZWx0YVZhbHVlLmNoYXJBdCgwKTtcblxuICAgICAgaWYgKGRlbHRhRmlyc3RDaGFyICE9PSAnKycgJiYgIU5FR0FUSVZFX1NJR05TLmluY2x1ZGVzKGRlbHRhRmlyc3RDaGFyKSkge1xuICAgICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IGArJHtkaXNwbGF5RGVsdGFWYWx1ZX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IFRPT0xUSVBfTUlOVVNfU0lHTjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlzcGxheURlbHRhVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtcbiAgaXRlbSxcbiAgZmllbGQsXG4gIHZhbHVlLFxuICB0aW1lem9uZVxufToge1xuICBpdGVtOiBUb29sdGlwRmllbGQgfCB1bmRlZmluZWQ7XG4gIGZpZWxkOiBGaWVsZDtcbiAgdmFsdWU6IGFueTtcbiAgdGltZXpvbmU/OiBzdHJpbmcgfCBudWxsO1xufSk6IHN0cmluZyB7XG4gIGlmICghbm90TnVsbG9yVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBpdGVtPy5mb3JtYXRcbiAgICA/IGdldEZvcm1hdHRlcihpdGVtPy5mb3JtYXQsIGZpZWxkLCB0aW1lem9uZSkodmFsdWUpXG4gICAgOiBmaWVsZC5kaXNwbGF5Rm9ybWF0XG4gICAgPyBnZXRGb3JtYXR0ZXIoZmllbGQuZGlzcGxheUZvcm1hdCwgZmllbGQsIHRpbWV6b25lKSh2YWx1ZSlcbiAgICA6IHBhcnNlRmllbGRWYWx1ZSh2YWx1ZSwgZmllbGQudHlwZSk7XG59XG5cbmV4cG9ydCBjb25zdCBaT09NX09QQUNJVFlfUkFOR0U6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMjRdO1xuXG5jb25zdCBaT09NX09QQUNJVFlfQU5OT1RBVElPTl9QUkVGSVggPSAnX19rZXBsZXJfYW5ub3RhdGlvbl9fOic7XG5cbi8qKiBSZXNlcnZlZCBmYWRlLW9uLXpvb20gdGFyZ2V0IGlkIGZvciBvbmUgbWFwIGFubm90YXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Wm9vbU9wYWNpdHlBbm5vdGF0aW9uVGFyZ2V0SWQoYW5ub3RhdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7Wk9PTV9PUEFDSVRZX0FOTk9UQVRJT05fUFJFRklYfSR7YW5ub3RhdGlvbklkfWA7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1pPT01fT1BBQ0lUWV9TVE9QUzogWm9vbU9wYWNpdHlTdG9wcyA9IHtcbiAgYXBwZWFyOiAxLFxuICBmdWxsOiAzLFxuICBmYWRlOiA4LFxuICBnb25lOiAxMlxufTtcblxuY29uc3QgWk9PTV9PUEFDSVRZX1NUT1BfS0VZUyA9IFsnYXBwZWFyJywgJ2Z1bGwnLCAnZmFkZScsICdnb25lJ10gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzT3JkZXJlZFpvb21PcGFjaXR5U3RvcHMoc3RvcHM6IFpvb21PcGFjaXR5U3RvcHMgfCB1bmRlZmluZWQpOiBzdG9wcyBpcyBab29tT3BhY2l0eVN0b3BzIHtcbiAgaWYgKCFzdG9wcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCB7YXBwZWFyLCBmdWxsLCBmYWRlLCBnb25lfSA9IHN0b3BzO1xuICByZXR1cm4gKFxuICAgIFthcHBlYXIsIGZ1bGwsIGZhZGUsIGdvbmVdLmV2ZXJ5KFxuICAgICAgdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpXG4gICAgKSAmJlxuICAgIGFwcGVhciA8PSBmdWxsICYmXG4gICAgZnVsbCA8PSBmYWRlICYmXG4gICAgZmFkZSA8PSBnb25lXG4gICk7XG59XG5cbi8qKlxuICogMOKAkzEgbXVsdGlwbGllciBmb3IgYSBsYXllcidzIG9wYWNpdHkgYXQgYHpvb21gLlxuICogMCBhdCBhbmQgb3V0c2lkZSB0aGUgZW52ZWxvcGUsIHJpc2luZyBmcm9tIGFwcGVhciB0byBmdWxsLCBob2xkaW5nIHRocm91Z2ggZmFkZSwgdGhlbiBmYWxsaW5nIHRvIGdvbmUuXG4gKiBFcXVhbCBuZWlnaGJvcnMgYXJlIGEgc3RlcC4gVW5vcmRlcmVkIHN0b3BzIGxlYXZlIG9wYWNpdHkgdW5jaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gem9vbU9wYWNpdHlGYWN0b3Ioem9vbTogbnVtYmVyLCBzdG9wczogWm9vbU9wYWNpdHlTdG9wcyk6IG51bWJlciB7XG4gIGlmICghaXNPcmRlcmVkWm9vbU9wYWNpdHlTdG9wcyhzdG9wcykgfHwgIU51bWJlci5pc0Zpbml0ZSh6b29tKSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGNvbnN0IHthcHBlYXIsIGZ1bGwsIGZhZGUsIGdvbmV9ID0gc3RvcHM7XG4gIGlmICh6b29tIDw9IGFwcGVhciB8fCB6b29tID49IGdvbmUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBpZiAoem9vbSA8IGZ1bGwpIHtcbiAgICBjb25zdCBzcGFuID0gZnVsbCAtIGFwcGVhcjtcbiAgICByZXR1cm4gc3BhbiA8PSAwID8gMSA6ICh6b29tIC0gYXBwZWFyKSAvIHNwYW47XG4gIH1cbiAgaWYgKHpvb20gPD0gZmFkZSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGNvbnN0IHNwYW4gPSBnb25lIC0gZmFkZTtcbiAgcmV0dXJuIHNwYW4gPD0gMCA/IDAgOiAoZ29uZSAtIHpvb20pIC8gc3Bhbjtcbn1cblxuLyoqIEVudmVsb3BlIG11bHRpcGxpZXIgZm9yIG9uZSBsYXllci4gMSB3aGVuIGZhZGUtb24tem9vbSBpcyBvZmYgb3IgdGhlIGxheWVyIGlzIG5vdCBhc3NpZ25lZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXllclpvb21PcGFjaXR5RmFjdG9yKFxuICBsYXllcklkOiBzdHJpbmcsXG4gIHpvb206IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgaW50ZXJhY3Rpb25Db25maWc/OiBJbnRlcmFjdGlvbkNvbmZpZyB8IG51bGxcbik6IG51bWJlciB7XG4gIGNvbnN0IHpvb21PcGFjaXR5ID0gaW50ZXJhY3Rpb25Db25maWc/Lnpvb21PcGFjaXR5O1xuICBpZiAoIXpvb21PcGFjaXR5Py5lbmFibGVkIHx8IHR5cGVvZiB6b29tICE9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSB6b29tT3BhY2l0eS5jb25maWc/LmNvbnRyb2xsZXJzPy5maW5kKGl0ZW0gPT5cbiAgICBpdGVtLmxheWVySWRzPy5pbmNsdWRlcyhsYXllcklkKVxuICApO1xuICBpZiAoIWNvbnRyb2xsZXIpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gem9vbU9wYWNpdHlGYWN0b3Ioem9vbSwgY29udHJvbGxlci5zdG9wcyk7XG59XG5cbi8qKiBXcml0ZSBvbmUgc3RvcCBhbmQgcHVzaCBpdHMgbmVpZ2hib3JzIHNvIGFwcGVhciA8PSBmdWxsIDw9IGZhZGUgPD0gZ29uZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRab29tT3BhY2l0eVN0b3AoXG4gIHN0b3BzOiBab29tT3BhY2l0eVN0b3BzLFxuICBrZXk6IGtleW9mIFpvb21PcGFjaXR5U3RvcHMsXG4gIHZhbHVlOiBudW1iZXJcbik6IFpvb21PcGFjaXR5U3RvcHMge1xuICBjb25zdCBbbWluWm9vbSwgbWF4Wm9vbV0gPSBaT09NX09QQUNJVFlfUkFOR0U7XG4gIGNvbnN0IG5leHQ6IFpvb21PcGFjaXR5U3RvcHMgPSB7Li4uc3RvcHN9O1xuICBjb25zdCBjbGFtcGVkID0gTWF0aC5taW4obWF4Wm9vbSwgTWF0aC5tYXgobWluWm9vbSwgdmFsdWUpKTtcbiAgbmV4dFtrZXldID0gTWF0aC5yb3VuZChjbGFtcGVkICogMTApIC8gMTA7XG4gIGNvbnN0IGluZGV4ID0gWk9PTV9PUEFDSVRZX1NUT1BfS0VZUy5pbmRleE9mKGtleSk7XG4gIGZvciAobGV0IGkgPSBpbmRleCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3Qgc3RvcEtleSA9IFpPT01fT1BBQ0lUWV9TVE9QX0tFWVNbaV07XG4gICAgaWYgKG5leHRbc3RvcEtleV0gPiBuZXh0W1pPT01fT1BBQ0lUWV9TVE9QX0tFWVNbaSArIDFdXSkge1xuICAgICAgbmV4dFtzdG9wS2V5XSA9IG5leHRbWk9PTV9PUEFDSVRZX1NUT1BfS0VZU1tpICsgMV1dO1xuICAgIH1cbiAgfVxuICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyBpIDwgWk9PTV9PUEFDSVRZX1NUT1BfS0VZUy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHN0b3BLZXkgPSBaT09NX09QQUNJVFlfU1RPUF9LRVlTW2ldO1xuICAgIGlmIChuZXh0W3N0b3BLZXldIDwgbmV4dFtaT09NX09QQUNJVFlfU1RPUF9LRVlTW2kgLSAxXV0pIHtcbiAgICAgIG5leHRbc3RvcEtleV0gPSBuZXh0W1pPT01fT1BBQ0lUWV9TVE9QX0tFWVNbaSAtIDFdXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKiBDb25jYXRlbmF0ZSBjb250cm9sbGVycyBhbmQga2VlcCB0aGUgZmlyc3QgYXNzaWdubWVudCBvZiBlYWNoIGxheWVyIGlkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVab29tT3BhY2l0eUNvbnRyb2xsZXJzKFxuICBjb25maWdzOiBBcnJheTx7Y29udHJvbGxlcnM/OiBab29tT3BhY2l0eUNvbnRyb2xsZXJbXX0gfCBudWxsIHwgdW5kZWZpbmVkPlxuKTogWm9vbU9wYWNpdHlDb250cm9sbGVyW10ge1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGNvbnRyb2xsZXJzOiBab29tT3BhY2l0eUNvbnRyb2xsZXJbXSA9IFtdO1xuICBjb25maWdzLmZvckVhY2goY29uZmlnID0+IHtcbiAgICAoY29uZmlnPy5jb250cm9sbGVycyB8fCBbXSkuZm9yRWFjaChjb250cm9sbGVyID0+IHtcbiAgICAgIGNvbnN0IGxheWVySWRzID0gKGNvbnRyb2xsZXIubGF5ZXJJZHMgfHwgW10pLmZpbHRlcihpZCA9PiB7XG4gICAgICAgIGlmIChzZWVuLmhhcyhpZCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5hZGQoaWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGxheWVySWRzLmxlbmd0aCB8fCAhKGNvbnRyb2xsZXIubGF5ZXJJZHMgfHwgW10pLmxlbmd0aCkge1xuICAgICAgICBjb250cm9sbGVycy5wdXNoKHtcbiAgICAgICAgICAuLi5jb250cm9sbGVyLFxuICAgICAgICAgIHN0b3BzOiB7Li4uY29udHJvbGxlci5zdG9wc30sXG4gICAgICAgICAgbGF5ZXJJZHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gY29udHJvbGxlcnM7XG59XG5cbi8qKiBEcm9wIGEgZGVsZXRlZCBsYXllciBmcm9tIGZhZGUtb24tem9vbSBjb250cm9sbGVycy4gUmV0dXJucyB0aGUgc2FtZSBjb25maWcgd2hlbiBub3RoaW5nIGNoYW5nZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTGF5ZXJGcm9tWm9vbU9wYWNpdHk8XG4gIFQgZXh0ZW5kcyB7em9vbU9wYWNpdHk/OiBJbnRlcmFjdGlvbkNvbmZpZ1snem9vbU9wYWNpdHknXX1cbj4oaW50ZXJhY3Rpb25Db25maWc6IFQsIGxheWVySWQ6IHN0cmluZyk6IFQge1xuICBjb25zdCB6b29tT3BhY2l0eSA9IGludGVyYWN0aW9uQ29uZmlnPy56b29tT3BhY2l0eTtcbiAgaWYgKCF6b29tT3BhY2l0eSkge1xuICAgIHJldHVybiBpbnRlcmFjdGlvbkNvbmZpZztcbiAgfVxuICBjb25zdCBjb250cm9sbGVycyA9IHpvb21PcGFjaXR5LmNvbmZpZz8uY29udHJvbGxlcnM7XG4gIGlmICghY29udHJvbGxlcnM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBpbnRlcmFjdGlvbkNvbmZpZztcbiAgfVxuICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICBjb25zdCBuZXh0Q29udHJvbGxlcnMgPSBjb250cm9sbGVycy5tYXAoY29udHJvbGxlciA9PiB7XG4gICAgaWYgKCFjb250cm9sbGVyLmxheWVySWRzPy5pbmNsdWRlcyhsYXllcklkKSkge1xuICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XG4gICAgfVxuICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb250cm9sbGVyLFxuICAgICAgbGF5ZXJJZHM6IGNvbnRyb2xsZXIubGF5ZXJJZHMuZmlsdGVyKGlkID0+IGlkICE9PSBsYXllcklkKVxuICAgIH07XG4gIH0pO1xuICBpZiAoIWNoYW5nZWQpIHtcbiAgICByZXR1cm4gaW50ZXJhY3Rpb25Db25maWc7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgICB6b29tT3BhY2l0eToge1xuICAgICAgLi4uem9vbU9wYWNpdHksXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uem9vbU9wYWNpdHkuY29uZmlnLFxuICAgICAgICBjb250cm9sbGVyczogbmV4dENvbnRyb2xsZXJzXG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFpQkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQTJELFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBSCxPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBLElBckIzRDtBQUNBO0FBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNb0Isa0JBQWtCLEdBQUFDLE9BQUEsQ0FBQUQsa0JBQUEsR0FBRyxRQUFRO0FBQzFDO0FBQ08sSUFBTUUsY0FBYyxHQUFBRCxPQUFBLENBQUFDLGNBQUEsR0FBRyxDQUFDLEdBQVEsRUFBRSxRQUFRLENBQUM7QUFFM0MsSUFBTUMsWUFFWixHQUFBRixPQUFBLENBQUFFLFlBQUEsR0FBRztFQUNGQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNmLENBQUM7QUFFTSxTQUFTQyxnQkFBZ0JBLENBQUFDLElBQUEsRUFVOUI7RUFBQSxJQVRBQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxFQUFFLEdBQUFGLElBQUEsQ0FBRkUsRUFBRTtJQUNGQyxrQkFBa0IsR0FBQUgsSUFBQSxDQUFsQkcsa0JBQWtCO0VBUWxCO0VBQ0EsSUFBTUMsWUFBWSxHQUFHQyxpQ0FBc0IsQ0FBQ0MsTUFBTSxDQUFDLFVBQUNDLElBQUksRUFBRUMsSUFBSSxFQUFLO0lBQ2pFLElBQUlQLE1BQU0sQ0FBQ1EsSUFBSSxDQUFDLFVBQUFDLEtBQUE7TUFBQSxJQUFFQyxJQUFJLEdBQUFELEtBQUEsQ0FBSkMsSUFBSTtNQUFBLE9BQU1ILElBQUksQ0FBQ0csSUFBSSxLQUFLQSxJQUFJO0lBQUEsRUFBQyxFQUFFO01BQy9DO01BQ0FKLElBQUksQ0FBQ3ZCLElBQUksQ0FBQ3dCLElBQUksQ0FBQztJQUNqQjtJQUNBLE9BQU9ELElBQUk7RUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sV0FBQWpCLGdCQUFBLGlCQUNHWSxFQUFFLEVBQUdFLFlBQVksQ0FBQ2hCLE1BQU0sR0FBR2dCLFlBQVksR0FBR1EscUJBQXFCLENBQUNYLE1BQU0sRUFBRUUsa0JBQWtCLENBQUM7QUFFaEc7QUFFQSxTQUFTUyxxQkFBcUJBLENBQUNYLE1BQU0sRUFBRUUsa0JBQWtCLEVBQUU7RUFDekQsSUFBTVUsUUFBUSxHQUFHQyxnQkFBZ0IsQ0FBQ0MsNEJBQWlCLENBQUM7RUFDcEQ7RUFDQSxJQUFNWCxZQUFZLEdBQUdILE1BQU0sQ0FBQ3BCLE1BQU0sQ0FDaEMsVUFBQW1DLEtBQUE7SUFBQSxJQUFFTCxJQUFJLEdBQUFLLEtBQUEsQ0FBSkwsSUFBSTtNQUFFTSxJQUFJLEdBQUFELEtBQUEsQ0FBSkMsSUFBSTtJQUFBLE9BQ1ZOLElBQUksQ0FDRE8sT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FDdkJDLElBQUksQ0FBQyxDQUFDLENBQ05DLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDVkMsS0FBSyxDQUFDLFVBQUFDLEdBQUc7TUFBQSxPQUFJLENBQUNULFFBQVEsQ0FBQ1UsUUFBUSxDQUFDRCxHQUFHLENBQUM7SUFBQSxFQUFDLElBQ3hDTCxJQUFJLEtBQUtPLDBCQUFlLENBQUNDLE9BQU8sSUFDaENSLElBQUksS0FBS08sMEJBQWUsQ0FBQ0UsUUFBUSxJQUNqQ1QsSUFBSSxLQUFLLFFBQVE7RUFBQSxDQUNyQixDQUFDO0VBRUQsT0FBT2IsWUFBWSxDQUFDdUIsS0FBSyxDQUFDLENBQUMsRUFBRXhCLGtCQUFrQixDQUFDLENBQUN5QixHQUFHLENBQUMsVUFBQUMsS0FBQSxFQUFrQjtJQUFBLElBQWhCbEIsSUFBSSxHQUFBa0IsS0FBQSxDQUFKbEIsSUFBSTtNQUFFTSxJQUFJLEdBQUFZLEtBQUEsQ0FBSlosSUFBSTtJQUMvRCxPQUFPO01BQ0xOLElBQUksRUFBSkEsSUFBSTtNQUNKbUIsTUFBTSxFQUFFQyx1QkFBdUIsQ0FBQ2QsSUFBSTtJQUN0QyxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxTQUFTYyx1QkFBdUJBLENBQUNkLElBQWEsRUFBaUI7RUFDN0QsSUFBSUEsSUFBSSxLQUFLTywwQkFBZSxDQUFDUSxTQUFTLEVBQUU7SUFDdEMsT0FBT0MsMEJBQWUsQ0FBQ0MsZUFBZSxDQUFDQyxzQkFBVyxDQUFDO0VBQ3JEO0VBQ0EsSUFBSWxCLElBQUksS0FBS08sMEJBQWUsQ0FBQ1ksSUFBSSxFQUFFO0lBQ2pDLE9BQU9ILDBCQUFlLENBQUNJLE1BQU0sQ0FBQ0Ysc0JBQVcsQ0FBQztFQUM1QztFQUNBLE9BQU8sSUFBSTtBQUNiO0FBRUEsU0FBU3JCLGdCQUFnQkEsQ0FBQ3dCLEtBQUssRUFBRTtFQUMvQixPQUFPQSxLQUFLLENBQUNoQyxNQUFNLENBQUMsVUFBQ0MsSUFBSSxFQUFFZ0MsSUFBSTtJQUFBLFVBQUFDLE1BQUEsS0FBQUMsbUJBQUEsYUFBU2xDLElBQUksT0FBQWtDLG1CQUFBLGFBQUtGLElBQUk7RUFBQSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQzdEO0FBRU8sU0FBU0csMkJBQTJCQSxDQUFBQyxLQUFBLEVBVXpCO0VBQUEsSUFUaEJDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO0lBQ0xDLEtBQUssR0FBQUYsS0FBQSxDQUFMRSxLQUFLO0lBQ0xDLFlBQVksR0FBQUgsS0FBQSxDQUFaRyxZQUFZO0lBQ1pDLFdBQVcsR0FBQUosS0FBQSxDQUFYSSxXQUFXO0VBT1gsSUFBSUMsaUJBQWdDLEdBQUcsSUFBSTtFQUUzQztFQUNFO0VBQ0FKLEtBQUssQ0FBQzNCLElBQUksS0FBS08sMEJBQWUsQ0FBQ3lCLE9BQU8sSUFDdENMLEtBQUssQ0FBQzNCLElBQUksS0FBS08sMEJBQWUsQ0FBQzBCLElBQUksRUFDbkM7SUFDQSxJQUFJLElBQUFDLGVBQVEsRUFBQ0wsWUFBWSxDQUFDLElBQUksSUFBQUssZUFBUSxFQUFDTixLQUFLLENBQUMsRUFBRTtNQUM3QyxJQUFNTyxVQUFVLEdBQ2RMLFdBQVcsS0FBS00sd0JBQWEsQ0FBQ0MsUUFBUSxHQUFHVCxLQUFLLEdBQUdDLFlBQVksR0FBRyxDQUFDLEdBQUdELEtBQUssR0FBR0MsWUFBWTtNQUMxRixJQUFNUyxXQUFXLEdBQ2ZSLFdBQVcsS0FBS00sd0JBQWEsQ0FBQ0MsUUFBUSxHQUNsQ3JCLDBCQUFlLENBQUN1QixzQkFBc0IsQ0FBQ3JCLHNCQUFXLENBQUMsR0FDbkRTLEtBQUssQ0FBQ2EsYUFBYSxJQUFJeEIsMEJBQWUsQ0FBQ3lCLHVCQUF1QixDQUFDdkIsc0JBQVcsQ0FBQztNQUVqRmEsaUJBQWlCLEdBQUcsSUFBQVcsbUJBQVksRUFBQ0osV0FBVyxFQUFFWCxLQUFLLENBQUMsQ0FBQ1EsVUFBVSxDQUFDOztNQUVoRTtNQUNBSixpQkFBaUIsR0FBRyxJQUFBWSx1QkFBZ0IsRUFBQ1osaUJBQWlCLENBQUM7TUFDdkQsSUFBTWEsY0FBYyxHQUFHYixpQkFBaUIsQ0FBQ2MsTUFBTSxDQUFDLENBQUMsQ0FBQztNQUVsRCxJQUFJRCxjQUFjLEtBQUssR0FBRyxJQUFJLENBQUNqRSxjQUFjLENBQUMyQixRQUFRLENBQUNzQyxjQUFjLENBQUMsRUFBRTtRQUN0RWIsaUJBQWlCLE9BQUFSLE1BQUEsQ0FBT1EsaUJBQWlCLENBQUU7TUFDN0M7SUFDRixDQUFDLE1BQU07TUFDTEEsaUJBQWlCLEdBQUd0RCxrQkFBa0I7SUFDeEM7RUFDRjtFQUVBLE9BQU9zRCxpQkFBaUI7QUFDMUI7QUFFTyxTQUFTZSxzQkFBc0JBLENBQUFDLEtBQUEsRUFVM0I7RUFBQSxJQVRUQyxJQUFJLEdBQUFELEtBQUEsQ0FBSkMsSUFBSTtJQUNKckIsS0FBSyxHQUFBb0IsS0FBQSxDQUFMcEIsS0FBSztJQUNMQyxLQUFLLEdBQUFtQixLQUFBLENBQUxuQixLQUFLO0lBQ0xxQixRQUFRLEdBQUFGLEtBQUEsQ0FBUkUsUUFBUTtFQU9SLElBQUksQ0FBQyxJQUFBQywrQkFBa0IsRUFBQ3RCLEtBQUssQ0FBQyxFQUFFO0lBQzlCLE9BQU8sRUFBRTtFQUNYO0VBRUEsT0FBT29CLElBQUksYUFBSkEsSUFBSSxlQUFKQSxJQUFJLENBQUVuQyxNQUFNLEdBQ2YsSUFBQTZCLG1CQUFZLEVBQUNNLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFbkMsTUFBTSxFQUFFYyxLQUFLLEVBQUVzQixRQUFRLENBQUMsQ0FBQ3JCLEtBQUssQ0FBQyxHQUNsREQsS0FBSyxDQUFDYSxhQUFhLEdBQ25CLElBQUFFLG1CQUFZLEVBQUNmLEtBQUssQ0FBQ2EsYUFBYSxFQUFFYixLQUFLLEVBQUVzQixRQUFRLENBQUMsQ0FBQ3JCLEtBQUssQ0FBQyxHQUN6RCxJQUFBdUIsc0JBQWUsRUFBQ3ZCLEtBQUssRUFBRUQsS0FBSyxDQUFDM0IsSUFBSSxDQUFDO0FBQ3hDO0FBRU8sSUFBTW9ELGtCQUFvQyxHQUFBMUUsT0FBQSxDQUFBMEUsa0JBQUEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7QUFFM0QsSUFBTUMsOEJBQThCLEdBQUcsd0JBQXdCOztBQUUvRDtBQUNPLFNBQVNDLGdDQUFnQ0EsQ0FBQ0MsWUFBb0IsRUFBVTtFQUM3RSxVQUFBaEMsTUFBQSxDQUFVOEIsOEJBQThCLEVBQUE5QixNQUFBLENBQUdnQyxZQUFZO0FBQ3pEO0FBRU8sSUFBTUMsMEJBQTRDLEdBQUE5RSxPQUFBLENBQUE4RSwwQkFBQSxHQUFHO0VBQzFEQyxNQUFNLEVBQUUsQ0FBQztFQUNUQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUU7QUFDUixDQUFDO0FBRUQsSUFBTUMsc0JBQXNCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7QUFFMUUsU0FBU0MseUJBQXlCQSxDQUFDQyxLQUFtQyxFQUE2QjtFQUNqRyxJQUFJLENBQUNBLEtBQUssRUFBRTtJQUNWLE9BQU8sS0FBSztFQUNkO0VBQ0EsSUFBT04sTUFBTSxHQUFzQk0sS0FBSyxDQUFqQ04sTUFBTTtJQUFFQyxJQUFJLEdBQWdCSyxLQUFLLENBQXpCTCxJQUFJO0lBQUVDLElBQUksR0FBVUksS0FBSyxDQUFuQkosSUFBSTtJQUFFQyxJQUFJLEdBQUlHLEtBQUssQ0FBYkgsSUFBSTtFQUMvQixPQUNFLENBQUNILE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBQyxDQUFDeEQsS0FBSyxDQUM5QixVQUFBd0IsS0FBSztJQUFBLE9BQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSW9DLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDckMsS0FBSyxDQUFDO0VBQUEsQ0FDOUQsQ0FBQyxJQUNENkIsTUFBTSxJQUFJQyxJQUFJLElBQ2RBLElBQUksSUFBSUMsSUFBSSxJQUNaQSxJQUFJLElBQUlDLElBQUk7QUFFaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNNLGlCQUFpQkEsQ0FBQ0MsSUFBWSxFQUFFSixLQUF1QixFQUFVO0VBQy9FLElBQUksQ0FBQ0QseUJBQXlCLENBQUNDLEtBQUssQ0FBQyxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRSxJQUFJLENBQUMsRUFBRTtJQUMvRCxPQUFPLENBQUM7RUFDVjtFQUNBLElBQU9WLE1BQU0sR0FBc0JNLEtBQUssQ0FBakNOLE1BQU07SUFBRUMsSUFBSSxHQUFnQkssS0FBSyxDQUF6QkwsSUFBSTtJQUFFQyxJQUFJLEdBQVVJLEtBQUssQ0FBbkJKLElBQUk7SUFBRUMsSUFBSSxHQUFJRyxLQUFLLENBQWJILElBQUk7RUFDL0IsSUFBSU8sSUFBSSxJQUFJVixNQUFNLElBQUlVLElBQUksSUFBSVAsSUFBSSxFQUFFO0lBQ2xDLE9BQU8sQ0FBQztFQUNWO0VBQ0EsSUFBSU8sSUFBSSxHQUFHVCxJQUFJLEVBQUU7SUFDZixJQUFNVSxLQUFJLEdBQUdWLElBQUksR0FBR0QsTUFBTTtJQUMxQixPQUFPVyxLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDRCxJQUFJLEdBQUdWLE1BQU0sSUFBSVcsS0FBSTtFQUMvQztFQUNBLElBQUlELElBQUksSUFBSVIsSUFBSSxFQUFFO0lBQ2hCLE9BQU8sQ0FBQztFQUNWO0VBQ0EsSUFBTVMsSUFBSSxHQUFHUixJQUFJLEdBQUdELElBQUk7RUFDeEIsT0FBT1MsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQ1IsSUFBSSxHQUFHTyxJQUFJLElBQUlDLElBQUk7QUFDN0M7O0FBRUE7QUFDTyxTQUFTQyx5QkFBeUJBLENBQ3ZDQyxPQUFlLEVBQ2ZILElBQXdCLEVBQ3hCSSxpQkFBNEMsRUFDcEM7RUFBQSxJQUFBQyxtQkFBQTtFQUNSLElBQU1DLFdBQVcsR0FBR0YsaUJBQWlCLGFBQWpCQSxpQkFBaUIsdUJBQWpCQSxpQkFBaUIsQ0FBRUUsV0FBVztFQUNsRCxJQUFJLEVBQUNBLFdBQVcsYUFBWEEsV0FBVyxlQUFYQSxXQUFXLENBQUVDLE9BQU8sS0FBSSxPQUFPUCxJQUFJLEtBQUssUUFBUSxFQUFFO0lBQ3JELE9BQU8sQ0FBQztFQUNWO0VBQ0EsSUFBTVEsVUFBVSxJQUFBSCxtQkFBQSxHQUFHQyxXQUFXLENBQUNHLE1BQU0sY0FBQUosbUJBQUEsZ0JBQUFBLG1CQUFBLEdBQWxCQSxtQkFBQSxDQUFvQkssV0FBVyxjQUFBTCxtQkFBQSx1QkFBL0JBLG1CQUFBLENBQWlDaEYsSUFBSSxDQUFDLFVBQUF3RCxJQUFJO0lBQUEsSUFBQThCLGNBQUE7SUFBQSxRQUFBQSxjQUFBLEdBQzNEOUIsSUFBSSxDQUFDK0IsUUFBUSxjQUFBRCxjQUFBLHVCQUFiQSxjQUFBLENBQWV4RSxRQUFRLENBQUNnRSxPQUFPLENBQUM7RUFBQSxDQUNsQyxDQUFDO0VBQ0QsSUFBSSxDQUFDSyxVQUFVLEVBQUU7SUFDZixPQUFPLENBQUM7RUFDVjtFQUNBLE9BQU9ULGlCQUFpQixDQUFDQyxJQUFJLEVBQUVRLFVBQVUsQ0FBQ1osS0FBSyxDQUFDO0FBQ2xEOztBQUVBO0FBQ08sU0FBU2lCLGtCQUFrQkEsQ0FDaENqQixLQUF1QixFQUN2QmtCLEdBQTJCLEVBQzNCckQsS0FBYSxFQUNLO0VBQ2xCLElBQU9zRCxPQUFPLEdBQWE5QixrQkFBa0I7SUFBN0IrQixPQUFPLEdBQUkvQixrQkFBa0I7RUFDN0MsSUFBTWdDLElBQXNCLEdBQUFuSCxhQUFBLEtBQU84RixLQUFLLENBQUM7RUFDekMsSUFBTXNCLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUNKLE9BQU8sRUFBRUcsSUFBSSxDQUFDRSxHQUFHLENBQUNOLE9BQU8sRUFBRXRELEtBQUssQ0FBQyxDQUFDO0VBQzNEd0QsSUFBSSxDQUFDSCxHQUFHLENBQUMsR0FBR0ssSUFBSSxDQUFDRyxLQUFLLENBQUNKLE9BQU8sR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO0VBQ3pDLElBQU1LLEtBQUssR0FBRzdCLHNCQUFzQixDQUFDOEIsT0FBTyxDQUFDVixHQUFHLENBQUM7RUFDakQsS0FBSyxJQUFJVyxDQUFDLEdBQUdGLEtBQUssR0FBRyxDQUFDLEVBQUVFLENBQUMsSUFBSSxDQUFDLEVBQUVBLENBQUMsRUFBRSxFQUFFO0lBQ25DLElBQU1DLE9BQU8sR0FBR2hDLHNCQUFzQixDQUFDK0IsQ0FBQyxDQUFDO0lBQ3pDLElBQUlSLElBQUksQ0FBQ1MsT0FBTyxDQUFDLEdBQUdULElBQUksQ0FBQ3ZCLHNCQUFzQixDQUFDK0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDdkRSLElBQUksQ0FBQ1MsT0FBTyxDQUFDLEdBQUdULElBQUksQ0FBQ3ZCLHNCQUFzQixDQUFDK0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JEO0VBQ0Y7RUFDQSxLQUFLLElBQUlBLEVBQUMsR0FBR0YsS0FBSyxHQUFHLENBQUMsRUFBRUUsRUFBQyxHQUFHL0Isc0JBQXNCLENBQUMxRixNQUFNLEVBQUV5SCxFQUFDLEVBQUUsRUFBRTtJQUM5RCxJQUFNQyxRQUFPLEdBQUdoQyxzQkFBc0IsQ0FBQytCLEVBQUMsQ0FBQztJQUN6QyxJQUFJUixJQUFJLENBQUNTLFFBQU8sQ0FBQyxHQUFHVCxJQUFJLENBQUN2QixzQkFBc0IsQ0FBQytCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO01BQ3ZEUixJQUFJLENBQUNTLFFBQU8sQ0FBQyxHQUFHVCxJQUFJLENBQUN2QixzQkFBc0IsQ0FBQytCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRDtFQUNGO0VBQ0EsT0FBT1IsSUFBSTtBQUNiOztBQUVBO0FBQ08sU0FBU1UsNkJBQTZCQSxDQUMzQ0MsT0FBMEUsRUFDakQ7RUFDekIsSUFBTUMsSUFBSSxHQUFHLElBQUlDLEdBQUcsQ0FBUyxDQUFDO0VBQzlCLElBQU1wQixXQUFvQyxHQUFHLEVBQUU7RUFDL0NrQixPQUFPLENBQUMzSCxPQUFPLENBQUMsVUFBQXdHLE1BQU0sRUFBSTtJQUN4QixDQUFDLENBQUFBLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFQyxXQUFXLEtBQUksRUFBRSxFQUFFekcsT0FBTyxDQUFDLFVBQUF1RyxVQUFVLEVBQUk7TUFDaEQsSUFBTUksUUFBUSxHQUFHLENBQUNKLFVBQVUsQ0FBQ0ksUUFBUSxJQUFJLEVBQUUsRUFBRW5ILE1BQU0sQ0FBQyxVQUFBcUIsRUFBRSxFQUFJO1FBQ3hELElBQUkrRyxJQUFJLENBQUNFLEdBQUcsQ0FBQ2pILEVBQUUsQ0FBQyxFQUFFO1VBQ2hCLE9BQU8sS0FBSztRQUNkO1FBQ0ErRyxJQUFJLENBQUNHLEdBQUcsQ0FBQ2xILEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBSTtNQUNiLENBQUMsQ0FBQztNQUNGLElBQUk4RixRQUFRLENBQUM1RyxNQUFNLElBQUksQ0FBQyxDQUFDd0csVUFBVSxDQUFDSSxRQUFRLElBQUksRUFBRSxFQUFFNUcsTUFBTSxFQUFFO1FBQzFEMEcsV0FBVyxDQUFDOUcsSUFBSSxDQUFBRSxhQUFBLENBQUFBLGFBQUEsS0FDWDBHLFVBQVU7VUFDYlosS0FBSyxFQUFBOUYsYUFBQSxLQUFNMEcsVUFBVSxDQUFDWixLQUFLLENBQUM7VUFDNUJnQixRQUFRLEVBQVJBO1FBQVEsRUFDVCxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFDRixPQUFPRixXQUFXO0FBQ3BCOztBQUVBO0FBQ08sU0FBU3VCLDBCQUEwQkEsQ0FFeEM3QixpQkFBb0IsRUFBRUQsT0FBZSxFQUFLO0VBQUEsSUFBQStCLG9CQUFBO0VBQzFDLElBQU01QixXQUFXLEdBQUdGLGlCQUFpQixhQUFqQkEsaUJBQWlCLHVCQUFqQkEsaUJBQWlCLENBQUVFLFdBQVc7RUFDbEQsSUFBSSxDQUFDQSxXQUFXLEVBQUU7SUFDaEIsT0FBT0YsaUJBQWlCO0VBQzFCO0VBQ0EsSUFBTU0sV0FBVyxJQUFBd0Isb0JBQUEsR0FBRzVCLFdBQVcsQ0FBQ0csTUFBTSxjQUFBeUIsb0JBQUEsdUJBQWxCQSxvQkFBQSxDQUFvQnhCLFdBQVc7RUFDbkQsSUFBSSxFQUFDQSxXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFMUcsTUFBTSxHQUFFO0lBQ3hCLE9BQU9vRyxpQkFBaUI7RUFDMUI7RUFDQSxJQUFJK0IsT0FBTyxHQUFHLEtBQUs7RUFDbkIsSUFBTUMsZUFBZSxHQUFHMUIsV0FBVyxDQUFDbEUsR0FBRyxDQUFDLFVBQUFnRSxVQUFVLEVBQUk7SUFBQSxJQUFBNkIsb0JBQUE7SUFDcEQsSUFBSSxHQUFBQSxvQkFBQSxHQUFDN0IsVUFBVSxDQUFDSSxRQUFRLGNBQUF5QixvQkFBQSxlQUFuQkEsb0JBQUEsQ0FBcUJsRyxRQUFRLENBQUNnRSxPQUFPLENBQUMsR0FBRTtNQUMzQyxPQUFPSyxVQUFVO0lBQ25CO0lBQ0EyQixPQUFPLEdBQUcsSUFBSTtJQUNkLE9BQUFySSxhQUFBLENBQUFBLGFBQUEsS0FDSzBHLFVBQVU7TUFDYkksUUFBUSxFQUFFSixVQUFVLENBQUNJLFFBQVEsQ0FBQ25ILE1BQU0sQ0FBQyxVQUFBcUIsRUFBRTtRQUFBLE9BQUlBLEVBQUUsS0FBS3FGLE9BQU87TUFBQTtJQUFDO0VBRTlELENBQUMsQ0FBQztFQUNGLElBQUksQ0FBQ2dDLE9BQU8sRUFBRTtJQUNaLE9BQU8vQixpQkFBaUI7RUFDMUI7RUFDQSxPQUFBdEcsYUFBQSxDQUFBQSxhQUFBLEtBQ0tzRyxpQkFBaUI7SUFDcEJFLFdBQVcsRUFBQXhHLGFBQUEsQ0FBQUEsYUFBQSxLQUNOd0csV0FBVztNQUNkRyxNQUFNLEVBQUEzRyxhQUFBLENBQUFBLGFBQUEsS0FDRHdHLFdBQVcsQ0FBQ0csTUFBTTtRQUNyQkMsV0FBVyxFQUFFMEI7TUFBZTtJQUM3QjtFQUNGO0FBRUwiLCJpZ25vcmVMaXN0IjpbXX0=
|