@kando-env/kando-ui 1.2.420-alpha.6 → 1.2.420-alpha.7
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/lib/Widgets/Map/Map.js
CHANGED
|
@@ -76,10 +76,6 @@ var Map = function Map(_ref) {
|
|
|
76
76
|
onlyWithSamplerPoints = _useState8[0],
|
|
77
77
|
setOnlyWithSamplerPoints = _useState8[1];
|
|
78
78
|
var edgesCheckboxRef = (0, _react.useRef)(edgesCheckbox);
|
|
79
|
-
var _useState9 = (0, _react.useState)(false),
|
|
80
|
-
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
81
|
-
isMapReady = _useState10[0],
|
|
82
|
-
setIsMapReady = _useState10[1];
|
|
83
79
|
var hoveredEventPresent = (0, _react.useMemo)(function () {
|
|
84
80
|
return hoveredEvent !== null && hoveredEvent !== undefined;
|
|
85
81
|
}, [hoveredEvent]);
|
|
@@ -88,30 +84,30 @@ var Map = function Map(_ref) {
|
|
|
88
84
|
}, [focusedEvent]);
|
|
89
85
|
|
|
90
86
|
// Add parent layer group for all factories
|
|
87
|
+
var _useState9 = (0, _react.useState)(L.layerGroup()),
|
|
88
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 1),
|
|
89
|
+
factoriesParentGroup = _useState10[0];
|
|
91
90
|
var _useState11 = (0, _react.useState)(L.layerGroup()),
|
|
92
91
|
_useState12 = (0, _slicedToArray2.default)(_useState11, 1),
|
|
93
|
-
|
|
92
|
+
unmonitoredFactoriesGroup = _useState12[0];
|
|
94
93
|
var _useState13 = (0, _react.useState)(L.layerGroup()),
|
|
95
94
|
_useState14 = (0, _slicedToArray2.default)(_useState13, 1),
|
|
96
|
-
|
|
95
|
+
monitoredFactoriesGroup = _useState14[0];
|
|
97
96
|
var _useState15 = (0, _react.useState)(L.layerGroup()),
|
|
98
97
|
_useState16 = (0, _slicedToArray2.default)(_useState15, 1),
|
|
99
|
-
|
|
98
|
+
unmonitoredEdgesGroup = _useState16[0];
|
|
100
99
|
var _useState17 = (0, _react.useState)(L.layerGroup()),
|
|
101
100
|
_useState18 = (0, _slicedToArray2.default)(_useState17, 1),
|
|
102
|
-
|
|
101
|
+
monitoredEdgesGroup = _useState18[0];
|
|
103
102
|
var _useState19 = (0, _react.useState)(L.layerGroup()),
|
|
104
103
|
_useState20 = (0, _slicedToArray2.default)(_useState19, 1),
|
|
105
|
-
|
|
104
|
+
wwtpsLayerGroup = _useState20[0];
|
|
106
105
|
var _useState21 = (0, _react.useState)(L.layerGroup()),
|
|
107
106
|
_useState22 = (0, _slicedToArray2.default)(_useState21, 1),
|
|
108
|
-
|
|
109
|
-
var _useState23 = (0, _react.useState)(L.
|
|
107
|
+
collectorsLayerGroup = _useState22[0];
|
|
108
|
+
var _useState23 = (0, _react.useState)(new L.FeatureGroup()),
|
|
110
109
|
_useState24 = (0, _slicedToArray2.default)(_useState23, 1),
|
|
111
|
-
|
|
112
|
-
var _useState25 = (0, _react.useState)(new L.FeatureGroup()),
|
|
113
|
-
_useState26 = (0, _slicedToArray2.default)(_useState25, 1),
|
|
114
|
-
areasLayerGroup = _useState26[0];
|
|
110
|
+
areasLayerGroup = _useState24[0];
|
|
115
111
|
var renderPointMarkers = function renderPointMarkers(filteredPoints, mapRef, props) {
|
|
116
112
|
return mapRef.current !== null && points && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, Object.assign({
|
|
117
113
|
map: mapRef.current,
|
|
@@ -119,11 +115,11 @@ var Map = function Map(_ref) {
|
|
|
119
115
|
}, props));
|
|
120
116
|
};
|
|
121
117
|
var memoizedMonitoredPoints = (0, _react.useMemo)(function () {
|
|
122
|
-
if (!
|
|
118
|
+
if (!mapRef.current || !points || points.length === 0) return null;
|
|
123
119
|
var monitoredPoints = (0, _MapUtils.filterPoints)(points, {
|
|
124
120
|
onlyMonitored: true
|
|
125
121
|
});
|
|
126
|
-
|
|
122
|
+
var result = renderPointMarkers(monitoredPoints, mapRef, {
|
|
127
123
|
includeUnmonitoredPoints: true,
|
|
128
124
|
rerender: _MapUtils.zoomLevels[mapZoomLevel],
|
|
129
125
|
factoriesGroup: monitoredFactoriesGroup,
|
|
@@ -131,13 +127,14 @@ var Map = function Map(_ref) {
|
|
|
131
127
|
collectorsGroup: collectorsLayerGroup,
|
|
132
128
|
forEventsView: forEventsView
|
|
133
129
|
});
|
|
134
|
-
|
|
130
|
+
return result;
|
|
131
|
+
}, [mapRef.current, points, mapZoomLevel]);
|
|
135
132
|
var memoizedUnmonitoredPoints = (0, _react.useMemo)(function () {
|
|
136
|
-
if (!
|
|
133
|
+
if (!mapRef.current || !points || points.length === 0) return null;
|
|
137
134
|
var unmonitoredPoints = (0, _MapUtils.filterPoints)(points, {
|
|
138
135
|
onlyMonitored: false
|
|
139
136
|
});
|
|
140
|
-
|
|
137
|
+
var result = renderPointMarkers(unmonitoredPoints, mapRef, {
|
|
141
138
|
includeUnmonitoredPoints: true,
|
|
142
139
|
rerender: _MapUtils.zoomLevels[mapZoomLevel],
|
|
143
140
|
factoriesGroup: unmonitoredFactoriesGroup,
|
|
@@ -145,7 +142,8 @@ var Map = function Map(_ref) {
|
|
|
145
142
|
collectorsGroup: collectorsLayerGroup,
|
|
146
143
|
forEventsView: forEventsView
|
|
147
144
|
});
|
|
148
|
-
|
|
145
|
+
return result;
|
|
146
|
+
}, [mapRef.current, points, mapZoomLevel]);
|
|
149
147
|
var renderEdges = function renderEdges(filteredEdges, mapRef, edgesCheckbox, props) {
|
|
150
148
|
return mapRef.current !== null && edgesCheckbox && /*#__PURE__*/_react.default.createElement(_Edges.default, Object.assign({
|
|
151
149
|
edges: filteredEdges,
|
|
@@ -245,8 +243,10 @@ var Map = function Map(_ref) {
|
|
|
245
243
|
return payload;
|
|
246
244
|
};
|
|
247
245
|
var memoizedZoomControl = function memoizedZoomControl() {
|
|
248
|
-
|
|
249
|
-
|
|
246
|
+
// const payload = forEventsView
|
|
247
|
+
// ? zoomRulesForEventsView()
|
|
248
|
+
// : zoomRulesForDashaboardMaps();
|
|
249
|
+
return zoomRulesForDashaboardMaps();
|
|
250
250
|
};
|
|
251
251
|
var memoizedEvent = function memoizedEvent() {
|
|
252
252
|
if (focusedEventPresent) {
|
|
@@ -314,7 +314,6 @@ var Map = function Map(_ref) {
|
|
|
314
314
|
factoriesParentGroup.addTo(mapRef.current);
|
|
315
315
|
factoriesParentGroup.addLayer(monitoredFactoriesGroup);
|
|
316
316
|
factoriesParentGroup.addLayer(unmonitoredFactoriesGroup);
|
|
317
|
-
setIsMapReady(true);
|
|
318
317
|
}
|
|
319
318
|
trackLayerbox();
|
|
320
319
|
} else {
|
|
@@ -328,7 +327,7 @@ var Map = function Map(_ref) {
|
|
|
328
327
|
(0, _MapUtils.areaFocusLogic)(mapRef, _MapUtils.isValidArea, areaToCenterBy);
|
|
329
328
|
}
|
|
330
329
|
}
|
|
331
|
-
}, [areaToCenterBy]);
|
|
330
|
+
}, [mapRef.current, areaToCenterBy]);
|
|
332
331
|
(0, _react.useEffect)(function () {
|
|
333
332
|
var _mapRef$current;
|
|
334
333
|
var clicked = false;
|
|
@@ -368,4 +367,4 @@ var Map = function Map(_ref) {
|
|
|
368
367
|
}), renderAreas(), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent(), memoizedZoomControl(), children))));
|
|
369
368
|
};
|
|
370
369
|
exports.Map = Map;
|
|
371
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVkZ2VzQ2hlY2tib3giLCJzZXRFZGdlc0NoZWNrYm94IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJvbmx5TW9uaXRvcmVkUG9pbnRzIiwic2V0T25seU1vbml0b3JlZFBvaW50cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwib25seVdpdGhTYW1wbGVyUG9pbnRzIiwic2V0T25seVdpdGhTYW1wbGVyUG9pbnRzIiwiZWRnZXNDaGVja2JveFJlZiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsImlzTWFwUmVhZHkiLCJzZXRJc01hcFJlYWR5IiwiaG92ZXJlZEV2ZW50UHJlc2VudCIsInVzZU1lbW8iLCJ1bmRlZmluZWQiLCJmb2N1c2VkRXZlbnRQcmVzZW50IiwiX3VzZVN0YXRlMTEiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlMTIiLCJmYWN0b3JpZXNQYXJlbnRHcm91cCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJ1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsIm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsInVubW9uaXRvcmVkRWRnZXNHcm91cCIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTI1IiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMjYiLCJhcmVhc0xheWVyR3JvdXAiLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsImxlbmd0aCIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsIm9ubHlNb25pdG9yZWQiLCJyZXJlbmRlciIsInpvb21MZXZlbHMiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzIiwidW5tb25pdG9yZWRQb2ludHMiLCJyZW5kZXJFZGdlcyIsImZpbHRlcmVkRWRnZXMiLCJtZW1vaXplZEVkZ2VzIiwibW9uaXRvcmVkRWRnZXMiLCJmaWx0ZXJFZGdlcyIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJncm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyIsInVubW9uaXRvcmVkRWRnZXMiLCJoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlIiwiaXNDaGVja2VkIiwiZWRnZXNab29tTGV2ZWxzIiwiaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UiLCJ6b29tIiwiZ2V0Wm9vbSIsInJlbW92ZUxheWVyIiwicmVtb3ZlRnJvbSIsImFkZExheWVyIiwiaW5jbHVkZXMiLCJhZGRUbyIsImhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UiLCJyZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyIiwiZWFjaExheWVyIiwibGF5ZXIiLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJjbGVhckxheWVycyIsIlRpbGVMYXllciIsIndhdGVyQXV0aG9yaXR5SWQiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudCIsImNsaWNrZWQiLCJrYW5kb19vYmplY3RfaWQiLCJpc1BvcHVwT3BlbiIsIk1hcmtlciIsImZpcmUiLCJQb2x5Z29uIiwicmVuZGVyQXJlYXMiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsIkFyZWFQb2x5Z29ucyIsIm1hcFpvb20iLCJmZWF0dXJlR3JvdXAiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJzaWRlbmF2RXhwYW5kZWQiLCJpZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgJ2xlYWZsZXQubWFya2VyY2x1c3Rlcic7XG5pbXBvcnQgJ2xlYWZsZXQucGF0dGVybic7XG5pbXBvcnQgJ2xlYWZsZXQuaGVhdCc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnc3JjL3V0aWxpdGllcy9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCB7IEFyZWFQb2x5Z29ucyB9IGZyb20gJy4vYXJlYXMvQXJlYVBvbHlnb25zJztcbmltcG9ydCBFZGdlcyBmcm9tICcuL2VkZ2VzL0VkZ2VzJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgJy4vcG9pbnRzL1BvaW50SWNvbi5zY3NzJztcbmltcG9ydCB7IFBvaW50TWFya2VycyB9IGZyb20gJy4vcG9pbnRzL1BvaW50TWFya2Vycyc7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gJy4vZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7XG4gIGFyZWFGb2N1c0xvZ2ljLFxuICBmaWx0ZXJFZGdlcyxcbiAgZmlsdGVyUG9pbnRzLFxuICBpbml0aWFsaXplTWFwLFxuICBpc1ZhbGlkQXJlYSxcbiAgc2V0dXBDaGVja2JveExpc3RlbmVyLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xuaW1wb3J0IHsgY2xlYXJBcmVhcyB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9hY3Rpb25zJztcbmltcG9ydCB7IGNsZWFyUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbnJlcXVpcmUoJ2xlYWZsZXQubWFya2VyY2x1c3RlcicpO1xuXG5pbnRlcmZhY2UgTWFwUHJvcHMge1xuICBhcmVhczogSUFyZWFbXTtcbiAgZWRnZXM/OiBJRWRnZVtdO1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgYXJlYVRvQ2VudGVyQnk/OiBhbnk7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhvdmVyZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIG1hcEJveFN0eWxlPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IGFueTtcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM/OiBib29sZWFuO1xuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzPzogYm9vbGVhbjtcbiAgZm9yRXZlbnRzVmlldzogYm9vbGVhbjtcbiAgZm9yV1dUUERhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIGFyZWFzLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBnbG9iYWxfZGF0YSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIGZvY3VzZWRFdmVudCxcbiAgaG92ZXJlZEV2ZW50LFxuICBoaWRlRWRnZXMgPSBmYWxzZSxcbiAgbWFwQm94U3R5bGUgPSBsZWFmbGV0TWFwLm1hcERlZmF1bHQsXG4gIGNoaWxkcmVuLFxuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSB0cnVlLFxuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzID0gZmFsc2UsXG4gIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgc3R5bGUgPSB7fSxcbiAgZm9yV1dUUERhc2hib2FyZCA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCB7IG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxMLk1hcCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFttYXBab29tTGV2ZWwsIHNldE1hcFpvb21MZXZlbF0gPSB1c2VTdGF0ZSgyKTtcbiAgY29uc3QgeyBzZWxlY3RlZEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCBbZWRnZXNDaGVja2JveCwgc2V0RWRnZXNDaGVja2JveF0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW29ubHlNb25pdG9yZWRQb2ludHMsIHNldE9ubHlNb25pdG9yZWRQb2ludHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb25seVdpdGhTYW1wbGVyUG9pbnRzLCBzZXRPbmx5V2l0aFNhbXBsZXJQb2ludHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBlZGdlc0NoZWNrYm94UmVmID0gdXNlUmVmKGVkZ2VzQ2hlY2tib3gpO1xuICBjb25zdCBbaXNNYXBSZWFkeSwgc2V0SXNNYXBSZWFkeV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIC8vIEFkZCBwYXJlbnQgbGF5ZXIgZ3JvdXAgZm9yIGFsbCBmYWN0b3JpZXNcbiAgY29uc3QgW2ZhY3Rvcmllc1BhcmVudEdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG5cbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnMgbWFwPXttYXBSZWYuY3VycmVudH0gcG9pbnRzPXtmaWx0ZXJlZFBvaW50c30gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRNb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWlzTWFwUmVhZHkgfHwgIW1hcFJlZi5jdXJyZW50IHx8ICFwb2ludHMgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgeyBvbmx5TW9uaXRvcmVkOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIHJlbmRlclBvaW50TWFya2Vycyhtb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiBtb25pdG9yZWRGYWN0b3JpZXNHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3LFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBtYXBab29tTGV2ZWwsIG9ubHlXaXRoU2FtcGxlclBvaW50c10pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICAhaXNNYXBSZWFkeSB8fFxuICAgICAgIW1hcFJlZi5jdXJyZW50IHx8XG4gICAgICBvbmx5TW9uaXRvcmVkUG9pbnRzIHx8XG4gICAgICAhcG9pbnRzIHx8XG4gICAgICBwb2ludHMubGVuZ3RoID09PSAwXG4gICAgKVxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB1bm1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHsgb25seU1vbml0b3JlZDogZmFsc2UgfSk7XG5cbiAgICByZXR1cm4gcmVuZGVyUG9pbnRNYXJrZXJzKHVubW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogdHJ1ZSxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3LFxuICAgIH0pO1xuICB9LCBbaXNNYXBSZWFkeSwgbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgbWFwWm9vbUxldmVsLCBvbmx5TW9uaXRvcmVkUG9pbnRzXSk7XG5cbiAgY29uc3QgcmVuZGVyRWRnZXMgPSAoZmlsdGVyZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCBwcm9wcykgPT5cbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIGVkZ2VzQ2hlY2tib3ggJiYgKFxuICAgICAgPEVkZ2VzIGVkZ2VzPXtmaWx0ZXJlZEVkZ2VzfSBtYXA9e21hcFJlZi5jdXJyZW50fSB7Li4ucHJvcHN9IC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbW9uaXRvcmVkRWRnZXMgPSBmaWx0ZXJFZGdlcyhlZGdlcywgcG9pbnRzLCB0cnVlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXMobW9uaXRvcmVkRWRnZXMsIG1hcFJlZiwgZWRnZXNDaGVja2JveCwge1xuICAgICAgTCxcbiAgICAgIHBvaW50cyxcbiAgICAgIGhpZGVFZGdlczogZmFsc2UsXG4gICAgICBoaWRlQXJyb3dzOiB0cnVlLFxuICAgICAgYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzOiBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzLFxuICAgICAgZ3JvdXA6IG1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIGVkZ2VzQ2hlY2tib3gsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChvbmx5TW9uaXRvcmVkUG9pbnRzIHx8IG9ubHlXaXRoU2FtcGxlclBvaW50cykgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB1bm1vbml0b3JlZEVkZ2VzID0gZmlsdGVyRWRnZXMoZWRnZXMsIHBvaW50cywgZmFsc2UpO1xuICAgIHJldHVybiByZW5kZXJFZGdlcyh1bm1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIGVkZ2VzQ2hlY2tib3gsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0RWRnZXNDaGVja2JveChpc0NoZWNrZWQpO1xuICB9O1xuXG4gIC8vIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSB6b29tIGxldmVscyB0aGUgZWRnZXMgYXJlIGRpc3BsYXllZFxuICAvLyBJdCBpcyB1c2VkIGluIHR3byBwbGFjZXMgaW4gdGhlIGNvZGUsIHNvIGl0IGlzIGJldHRlciB0byBzdG9yZSBpdCBpbiBvbmUgcGxhY2VcbiAgY29uc3QgZWRnZXNab29tTGV2ZWxzID0gWydTbWFsbCcsICdNZWRpdW0nLCAnTUxhcmdlJywgJ0xhcmdlJ107XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0T25seU1vbml0b3JlZFBvaW50cyhpc0NoZWNrZWQpO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyBjaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaG93IGFsbCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyB1bmNoZWNrZWRcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG5cbiAgICAgICAgLy8gU2hvdyB1bm1vbml0b3JlZCBlZGdlcyBpZiBhdCBhcHByb3ByaWF0ZSB6b29tIGxldmVsXG4gICAgICAgIGlmIChlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgJiYgZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb20pKSB7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNXaXRoU2FtcGxlckNoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldE9ubHlXaXRoU2FtcGxlclBvaW50cyhpc0NoZWNrZWQpO1xuXG4gICAgY29uc3QgcmVtb3ZlUG9pbnRzV2l0aE5vU2FtcGxlciA9IChncm91cCkgPT4ge1xuICAgICAgZ3JvdXAuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICBpZiAobGF5ZXJbJ2thbmRvX2hhc19zYW1wbGVyJ10gPT09IGZhbHNlKSB7XG4gICAgICAgICAgZ3JvdXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIobW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKHd3dHBzTGF5ZXJHcm91cCk7XG4gICAgICAgIHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuXG4gICAgICAgIC8vIFNob3cgdW5tb25pdG9yZWQgZWRnZXMgaWYgYXQgYXBwcm9wcmlhdGUgem9vbSBsZXZlbFxuICAgICAgICBpZiAoZWRnZXNDaGVja2JveFJlZi5jdXJyZW50ICYmIGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tKSkge1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhY2tMYXllcmJveCA9ICgpID0+IHtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoJyNlZGdlcy1jaGVja2JveCcsIGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UpO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy1jaGVja2JveCcsXG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSxcbiAgICApO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy13aXRoLXNhbXBsZXItY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c31cbiAgICAgICAge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICBpZiAoZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkpIHtcbiAgICAgIHBheWxvYWQgPSB6b29tUnVsZXNGb3JFdmVudHNWaWV3KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9ICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gZm9yRXZlbnRzVmlld1xuICAgICAgPyB6b29tUnVsZXNGb3JFdmVudHNWaWV3KClcbiAgICAgIDogem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gKCkgPT4ge1xuICAgIGlmIChmb2N1c2VkRXZlbnRQcmVzZW50KSB7XG4gICAgICBmb2N1c2VkRXZlbnQhLmZvY3VzZWQgPSBmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgICAgZm9jdXNlZEV2ZW50IS5ob3ZlcmVkID0gIWZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGhvdmVyZWRFdmVudCEuaG92ZXJlZCA9IGhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgICBob3ZlcmVkRXZlbnQhLmZvY3VzZWQgPSAhaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoIWhvdmVyZWRFdmVudFByZXNlbnQgJiYgIWZvY3VzZWRFdmVudFByZXNlbnQpIHJldHVybiA8PjwvPjtcbiAgICByZXR1cm4gKFxuICAgICAgPEV2ZW50XG4gICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnQhIHx8IGhvdmVyZWRFdmVudCF9XG4gICAgICAgIG1hcD17bWFwfVxuICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgIGluY2x1ZGVOZXR3b3JrPXshaG92ZXJlZEV2ZW50UHJlc2VudH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGVkZ2VzQ2hlY2tib3hSZWYuY3VycmVudCA9IGVkZ2VzQ2hlY2tib3g7XG4gIH0sIFtlZGdlc0NoZWNrYm94XSk7XG5cbiAgLy8gdXNlRWZmZWN0KCgpID0+IHtcbiAgLy8gICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgLy8gICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gIC8vICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAvLyAgIH07XG4gIC8vIH0sIFtmb2N1c2VkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgaWYgKGZvckV2ZW50c1ZpZXcgJiYgbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJQb2ludHMoKSk7XG4gICAgICAgIGRpc3BhdGNoKGNsZWFyQXJlYXMoKSk7XG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihtb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihmYWN0b3JpZXNQYXJlbnRHcm91cCk7XG5cbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuVGlsZUxheWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50IGZhY3RvcnkgZ3JvdXBcbiAgICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG4gICAgICAgIHNldElzTWFwUmVhZHkodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FyZWFUb0NlbnRlckJ5XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChjbGlja2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXI/LmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRJdGVtICYmXG4gICAgICAgIGxheWVyLmlzUG9wdXBPcGVuKCkgPT09IGZhbHNlXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5Z29uKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2stZXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjbGlja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIGNvbnN0IHJlbmRlckFyZWFzID0gKCkgPT4ge1xuICAgIGlmICghc2hvdWxkTG9hZE1hcE9iamVjdHMoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgZWRnZXMsIHBvaW50cykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgTD17TH1cbiAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtyZW5kZXJBcmVhcygpfVxuICAgICAgICAgIHtzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzKFxuICAgICAgICAgICAgZWRnZXMsXG4gICAgICAgICAgICBhcmVhcyxcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLFxuICAgICAgICAgICAgbWFwUmVmLFxuICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICkgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge21lbW9pemVkRXZlbnQoKX1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2woKX1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxDQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQU9BLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQU1BLElBQUFHLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFXQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxRQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxTQUFBLEdBQUFiLE9BQUE7QUFBdUQsU0FBQWMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdB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
|
|
370
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVkZ2VzQ2hlY2tib3giLCJzZXRFZGdlc0NoZWNrYm94IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJvbmx5TW9uaXRvcmVkUG9pbnRzIiwic2V0T25seU1vbml0b3JlZFBvaW50cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwib25seVdpdGhTYW1wbGVyUG9pbnRzIiwic2V0T25seVdpdGhTYW1wbGVyUG9pbnRzIiwiZWRnZXNDaGVja2JveFJlZiIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsIl91c2VTdGF0ZTkiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlMTAiLCJmYWN0b3JpZXNQYXJlbnRHcm91cCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInVubW9uaXRvcmVkRWRnZXNHcm91cCIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIzIiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMjQiLCJhcmVhc0xheWVyR3JvdXAiLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsImxlbmd0aCIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsIm9ubHlNb25pdG9yZWQiLCJyZXN1bHQiLCJyZXJlbmRlciIsInpvb21MZXZlbHMiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzIiwidW5tb25pdG9yZWRQb2ludHMiLCJyZW5kZXJFZGdlcyIsImZpbHRlcmVkRWRnZXMiLCJtZW1vaXplZEVkZ2VzIiwibW9uaXRvcmVkRWRnZXMiLCJmaWx0ZXJFZGdlcyIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJncm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyIsInVubW9uaXRvcmVkRWRnZXMiLCJoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlIiwiaXNDaGVja2VkIiwiZWRnZXNab29tTGV2ZWxzIiwiaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UiLCJ6b29tIiwiZ2V0Wm9vbSIsInJlbW92ZUxheWVyIiwicmVtb3ZlRnJvbSIsImFkZExheWVyIiwiaW5jbHVkZXMiLCJhZGRUbyIsImhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UiLCJyZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyIiwiZWFjaExheWVyIiwibGF5ZXIiLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJjbGVhckxheWVycyIsIlRpbGVMYXllciIsIndhdGVyQXV0aG9yaXR5SWQiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudCIsImNsaWNrZWQiLCJrYW5kb19vYmplY3RfaWQiLCJpc1BvcHVwT3BlbiIsIk1hcmtlciIsImZpcmUiLCJQb2x5Z29uIiwicmVuZGVyQXJlYXMiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsIkFyZWFQb2x5Z29ucyIsIm1hcFpvb20iLCJmZWF0dXJlR3JvdXAiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJzaWRlbmF2RXhwYW5kZWQiLCJpZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgJ2xlYWZsZXQubWFya2VyY2x1c3Rlcic7XG5pbXBvcnQgJ2xlYWZsZXQucGF0dGVybic7XG5pbXBvcnQgJ2xlYWZsZXQuaGVhdCc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnc3JjL3V0aWxpdGllcy9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCB7IEFyZWFQb2x5Z29ucyB9IGZyb20gJy4vYXJlYXMvQXJlYVBvbHlnb25zJztcbmltcG9ydCBFZGdlcyBmcm9tICcuL2VkZ2VzL0VkZ2VzJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgJy4vcG9pbnRzL1BvaW50SWNvbi5zY3NzJztcbmltcG9ydCB7IFBvaW50TWFya2VycyB9IGZyb20gJy4vcG9pbnRzL1BvaW50TWFya2Vycyc7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gJy4vZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7XG4gIGFyZWFGb2N1c0xvZ2ljLFxuICBmaWx0ZXJFZGdlcyxcbiAgZmlsdGVyUG9pbnRzLFxuICBpbml0aWFsaXplTWFwLFxuICBpc1ZhbGlkQXJlYSxcbiAgc2V0dXBDaGVja2JveExpc3RlbmVyLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xuaW1wb3J0IHsgY2xlYXJBcmVhcyB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9hY3Rpb25zJztcbmltcG9ydCB7IGNsZWFyUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbnJlcXVpcmUoJ2xlYWZsZXQubWFya2VyY2x1c3RlcicpO1xuXG5pbnRlcmZhY2UgTWFwUHJvcHMge1xuICBhcmVhczogSUFyZWFbXTtcbiAgZWRnZXM/OiBJRWRnZVtdO1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgYXJlYVRvQ2VudGVyQnk/OiBhbnk7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhvdmVyZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIG1hcEJveFN0eWxlPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IGFueTtcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM/OiBib29sZWFuO1xuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzPzogYm9vbGVhbjtcbiAgZm9yRXZlbnRzVmlldzogYm9vbGVhbjtcbiAgZm9yV1dUUERhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIGFyZWFzLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBnbG9iYWxfZGF0YSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIGZvY3VzZWRFdmVudCxcbiAgaG92ZXJlZEV2ZW50LFxuICBoaWRlRWRnZXMgPSBmYWxzZSxcbiAgbWFwQm94U3R5bGUgPSBsZWFmbGV0TWFwLm1hcERlZmF1bHQsXG4gIGNoaWxkcmVuLFxuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSB0cnVlLFxuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzID0gZmFsc2UsXG4gIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgc3R5bGUgPSB7fSxcbiAgZm9yV1dUUERhc2hib2FyZCA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCB7IG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxMLk1hcCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFttYXBab29tTGV2ZWwsIHNldE1hcFpvb21MZXZlbF0gPSB1c2VTdGF0ZSgyKTtcbiAgY29uc3QgeyBzZWxlY3RlZEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCBbZWRnZXNDaGVja2JveCwgc2V0RWRnZXNDaGVja2JveF0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW29ubHlNb25pdG9yZWRQb2ludHMsIHNldE9ubHlNb25pdG9yZWRQb2ludHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb25seVdpdGhTYW1wbGVyUG9pbnRzLCBzZXRPbmx5V2l0aFNhbXBsZXJQb2ludHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBlZGdlc0NoZWNrYm94UmVmID0gdXNlUmVmKGVkZ2VzQ2hlY2tib3gpO1xuXG4gIGNvbnN0IGhvdmVyZWRFdmVudFByZXNlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gaG92ZXJlZEV2ZW50ICE9PSBudWxsICYmIGhvdmVyZWRFdmVudCAhPT0gdW5kZWZpbmVkO1xuICB9LCBbaG92ZXJlZEV2ZW50XSk7XG5cbiAgY29uc3QgZm9jdXNlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgZm9jdXNlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtmb2N1c2VkRXZlbnRdKTtcblxuICAvLyBBZGQgcGFyZW50IGxheWVyIGdyb3VwIGZvciBhbGwgZmFjdG9yaWVzXG4gIGNvbnN0IFtmYWN0b3JpZXNQYXJlbnRHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFt1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEZhY3Rvcmllc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRWRnZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFttb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3d3dHBzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFtjb2xsZWN0b3JzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFthcmVhc0xheWVyR3JvdXBdID0gdXNlU3RhdGUobmV3IEwuRmVhdHVyZUdyb3VwKCkpO1xuXG4gIGNvbnN0IHJlbmRlclBvaW50TWFya2VycyA9IChmaWx0ZXJlZFBvaW50cywgbWFwUmVmLCBwcm9wcykgPT5cbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIHBvaW50cyAmJiAoXG4gICAgICA8UG9pbnRNYXJrZXJzIG1hcD17bWFwUmVmLmN1cnJlbnR9IHBvaW50cz17ZmlsdGVyZWRQb2ludHN9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkTW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCB8fCAhcG9pbnRzIHx8IHBvaW50cy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgeyBvbmx5TW9uaXRvcmVkOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gcmVuZGVyUG9pbnRNYXJrZXJzKG1vbml0b3JlZFBvaW50cywgbWFwUmVmLCB7XG4gICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM6IHRydWUsXG4gICAgICByZXJlbmRlcjogem9vbUxldmVsc1ttYXBab29tTGV2ZWxdLFxuICAgICAgZmFjdG9yaWVzR3JvdXA6IG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQgfHwgIXBvaW50cyB8fCBwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IHVubW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgeyBvbmx5TW9uaXRvcmVkOiBmYWxzZSB9KTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHJlbmRlclBvaW50TWFya2Vycyh1bm1vbml0b3JlZFBvaW50cywgbWFwUmVmLCB7XG4gICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM6IHRydWUsXG4gICAgICByZXJlbmRlcjogem9vbUxldmVsc1ttYXBab29tTGV2ZWxdLFxuICAgICAgZmFjdG9yaWVzR3JvdXA6IHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICB3d3Rwc0dyb3VwOiB3d3Rwc0xheWVyR3JvdXAsXG4gICAgICBjb2xsZWN0b3JzR3JvdXA6IGNvbGxlY3RvcnNMYXllckdyb3VwLFxuICAgICAgZm9yRXZlbnRzVmlldyxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCByZW5kZXJFZGdlcyA9IChmaWx0ZXJlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICA8RWRnZXMgZWRnZXM9e2ZpbHRlcmVkRWRnZXN9IG1hcD17bWFwUmVmLmN1cnJlbnR9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIHRydWUpO1xuXG4gICAgcmV0dXJuIHJlbmRlckVkZ2VzKG1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBlZGdlc0NoZWNrYm94LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAob25seU1vbml0b3JlZFBvaW50cyB8fCBvbmx5V2l0aFNhbXBsZXJQb2ludHMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcblxuICAgIHJldHVybiByZW5kZXJFZGdlcyh1bm1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIGVkZ2VzQ2hlY2tib3gsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0RWRnZXNDaGVja2JveChpc0NoZWNrZWQpO1xuICB9O1xuXG4gIC8vIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSB6b29tIGxldmVscyB0aGUgZWRnZXMgYXJlIGRpc3BsYXllZFxuICAvLyBJdCBpcyB1c2VkIGluIHR3byBwbGFjZXMgaW4gdGhlIGNvZGUsIHNvIGl0IGlzIGJldHRlciB0byBzdG9yZSBpdCBpbiBvbmUgcGxhY2VcbiAgY29uc3QgZWRnZXNab29tTGV2ZWxzID0gWydTbWFsbCcsICdNZWRpdW0nLCAnTUxhcmdlJywgJ0xhcmdlJ107XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0T25seU1vbml0b3JlZFBvaW50cyhpc0NoZWNrZWQpO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyBjaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaG93IGFsbCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyB1bmNoZWNrZWRcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG5cbiAgICAgICAgLy8gU2hvdyB1bm1vbml0b3JlZCBlZGdlcyBpZiBhdCBhcHByb3ByaWF0ZSB6b29tIGxldmVsXG4gICAgICAgIGlmIChlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgJiYgZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb20pKSB7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNXaXRoU2FtcGxlckNoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldE9ubHlXaXRoU2FtcGxlclBvaW50cyhpc0NoZWNrZWQpO1xuXG4gICAgY29uc3QgcmVtb3ZlUG9pbnRzV2l0aE5vU2FtcGxlciA9IChncm91cCkgPT4ge1xuICAgICAgZ3JvdXAuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICBpZiAobGF5ZXJbJ2thbmRvX2hhc19zYW1wbGVyJ10gPT09IGZhbHNlKSB7XG4gICAgICAgICAgZ3JvdXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIobW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKHd3dHBzTGF5ZXJHcm91cCk7XG4gICAgICAgIHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuXG4gICAgICAgIC8vIFNob3cgdW5tb25pdG9yZWQgZWRnZXMgaWYgYXQgYXBwcm9wcmlhdGUgem9vbSBsZXZlbFxuICAgICAgICBpZiAoZWRnZXNDaGVja2JveFJlZi5jdXJyZW50ICYmIGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tKSkge1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhY2tMYXllcmJveCA9ICgpID0+IHtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoJyNlZGdlcy1jaGVja2JveCcsIGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UpO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy1jaGVja2JveCcsXG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSxcbiAgICApO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy13aXRoLXNhbXBsZXItY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c31cbiAgICAgICAge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICBpZiAoZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkpIHtcbiAgICAgIHBheWxvYWQgPSB6b29tUnVsZXNGb3JFdmVudHNWaWV3KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9ICgpID0+IHtcbiAgICAvLyBjb25zdCBwYXlsb2FkID0gZm9yRXZlbnRzVmlld1xuICAgIC8vICAgPyB6b29tUnVsZXNGb3JFdmVudHNWaWV3KClcbiAgICAvLyAgIDogem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcbiAgICByZXR1cm4gem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcbiAgfTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gKCkgPT4ge1xuICAgIGlmIChmb2N1c2VkRXZlbnRQcmVzZW50KSB7XG4gICAgICBmb2N1c2VkRXZlbnQhLmZvY3VzZWQgPSBmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgICAgZm9jdXNlZEV2ZW50IS5ob3ZlcmVkID0gIWZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGhvdmVyZWRFdmVudCEuaG92ZXJlZCA9IGhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgICBob3ZlcmVkRXZlbnQhLmZvY3VzZWQgPSAhaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoIWhvdmVyZWRFdmVudFByZXNlbnQgJiYgIWZvY3VzZWRFdmVudFByZXNlbnQpIHJldHVybiA8PjwvPjtcblxuICAgIHJldHVybiAoXG4gICAgICA8RXZlbnRcbiAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudCEgfHwgaG92ZXJlZEV2ZW50IX1cbiAgICAgICAgbWFwPXttYXB9XG4gICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgaW5jbHVkZU5ldHdvcms9eyFob3ZlcmVkRXZlbnRQcmVzZW50fVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZWRnZXNDaGVja2JveFJlZi5jdXJyZW50ID0gZWRnZXNDaGVja2JveDtcbiAgfSwgW2VkZ2VzQ2hlY2tib3hdKTtcblxuICAvLyB1c2VFZmZlY3QoKCkgPT4ge1xuICAvLyAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAvLyAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgLy8gICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gIC8vICAgfTtcbiAgLy8gfSwgW2ZvY3VzZWRFdmVudCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBpZiAoZm9yRXZlbnRzVmlldyAmJiBtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBkaXNwYXRjaChjbGVhclBvaW50cygpKTtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJBcmVhcygpKTtcbiAgICAgICAgd3d0cHNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGFyZWFzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIG1vbml0b3JlZEVkZ2VzR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRWRnZXNHcm91cCk7XG4gICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKG1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJHcm91cCk7XG4gICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGZhY3Rvcmllc1BhcmVudEdyb3VwKTtcblxuICAgICAgICBtYXBSZWYuY3VycmVudC5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5UaWxlTGF5ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICBmb3JXV1RQRGFzaGJvYXJkLFxuICAgICAgICB0cnVlLFxuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgKTtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSBwYXJlbnQgZmFjdG9yeSBncm91cFxuICAgICAgaWYgKG1hcFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIobW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgIH1cblxuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRNYXBab29tTGV2ZWwobWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpKTtcbiAgICAgIGlmICghYXJlYVRvQ2VudGVyQnkpIHtcbiAgICAgICAgYXJlYVRvQ2VudGVyQnkgPSBhcmVhcy5tYXAoKGFyZWEpID0+IGFyZWEuc2hhcGVfZGF0YSkuZmxhdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWZvY3VzZWRFdmVudCkge1xuICAgICAgICBhcmVhRm9jdXNMb2dpYyhtYXBSZWYsIGlzVmFsaWRBcmVhLCBhcmVhVG9DZW50ZXJCeSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbbWFwUmVmLmN1cnJlbnQsIGFyZWFUb0NlbnRlckJ5XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChjbGlja2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXI/LmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRJdGVtICYmXG4gICAgICAgIGxheWVyLmlzUG9wdXBPcGVuKCkgPT09IGZhbHNlXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5Z29uKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2stZXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjbGlja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIGNvbnN0IHJlbmRlckFyZWFzID0gKCkgPT4ge1xuICAgIGlmICghc2hvdWxkTG9hZE1hcE9iamVjdHMoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgZWRnZXMsIHBvaW50cykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgTD17TH1cbiAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtyZW5kZXJBcmVhcygpfVxuICAgICAgICAgIHtzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzKFxuICAgICAgICAgICAgZWRnZXMsXG4gICAgICAgICAgICBhcmVhcyxcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLFxuICAgICAgICAgICAgbWFwUmVmLFxuICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICkgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge21lbW9pemVkRXZlbnQoKX1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2woKX1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxDQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQU9BLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQU1BLElBQUFHLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFXQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxRQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxTQUFBLEdBQUFiLE9BQUE7QUFBdUQsU0FBQWMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFoQix3QkFBQW9CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJB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
|
|
@@ -18,9 +18,7 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
18
18
|
factoriesGroup = props.factoriesGroup,
|
|
19
19
|
wwtpsGroup = props.wwtpsGroup,
|
|
20
20
|
collectorsGroup = props.collectorsGroup,
|
|
21
|
-
rerender = props.rerender
|
|
22
|
-
_props$forEventsView = props.forEventsView,
|
|
23
|
-
forEventsView = _props$forEventsView === void 0 ? false : _props$forEventsView;
|
|
21
|
+
rerender = props.rerender;
|
|
24
22
|
|
|
25
23
|
// This function is used to determine if a point should be included in the map.
|
|
26
24
|
var isPointBelongToGroupTypes = function isPointBelongToGroupTypes(point) {
|
|
@@ -43,9 +41,11 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
43
41
|
return filterStatement(point);
|
|
44
42
|
});
|
|
45
43
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
|
|
45
|
+
// const globalData = useSelector(
|
|
46
|
+
// (state: ReturnType<typeof appReducer>) => state.global_data,
|
|
47
|
+
// );
|
|
48
|
+
|
|
49
49
|
var userInfo = (0, _reactRedux.useSelector)(function (state) {
|
|
50
50
|
return state.permissions.user_info;
|
|
51
51
|
});
|
|
@@ -124,35 +124,37 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
124
124
|
|
|
125
125
|
(0, _react.useEffect)(function () {
|
|
126
126
|
if (map) {
|
|
127
|
-
if (forEventsView) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
} else {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
127
|
+
// if (forEventsView) {
|
|
128
|
+
// // In events view, always show all layers
|
|
129
|
+
// addLayerGroup(map, factoriesGroup);
|
|
130
|
+
// addLayerGroup(map, wwtpsGroup);
|
|
131
|
+
// addLayerGroup(map, collectorsGroup);
|
|
132
|
+
// } else {
|
|
133
|
+
switch (rerender) {
|
|
134
|
+
case 'XLarge':
|
|
135
|
+
(0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
|
|
136
|
+
// factories group has a parent layer in map.tsx
|
|
137
|
+
// so we don't need to remove it here
|
|
138
|
+
// removeLayerGroup(map, factoriesGroup);
|
|
139
|
+
(0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
|
|
140
|
+
(0, _PointUtils.removeLayerGroup)(map, factoriesGroup);
|
|
141
|
+
break;
|
|
142
|
+
case 'Large':
|
|
143
|
+
case 'MLarge':
|
|
144
|
+
case 'Medium':
|
|
145
|
+
case 'Small':
|
|
146
|
+
// we are handling factoriesParentGroup in map.tsx
|
|
147
|
+
// addLayerGroup(map, factoriesGroup);
|
|
148
|
+
(0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
|
|
149
|
+
(0, _PointUtils.addLayerGroup)(map, collectorsGroup);
|
|
150
|
+
(0, _PointUtils.addLayerGroup)(map, factoriesGroup);
|
|
151
|
+
break;
|
|
152
|
+
default:
|
|
153
|
+
break;
|
|
153
154
|
}
|
|
155
|
+
// }
|
|
154
156
|
}
|
|
155
|
-
}, [rerender,
|
|
157
|
+
}, [rerender, points]);
|
|
156
158
|
return /*#__PURE__*/_react.default.createElement("div", null, points.length !== 0 && filteredPoints().map(function (point) {
|
|
157
159
|
return /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
|
|
158
160
|
map: map,
|
|
@@ -165,4 +167,4 @@ var PointMarkers = function PointMarkers(props) {
|
|
|
165
167
|
}));
|
|
166
168
|
};
|
|
167
169
|
exports.PointMarkers = PointMarkers;
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BvaW50VXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiUG9pbnRNYXJrZXJzIiwicHJvcHMiLCJwb2ludHMiLCJtYXAiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJyZXJlbmRlciIsIl9wcm9wcyRmb3JFdmVudHNWaWV3IiwiZm9yRXZlbnRzVmlldyIsImlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMiLCJwb2ludCIsInBvaW50SXNXV1RQIiwicG9pbnRJc0ZhY3RvcnkiLCJncm91cCIsInR5cGUiLCJoYXNfZGV2aWNlIiwicG9pbnRIYXNDb29yZGluYXRlcyIsImxhdCIsImxhdGl0dWRlIiwibG5nIiwibG9uZ2l0dWRlIiwiaXNWYWxpZCIsImlzTmFOIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJpZCIsImZpbHRlclN0YXRlbWVudCIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwiZ2xvYmFsRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJnbG9iYWxfZGF0YSIsInVzZXJJbmZvIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJ1c2VFZmZlY3QiLCJhZGRMYXllckdyb3VwIiwicmVtb3ZlTGF5ZXJHcm91cCIsImNyZWF0ZUVsZW1lbnQiLCJsZW5ndGgiLCJsYXllckdyb3VwIiwiZmxvd1JhdGVVbml0IiwiZmxvd19yYXRlX3VuaXQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludE1hcmtlcnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IFBvaW50TWFya2VyIGZyb20gJy4vUG9pbnRNYXJrZXInO1xuaW1wb3J0IHtcbiAgYWRkTGF5ZXJHcm91cCxcbiAgcmVtb3ZlTGF5ZXJHcm91cCxcbiAgcG9pbnRJc0ZhY3RvcnksXG4gIHBvaW50SXNXV1RQLFxufSBmcm9tICcuL1BvaW50VXRpbHMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnc3JjL3N0b3JlL3Jvb3RSZWR1Y2VyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgbWFwOiBhbnk7XG4gIHBvaW50czogYW55O1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM6IGJvb2xlYW47XG4gIHJlcmVuZGVyOiBzdHJpbmc7XG4gIGZhY3Rvcmllc0dyb3VwOiBhbnk7XG4gIHd3dHBzR3JvdXA6IGFueTtcbiAgY29sbGVjdG9yc0dyb3VwOiBhbnk7XG4gIGZvckV2ZW50c1ZpZXc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgUG9pbnRNYXJrZXJzOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIHBvaW50cyxcbiAgICBtYXAsXG4gICAgZmFjdG9yaWVzR3JvdXAsXG4gICAgd3d0cHNHcm91cCxcbiAgICBjb2xsZWN0b3JzR3JvdXAsXG4gICAgcmVyZW5kZXIsXG4gICAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICB9ID0gcHJvcHM7XG5cbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIHBvaW50IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgbWFwLlxuICBjb25zdCBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnRJc1dXVFAocG9pbnQpIHx8XG4gICAgICBwb2ludElzRmFjdG9yeShwb2ludCkgfHxcbiAgICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJyAmJiBwb2ludC5oYXNfZGV2aWNlKSB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6UHVtcFN0YXRpb24nXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBwb2ludEhhc0Nvb3JkaW5hdGVzID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICBjb25zdCBsYXQgPSBwb2ludC5sYXRpdHVkZTtcbiAgICBjb25zdCBsbmcgPSBwb2ludC5sb25naXR1ZGU7XG4gICAgY29uc3QgaXNWYWxpZCA9XG4gICAgICB0eXBlb2YgbGF0ID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIGxuZyA9PT0gJ251bWJlcicgJiZcbiAgICAgICFpc05hTihsYXQpICYmXG4gICAgICAhaXNOYU4obG5nKTtcbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihgUG9pbnQgJHtwb2ludC5pZH0gaGFzIGludmFsaWQgY29vcmRpbmF0ZXM6ICR7bGF0fSwgJHtsbmd9YCk7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlclN0YXRlbWVudCA9IChwb2ludCkgPT4ge1xuICAgIHJldHVybiBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzKHBvaW50KSAmJiBwb2ludEhhc0Nvb3JkaW5hdGVzKHBvaW50KTtcbiAgfTtcblxuICBjb25zdCBmaWx0ZXJlZFBvaW50cyA9ICgpID0+IHtcbiAgICByZXR1cm4gcG9pbnRzLmZpbHRlcigocG9pbnQ6IElQb2ludCkgPT4gZmlsdGVyU3RhdGVtZW50KHBvaW50KSk7XG4gIH07XG5cbiAgY29uc3QgZ2xvYmFsRGF0YSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLmdsb2JhbF9kYXRhLFxuICApO1xuXG4gIGNvbnN0IHVzZXJJbmZvID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5wZXJtaXNzaW9ucy51c2VyX2luZm8pO1xuXG4gIC8vIGNvbnN0IFtsYXllcnNUb1JlbW92ZSwgc2V0TGF5ZXJzVG9SZW1vdmVdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcblxuICAvLyBjb25zdCByZW1vdmVFdmVudFBvaW50c0Zyb21DbHVzdGVyID0gKHVuaXFlSWRzLCBsb2NhbExheWVyc1RvUmVtb3ZlKSA9PiB7XG4gIC8vICAgaWYgKCFmYWN0b3JpZXNHcm91cCB8fCAhbWFwKSB7XG4gIC8vICAgICBjb25zb2xlLndhcm4oJ0VpdGhlciBmYWN0b3JpZXNHcm91cCBvciBtYXAgaXMgdW5kZWZpbmVkLicpO1xuICAvLyAgICAgcmV0dXJuO1xuICAvLyAgIH1cblxuICAvLyAgIC8vIFJlZnJlc2ggY2x1c3RlcnMgdG8gdXBkYXRlIGludGVybmFsIHN0cnVjdHVyZXMuXG4gIC8vICAgZmFjdG9yaWVzR3JvdXAucmVmcmVzaENsdXN0ZXJzKCk7XG5cbiAgLy8gICB1bmlxZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAvLyAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBtYXAuX2xheWVycykge1xuICAvLyAgICAgICBjb25zdCBsYXllciA9IG1hcC5fbGF5ZXJzW3Byb3BlcnR5XTtcbiAgLy8gICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgbGF5ZXIgZXhpc3RzLCBpcyBvZiB0eXBlICdQb2ludCcsIGhhcyB0aGUgZXhwZWN0ZWQgaWQsXG4gIC8vICAgICAgIC8vIGFuZCB0aGF0IGl0IGltcGxlbWVudHMgZ2V0TGF0TG5nLlxuICAvLyAgICAgICBpZiAoXG4gIC8vICAgICAgICAgbGF5ZXIgJiZcbiAgLy8gICAgICAgICBsYXllci5rYW5kb19vYmplY3QgPT09ICdQb2ludCcgJiZcbiAgLy8gICAgICAgICBsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkICYmXG4gIC8vICAgICAgICAgdHlwZW9mIGxheWVyLmdldExhdExuZyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAvLyAgICAgICAgIHR5cGVvZiBsYXllci5fem9vbSA9PT0gJ251bWJlcidcbiAgLy8gICAgICAgKSB7XG4gIC8vICAgICAgICAgbG9jYWxMYXllcnNUb1JlbW92ZS5wdXNoKGxheWVyKTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuXG4gIC8vICAgLy8gRmlsdGVyIG91dCBkdXBsaWNhdGVzIGFuZCBhbnkgdW5kZWZpbmVkIGxheWVycy5cbiAgLy8gICBjb25zdCB1bmlxdWVMYXllcnMgPSBsb2NhbExheWVyc1RvUmVtb3ZlLmZpbHRlcihcbiAgLy8gICAgIChsYXllciwgaW5kZXgsIHNlbGYpID0+XG4gIC8vICAgICAgIGxheWVyICYmXG4gIC8vICAgICAgIHR5cGVvZiBsYXllci5nZXRMYXRMbmcgPT09ICdmdW5jdGlvbicgJiZcbiAgLy8gICAgICAgaW5kZXggPT09XG4gIC8vICAgICAgICAgc2VsZi5maW5kSW5kZXgoKGwpID0+IGwua2FuZG9fb2JqZWN0X2lkID09PSBsYXllci5rYW5kb19vYmplY3RfaWQpLFxuICAvLyAgICk7XG5cbiAgLy8gICBzZXRMYXllcnNUb1JlbW92ZSh1bmlxdWVMYXllcnMpO1xuICAvLyAgIGZhY3Rvcmllc0dyb3VwLnJlbW92ZUxheWVycyh1bmlxdWVMYXllcnMpO1xuICAvLyB9O1xuXG4gIC8vIGNvbnN0IGFkZEV2ZW50UG9pbnRzVG9DbHVzdGVyID0gKCkgPT4ge1xuICAvLyAgIGxldCBsYXllcnNUb0RyYXcgPSBbXTtcbiAgLy8gICBsZXQgbGF5ZXJzSWRzID0gbGF5ZXJzVG9SZW1vdmUubWFwKChsYXllcikgPT4gbGF5ZXIua2FuZG9fb2JqZWN0X2lkKTtcbiAgLy8gICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChsYXllcnNJZHMpXTtcbiAgLy8gICB1bmlxZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAvLyAgICAgbGF5ZXJzVG9EcmF3LnB1c2goXG4gIC8vICAgICAgIGxheWVyc1RvUmVtb3ZlLmZpbmQoKGxheWVyKSA9PiBsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkKSxcbiAgLy8gICAgICk7XG4gIC8vICAgfSk7XG5cbiAgLy8gICBsYXllcnNUb0RyYXcuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgLy8gICAgIGxldCBwb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGxheWVyLmthbmRvX29iamVjdF9pZCk7XG4gIC8vICAgICBwb2ludCAmJiBiaW5kUG9wdXBUb01hcmtlcihwb2ludCwgbGF5ZXIsIHVzZXJJbmZvLmZsb3dfcmF0ZV91bml0KTtcbiAgLy8gICB9KTtcbiAgLy8gICBmYWN0b3JpZXNHcm91cC5hZGRMYXllcnMobGF5ZXJzVG9EcmF3KTtcbiAgLy8gfTtcblxuICAvLyBjb25zdCBtYWtlU3VyZVRoZXJlQXJlTm9EdXBsaWNhdGVzID0gKCkgPT4ge1xuICAvLyAgIGxldCBsb2NhbExheWVyc1RvUmVtb3ZlID0gW107XG5cbiAgLy8gICBpZiAoZXZlbnRzRGF0YS5mb2N1c2VkRXZlbnQpIHtcbiAgLy8gICAgIGxldCBvYnNJZHMgPSBldmVudHNEYXRhLmZvY3VzZWRFdmVudC5vYnNlcnZhdGlvbnMubWFwKFxuICAvLyAgICAgICAob2JzKSA9PiBvYnMucG9pbnRfaWQsXG4gIC8vICAgICApO1xuICAvLyAgICAgbGV0IHVuaXFlSWRzID0gWy4uLm5ldyBTZXQob2JzSWRzKV07XG4gIC8vICAgICByZW1vdmVFdmVudFBvaW50c0Zyb21DbHVzdGVyKHVuaXFlSWRzLCBsb2NhbExheWVyc1RvUmVtb3ZlKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgYWRkRXZlbnRQb2ludHNUb0NsdXN0ZXIoKTtcbiAgLy8gICB9XG4gIC8vIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWFwKSB7XG4gICAgICBpZiAoZm9yRXZlbnRzVmlldykge1xuICAgICAgICAvLyBJbiBldmVudHMgdmlldywgYWx3YXlzIHNob3cgYWxsIGxheWVyc1xuICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChyZXJlbmRlcikge1xuICAgICAgICAgIGNhc2UgJ1hMYXJnZSc6XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICAvLyBmYWN0b3JpZXMgZ3JvdXAgaGFzIGEgcGFyZW50IGxheWVyIGluIG1hcC50c3hcbiAgICAgICAgICAgIC8vIHNvIHdlIGRvbid0IG5lZWQgdG8gcmVtb3ZlIGl0IGhlcmVcbiAgICAgICAgICAgIC8vIHJlbW92ZUxheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0xhcmdlJzpcbiAgICAgICAgICBjYXNlICdNTGFyZ2UnOlxuICAgICAgICAgIGNhc2UgJ01lZGl1bSc6XG4gICAgICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgICAgICAgLy8gd2UgYXJlIGhhbmRsaW5nIGZhY3Rvcmllc1BhcmVudEdyb3VwIGluIG1hcC50c3hcbiAgICAgICAgICAgIC8vIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3JlcmVuZGVyLCBnbG9iYWxEYXRhXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge3BvaW50cy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgZmlsdGVyZWRQb2ludHMoKS5tYXAoKHBvaW50OiBJUG9pbnQpID0+IChcbiAgICAgICAgICA8UG9pbnRNYXJrZXJcbiAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgcG9pbnQ9e3BvaW50fVxuICAgICAgICAgICAga2V5PXtwb2ludC5pZH1cbiAgICAgICAgICAgIHJlcmVuZGVyPXtyZXJlbmRlcn1cbiAgICAgICAgICAgIGxheWVyR3JvdXA9e1xuICAgICAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5J1xuICAgICAgICAgICAgICAgID8gZmFjdG9yaWVzR3JvdXBcbiAgICAgICAgICAgICAgICA6IHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCdcbiAgICAgICAgICAgICAgICA/IHd3dHBzR3JvdXBcbiAgICAgICAgICAgICAgICA6IGNvbGxlY3RvcnNHcm91cFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmxvd1JhdGVVbml0PXt1c2VySW5mby5mbG93X3JhdGVfdW5pdH1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtc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
|
|
170
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BvaW50VXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiUG9pbnRNYXJrZXJzIiwicHJvcHMiLCJwb2ludHMiLCJtYXAiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJyZXJlbmRlciIsImlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMiLCJwb2ludCIsInBvaW50SXNXV1RQIiwicG9pbnRJc0ZhY3RvcnkiLCJncm91cCIsInR5cGUiLCJoYXNfZGV2aWNlIiwicG9pbnRIYXNDb29yZGluYXRlcyIsImxhdCIsImxhdGl0dWRlIiwibG5nIiwibG9uZ2l0dWRlIiwiaXNWYWxpZCIsImlzTmFOIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJpZCIsImZpbHRlclN0YXRlbWVudCIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwidXNlckluZm8iLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJ1c2VFZmZlY3QiLCJhZGRMYXllckdyb3VwIiwicmVtb3ZlTGF5ZXJHcm91cCIsImNyZWF0ZUVsZW1lbnQiLCJsZW5ndGgiLCJsYXllckdyb3VwIiwiZmxvd1JhdGVVbml0IiwiZmxvd19yYXRlX3VuaXQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludE1hcmtlcnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IFBvaW50TWFya2VyIGZyb20gJy4vUG9pbnRNYXJrZXInO1xuaW1wb3J0IHtcbiAgYWRkTGF5ZXJHcm91cCxcbiAgcmVtb3ZlTGF5ZXJHcm91cCxcbiAgcG9pbnRJc0ZhY3RvcnksXG4gIHBvaW50SXNXV1RQLFxufSBmcm9tICcuL1BvaW50VXRpbHMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBwb2ludHM6IGFueTtcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiBib29sZWFuO1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBmYWN0b3JpZXNHcm91cDogYW55O1xuICB3d3Rwc0dyb3VwOiBhbnk7XG4gIGNvbGxlY3RvcnNHcm91cDogYW55O1xuICBmb3JFdmVudHNWaWV3PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBQb2ludE1hcmtlcnM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IHBvaW50cywgbWFwLCBmYWN0b3JpZXNHcm91cCwgd3d0cHNHcm91cCwgY29sbGVjdG9yc0dyb3VwLCByZXJlbmRlciB9ID1cbiAgICBwcm9wcztcblxuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgcG9pbnQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBtYXAuXG4gIGNvbnN0IGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludElzV1dUUChwb2ludCkgfHxcbiAgICAgIHBvaW50SXNGYWN0b3J5KHBvaW50KSB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnICYmIHBvaW50Lmhhc19kZXZpY2UpIHx8XG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpQdW1wU3RhdGlvbidcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHBvaW50SGFzQ29vcmRpbmF0ZXMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIGNvbnN0IGxhdCA9IHBvaW50LmxhdGl0dWRlO1xuICAgIGNvbnN0IGxuZyA9IHBvaW50LmxvbmdpdHVkZTtcbiAgICBjb25zdCBpc1ZhbGlkID1cbiAgICAgIHR5cGVvZiBsYXQgPT09ICdudW1iZXInICYmXG4gICAgICB0eXBlb2YgbG5nID09PSAnbnVtYmVyJyAmJlxuICAgICAgIWlzTmFOKGxhdCkgJiZcbiAgICAgICFpc05hTihsbmcpO1xuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgY29uc29sZS53YXJuKGBQb2ludCAke3BvaW50LmlkfSBoYXMgaW52YWxpZCBjb29yZGluYXRlczogJHtsYXR9LCAke2xuZ31gKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gICAgcmV0dXJuIGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMocG9pbnQpICYmIHBvaW50SGFzQ29vcmRpbmF0ZXMocG9pbnQpO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHMuZmlsdGVyKChwb2ludDogSVBvaW50KSA9PiBmaWx0ZXJTdGF0ZW1lbnQocG9pbnQpKTtcbiAgfTtcblxuICAvLyBjb25zdCBnbG9iYWxEYXRhID0gdXNlU2VsZWN0b3IoXG4gIC8vICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUuZ2xvYmFsX2RhdGEsXG4gIC8vICk7XG5cbiAgY29uc3QgdXNlckluZm8gPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBlcm1pc3Npb25zLnVzZXJfaW5mbyk7XG5cbiAgLy8gY29uc3QgW2xheWVyc1RvUmVtb3ZlLCBzZXRMYXllcnNUb1JlbW92ZV0gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuXG4gIC8vIGNvbnN0IHJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIgPSAodW5pcWVJZHMsIGxvY2FsTGF5ZXJzVG9SZW1vdmUpID0+IHtcbiAgLy8gICBpZiAoIWZhY3Rvcmllc0dyb3VwIHx8ICFtYXApIHtcbiAgLy8gICAgIGNvbnNvbGUud2FybignRWl0aGVyIGZhY3Rvcmllc0dyb3VwIG9yIG1hcCBpcyB1bmRlZmluZWQuJyk7XG4gIC8vICAgICByZXR1cm47XG4gIC8vICAgfVxuXG4gIC8vICAgLy8gUmVmcmVzaCBjbHVzdGVycyB0byB1cGRhdGUgaW50ZXJuYWwgc3RydWN0dXJlcy5cbiAgLy8gICBmYWN0b3JpZXNHcm91cC5yZWZyZXNoQ2x1c3RlcnMoKTtcblxuICAvLyAgIHVuaXFlSWRzLmZvckVhY2goKGlkKSA9PiB7XG4gIC8vICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIG1hcC5fbGF5ZXJzKSB7XG4gIC8vICAgICAgIGNvbnN0IGxheWVyID0gbWFwLl9sYXllcnNbcHJvcGVydHldO1xuICAvLyAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBsYXllciBleGlzdHMsIGlzIG9mIHR5cGUgJ1BvaW50JywgaGFzIHRoZSBleHBlY3RlZCBpZCxcbiAgLy8gICAgICAgLy8gYW5kIHRoYXQgaXQgaW1wbGVtZW50cyBnZXRMYXRMbmcuXG4gIC8vICAgICAgIGlmIChcbiAgLy8gICAgICAgICBsYXllciAmJlxuICAvLyAgICAgICAgIGxheWVyLmthbmRvX29iamVjdCA9PT0gJ1BvaW50JyAmJlxuICAvLyAgICAgICAgIGxheWVyLmthbmRvX29iamVjdF9pZCA9PT0gaWQgJiZcbiAgLy8gICAgICAgICB0eXBlb2YgbGF5ZXIuZ2V0TGF0TG5nID09PSAnZnVuY3Rpb24nICYmXG4gIC8vICAgICAgICAgdHlwZW9mIGxheWVyLl96b29tID09PSAnbnVtYmVyJ1xuICAvLyAgICAgICApIHtcbiAgLy8gICAgICAgICBsb2NhbExheWVyc1RvUmVtb3ZlLnB1c2gobGF5ZXIpO1xuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfSk7XG5cbiAgLy8gICAvLyBGaWx0ZXIgb3V0IGR1cGxpY2F0ZXMgYW5kIGFueSB1bmRlZmluZWQgbGF5ZXJzLlxuICAvLyAgIGNvbnN0IHVuaXF1ZUxheWVycyA9IGxvY2FsTGF5ZXJzVG9SZW1vdmUuZmlsdGVyKFxuICAvLyAgICAgKGxheWVyLCBpbmRleCwgc2VsZikgPT5cbiAgLy8gICAgICAgbGF5ZXIgJiZcbiAgLy8gICAgICAgdHlwZW9mIGxheWVyLmdldExhdExuZyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAvLyAgICAgICBpbmRleCA9PT1cbiAgLy8gICAgICAgICBzZWxmLmZpbmRJbmRleCgobCkgPT4gbC5rYW5kb19vYmplY3RfaWQgPT09IGxheWVyLmthbmRvX29iamVjdF9pZCksXG4gIC8vICAgKTtcblxuICAvLyAgIHNldExheWVyc1RvUmVtb3ZlKHVuaXF1ZUxheWVycyk7XG4gIC8vICAgZmFjdG9yaWVzR3JvdXAucmVtb3ZlTGF5ZXJzKHVuaXF1ZUxheWVycyk7XG4gIC8vIH07XG5cbiAgLy8gY29uc3QgYWRkRXZlbnRQb2ludHNUb0NsdXN0ZXIgPSAoKSA9PiB7XG4gIC8vICAgbGV0IGxheWVyc1RvRHJhdyA9IFtdO1xuICAvLyAgIGxldCBsYXllcnNJZHMgPSBsYXllcnNUb1JlbW92ZS5tYXAoKGxheWVyKSA9PiBsYXllci5rYW5kb19vYmplY3RfaWQpO1xuICAvLyAgIGxldCB1bmlxZUlkcyA9IFsuLi5uZXcgU2V0KGxheWVyc0lkcyldO1xuICAvLyAgIHVuaXFlSWRzLmZvckVhY2goKGlkKSA9PiB7XG4gIC8vICAgICBsYXllcnNUb0RyYXcucHVzaChcbiAgLy8gICAgICAgbGF5ZXJzVG9SZW1vdmUuZmluZCgobGF5ZXIpID0+IGxheWVyLmthbmRvX29iamVjdF9pZCA9PT0gaWQpLFxuICAvLyAgICAgKTtcbiAgLy8gICB9KTtcblxuICAvLyAgIGxheWVyc1RvRHJhdy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAvLyAgICAgbGV0IHBvaW50ID0gcG9pbnRzLmZpbmQoKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gbGF5ZXIua2FuZG9fb2JqZWN0X2lkKTtcbiAgLy8gICAgIHBvaW50ICYmIGJpbmRQb3B1cFRvTWFya2VyKHBvaW50LCBsYXllciwgdXNlckluZm8uZmxvd19yYXRlX3VuaXQpO1xuICAvLyAgIH0pO1xuICAvLyAgIGZhY3Rvcmllc0dyb3VwLmFkZExheWVycyhsYXllcnNUb0RyYXcpO1xuICAvLyB9O1xuXG4gIC8vIGNvbnN0IG1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMgPSAoKSA9PiB7XG4gIC8vICAgbGV0IGxvY2FsTGF5ZXJzVG9SZW1vdmUgPSBbXTtcblxuICAvLyAgIGlmIChldmVudHNEYXRhLmZvY3VzZWRFdmVudCkge1xuICAvLyAgICAgbGV0IG9ic0lkcyA9IGV2ZW50c0RhdGEuZm9jdXNlZEV2ZW50Lm9ic2VydmF0aW9ucy5tYXAoXG4gIC8vICAgICAgIChvYnMpID0+IG9icy5wb2ludF9pZCxcbiAgLy8gICAgICk7XG4gIC8vICAgICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChvYnNJZHMpXTtcbiAgLy8gICAgIHJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIodW5pcWVJZHMsIGxvY2FsTGF5ZXJzVG9SZW1vdmUpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBhZGRFdmVudFBvaW50c1RvQ2x1c3RlcigpO1xuICAvLyAgIH1cbiAgLy8gfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIC8vIGlmIChmb3JFdmVudHNWaWV3KSB7XG4gICAgICAvLyAgIC8vIEluIGV2ZW50cyB2aWV3LCBhbHdheXMgc2hvdyBhbGwgbGF5ZXJzXG4gICAgICAvLyAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAvLyAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgIC8vICAgYWRkTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICAvLyB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChyZXJlbmRlcikge1xuICAgICAgICBjYXNlICdYTGFyZ2UnOlxuICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAvLyBmYWN0b3JpZXMgZ3JvdXAgaGFzIGEgcGFyZW50IGxheWVyIGluIG1hcC50c3hcbiAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlbW92ZSBpdCBoZXJlXG4gICAgICAgICAgLy8gcmVtb3ZlTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdMYXJnZSc6XG4gICAgICAgIGNhc2UgJ01MYXJnZSc6XG4gICAgICAgIGNhc2UgJ01lZGl1bSc6XG4gICAgICAgIGNhc2UgJ1NtYWxsJzpcbiAgICAgICAgICAvLyB3ZSBhcmUgaGFuZGxpbmcgZmFjdG9yaWVzUGFyZW50R3JvdXAgaW4gbWFwLnRzeFxuICAgICAgICAgIC8vIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIHd3dHBzR3JvdXApO1xuICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyB9XG4gICAgfVxuICB9LCBbcmVyZW5kZXIsIHBvaW50c10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtwb2ludHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGZpbHRlcmVkUG9pbnRzKCkubWFwKChwb2ludDogSVBvaW50KSA9PiAoXG4gICAgICAgICAgPFBvaW50TWFya2VyXG4gICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgIHBvaW50PXtwb2ludH1cbiAgICAgICAgICAgIGtleT17cG9pbnQuaWR9XG4gICAgICAgICAgICByZXJlbmRlcj17cmVyZW5kZXJ9XG4gICAgICAgICAgICBsYXllckdyb3VwPXtcbiAgICAgICAgICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeSdcbiAgICAgICAgICAgICAgICA/IGZhY3Rvcmllc0dyb3VwXG4gICAgICAgICAgICAgICAgOiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICAgICAgPyB3d3Rwc0dyb3VwXG4gICAgICAgICAgICAgICAgOiBjb2xsZWN0b3JzR3JvdXBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZsb3dSYXRlVW5pdD17dXNlckluZm8uZmxvd19yYXRlX3VuaXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUMsc0JB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
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.420-alpha.
|
|
3
|
+
var packageJsonVersion = "1.2.420-alpha.7";
|
|
4
4
|
if (typeof packageJsonVersion === 'string') {
|
|
5
5
|
// eslint-disable-next-line no-console
|
|
6
6
|
console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
|