@kando-env/kando-ui 1.2.412-alpha.4 → 1.2.412-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/EventsRow/EventsRow.js +3 -3
- package/lib/Widgets/Map/Map.js +92 -87
- package/lib/Widgets/Map/MapUtils.js +8 -17
- package/lib/Widgets/Map/points/PointMarker.js +10 -3
- package/lib/Widgets/Map/points/PointMarkers.js +11 -14
- package/lib/Widgets/Map/points/PointUtils.js +21 -14
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +1 -2
- package/lib/Widgets/PotentialImpactSummary/Icon.js +1 -2
- package/lib/components/DamageType/DamageType.js +3 -3
- package/lib/components/Map/Map.js +6 -5
- package/lib/components/SevereEvent/SevereEvent.js +3 -2
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +1 -2
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +1 -2
- package/lib/pages/EventsPage/Body/Body.js +17 -17
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +2 -3
- package/lib/pages/EventsPage/events/Sidebar.js +12 -11
- package/lib/pages/EventsPage/events/events_list/EventsList.js +2 -2
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +7 -5
- package/lib/utilities/Enum.js +4 -4
- package/package.json +1 -1
|
@@ -70,10 +70,10 @@ var EventsRow = function EventsRow(_ref) {
|
|
|
70
70
|
}, response && eventsArr.length === 0 ? /*#__PURE__*/_react.default.createElement(NoEventsComponent, null) : eventsArr.map(function (event, index) {
|
|
71
71
|
var data = parseEventData(event);
|
|
72
72
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
73
|
-
key: "
|
|
73
|
+
key: "event-container-".concat(event.id),
|
|
74
74
|
className: "ol-severe-event"
|
|
75
75
|
}, /*#__PURE__*/_react.default.createElement(_OptionalLinkedSevereEvent.default, {
|
|
76
|
-
key:
|
|
76
|
+
key: "event-".concat(event.id),
|
|
77
77
|
event: event,
|
|
78
78
|
total: data.total,
|
|
79
79
|
firstseen: data.firstseen,
|
|
@@ -96,4 +96,4 @@ var NoEventsComponent = (0, _styledComponents.default)(_NoEvents.default).withCo
|
|
|
96
96
|
displayName: "EventsRow__NoEventsComponent",
|
|
97
97
|
componentId: "sc-6myj56-1"
|
|
98
98
|
})(["min-height:unset;height:100%;border:1px solid #d0d0d0;box-sizing:border-box;border-radius:6px;"]);
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZGF5anMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0YyIsIl9yZWFjdFJlZHV4IiwiX05vRXZlbnRzIiwiX09wdGlvbmFsTGlua2VkU2V2ZXJlRXZlbnQiLCJfRGF0YUxvYWRlckVycm9yIiwiX1NwaW5uZXIiLCJfVXRpbGl0eURhc2hib2FyZCIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRXZlbnRVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiRXZlbnRzUm93IiwiX3JlZiIsImVuZHBvaW50IiwiX3JlZiRldmVudFBhcmFtcyIsImV2ZW50UGFyYW1zIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZXZlbnRzQXJyIiwic2V0RXZlbnRzQXJyIiwibG9jYWxlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJuYXZDb250ZXh0IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlIiwiaXNMb2FkaW5nIiwiZXJyb3IiLCJ1c2VFZmZlY3QiLCJkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZXZlbnRzIiwic2xpY2UiLCJwYXJzZUV2ZW50RGF0YSIsImV2ZW50IiwibGFzdHNlZW4iLCJsYXN0U2Vlbk9ic2VydmF0aW9uIiwiZmlyc3RzZWVuIiwiZmlyc3RTZWVuT2JzZXJ2YXRpb24iLCJkaWZmIiwibGFzdF9zZWVuX3RpbWUiLCJzdGFydF90aW1lIiwiZGF5anMiLCJleHRlbmQiLCJ1dGMiLCJtYXBwZWRFdmVudCIsInRvdGFsIiwiZm9ybWF0IiwiY3JlYXRlRWxlbWVudCIsIkNvbnRhaW5lciIsIkRhdGFMb2FkZXJFcnJvciIsIlNwaW5uZXJIb2xkZXIiLCJTcGlubmVyIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwibGVuZ3RoIiwiTm9FdmVudHNDb21wb25lbnQiLCJtYXAiLCJpbmRleCIsIm1zZyIsInZhbHVlc0Zyb21LUUwiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIk5vRXZlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvRXZlbnRzUm93L0V2ZW50c1Jvdy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBOb0V2ZW50cyBmcm9tICdzcmMvcGFnZXMvVXRpbGl0eURhc2hib2FyZFBhZ2UvTW9zdFNldmVyZUV2ZW50cy9Ob0V2ZW50cy9Ob0V2ZW50cyc7XG5pbXBvcnQgT3B0aW9uYWxMaW5rZWRTZXZlcmVFdmVudCBmcm9tICdzcmMvcGFnZXMvVXRpbGl0eURhc2hib2FyZFBhZ2UvTW9zdFNldmVyZUV2ZW50cy9TZXZlcmVFdmVudC9PcHRpb25hbExpbmtlZFNldmVyZUV2ZW50JztcbmltcG9ydCB7IERhdGFMb2FkZXJFcnJvciB9IGZyb20gJ3NyYy9jb21wb25lbnRzL0RhdGFMb2FkZXJFcnJvci9EYXRhTG9hZGVyRXJyb3InO1xuaW1wb3J0IHsgSUV2ZW50LCBJRXZlbnRzUmVzcG9uc2UgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lcic7XG5pbXBvcnQgeyBTcGlubmVySG9sZGVyIH0gZnJvbSAnc3JjL3BhZ2VzL1V0aWxpdHlEYXNoYm9hcmRQYWdlL1V0aWxpdHlEYXNoYm9hcmQnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkgfSBmcm9tICdzcmMvaG9va3MvdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5JztcbmltcG9ydCB7XG4gIGZpcnN0U2Vlbk9ic2VydmF0aW9uLFxuICBsYXN0U2Vlbk9ic2VydmF0aW9uLFxufSBmcm9tICcuLi8uLi9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudFV0aWxzJztcblxuaW50ZXJmYWNlIEV2ZW50c1Jvd1Byb3BzIHtcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgZXZlbnRQYXJhbXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEV2ZW50c1JvdzogUmVhY3QuRkM8RXZlbnRzUm93UHJvcHM+ID0gKHtcbiAgZW5kcG9pbnQsXG4gIGV2ZW50UGFyYW1zID0ge30sXG59KSA9PiB7XG4gIGNvbnN0IFtldmVudHNBcnIsIHNldEV2ZW50c0Fycl0gPSB1c2VTdGF0ZTxJRXZlbnRbXT4oW10pO1xuICBjb25zdCBsb2NhbGUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PlxuICAgICAgc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZSxcbiAgKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IFtyZXNwb25zZSwgaXNMb2FkaW5nLCBlcnJvcl0gPVxuICAgIHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeTxJRXZlbnRzUmVzcG9uc2U+KGVuZHBvaW50LCBldmVudFBhcmFtcyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzcG9uc2U/LmRhdGEgJiYgIWVycm9yICYmIEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YS5ldmVudHMpKSB7XG4gICAgICBzZXRFdmVudHNBcnIocmVzcG9uc2UuZGF0YS5ldmVudHMuc2xpY2UoMCwgNCkpO1xuICAgIH1cbiAgfSwgW3Jlc3BvbnNlXSk7XG5cbiAgLy8gVGhpcyBob2xkcyB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0IHNlZW4gb2YgdGhlIGV2ZW50XG4gIGNvbnN0IHBhcnNlRXZlbnREYXRhID0gKGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgICBjb25zdCBsYXN0c2VlbiA9IGxhc3RTZWVuT2JzZXJ2YXRpb24oZXZlbnQpO1xuXG4gICAgY29uc3QgZmlyc3RzZWVuID0gZmlyc3RTZWVuT2JzZXJ2YXRpb24oZXZlbnQpO1xuXG4gICAgY29uc3QgZGlmZiA9IGxhc3RzZWVuLmxhc3Rfc2Vlbl90aW1lIC0gZmlyc3RzZWVuLnN0YXJ0X3RpbWU7XG4gICAgZGF5anMuZXh0ZW5kKHV0Yyk7XG5cbiAgICBjb25zdCBtYXBwZWRFdmVudDogYW55ID0ge1xuICAgICAgbGFzdHNlZW4sXG4gICAgICBmaXJzdHNlZW4sXG4gICAgICAvL0B0cy1pZ25vcmVcbiAgICAgIHRvdGFsOiBkYXlqcy51dGMoZGlmZiAqIDEwMDApLmZvcm1hdCgnSEg6bW06c3MnKSxcbiAgICB9O1xuICAgIHJldHVybiBtYXBwZWRFdmVudDtcbiAgfTtcblxuICBpZiAoaXNMb2FkaW5nICYmICFlcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8Q29udGFpbmVyPlxuICAgICAgICA8RGF0YUxvYWRlckVycm9yIGlzTG9hZGluZz17aXNMb2FkaW5nfSBkYXRhPXtldmVudHNBcnJ9IGVycm9yPXtlcnJvcn0+XG4gICAgICAgICAgPFNwaW5uZXJIb2xkZXI+XG4gICAgICAgICAgICA8U3Bpbm5lciAvPlxuICAgICAgICAgIDwvU3Bpbm5lckhvbGRlcj5cbiAgICAgICAgPC9EYXRhTG9hZGVyRXJyb3I+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIGNsYXNzTmFtZT17YGV2ZW50LXJvdy0ke2xvY2FsZX1gfT5cbiAgICAgIHtyZXNwb25zZSAmJiBldmVudHNBcnIubGVuZ3RoID09PSAwID8gKFxuICAgICAgICA8Tm9FdmVudHNDb21wb25lbnQgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIGV2ZW50c0Fyci5tYXAoKGV2ZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBwYXJzZUV2ZW50RGF0YShldmVudCk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYga2V5PXtgb2xzZS0kKGluZGV4KWB9IGNsYXNzTmFtZT1cIm9sLXNldmVyZS1ldmVudFwiPlxuICAgICAgICAgICAgICA8T3B0aW9uYWxMaW5rZWRTZXZlcmVFdmVudFxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgIHRvdGFsPXtkYXRhLnRvdGFsfVxuICAgICAgICAgICAgICAgIGZpcnN0c2Vlbj17ZGF0YS5maXJzdHNlZW59XG4gICAgICAgICAgICAgICAgbGFzdHNlZW49e2RhdGEubGFzdHNlZW59XG4gICAgICAgICAgICAgICAgbXNnPVwiXCJcbiAgICAgICAgICAgICAgICB2YWx1ZXNGcm9tS1FMPXtldmVudFBhcmFtcy52YWx1ZXNGcm9tS1FMfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICl9XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2LmF0dHJzKCgpID0+ICh7XG4gIGxvY2FsZTogJ3RleHQnLFxufSkpYFxuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDYzcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZ2FwOiAyNHB4O1xuXG4gIC5vbC1zZXZlcmUtZXZlbnQge1xuICAgIHdpZHRoOiA0MDRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYuZXZlbnQtcm93LWhlIHtcbiAgICAub2wtc2V2ZXJlLWV2ZW50IHtcbiAgICAgIG1hcmdpbjogMCAwIDAgMS4zMiU7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgfVxuYDtcblxuY29uc3QgTm9FdmVudHNDb21wb25lbnQgPSBzdHlsZWQoTm9FdmVudHMpYFxuICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxJQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxTQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSwwQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGlCQUFBLEdBQUFULE9BQUE7QUFFQSxJQUFBVSx5QkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBWCxPQUFBO0FBRzhELFNBQUFZLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZCx3QkFBQWtCLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFRdkQsSUFBTVcsU0FBbUMsR0FBRyxTQUF0Q0EsU0FBbUNBLENBQUFDLElBQUEsRUFHMUM7RUFBQSxJQUZKQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtJQUFBQyxnQkFBQSxHQUFBRixJQUFBLENBQ1JHLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxnQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxnQkFBQTtFQUVoQixJQUFBRSxTQUFBLEdBQWtDLElBQUFDLGVBQVEsRUFBVyxFQUFFLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUF2QixPQUFBLEVBQUFvQixTQUFBO0lBQWpESSxTQUFTLEdBQUFGLFVBQUE7SUFBRUcsWUFBWSxHQUFBSCxVQUFBO0VBQzlCLElBQU1JLE1BQU0sR0FBRyxJQUFBQyx1QkFBVyxFQUN4QixVQUFDQyxLQUFvQztJQUFBLE9BQ25DQSxLQUFLLENBQUNDLGdCQUFnQixDQUFDQyxVQUFVLENBQUNKLE1BQU07RUFBQSxDQUM1QyxDQUFDO0VBQ0Q7RUFDQSxJQUFBSyxxQkFBQSxHQUNFLElBQUFDLGtEQUF3QixFQUFrQmYsUUFBUSxFQUFFRSxXQUFXLENBQUM7SUFBQWMsc0JBQUEsT0FBQVYsZUFBQSxDQUFBdkIsT0FBQSxFQUFBK0IscUJBQUE7SUFEM0RHLFFBQVEsR0FBQUQsc0JBQUE7SUFBRUUsU0FBUyxHQUFBRixzQkFBQTtJQUFFRyxLQUFLLEdBQUFILHNCQUFBO0VBR2pDLElBQUFJLGdCQUFTLEVBQUMsWUFBTTtJQUNkLElBQUksQ0FBQUgsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVJLElBQUksS0FBSSxDQUFDRixLQUFLLElBQUlHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTixRQUFRLENBQUNJLElBQUksQ0FBQ0csTUFBTSxDQUFDLEVBQUU7TUFDbkVoQixZQUFZLENBQUNTLFFBQVEsQ0FBQ0ksSUFBSSxDQUFDRyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQ7RUFDRixDQUFDLEVBQUUsQ0FBQ1IsUUFBUSxDQUFDLENBQUM7O0VBRWQ7RUFDQSxJQUFNUyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLEtBQWEsRUFBSztJQUN4QyxJQUFNQyxRQUFRLEdBQUcsSUFBQUMsK0JBQW1CLEVBQUNGLEtBQUssQ0FBQztJQUUzQyxJQUFNRyxTQUFTLEdBQUcsSUFBQUMsZ0NBQW9CLEVBQUNKLEtBQUssQ0FBQztJQUU3QyxJQUFNSyxJQUFJLEdBQUdKLFFBQVEsQ0FBQ0ssY0FBYyxHQUFHSCxTQUFTLENBQUNJLFVBQVU7SUFDM0RDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDQyxZQUFHLENBQUM7SUFFakIsSUFBTUMsV0FBZ0IsR0FBRztNQUN2QlYsUUFBUSxFQUFSQSxRQUFRO01BQ1JFLFNBQVMsRUFBVEEsU0FBUztNQUNUO01BQ0FTLEtBQUssRUFBRUosY0FBSyxDQUFDRSxHQUFHLENBQUNMLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQ1EsTUFBTSxDQUFDLFVBQVU7SUFDakQsQ0FBQztJQUNELE9BQU9GLFdBQVc7RUFDcEIsQ0FBQztFQUVELElBQUlwQixTQUFTLElBQUksQ0FBQ0MsS0FBSyxFQUFFO0lBQ3ZCLG9CQUNFMUQsTUFBQSxDQUFBc0IsT0FBQSxDQUFBMEQsYUFBQSxDQUFDQyxTQUFTLHFCQUNSakYsTUFBQSxDQUFBc0IsT0FBQSxDQUFBMEQsYUFBQSxDQUFDdkUsZ0JBQUEsQ0FBQXlFLGVBQWU7TUFBQ3pCLFNBQVMsRUFBRUEsU0FBVTtNQUFDRyxJQUFJLEVBQUVkLFNBQVU7TUFBQ1ksS0FBSyxFQUFFQTtJQUFNLGdCQUNuRTFELE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQTBELGFBQUEsQ0FBQ3JFLGlCQUFBLENBQUF3RSxhQUFhLHFCQUNabkYsTUFBQSxDQUFBc0IsT0FBQSxDQUFBMEQsYUFBQSxDQUFDdEUsUUFBQSxDQUFBMEUsT0FBTyxNQUFFLENBQ0csQ0FDQSxDQUNSLENBQUM7RUFFaEI7RUFFQSxvQkFDRXBGLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQTBELGFBQUEsQ0FBQ0MsU0FBUztJQUFDSSxTQUFTLGVBQUFDLE1BQUEsQ0FBZXRDLE1BQU07RUFBRyxHQUN6Q1EsUUFBUSxJQUFJVixTQUFTLENBQUN5QyxNQUFNLEtBQUssQ0FBQyxnQkFDakN2RixNQUFBLENBQUFzQixPQUFBLENBQUEwRCxhQUFBLENBQUNRLGlCQUFpQixNQUFFLENBQUMsR0FFckIxQyxTQUFTLENBQUMyQyxHQUFHLENBQUMsVUFBQ3ZCLEtBQUssRUFBRXdCLEtBQUssRUFBSztJQUM5QixJQUFNOUIsSUFBSSxHQUFHSyxjQUFjLENBQUNDLEtBQUssQ0FBQztJQUNsQyxvQkFDRWxFLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQTBELGFBQUE7TUFBS2pELEdBQUcsaUJBQWtCO01BQUNzRCxTQUFTLEVBQUM7SUFBaUIsZ0JBQ3BEckYsTUFBQSxDQUFBc0IsT0FBQSxDQUFBMEQsYUFBQSxDQUFDeEUsMEJBQUEsQ0FBQWMsT0FBeUI7TUFDeEJTLEdBQUcsRUFBRTJELEtBQU07TUFDWHhCLEtBQUssRUFBRUEsS0FBTTtNQUNiWSxLQUFLLEVBQUVsQixJQUFJLENBQUNrQixLQUFNO01BQ2xCVCxTQUFTLEVBQUVULElBQUksQ0FBQ1MsU0FBVTtNQUMxQkYsUUFBUSxFQUFFUCxJQUFJLENBQUNPLFFBQVM7TUFDeEJ3QixHQUFHLEVBQUMsRUFBRTtNQUNOQyxhQUFhLEVBQUVuRCxXQUFXLENBQUNtRDtJQUFjLENBQzFDLENBQ0UsQ0FBQztFQUVWLENBQUMsQ0FFTSxDQUFDO0FBRWhCLENBQUM7QUFBQ0MsT0FBQSxDQUFBeEQsU0FBQSxHQUFBQSxTQUFBO0FBRUYsSUFBTTRDLFNBQVMsR0FBR2EseUJBQU0sQ0FBQ0MsR0FBRyxDQUFDQyxLQUFLLENBQUM7RUFBQSxPQUFPO0lBQ3hDaEQsTUFBTSxFQUFFO0VBQ1YsQ0FBQztBQUFBLENBQUMsQ0FBQyxDQUFBaUQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxVUE0QkY7QUFFRCxJQUFNWCxpQkFBaUIsR0FBRyxJQUFBTSx5QkFBTSxFQUFDTSxpQkFBUSxDQUFDLENBQUFILFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0dBT3pDIn0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZGF5anMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0YyIsIl9yZWFjdFJlZHV4IiwiX05vRXZlbnRzIiwiX09wdGlvbmFsTGlua2VkU2V2ZXJlRXZlbnQiLCJfRGF0YUxvYWRlckVycm9yIiwiX1NwaW5uZXIiLCJfVXRpbGl0eURhc2hib2FyZCIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRXZlbnRVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiRXZlbnRzUm93IiwiX3JlZiIsImVuZHBvaW50IiwiX3JlZiRldmVudFBhcmFtcyIsImV2ZW50UGFyYW1zIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZXZlbnRzQXJyIiwic2V0RXZlbnRzQXJyIiwibG9jYWxlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJuYXZDb250ZXh0IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlIiwiaXNMb2FkaW5nIiwiZXJyb3IiLCJ1c2VFZmZlY3QiLCJkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZXZlbnRzIiwic2xpY2UiLCJwYXJzZUV2ZW50RGF0YSIsImV2ZW50IiwibGFzdHNlZW4iLCJsYXN0U2Vlbk9ic2VydmF0aW9uIiwiZmlyc3RzZWVuIiwiZmlyc3RTZWVuT2JzZXJ2YXRpb24iLCJkaWZmIiwibGFzdF9zZWVuX3RpbWUiLCJzdGFydF90aW1lIiwiZGF5anMiLCJleHRlbmQiLCJ1dGMiLCJtYXBwZWRFdmVudCIsInRvdGFsIiwiZm9ybWF0IiwiY3JlYXRlRWxlbWVudCIsIkNvbnRhaW5lciIsIkRhdGFMb2FkZXJFcnJvciIsIlNwaW5uZXJIb2xkZXIiLCJTcGlubmVyIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwibGVuZ3RoIiwiTm9FdmVudHNDb21wb25lbnQiLCJtYXAiLCJpbmRleCIsImlkIiwibXNnIiwidmFsdWVzRnJvbUtRTCIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiTm9FdmVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9FdmVudHNSb3cvRXZlbnRzUm93LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IE5vRXZlbnRzIGZyb20gJ3NyYy9wYWdlcy9VdGlsaXR5RGFzaGJvYXJkUGFnZS9Nb3N0U2V2ZXJlRXZlbnRzL05vRXZlbnRzL05vRXZlbnRzJztcbmltcG9ydCBPcHRpb25hbExpbmtlZFNldmVyZUV2ZW50IGZyb20gJ3NyYy9wYWdlcy9VdGlsaXR5RGFzaGJvYXJkUGFnZS9Nb3N0U2V2ZXJlRXZlbnRzL1NldmVyZUV2ZW50L09wdGlvbmFsTGlua2VkU2V2ZXJlRXZlbnQnO1xuaW1wb3J0IHsgRGF0YUxvYWRlckVycm9yIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvRGF0YUxvYWRlckVycm9yL0RhdGFMb2FkZXJFcnJvcic7XG5pbXBvcnQgeyBJRXZlbnQsIElFdmVudHNSZXNwb25zZSB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IFNwaW5uZXJIb2xkZXIgfSBmcm9tICdzcmMvcGFnZXMvVXRpbGl0eURhc2hib2FyZFBhZ2UvVXRpbGl0eURhc2hib2FyZCc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnc3JjL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSB9IGZyb20gJ3NyYy9ob29rcy91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnknO1xuaW1wb3J0IHtcbiAgZmlyc3RTZWVuT2JzZXJ2YXRpb24sXG4gIGxhc3RTZWVuT2JzZXJ2YXRpb24sXG59IGZyb20gJy4uLy4uL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0V2ZW50VXRpbHMnO1xuXG5pbnRlcmZhY2UgRXZlbnRzUm93UHJvcHMge1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBldmVudFBhcmFtcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRXZlbnRzUm93OiBSZWFjdC5GQzxFdmVudHNSb3dQcm9wcz4gPSAoe1xuICBlbmRwb2ludCxcbiAgZXZlbnRQYXJhbXMgPSB7fSxcbn0pID0+IHtcbiAgY29uc3QgW2V2ZW50c0Fyciwgc2V0RXZlbnRzQXJyXSA9IHVzZVN0YXRlPElFdmVudFtdPihbXSk7XG4gIGNvbnN0IGxvY2FsZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+XG4gICAgICBzdGF0ZS5uYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlLFxuICApO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgY29uc3QgW3Jlc3BvbnNlLCBpc0xvYWRpbmcsIGVycm9yXSA9XG4gICAgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5PElFdmVudHNSZXNwb25zZT4oZW5kcG9pbnQsIGV2ZW50UGFyYW1zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNwb25zZT8uZGF0YSAmJiAhZXJyb3IgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhLmV2ZW50cykpIHtcbiAgICAgIHNldEV2ZW50c0FycihyZXNwb25zZS5kYXRhLmV2ZW50cy5zbGljZSgwLCA0KSk7XG4gICAgfVxuICB9LCBbcmVzcG9uc2VdKTtcblxuICAvLyBUaGlzIGhvbGRzIHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qgc2VlbiBvZiB0aGUgZXZlbnRcbiAgY29uc3QgcGFyc2VFdmVudERhdGEgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIGNvbnN0IGxhc3RzZWVuID0gbGFzdFNlZW5PYnNlcnZhdGlvbihldmVudCk7XG5cbiAgICBjb25zdCBmaXJzdHNlZW4gPSBmaXJzdFNlZW5PYnNlcnZhdGlvbihldmVudCk7XG5cbiAgICBjb25zdCBkaWZmID0gbGFzdHNlZW4ubGFzdF9zZWVuX3RpbWUgLSBmaXJzdHNlZW4uc3RhcnRfdGltZTtcbiAgICBkYXlqcy5leHRlbmQodXRjKTtcblxuICAgIGNvbnN0IG1hcHBlZEV2ZW50OiBhbnkgPSB7XG4gICAgICBsYXN0c2VlbixcbiAgICAgIGZpcnN0c2VlbixcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG90YWw6IGRheWpzLnV0YyhkaWZmICogMTAwMCkuZm9ybWF0KCdISDptbTpzcycpLFxuICAgIH07XG4gICAgcmV0dXJuIG1hcHBlZEV2ZW50O1xuICB9O1xuXG4gIGlmIChpc0xvYWRpbmcgJiYgIWVycm9yKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb250YWluZXI+XG4gICAgICAgIDxEYXRhTG9hZGVyRXJyb3IgaXNMb2FkaW5nPXtpc0xvYWRpbmd9IGRhdGE9e2V2ZW50c0Fycn0gZXJyb3I9e2Vycm9yfT5cbiAgICAgICAgICA8U3Bpbm5lckhvbGRlcj5cbiAgICAgICAgICAgIDxTcGlubmVyIC8+XG4gICAgICAgICAgPC9TcGlubmVySG9sZGVyPlxuICAgICAgICA8L0RhdGFMb2FkZXJFcnJvcj5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgY2xhc3NOYW1lPXtgZXZlbnQtcm93LSR7bG9jYWxlfWB9PlxuICAgICAge3Jlc3BvbnNlICYmIGV2ZW50c0Fyci5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgIDxOb0V2ZW50c0NvbXBvbmVudCAvPlxuICAgICAgKSA6IChcbiAgICAgICAgZXZlbnRzQXJyLm1hcCgoZXZlbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHBhcnNlRXZlbnREYXRhKGV2ZW50KTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e2BldmVudC1jb250YWluZXItJHtldmVudC5pZH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvbC1zZXZlcmUtZXZlbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8T3B0aW9uYWxMaW5rZWRTZXZlcmVFdmVudFxuICAgICAgICAgICAgICAgIGtleT17YGV2ZW50LSR7ZXZlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgICAgICAgICAgdG90YWw9e2RhdGEudG90YWx9XG4gICAgICAgICAgICAgICAgZmlyc3RzZWVuPXtkYXRhLmZpcnN0c2Vlbn1cbiAgICAgICAgICAgICAgICBsYXN0c2Vlbj17ZGF0YS5sYXN0c2Vlbn1cbiAgICAgICAgICAgICAgICBtc2c9XCJcIlxuICAgICAgICAgICAgICAgIHZhbHVlc0Zyb21LUUw9e2V2ZW50UGFyYW1zLnZhbHVlc0Zyb21LUUx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKX1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXYuYXR0cnMoKCkgPT4gKHtcbiAgbG9jYWxlOiAndGV4dCcsXG59KSlgXG4gIGhlaWdodDogY2FsYygxMDAlIC0gNjNweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDI0cHg7XG5cbiAgLm9sLXNldmVyZS1ldmVudCB7XG4gICAgd2lkdGg6IDQwNHB4O1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi5ldmVudC1yb3ctaGUge1xuICAgIC5vbC1zZXZlcmUtZXZlbnQge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjMyJTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICB9XG5gO1xuXG5jb25zdCBOb0V2ZW50c0NvbXBvbmVudCA9IHN0eWxlZChOb0V2ZW50cylgXG4gIG1pbi1oZWlnaHQ6IHVuc2V0O1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgI2QwZDBkMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJv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
|
package/lib/Widgets/Map/Map.js
CHANGED
|
@@ -24,13 +24,13 @@ var _Event = require("./events/Event");
|
|
|
24
24
|
var _MapUtils = require("./MapUtils");
|
|
25
25
|
var _theme = require("../../styles/theme/theme");
|
|
26
26
|
var _ListContext = require("pages/DashboardMap/ListContext");
|
|
27
|
-
var _actions = require("store/global/actions");
|
|
28
27
|
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); }
|
|
29
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
30
29
|
// @ts-ignore
|
|
31
30
|
|
|
32
31
|
// import { storeMap } from 'src/store/global/actions';
|
|
33
32
|
|
|
33
|
+
// import { addLayerGroup } from './points/PointUtils';
|
|
34
34
|
require('leaflet.markercluster');
|
|
35
35
|
var Map = function Map(_ref) {
|
|
36
36
|
var areas = _ref.areas,
|
|
@@ -73,37 +73,31 @@ var Map = function Map(_ref) {
|
|
|
73
73
|
var focusedEventPresent = (0, _react.useMemo)(function () {
|
|
74
74
|
return focusedEvent !== null && focusedEvent !== undefined;
|
|
75
75
|
}, [focusedEvent]);
|
|
76
|
-
var _useState3 = (0, _react.useState)(
|
|
76
|
+
var _useState3 = (0, _react.useState)(L.layerGroup()),
|
|
77
77
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 1),
|
|
78
|
-
|
|
79
|
-
var _useState5 = (0, _react.useState)(
|
|
78
|
+
unmonitoredFactoriesGroup = _useState4[0];
|
|
79
|
+
var _useState5 = (0, _react.useState)(L.layerGroup()),
|
|
80
80
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 1),
|
|
81
|
-
|
|
82
|
-
var _useState7 = (0, _react.useState)(
|
|
81
|
+
monitoredFactoriesGroup = _useState6[0];
|
|
82
|
+
var _useState7 = (0, _react.useState)(L.layerGroup()),
|
|
83
83
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 1),
|
|
84
|
-
|
|
84
|
+
unmonitoredEdgesGroup = _useState8[0];
|
|
85
85
|
var _useState9 = (0, _react.useState)(L.layerGroup()),
|
|
86
86
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 1),
|
|
87
|
-
|
|
87
|
+
monitoredEdgesGroup = _useState10[0];
|
|
88
88
|
var _useState11 = (0, _react.useState)(L.layerGroup()),
|
|
89
89
|
_useState12 = (0, _slicedToArray2.default)(_useState11, 1),
|
|
90
|
-
|
|
90
|
+
wwtpsLayerGroup = _useState12[0];
|
|
91
91
|
var _useState13 = (0, _react.useState)(L.layerGroup()),
|
|
92
92
|
_useState14 = (0, _slicedToArray2.default)(_useState13, 1),
|
|
93
|
-
|
|
94
|
-
var _useState15 = (0, _react.useState)(L.
|
|
93
|
+
collectorsLayerGroup = _useState14[0];
|
|
94
|
+
var _useState15 = (0, _react.useState)(new L.FeatureGroup()),
|
|
95
95
|
_useState16 = (0, _slicedToArray2.default)(_useState15, 1),
|
|
96
|
-
|
|
97
|
-
var _useState17 = (0, _react.useState)(
|
|
98
|
-
_useState18 = (0, _slicedToArray2.default)(_useState17,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
_useState20 = (0, _slicedToArray2.default)(_useState19, 1),
|
|
102
|
-
areasLayerGroup = _useState20[0];
|
|
103
|
-
var _useState21 = (0, _react.useState)(true),
|
|
104
|
-
_useState22 = (0, _slicedToArray2.default)(_useState21, 2),
|
|
105
|
-
edgesCheckbox = _useState22[0],
|
|
106
|
-
setEdgesCheckbox = _useState22[1];
|
|
96
|
+
areasLayerGroup = _useState16[0];
|
|
97
|
+
var _useState17 = (0, _react.useState)(true),
|
|
98
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
99
|
+
edgesCheckbox = _useState18[0],
|
|
100
|
+
setEdgesCheckbox = _useState18[1];
|
|
107
101
|
var renderPointMarkers = function renderPointMarkers(filteredPoints, mapRef, props) {
|
|
108
102
|
return mapRef.current !== null && points && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, Object.assign({
|
|
109
103
|
map: mapRef.current,
|
|
@@ -113,23 +107,23 @@ var Map = function Map(_ref) {
|
|
|
113
107
|
var memoizedMonitoredPoints = (0, _react.useMemo)(function () {
|
|
114
108
|
var monitoredPoints = (0, _MapUtils.filterPoints)(points, true);
|
|
115
109
|
return renderPointMarkers(monitoredPoints, mapRef, {
|
|
116
|
-
includeUnmonitoredPoints:
|
|
110
|
+
includeUnmonitoredPoints: true,
|
|
117
111
|
rerender: _MapUtils.zoomLevels[mapZoomLevel],
|
|
118
|
-
factoriesGroup:
|
|
112
|
+
factoriesGroup: monitoredFactoriesGroup,
|
|
119
113
|
wwtpsGroup: wwtpsLayerGroup,
|
|
120
114
|
collectorsGroup: collectorsLayerGroup,
|
|
121
|
-
forEventsView:
|
|
115
|
+
forEventsView: forEventsView
|
|
122
116
|
});
|
|
123
117
|
}, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
|
|
124
118
|
var memoizedUnmonitoredPoints = (0, _react.useMemo)(function () {
|
|
125
119
|
var unmonitoredPoints = (0, _MapUtils.filterPoints)(points, false);
|
|
126
120
|
return renderPointMarkers(unmonitoredPoints, mapRef, {
|
|
127
|
-
includeUnmonitoredPoints:
|
|
121
|
+
includeUnmonitoredPoints: true,
|
|
128
122
|
rerender: _MapUtils.zoomLevels[mapZoomLevel],
|
|
129
|
-
factoriesGroup:
|
|
123
|
+
factoriesGroup: unmonitoredFactoriesGroup,
|
|
130
124
|
wwtpsGroup: wwtpsLayerGroup,
|
|
131
125
|
collectorsGroup: collectorsLayerGroup,
|
|
132
|
-
forEventsView:
|
|
126
|
+
forEventsView: forEventsView
|
|
133
127
|
});
|
|
134
128
|
}, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
|
|
135
129
|
var renderEdges = function renderEdges(filteredEdges, mapRef, edgesCheckbox, props) {
|
|
@@ -158,29 +152,33 @@ var Map = function Map(_ref) {
|
|
|
158
152
|
hideArrows: true,
|
|
159
153
|
allowUnmonitoredDescendants: includeUnmonitoredDescendantsForEdges,
|
|
160
154
|
group: unmonitoredEdgesGroup,
|
|
161
|
-
shouldntDraw:
|
|
155
|
+
shouldntDraw: unmonitoredEdgesGroup.getLayers().length !== 0
|
|
162
156
|
});
|
|
163
157
|
}, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
|
|
164
158
|
var handleEdgesCheckboxChange = function handleEdgesCheckboxChange(isChecked) {
|
|
165
159
|
setEdgesCheckbox(isChecked);
|
|
166
160
|
};
|
|
161
|
+
|
|
162
|
+
// This variable stores the zoom levels the edges are displayed
|
|
163
|
+
// It is used in two places in the code, so it is better to store it in one place
|
|
164
|
+
var edgesZoomLevels = ['Small', 'Medium', 'MLarge', 'Large'];
|
|
167
165
|
var handlePointsCheckboxChange = function handlePointsCheckboxChange(isChecked) {
|
|
168
166
|
if (mapRef.current !== null) {
|
|
169
167
|
var zoom = _MapUtils.zoomLevels[mapRef.current.getZoom()];
|
|
170
168
|
if (isChecked) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
// Hide unmonitored points when "show only monitored" is checked
|
|
170
|
+
unmonitoredFactoriesGroup.removeFrom(mapRef.current);
|
|
171
|
+
|
|
172
|
+
// Hide unmonitored edges if at appropriate zoom level
|
|
173
|
+
if (edgesZoomLevels.includes(zoom)) {
|
|
174
|
+
unmonitoredEdgesGroup.removeFrom(mapRef.current);
|
|
175
|
+
}
|
|
177
176
|
} else {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
hiddenUnmonitoredEdgesGroup.clearLayers();
|
|
177
|
+
// Show all points when "show only monitored" is unchecked
|
|
178
|
+
unmonitoredFactoriesGroup.addTo(mapRef.current);
|
|
179
|
+
|
|
180
|
+
// Show unmonitored edges if at appropriate zoom level
|
|
181
|
+
if (edgesZoomLevels.includes(zoom)) {
|
|
184
182
|
unmonitoredEdgesGroup.addTo(mapRef.current);
|
|
185
183
|
}
|
|
186
184
|
}
|
|
@@ -196,25 +194,17 @@ var Map = function Map(_ref) {
|
|
|
196
194
|
};
|
|
197
195
|
var zoomRulesForDashaboardMaps = function zoomRulesForDashaboardMaps() {
|
|
198
196
|
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedUnmonitoredPoints, " ", memoizedMonitoredPoints);
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
case 'Medium':
|
|
202
|
-
case 'MLarge':
|
|
203
|
-
payload = zoomRulesForEventsView();
|
|
204
|
-
break;
|
|
205
|
-
// case 'MLarge':
|
|
206
|
-
// case 'Large':
|
|
207
|
-
// case 'XLarge':
|
|
208
|
-
// default:
|
|
209
|
-
// payload = <>{memoizedPoints}</>;
|
|
210
|
-
// break;
|
|
197
|
+
if (forEventsView || edgesZoomLevels.includes(_MapUtils.zoomLevels[mapZoomLevel])) {
|
|
198
|
+
payload = zoomRulesForEventsView();
|
|
211
199
|
}
|
|
212
|
-
|
|
213
200
|
return payload;
|
|
214
201
|
};
|
|
215
202
|
var memoizedZoomControl = (0, _react.useMemo)(function () {
|
|
216
203
|
var payload = forEventsView ? zoomRulesForEventsView() : zoomRulesForDashaboardMaps();
|
|
217
|
-
|
|
204
|
+
var checkbox = document.querySelector('#monitored-points-checkbox');
|
|
205
|
+
if (checkbox) {
|
|
206
|
+
handlePointsCheckboxChange(checkbox.checked);
|
|
207
|
+
}
|
|
218
208
|
return payload;
|
|
219
209
|
}, [mapZoomLevel, eventsData.isFetching, focusedEvent, hoveredEvent, points, mapRef.current, edgesCheckbox, unmonitoredEdgesGroup]);
|
|
220
210
|
var memoizedEvent = (0, _react.useMemo)(function () {
|
|
@@ -235,34 +225,42 @@ var Map = function Map(_ref) {
|
|
|
235
225
|
includeNetwork: !hoveredEventPresent
|
|
236
226
|
});
|
|
237
227
|
}, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
228
|
+
|
|
229
|
+
// useEffect(() => {
|
|
230
|
+
// return function cleanup() {
|
|
231
|
+
// collectorsLayerGroup.clearLayers();
|
|
232
|
+
// mapRef.current?.removeLayer(collectorsLayerGroup);
|
|
233
|
+
// };
|
|
234
|
+
// }, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
|
|
235
|
+
|
|
236
|
+
// useEffect(() => {
|
|
237
|
+
// initializeMap(
|
|
238
|
+
// mapZoomLevel,
|
|
239
|
+
// mapBoxStyle,
|
|
240
|
+
// leafletMap.satellite,
|
|
241
|
+
// mapRef,
|
|
242
|
+
// dispatch,
|
|
243
|
+
// isValidArea,
|
|
244
|
+
// areaToCenterBy,
|
|
245
|
+
// setMapZoomLevel,
|
|
246
|
+
// forWWTPDashboard,
|
|
247
|
+
// true,
|
|
248
|
+
// global_data.waterAuthorityId,
|
|
249
|
+
// );
|
|
250
|
+
|
|
251
|
+
// return function cleanup() {
|
|
252
|
+
// wwtpsLayerGroup.clearLayers();
|
|
253
|
+
// collectorsLayerGroup.clearLayers();
|
|
254
|
+
// areasLayerGroup.clearLayers();
|
|
255
|
+
// mapRef.current?.removeLayer(wwtpsLayerGroup);
|
|
256
|
+
// mapRef.current?.removeLayer(collectorsLayerGroup);
|
|
257
|
+
// mapRef.current?.removeLayer(areasLayerGroup);
|
|
258
|
+
// // @ts-ignore
|
|
259
|
+
// mapRef.current.remove();
|
|
260
|
+
// dispatch(storeMap(undefined));
|
|
261
|
+
// };
|
|
262
|
+
// }, [global_data.waterAuthorityId]);
|
|
263
|
+
|
|
266
264
|
(0, _react.useEffect)(function () {
|
|
267
265
|
if (!mapRef.current) {
|
|
268
266
|
(0, _MapUtils.initializeMap)(mapZoomLevel, mapBoxStyle, _theme.leafletMap.satellite, mapRef, dispatch, _MapUtils.isValidArea, areaToCenterBy, setMapZoomLevel, true, global_data.waterAuthorityId);
|
|
@@ -273,14 +271,21 @@ var Map = function Map(_ref) {
|
|
|
273
271
|
return area.shape_data;
|
|
274
272
|
}).flat();
|
|
275
273
|
}
|
|
274
|
+
|
|
275
|
+
// Add layer groups to map after initialization
|
|
276
|
+
// monitoredFactoriesGroup.addTo(mapRef.current);
|
|
277
|
+
// unmonitoredFactoriesGroup.addTo(mapRef.current);
|
|
278
|
+
// wwtpsLayerGroup.addTo(mapRef.current);
|
|
279
|
+
// collectorsLayerGroup.addTo(mapRef.current);
|
|
280
|
+
|
|
276
281
|
(0, _MapUtils.areaFocusLogic)(mapRef, _MapUtils.isValidArea, areaToCenterBy);
|
|
277
282
|
trackLayerbox();
|
|
278
283
|
}
|
|
279
|
-
}, [mapRef.current, areaToCenterBy]);
|
|
284
|
+
}, [mapRef.current, areaToCenterBy, points, global_data.waterAuthorityId]);
|
|
280
285
|
(0, _react.useEffect)(function () {
|
|
281
|
-
var _mapRef$
|
|
286
|
+
var _mapRef$current;
|
|
282
287
|
var clicked = false;
|
|
283
|
-
(_mapRef$
|
|
288
|
+
(_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 ? void 0 : _mapRef$current.eachLayer(function (layer) {
|
|
284
289
|
if (clicked) return;
|
|
285
290
|
if ((layer === null || layer === void 0 ? void 0 : layer.kando_object_id) === selectedItem && layer.isPopupOpen() === false) {
|
|
286
291
|
if (layer instanceof L.Marker) {
|
|
@@ -311,4 +316,4 @@ var Map = function Map(_ref) {
|
|
|
311
316
|
}), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent, memoizedZoomControl, children))));
|
|
312
317
|
};
|
|
313
318
|
exports.Map = Map;
|
|
314
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJldmVudHNEYXRhIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiaG92ZXJlZEV2ZW50UHJlc2VudCIsInVzZU1lbW8iLCJ1bmRlZmluZWQiLCJmb2N1c2VkRXZlbnRQcmVzZW50IiwiX3VzZVN0YXRlMyIsIndpbmRvdyIsImN1c3RvbUxlYWZsZXQiLCJtYXJrZXJDbHVzdGVyR3JvdXAiLCJjbHVzdGVyR3JvdXBPcHRpb25zIiwiX3VzZVN0YXRlNCIsImhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsIm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIl91c2VTdGF0ZTkiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlMTAiLCJ1bm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2Iiwid3d0cHNMYXllckdyb3VwIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiX3VzZVN0YXRlMTkiLCJGZWF0dXJlR3JvdXAiLCJfdXNlU3RhdGUyMCIsImFyZWFzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJlZGdlc0NoZWNrYm94Iiwic2V0RWRnZXNDaGVja2JveCIsInJlbmRlclBvaW50TWFya2VycyIsImZpbHRlcmVkUG9pbnRzIiwicHJvcHMiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsIlBvaW50TWFya2VycyIsImFzc2lnbiIsIm1lbW9pemVkTW9uaXRvcmVkUG9pbnRzIiwibW9uaXRvcmVkUG9pbnRzIiwiZmlsdGVyUG9pbnRzIiwicmVyZW5kZXIiLCJ6b29tTGV2ZWxzIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwibWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50cyIsInVubW9uaXRvcmVkUG9pbnRzIiwicmVuZGVyRWRnZXMiLCJmaWx0ZXJlZEVkZ2VzIiwibWVtb2l6ZWRFZGdlcyIsIm1vbml0b3JlZEVkZ2VzIiwiZmlsdGVyRWRnZXMiLCJoaWRlQXJyb3dzIiwiYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzIiwiZ3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkRWRnZXMiLCJ1bm1vbml0b3JlZEVkZ2VzIiwic2hvdWxkbnREcmF3IiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiaGFuZGxlRWRnZXNDaGVja2JveENoYW5nZSIsImlzQ2hlY2tlZCIsImhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlIiwiem9vbSIsImdldFpvb20iLCJhZGRMYXllciIsImNsZWFyTGF5ZXJzIiwicmVtb3ZlRnJvbSIsImFkZFRvIiwidHJhY2tMYXllcmJveCIsInNldHVwQ2hlY2tib3hMaXN0ZW5lciIsInpvb21SdWxlc0ZvckV2ZW50c1ZpZXciLCJwYXlsb2FkIiwiRnJhZ21lbnQiLCJ6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyIsIm1lbW9pemVkWm9vbUNvbnRyb2wiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjaGVja2VkIiwiaXNGZXRjaGluZyIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsImV2ZW50RmlsdGVyUGFyYW0iLCJ1c2VFZmZlY3QiLCJjbGVhbnVwIiwiX21hcFJlZiRjdXJyZW50IiwicmVtb3ZlTGF5ZXIiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJ3YXRlckF1dGhvcml0eUlkIiwiX21hcFJlZiRjdXJyZW50MiIsIl9tYXBSZWYkY3VycmVudDMiLCJfbWFwUmVmJGN1cnJlbnQ0IiwiX21hcFJlZiRjdXJyZW50NSIsIl9tYXBSZWYkY3VycmVudDYiLCJfbWFwUmVmJGN1cnJlbnQ3IiwicmVtb3ZlIiwic3RvcmVNYXAiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudDgiLCJjbGlja2VkIiwiZWFjaExheWVyIiwibGF5ZXIiLCJrYW5kb19vYmplY3RfaWQiLCJpc1BvcHVwT3BlbiIsIk1hcmtlciIsImZpcmUiLCJQb2x5Z29uIiwiY2xhc3NOYW1lIiwiY29uY2F0Iiwic2lkZW5hdkV4cGFuZGVkIiwiaWQiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsIkFyZWFQb2x5Z29ucyIsIm1hcFpvb20iLCJmZWF0dXJlR3JvdXAiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0ICdsZWFmbGV0LmhlYXQnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENTU1Byb3BlcnRpZXMsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuLy8gaW1wb3J0IHsgc3RvcmVNYXAgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgQXJlYVBvbHlnb25zIH0gZnJvbSAnLi9hcmVhcy9BcmVhUG9seWdvbnMnO1xuaW1wb3J0IEVkZ2VzIGZyb20gJy4vZWRnZXMvRWRnZXMnO1xuaW1wb3J0ICcuL01hcC5zY3NzJztcbmltcG9ydCAnLi9wb2ludHMvUG9pbnRJY29uLnNjc3MnO1xuaW1wb3J0IHsgUG9pbnRNYXJrZXJzIH0gZnJvbSAnLi9wb2ludHMvUG9pbnRNYXJrZXJzJztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gJy4vZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7XG4gIGFyZWFGb2N1c0xvZ2ljLFxuICBjbHVzdGVyR3JvdXBPcHRpb25zLFxuICBmaWx0ZXJFZGdlcyxcbiAgZmlsdGVyUG9pbnRzLFxuICBpbml0aWFsaXplTWFwLFxuICBpc1ZhbGlkQXJlYSxcbiAgc2V0dXBDaGVja2JveExpc3RlbmVyLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xuaW1wb3J0IHsgc3RvcmVNYXAgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IFtoaWRkZW5GYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKGNsdXN0ZXJHcm91cE9wdGlvbnMpLFxuICApO1xuICBjb25zdCBbdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKGNsdXN0ZXJHcm91cE9wdGlvbnMpLFxuICApO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwXSA9IHVzZVN0YXRlKFxuICAgIHdpbmRvdy5jdXN0b21MZWFmbGV0Lm1hcmtlckNsdXN0ZXJHcm91cChjbHVzdGVyR3JvdXBPcHRpb25zKSxcbiAgKTtcblxuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2hpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFttb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3d3dHBzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFtjb2xsZWN0b3JzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFthcmVhc0xheWVyR3JvdXBdID0gdXNlU3RhdGUobmV3IEwuRmVhdHVyZUdyb3VwKCkpO1xuICBjb25zdCBbZWRnZXNDaGVja2JveCwgc2V0RWRnZXNDaGVja2JveF0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnMgbWFwPXttYXBSZWYuY3VycmVudH0gcG9pbnRzPXtmaWx0ZXJlZFBvaW50c30gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRNb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB0cnVlKTtcbiAgICByZXR1cm4gcmVuZGVyUG9pbnRNYXJrZXJzKG1vbml0b3JlZFBvaW50cywgbWFwUmVmLCB7XG4gICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMsXG4gICAgICByZXJlbmRlcjogem9vbUxldmVsc1ttYXBab29tTGV2ZWxdLFxuICAgICAgZmFjdG9yaWVzR3JvdXA6IG1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3OiBmYWxzZSxcbiAgICB9KTtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnQsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB1bm1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyUG9pbnRNYXJrZXJzKHVubW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAsXG4gICAgICB3d3Rwc0dyb3VwOiB3d3Rwc0xheWVyR3JvdXAsXG4gICAgICBjb2xsZWN0b3JzR3JvdXA6IGNvbGxlY3RvcnNMYXllckdyb3VwLFxuICAgICAgZm9yRXZlbnRzVmlldzogZmFsc2UsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCByZW5kZXJFZGdlcyA9IChmaWx0ZXJlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICA8RWRnZXMgZWRnZXM9e2ZpbHRlcmVkRWRnZXN9IG1hcD17bWFwUmVmLmN1cnJlbnR9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIHRydWUpO1xuICAgIHJldHVybiByZW5kZXJFZGdlcyhtb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXModW5tb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgICBzaG91bGRudERyYXc6IGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5nZXRMYXllcnMoKS5sZW5ndGggIT09IDAsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldEVkZ2VzQ2hlY2tib3goaXNDaGVja2VkKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSA9IChpc0NoZWNrZWQpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGxldCB6b29tID0gem9vbUxldmVsc1ttYXBSZWYuY3VycmVudC5nZXRab29tKCldO1xuXG4gICAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICAgIGhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICAgIHVubW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG5cbiAgICAgICAgaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRWRnZXNHcm91cCk7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5yZW1vdmVGcm9tKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVubW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLmFkZExheWVyKGhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICAgIGhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuXG4gICAgICAgIGlmICh6b29tID09PSAnTWVkaXVtJyB8fCB6b29tID09PSAnU21hbGwnKSB7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZExheWVyKGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cCk7XG4gICAgICAgICAgaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICAgIGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhY2tMYXllcmJveCA9ICgpID0+IHtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoJyNlZGdlcy1jaGVja2JveCcsIGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UpO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy1jaGVja2JveCcsXG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c31cbiAgICAgICAge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9IHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG4gICAgc3dpdGNoICh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pIHtcbiAgICAgIGNhc2UgJ1NtYWxsJzpcbiAgICAgIGNhc2UgJ01lZGl1bSc6XG4gICAgICBjYXNlICdNTGFyZ2UnOlxuICAgICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ01MYXJnZSc6XG4gICAgICAvLyBjYXNlICdMYXJnZSc6XG4gICAgICAvLyBjYXNlICdYTGFyZ2UnOlxuICAgICAgLy8gZGVmYXVsdDpcbiAgICAgIC8vICAgcGF5bG9hZCA9IDw+e21lbW9pemVkUG9pbnRzfTwvPjtcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSBmb3JFdmVudHNWaWV3XG4gICAgICA/IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKVxuICAgICAgOiB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcygpO1xuXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnKSAhPSBudWxsICYmXG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZShcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnKS5jaGVja2VkLFxuICAgICAgKTtcbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfSwgW1xuICAgIG1hcFpvb21MZXZlbCxcbiAgICBldmVudHNEYXRhLmlzRmV0Y2hpbmcsXG4gICAgZm9jdXNlZEV2ZW50LFxuICAgIGhvdmVyZWRFdmVudCxcbiAgICBwb2ludHMsXG4gICAgbWFwUmVmLmN1cnJlbnQsXG4gICAgZWRnZXNDaGVja2JveCxcbiAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gIF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkRXZlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG4gICAgcmV0dXJuIChcbiAgICAgIDxFdmVudFxuICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50ISB8fCBob3ZlcmVkRXZlbnQhfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICBpbmNsdWRlTmV0d29yaz17IWhvdmVyZWRFdmVudFByZXNlbnR9XG4gICAgICAvPlxuICAgICk7XG4gIH0sIFtmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICB9O1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVNYXAoXG4gICAgICBtYXBab29tTGV2ZWwsXG4gICAgICBtYXBCb3hTdHlsZSxcbiAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgbWFwUmVmLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgIGFyZWFUb0NlbnRlckJ5LFxuICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgIHRydWUsXG4gICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIGhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIG1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgd3d0cHNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgYXJlYXNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoaGlkZGVuRmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIobW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICBkaXNwYXRjaChzdG9yZU1hcCh1bmRlZmluZWQpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICB0cnVlLFxuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwia2QtbWFwLWNvbnRhaW5lclwiIHN0eWxlPXtzdHlsZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCBtYXAtY29udGFpbmVyICR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnbWFwLWNvbnRhaW5lci0tc2lkZW5hdi1jb2xsYXBzZWQnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8ZGl2IGlkPVwibWFwXCI+PC9kaXY+XG4gICAgICAgICAge3Nob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpICYmIChcbiAgICAgICAgICAgIDxBcmVhUG9seWdvbnNcbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICBhcmVhVG9DZW50ZXJCeT17YXJlYVRvQ2VudGVyQnl9XG4gICAgICAgICAgICAgIG1hcFpvb209e21hcFpvb21MZXZlbH1cbiAgICAgICAgICAgICAgcmVyZW5kZXI9e3pvb21MZXZlbHNbbWFwWm9vbUxldmVsXX1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBmZWF0dXJlR3JvdXA9e2FyZWFzTGF5ZXJHcm91cH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50fVxuICAgICAgICAgICAgICB7bWVtb2l6ZWRab29tQ29udHJvbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxDQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQU9BLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQU9BLElBQUFHLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFFQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFZQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxRQUFBLEdBQUFaLE9BQUE7QUFBb0QsU0FBQWEseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFmLHdCQUFBbUIsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9B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
|
|
319
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTWFwIiwiX3JlZiIsImFyZWFzIiwiZWRnZXMiLCJwb2ludHMiLCJnbG9iYWxfZGF0YSIsImFyZWFUb0NlbnRlckJ5IiwiZm9jdXNlZEV2ZW50IiwiaG92ZXJlZEV2ZW50IiwiX3JlZiRoaWRlRWRnZXMiLCJoaWRlRWRnZXMiLCJfcmVmJG1hcEJveFN0eWxlIiwibWFwQm94U3R5bGUiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsImNoaWxkcmVuIiwiX3JlZiRpbmNsdWRlVW5tb25pdG9yIiwiaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzIiwiX3JlZiRpbmNsdWRlVW5tb25pdG9yMiIsImluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMiLCJfcmVmJGZvckV2ZW50c1ZpZXciLCJmb3JFdmVudHNWaWV3IiwiX3JlZiRzdHlsZSIsInN0eWxlIiwiX3JlZiRmb3JXV1RQRGFzaGJvYXJkIiwiZm9yV1dUUERhc2hib2FyZCIsIm1hcCIsIm1hcFJlZiIsInVzZVJlZiIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJtYXBab29tTGV2ZWwiLCJzZXRNYXBab29tTGV2ZWwiLCJfdXNlU2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwic2VsZWN0ZWRJdGVtIiwiZXZlbnRzRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsIl91c2VTdGF0ZTMiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlNCIsInVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJ1bm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTE1IiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMTYiLCJhcmVhc0xheWVyR3JvdXAiLCJfdXNlU3RhdGUxNyIsIl91c2VTdGF0ZTE4IiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsInJlcmVuZGVyIiwiem9vbUxldmVscyIsImZhY3Rvcmllc0dyb3VwIiwid3d0cHNHcm91cCIsImNvbGxlY3RvcnNHcm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMiLCJ1bm1vbml0b3JlZFBvaW50cyIsInJlbmRlckVkZ2VzIiwiZmlsdGVyZWRFZGdlcyIsIm1lbW9pemVkRWRnZXMiLCJtb25pdG9yZWRFZGdlcyIsImZpbHRlckVkZ2VzIiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsImdyb3VwIiwibWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzIiwidW5tb25pdG9yZWRFZGdlcyIsInNob3VsZG50RHJhdyIsImdldExheWVycyIsImxlbmd0aCIsImhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UiLCJpc0NoZWNrZWQiLCJlZGdlc1pvb21MZXZlbHMiLCJoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSIsInpvb20iLCJnZXRab29tIiwicmVtb3ZlRnJvbSIsImluY2x1ZGVzIiwiYWRkVG8iLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hlY2tlZCIsImlzRmV0Y2hpbmciLCJtZW1vaXplZEV2ZW50IiwiZm9jdXNlZCIsImhvdmVyZWQiLCJFdmVudCIsImV2ZW50IiwiaW5jbHVkZU5ldHdvcmsiLCJldmVudEZpbHRlclBhcmFtIiwidXNlRWZmZWN0IiwiaW5pdGlhbGl6ZU1hcCIsInNhdGVsbGl0ZSIsImlzVmFsaWRBcmVhIiwid2F0ZXJBdXRob3JpdHlJZCIsImFyZWEiLCJzaGFwZV9kYXRhIiwiZmxhdCIsImFyZWFGb2N1c0xvZ2ljIiwiX21hcFJlZiRjdXJyZW50IiwiY2xpY2tlZCIsImVhY2hMYXllciIsImxheWVyIiwia2FuZG9fb2JqZWN0X2lkIiwiaXNQb3B1cE9wZW4iLCJNYXJrZXIiLCJmaXJlIiwiUG9seWdvbiIsImNsYXNzTmFtZSIsImNvbmNhdCIsInNpZGVuYXZFeHBhbmRlZCIsImlkIiwic2hvdWxkTG9hZE1hcE9iamVjdHMiLCJBcmVhUG9seWdvbnMiLCJtYXBab29tIiwiZmVhdHVyZUdyb3VwIiwic2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCAnbGVhZmxldC5wYXR0ZXJuJztcbmltcG9ydCAnbGVhZmxldC5oZWF0JztcbmltcG9ydCBSZWFjdCwge1xuICBDU1NQcm9wZXJ0aWVzLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50Jztcbi8vIGltcG9ydCB7IHN0b3JlTWFwIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnc3JjL3V0aWxpdGllcy9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCB7IEFyZWFQb2x5Z29ucyB9IGZyb20gJy4vYXJlYXMvQXJlYVBvbHlnb25zJztcbmltcG9ydCBFZGdlcyBmcm9tICcuL2VkZ2VzL0VkZ2VzJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgJy4vcG9pbnRzL1BvaW50SWNvbi5zY3NzJztcbmltcG9ydCB7IFBvaW50TWFya2VycyB9IGZyb20gJy4vcG9pbnRzL1BvaW50TWFya2Vycyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvcm9vdFJlZHVjZXInO1xuaW1wb3J0IHsgRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQge1xuICBhcmVhRm9jdXNMb2dpYyxcbiAgZmlsdGVyRWRnZXMsXG4gIGZpbHRlclBvaW50cyxcbiAgaW5pdGlhbGl6ZU1hcCxcbiAgaXNWYWxpZEFyZWEsXG4gIHNldHVwQ2hlY2tib3hMaXN0ZW5lcixcbiAgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyxcbiAgc2hvdWxkTG9hZE1hcE9iamVjdHMsXG4gIHpvb21MZXZlbHMsXG59IGZyb20gJy4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0Jztcbi8vIGltcG9ydCB7IGFkZExheWVyR3JvdXAgfSBmcm9tICcuL3BvaW50cy9Qb2ludFV0aWxzJztcbnJlcXVpcmUoJ2xlYWZsZXQubWFya2VyY2x1c3RlcicpO1xuXG5pbnRlcmZhY2UgTWFwUHJvcHMge1xuICBhcmVhczogSUFyZWFbXTtcbiAgZWRnZXM/OiBJRWRnZVtdO1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgYXJlYVRvQ2VudGVyQnk/OiBhbnk7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhvdmVyZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIG1hcEJveFN0eWxlPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IGFueTtcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM/OiBib29sZWFuO1xuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzPzogYm9vbGVhbjtcbiAgZm9yRXZlbnRzVmlldzogYm9vbGVhbjtcbiAgZm9yV1dUUERhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIGFyZWFzLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBnbG9iYWxfZGF0YSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIGZvY3VzZWRFdmVudCxcbiAgaG92ZXJlZEV2ZW50LFxuICBoaWRlRWRnZXMgPSBmYWxzZSxcbiAgbWFwQm94U3R5bGUgPSBsZWFmbGV0TWFwLm1hcERlZmF1bHQsXG4gIGNoaWxkcmVuLFxuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSB0cnVlLFxuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzID0gZmFsc2UsXG4gIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgc3R5bGUgPSB7fSxcbiAgZm9yV1dUUERhc2hib2FyZCA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCB7IG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxMLk1hcCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFttYXBab29tTGV2ZWwsIHNldE1hcFpvb21MZXZlbF0gPSB1c2VTdGF0ZSgyKTtcbiAgY29uc3QgeyBzZWxlY3RlZEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCBldmVudHNEYXRhID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUuZXZlbnRzX2RhdGEsXG4gICk7XG4gIGNvbnN0IGhvdmVyZWRFdmVudFByZXNlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gaG92ZXJlZEV2ZW50ICE9PSBudWxsICYmIGhvdmVyZWRFdmVudCAhPT0gdW5kZWZpbmVkO1xuICB9LCBbaG92ZXJlZEV2ZW50XSk7XG5cbiAgY29uc3QgZm9jdXNlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgZm9jdXNlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtmb2N1c2VkRXZlbnRdKTtcblxuICBjb25zdCBbdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFttb25pdG9yZWRGYWN0b3JpZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFt1bm1vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRWRnZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFt3d3Rwc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbY29sbGVjdG9yc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbYXJlYXNMYXllckdyb3VwXSA9IHVzZVN0YXRlKG5ldyBMLkZlYXR1cmVHcm91cCgpKTtcbiAgY29uc3QgW2VkZ2VzQ2hlY2tib3gsIHNldEVkZ2VzQ2hlY2tib3hdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IHJlbmRlclBvaW50TWFya2VycyA9IChmaWx0ZXJlZFBvaW50cywgbWFwUmVmLCBwcm9wcykgPT5cbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIHBvaW50cyAmJiAoXG4gICAgICA8UG9pbnRNYXJrZXJzIG1hcD17bWFwUmVmLmN1cnJlbnR9IHBvaW50cz17ZmlsdGVyZWRQb2ludHN9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkTW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgdHJ1ZSk7XG4gICAgcmV0dXJuIHJlbmRlclBvaW50TWFya2Vycyhtb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiBtb25pdG9yZWRGYWN0b3JpZXNHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3OiBmb3JFdmVudHNWaWV3LFxuICAgIH0pO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHVubW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgZmFsc2UpO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXc6IGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCByZW5kZXJFZGdlcyA9IChmaWx0ZXJlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICA8RWRnZXMgZWRnZXM9e2ZpbHRlcmVkRWRnZXN9IG1hcD17bWFwUmVmLmN1cnJlbnR9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIHRydWUpO1xuICAgIHJldHVybiByZW5kZXJFZGdlcyhtb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXModW5tb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgICBzaG91bGRudERyYXc6IHVubW9uaXRvcmVkRWRnZXNHcm91cC5nZXRMYXllcnMoKS5sZW5ndGggIT09IDAsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldEVkZ2VzQ2hlY2tib3goaXNDaGVja2VkKTtcbiAgfTtcblxuICAvLyBUaGlzIHZhcmlhYmxlIHN0b3JlcyB0aGUgem9vbSBsZXZlbHMgdGhlIGVkZ2VzIGFyZSBkaXNwbGF5ZWRcbiAgLy8gSXQgaXMgdXNlZCBpbiB0d28gcGxhY2VzIGluIHRoZSBjb2RlLCBzbyBpdCBpcyBiZXR0ZXIgdG8gc3RvcmUgaXQgaW4gb25lIHBsYWNlXG4gIGNvbnN0IGVkZ2VzWm9vbUxldmVscyA9IFsnU21hbGwnLCAnTWVkaXVtJywgJ01MYXJnZScsICdMYXJnZSddO1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyBjaGVja2VkXG4gICAgICAgIHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG5cbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBlZGdlcyBpZiBhdCBhcHByb3ByaWF0ZSB6b29tIGxldmVsXG4gICAgICAgIGlmIChlZGdlc1pvb21MZXZlbHMuaW5jbHVkZXMoem9vbSkpIHtcbiAgICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNob3cgYWxsIHBvaW50cyB3aGVuIFwic2hvdyBvbmx5IG1vbml0b3JlZFwiIGlzIHVuY2hlY2tlZFxuICAgICAgICB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcblxuICAgICAgICAvLyBTaG93IHVubW9uaXRvcmVkIGVkZ2VzIGlmIGF0IGFwcHJvcHJpYXRlIHpvb20gbGV2ZWxcbiAgICAgICAgaWYgKGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tKSkge1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdHJhY2tMYXllcmJveCA9ICgpID0+IHtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoJyNlZGdlcy1jaGVja2JveCcsIGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UpO1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcihcbiAgICAgICcjbW9uaXRvcmVkLXBvaW50cy1jaGVja2JveCcsXG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzfVxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c31cbiAgICAgICAge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9IHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG4gICAgaWYgKGZvckV2ZW50c1ZpZXcgfHwgZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkpIHtcbiAgICAgIHBheWxvYWQgPSB6b29tUnVsZXNGb3JFdmVudHNWaWV3KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSBmb3JFdmVudHNWaWV3XG4gICAgICA/IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKVxuICAgICAgOiB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcygpO1xuXG4gICAgY29uc3QgY2hlY2tib3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JyxcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGNoZWNrYm94KSB7XG4gICAgICBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZShjaGVja2JveC5jaGVja2VkKTtcbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0sIFtcbiAgICBtYXBab29tTGV2ZWwsXG4gICAgZXZlbnRzRGF0YS5pc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgcG9pbnRzLFxuICAgIG1hcFJlZi5jdXJyZW50LFxuICAgIGVkZ2VzQ2hlY2tib3gsXG4gICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLFxuICBdKTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGZvY3VzZWRFdmVudCEuZm9jdXNlZCA9IGZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgICBmb2N1c2VkRXZlbnQhLmhvdmVyZWQgPSAhZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXJlZEV2ZW50UHJlc2VudCkge1xuICAgICAgaG92ZXJlZEV2ZW50IS5ob3ZlcmVkID0gaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICAgIGhvdmVyZWRFdmVudCEuZm9jdXNlZCA9ICFob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmICghaG92ZXJlZEV2ZW50UHJlc2VudCAmJiAhZm9jdXNlZEV2ZW50UHJlc2VudCkgcmV0dXJuIDw+PC8+O1xuICAgIHJldHVybiAoXG4gICAgICA8RXZlbnRcbiAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudCEgfHwgaG92ZXJlZEV2ZW50IX1cbiAgICAgICAgbWFwPXttYXB9XG4gICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgaW5jbHVkZU5ldHdvcms9eyFob3ZlcmVkRXZlbnRQcmVzZW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICAvLyB1c2VFZmZlY3QoKCkgPT4ge1xuICAvLyAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAvLyAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgLy8gICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gIC8vICAgfTtcbiAgLy8gfSwgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50LCBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXSk7XG5cbiAgLy8gdXNlRWZmZWN0KCgpID0+IHtcbiAgLy8gICBpbml0aWFsaXplTWFwKFxuICAvLyAgICAgbWFwWm9vbUxldmVsLFxuICAvLyAgICAgbWFwQm94U3R5bGUsXG4gIC8vICAgICBsZWFmbGV0TWFwLnNhdGVsbGl0ZSxcbiAgLy8gICAgIG1hcFJlZixcbiAgLy8gICAgIGRpc3BhdGNoLFxuICAvLyAgICAgaXNWYWxpZEFyZWEsXG4gIC8vICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgLy8gICAgIHNldE1hcFpvb21MZXZlbCxcbiAgLy8gICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gIC8vICAgICB0cnVlLFxuICAvLyAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgLy8gICApO1xuXG4gIC8vICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gIC8vICAgICB3d3Rwc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgLy8gICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gIC8vICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgLy8gICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAvLyAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgLy8gICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAvLyAgICAgLy8gQHRzLWlnbm9yZVxuICAvLyAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gIC8vICAgICBkaXNwYXRjaChzdG9yZU1hcCh1bmRlZmluZWQpKTtcbiAgLy8gICB9O1xuICAvLyB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICB0cnVlLFxuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIGxheWVyIGdyb3VwcyB0byBtYXAgYWZ0ZXIgaW5pdGlhbGl6YXRpb25cbiAgICAgIC8vIG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgIC8vIHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAuYWRkVG8obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgLy8gd3d0cHNMYXllckdyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgIC8vIGNvbGxlY3RvcnNMYXllckdyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcblxuICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeSwgcG9pbnRzLCBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChjbGlja2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXI/LmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRJdGVtICYmXG4gICAgICAgIGxheWVyLmlzUG9wdXBPcGVuKCkgPT09IGZhbHNlXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5Z29uKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2stZXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjbGlja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJrZC1tYXAtY29udGFpbmVyXCIgc3R5bGU9e3N0eWxlfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgIG1hcC1jb250YWluZXIgJHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zaWRlbmF2RXhwYW5kZWQgPyAnJyA6ICdtYXAtY29udGFpbmVyLS1zaWRlbmF2LWNvbGxhcHNlZCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxkaXYgaWQ9XCJtYXBcIj48L2Rpdj5cbiAgICAgICAgICB7c2hvdWxkTG9hZE1hcE9iamVjdHMoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgZWRnZXMsIHBvaW50cykgJiYgKFxuICAgICAgICAgICAgPEFyZWFQb2x5Z29uc1xuICAgICAgICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgICAgICAgICAgbWFwWm9vbT17bWFwWm9vbUxldmVsfVxuICAgICAgICAgICAgICByZXJlbmRlcj17em9vbUxldmVsc1ttYXBab29tTGV2ZWxdfVxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICAgIGZlYXR1cmVHcm91cD17YXJlYXNMYXllckdyb3VwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzKFxuICAgICAgICAgICAgZWRnZXMsXG4gICAgICAgICAgICBhcmVhcyxcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLFxuICAgICAgICAgICAgbWFwUmVmLFxuICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICkgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge21lbW9pemVkRXZlbnR9XG4gICAgICAgICAgICAgIHttZW1vaXplZFpvb21Db250cm9sfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLElBQUFBLENBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBT0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBT0EsSUFBQUcsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLE1BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQVdBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFlBQUEsR0FBQVgsT0FBQTtBQUFxRSxTQUFBWSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWQsd0JBQUFrQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEs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
|