@kando-env/kando-ui 1.2.278-alpha.24 → 1.2.278-alpha.27
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.
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
<svg width="
|
|
2
|
-
<path d="
|
|
3
|
-
<path
|
|
4
|
-
<path d="
|
|
5
|
-
|
|
1
|
+
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.5 18C0.5 8.05888 8.55888 0 18.5 0C28.4411 0 36.5 8.05888 36.5 18C36.5 27.9411 28.4411 36 18.5 36C8.55888 36 0.5 27.9411 0.5 18Z" fill="#E7F1FF"/>
|
|
3
|
+
<g clip-path="url(#clip0_6415_4758)">
|
|
4
|
+
<path d="M25.1667 14.68C25.2933 12.5192 22.5608 12.0442 21 11.3333V9.66667C21.221 9.66667 21.433 9.57887 21.5893 9.42259C21.7455 9.26631 21.8333 9.05435 21.8333 8.83333C21.8333 8.61232 21.7455 8.40036 21.5893 8.24408C21.433 8.0878 21.221 8 21 8H16C15.779 8 15.567 8.0878 15.4107 8.24408C15.2545 8.40036 15.1667 8.61232 15.1667 8.83333C15.1667 9.05435 15.2545 9.26631 15.4107 9.42259C15.567 9.57887 15.779 9.66667 16 9.66667V11.3333L13.9283 12.1667C13.4963 12.2616 13.0944 12.462 12.7585 12.7499C12.4226 13.0378 12.1631 13.4043 12.0032 13.8167C11.8432 14.2292 11.7878 14.6748 11.8417 15.1139C11.8957 15.553 12.0574 15.9719 12.3125 16.3333H21C21.221 16.3333 21.433 16.4211 21.5893 16.5774C21.7455 16.7337 21.8333 16.9457 21.8333 17.1667C21.8333 17.3877 21.7455 17.5996 21.5893 17.7559C21.433 17.9122 21.221 18 21 18H12.3117C12.0043 18.5016 11.8416 19.0784 11.8416 19.6667C11.8416 20.2549 12.0043 20.8317 12.3117 21.3333H21C21.221 21.3333 21.433 21.4211 21.5893 21.5774C21.7455 21.7337 21.8333 21.9457 21.8333 22.1667C21.8333 22.3877 21.7455 22.5996 21.5893 22.7559C21.433 22.9122 21.221 23 21 23H12.3117C12.018 23.504 11.8621 24.0764 11.8596 24.6597C11.857 25.2431 12.008 25.8168 12.2972 26.3234C12.5864 26.8299 13.0038 27.2515 13.5075 27.5458C14.0111 27.8401 14.5833 27.9967 15.1667 28H21.8333C22.5072 27.9927 23.1631 27.7816 23.7147 27.3946C24.2664 27.0075 24.688 26.4625 24.924 25.8313C25.1601 25.2001 25.1996 24.5122 25.0374 23.8581C24.8751 23.204 24.5187 22.6144 24.015 22.1667C24.3705 21.8544 24.6554 21.4698 24.8505 21.0387C25.0456 20.6076 25.1465 20.1399 25.1465 19.6667C25.1465 19.1935 25.0456 18.7257 24.8505 18.2946C24.6554 17.8635 24.3705 17.479 24.015 17.1667C24.3719 16.8572 24.6592 16.4756 24.8577 16.0469C25.0562 15.6183 25.1615 15.1524 25.1667 14.68Z" fill="#3B82F6"/>
|
|
5
|
+
</g>
|
|
6
6
|
<defs>
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
</linearGradient>
|
|
11
|
-
<linearGradient id="paint1_linear_4088_33967" x1="16.4069" y1="23.3267" x2="16.4069" y2="12.8478" gradientUnits="userSpaceOnUse">
|
|
12
|
-
<stop stop-color="#EFC530"/>
|
|
13
|
-
<stop offset="1" stop-color="#FCEDB6"/>
|
|
14
|
-
</linearGradient>
|
|
7
|
+
<clipPath id="clip0_6415_4758">
|
|
8
|
+
<rect width="20" height="20" fill="white" transform="translate(8.5 8)"/>
|
|
9
|
+
</clipPath>
|
|
15
10
|
</defs>
|
|
16
11
|
</svg>
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.278-alpha.
|
|
3
|
+
var packageJsonVersion = "1.2.278-alpha.27";
|
|
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));
|
|
@@ -23,26 +23,26 @@ var Widget = function Widget(props) {
|
|
|
23
23
|
points = props.points,
|
|
24
24
|
map = props.map,
|
|
25
25
|
global_data = props.global_data;
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
area =
|
|
29
|
-
setArea =
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
point =
|
|
33
|
-
setPoint =
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
buttonName =
|
|
37
|
-
setButtonName =
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
inlets =
|
|
41
|
-
setInlets =
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
areaData =
|
|
45
|
-
setAreaData =
|
|
26
|
+
var _useState = (0, _react.useState)(null),
|
|
27
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
28
|
+
area = _useState2[0],
|
|
29
|
+
setArea = _useState2[1];
|
|
30
|
+
var _useState3 = (0, _react.useState)(null),
|
|
31
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
32
|
+
point = _useState4[0],
|
|
33
|
+
setPoint = _useState4[1];
|
|
34
|
+
var _useState5 = (0, _react.useState)(''),
|
|
35
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
36
|
+
buttonName = _useState6[0],
|
|
37
|
+
setButtonName = _useState6[1];
|
|
38
|
+
var _useState7 = (0, _react.useState)([]),
|
|
39
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
40
|
+
inlets = _useState8[0],
|
|
41
|
+
setInlets = _useState8[1];
|
|
42
|
+
var _useState9 = (0, _react.useState)([]),
|
|
43
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
44
|
+
areaData = _useState10[0],
|
|
45
|
+
setAreaData = _useState10[1];
|
|
46
46
|
var handleClick = function handleClick() {
|
|
47
47
|
map.closePopup();
|
|
48
48
|
if (area) {
|
|
@@ -90,25 +90,21 @@ var Widget = function Widget(props) {
|
|
|
90
90
|
|
|
91
91
|
// Return the points that are in the same area as the WWTP and is_inlet is true
|
|
92
92
|
var setPointInletsAndButton = function setPointInletsAndButton() {
|
|
93
|
-
|
|
94
|
-
inlets = points.filter(function (inlet) {
|
|
93
|
+
setInlets(points.filter(function (inlet) {
|
|
95
94
|
return inlet.group.area_id === (point === null || point === void 0 ? void 0 : point.group.area_id) && inlet.is_inlet === true;
|
|
96
|
-
});
|
|
95
|
+
}));
|
|
97
96
|
if (inlets.length === 0) {
|
|
98
|
-
|
|
97
|
+
setInlets(getFactories(point === null || point === void 0 ? void 0 : point.group.area_id));
|
|
99
98
|
setButtonName('view_factories');
|
|
100
99
|
} else {
|
|
101
100
|
setButtonName('view_inlets');
|
|
102
101
|
}
|
|
103
|
-
setInlets(inlets);
|
|
104
102
|
};
|
|
105
103
|
var setAreaInlets = function setAreaInlets() {
|
|
106
104
|
if (area !== undefined && area !== null) {
|
|
107
|
-
|
|
108
|
-
_inlets = area === null || area === void 0 ? void 0 : area.sub_areas.filter(function (inlet) {
|
|
105
|
+
setInlets(area === null || area === void 0 ? void 0 : area.sub_areas.filter(function (inlet) {
|
|
109
106
|
return inlet.is_inlet === true;
|
|
110
|
-
});
|
|
111
|
-
setInlets(_inlets);
|
|
107
|
+
}));
|
|
112
108
|
}
|
|
113
109
|
};
|
|
114
110
|
var getAreaData = function getAreaData() {
|
|
@@ -148,6 +144,7 @@ var Widget = function Widget(props) {
|
|
|
148
144
|
}
|
|
149
145
|
} else {
|
|
150
146
|
if (point) {
|
|
147
|
+
console.warn(point.name, inlets);
|
|
151
148
|
inlets === null || inlets === void 0 ? void 0 : inlets.forEach(function (inlet) {
|
|
152
149
|
data.push({
|
|
153
150
|
name: inlet.name,
|
|
@@ -172,9 +169,9 @@ var Widget = function Widget(props) {
|
|
|
172
169
|
};
|
|
173
170
|
var calcAreaButtonName = function calcAreaButtonName() {
|
|
174
171
|
var name = 'view_factories';
|
|
175
|
-
if (area
|
|
172
|
+
if (area) {
|
|
173
|
+
console.warn(area.area_name, area.is_wwtp, inlets === null || inlets === void 0 ? void 0 : inlets.length);
|
|
176
174
|
if (area.is_wwtp === true && (inlets === null || inlets === void 0 ? void 0 : inlets.length) > 0) {
|
|
177
|
-
console.warn(area.area_name, 'view_inlets');
|
|
178
175
|
name = 'view_inlets';
|
|
179
176
|
} else {
|
|
180
177
|
if ((area === null || area === void 0 ? void 0 : area.sub_areas) && area.sub_areas.length > 0) {
|
|
@@ -204,6 +201,11 @@ var Widget = function Widget(props) {
|
|
|
204
201
|
setButtonName(calcAreaButtonName());
|
|
205
202
|
}
|
|
206
203
|
}, [point, area]);
|
|
204
|
+
(0, _react.useEffect)(function () {
|
|
205
|
+
if (inlets.length > 0) {
|
|
206
|
+
setButtonName('view_inlets');
|
|
207
|
+
}
|
|
208
|
+
}, [inlets]);
|
|
207
209
|
var widgetContent = function widgetContent() {
|
|
208
210
|
var data = dataForPie();
|
|
209
211
|
if (data.length > 0) {
|
|
@@ -230,4 +232,4 @@ var Widget = function Widget(props) {
|
|
|
230
232
|
}, widgetContent()));
|
|
231
233
|
};
|
|
232
234
|
exports.Widget = Widget;
|
|
233
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9pY29ucyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiV2lkZ2V0IiwicHJvcHMiLCJvYmplY3QiLCJkaXNwYXRjaCIsInBvaW50cyIsIm1hcCIsImdsb2JhbF9kYXRhIiwiX1JlYWN0JHVzZVN0YXRlIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJhcmVhIiwic2V0QXJlYSIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwicG9pbnQiLCJzZXRQb2ludCIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2IiwiYnV0dG9uTmFtZSIsInNldEJ1dHRvbk5hbWUiLCJfUmVhY3QkdXNlU3RhdGU3IiwiX1JlYWN0JHVzZVN0YXRlOCIsImlubGV0cyIsInNldElubGV0cyIsIl9SZWFjdCR1c2VTdGF0ZTkiLCJfUmVhY3QkdXNlU3RhdGUxMCIsImFyZWFEYXRhIiwic2V0QXJlYURhdGEiLCJoYW5kbGVDbGljayIsImNsb3NlUG9wdXAiLCJhcmVhVG9Gb2N1cyIsImxlbmd0aCIsImNvcHkiLCJfb2JqZWN0U3ByZWFkMiIsImZhY3RvcmllcyIsInNldEZvY3VzZWRBcmVhIiwicCIsInN1Yl9hcmVhcyIsInNoYXBlX2RhdGEiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzIiwic2VuZEFuYWx5dGljc0V2ZW50IiwidXRpbGl0eV9uYW1lIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiZ2V0RmFjdG9yaWVzIiwiYXJlYV9pZCIsInBvaW50c09mQXJlYSIsImkiLCJncm91cCIsInR5cGUiLCJwdXNoIiwic2V0UG9pbnRJbmxldHNBbmRCdXR0b24iLCJmaWx0ZXIiLCJpbmxldCIsImlzX2lubGV0Iiwic2V0QXJlYUlubGV0cyIsInVuZGVmaW5lZCIsImdldEFyZWFEYXRhIiwiaXNfd3d0cCIsIm5hbWUiLCJhcmVhX25hbWUiLCJzdWJfYXJlYSIsImlzSW5sZXQiLCJkYXRhRm9yUGllIiwiZGF0YSIsImZvckVhY2giLCJpdGVtIiwib3JnYW5pY19sb2FkIiwidG9vbHRpcFZhbHVlIiwidGl0bGUiLCJwYXlsb2FkIiwiY2FsY0FyZWFCdXR0b25OYW1lIiwiY29uc29sZSIsIndhcm4iLCJidXR0b25UaXRsZSIsImkxOG4iLCJ0IiwiY29uY2F0IiwidXNlRWZmZWN0IiwiaXNBUG9pbnQiLCJmb3JXV1RQTWFwIiwid2lkZ2V0Q29udGVudCIsImNyZWF0ZUVsZW1lbnQiLCJCdXR0b24iLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiRnJhZ21lbnQiLCJOb1Jlc3VsdFN2ZyIsIkNhcmQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9XaWRnZXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIENhcmQgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgc2V0Rm9jdXNlZEFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9XV1RQRGFzaGJvYXJkL1dXVFBEYXNoYm9hcmRTbGljZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgSW5sZXRzUGllIGZyb20gJy4uLy4uL3VpLWtpdC9JbmxldHNQaWUnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBOb1Jlc3VsdFN2ZyB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgb2JqZWN0OiBhbnk7XG4gIGRpc3BhdGNoOiBhbnk7XG4gIHBvaW50czogSVBvaW50W107XG4gIG1hcDtcbiAgZ2xvYmFsX2RhdGE7XG59O1xuXG5leHBvcnQgY29uc3QgV2lkZ2V0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgb2JqZWN0LCBkaXNwYXRjaCwgcG9pbnRzLCBtYXAsIGdsb2JhbF9kYXRhIH0gPSBwcm9wcztcbiAgY29uc3QgW2FyZWEsIHNldEFyZWFdID0gUmVhY3QudXNlU3RhdGU8SUFyZWEgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3BvaW50LCBzZXRQb2ludF0gPSBSZWFjdC51c2VTdGF0ZTxJUG9pbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2J1dHRvbk5hbWUsIHNldEJ1dHRvbk5hbWVdID0gUmVhY3QudXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtpbmxldHMsIHNldElubGV0c10gPSBSZWFjdC51c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbYXJlYURhdGEsIHNldEFyZWFEYXRhXSA9IFJlYWN0LnVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICBpZiAoYXJlYSkge1xuICAgICAgbGV0IGFyZWFUb0ZvY3VzID0gYXJlYTtcbiAgICAgIGlmIChhcmVhRGF0YSAmJiBhcmVhRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBjb3B5ID0geyAuLi5hcmVhVG9Gb2N1cyB9O1xuICAgICAgICBjb3B5LmZhY3RvcmllcyA9IGFyZWFEYXRhO1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShjb3B5KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShhcmVhVG9Gb2N1cykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgbGV0IHAgPSB7XG4gICAgICAgICAgLi4ucG9pbnQsXG4gICAgICAgICAgZmFjdG9yaWVzOiBpbmxldHMsXG4gICAgICAgICAgc3ViX2FyZWFzOiBbXSxcbiAgICAgICAgICBzaGFwZV9kYXRhOiBbW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdXSxcbiAgICAgICAgfTtcbiAgICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEocCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcygpO1xuICB9O1xuXG4gIGNvbnN0IHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzID0gKCkgPT4ge1xuICAgIHNlbmRBbmFseXRpY3NFdmVudCgnTWFwIHZpZXcgLSBQb3B1cCBkcmlsbGRvd24gY2xpY2tlZCcsIGJ1dHRvbk5hbWUsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIFJldHVybiB0aGUgZmlyc3QgMTAgZmFjdG9yaWVzIGluIHRoZSBzYW1lIGFyZWEgYXMgdGhlIFdXVFBcbiAgLy8gVXNpbmcgYSBmb3IgbG9vcCBpbiBvcmRlciB0byBicmVhayB0aGUgbG9vcCB3aGVuIDEwIGZhY3RvcmllcyBhcmUgZm91bmRcbiAgY29uc3QgZ2V0RmFjdG9yaWVzID0gKGFyZWFfaWQpID0+IHtcbiAgICBpZiAoIXBvaW50cykgcmV0dXJuIFtdO1xuICAgIGxldCBwb2ludHNPZkFyZWE6IElQb2ludFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHBvaW50c09mQXJlYS5sZW5ndGggPT09IDEwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBwb2ludHNbaV0uZ3JvdXAuYXJlYV9pZCA9PT0gYXJlYV9pZCAmJlxuICAgICAgICBwb2ludHNbaV0uZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeSdcbiAgICAgICkge1xuICAgICAgICBwb2ludHNPZkFyZWEucHVzaChwb2ludHNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9pbnRzT2ZBcmVhO1xuICB9O1xuXG4gIC8vIFJldHVybiB0aGUgcG9pbnRzIHRoYXQgYXJlIGluIHRoZSBzYW1lIGFyZWEgYXMgdGhlIFdXVFAgYW5kIGlzX2lubGV0IGlzIHRydWVcbiAgY29uc3Qgc2V0UG9pbnRJbmxldHNBbmRCdXR0b24gPSAoKSA9PiB7XG4gICAgbGV0IGlubGV0czogSVBvaW50W10gPSBbXTtcblxuICAgIGlubGV0cyA9IHBvaW50cy5maWx0ZXIoXG4gICAgICAoaW5sZXQ6IElQb2ludCkgPT5cbiAgICAgICAgaW5sZXQuZ3JvdXAuYXJlYV9pZCA9PT0gcG9pbnQ/Lmdyb3VwLmFyZWFfaWQgJiYgaW5sZXQuaXNfaW5sZXQgPT09IHRydWUsXG4gICAgKTtcbiAgICBpZiAoaW5sZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5sZXRzID0gZ2V0RmFjdG9yaWVzKHBvaW50Py5ncm91cC5hcmVhX2lkKTtcbiAgICAgIHNldEJ1dHRvbk5hbWUoJ3ZpZXdfZmFjdG9yaWVzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEJ1dHRvbk5hbWUoJ3ZpZXdfaW5sZXRzJyk7XG4gICAgfVxuICAgIHNldElubGV0cyhpbmxldHMpO1xuICB9O1xuXG4gIGNvbnN0IHNldEFyZWFJbmxldHMgPSAoKSA9PiB7XG4gICAgaWYgKGFyZWEgIT09IHVuZGVmaW5lZCAmJiBhcmVhICE9PSBudWxsKSB7XG4gICAgICBsZXQgaW5sZXRzOiBhbnkgPSBbXTtcbiAgICAgIGlubGV0cyA9IGFyZWE/LnN1Yl9hcmVhcy5maWx0ZXIoKGlubGV0KSA9PiBpbmxldC5pc19pbmxldCA9PT0gdHJ1ZSk7XG4gICAgICBzZXRJbmxldHMoaW5sZXRzKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0QXJlYURhdGEgPSAoKSA9PiB7XG4gICAgbGV0IGFyZWFEYXRhOiBhbnkgPSBbXTtcblxuICAgIGlmIChhcmVhPy5pc193d3RwID09PSB0cnVlICYmIGlubGV0cz8ubGVuZ3RoID4gMCkge1xuICAgICAgYXJlYURhdGEgPSBpbmxldHMubWFwKChhcmVhKSA9PiAoeyAuLi5hcmVhLCBuYW1lOiBhcmVhLmFyZWFfbmFtZSB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhcmVhPy5zdWJfYXJlYXMgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhcmVhRGF0YSA9IGFyZWEuc3ViX2FyZWFzLm1hcChcbiAgICAgICAgICAoc3ViX2FyZWEpID0+IChcbiAgICAgICAgICAgIHN1Yl9hcmVhLmlzSW5sZXQgPT09IGZhbHNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5zdWJfYXJlYSxcbiAgICAgICAgICAgICAgbmFtZTogc3ViX2FyZWEuYXJlYV9uYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocG9pbnRzICYmIHBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXJlYURhdGEgPSBnZXRGYWN0b3JpZXMoYXJlYT8uYXJlYV9pZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFyZWFEYXRhO1xuICB9O1xuXG4gIGNvbnN0IGRhdGFGb3JQaWUgPSAoKSA9PiB7XG4gICAgbGV0IGRhdGE6IGFueSA9IFtdO1xuICAgIGlmIChhcmVhKSB7XG4gICAgICBpZiAoYXJlYURhdGEgJiYgYXJlYURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICBhcmVhRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgZGF0YS5wdXNoKHsgbmFtZTogaXRlbS5uYW1lLCBvcmdhbmljX2xvYWQ6IDUsIHRvb2x0aXBWYWx1ZTogMTUgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgaW5sZXRzPy5mb3JFYWNoKChpbmxldCkgPT4ge1xuICAgICAgICAgIGRhdGEucHVzaCh7IG5hbWU6IGlubGV0Lm5hbWUsIG9yZ2FuaWNfbG9hZDogNSwgdG9vbHRpcFZhbHVlOiAxNSB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9O1xuXG4gIGNvbnN0IHRpdGxlID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gJyc7XG4gICAgaWYgKHBvaW50KSB7XG4gICAgICBwYXlsb2FkID0gcG9pbnQubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGFyZWEpIHtcbiAgICAgICAgcGF5bG9hZCA9IGFyZWEuYXJlYV9uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCBjYWxjQXJlYUJ1dHRvbk5hbWUgPSAoKSA9PiB7XG4gICAgbGV0IG5hbWUgPSAndmlld19mYWN0b3JpZXMnO1xuICAgIGlmIChhcmVhICE9PSB1bmRlZmluZWQgJiYgYXJlYSAhPT0gbnVsbCkge1xuICAgICAgaWYgKGFyZWEuaXNfd3d0cCA9PT0gdHJ1ZSAmJiBpbmxldHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGFyZWEuYXJlYV9uYW1lLCAndmlld19pbmxldHMnKTtcbiAgICAgICAgbmFtZSA9ICd2aWV3X2lubGV0cyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXJlYT8uc3ViX2FyZWFzICYmIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBuYW1lID0gJ3ZpZXdfc3ViX2FyZWFzJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfTtcblxuICBjb25zdCBidXR0b25UaXRsZSA9ICgpID0+IHtcbiAgICByZXR1cm4gaTE4bi50KGB3d3RwUGFnZS4ke2J1dHRvbk5hbWV9YCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaXNBUG9pbnQgPSBvYmplY3QuZm9yV1dUUE1hcCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzQVBvaW50KSB7XG4gICAgICBzZXRQb2ludChvYmplY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBcmVhKG9iamVjdCk7XG4gICAgfVxuICB9LCBbb2JqZWN0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocG9pbnQpIHtcbiAgICAgIHNldFBvaW50SW5sZXRzQW5kQnV0dG9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFyZWFJbmxldHMoKTtcbiAgICAgIHNldEFyZWFEYXRhKGdldEFyZWFEYXRhKCkpO1xuICAgICAgc2V0QnV0dG9uTmFtZShjYWxjQXJlYUJ1dHRvbk5hbWUoKSk7XG4gICAgfVxuICB9LCBbcG9pbnQsIGFyZWFdKTtcblxuICBjb25zdCB3aWRnZXRDb250ZW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhRm9yUGllKCk7XG4gICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDbGljaygpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnY2hpbGRyZW5CdXR0b24gcm91bmRlZC1waWxsIGJ0bi1saWdodCd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2J1dHRvblRpdGxlKCl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPElubGV0c1BpZSBpbmxldHM9e2RhdGFGb3JQaWUoKX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0LWljb25cIj5cbiAgICAgICAgICAgIDxOb1Jlc3VsdFN2ZyAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0LW1zZzFcIj57aTE4bi50KGB3d3RwUGFnZS5ub19yZXN1bHRfMWApfTwvZGl2PlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJuby1yZXN1bHQtbXNnMlwiPntpMThuLnQoYHd3dHBQYWdlLm5vX3Jlc3VsdF8yYCl9PC9oMz5cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDM+e3RpdGxlKCl9PC9oMz5cbiAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImJnLXdoaXRlIHdpZGdldC1jb250YWluZXJcIj57d2lkZ2V0Q29udGVudCgpfTwvQ2FyZD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFB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
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9pY29ucyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiV2lkZ2V0IiwicHJvcHMiLCJvYmplY3QiLCJkaXNwYXRjaCIsInBvaW50cyIsIm1hcCIsImdsb2JhbF9kYXRhIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiYXJlYSIsInNldEFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvaW50Iiwic2V0UG9pbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImJ1dHRvbk5hbWUiLCJzZXRCdXR0b25OYW1lIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpbmxldHMiLCJzZXRJbmxldHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJhcmVhRGF0YSIsInNldEFyZWFEYXRhIiwiaGFuZGxlQ2xpY2siLCJjbG9zZVBvcHVwIiwiYXJlYVRvRm9jdXMiLCJsZW5ndGgiLCJjb3B5IiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJzZXRGb2N1c2VkQXJlYSIsInAiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcyIsInNlbmRBbmFseXRpY3NFdmVudCIsInV0aWxpdHlfbmFtZSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdldEZhY3RvcmllcyIsImFyZWFfaWQiLCJwb2ludHNPZkFyZWEiLCJpIiwiZ3JvdXAiLCJ0eXBlIiwicHVzaCIsInNldFBvaW50SW5sZXRzQW5kQnV0dG9uIiwiZmlsdGVyIiwiaW5sZXQiLCJpc19pbmxldCIsInNldEFyZWFJbmxldHMiLCJ1bmRlZmluZWQiLCJnZXRBcmVhRGF0YSIsImlzX3d3dHAiLCJuYW1lIiwiYXJlYV9uYW1lIiwic3ViX2FyZWEiLCJpc0lubGV0IiwiZGF0YUZvclBpZSIsImRhdGEiLCJmb3JFYWNoIiwiaXRlbSIsIm9yZ2FuaWNfbG9hZCIsInRvb2x0aXBWYWx1ZSIsImNvbnNvbGUiLCJ3YXJuIiwidGl0bGUiLCJwYXlsb2FkIiwiY2FsY0FyZWFCdXR0b25OYW1lIiwiYnV0dG9uVGl0bGUiLCJpMThuIiwidCIsImNvbmNhdCIsInVzZUVmZmVjdCIsImlzQVBvaW50IiwiZm9yV1dUUE1hcCIsIndpZGdldENvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiQnV0dG9uIiwib25DbGljayIsImNsYXNzTmFtZSIsIkZyYWdtZW50IiwiTm9SZXN1bHRTdmciLCJDYXJkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgQ2FyZCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCBJbmxldHNQaWUgZnJvbSAnLi4vLi4vdWkta2l0L0lubGV0c1BpZSc7XG5pbXBvcnQgeyBzZW5kQW5hbHl0aWNzRXZlbnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IE5vUmVzdWx0U3ZnIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucyc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBvYmplY3Q6IGFueTtcbiAgZGlzcGF0Y2g6IGFueTtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgbWFwO1xuICBnbG9iYWxfZGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBXaWRnZXQ6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBvYmplY3QsIGRpc3BhdGNoLCBwb2ludHMsIG1hcCwgZ2xvYmFsX2RhdGEgfSA9IHByb3BzO1xuICBjb25zdCBbYXJlYSwgc2V0QXJlYV0gPSB1c2VTdGF0ZTxJQXJlYSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9pbnQsIHNldFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYnV0dG9uTmFtZSwgc2V0QnV0dG9uTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2lubGV0cywgc2V0SW5sZXRzXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFthcmVhRGF0YSwgc2V0QXJlYURhdGFdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgIGlmIChhcmVhKSB7XG4gICAgICBsZXQgYXJlYVRvRm9jdXMgPSBhcmVhO1xuICAgICAgaWYgKGFyZWFEYXRhICYmIGFyZWFEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGNvcHkgPSB7IC4uLmFyZWFUb0ZvY3VzIH07XG4gICAgICAgIGNvcHkuZmFjdG9yaWVzID0gYXJlYURhdGE7XG4gICAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRBcmVhKGNvcHkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRBcmVhKGFyZWFUb0ZvY3VzKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwb2ludCkge1xuICAgICAgICBsZXQgcCA9IHtcbiAgICAgICAgICAuLi5wb2ludCxcbiAgICAgICAgICBmYWN0b3JpZXM6IGlubGV0cyxcbiAgICAgICAgICBzdWJfYXJlYXM6IFtdLFxuICAgICAgICAgIHNoYXBlX2RhdGE6IFtbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV1dLFxuICAgICAgICB9O1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzKCk7XG4gIH07XG5cbiAgY29uc3Qgc2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MgPSAoKSA9PiB7XG4gICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgdmlldyAtIFBvcHVwIGRyaWxsZG93biBjbGlja2VkJywgYnV0dG9uTmFtZSwge1xuICAgICAgdXRpbGl0eV9uYW1lOiBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gUmV0dXJuIHRoZSBmaXJzdCAxMCBmYWN0b3JpZXMgaW4gdGhlIHNhbWUgYXJlYSBhcyB0aGUgV1dUUFxuICAvLyBVc2luZyBhIGZvciBsb29wIGluIG9yZGVyIHRvIGJyZWFrIHRoZSBsb29wIHdoZW4gMTAgZmFjdG9yaWVzIGFyZSBmb3VuZFxuICBjb25zdCBnZXRGYWN0b3JpZXMgPSAoYXJlYV9pZCkgPT4ge1xuICAgIGlmICghcG9pbnRzKSByZXR1cm4gW107XG4gICAgbGV0IHBvaW50c09mQXJlYTogSVBvaW50W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHBvaW50c09mQXJlYS5sZW5ndGggPT09IDEwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBwb2ludHNbaV0uZ3JvdXAuYXJlYV9pZCA9PT0gYXJlYV9pZCAmJlxuICAgICAgICBwb2ludHNbaV0uZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeSdcbiAgICAgICkge1xuICAgICAgICBwb2ludHNPZkFyZWEucHVzaChwb2ludHNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9pbnRzT2ZBcmVhO1xuICB9O1xuXG4gIC8vIFJldHVybiB0aGUgcG9pbnRzIHRoYXQgYXJlIGluIHRoZSBzYW1lIGFyZWEgYXMgdGhlIFdXVFAgYW5kIGlzX2lubGV0IGlzIHRydWVcbiAgY29uc3Qgc2V0UG9pbnRJbmxldHNBbmRCdXR0b24gPSAoKSA9PiB7XG4gICAgc2V0SW5sZXRzKFxuICAgICAgcG9pbnRzLmZpbHRlcihcbiAgICAgICAgKGlubGV0KSA9PlxuICAgICAgICAgIGlubGV0Lmdyb3VwLmFyZWFfaWQgPT09IHBvaW50Py5ncm91cC5hcmVhX2lkICYmXG4gICAgICAgICAgaW5sZXQuaXNfaW5sZXQgPT09IHRydWUsXG4gICAgICApLFxuICAgICk7XG4gICAgaWYgKGlubGV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHNldElubGV0cyhnZXRGYWN0b3JpZXMocG9pbnQ/Lmdyb3VwLmFyZWFfaWQpKTtcbiAgICAgIHNldEJ1dHRvbk5hbWUoJ3ZpZXdfZmFjdG9yaWVzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEJ1dHRvbk5hbWUoJ3ZpZXdfaW5sZXRzJyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldEFyZWFJbmxldHMgPSAoKSA9PiB7XG4gICAgaWYgKGFyZWEgIT09IHVuZGVmaW5lZCAmJiBhcmVhICE9PSBudWxsKSB7XG4gICAgICBzZXRJbmxldHMoYXJlYT8uc3ViX2FyZWFzLmZpbHRlcigoaW5sZXQpID0+IGlubGV0LmlzX2lubGV0ID09PSB0cnVlKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldEFyZWFEYXRhID0gKCkgPT4ge1xuICAgIGxldCBhcmVhRGF0YTogYW55ID0gW107XG5cbiAgICBpZiAoYXJlYT8uaXNfd3d0cCA9PT0gdHJ1ZSAmJiBpbmxldHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFyZWFEYXRhID0gaW5sZXRzLm1hcCgoYXJlYSkgPT4gKHsgLi4uYXJlYSwgbmFtZTogYXJlYS5hcmVhX25hbWUgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoYXJlYT8uc3ViX2FyZWFzICYmIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXJlYURhdGEgPSBhcmVhLnN1Yl9hcmVhcy5tYXAoXG4gICAgICAgICAgKHN1Yl9hcmVhKSA9PiAoXG4gICAgICAgICAgICBzdWJfYXJlYS5pc0lubGV0ID09PSBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uc3ViX2FyZWEsXG4gICAgICAgICAgICAgIG5hbWU6IHN1Yl9hcmVhLmFyZWFfbmFtZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHBvaW50cyAmJiBwb2ludHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFyZWFEYXRhID0gZ2V0RmFjdG9yaWVzKGFyZWE/LmFyZWFfaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcmVhRGF0YTtcbiAgfTtcblxuICBjb25zdCBkYXRhRm9yUGllID0gKCkgPT4ge1xuICAgIGxldCBkYXRhOiBhbnkgPSBbXTtcbiAgICBpZiAoYXJlYSkge1xuICAgICAgaWYgKGFyZWFEYXRhICYmIGFyZWFEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXJlYURhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGRhdGEucHVzaCh7IG5hbWU6IGl0ZW0ubmFtZSwgb3JnYW5pY19sb2FkOiA1LCB0b29sdGlwVmFsdWU6IDE1IH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBvaW50KSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihwb2ludC5uYW1lLCBpbmxldHMpO1xuICAgICAgICBpbmxldHM/LmZvckVhY2goKGlubGV0KSA9PiB7XG4gICAgICAgICAgZGF0YS5wdXNoKHsgbmFtZTogaW5sZXQubmFtZSwgb3JnYW5pY19sb2FkOiA1LCB0b29sdGlwVmFsdWU6IDE1IH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH07XG5cbiAgY29uc3QgdGl0bGUgPSAoKSA9PiB7XG4gICAgbGV0IHBheWxvYWQgPSAnJztcbiAgICBpZiAocG9pbnQpIHtcbiAgICAgIHBheWxvYWQgPSBwb2ludC5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoYXJlYSkge1xuICAgICAgICBwYXlsb2FkID0gYXJlYS5hcmVhX25hbWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IGNhbGNBcmVhQnV0dG9uTmFtZSA9ICgpID0+IHtcbiAgICBsZXQgbmFtZSA9ICd2aWV3X2ZhY3Rvcmllcyc7XG4gICAgaWYgKGFyZWEpIHtcbiAgICAgIGNvbnNvbGUud2FybihhcmVhLmFyZWFfbmFtZSwgYXJlYS5pc193d3RwLCBpbmxldHM/Lmxlbmd0aCk7XG4gICAgICBpZiAoYXJlYS5pc193d3RwID09PSB0cnVlICYmIGlubGV0cz8ubGVuZ3RoID4gMCkge1xuICAgICAgICBuYW1lID0gJ3ZpZXdfaW5sZXRzJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhcmVhPy5zdWJfYXJlYXMgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIG5hbWUgPSAndmlld19zdWJfYXJlYXMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuYW1lO1xuICB9O1xuXG4gIGNvbnN0IGJ1dHRvblRpdGxlID0gKCkgPT4ge1xuICAgIHJldHVybiBpMThuLnQoYHd3dHBQYWdlLiR7YnV0dG9uTmFtZX1gKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBpc0FQb2ludCA9IG9iamVjdC5mb3JXV1RQTWFwICE9PSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaXNBUG9pbnQpIHtcbiAgICAgIHNldFBvaW50KG9iamVjdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFyZWEob2JqZWN0KTtcbiAgICB9XG4gIH0sIFtvYmplY3RdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwb2ludCkge1xuICAgICAgc2V0UG9pbnRJbmxldHNBbmRCdXR0b24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXJlYUlubGV0cygpO1xuICAgICAgc2V0QXJlYURhdGEoZ2V0QXJlYURhdGEoKSk7XG4gICAgICBzZXRCdXR0b25OYW1lKGNhbGNBcmVhQnV0dG9uTmFtZSgpKTtcbiAgICB9XG4gIH0sIFtwb2ludCwgYXJlYV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlubGV0cy5sZW5ndGggPiAwKSB7XG4gICAgICBzZXRCdXR0b25OYW1lKCd2aWV3X2lubGV0cycpO1xuICAgIH1cbiAgfSwgW2lubGV0c10pO1xuXG4gIGNvbnN0IHdpZGdldENvbnRlbnQgPSAoKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGRhdGFGb3JQaWUoKTtcbiAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKCl9XG4gICAgICAgICAgICBjbGFzc05hbWU9eydjaGlsZHJlbkJ1dHRvbiByb3VuZGVkLXBpbGwgYnRuLWxpZ2h0J31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YnV0dG9uVGl0bGUoKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8SW5sZXRzUGllIGlubGV0cz17ZGF0YUZvclBpZSgpfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuby1yZXN1bHQtaWNvblwiPlxuICAgICAgICAgICAgPE5vUmVzdWx0U3ZnIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuby1yZXN1bHQtbXNnMVwiPntpMThuLnQoYHd3dHBQYWdlLm5vX3Jlc3VsdF8xYCl9PC9kaXY+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIm5vLXJlc3VsdC1tc2cyXCI+e2kxOG4udChgd3d0cFBhZ2Uubm9fcmVzdWx0XzJgKX08L2gzPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMz57dGl0bGUoKX08L2gzPlxuICAgICAgPENhcmQgY2xhc3NOYW1lPVwiYmctd2hpdGUgd2lkZ2V0LWNvbnRhaW5lclwiPnt3aWRnZXRDb250ZW50KCl9PC9DYXJkPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG1CQUFB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
|