@kando-env/kando-ui 1.2.458-alpha.7 → 1.2.458
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 +3 -3
- package/lib/Widgets/Map/MapUtils.js +1 -2
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +21 -6
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +2 -1
- package/lib/Widgets/PotentialImpactSummary/Icon.js +2 -1
- package/lib/components/DamageType/DamageType.js +3 -3
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +2 -2
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +4 -3
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +2 -1
- package/lib/i18n/en.json +11 -4
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +2 -1
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +2 -1
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +22 -21
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Header/index.js +1 -1
- package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Timelines/index.js +1 -1
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +14 -3
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +24 -7
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +4 -1
- package/lib/pages/EventsPage/events/events_list/Filter/FilterStyle.scss +27 -0
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +15 -3
- package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +76 -0
- package/lib/pages/SamplingsPage/SamplingsPage.js +4 -2
- package/lib/pages/SamplingsPage/style.module.scss +4 -0
- package/lib/store/filters/IFilterItem.js +1 -1
- package/lib/test/mocks/browser.js +1 -1
- package/lib/test/test-utils.js +1 -1
- package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +21 -17
- package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +120 -16
- package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +18 -8
- package/lib/ui-kit/HierarchyGraph/NodeLayout.js +18 -33
- package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +48 -0
- package/lib/ui-kit/HierarchyGraph/ScoreNode.js +35 -0
- package/lib/ui-kit/HierarchyGraph/style.scss +67 -31
- package/lib/ui-kit/HierarchyGraph/utils.js +16 -1
- package/lib/ui-kit/KandoTable/KandoTable.test.js +1 -1
- package/lib/utilities/Enum.js +4 -4
- package/lib/utilities/scoreToData.test.js +1 -1
- package/lib/utilities/urls.js +6 -1
- package/package.json +1 -1
- package/lib/ui-kit/HierarchyGraph/MicroStackedBarNode.js +0 -67
- package/lib/ui-kit/HierarchyGraph/PieNode.js +0 -26
|
@@ -42,7 +42,9 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
42
42
|
filterPopupOpen = props.filterPopupOpen,
|
|
43
43
|
applyLogic = props.applyLogic,
|
|
44
44
|
_props$fetchType = props.fetchType,
|
|
45
|
-
fetchType = _props$fetchType === void 0 ? 'EventFilters' : _props$fetchType
|
|
45
|
+
fetchType = _props$fetchType === void 0 ? 'EventFilters' : _props$fetchType,
|
|
46
|
+
_props$resetFilter = props.resetFilter,
|
|
47
|
+
resetFilter = _props$resetFilter === void 0 ? null : _props$resetFilter;
|
|
46
48
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
47
49
|
var nameInput = (0, _react.useRef)(null);
|
|
48
50
|
var filterContent = (0, _react.useRef)(null);
|
|
@@ -67,10 +69,14 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
67
69
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
68
70
|
activeFilter = _useState10[0],
|
|
69
71
|
setActiveFilter = _useState10[1];
|
|
70
|
-
var _useState11 = (0, _react.useState)(
|
|
72
|
+
var _useState11 = (0, _react.useState)({}),
|
|
71
73
|
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
defaultFilters = _useState12[0],
|
|
75
|
+
setDefaultFilters = _useState12[1];
|
|
76
|
+
var _useState13 = (0, _react.useState)(undefined),
|
|
77
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
78
|
+
activeFilterCopy = _useState14[0],
|
|
79
|
+
setActiveFilterCopy = _useState14[1];
|
|
74
80
|
// @ts-ignore
|
|
75
81
|
var csrf = document.querySelector("meta[name='csrf-token']").getAttribute('content');
|
|
76
82
|
var useQuery = function useQuery() {
|
|
@@ -81,6 +87,11 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
81
87
|
var getKQLFromURL = function getKQLFromURL() {
|
|
82
88
|
return query.get('valuesFromKQL');
|
|
83
89
|
};
|
|
90
|
+
var handleResetFilter = function handleResetFilter() {
|
|
91
|
+
var defaultFiltersClone = JSON.parse(JSON.stringify(defaultFilters));
|
|
92
|
+
resetFilter && resetFilter(defaultFiltersClone);
|
|
93
|
+
setActiveFilterCopy(defaultFiltersClone);
|
|
94
|
+
};
|
|
84
95
|
var getPointsToFilters = function getPointsToFilters(availableFilterItems, filters) {
|
|
85
96
|
var interestPointFilterItem = availableFilterItems.find(function (f) {
|
|
86
97
|
return f.type === 'InterestPointFilterItem';
|
|
@@ -158,6 +169,7 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
158
169
|
siteID = _useParams.siteID,
|
|
159
170
|
areaID = _useParams.areaID;
|
|
160
171
|
var getData = function getData() {
|
|
172
|
+
var firstTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
161
173
|
fetch("/ui_filters.json?water_authority_id=".concat(global_data.waterAuthorityId, "&filter_type=").concat(fetchType, "&valuesFromKQL=").concat(getKQLFromURL()).concat(siteID ? "&site_id=".concat(siteID) : '').concat(areaID ? "&area_id=".concat(areaID) : '')).then(function (response) {
|
|
162
174
|
return response.json();
|
|
163
175
|
}).then(function (json) {
|
|
@@ -175,6 +187,10 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
175
187
|
setActiveFilter(active);
|
|
176
188
|
setActiveFilterCopy(active);
|
|
177
189
|
}
|
|
190
|
+
if (firstTime) {
|
|
191
|
+
var defaultFiltersClone = JSON.parse(JSON.stringify(active));
|
|
192
|
+
setDefaultFilters(defaultFiltersClone);
|
|
193
|
+
}
|
|
178
194
|
applyFilter(active);
|
|
179
195
|
});
|
|
180
196
|
};
|
|
@@ -303,7 +319,7 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
303
319
|
setWaId(getWaIdFromURL());
|
|
304
320
|
if (!rendered) {
|
|
305
321
|
setRendered(true);
|
|
306
|
-
getData();
|
|
322
|
+
getData(!rendered);
|
|
307
323
|
} else {
|
|
308
324
|
if (global_data.eventFilterParam === '' && filters.length !== 0) {
|
|
309
325
|
var filter = filters.find(function (filter) {
|
|
@@ -383,10 +399,11 @@ var FilterContainer = function FilterContainer(props) {
|
|
|
383
399
|
activeFilterCopy: activeFilterCopy,
|
|
384
400
|
availableFilterItems: availableFilterItems,
|
|
385
401
|
parseSelectedItems: _kql.parseSelectedItems,
|
|
386
|
-
applyFilter: applyFilter
|
|
402
|
+
applyFilter: applyFilter,
|
|
403
|
+
resetFilter: resetFilter ? handleResetFilter : null
|
|
387
404
|
}))));
|
|
388
405
|
};
|
|
389
406
|
var connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
390
407
|
var _default = connector(FilterContainer);
|
|
391
408
|
exports.default = _default;
|
|
392
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfRHJvcGRvd24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZGlza2V0dGUiLCJfbGlzdCIsIl9hY3Rpb25zIiwiX2kxOG4iLCJfa3FsIiwiX0ZpbHRlciIsIl9GaWx0ZXJzRHJvcERvd24iLCJfYWN0aW9uc0NyZWF0b3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJuYXZfY29udGV4dF9kYXRhIiwicG9pbnRzX2RhdGEiLCJGaWx0ZXJDb250YWluZXIiLCJwcm9wcyIsImN1c3RvbV9wb2ludHMiLCJmaWx0ZXJQb3B1cE9wZW4iLCJhcHBseUxvZ2ljIiwiX3Byb3BzJGZldGNoVHlwZSIsImZldGNoVHlwZSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJuYW1lSW5wdXQiLCJ1c2VSZWYiLCJmaWx0ZXJDb250ZW50IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImF2YWlsYWJsZUZpbHRlckl0ZW1zIiwic2V0QXZhaWxhYmxlRmlsdGVySXRlbXMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInJlbmRlcmVkIiwic2V0UmVuZGVyZWQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsIldhSWQiLCJzZXRXYUlkIiwiX3VzZVN0YXRlOSIsInVuZGVmaW5lZCIsIl91c2VTdGF0ZTEwIiwiYWN0aXZlRmlsdGVyIiwic2V0QWN0aXZlRmlsdGVyIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImFjdGl2ZUZpbHRlckNvcHkiLCJzZXRBY3RpdmVGaWx0ZXJDb3B5IiwiY3NyZiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImdldEF0dHJpYnV0ZSIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwidXNlTG9jYXRpb24iLCJzZWFyY2giLCJoaXN0b3J5IiwidXNlSGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMRnJvbVVSTCIsImdldFBvaW50c1RvRmlsdGVycyIsImludGVyZXN0UG9pbnRGaWx0ZXJJdGVtIiwiZmluZCIsImYiLCJ0eXBlIiwiZmlsdGVyZWRQb2ludHNEYXRhIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsInBhcnRfb2Zfb2JzZXJ2YXRpb24iLCJtYXAiLCJpZCIsIm5hbWUiLCJncm91cCIsIm9wdGlvbnMiLCJmb3JFYWNoIiwiZmlsdGVySXRlbSIsImZpbHRlcl9pdGVtcyIsImZpIiwiYXZhaWxhYmxlX29wdGlvbnMiLCJ1cGRhdGVTaXRlVG9GaWx0ZXJzIiwic2l0ZUZpbHRlckl0ZW0iLCJmZXRjaEV2ZW50RmlsdGVycyIsInByZXBhcmVkUGFyYW1zIiwibWV0aG9kIiwidXJsIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZmV0Y2giLCJoZWFkZXJzIiwiQWNjZXB0IiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwiZGF0YSIsImF2YWlsYWJsZV9maWx0ZXJfaXRlbXMiLCJzYXZlZCIsImRlZXBDbG9uZSIsInBhcnNlIiwiX3VzZVBhcmFtcyIsInVzZVBhcmFtcyIsInNpdGVJRCIsImFyZWFJRCIsImdldERhdGEiLCJjb25jYXQiLCJ3YXRlckF1dGhvcml0eUlkIiwianNvblNoYWxsb3dDb3B5IiwiYXNzaWduIiwiYWN0aXZlIiwiZGlzcGxheWVkX2ZpbHRlciIsInNlbGVjdGVkUGVyaW9kIiwic2VsZWN0ZWRfb3B0aW9ucyIsImFjdGl2YXRlRmlsdGVyIiwiYXBwbHlGaWx0ZXIiLCJoYW5kbGVGaWx0ZXJDaGFuZ2UiLCJjdXJyZW50IiwiY2xpY2siLCJzYXZlQWN0aXZlRmlsdGVyIiwiY2xvbmVkRmlsdGVycyIsImZpbHRlclRvTW9kaWZ5SW5kZXgiLCJpbmRleE9mIiwiZmlsdGVyX3R5cGUiLCJ1aV9maWx0ZXIiLCJpc19hY3RpdmUiLCJNYXRoIiwic2lnbiIsImNyZWF0ZUZpbHRlciIsIm5ld0ZpbHRlciIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJkZWxldGVGaWx0ZXIiLCJnZXRFdmVudElkRnJvbVVSTCIsImdldFdhSWRGcm9tVVJMIiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsInZhbHVlIiwibmF2Q29udGV4dCIsImluY2x1ZGVzIiwicHVzaCIsImxvY2FsZSIsImJ1aWxkS1FMUXVlcnkiLCJzZXRFdmVudEZpbHRlclBhcmFtIiwic2V0QWN0aXZlRmlsdGVyR2xvYmFsbHkiLCJzZXRTYW1wbGluZ0RhdGEiLCJjdXJyZW50UGFnZSIsImlzRmV0Y2giLCJoYW5kbGVDcmVhdGlvbkNsaWNrIiwidXNlRWZmZWN0IiwiZXZlbnRGaWx0ZXJQYXJhbSIsImNsZWFudXAiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicmVmIiwiaTE4biIsInQiLCJUb2dnbGUiLCJ2YXJpYW50IiwiUmVhY3RDb21wb25lbnQiLCJoZWlnaHQiLCJ3aWR0aCIsImZpbGwiLCJNZW51IiwiSXRlbSIsImRpc2FibGVkIiwib25DbGljayIsIkZvcm1Db250cm9sIiwicGxhY2Vob2xkZXIiLCJhdXRvRm9jdXMiLCJCdXR0b24iLCJwYXJzZVNlbGVjdGVkSXRlbXMiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBEcm9wZG93biBmcm9tICdyZWFjdC1ib290c3RyYXAvRHJvcGRvd24nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24sIHVzZVBhcmFtcyB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgU2F2ZUljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2Rpc2tldHRlLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBMaXN0SWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvbGlzdC5zdmcnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgSUZpbHRlciB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckl0ZW0gfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVySXRlbSc7XG5pbXBvcnQge1xuICBzZXRBY3RpdmVGaWx0ZXJHbG9iYWxseSxcbiAgc2V0RXZlbnRGaWx0ZXJQYXJhbSxcbn0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgYnVpbGRLUUxRdWVyeSwgcGFyc2VTZWxlY3RlZEl0ZW1zIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9rcWwnO1xuaW1wb3J0ICcuL0ZpbHRlclN0eWxlLnNjc3MnO1xuaW1wb3J0IEZpbHRlciBmcm9tICcuL0ZpbHRlcic7XG5pbXBvcnQgRmlsdGVyc0Ryb3BEb3duIGZyb20gJy4vRmlsdGVyc0Ryb3BEb3duJztcbmltcG9ydCB7IHNldFNhbXBsaW5nRGF0YSB9IGZyb20gJ3NyYy9zdG9yZS9zYW1wbGluZ3MvYWN0aW9uc0NyZWF0b3InO1xuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBnbG9iYWxfZGF0YSwgbmF2X2NvbnRleHRfZGF0YSwgcG9pbnRzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBJUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgZmlsdGVyUG9wdXBPcGVuOiBib29sZWFuO1xuICBmZXRjaFR5cGU6IHN0cmluZztcbiAgY3VzdG9tX3BvaW50cz86IGFueTtcbiAgYXBwbHlMb2dpYz86ICh2YWx1ZXM6IHN0cmluZykgPT4gdm9pZDtcbn07XG5cbmNvbnN0IEZpbHRlckNvbnRhaW5lcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBjdXN0b21fcG9pbnRzLFxuICAgIGZpbHRlclBvcHVwT3BlbixcbiAgICBhcHBseUxvZ2ljLFxuICAgIGZldGNoVHlwZSA9ICdFdmVudEZpbHRlcnMnLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmFtZUlucHV0ID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBmaWx0ZXJDb250ZW50ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2ZpbHRlcnMsIHNldEZpbHRlcnNdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFthdmFpbGFibGVGaWx0ZXJJdGVtcywgc2V0QXZhaWxhYmxlRmlsdGVySXRlbXNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbcmVuZGVyZWQsIHNldFJlbmRlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW1dhSWQsIHNldFdhSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4oKTtcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgY29uc3QgW2FjdGl2ZUZpbHRlciwgc2V0QWN0aXZlRmlsdGVyXSA9IHVzZVN0YXRlPGFueT4odW5kZWZpbmVkKTtcbiAgY29uc3QgW2FjdGl2ZUZpbHRlckNvcHksIHNldEFjdGl2ZUZpbHRlckNvcHldID0gdXNlU3RhdGU8YW55Pih1bmRlZmluZWQpO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNzcmYgPSBkb2N1bWVudFxuICAgIC5xdWVyeVNlbGVjdG9yKFwibWV0YVtuYW1lPSdjc3JmLXRva2VuJ11cIilcbiAgICAuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gIGNvbnN0IHVzZVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHVzZUxvY2F0aW9uKCkuc2VhcmNoKTtcbiAgfTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeSgpO1xuICBjb25zdCBnZXRLUUxGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3ZhbHVlc0Zyb21LUUwnKTtcbiAgfTtcblxuICBjb25zdCBnZXRQb2ludHNUb0ZpbHRlcnMgPSAoYXZhaWxhYmxlRmlsdGVySXRlbXM6IGFueSwgZmlsdGVyczogYW55KSA9PiB7XG4gICAgbGV0IGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtID0gYXZhaWxhYmxlRmlsdGVySXRlbXMuZmluZChcbiAgICAgIChmOiBJRmlsdGVySXRlbSkgPT4gZi50eXBlID09PSAnSW50ZXJlc3RQb2ludEZpbHRlckl0ZW0nLFxuICAgICk7XG4gICAgbGV0IGZpbHRlcmVkUG9pbnRzRGF0YSA9XG4gICAgICBjdXN0b21fcG9pbnRzIHx8XG4gICAgICBwb2ludHNfZGF0YS5pdGVtc1xuICAgICAgICAuZmlsdGVyKChwb2ludDogSVBvaW50KSA9PiBwb2ludC5wYXJ0X29mX29ic2VydmF0aW9uID09PSB0cnVlKVxuICAgICAgICAubWFwKChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHBvaW50LmlkLCBuYW1lOiBwb2ludC5ncm91cC5uYW1lIH07XG4gICAgICAgIH0pO1xuXG4gICAgaWYgKGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGludGVyZXN0UG9pbnRGaWx0ZXJJdGVtLm9wdGlvbnMgPSBmaWx0ZXJlZFBvaW50c0RhdGE7XG4gICAgfVxuXG4gICAgZmlsdGVycy5mb3JFYWNoKChmOiBJRmlsdGVyKSA9PiB7XG4gICAgICBsZXQgZmlsdGVySXRlbSA9IGYuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAgIChmaTogSUZpbHRlckl0ZW0pID0+IGZpLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgICApO1xuXG4gICAgICBpZiAoZmlsdGVySXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMgPSBmaWx0ZXJlZFBvaW50c0RhdGE7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGN1c3RvbV9wb2ludHMpIHtcbiAgICAgIHVwZGF0ZVNpdGVUb0ZpbHRlcnMoYXZhaWxhYmxlRmlsdGVySXRlbXMsIGZpbHRlcnMpO1xuICAgIH1cbiAgICBzZXRGaWx0ZXJzKGZpbHRlcnMpO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVNpdGVUb0ZpbHRlcnMgPSAoYXZhaWxhYmxlRmlsdGVySXRlbXM6IGFueSwgZmlsdGVyczogYW55KSA9PiB7XG4gICAgbGV0IHNpdGVGaWx0ZXJJdGVtID0gYXZhaWxhYmxlRmlsdGVySXRlbXMuZmluZChcbiAgICAgIChmOiBJRmlsdGVySXRlbSkgPT4gZi50eXBlID09PSAnU2l0ZUZpbHRlckl0ZW0nLFxuICAgICk7XG4gICAgbGV0IGZpbHRlcmVkUG9pbnRzRGF0YSA9IGN1c3RvbV9wb2ludHM7XG5cbiAgICBpZiAoc2l0ZUZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2l0ZUZpbHRlckl0ZW0ub3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICB9XG5cbiAgICBmaWx0ZXJzLmZvckVhY2goKGY6IElGaWx0ZXIpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZi5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgKGZpOiBJRmlsdGVySXRlbSkgPT4gZmkudHlwZSA9PT0gJ1NpdGVGaWx0ZXJJdGVtJyxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBmZXRjaEV2ZW50RmlsdGVycyA9IChcbiAgICBwcmVwYXJlZFBhcmFtczogYW55LFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGZpbHRlcjogYW55ID0gbnVsbCxcbiAgKSA9PiB7XG4gICAgaWYgKGNzcmYgIT09IG51bGwpIHtcbiAgICAgIGZldGNoKHVybCwge1xuICAgICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGNzcmYsXG4gICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHByZXBhcmVkUGFyYW1zKSxcbiAgICAgIH0pXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIGdldFBvaW50c1RvRmlsdGVycyhkYXRhLmF2YWlsYWJsZV9maWx0ZXJfaXRlbXMsIGRhdGEuZmlsdGVycyk7XG5cbiAgICAgICAgICBpZiAoZmlsdGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXQgc2F2ZWQgPSBkYXRhLmZpbHRlcnMuZmluZChcbiAgICAgICAgICAgICAgKGY6IElGaWx0ZXIpID0+IGYubmFtZSA9PT0gZmlsdGVyLm5hbWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKHNhdmVkKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoc2F2ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRlZXBDbG9uZSA9IChkYXRhOiBhbnkpID0+IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gIH07XG5cbiAgY29uc3QgeyBzaXRlSUQsIGFyZWFJRCB9ID0gdXNlUGFyYW1zKCk7XG5cbiAgY29uc3QgZ2V0RGF0YSA9ICgpID0+IHtcbiAgICBmZXRjaChcbiAgICAgIGAvdWlfZmlsdGVycy5qc29uP3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICB9JmZpbHRlcl90eXBlPSR7ZmV0Y2hUeXBlfSZ2YWx1ZXNGcm9tS1FMPSR7Z2V0S1FMRnJvbVVSTCgpfSR7XG4gICAgICAgIHNpdGVJRCA/IGAmc2l0ZV9pZD0ke3NpdGVJRH1gIDogJydcbiAgICAgIH0ke2FyZWFJRCA/IGAmYXJlYV9pZD0ke2FyZWFJRH1gIDogJyd9YCxcbiAgICApXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgIGdldFBvaW50c1RvRmlsdGVycyhqc29uLmF2YWlsYWJsZV9maWx0ZXJfaXRlbXMsIGpzb24uZmlsdGVycyk7XG5cbiAgICAgICAgbGV0IGpzb25TaGFsbG93Q29weSA9IE9iamVjdC5hc3NpZ24oe30sIGpzb24pO1xuICAgICAgICBqc29uU2hhbGxvd0NvcHkuZmlsdGVycyA9IGRlZXBDbG9uZShqc29uU2hhbGxvd0NvcHkuZmlsdGVycyk7XG4gICAgICAgIGxldCBhY3RpdmUgPSBqc29uU2hhbGxvd0NvcHkuZGlzcGxheWVkX2ZpbHRlcjtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2VsZWN0ZWRQZXJpb2QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGdsb2JhbF9kYXRhLnNlbGVjdGVkUGVyaW9kICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGFjdGl2ZS5maWx0ZXJfaXRlbXNbMV0uc2VsZWN0ZWRfb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLnNlbGVjdGVkUGVyaW9kLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aXZlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RpdmF0ZUZpbHRlcihqc29uU2hhbGxvd0NvcHkuZmlsdGVyc1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0QXZhaWxhYmxlRmlsdGVySXRlbXMoanNvblNoYWxsb3dDb3B5LmF2YWlsYWJsZV9maWx0ZXJfaXRlbXMpO1xuICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihhY3RpdmUpO1xuICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFwcGx5RmlsdGVyKGFjdGl2ZSk7XG4gICAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGaWx0ZXJDaGFuZ2UgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgc2V0QWN0aXZlRmlsdGVyKGRlZXBDbG9uZShmaWx0ZXIpKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRlZXBDbG9uZShmaWx0ZXIpKTtcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgY29uc3Qgc2F2ZUFjdGl2ZUZpbHRlciA9IChcbiAgICBmaWx0ZXI6XG4gICAgICB8IElGaWx0ZXJcbiAgICAgIHwge1xuICAgICAgICAgIGlkOiBudW1iZXI7XG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIGZpbHRlcl9pdGVtczogSUZpbHRlckl0ZW1bXTtcbiAgICAgICAgICBpc19hY3RpdmU6IGJvb2xlYW47XG4gICAgICAgIH0sXG4gICkgPT4ge1xuICAgIGxldCBjbG9uZWRGaWx0ZXJzID0gZGVlcENsb25lKGZpbHRlcnMpO1xuICAgIGxldCBmaWx0ZXJUb01vZGlmeUluZGV4ID0gY2xvbmVkRmlsdGVycy5pbmRleE9mKFxuICAgICAgY2xvbmVkRmlsdGVycy5maW5kKChmOiBhbnkpID0+IGYuaWQgPT09IGZpbHRlci5pZCksXG4gICAgKTtcbiAgICBsZXQgcHJlcGFyZWRQYXJhbXMgPSB7XG4gICAgICBmaWx0ZXJfdHlwZTogZmV0Y2hUeXBlLFxuICAgICAgdWlfZmlsdGVyOiB7XG4gICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICBpc19hY3RpdmU6IGZpbHRlci5pc19hY3RpdmUsXG4gICAgICAgIGZpbHRlcl9pdGVtczogSlNPTi5zdHJpbmdpZnkoZmlsdGVyLmZpbHRlcl9pdGVtcyksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjbG9uZWRGaWx0ZXJzW2ZpbHRlclRvTW9kaWZ5SW5kZXhdID0gZmlsdGVyO1xuICAgIHNldEZpbHRlcnMoY2xvbmVkRmlsdGVycyk7XG4gICAgc2V0QWN0aXZlRmlsdGVyKGZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShmaWx0ZXIpO1xuXG4gICAgaWYgKE1hdGguc2lnbihmaWx0ZXIuaWQpID4gMCkge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUFVUJyxcbiAgICAgICAgYC91aV9maWx0ZXJzLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZldGNoRXZlbnRGaWx0ZXJzKFxuICAgICAgICBwcmVwYXJlZFBhcmFtcyxcbiAgICAgICAgJ1BPU1QnLFxuICAgICAgICBgL3VpX2ZpbHRlcnM/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgbmV3RmlsdGVyID0ge1xuICAgICAgaWQ6IC0xLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIGZpbHRlcl9pdGVtczogZmlsdGVyLmZpbHRlcl9pdGVtcyxcbiAgICAgIGlzX2FjdGl2ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHNldEZpbHRlcnMoWy4uLmZpbHRlcnMsIG5ld0ZpbHRlcl0pO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkobmV3RmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgICBzYXZlQWN0aXZlRmlsdGVyKG5ld0ZpbHRlcik7XG4gIH07XG5cbiAgY29uc3QgZGVsZXRlRmlsdGVyID0gKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgIGlmIChjc3JmICE9PSBudWxsICYmIGZpbHRlci5pZCAhPT0gLTEpIHtcbiAgICAgIGZldGNoKFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmZpbHRlcl90eXBlPSR7ZmV0Y2hUeXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdYLUNTUkYtVG9rZW4nOiBjc3JmLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIGxldCBhY3RpdmUgPSBkYXRhLmZpbHRlcnMuZmluZChcbiAgICAgICAgICAgIChmaWx0ZXI6IElGaWx0ZXIpID0+IGZpbHRlci5pc19hY3RpdmUgPT09IHRydWUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChhY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RmlsdGVycyhkYXRhLmZpbHRlcnMpO1xuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKGFjdGl2ZSk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGFjdGl2ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIGdldERhdGEoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRhdGEuZmlsdGVyc1swXS5pc19hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoZGF0YS5maWx0ZXJzWzBdKTtcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0RXZlbnRJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnZXZlbnRJZCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldFdhSWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3dhdGVyX2F1dGhvcml0eV9pZCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldEtRTFZhbHVlc0Zyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuXG4gIGNvbnN0IGFjdGl2YXRlRmlsdGVyID0gKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgIGZldGNoRXZlbnRGaWx0ZXJzKFxuICAgICAge30sXG4gICAgICAnUFVUJyxcbiAgICAgIGAvdWlfZmlsdGVycy9hY3RpdmF0ZS8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgIGZpbHRlcixcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGFwcGx5RmlsdGVyID0gKGZpbHRlciA9IGFjdGl2ZUZpbHRlckNvcHkpID0+IHtcbiAgICBsZXQgdmFsdWUgPSAnc2V2ZXJpdHknO1xuXG4gICAgaWYgKG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lID09PSAnc2FtcGxpbmdzLWxpc3QnKSB7XG4gICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2V0S1FMVmFsdWVzRnJvbVVSTCgpICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnbmV3ZXN0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWUgPSAnbmV3ZXN0JztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnb2xkZXN0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWUgPSAnb2xkZXN0JztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdPUkRFUl9CWScpICYmXG4gICAgICAgICAgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIS5pbmNsdWRlcygnc2V2ZXJpdHknKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdzZXZlcml0eSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdldmVudHNfdmlldycpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZ2YWx1ZXNGcm9tS1FMPSR7YnVpbGRLUUxRdWVyeShcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lID09PSAnc2FtcGxpbmdzLWxpc3QnKSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICB9JmxvY2FsZT0ke1xuICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgfSZ2YWx1ZXNGcm9tS1FMPSR7YnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKX1gLFxuICAgICAgKTtcblxuICAgICAgaWYgKGFwcGx5TG9naWMgIT09IHVuZGVmaW5lZCkgYXBwbHlMb2dpYyhidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpKTtcbiAgICB9XG4gICAgaWYgKGZldGNoVHlwZSA9PT0gJ0hpZXJhcmNoeUZpbHRlcicpIHtcbiAgICAgIGFwcGx5TG9naWMoZmlsdGVyKTtcbiAgICB9XG5cbiAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpKTtcbiAgICBkaXNwYXRjaChzZXRBY3RpdmVGaWx0ZXJHbG9iYWxseShmaWx0ZXIpKTtcbiAgICAvLyBBbHdheXMgcmVzZXQgcGFnZSB0byAxIHdoZW4gYSBuZXcgZmlsdGVyIGlzIGFwcGxpZWRcbiAgICBkaXNwYXRjaChzZXRTYW1wbGluZ0RhdGEoeyBjdXJyZW50UGFnZTogMSwgaXNGZXRjaDogZmFsc2UgfSkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNyZWF0aW9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgY3JlYXRlRmlsdGVyKGFjdGl2ZUZpbHRlckNvcHksIG5hbWVJbnB1dC5jdXJyZW50IS52YWx1ZSk7XG4gICAgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlID0gJyc7XG4gICAgZmlsdGVyQ29udGVudC5jdXJyZW50IS5jbGljaygpO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0V2FJZChnZXRXYUlkRnJvbVVSTCgpKTtcbiAgICBpZiAoIXJlbmRlcmVkKSB7XG4gICAgICBzZXRSZW5kZXJlZCh0cnVlKTtcbiAgICAgIGdldERhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW0gPT09ICcnICYmIGZpbHRlcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGxldCBmaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcjogSUZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXIuaXNfYWN0aXZlO1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShmaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIHNldFJlbmRlcmVkKGZhbHNlKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgV2FJZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgZmlsdGVyLWNvbnRhaW5lciAke1xuICAgICAgICBmaWx0ZXJQb3B1cE9wZW4gPyAnJyA6ICdmaWx0ZXItY29udGFpbmVyLS1oaWRkZW4nXG4gICAgICB9YH1cbiAgICA+XG4gICAgICB7YWN0aXZlRmlsdGVyQ29weSAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXItY29udGFpbmVyX19jb250ZW50J30gcmVmPXtmaWx0ZXJDb250ZW50fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnRfX2hlYWRlcid9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0aXRsZSd9PlxuICAgICAgICAgICAgICA8aDQ+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5maWx0ZXInKX08L2g0PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnYWN0aW9ucyd9PlxuICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uJ30+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgICAgIDxMaXN0SWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwcmVzZXQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0cHhcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFkMWQxZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2FjdGl2ZUZpbHRlckNvcHkubmFtZX17JyAnfVxuICAgICAgICAgICAgICAgICAge2FjdGl2ZUZpbHRlckNvcHkuaWQgPT09IC0xID8gKFxuICAgICAgICAgICAgICAgICAgICA8Yj4gKHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIudW5zYXZlZCcpfSkgPC9iPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG5cbiAgICAgICAgICAgICAgICA8RmlsdGVyc0Ryb3BEb3duXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlPXtoYW5kbGVGaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICAgICAgYWN0aXZhdGVGaWx0ZXI9e2FjdGl2YXRlRmlsdGVyfVxuICAgICAgICAgICAgICAgICAgZGVsZXRlRmlsdGVyPXtkZWxldGVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cblxuICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uJ30+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgICAgIDxTYXZlSWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzYXZlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM3B4XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxM3B4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMxZDFkMWRcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5sYWJlbCcpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxEcm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgPERyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2FjdGl2ZUZpbHRlckNvcHkuaWQgPT09IC0xID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc2F2ZUFjdGl2ZUZpbHRlcihhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmV4aXN0aW5nJyl9XG4gICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd24gY2xhc3NOYW1lPXsnYWN0aW9uIGFjdGlvbi0tc2F2ZSd9PlxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5uZXcnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyduZXctZmlsdGVyLXBvcHVwJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmZpZWxkX3BsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hbWUgdGhpcyBmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYmFzaWMtYWRkb24yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtuYW1lSW5wdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNyZWF0aW9uQ2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdkZXZpY2VfaGVhbHRoX3N0YXR1cy5vaycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnRfX2JvZHknfT5cbiAgICAgICAgICAgIDxGaWx0ZXJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weT17c2V0QWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weT17YWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgYXZhaWxhYmxlRmlsdGVySXRlbXM9e2F2YWlsYWJsZUZpbHRlckl0ZW1zfVxuICAgICAgICAgICAgICBwYXJzZVNlbGVjdGVkSXRlbXM9e3BhcnNlU2VsZWN0ZWRJdGVtc31cbiAgICAgICAgICAgICAgYXBwbHlGaWx0ZXI9e2FwcGx5RmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEZpbHRlckNvbnRhaW5lcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxlQUFBLEdBQUFMLE9BQUE7QUFBc0UsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQUEsSUFBQU8sS0FBQSxHQUFBUCxPQUFBO0FBTXRFLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUtBLElBQUFTLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLElBQUEsR0FBQVYsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQVcsT0FBQSxHQUFBUixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVksZ0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFhLGVBQUEsR0FBQWIsT0FBQTtBQUFxRSxTQUFBYyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEs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
|
|
409
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfRHJvcGRvd24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZGlza2V0dGUiLCJfbGlzdCIsIl9hY3Rpb25zIiwiX2kxOG4iLCJfa3FsIiwiX0ZpbHRlciIsIl9GaWx0ZXJzRHJvcERvd24iLCJfYWN0aW9uc0NyZWF0b3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJuYXZfY29udGV4dF9kYXRhIiwicG9pbnRzX2RhdGEiLCJGaWx0ZXJDb250YWluZXIiLCJwcm9wcyIsImN1c3RvbV9wb2ludHMiLCJmaWx0ZXJQb3B1cE9wZW4iLCJhcHBseUxvZ2ljIiwiX3Byb3BzJGZldGNoVHlwZSIsImZldGNoVHlwZSIsIl9wcm9wcyRyZXNldEZpbHRlciIsInJlc2V0RmlsdGVyIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm5hbWVJbnB1dCIsInVzZVJlZiIsImZpbHRlckNvbnRlbnQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWx0ZXJzIiwic2V0RmlsdGVycyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicmVuZGVyZWQiLCJzZXRSZW5kZXJlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiV2FJZCIsInNldFdhSWQiLCJfdXNlU3RhdGU5IiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVGaWx0ZXIiLCJzZXRBY3RpdmVGaWx0ZXIiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiZGVmYXVsdEZpbHRlcnMiLCJzZXREZWZhdWx0RmlsdGVycyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJhY3RpdmVGaWx0ZXJDb3B5Iiwic2V0QWN0aXZlRmlsdGVyQ29weSIsImNzcmYiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJnZXRBdHRyaWJ1dGUiLCJ1c2VRdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsInVzZUxvY2F0aW9uIiwic2VhcmNoIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJxdWVyeSIsImdldEtRTEZyb21VUkwiLCJoYW5kbGVSZXNldEZpbHRlciIsImRlZmF1bHRGaWx0ZXJzQ2xvbmUiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJnZXRQb2ludHNUb0ZpbHRlcnMiLCJpbnRlcmVzdFBvaW50RmlsdGVySXRlbSIsImZpbmQiLCJmIiwidHlwZSIsImZpbHRlcmVkUG9pbnRzRGF0YSIsIml0ZW1zIiwiZmlsdGVyIiwicG9pbnQiLCJwYXJ0X29mX29ic2VydmF0aW9uIiwibWFwIiwiaWQiLCJuYW1lIiwiZ3JvdXAiLCJvcHRpb25zIiwiZm9yRWFjaCIsImZpbHRlckl0ZW0iLCJmaWx0ZXJfaXRlbXMiLCJmaSIsImF2YWlsYWJsZV9vcHRpb25zIiwidXBkYXRlU2l0ZVRvRmlsdGVycyIsInNpdGVGaWx0ZXJJdGVtIiwiZmV0Y2hFdmVudEZpbHRlcnMiLCJwcmVwYXJlZFBhcmFtcyIsIm1ldGhvZCIsInVybCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZldGNoIiwiaGVhZGVycyIsIkFjY2VwdCIsImJvZHkiLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwiZGF0YSIsImF2YWlsYWJsZV9maWx0ZXJfaXRlbXMiLCJzYXZlZCIsImRlZXBDbG9uZSIsIl91c2VQYXJhbXMiLCJ1c2VQYXJhbXMiLCJzaXRlSUQiLCJhcmVhSUQiLCJnZXREYXRhIiwiZmlyc3RUaW1lIiwiY29uY2F0Iiwid2F0ZXJBdXRob3JpdHlJZCIsImpzb25TaGFsbG93Q29weSIsImFzc2lnbiIsImFjdGl2ZSIsImRpc3BsYXllZF9maWx0ZXIiLCJzZWxlY3RlZFBlcmlvZCIsInNlbGVjdGVkX29wdGlvbnMiLCJhY3RpdmF0ZUZpbHRlciIsImFwcGx5RmlsdGVyIiwiaGFuZGxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudCIsImNsaWNrIiwic2F2ZUFjdGl2ZUZpbHRlciIsImNsb25lZEZpbHRlcnMiLCJmaWx0ZXJUb01vZGlmeUluZGV4IiwiaW5kZXhPZiIsImZpbHRlcl90eXBlIiwidWlfZmlsdGVyIiwiaXNfYWN0aXZlIiwiTWF0aCIsInNpZ24iLCJjcmVhdGVGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZGVsZXRlRmlsdGVyIiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJnZXRXYUlkRnJvbVVSTCIsImdldEtRTFZhbHVlc0Zyb21VUkwiLCJ2YWx1ZSIsIm5hdkNvbnRleHQiLCJpbmNsdWRlcyIsInB1c2giLCJsb2NhbGUiLCJidWlsZEtRTFF1ZXJ5Iiwic2V0RXZlbnRGaWx0ZXJQYXJhbSIsInNldEFjdGl2ZUZpbHRlckdsb2JhbGx5Iiwic2V0U2FtcGxpbmdEYXRhIiwiY3VycmVudFBhZ2UiLCJpc0ZldGNoIiwiaGFuZGxlQ3JlYXRpb25DbGljayIsInVzZUVmZmVjdCIsImV2ZW50RmlsdGVyUGFyYW0iLCJjbGVhbnVwIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsImkxOG4iLCJ0IiwiVG9nZ2xlIiwidmFyaWFudCIsIlJlYWN0Q29tcG9uZW50IiwiaGVpZ2h0Iiwid2lkdGgiLCJmaWxsIiwiTWVudSIsIkl0ZW0iLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJGb3JtQ29udHJvbCIsInBsYWNlaG9sZGVyIiwiYXV0b0ZvY3VzIiwiQnV0dG9uIiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBGb3JtQ29udHJvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAncmVhY3QtYm9vdHN0cmFwL0Ryb3Bkb3duJztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uLCB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFNhdmVJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9kaXNrZXR0ZS5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgTGlzdEljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2xpc3Quc3ZnJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElGaWx0ZXIgfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVyJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IHtcbiAgc2V0QWN0aXZlRmlsdGVyR2xvYmFsbHksXG4gIHNldEV2ZW50RmlsdGVyUGFyYW0sXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnksIHBhcnNlU2VsZWN0ZWRJdGVtcyB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi9GaWx0ZXJTdHlsZS5zY3NzJztcbmltcG9ydCBGaWx0ZXIgZnJvbSAnLi9GaWx0ZXInO1xuaW1wb3J0IEZpbHRlcnNEcm9wRG93biBmcm9tICcuL0ZpbHRlcnNEcm9wRG93bic7XG5pbXBvcnQgeyBzZXRTYW1wbGluZ0RhdGEgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZ2xvYmFsX2RhdGEsIG5hdl9jb250ZXh0X2RhdGEsIHBvaW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIGZpbHRlclBvcHVwT3BlbjogYm9vbGVhbjtcbiAgZmV0Y2hUeXBlOiBzdHJpbmc7XG4gIGN1c3RvbV9wb2ludHM/OiBhbnk7XG4gIGFwcGx5TG9naWM/OiAodmFsdWVzOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHJlc2V0RmlsdGVyPzogKGZpbHRlcikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IEZpbHRlckNvbnRhaW5lcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBjdXN0b21fcG9pbnRzLFxuICAgIGZpbHRlclBvcHVwT3BlbixcbiAgICBhcHBseUxvZ2ljLFxuICAgIGZldGNoVHlwZSA9ICdFdmVudEZpbHRlcnMnLFxuICAgIHJlc2V0RmlsdGVyID0gbnVsbCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hbWVJbnB1dCA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgZmlsdGVyQ29udGVudCA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtmaWx0ZXJzLCBzZXRGaWx0ZXJzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbYXZhaWxhYmxlRmlsdGVySXRlbXMsIHNldEF2YWlsYWJsZUZpbHRlckl0ZW1zXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW3JlbmRlcmVkLCBzZXRSZW5kZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtXYUlkLCBzZXRXYUlkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KCk7XG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IFthY3RpdmVGaWx0ZXIsIHNldEFjdGl2ZUZpbHRlcl0gPSB1c2VTdGF0ZTxhbnk+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFtkZWZhdWx0RmlsdGVycywgc2V0RGVmYXVsdEZpbHRlcnNdID0gdXNlU3RhdGU8YW55Pih7fSk7XG4gIGNvbnN0IFthY3RpdmVGaWx0ZXJDb3B5LCBzZXRBY3RpdmVGaWx0ZXJDb3B5XSA9IHVzZVN0YXRlPGFueT4odW5kZWZpbmVkKTtcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjc3JmID0gZG9jdW1lbnRcbiAgICAucXVlcnlTZWxlY3RvcihcIm1ldGFbbmFtZT0nY3NyZi10b2tlbiddXCIpXG4gICAgLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXRGaWx0ZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEZpbHRlcnNDbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGVmYXVsdEZpbHRlcnMpKTtcbiAgICByZXNldEZpbHRlciAmJiByZXNldEZpbHRlcihkZWZhdWx0RmlsdGVyc0Nsb25lKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRlZmF1bHRGaWx0ZXJzQ2xvbmUpO1xuICB9O1xuXG4gIGNvbnN0IGdldFBvaW50c1RvRmlsdGVycyA9IChhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55LCBmaWx0ZXJzOiBhbnkpID0+IHtcbiAgICBsZXQgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgKGY6IElGaWx0ZXJJdGVtKSA9PiBmLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgKTtcbiAgICBsZXQgZmlsdGVyZWRQb2ludHNEYXRhID1cbiAgICAgIGN1c3RvbV9wb2ludHMgfHxcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zXG4gICAgICAgIC5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LnBhcnRfb2Zfb2JzZXJ2YXRpb24gPT09IHRydWUpXG4gICAgICAgIC5tYXAoKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBpZDogcG9pbnQuaWQsIG5hbWU6IHBvaW50Lmdyb3VwLm5hbWUgfTtcbiAgICAgICAgfSk7XG5cbiAgICBpZiAoaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0ub3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICB9XG5cbiAgICBmaWx0ZXJzLmZvckVhY2goKGY6IElGaWx0ZXIpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZi5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgKGZpOiBJRmlsdGVySXRlbSkgPT4gZmkudHlwZSA9PT0gJ0ludGVyZXN0UG9pbnRGaWx0ZXJJdGVtJyxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY3VzdG9tX3BvaW50cykge1xuICAgICAgdXBkYXRlU2l0ZVRvRmlsdGVycyhhdmFpbGFibGVGaWx0ZXJJdGVtcywgZmlsdGVycyk7XG4gICAgfVxuICAgIHNldEZpbHRlcnMoZmlsdGVycyk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlU2l0ZVRvRmlsdGVycyA9IChhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55LCBmaWx0ZXJzOiBhbnkpID0+IHtcbiAgICBsZXQgc2l0ZUZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgKGY6IElGaWx0ZXJJdGVtKSA9PiBmLnR5cGUgPT09ICdTaXRlRmlsdGVySXRlbScsXG4gICAgKTtcbiAgICBsZXQgZmlsdGVyZWRQb2ludHNEYXRhID0gY3VzdG9tX3BvaW50cztcblxuICAgIGlmIChzaXRlRmlsdGVySXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaXRlRmlsdGVySXRlbS5vcHRpb25zID0gZmlsdGVyZWRQb2ludHNEYXRhO1xuICAgIH1cblxuICAgIGZpbHRlcnMuZm9yRWFjaCgoZjogSUZpbHRlcikgPT4ge1xuICAgICAgbGV0IGZpbHRlckl0ZW0gPSBmLmZpbHRlcl9pdGVtcy5maW5kKFxuICAgICAgICAoZmk6IElGaWx0ZXJJdGVtKSA9PiBmaS50eXBlID09PSAnU2l0ZUZpbHRlckl0ZW0nLFxuICAgICAgKTtcblxuICAgICAgaWYgKGZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zID0gZmlsdGVyZWRQb2ludHNEYXRhO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZldGNoRXZlbnRGaWx0ZXJzID0gKFxuICAgIHByZXBhcmVkUGFyYW1zOiBhbnksXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZmlsdGVyOiBhbnkgPSBudWxsLFxuICApID0+IHtcbiAgICBpZiAoY3NyZiAhPT0gbnVsbCkge1xuICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAnWC1DU1JGLVRva2VuJzogY3NyZixcbiAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocHJlcGFyZWRQYXJhbXMpLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgZ2V0UG9pbnRzVG9GaWx0ZXJzKGRhdGEuYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcywgZGF0YS5maWx0ZXJzKTtcblxuICAgICAgICAgIGlmIChmaWx0ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBzYXZlZCA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgICAoZjogSUZpbHRlcikgPT4gZi5uYW1lID09PSBmaWx0ZXIubmFtZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoc2F2ZWQpO1xuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShzYXZlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGVlcENsb25lID0gKGRhdGE6IGFueSkgPT4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgfTtcblxuICBjb25zdCB7IHNpdGVJRCwgYXJlYUlEIH0gPSB1c2VQYXJhbXMoKTtcblxuICBjb25zdCBnZXREYXRhID0gKGZpcnN0VGltZSA9IGZhbHNlKSA9PiB7XG4gICAgZmV0Y2goXG4gICAgICBgL3VpX2ZpbHRlcnMuanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX0mdmFsdWVzRnJvbUtRTD0ke2dldEtRTEZyb21VUkwoKX0ke1xuICAgICAgICBzaXRlSUQgPyBgJnNpdGVfaWQ9JHtzaXRlSUR9YCA6ICcnXG4gICAgICB9JHthcmVhSUQgPyBgJmFyZWFfaWQ9JHthcmVhSUR9YCA6ICcnfWAsXG4gICAgKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICBnZXRQb2ludHNUb0ZpbHRlcnMoanNvbi5hdmFpbGFibGVfZmlsdGVyX2l0ZW1zLCBqc29uLmZpbHRlcnMpO1xuXG4gICAgICAgIGxldCBqc29uU2hhbGxvd0NvcHkgPSBPYmplY3QuYXNzaWduKHt9LCBqc29uKTtcbiAgICAgICAganNvblNoYWxsb3dDb3B5LmZpbHRlcnMgPSBkZWVwQ2xvbmUoanNvblNoYWxsb3dDb3B5LmZpbHRlcnMpO1xuICAgICAgICBsZXQgYWN0aXZlID0ganNvblNoYWxsb3dDb3B5LmRpc3BsYXllZF9maWx0ZXI7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGdsb2JhbF9kYXRhLnNlbGVjdGVkUGVyaW9kICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zZWxlY3RlZFBlcmlvZCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBhY3RpdmUuZmlsdGVyX2l0ZW1zWzFdLnNlbGVjdGVkX29wdGlvbnMgPSBbXG4gICAgICAgICAgICBnbG9iYWxfZGF0YS5zZWxlY3RlZFBlcmlvZCxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFjdGl2ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWN0aXZhdGVGaWx0ZXIoanNvblNoYWxsb3dDb3B5LmZpbHRlcnNbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldEF2YWlsYWJsZUZpbHRlckl0ZW1zKGpzb25TaGFsbG93Q29weS5hdmFpbGFibGVfZmlsdGVyX2l0ZW1zKTtcbiAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoYWN0aXZlKTtcbiAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGFjdGl2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXJzQ2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGl2ZSkpO1xuICAgICAgICAgIHNldERlZmF1bHRGaWx0ZXJzKGRlZmF1bHRGaWx0ZXJzQ2xvbmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHlGaWx0ZXIoYWN0aXZlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IElGaWx0ZXIpID0+IHtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIGZpbHRlckNvbnRlbnQuY3VycmVudCEuY2xpY2soKTtcbiAgfTtcblxuICBjb25zdCBzYXZlQWN0aXZlRmlsdGVyID0gKFxuICAgIGZpbHRlcjpcbiAgICAgIHwgSUZpbHRlclxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZmlsdGVyX2l0ZW1zOiBJRmlsdGVySXRlbVtdO1xuICAgICAgICAgIGlzX2FjdGl2ZTogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgKSA9PiB7XG4gICAgbGV0IGNsb25lZEZpbHRlcnMgPSBkZWVwQ2xvbmUoZmlsdGVycyk7XG4gICAgbGV0IGZpbHRlclRvTW9kaWZ5SW5kZXggPSBjbG9uZWRGaWx0ZXJzLmluZGV4T2YoXG4gICAgICBjbG9uZWRGaWx0ZXJzLmZpbmQoKGY6IGFueSkgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSxcbiAgICApO1xuICAgIGxldCBwcmVwYXJlZFBhcmFtcyA9IHtcbiAgICAgIGZpbHRlcl90eXBlOiBmZXRjaFR5cGUsXG4gICAgICB1aV9maWx0ZXI6IHtcbiAgICAgICAgbmFtZTogZmlsdGVyLm5hbWUsXG4gICAgICAgIGlzX2FjdGl2ZTogZmlsdGVyLmlzX2FjdGl2ZSxcbiAgICAgICAgZmlsdGVyX2l0ZW1zOiBKU09OLnN0cmluZ2lmeShmaWx0ZXIuZmlsdGVyX2l0ZW1zKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNsb25lZEZpbHRlcnNbZmlsdGVyVG9Nb2RpZnlJbmRleF0gPSBmaWx0ZXI7XG4gICAgc2V0RmlsdGVycyhjbG9uZWRGaWx0ZXJzKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG5cbiAgICBpZiAoTWF0aC5zaWduKGZpbHRlci5pZCkgPiAwKSB7XG4gICAgICBmZXRjaEV2ZW50RmlsdGVycyhcbiAgICAgICAgcHJlcGFyZWRQYXJhbXMsXG4gICAgICAgICdQVVQnLFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUE9TVCcsXG4gICAgICAgIGAvdWlfZmlsdGVycz93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUZpbHRlciA9IChmaWx0ZXI6IElGaWx0ZXIsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZXdGaWx0ZXIgPSB7XG4gICAgICBpZDogLTEsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgZmlsdGVyX2l0ZW1zOiBmaWx0ZXIuZmlsdGVyX2l0ZW1zLFxuICAgICAgaXNfYWN0aXZlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgbmV3RmlsdGVyXSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShuZXdGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlcihuZXdGaWx0ZXIpO1xuICAgIHNhdmVBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgaWYgKGNzcmYgIT09IG51bGwgJiYgZmlsdGVyLmlkICE9PSAtMSkge1xuICAgICAgZmV0Y2goXG4gICAgICAgIGAvdWlfZmlsdGVycy8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGNzcmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgbGV0IGFjdGl2ZSA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgKGZpbHRlcjogSUZpbHRlcikgPT4gZmlsdGVyLmlzX2FjdGl2ZSA9PT0gdHJ1ZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoYWN0aXZlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRhdGEuZmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgZ2V0RGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGF0YS5maWx0ZXJzWzBdLmlzX2FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRhdGEuZmlsdGVyc1swXSk7XG4gICAgICAgICAgICAgIHNldEZpbHRlcnMoZGF0YS5maWx0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0V2FJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnd2F0ZXJfYXV0aG9yaXR5X2lkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG5cbiAgY29uc3QgYWN0aXZhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICB7fSxcbiAgICAgICdQVVQnLFxuICAgICAgYC91aV9maWx0ZXJzL2FjdGl2YXRlLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX1gLFxuICAgICAgZmlsdGVyLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlGaWx0ZXIgPSAoZmlsdGVyID0gYWN0aXZlRmlsdGVyQ29weSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICdzZXZlcml0eSc7XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIHZhbHVlID0gJ25ld2VzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChnZXRLUUxWYWx1ZXNGcm9tVVJMKCkgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCduZXdlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdvbGRlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdvbGRlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdzZXZlcml0eScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gJ3NldmVyaXR5JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZSA9PT0gJ2V2ZW50c192aWV3Jykge1xuICAgICAgaGlzdG9yeS5wdXNoKFxuICAgICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgfSZsb2NhbGU9JHtcbiAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlXG4gICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpfWAsXG4gICAgICApO1xuXG4gICAgICBpZiAoYXBwbHlMb2dpYyAhPT0gdW5kZWZpbmVkKSBhcHBseUxvZ2ljKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoZmV0Y2hUeXBlID09PSAnSGllcmFyY2h5RmlsdGVyJykge1xuICAgICAgYXBwbHlMb2dpYyhmaWx0ZXIpO1xuICAgIH1cblxuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oYnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKSkpO1xuICAgIGRpc3BhdGNoKHNldEFjdGl2ZUZpbHRlckdsb2JhbGx5KGZpbHRlcikpO1xuICAgIC8vIEFsd2F5cyByZXNldCBwYWdlIHRvIDEgd2hlbiBhIG5ldyBmaWx0ZXIgaXMgYXBwbGllZFxuICAgIGRpc3BhdGNoKHNldFNhbXBsaW5nRGF0YSh7IGN1cnJlbnRQYWdlOiAxLCBpc0ZldGNoOiBmYWxzZSB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRpb25DbGljayA9ICgpID0+IHtcbiAgICBjcmVhdGVGaWx0ZXIoYWN0aXZlRmlsdGVyQ29weSwgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlKTtcbiAgICBuYW1lSW5wdXQuY3VycmVudCEudmFsdWUgPSAnJztcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRXYUlkKGdldFdhSWRGcm9tVVJMKCkpO1xuICAgIGlmICghcmVuZGVyZWQpIHtcbiAgICAgIHNldFJlbmRlcmVkKHRydWUpO1xuICAgICAgZ2V0RGF0YSghcmVuZGVyZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSA9PT0gJycgJiYgZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IGZpbHRlcnMuZmluZCgoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5pc19hY3RpdmU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UmVuZGVyZWQoZmFsc2UpO1xuICAgIH07XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLCBXYUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmaWx0ZXItY29udGFpbmVyICR7XG4gICAgICAgIGZpbHRlclBvcHVwT3BlbiA/ICcnIDogJ2ZpbHRlci1jb250YWluZXItLWhpZGRlbidcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIHthY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnQnfSByZWY9e2ZpbHRlckNvbnRlbnR9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9faGVhZGVyJ30+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RpdGxlJ30+XG4gICAgICAgICAgICAgIDxoND57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmZpbHRlcicpfTwvaDQ+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydhY3Rpb25zJ30+XG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPExpc3RJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInByZXNldC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMWQxZDFkXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5uYW1lfXsnICd9XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxiPiAoe2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci51bnNhdmVkJyl9KSA8L2I+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxGaWx0ZXJzRHJvcERvd25cbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2U9e2hhbmRsZUZpbHRlckNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgICAgICBhY3RpdmF0ZUZpbHRlcj17YWN0aXZhdGVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICBkZWxldGVGaWx0ZXI9e2RlbGV0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuXG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPFNhdmVJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNhdmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFkMWQxZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzYXZlQWN0aXZlRmlsdGVyKGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZXhpc3RpbmcnKX1cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uSXRlbT5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24gYWN0aW9uLS1zYXZlJ30+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLm5ldycpfVxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J25ldy1maWx0ZXItcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZmllbGRfcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSB0aGlzIGZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25hbWVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ3JlYXRpb25DbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2RldmljZV9oZWFsdGhfc3RhdHVzLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9fYm9keSd9PlxuICAgICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5PXtzZXRBY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcz17YXZhaWxhYmxlRmlsdGVySXRlbXN9XG4gICAgICAgICAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcz17cGFyc2VTZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgICAgICBhcHBseUZpbHRlcj17YXBwbHlGaWx0ZXJ9XG4gICAgICAgICAgICAgIHJlc2V0RmlsdGVyPXtyZXNldEZpbHRlciA/IGhhbmRsZVJlc2V0RmlsdGVyIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihGaWx0ZXJDb250YWluZXIpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQXNFLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUFBLElBQUFPLEtBQUEsR0FBQVAsT0FBQTtBQU10RSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFLQSxJQUFBUyxLQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxJQUFBLEdBQUFWLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFXLE9BQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLGdCQUFBLEdBQUFULHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFBcUUsU0FBQWMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFoQix3QkFBQW9CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxV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
|
|
@@ -111,12 +111,15 @@ var FilterItem = function FilterItem(props) {
|
|
|
111
111
|
return _i18n.default.t("events_overview.filter.points_mode.".concat(option));
|
|
112
112
|
case 'SamplerFilterItem':
|
|
113
113
|
return _i18n.default.t("events_overview.filter.sampler_mode.".concat(option));
|
|
114
|
+
case 'InsightDataFilterItem':
|
|
115
|
+
return _i18n.default.t("events_overview.filter.insight_data.".concat(option));
|
|
114
116
|
case 'LabFilterItem':
|
|
115
117
|
return displayNameForObjectTypedOptions(filterItem, option, forOuterDisplay);
|
|
116
118
|
case 'SamplingStatusFilterItem':
|
|
117
119
|
return _i18n.default.t("events_overview.filter.samplings_status.".concat(option));
|
|
118
120
|
case 'SamplingIdFilterItem':
|
|
119
121
|
return displayNameForObjectTypedOptions(filterItem, option, forOuterDisplay);
|
|
122
|
+
case 'SamplingParameterFilterItem':
|
|
120
123
|
case 'SiteFilterItem':
|
|
121
124
|
return displayNameForObjectTypedOptions(filterItem, option, forOuterDisplay);
|
|
122
125
|
}
|
|
@@ -190,4 +193,4 @@ var FilterItem = function FilterItem(props) {
|
|
|
190
193
|
};
|
|
191
194
|
var _default = FilterItem;
|
|
192
195
|
exports.default = _default;
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9pMThuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9PcHRpb25zRHJvcERvd24iLCJfVGltZVJhbmdlSGVscGVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJGaWx0ZXJJdGVtIiwicHJvcHMiLCJmaWx0ZXJfaXRlbSIsInBhcnNlU2VsZWN0ZWRJdGVtcyIsImFjdGl2ZUZpbHRlckNvcHkiLCJzZXRBY3RpdmVGaWx0ZXJDb3B5IiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsInNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwIiwiaGFuZGxlRmlsdGVySXRlbUNsaWNrIiwiZmlsdGVySXRlbSIsInNob3ciLCJmaWx0ZXJJdGVtSWQiLCJpZCIsInJlbW92ZUZpbHRlckl0ZW0iLCJ1bmRlZmluZWQiLCJpbmRleCIsImZpbHRlcl9pdGVtcyIsImluZGV4T2YiLCJmaW5kIiwiaXRlbSIsInNwbGljZSIsImFjdGl2ZUZpbHRlckR1cGxpY2F0ZSIsImFzc2lnbiIsImhhbmRsZUNoYW5nZSIsInNlbGVjdGVkIiwiYWN0aXZlRmlsdGVyIiwic2VsZWN0ZWRPcHRpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInNlbGVjdGlvbiIsInB1c2giLCJvcmlnaW5hbCIsInNlbGVjdGVkX29wdGlvbnMiLCJoYW5kbGVTaW5nbGVTZWxlY3Rpb24iLCJfcmVmIiwiX3JlZiRjdXJyZW50VGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIl9yZWYkY3VzdG9tVmFsdWUiLCJjdXN0b21WYWx1ZSIsInNlbGVjdGVkVmFsdWUiLCJjaGlsZHJlbiIsInZhbHVlIiwic3RyaXBEYW1hZ2VUeXBlIiwic3RyaW5nIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiY2FtZWxUb1NuYWtlQ2FzZSIsInN0ciIsInNsaWNlIiwibGV0dGVyIiwiY29uY2F0IiwiZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMiLCJvcHRpb24iLCJmb3JPdXRlckRpc3BsYXkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImYiLCJuYW1lIiwidHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsIiwiYXJndW1lbnRzIiwidHlwZSIsImkxOG4iLCJ0IiwiZm9ybWF0VGltZVNlbGVjdGlvbiIsInRyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlIiwiZmlsdGVySXRlbVR5cGUiLCJnZXRTZWxlY3Rpb25zIiwic2VsZWN0aW9ucyIsIm1hcCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtYXRjaEZpbHRlckl0ZW0iLCJhdmFpbGFibGVGaWx0ZXJJdGVtIiwib3B0aW9ucyIsIkZyYWdtZW50Iiwib25DbGljayIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYVRpbWVzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgRm9ybUV2ZW50LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRmlsdGVyIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlcic7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IE9wdGlvbnNEcm9wRG93biBmcm9tICcuL09wdGlvbnNEcm9wRG93bic7XG5pbXBvcnQgeyBmb3JtYXRUaW1lU2VsZWN0aW9uIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvVGltZVJhbmdlU2VsZWN0b3IvVGltZVJhbmdlSGVscGVyJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGZpbHRlcl9pdGVtOiBJRmlsdGVySXRlbTtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBGdW5jdGlvbjtcbiAgYWN0aXZlRmlsdGVyQ29weTogYW55O1xuICBzZXRBY3RpdmVGaWx0ZXJDb3B5OiBSZWFjdC5EaXNwYXRjaDxhbnk+O1xuICBhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55O1xuICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xuICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xufTtcblxudHlwZSBJQ3VzdG9tVmFsdWUgPSB7XG4gIGN1c3RvbVZhbHVlOiBzdHJpbmc7XG59O1xuXG50eXBlIElTZWxlY3Rpb25FdmVudCA9IElDdXN0b21WYWx1ZSB8IEZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PjtcblxuY29uc3QgRmlsdGVySXRlbTogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZmlsdGVyX2l0ZW0sXG4gICAgcGFyc2VTZWxlY3RlZEl0ZW1zLFxuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weSxcbiAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcyxcbiAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBoYW5kbGVGaWx0ZXJJdGVtQ2xpY2sgPSAoZmlsdGVySXRlbTogYW55KSA9PiB7XG4gICAgaWYgKFxuICAgICAgIXNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLnNob3cgJiZcbiAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCAhPT0gZmlsdGVySXRlbS5pZFxuICAgICkge1xuICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoe1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlckl0ZW0uaWQsXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlRmlsdGVySXRlbSA9IChmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSkgPT4ge1xuICAgIGlmIChhY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBpbmRleCA9IGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmluZGV4T2YoXG4gICAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAgICAgKGl0ZW06IElGaWx0ZXJJdGVtKSA9PiBpdGVtLmlkID09PSBmaWx0ZXJJdGVtLmlkLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGxldCBhY3RpdmVGaWx0ZXJEdXBsaWNhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyRHVwbGljYXRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKFxuICAgIHNlbGVjdGVkOiBhbnksXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgYWN0aXZlRmlsdGVyOiBJRmlsdGVyLFxuICApID0+IHtcbiAgICBsZXQgc2VsZWN0ZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHNlbGVjdGVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgc2VsZWN0ZWQuZm9yRWFjaCgoc2VsZWN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0aW9uLm9yaWdpbmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlckl0ZW0uc2VsZWN0ZWRfb3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucztcbiAgICBsZXQgYWN0aXZlRmlsdGVyQ29weSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGl2ZUZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTaW5nbGVTZWxlY3Rpb24gPSAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHsgY3VycmVudFRhcmdldCA9ICcnLCBjdXN0b21WYWx1ZSA9ICcnIH06IElTZWxlY3Rpb25FdmVudCxcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBhY3RpdmVGaWx0ZXI6IElGaWx0ZXIsXG4gICkgPT4ge1xuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGN1c3RvbVZhbHVlIHx8IGN1cnJlbnRUYXJnZXQuY2hpbGRyZW5bMF0udmFsdWU7XG4gICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0ZWRWYWx1ZSk7XG4gICAgZmlsdGVySXRlbS5zZWxlY3RlZF9vcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xuXG4gICAgbGV0IGFjdGl2ZUZpbHRlckNvcHkgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyQ29weSk7XG4gIH07XG5cbiAgY29uc3Qgc3RyaXBEYW1hZ2VUeXBlID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHN0cmluZy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1snICcvJl0vZywgJy0nKTtcbiAgfTtcblxuICBjb25zdCBjYW1lbFRvU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICAgIHN0clswXS50b0xvd2VyQ2FzZSgpICtcbiAgICBzdHJcbiAgICAgIC5zbGljZSgxLCBzdHIubGVuZ3RoKVxuICAgICAgLnJlcGxhY2UoL1tBLVpdL2csIChsZXR0ZXIpID0+IGBfJHtsZXR0ZXIudG9Mb3dlckNhc2UoKX1gKTtcbiAgY29uc3QgZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBhbnksXG4gICAgZm9yT3V0ZXJEaXNwbGF5OiBib29sZWFuLFxuICApID0+IHtcbiAgICBsZXQgaXRlbTtcbiAgICBpZiAoZm9yT3V0ZXJEaXNwbGF5ICYmIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGl0ZW0gPSBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zLmZpbmQoKGYpID0+IGYuaWQgPT09IG9wdGlvbik7XG4gICAgICBpdGVtICE9PSB1bmRlZmluZWQgJiYgKGl0ZW0gPSBpdGVtLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtID0gb3B0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBjb25zdCB0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBzdHJpbmcsXG4gICAgZm9yT3V0ZXJEaXNwbGF5ID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHN3aXRjaCAoZmlsdGVySXRlbS50eXBlKSB7XG4gICAgICBjYXNlICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdWYXJlYUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnQXJlYUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2VjdG9yRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdTZXZlcml0eUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ0RhbWFnZVR5cGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChcbiAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LmRhbWFnZV90eXBlcy4ke3N0cmlwRGFtYWdlVHlwZShvcHRpb24pfWAsXG4gICAgICAgICk7XG4gICAgICBjYXNlICdUaW1lRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lU2VsZWN0aW9uKG9wdGlvbik7XG4gICAgICBjYXNlICdTdGF0dXNGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zdGF0dXMuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdTYW1wbGluZ0ZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhbXBsaW5nc19vcHRpb25zLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdNb2RlRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5maWx0ZXIuc2FtcGxpbmdfbW9kZS4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1BvaW50c01vZGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5wb2ludHNfbW9kZS4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1NhbXBsZXJGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGVyX21vZGUuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdMYWJGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ1NhbXBsaW5nU3RhdHVzRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5maWx0ZXIuc2FtcGxpbmdzX3N0YXR1cy4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1NhbXBsaW5nSWRGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ1NpdGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhbnNsYXRlRmlsdGVySXRlbVR5cGUgPSAoZmlsdGVySXRlbVR5cGU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBpMThuLnQoXG4gICAgICBgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5maWx0ZXJfdHlwZXMuJHtjYW1lbFRvU25ha2VDYXNlKGZpbHRlckl0ZW1UeXBlKX1gLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZ2V0U2VsZWN0aW9ucyA9IChzZWxlY3RlZF9vcHRpb25zOiBhbnkpID0+IHtcbiAgICBsZXQgc2VsZWN0aW9uczogYW55W10gPSBbXTtcbiAgICBpZiAoc2VsZWN0ZWRfb3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICBwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pXG4gICAgICAgIC5zbGljZSgwLCAxKVxuICAgICAgICAubWFwKChzZWxlY3Rpb246IHN0cmluZykgPT5cbiAgICAgICAgICBzZWxlY3Rpb25zLnB1c2goXG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnRfX3NlbGVjdGlvbnNfX3NlbGVjdGlvbid9XG4gICAgICAgICAgICAgIGtleT17c2VsZWN0aW9ufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsKGZpbHRlcl9pdGVtLCBzZWxlY3Rpb24sIHRydWUpfVxuICAgICAgICAgICAgPC9saT4sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIHNlbGVjdGlvbnMucHVzaChcbiAgICAgICAgPHNwYW4ga2V5PXsnTU9SRSd9PntgICgke3NlbGVjdGVkX29wdGlvbnMubGVuZ3RofSlgfTwvc3Bhbj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pLm1hcCgoc2VsZWN0aW9uOiBzdHJpbmcpID0+XG4gICAgICAgIHNlbGVjdGlvbnMucHVzaChcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtX19jb250ZW50X19zZWxlY3Rpb25zX19zZWxlY3Rpb24nfVxuICAgICAgICAgICAga2V5PXtzZWxlY3Rpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3RyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbChmaWx0ZXJfaXRlbSwgc2VsZWN0aW9uLCB0cnVlKX1cbiAgICAgICAgICA8L2xpPixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbnM7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZmlsdGVyX2l0ZW0uc2VsZWN0ZWRfb3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwKHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBmaWx0ZXJfaXRlbS5pZCxcbiAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXJfaXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgbGV0IG1hdGNoRmlsdGVySXRlbSA9IGF2YWlsYWJsZUZpbHRlckl0ZW1zLmZpbmQoXG4gICAgICAgIChhdmFpbGFibGVGaWx0ZXJJdGVtOiBhbnkpID0+XG4gICAgICAgICAgYXZhaWxhYmxlRmlsdGVySXRlbS50eXBlID09PSBmaWx0ZXJfaXRlbS50eXBlLFxuICAgICAgKTtcblxuICAgICAgaWYgKG1hdGNoRmlsdGVySXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlcl9pdGVtLmF2YWlsYWJsZV9vcHRpb25zID0gbWF0Y2hGaWx0ZXJJdGVtLm9wdGlvbnM7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZmlsdGVyX2l0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnQnfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVGaWx0ZXJJdGVtQ2xpY2soZmlsdGVyX2l0ZW0pfVxuICAgICAgPlxuICAgICAgICA8c3Bhbj57dHJhbnNsYXRlRmlsdGVySXRlbVR5cGUoZmlsdGVyX2l0ZW0udHlwZSl9PC9zcGFuPlxuICAgICAgICA8dWwgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnRfX3NlbGVjdGlvbnMnfT5cbiAgICAgICAgICB7Z2V0U2VsZWN0aW9ucyhwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pKS5tYXAoXG4gICAgICAgICAgICAoc2VsZWN0aW9uOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICApfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxhIG9uQ2xpY2s9eygpID0+IHJlbW92ZUZpbHRlckl0ZW0oZmlsdGVyX2l0ZW0pfT5cbiAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYVRpbWVzfSAvPlxuICAgICAgPC9hPlxuICAgICAge3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCA9PT0gZmlsdGVyX2l0ZW0uaWQgJiZcbiAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAgJiYgKFxuICAgICAgICAgIDxPcHRpb25zRHJvcERvd25cbiAgICAgICAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcz17cGFyc2VTZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgICAgZmlsdGVySXRlbT17ZmlsdGVyX2l0ZW19XG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA9e3NldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwfVxuICAgICAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA9e3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwfVxuICAgICAgICAgICAgaGFuZGxlU2luZ2xlU2VsZWN0aW9uPXtoYW5kbGVTaW5nbGVTZWxlY3Rpb259XG4gICAgICAgICAgICB0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWw9e3RyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbH1cbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbHRlckl0ZW07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFB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
|
|
196
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9pMThuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9PcHRpb25zRHJvcERvd24iLCJfVGltZVJhbmdlSGVscGVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJGaWx0ZXJJdGVtIiwicHJvcHMiLCJmaWx0ZXJfaXRlbSIsInBhcnNlU2VsZWN0ZWRJdGVtcyIsImFjdGl2ZUZpbHRlckNvcHkiLCJzZXRBY3RpdmVGaWx0ZXJDb3B5IiwiYXZhaWxhYmxlRmlsdGVySXRlbXMiLCJzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsInNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwIiwiaGFuZGxlRmlsdGVySXRlbUNsaWNrIiwiZmlsdGVySXRlbSIsInNob3ciLCJmaWx0ZXJJdGVtSWQiLCJpZCIsInJlbW92ZUZpbHRlckl0ZW0iLCJ1bmRlZmluZWQiLCJpbmRleCIsImZpbHRlcl9pdGVtcyIsImluZGV4T2YiLCJmaW5kIiwiaXRlbSIsInNwbGljZSIsImFjdGl2ZUZpbHRlckR1cGxpY2F0ZSIsImFzc2lnbiIsImhhbmRsZUNoYW5nZSIsInNlbGVjdGVkIiwiYWN0aXZlRmlsdGVyIiwic2VsZWN0ZWRPcHRpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInNlbGVjdGlvbiIsInB1c2giLCJvcmlnaW5hbCIsInNlbGVjdGVkX29wdGlvbnMiLCJoYW5kbGVTaW5nbGVTZWxlY3Rpb24iLCJfcmVmIiwiX3JlZiRjdXJyZW50VGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIl9yZWYkY3VzdG9tVmFsdWUiLCJjdXN0b21WYWx1ZSIsInNlbGVjdGVkVmFsdWUiLCJjaGlsZHJlbiIsInZhbHVlIiwic3RyaXBEYW1hZ2VUeXBlIiwic3RyaW5nIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiY2FtZWxUb1NuYWtlQ2FzZSIsInN0ciIsInNsaWNlIiwibGV0dGVyIiwiY29uY2F0IiwiZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMiLCJvcHRpb24iLCJmb3JPdXRlckRpc3BsYXkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImYiLCJuYW1lIiwidHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsIiwiYXJndW1lbnRzIiwidHlwZSIsImkxOG4iLCJ0IiwiZm9ybWF0VGltZVNlbGVjdGlvbiIsInRyYW5zbGF0ZUZpbHRlckl0ZW1UeXBlIiwiZmlsdGVySXRlbVR5cGUiLCJnZXRTZWxlY3Rpb25zIiwic2VsZWN0aW9ucyIsIm1hcCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtYXRjaEZpbHRlckl0ZW0iLCJhdmFpbGFibGVGaWx0ZXJJdGVtIiwib3B0aW9ucyIsIkZyYWdtZW50Iiwib25DbGljayIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYVRpbWVzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgRm9ybUV2ZW50LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRmlsdGVyIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlcic7XG5pbXBvcnQgeyBJRmlsdGVySXRlbSB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXJJdGVtJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IE9wdGlvbnNEcm9wRG93biBmcm9tICcuL09wdGlvbnNEcm9wRG93bic7XG5pbXBvcnQgeyBmb3JtYXRUaW1lU2VsZWN0aW9uIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvVGltZVJhbmdlU2VsZWN0b3IvVGltZVJhbmdlSGVscGVyJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGZpbHRlcl9pdGVtOiBJRmlsdGVySXRlbTtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBGdW5jdGlvbjtcbiAgYWN0aXZlRmlsdGVyQ29weTogYW55O1xuICBzZXRBY3RpdmVGaWx0ZXJDb3B5OiBSZWFjdC5EaXNwYXRjaDxhbnk+O1xuICBhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55O1xuICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xuICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cDogYW55O1xufTtcblxudHlwZSBJQ3VzdG9tVmFsdWUgPSB7XG4gIGN1c3RvbVZhbHVlOiBzdHJpbmc7XG59O1xuXG50eXBlIElTZWxlY3Rpb25FdmVudCA9IElDdXN0b21WYWx1ZSB8IEZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PjtcblxuY29uc3QgRmlsdGVySXRlbTogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZmlsdGVyX2l0ZW0sXG4gICAgcGFyc2VTZWxlY3RlZEl0ZW1zLFxuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weSxcbiAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcyxcbiAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBoYW5kbGVGaWx0ZXJJdGVtQ2xpY2sgPSAoZmlsdGVySXRlbTogYW55KSA9PiB7XG4gICAgaWYgKFxuICAgICAgIXNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLnNob3cgJiZcbiAgICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCAhPT0gZmlsdGVySXRlbS5pZFxuICAgICkge1xuICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAoe1xuICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlckl0ZW0uaWQsXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlRmlsdGVySXRlbSA9IChmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSkgPT4ge1xuICAgIGlmIChhY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBpbmRleCA9IGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmluZGV4T2YoXG4gICAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAgICAgKGl0ZW06IElGaWx0ZXJJdGVtKSA9PiBpdGVtLmlkID09PSBmaWx0ZXJJdGVtLmlkLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGFjdGl2ZUZpbHRlckNvcHkuZmlsdGVyX2l0ZW1zLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGxldCBhY3RpdmVGaWx0ZXJEdXBsaWNhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyRHVwbGljYXRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKFxuICAgIHNlbGVjdGVkOiBhbnksXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgYWN0aXZlRmlsdGVyOiBJRmlsdGVyLFxuICApID0+IHtcbiAgICBsZXQgc2VsZWN0ZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHNlbGVjdGVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgc2VsZWN0ZWQuZm9yRWFjaCgoc2VsZWN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0aW9uLm9yaWdpbmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlckl0ZW0uc2VsZWN0ZWRfb3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucztcbiAgICBsZXQgYWN0aXZlRmlsdGVyQ29weSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGl2ZUZpbHRlcik7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTaW5nbGVTZWxlY3Rpb24gPSAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHsgY3VycmVudFRhcmdldCA9ICcnLCBjdXN0b21WYWx1ZSA9ICcnIH06IElTZWxlY3Rpb25FdmVudCxcbiAgICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbSxcbiAgICBhY3RpdmVGaWx0ZXI6IElGaWx0ZXIsXG4gICkgPT4ge1xuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGN1c3RvbVZhbHVlIHx8IGN1cnJlbnRUYXJnZXQuY2hpbGRyZW5bMF0udmFsdWU7XG4gICAgc2VsZWN0ZWRPcHRpb25zLnB1c2goc2VsZWN0ZWRWYWx1ZSk7XG4gICAgZmlsdGVySXRlbS5zZWxlY3RlZF9vcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xuXG4gICAgbGV0IGFjdGl2ZUZpbHRlckNvcHkgPSBPYmplY3QuYXNzaWduKHt9LCBhY3RpdmVGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlRmlsdGVyQ29weSk7XG4gIH07XG5cbiAgY29uc3Qgc3RyaXBEYW1hZ2VUeXBlID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHN0cmluZy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1snICcvJl0vZywgJy0nKTtcbiAgfTtcblxuICBjb25zdCBjYW1lbFRvU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICAgIHN0clswXS50b0xvd2VyQ2FzZSgpICtcbiAgICBzdHJcbiAgICAgIC5zbGljZSgxLCBzdHIubGVuZ3RoKVxuICAgICAgLnJlcGxhY2UoL1tBLVpdL2csIChsZXR0ZXIpID0+IGBfJHtsZXR0ZXIudG9Mb3dlckNhc2UoKX1gKTtcbiAgY29uc3QgZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBhbnksXG4gICAgZm9yT3V0ZXJEaXNwbGF5OiBib29sZWFuLFxuICApID0+IHtcbiAgICBsZXQgaXRlbTtcbiAgICBpZiAoZm9yT3V0ZXJEaXNwbGF5ICYmIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGl0ZW0gPSBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zLmZpbmQoKGYpID0+IGYuaWQgPT09IG9wdGlvbik7XG4gICAgICBpdGVtICE9PSB1bmRlZmluZWQgJiYgKGl0ZW0gPSBpdGVtLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtID0gb3B0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBjb25zdCB0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWwgPSAoXG4gICAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW0sXG4gICAgb3B0aW9uOiBzdHJpbmcsXG4gICAgZm9yT3V0ZXJEaXNwbGF5ID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHN3aXRjaCAoZmlsdGVySXRlbS50eXBlKSB7XG4gICAgICBjYXNlICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdWYXJlYUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnQXJlYUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2VjdG9yRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZUZvck9iamVjdFR5cGVkT3B0aW9ucyhcbiAgICAgICAgICBmaWx0ZXJJdGVtLFxuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBmb3JPdXRlckRpc3BsYXksXG4gICAgICAgICk7XG4gICAgICBjYXNlICdTZXZlcml0eUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ0RhbWFnZVR5cGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChcbiAgICAgICAgICBgZXZlbnRzX292ZXJ2aWV3LmRhbWFnZV90eXBlcy4ke3N0cmlwRGFtYWdlVHlwZShvcHRpb24pfWAsXG4gICAgICAgICk7XG4gICAgICBjYXNlICdUaW1lRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lU2VsZWN0aW9uKG9wdGlvbik7XG4gICAgICBjYXNlICdTdGF0dXNGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zdGF0dXMuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdTYW1wbGluZ0ZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhbXBsaW5nc19vcHRpb25zLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdNb2RlRmlsdGVySXRlbSc6XG4gICAgICAgIHJldHVybiBpMThuLnQoYGV2ZW50c19vdmVydmlldy5maWx0ZXIuc2FtcGxpbmdfbW9kZS4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1BvaW50c01vZGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5wb2ludHNfbW9kZS4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ1NhbXBsZXJGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGVyX21vZGUuJHtvcHRpb259YCk7XG4gICAgICBjYXNlICdJbnNpZ2h0RGF0YUZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gaTE4bi50KGBldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmluc2lnaHRfZGF0YS4ke29wdGlvbn1gKTtcbiAgICAgIGNhc2UgJ0xhYkZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdTdGF0dXNGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGkxOG4udChgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYW1wbGluZ3Nfc3RhdHVzLiR7b3B0aW9ufWApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdJZEZpbHRlckl0ZW0nOlxuICAgICAgICByZXR1cm4gZGlzcGxheU5hbWVGb3JPYmplY3RUeXBlZE9wdGlvbnMoXG4gICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgZm9yT3V0ZXJEaXNwbGF5LFxuICAgICAgICApO1xuICAgICAgY2FzZSAnU2FtcGxpbmdQYXJhbWV0ZXJGaWx0ZXJJdGVtJzpcbiAgICAgIGNhc2UgJ1NpdGVGaWx0ZXJJdGVtJzpcbiAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lRm9yT2JqZWN0VHlwZWRPcHRpb25zKFxuICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIGZvck91dGVyRGlzcGxheSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhbnNsYXRlRmlsdGVySXRlbVR5cGUgPSAoZmlsdGVySXRlbVR5cGU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBpMThuLnQoXG4gICAgICBgZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5maWx0ZXJfdHlwZXMuJHtjYW1lbFRvU25ha2VDYXNlKGZpbHRlckl0ZW1UeXBlKX1gLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZ2V0U2VsZWN0aW9ucyA9IChzZWxlY3RlZF9vcHRpb25zOiBhbnkpID0+IHtcbiAgICBsZXQgc2VsZWN0aW9uczogYW55W10gPSBbXTtcbiAgICBpZiAoc2VsZWN0ZWRfb3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICBwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pXG4gICAgICAgIC5zbGljZSgwLCAxKVxuICAgICAgICAubWFwKChzZWxlY3Rpb246IHN0cmluZykgPT5cbiAgICAgICAgICBzZWxlY3Rpb25zLnB1c2goXG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnRfX3NlbGVjdGlvbnNfX3NlbGVjdGlvbid9XG4gICAgICAgICAgICAgIGtleT17c2VsZWN0aW9ufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsKGZpbHRlcl9pdGVtLCBzZWxlY3Rpb24sIHRydWUpfVxuICAgICAgICAgICAgPC9saT4sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIHNlbGVjdGlvbnMucHVzaChcbiAgICAgICAgPHNwYW4ga2V5PXsnTU9SRSd9PntgICgke3NlbGVjdGVkX29wdGlvbnMubGVuZ3RofSlgfTwvc3Bhbj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pLm1hcCgoc2VsZWN0aW9uOiBzdHJpbmcpID0+XG4gICAgICAgIHNlbGVjdGlvbnMucHVzaChcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2ZpbHRlcl9pdGVtX19jb250ZW50X19zZWxlY3Rpb25zX19zZWxlY3Rpb24nfVxuICAgICAgICAgICAga2V5PXtzZWxlY3Rpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3RyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbChmaWx0ZXJfaXRlbSwgc2VsZWN0aW9uLCB0cnVlKX1cbiAgICAgICAgICA8L2xpPixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbnM7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZmlsdGVyX2l0ZW0uc2VsZWN0ZWRfb3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwKHtcbiAgICAgICAgZmlsdGVySXRlbUlkOiBmaWx0ZXJfaXRlbS5pZCxcbiAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXJfaXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgbGV0IG1hdGNoRmlsdGVySXRlbSA9IGF2YWlsYWJsZUZpbHRlckl0ZW1zLmZpbmQoXG4gICAgICAgIChhdmFpbGFibGVGaWx0ZXJJdGVtOiBhbnkpID0+XG4gICAgICAgICAgYXZhaWxhYmxlRmlsdGVySXRlbS50eXBlID09PSBmaWx0ZXJfaXRlbS50eXBlLFxuICAgICAgKTtcblxuICAgICAgaWYgKG1hdGNoRmlsdGVySXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlcl9pdGVtLmF2YWlsYWJsZV9vcHRpb25zID0gbWF0Y2hGaWx0ZXJJdGVtLm9wdGlvbnM7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZmlsdGVyX2l0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnQnfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVGaWx0ZXJJdGVtQ2xpY2soZmlsdGVyX2l0ZW0pfVxuICAgICAgPlxuICAgICAgICA8c3Bhbj57dHJhbnNsYXRlRmlsdGVySXRlbVR5cGUoZmlsdGVyX2l0ZW0udHlwZSl9PC9zcGFuPlxuICAgICAgICA8dWwgY2xhc3NOYW1lPXsnZmlsdGVyX2l0ZW1fX2NvbnRlbnRfX3NlbGVjdGlvbnMnfT5cbiAgICAgICAgICB7Z2V0U2VsZWN0aW9ucyhwYXJzZVNlbGVjdGVkSXRlbXMoZmlsdGVyX2l0ZW0pKS5tYXAoXG4gICAgICAgICAgICAoc2VsZWN0aW9uOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICApfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxhIG9uQ2xpY2s9eygpID0+IHJlbW92ZUZpbHRlckl0ZW0oZmlsdGVyX2l0ZW0pfT5cbiAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYVRpbWVzfSAvPlxuICAgICAgPC9hPlxuICAgICAge3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCA9PT0gZmlsdGVyX2l0ZW0uaWQgJiZcbiAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAgJiYgKFxuICAgICAgICAgIDxPcHRpb25zRHJvcERvd25cbiAgICAgICAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcz17cGFyc2VTZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgICAgZmlsdGVySXRlbT17ZmlsdGVyX2l0ZW19XG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA9e3NldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwfVxuICAgICAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA9e3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwfVxuICAgICAgICAgICAgaGFuZGxlU2luZ2xlU2VsZWN0aW9uPXtoYW5kbGVTaW5nbGVTZWxlY3Rpb259XG4gICAgICAgICAgICB0cmFuc2xhdGVGaWx0ZXJJdGVtT3B0aW9uTGFiZWw9e3RyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbH1cbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbHRlckl0ZW07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFHQSxJQUFBSSxLQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFELHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBUCxPQUFBO0FBQXVGLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBTix3QkFBQVUsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWixHQUFBLFFBQUFZLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWYsR0FBQSxFQUFBWSxHQUFBLFNBQUFJ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
|
|
@@ -64,6 +64,21 @@
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
.reset-button-container {
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
|
|
70
|
+
.reset-button {
|
|
71
|
+
background-color: white;
|
|
72
|
+
border: 1px solid #f6004f;
|
|
73
|
+
padding: 6px 29px;
|
|
74
|
+
font-size: 14px;
|
|
75
|
+
|
|
76
|
+
border-radius: 12px;
|
|
77
|
+
color: #f6004f;
|
|
78
|
+
text-decoration: none;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
67
82
|
#dropdown-basic {
|
|
68
83
|
background: white;
|
|
69
84
|
color: black;
|
|
@@ -289,6 +304,18 @@
|
|
|
289
304
|
width: 220px;
|
|
290
305
|
}
|
|
291
306
|
}
|
|
307
|
+
.filter-single-items-options-popup-container {
|
|
308
|
+
position: absolute;
|
|
309
|
+
bottom: 0;
|
|
310
|
+
transform: translateY(100%);
|
|
311
|
+
margin-inline-start: -12px;
|
|
312
|
+
z-index: 9;
|
|
313
|
+
width: 220px;
|
|
314
|
+
|
|
315
|
+
.filter-single-item-options-popup {
|
|
316
|
+
width: 220px;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
292
319
|
}
|
|
293
320
|
}
|
|
294
321
|
}
|
|
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
require("../../EventsStyle.scss");
|
|
14
14
|
var _useClickOutside = _interopRequireDefault(require("hooks/useClickOutside"));
|
|
15
15
|
var _TimeRangeOptions = _interopRequireDefault(require("components/TimeRangeSelector/TimeRangeOptions"));
|
|
16
|
+
var _SingleSelect = require("./SingleSelect");
|
|
16
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
19
|
// @ts-ignore
|
|
@@ -58,6 +59,7 @@ var OptionsDropDown = function OptionsDropDown(props) {
|
|
|
58
59
|
}
|
|
59
60
|
return formattedOptions;
|
|
60
61
|
};
|
|
62
|
+
var isSingleSelect = filterItem.max_selected_items === 1;
|
|
61
63
|
var matchDropDown = function matchDropDown(filterItem) {
|
|
62
64
|
if (filterItem.type === 'TimeFilterItem') {
|
|
63
65
|
return /*#__PURE__*/_react.default.createElement(_TimeRangeOptions.default, {
|
|
@@ -70,6 +72,16 @@ var OptionsDropDown = function OptionsDropDown(props) {
|
|
|
70
72
|
}, filterItem, activeFilterCopy);
|
|
71
73
|
}
|
|
72
74
|
});
|
|
75
|
+
} else if (isSingleSelect) {
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement(_SingleSelect.SingleSelect, {
|
|
77
|
+
wrapperClassName: 'filter-single-items-options-popup',
|
|
78
|
+
responsiveHeight: calcPopupHeight(filterItem.available_options.length),
|
|
79
|
+
items: items,
|
|
80
|
+
value: selectedItems,
|
|
81
|
+
onChange: function onChange(e) {
|
|
82
|
+
handleChange(e, filterItem, activeFilterCopy);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
73
85
|
} else {
|
|
74
86
|
return /*#__PURE__*/_react.default.createElement(_reactMultiSelect.default, {
|
|
75
87
|
wrapperClassName: 'filter-items-options-popup',
|
|
@@ -78,7 +90,7 @@ var OptionsDropDown = function OptionsDropDown(props) {
|
|
|
78
90
|
responsiveHeight: calcPopupHeight(filterItem.available_options.length),
|
|
79
91
|
showSelectedItems: false,
|
|
80
92
|
showSearch: true,
|
|
81
|
-
maxSelectedItems:
|
|
93
|
+
maxSelectedItems: filterItem.max_selected_items,
|
|
82
94
|
onChange: function onChange(e) {
|
|
83
95
|
handleChange(e, filterItem, activeFilterCopy);
|
|
84
96
|
}
|
|
@@ -97,10 +109,10 @@ var OptionsDropDown = function OptionsDropDown(props) {
|
|
|
97
109
|
setSelectedItems(formatItemOptions(parseSelectedItems(filterItem)));
|
|
98
110
|
}, []);
|
|
99
111
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
100
|
-
className:
|
|
112
|
+
className: "filter-".concat(isSingleSelect ? 'single-' : '', "items-options-popup-container"),
|
|
101
113
|
ref: popupContainerRef
|
|
102
114
|
}, showFilterItemOptionsPopup.filterItemId === filterItem.id && showFilterItemOptionsPopup && matchDropDown(filterItem));
|
|
103
115
|
};
|
|
104
116
|
var _default = OptionsDropDown;
|
|
105
117
|
exports.default = _default;
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RNdWx0aVNlbGVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ2xpY2tPdXRzaWRlIiwiX1RpbWVSYW5nZU9wdGlvbnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJPcHRpb25zRHJvcERvd24iLCJwcm9wcyIsImhhbmRsZVNpbmdsZVNlbGVjdGlvbiIsImZpbHRlckl0ZW0iLCJhY3RpdmVGaWx0ZXJDb3B5IiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwidHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsIiwic2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAiLCJzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCIsImhhbmRsZUNoYW5nZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIml0ZW1zIiwic2V0SXRlbXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlbGVjdGVkSXRlbXMiLCJzZXRTZWxlY3RlZEl0ZW1zIiwicG9wdXBDb250YWluZXJSZWYiLCJ1c2VSZWYiLCJjYWxjUG9wdXBIZWlnaHQiLCJvcHRpb25zTGVuZ3RoIiwiTWF0aCIsIm1pbiIsImF2YWlsYWJsZV9vcHRpb25zIiwibGVuZ3RoIiwiZm9ybWF0SXRlbU9wdGlvbnMiLCJvcHRpb25zIiwiZm9ybWF0dGVkT3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJpZCIsIm5hbWUiLCJkaXNwbGF5IiwicHVzaCIsImxhYmVsIiwib3JpZ2luYWwiLCJfdHlwZW9mMiIsImZvckVhY2giLCJvcHRpb24iLCJtYXRjaERyb3BEb3duIiwidHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJjb250YWluZXJDbGFzc05hbWUiLCJwZXJpb2RzIiwic2VsZWN0ZWRWYWwiLCJoYW5kbGVQZXJpb2RTZWxlY3RlZCIsInNlbGVjdGlvblZhbHVlIiwiY3VzdG9tVmFsdWUiLCJ3cmFwcGVyQ2xhc3NOYW1lIiwicmVzcG9uc2l2ZUhlaWdodCIsInNob3dTZWxlY3RlZEl0ZW1zIiwic2hvd1NlYXJjaCIsIm1heFNlbGVjdGVkSXRlbXMiLCJvbkNoYW5nZSIsImUiLCJjbGlja091dHNpZGVBY3Rpb24iLCJmaWx0ZXJJdGVtSWQiLCJzaG93IiwidXNlQ2xpY2tPdXRzaWRlIiwidXNlRWZmZWN0IiwiY2xhc3NOYW1lIiwicmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9PcHRpb25zRHJvcERvd24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBNdWx0aVNlbGVjdCBmcm9tICdAa2Vuc2hvb3VpL3JlYWN0LW11bHRpLXNlbGVjdCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICcuLi8uLi9FdmVudHNTdHlsZS5zY3NzJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IHsgSUZpbHRlciB9IGZyb20gJ3NyYy9zdG9yZS9maWx0ZXJzL0lGaWx0ZXInO1xuaW1wb3J0IHVzZUNsaWNrT3V0c2lkZSBmcm9tICdzcmMvaG9va3MvdXNlQ2xpY2tPdXRzaWRlJztcbmltcG9ydCBUaW1lUmFuZ2VPcHRpb25zIGZyb20gJ3NyYy9jb21wb25lbnRzL1RpbWVSYW5nZVNlbGVjdG9yL1RpbWVSYW5nZU9wdGlvbnMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgaGFuZGxlU2luZ2xlU2VsZWN0aW9uOiBGdW5jdGlvbjtcbiAgYWN0aXZlRmlsdGVyQ29weTogSUZpbHRlcjtcbiAgZmlsdGVySXRlbTogSUZpbHRlckl0ZW07XG4gIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwOiBhbnk7XG4gIHRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbDogRnVuY3Rpb247XG4gIHBhcnNlU2VsZWN0ZWRJdGVtczogRnVuY3Rpb247XG4gIGhhbmRsZUNoYW5nZTogRnVuY3Rpb247XG4gIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwOiBhbnk7XG59O1xuXG5jb25zdCBPcHRpb25zRHJvcERvd246IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGhhbmRsZVNpbmdsZVNlbGVjdGlvbixcbiAgICBmaWx0ZXJJdGVtLFxuICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgcGFyc2VTZWxlY3RlZEl0ZW1zLFxuICAgIHRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbCxcbiAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCxcbiAgICBoYW5kbGVDaGFuZ2UsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2l0ZW1zLCBzZXRJdGVtc10gPSB1c2VTdGF0ZTxhbnk+KCk7XG4gIGNvbnN0IFtzZWxlY3RlZEl0ZW1zLCBzZXRTZWxlY3RlZEl0ZW1zXSA9IHVzZVN0YXRlPGFueT4oKTtcbiAgY29uc3QgcG9wdXBDb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGNhbGNQb3B1cEhlaWdodCA9IChvcHRpb25zTGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gb3B0aW9uc0xlbmd0aCA+IDEwXG4gICAgICA/IE1hdGgubWluKDEwMCArIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMubGVuZ3RoICogMTUsIDQwMClcbiAgICAgIDogNDUgKyBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zLmxlbmd0aCAqIDQwO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1hdEl0ZW1PcHRpb25zID0gKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGxldCBmb3JtYXR0ZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICAgIGNvbnN0IGZvcm1hdE9wdGlvbnMgPSAoaWQ6IG51bWJlciB8IHN0cmluZywgbmFtZTogc3RyaW5nLCBkaXNwbGF5OiBhbnkpID0+IHtcbiAgICAgIGZvcm1hdHRlZE9wdGlvbnMucHVzaCh7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbChmaWx0ZXJJdGVtLCBuYW1lKSxcbiAgICAgICAgb3JpZ2luYWw6IGRpc3BsYXksXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zWzBdID09PSAnb2JqZWN0Jykge1xuICAgICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICBmb3JtYXRPcHRpb25zKG9wdGlvbi5pZCwgb3B0aW9uLm5hbWUsIG9wdGlvbi5pZCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb246IHN0cmluZykgPT4ge1xuICAgICAgICBmb3JtYXRPcHRpb25zKG9wdGlvbiwgb3B0aW9uLCBvcHRpb24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZE9wdGlvbnM7XG4gIH07XG4gIGNvbnN0IG1hdGNoRHJvcERvd24gPSAoZmlsdGVySXRlbTogSUZpbHRlckl0ZW0pID0+IHtcbiAgICBpZiAoZmlsdGVySXRlbS50eXBlID09PSAnVGltZUZpbHRlckl0ZW0nKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VGltZVJhbmdlT3B0aW9uc1xuICAgICAgICAgIGNvbnRhaW5lckNsYXNzTmFtZT17J2N1c3RvbS1kcm9wZG93bid9XG4gICAgICAgICAgcGVyaW9kcz17ZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9uc31cbiAgICAgICAgICBzZWxlY3RlZFZhbD17cGFyc2VTZWxlY3RlZEl0ZW1zKGZpbHRlckl0ZW0pWzBdfVxuICAgICAgICAgIGhhbmRsZVBlcmlvZFNlbGVjdGVkPXsoc2VsZWN0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZVNpbmdsZVNlbGVjdGlvbihcbiAgICAgICAgICAgICAgeyBjdXN0b21WYWx1ZTogc2VsZWN0aW9uVmFsdWUgfSxcbiAgICAgICAgICAgICAgZmlsdGVySXRlbSxcbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNdWx0aVNlbGVjdFxuICAgICAgICAgIHdyYXBwZXJDbGFzc05hbWU9eydmaWx0ZXItaXRlbXMtb3B0aW9ucy1wb3B1cCd9XG4gICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkSXRlbXN9XG4gICAgICAgICAgcmVzcG9uc2l2ZUhlaWdodD17Y2FsY1BvcHVwSGVpZ2h0KFxuICAgICAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgKX1cbiAgICAgICAgICBzaG93U2VsZWN0ZWRJdGVtcz17ZmFsc2V9XG4gICAgICAgICAgc2hvd1NlYXJjaD17dHJ1ZX1cbiAgICAgICAgICBtYXhTZWxlY3RlZEl0ZW1zPXsxMH1cbiAgICAgICAgICBvbkNoYW5nZT17KGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGUsIGZpbHRlckl0ZW0sIGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xpY2tPdXRzaWRlQWN0aW9uID0gKCkgPT4ge1xuICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwKHsgZmlsdGVySXRlbUlkOiBudWxsLCBzaG93OiBmYWxzZSB9KTtcbiAgfTtcblxuICB1c2VDbGlja091dHNpZGUocG9wdXBDb250YWluZXJSZWYsIGNsaWNrT3V0c2lkZUFjdGlvbik7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SXRlbXMoZm9ybWF0SXRlbU9wdGlvbnMoZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucykpO1xuICAgIHNldFNlbGVjdGVkSXRlbXMoZm9ybWF0SXRlbU9wdGlvbnMocGFyc2VTZWxlY3RlZEl0ZW1zKGZpbHRlckl0ZW0pKSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17J2ZpbHRlci1pdGVtcy1vcHRpb25zLXBvcHVwLWNvbnRhaW5lcid9XG4gICAgICByZWY9e3BvcHVwQ29udGFpbmVyUmVmfVxuICAgID5cbiAgICAgIHtzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cC5maWx0ZXJJdGVtSWQgPT09IGZpbHRlckl0ZW0uaWQgJiZcbiAgICAgICAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAgJiZcbiAgICAgICAgbWF0Y2hEcm9wRG93bihmaWx0ZXJJdGVtKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wdGlvbnNEcm9wRG93bjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLElBQUFBLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFD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
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RNdWx0aVNlbGVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ2xpY2tPdXRzaWRlIiwiX1RpbWVSYW5nZU9wdGlvbnMiLCJfU2luZ2xlU2VsZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiT3B0aW9uc0Ryb3BEb3duIiwicHJvcHMiLCJoYW5kbGVTaW5nbGVTZWxlY3Rpb24iLCJmaWx0ZXJJdGVtIiwiYWN0aXZlRmlsdGVyQ29weSIsInBhcnNlU2VsZWN0ZWRJdGVtcyIsInRyYW5zbGF0ZUZpbHRlckl0ZW1PcHRpb25MYWJlbCIsInNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwIiwic2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXAiLCJoYW5kbGVDaGFuZ2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpdGVtcyIsInNldEl0ZW1zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZEl0ZW1zIiwic2V0U2VsZWN0ZWRJdGVtcyIsInBvcHVwQ29udGFpbmVyUmVmIiwidXNlUmVmIiwiY2FsY1BvcHVwSGVpZ2h0Iiwib3B0aW9uc0xlbmd0aCIsIk1hdGgiLCJtaW4iLCJhdmFpbGFibGVfb3B0aW9ucyIsImxlbmd0aCIsImZvcm1hdEl0ZW1PcHRpb25zIiwib3B0aW9ucyIsImZvcm1hdHRlZE9wdGlvbnMiLCJmb3JtYXRPcHRpb25zIiwiaWQiLCJuYW1lIiwiZGlzcGxheSIsInB1c2giLCJsYWJlbCIsIm9yaWdpbmFsIiwiX3R5cGVvZjIiLCJmb3JFYWNoIiwib3B0aW9uIiwiaXNTaW5nbGVTZWxlY3QiLCJtYXhfc2VsZWN0ZWRfaXRlbXMiLCJtYXRjaERyb3BEb3duIiwidHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJjb250YWluZXJDbGFzc05hbWUiLCJwZXJpb2RzIiwic2VsZWN0ZWRWYWwiLCJoYW5kbGVQZXJpb2RTZWxlY3RlZCIsInNlbGVjdGlvblZhbHVlIiwiY3VzdG9tVmFsdWUiLCJTaW5nbGVTZWxlY3QiLCJ3cmFwcGVyQ2xhc3NOYW1lIiwicmVzcG9uc2l2ZUhlaWdodCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwic2hvd1NlbGVjdGVkSXRlbXMiLCJzaG93U2VhcmNoIiwibWF4U2VsZWN0ZWRJdGVtcyIsImNsaWNrT3V0c2lkZUFjdGlvbiIsImZpbHRlckl0ZW1JZCIsInNob3ciLCJ1c2VDbGlja091dHNpZGUiLCJ1c2VFZmZlY3QiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJyZWYiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRzX2xpc3QvRmlsdGVyL09wdGlvbnNEcm9wRG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IE11bHRpU2VsZWN0IGZyb20gJ0BrZW5zaG9vdWkvcmVhY3QtbXVsdGktc2VsZWN0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4uLy4uL0V2ZW50c1N0eWxlLnNjc3MnO1xuaW1wb3J0IHsgSUZpbHRlckl0ZW0gfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVySXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlcic7XG5pbXBvcnQgdXNlQ2xpY2tPdXRzaWRlIGZyb20gJ3NyYy9ob29rcy91c2VDbGlja091dHNpZGUnO1xuaW1wb3J0IFRpbWVSYW5nZU9wdGlvbnMgZnJvbSAnc3JjL2NvbXBvbmVudHMvVGltZVJhbmdlU2VsZWN0b3IvVGltZVJhbmdlT3B0aW9ucyc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3QgfSBmcm9tICcuL1NpbmdsZVNlbGVjdCc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBoYW5kbGVTaW5nbGVTZWxlY3Rpb246IEZ1bmN0aW9uO1xuICBhY3RpdmVGaWx0ZXJDb3B5OiBJRmlsdGVyO1xuICBmaWx0ZXJJdGVtOiBJRmlsdGVySXRlbTtcbiAgc2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA6IGFueTtcbiAgdHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsOiBGdW5jdGlvbjtcbiAgcGFyc2VTZWxlY3RlZEl0ZW1zOiBGdW5jdGlvbjtcbiAgaGFuZGxlQ2hhbmdlOiBGdW5jdGlvbjtcbiAgc2V0U2hvd0ZpbHRlckl0ZW1PcHRpb25zUG9wdXA6IGFueTtcbn07XG5cbmNvbnN0IE9wdGlvbnNEcm9wRG93bjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgaGFuZGxlU2luZ2xlU2VsZWN0aW9uLFxuICAgIGZpbHRlckl0ZW0sXG4gICAgYWN0aXZlRmlsdGVyQ29weSxcbiAgICBwYXJzZVNlbGVjdGVkSXRlbXMsXG4gICAgdHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsLFxuICAgIHNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLFxuICAgIHNldFNob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLFxuICAgIGhhbmRsZUNoYW5nZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbaXRlbXMsIHNldEl0ZW1zXSA9IHVzZVN0YXRlPGFueT4oKTtcbiAgY29uc3QgW3NlbGVjdGVkSXRlbXMsIHNldFNlbGVjdGVkSXRlbXNdID0gdXNlU3RhdGU8YW55PigpO1xuICBjb25zdCBwb3B1cENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY2FsY1BvcHVwSGVpZ2h0ID0gKG9wdGlvbnNMZW5ndGg6IG51bWJlcikgPT4ge1xuICAgIHJldHVybiBvcHRpb25zTGVuZ3RoID4gMTBcbiAgICAgID8gTWF0aC5taW4oMTAwICsgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucy5sZW5ndGggKiAxNSwgNDAwKVxuICAgICAgOiA0NSArIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMubGVuZ3RoICogNDA7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0SXRlbU9wdGlvbnMgPSAob3B0aW9uczogYW55KSA9PiB7XG4gICAgbGV0IGZvcm1hdHRlZE9wdGlvbnM6IGFueVtdID0gW107XG4gICAgY29uc3QgZm9ybWF0T3B0aW9ucyA9IChpZDogbnVtYmVyIHwgc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGRpc3BsYXk6IGFueSkgPT4ge1xuICAgICAgZm9ybWF0dGVkT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBsYWJlbDogdHJhbnNsYXRlRmlsdGVySXRlbU9wdGlvbkxhYmVsKGZpbHRlckl0ZW0sIG5hbWUpLFxuICAgICAgICBvcmlnaW5hbDogZGlzcGxheSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnNbMF0gPT09ICdvYmplY3QnKSB7XG4gICAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGZvcm1hdE9wdGlvbnMob3B0aW9uLmlkLCBvcHRpb24ubmFtZSwgb3B0aW9uLmlkKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGZvcm1hdE9wdGlvbnMob3B0aW9uLCBvcHRpb24sIG9wdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybWF0dGVkT3B0aW9ucztcbiAgfTtcblxuICBjb25zdCBpc1NpbmdsZVNlbGVjdCA9IGZpbHRlckl0ZW0ubWF4X3NlbGVjdGVkX2l0ZW1zID09PSAxO1xuICBjb25zdCBtYXRjaERyb3BEb3duID0gKGZpbHRlckl0ZW06IElGaWx0ZXJJdGVtKSA9PiB7XG4gICAgaWYgKGZpbHRlckl0ZW0udHlwZSA9PT0gJ1RpbWVGaWx0ZXJJdGVtJykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRpbWVSYW5nZU9wdGlvbnNcbiAgICAgICAgICBjb250YWluZXJDbGFzc05hbWU9eydjdXN0b20tZHJvcGRvd24nfVxuICAgICAgICAgIHBlcmlvZHM9e2ZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnN9XG4gICAgICAgICAgc2VsZWN0ZWRWYWw9e3BhcnNlU2VsZWN0ZWRJdGVtcyhmaWx0ZXJJdGVtKVswXX1cbiAgICAgICAgICBoYW5kbGVQZXJpb2RTZWxlY3RlZD17KHNlbGVjdGlvblZhbHVlKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVTaW5nbGVTZWxlY3Rpb24oXG4gICAgICAgICAgICAgIHsgY3VzdG9tVmFsdWU6IHNlbGVjdGlvblZhbHVlIH0sXG4gICAgICAgICAgICAgIGZpbHRlckl0ZW0sXG4gICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNTaW5nbGVTZWxlY3QpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTaW5nbGVTZWxlY3RcbiAgICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lPXsnZmlsdGVyLXNpbmdsZS1pdGVtcy1vcHRpb25zLXBvcHVwJ31cbiAgICAgICAgICByZXNwb25zaXZlSGVpZ2h0PXtjYWxjUG9wdXBIZWlnaHQoXG4gICAgICAgICAgICBmaWx0ZXJJdGVtLmF2YWlsYWJsZV9vcHRpb25zLmxlbmd0aCxcbiAgICAgICAgICApfVxuICAgICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRJdGVtc31cbiAgICAgICAgICBvbkNoYW5nZT17KGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGUsIGZpbHRlckl0ZW0sIGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TXVsdGlTZWxlY3RcbiAgICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lPXsnZmlsdGVyLWl0ZW1zLW9wdGlvbnMtcG9wdXAnfVxuICAgICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgIHJlc3BvbnNpdmVIZWlnaHQ9e2NhbGNQb3B1cEhlaWdodChcbiAgICAgICAgICAgIGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICl9XG4gICAgICAgICAgc2hvd1NlbGVjdGVkSXRlbXM9e2ZhbHNlfVxuICAgICAgICAgIHNob3dTZWFyY2g9e3RydWV9XG4gICAgICAgICAgbWF4U2VsZWN0ZWRJdGVtcz17ZmlsdGVySXRlbS5tYXhfc2VsZWN0ZWRfaXRlbXN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZShlLCBmaWx0ZXJJdGVtLCBhY3RpdmVGaWx0ZXJDb3B5KTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGNsaWNrT3V0c2lkZUFjdGlvbiA9ICgpID0+IHtcbiAgICBzZXRTaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCh7IGZpbHRlckl0ZW1JZDogbnVsbCwgc2hvdzogZmFsc2UgfSk7XG4gIH07XG5cbiAgdXNlQ2xpY2tPdXRzaWRlKHBvcHVwQ29udGFpbmVyUmVmLCBjbGlja091dHNpZGVBY3Rpb24pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEl0ZW1zKGZvcm1hdEl0ZW1PcHRpb25zKGZpbHRlckl0ZW0uYXZhaWxhYmxlX29wdGlvbnMpKTtcbiAgICBzZXRTZWxlY3RlZEl0ZW1zKGZvcm1hdEl0ZW1PcHRpb25zKHBhcnNlU2VsZWN0ZWRJdGVtcyhmaWx0ZXJJdGVtKSkpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmaWx0ZXItJHtcbiAgICAgICAgaXNTaW5nbGVTZWxlY3QgPyAnc2luZ2xlLScgOiAnJ1xuICAgICAgfWl0ZW1zLW9wdGlvbnMtcG9wdXAtY29udGFpbmVyYH1cbiAgICAgIHJlZj17cG9wdXBDb250YWluZXJSZWZ9XG4gICAgPlxuICAgICAge3Nob3dGaWx0ZXJJdGVtT3B0aW9uc1BvcHVwLmZpbHRlckl0ZW1JZCA9PT0gZmlsdGVySXRlbS5pZCAmJlxuICAgICAgICBzaG93RmlsdGVySXRlbU9wdGlvbnNQb3B1cCAmJlxuICAgICAgICBtYXRjaERyb3BEb3duKGZpbHRlckl0ZW0pfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT3B0aW9uc0Ryb3BEb3duO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBQSxPQUFBO0FBR0EsSUFBQUcsZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFBOEMsU0FBQU0seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEs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
|