@kando-env/kando-ui 1.2.47-alpha.19 → 1.2.47-alpha.2

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.
Files changed (42) hide show
  1. package/lib/Router.js +5 -5
  2. package/lib/components/Header/KandoNavbar/KandoNavbar.js +2 -2
  3. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +2 -2
  4. package/lib/components/SevereEvent/SevereEvent.js +4 -4
  5. package/lib/i18n/en.json +12 -28
  6. package/lib/i18n/he.json +1 -67
  7. package/lib/macros/getVersion.js +2 -2
  8. package/lib/pages/ImportGisPage/GisFileUploadRespones.js +2 -2
  9. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +2 -5
  10. package/lib/pages/ImportGisPage/importGisUtils.js +9 -17
  11. package/lib/pages/ImportGisPage/style.module.scss +0 -6
  12. package/lib/pages/NotificationsPageV2/NotificationsPage.js +83 -160
  13. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +8 -19
  14. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +94 -289
  15. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +140 -101
  16. package/lib/pages/NotificationsPageV2/notificationUtils.js +258 -60
  17. package/lib/pages/SamplingsPage/NewSamplingAction.js +2 -2
  18. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +24 -19
  19. package/lib/pages/SamplingsPage/SamplingMobileModal.js +3 -7
  20. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +2 -2
  21. package/lib/pages/SamplingsPage/SamplingProperties/SamplingMobileProperties.js +200 -0
  22. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +244 -111
  23. package/lib/pages/SamplingsPage/SamplingProperties/bootstrap.overrides.scss +7 -0
  24. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +10 -14
  25. package/lib/pages/SamplingsPage/SamplingsPage.js +2 -18
  26. package/lib/pages/SamplingsPage/samplingsPageUtils.js +5 -10
  27. package/lib/pages/SamplingsPage/style.module.scss +0 -57
  28. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +2 -1
  29. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +3 -2
  30. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +3 -9
  31. package/lib/pages/SitePage/SamplingParameters/dataParser.js +2 -3
  32. package/lib/styles/theme/theme.js +2 -2
  33. package/lib/ui-kit/Checkbox/Checkbox.js +17 -18
  34. package/lib/ui-kit/DropDown/DropDown.js +4 -2
  35. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +1 -1
  36. package/lib/ui-kit/KandoTable/KandoTable.js +18 -3
  37. package/lib/ui-kit/MobileInput/MobileInput.js +4 -4
  38. package/lib/utilities/urls.js +2 -13
  39. package/package.json +1 -1
  40. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +0 -216
  41. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +0 -305
  42. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +0 -167
@@ -19,6 +19,8 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
21
21
 
22
+ var _trash = require("@svgr/webpack?-svgo!assets/trash.svg");
23
+
22
24
  var _Button = _interopRequireWildcard(require("ui-kit/Button/Button"));
23
25
 
24
26
  var _close = require("@svgr/webpack?-svgo!assets/close.svg");
@@ -29,28 +31,67 @@ var _reactBootstrap = require("react-bootstrap");
29
31
 
30
32
  var _NotificationsFormContent = _interopRequireDefault(require("./NotificationsForm/NotificationsFormContent"));
31
33
 
32
- var _reactDeviceDetect = require("react-device-detect");
34
+ 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); }
33
35
 
34
- var _useNavContext2 = require("../../../hooks/useNavContext");
36
+ 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; }
35
37
 
36
- var _NotificationsUtils = require("./NotificationsUtils");
38
+ var NotificationSidebarStyle = _styledComponents.default.div.withConfig({
39
+ displayName: "NotificationsSidebar__NotificationSidebarStyle",
40
+ componentId: "sc-18000x7-0"
41
+ })(["position:fixed;display:flex;flex-direction:column;justify-content:space-between;width:45%;height:92.5vh;background-color:white;right:-800px;top:73px;z-index:", ";transition:right 1s ease-in-out;p{margin-bottom:12px;}form{height:81vh;display:flex;flex-direction:column;justify-content:space-between;}&&&.open-sidebar{right:-20px;}&&&.close-sidebar{right:-800px;}"], function (_ref) {
42
+ var theme = _ref.theme;
43
+ return theme.zIndexes.sidebar;
44
+ });
37
45
 
38
- 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); }
46
+ var NotificationSidebarMainStyle = _styledComponents.default.div.withConfig({
47
+ displayName: "NotificationsSidebar__NotificationSidebarMainStyle",
48
+ componentId: "sc-18000x7-1"
49
+ })(["padding:10px 30px;height:100%;"]);
39
50
 
40
- 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; }
51
+ var NotificationSidebarHeadStyle = _styledComponents.default.div.withConfig({
52
+ displayName: "NotificationsSidebar__NotificationSidebarHeadStyle",
53
+ componentId: "sc-18000x7-2"
54
+ })(["display:flex;align-items:center;justify-content:space-between;h2{font-size:", ";font-weight:800;margin:0;}svg{width:20px;height:20px;cursor:pointer;}svg:hover{fill:", ";}"], function (_ref2) {
55
+ var theme = _ref2.theme;
56
+ return theme.fontSize.xxl;
57
+ }, function (_ref3) {
58
+ var theme = _ref3.theme;
59
+ return theme.colorScheme.natural.n70;
60
+ });
61
+
62
+ var NotificationsSidebarFooterStyle = _styledComponents.default.div.withConfig({
63
+ displayName: "NotificationsSidebar__NotificationsSidebarFooterStyle",
64
+ componentId: "sc-18000x7-3"
65
+ })(["display:flex;justify-content:space-between;align-items:center;box-shadow:2px -4px 6px 0px ", ";height:75px;padding:0 35px;.btn{padding:5px 70px;}"], function (_ref4) {
66
+ var theme = _ref4.theme;
67
+ return theme.colorScheme.natural.n20;
68
+ });
69
+
70
+ var NotificationsSidebarDeleteStyle = _styledComponents.default.div.withConfig({
71
+ displayName: "NotificationsSidebar__NotificationsSidebarDeleteStyle",
72
+ componentId: "sc-18000x7-4"
73
+ })(["cursor:pointer;display:flex;width:max-content;align-items:center;gap:5px;font-size:", ";color:", ";svg{width:14px;height:14px;fill:", ";}&:hover{color:", ";svg{fill:", ";}}"], function (_ref5) {
74
+ var theme = _ref5.theme;
75
+ return theme.fontSize.md;
76
+ }, function (_ref6) {
77
+ var theme = _ref6.theme;
78
+ return theme.colorScheme.primary.p1;
79
+ }, function (_ref7) {
80
+ var theme = _ref7.theme;
81
+ return theme.colorScheme.primary.p1;
82
+ }, function (_ref8) {
83
+ var theme = _ref8.theme;
84
+ return theme.colorScheme.primary.pt70;
85
+ }, function (_ref9) {
86
+ var theme = _ref9.theme;
87
+ return theme.colorScheme.primary.pt70;
88
+ });
41
89
 
42
- var NotificationsSidebar = function NotificationsSidebar(_ref) {
43
- var notification = _ref.notification,
44
- setIsSidebarOpen = _ref.setIsSidebarOpen,
45
- points = _ref.points,
46
- tags = _ref.tags,
47
- sensors = _ref.sensors,
48
- waterAuthorities = _ref.waterAuthorities,
49
- updateNotifications = _ref.updateNotifications,
50
- deleteNotification = _ref.deleteNotification,
51
- allowedNotifications = _ref.allowedNotifications,
52
- hasTelegram = _ref.hasTelegram,
53
- hasPhone = _ref.hasPhone;
90
+ var NotificationsSidebar = function NotificationsSidebar(_ref10) {
91
+ var notification = _ref10.notification,
92
+ setIsSidebarOpen = _ref10.setIsSidebarOpen,
93
+ removeNotification = _ref10.removeNotification,
94
+ saveNotification = _ref10.saveNotification;
54
95
 
55
96
  var _useState = (0, _react.useState)((0, _objectSpread2.default)({}, notification)),
56
97
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -62,8 +103,10 @@ var NotificationsSidebar = function NotificationsSidebar(_ref) {
62
103
  openSidebar = _useState4[0],
63
104
  setOpenSidebar = _useState4[1];
64
105
 
65
- var _useNavContext = (0, _useNavContext2.useNavContext)(),
66
- isRtl = _useNavContext.isRtl;
106
+ (0, _react.useEffect)(function () {
107
+ setOpenSidebar(true);
108
+ if (!newNotification.id) newNotification.type = _notificationUtils.mockTypes[0];
109
+ }, []);
67
110
 
68
111
  var closeSidebar = function closeSidebar() {
69
112
  setOpenSidebar(false);
@@ -72,27 +115,82 @@ var NotificationsSidebar = function NotificationsSidebar(_ref) {
72
115
  }, 1000);
73
116
  };
74
117
 
75
- var handleDeleteNotification = function handleDeleteNotification() {
76
- deleteNotification(newNotification);
118
+ var handleNotificationType = function handleNotificationType(e) {
119
+ var value = _notificationUtils.mockTypes.find(function (type) {
120
+ return type.text === e.target.value;
121
+ });
122
+
123
+ if (value) setNewNotification(function (prevState) {
124
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
125
+ type: value
126
+ });
127
+ });
128
+ };
129
+
130
+ var handleSeverities = function handleSeverities(e) {
131
+ var value = e.target.value;
132
+ setNewNotification(function (prevState) {
133
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
134
+ severities: value
135
+ });
136
+ });
137
+ };
138
+
139
+ var handleWaterAuthorities = function handleWaterAuthorities(e) {
140
+ var value = (0, _objectSpread2.default)({}, newNotification.waterAuthorities);
141
+ value.type = e.target.value;
142
+ setNewNotification(function (prevState) {
143
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
144
+ waterAuthorities: value
145
+ });
146
+ });
147
+ };
148
+
149
+ var handleSources = function handleSources(e) {
150
+ var value = (0, _objectSpread2.default)({}, newNotification.sources);
151
+ value.type = e.target.value;
152
+ setNewNotification(function (prevState) {
153
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
154
+ sources: value
155
+ });
156
+ });
157
+ };
158
+
159
+ var handleSendVia = function handleSendVia(e) {
160
+ var value = (0, _objectSpread2.default)({}, newNotification.notificationAlerts);
161
+ var field = e.target.value;
162
+ value[field] = !value[field];
163
+ setNewNotification(function (prevState) {
164
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
165
+ notificationAlerts: value
166
+ });
167
+ });
168
+ };
169
+
170
+ var handleNotificationSample = function handleNotificationSample(e) {
171
+ var value = e.target.checked;
172
+ setNewNotification(function (prevState) {
173
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
174
+ sample: value
175
+ });
176
+ });
177
+ };
178
+
179
+ var deleteNotification = function deleteNotification(notificationId) {
180
+ removeNotification(notificationId);
77
181
  closeSidebar();
78
182
  };
79
183
 
80
184
  var handleSubmit = function handleSubmit(e) {
81
185
  e.preventDefault();
82
- updateNotifications((0, _NotificationsUtils.formatNotification)(newNotification));
186
+ var notificationToSave = (0, _objectSpread2.default)({}, newNotification);
187
+ saveNotification(notificationToSave);
83
188
  closeSidebar();
84
189
  };
85
190
 
86
- (0, _react.useEffect)(function () {
87
- setOpenSidebar(true);
88
- if (!newNotification.id) newNotification.type = _notificationUtils.mockTypes[0];
89
- }, []);
90
191
  return /*#__PURE__*/_react.default.createElement(NotificationSidebarStyle, {
91
- className: "sidebar-wrapper ".concat(openSidebar ? 'open-sidebar' : 'close-sidebar'),
92
- isRtl: isRtl
93
- }, /*#__PURE__*/_react.default.createElement(NotificationSidebarMainStyle, {
94
- isRtl: isRtl
95
- }, /*#__PURE__*/_react.default.createElement(NotificationSidebarHeadStyle, null, /*#__PURE__*/_react.default.createElement("h2", null, "".concat(notification.id ? _i18n.default.t('notifications_page.edit_notification') : _i18n.default.t('notifications_page.add_notification'))), /*#__PURE__*/_react.default.createElement(_close.ReactComponent, {
192
+ className: "sidebar-wrapper ".concat(openSidebar ? 'open-sidebar' : 'close-sidebar')
193
+ }, /*#__PURE__*/_react.default.createElement(NotificationSidebarMainStyle, null, /*#__PURE__*/_react.default.createElement(NotificationSidebarHeadStyle, null, /*#__PURE__*/_react.default.createElement("h2", null, "".concat(notification.id ? 'Edit Notification' : 'Add Notification')), /*#__PURE__*/_react.default.createElement(_close.ReactComponent, {
96
194
  onClick: function onClick() {
97
195
  return closeSidebar();
98
196
  }
@@ -100,82 +198,23 @@ var NotificationsSidebar = function NotificationsSidebar(_ref) {
100
198
  onSubmit: handleSubmit
101
199
  }, /*#__PURE__*/_react.default.createElement(_NotificationsFormContent.default, {
102
200
  notification: newNotification,
103
- setNewNotification: setNewNotification,
104
- points: points,
105
- tags: tags,
106
- sensors: sensors,
107
- waterAuthorities: waterAuthorities,
108
- allowedNotifications: allowedNotifications,
109
- hasTelegram: hasTelegram,
110
- hasPhone: hasPhone
111
- }), /*#__PURE__*/_react.default.createElement(NotificationsSidebarFooterStyle, null, notification.id !== '' && /*#__PURE__*/_react.default.createElement(NotificationsSidebarDeleteStyle, {
201
+ handleNotificationType: handleNotificationType,
202
+ handleSeverities: handleSeverities,
203
+ handleWaterAuthorities: handleWaterAuthorities,
204
+ handleSources: handleSources,
205
+ handleSendVia: handleSendVia,
206
+ handleNotificationSample: handleNotificationSample
207
+ }), /*#__PURE__*/_react.default.createElement(NotificationsSidebarFooterStyle, null, /*#__PURE__*/_react.default.createElement(NotificationsSidebarDeleteStyle, {
112
208
  onClick: function onClick() {
113
- return handleDeleteNotification();
209
+ return deleteNotification(newNotification.id);
114
210
  }
115
- }, _i18n.default.t('notifications_page.edit_delete_notification')), /*#__PURE__*/_react.default.createElement(_Button.default, {
211
+ }, /*#__PURE__*/_react.default.createElement(_trash.ReactComponent, null), _i18n.default.t('notifications_page.edit_delete_notification')), /*#__PURE__*/_react.default.createElement(_Button.default, {
116
212
  variant: _Button.variant.PRIMARY,
117
213
  size: "md",
118
214
  type: "submit"
119
- }, notification.id !== '' ? _i18n.default.t('notifications_page.edit_save') : _i18n.default.t('notifications_page.edit_add'))))));
215
+ }, _i18n.default.t('notifications_page.edit_save'))))));
120
216
  };
121
217
 
122
218
  var _default = NotificationsSidebar;
123
219
  exports.default = _default;
124
-
125
- var NotificationSidebarStyle = _styledComponents.default.div.withConfig({
126
- displayName: "NotificationsSidebar__NotificationSidebarStyle",
127
- componentId: "sc-18000x7-0"
128
- })(["position:fixed;display:flex;flex-direction:column;justify-content:space-between;width:", ";height:", ";background-color:white;", " top:", ";z-index:", ";transition:0.5s ease-in-out;p{margin-bottom:12px;}form{display:flex;flex-direction:column;justify-content:space-between;height:calc(100% - 100px);}&&&.open-sidebar{transition:0.5s ease-in-out;", "}&&&.close-sidebar{", "}.form-check-label{padding:0 !important;text-align:center !important;}label[for='pump_only']{margin:0 6px;}"], _reactDeviceDetect.isMobile ? 'calc(100vw + 20px)' : '500px', _reactDeviceDetect.isMobile ? '100vh' : 'calc(100vh - 57px)', function (p) {
129
- return p.isRtl ? 'left: -800px;' : 'right: -800px;';
130
- }, _reactDeviceDetect.isMobile ? '0' : '67px', function (_ref2) {
131
- var theme = _ref2.theme;
132
- return theme.zIndexes.modal;
133
- }, function (p) {
134
- return p.isRtl ? 'left: 0px;' : 'right: -20px;';
135
- }, function (p) {
136
- return p.isRtl ? 'left: -800px;' : 'right: -800px;';
137
- });
138
-
139
- var NotificationSidebarMainStyle = _styledComponents.default.div.withConfig({
140
- displayName: "NotificationsSidebar__NotificationSidebarMainStyle",
141
- componentId: "sc-18000x7-1"
142
- })(["padding:", ";height:100%;"], _reactDeviceDetect.isMobile ? '10px 30px 10px 10px' : function (p) {
143
- return p.isRtl ? '20px' : '20px 40px 20px 20px';
144
- });
145
-
146
- var NotificationSidebarHeadStyle = _styledComponents.default.div.withConfig({
147
- displayName: "NotificationsSidebar__NotificationSidebarHeadStyle",
148
- componentId: "sc-18000x7-2"
149
- })(["display:flex;align-items:center;justify-content:space-between;h2{font-size:", ";font-weight:800;margin:0;}svg{width:20px;height:20px;cursor:pointer;}svg:hover{fill:", ";}"], function (_ref3) {
150
- var theme = _ref3.theme;
151
- return theme.fontSize.xxl;
152
- }, function (_ref4) {
153
- var theme = _ref4.theme;
154
- return theme.colorScheme.natural.n70;
155
- });
156
-
157
- var NotificationsSidebarFooterStyle = _styledComponents.default.div.withConfig({
158
- displayName: "NotificationsSidebar__NotificationsSidebarFooterStyle",
159
- componentId: "sc-18000x7-3"
160
- })(["display:flex;justify-content:space-evenly;align-items:center;height:75px;padding:0 35px;.btn{padding:5px 30px;}"]);
161
-
162
- var NotificationsSidebarDeleteStyle = _styledComponents.default.div.withConfig({
163
- displayName: "NotificationsSidebar__NotificationsSidebarDeleteStyle",
164
- componentId: "sc-18000x7-4"
165
- })(["cursor:pointer;display:flex;width:max-content;align-items:center;gap:5px;font-size:", ";color:", ";svg{width:14px;height:14px;fill:", ";}&:hover{color:", ";svg{fill:", ";}}"], function (_ref5) {
166
- var theme = _ref5.theme;
167
- return theme.fontSize.md;
168
- }, function (_ref6) {
169
- var theme = _ref6.theme;
170
- return theme.colorScheme.primary.p1;
171
- }, function (_ref7) {
172
- var theme = _ref7.theme;
173
- return theme.colorScheme.primary.p1;
174
- }, function (_ref8) {
175
- var theme = _ref8.theme;
176
- return theme.colorScheme.primary.pt70;
177
- }, function (_ref9) {
178
- var theme = _ref9.theme;
179
- return theme.colorScheme.primary.pt70;
180
- });
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1NpZGViYXIudHN4Il0sIm5hbWVzIjpbIk5vdGlmaWNhdGlvbnNTaWRlYmFyIiwibm90aWZpY2F0aW9uIiwic2V0SXNTaWRlYmFyT3BlbiIsInBvaW50cyIsInRhZ3MiLCJzZW5zb3JzIiwid2F0ZXJBdXRob3JpdGllcyIsInVwZGF0ZU5vdGlmaWNhdGlvbnMiLCJkZWxldGVOb3RpZmljYXRpb24iLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsImhhc1RlbGVncmFtIiwiaGFzUGhvbmUiLCJuZXdOb3RpZmljYXRpb24iLCJzZXROZXdOb3RpZmljYXRpb24iLCJvcGVuU2lkZWJhciIsInNldE9wZW5TaWRlYmFyIiwiaXNSdGwiLCJjbG9zZVNpZGViYXIiLCJzZXRUaW1lb3V0IiwiaGFuZGxlRGVsZXRlTm90aWZpY2F0aW9uIiwiaGFuZGxlU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiaWQiLCJ0eXBlIiwibW9ja1R5cGVzIiwiaTE4biIsInQiLCJ2YXJpYW50IiwiUFJJTUFSWSIsIk5vdGlmaWNhdGlvblNpZGViYXJTdHlsZSIsInN0eWxlZCIsImRpdiIsImlzTW9iaWxlIiwicCIsInRoZW1lIiwiekluZGV4ZXMiLCJtb2RhbCIsIk5vdGlmaWNhdGlvblNpZGViYXJNYWluU3R5bGUiLCJOb3RpZmljYXRpb25TaWRlYmFySGVhZFN0eWxlIiwiZm9udFNpemUiLCJ4eGwiLCJjb2xvclNjaGVtZSIsIm5hdHVyYWwiLCJuNzAiLCJOb3RpZmljYXRpb25zU2lkZWJhckZvb3RlclN0eWxlIiwiTm90aWZpY2F0aW9uc1NpZGViYXJEZWxldGVTdHlsZSIsIm1kIiwicHJpbWFyeSIsInAxIiwicHQ3MCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7OztBQUVBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOztB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ekM7QUFBQSxDQWR3QixFQWdCdkI7QUFBQSxNQUFHZixLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNPLFdBQU4sQ0FBa0JNLE9BQWxCLENBQTBCRSxJQUF6QztBQUFBLENBaEJ1QixDQUFyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IEJ1dHRvbiwgeyB2YXJpYW50IH0gZnJvbSAnc3JjL3VpLWtpdC9CdXR0b24vQnV0dG9uJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENsb3NlIH0gZnJvbSAnc3JjL2Fzc2V0cy9jbG9zZS5zdmcnO1xuaW1wb3J0IHtcbiAgQWR2YW5jZWRTZWxlY3Rpb24sXG4gIG1vY2tUeXBlcyxcbiAgTm90aWZpY2F0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQgZnJvbSAnLi9Ob3RpZmljYXRpb25zRm9ybS9Ob3RpZmljYXRpb25zRm9ybUNvbnRlbnQnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdyZWFjdC1kZXZpY2UtZGV0ZWN0JztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VOYXZDb250ZXh0JztcbmltcG9ydCB7IGZvcm1hdE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vTm90aWZpY2F0aW9uc1V0aWxzJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvblNpZGViYXJQcm9wcyB7XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgdGFnczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgc2Vuc29yczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgd2F0ZXJBdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnM6IHN0cmluZ1tdO1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgdXBkYXRlTm90aWZpY2F0aW9uczogKG5vdGlmaWNhdGlvbjoge1xuICAgIHVzZXI6IHsgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7fSB9O1xuICB9KSA9PiB2b2lkO1xuICBkZWxldGVOb3RpZmljYXRpb246IChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4gdm9pZDtcbiAgc2V0SXNTaWRlYmFyT3BlbjogKGlzU2lkZWJhck9wZW46IGJvb2xlYW4pID0+IHZvaWQ7XG4gIGhhc1RlbGVncmFtOiBib29sZWFuO1xuICBoYXNQaG9uZTogYm9vbGVhbjtcbn1cblxuY29uc3QgTm90aWZpY2F0aW9uc1NpZGViYXI6IFJlYWN0LkZDPG5vdGlmaWNhdGlvblNpZGViYXJQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHNldElzU2lkZWJhck9wZW4sXG4gIHBvaW50cyxcbiAgdGFncyxcbiAgc2Vuc29ycyxcbiAgd2F0ZXJBdXRob3JpdGllcyxcbiAgdXBkYXRlTm90aWZpY2F0aW9ucyxcbiAgZGVsZXRlTm90aWZpY2F0aW9uLFxuICBhbGxvd2VkTm90aWZpY2F0aW9ucyxcbiAgaGFzVGVsZWdyYW0sXG4gIGhhc1Bob25lLFxufSkgPT4ge1xuICBjb25zdCBbbmV3Tm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb25dID0gdXNlU3RhdGUoeyAuLi5ub3RpZmljYXRpb24gfSk7XG4gIGNvbnN0IFtvcGVuU2lkZWJhciwgc2V0T3BlblNpZGViYXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IGlzUnRsIH0gPSB1c2VOYXZDb250ZXh0KCk7XG5cbiAgY29uc3QgY2xvc2VTaWRlYmFyID0gKCkgPT4ge1xuICAgIHNldE9wZW5TaWRlYmFyKGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNldElzU2lkZWJhck9wZW4oZmFsc2UpO1xuICAgIH0sIDEwMDApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZU5vdGlmaWNhdGlvbiA9ICgpID0+IHtcbiAgICBkZWxldGVOb3RpZmljYXRpb24obmV3Tm90aWZpY2F0aW9uKTtcbiAgICBjbG9zZVNpZGViYXIoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxGb3JtRWxlbWVudD4pID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdXBkYXRlTm90aWZpY2F0aW9ucyhmb3JtYXROb3RpZmljYXRpb24obmV3Tm90aWZpY2F0aW9uKSk7XG4gICAgY2xvc2VTaWRlYmFyKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRPcGVuU2lkZWJhcih0cnVlKTtcbiAgICBpZiAoIW5ld05vdGlmaWNhdGlvbi5pZCkgbmV3Tm90aWZpY2F0aW9uLnR5cGUgPSBtb2NrVHlwZXNbMF07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyU3R5bGVcbiAgICAgIGNsYXNzTmFtZT17YHNpZGViYXItd3JhcHBlciAke1xuICAgICAgICBvcGVuU2lkZWJhciA/ICdvcGVuLXNpZGViYXInIDogJ2Nsb3NlLXNpZGViYXInXG4gICAgICB9YH1cbiAgICAgIGlzUnRsPXtpc1J0bH1cbiAgICA+XG4gICAgICA8Tm90aWZpY2F0aW9uU2lkZWJhck1haW5TdHlsZSBpc1J0bD17aXNSdGx9PlxuICAgICAgICA8Tm90aWZpY2F0aW9uU2lkZWJhckhlYWRTdHlsZT5cbiAgICAgICAgICA8aDI+e2Ake1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uLmlkXG4gICAgICAgICAgICAgID8gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9ub3RpZmljYXRpb24nKVxuICAgICAgICAgICAgICA6IGkxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmFkZF9ub3RpZmljYXRpb24nKVxuICAgICAgICAgIH1gfTwvaDI+XG4gICAgICAgICAgPENsb3NlIG9uQ2xpY2s9eygpID0+IGNsb3NlU2lkZWJhcigpfSAvPlxuICAgICAgICA8L05vdGlmaWNhdGlvblNpZGViYXJIZWFkU3R5bGU+XG4gICAgICAgIDxwPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zdWJ0aXRsZScpfTwvcD5cbiAgICAgICAgPEZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uPXtuZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgICAgICB3YXRlckF1dGhvcml0aWVzPXt3YXRlckF1dGhvcml0aWVzfVxuICAgICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zfVxuICAgICAgICAgICAgaGFzVGVsZWdyYW09e2hhc1RlbGVncmFtfVxuICAgICAgICAgICAgaGFzUGhvbmU9e2hhc1Bob25lfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNTaWRlYmFyRm9vdGVyU3R5bGU+XG4gICAgICAgICAgICB7bm90aWZpY2F0aW9uLmlkICE9PSAnJyAmJiAoXG4gICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zU2lkZWJhckRlbGV0ZVN0eWxlXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlTm90aWZpY2F0aW9uKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9kZWxldGVfbm90aWZpY2F0aW9uJyl9XG4gICAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc1NpZGViYXJEZWxldGVTdHlsZT5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9e3ZhcmlhbnQuUFJJTUFSWX0gc2l6ZT1cIm1kXCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICB7bm90aWZpY2F0aW9uLmlkICE9PSAnJ1xuICAgICAgICAgICAgICAgID8gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zYXZlJylcbiAgICAgICAgICAgICAgICA6IGkxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWRkJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L05vdGlmaWNhdGlvbnNTaWRlYmFyRm9vdGVyU3R5bGU+XG4gICAgICAgIDwvRm9ybT5cbiAgICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhck1haW5TdHlsZT5cbiAgICA8L05vdGlmaWNhdGlvblNpZGViYXJTdHlsZT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbnNTaWRlYmFyO1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyU3R5bGUgPSBzdHlsZWQuZGl2PHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogJHtpc01vYmlsZSA/ICdjYWxjKDEwMHZ3ICsgMjBweCknIDogJzUwMHB4J307XG4gIGhlaWdodDogJHtpc01vYmlsZSA/ICcxMDB2aCcgOiAnY2FsYygxMDB2aCAtIDU3cHgpJ307XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAkeyhwKSA9PiAocC5pc1J0bCA/ICdsZWZ0OiAtODAwcHg7JyA6ICdyaWdodDogLTgwMHB4OycpfVxuICB0b3A6ICR7aXNNb2JpbGUgPyAnMCcgOiAnNjdweCd9O1xuICB6LWluZGV4OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnpJbmRleGVzLm1vZGFsfTtcbiAgdHJhbnNpdGlvbjogMC41cyBlYXNlLWluLW91dDtcblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICB9XG5cbiAgZm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbiAgfVxuXG4gICYmJi5vcGVuLXNpZGViYXIge1xuICAgIHRyYW5zaXRpb246IDAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgJHsocCkgPT4gKHAuaXNSdGwgPyAnbGVmdDogMHB4OycgOiAncmlnaHQ6IC0yMHB4OycpfVxuICB9XG4gICYmJi5jbG9zZS1zaWRlYmFyIHtcbiAgICAkeyhwKSA9PiAocC5pc1J0bCA/ICdsZWZ0OiAtODAwcHg7JyA6ICdyaWdodDogLTgwMHB4OycpfVxuICB9XG5cbiAgLmZvcm0tY2hlY2stbGFiZWwge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuXG4gIGxhYmVsW2Zvcj0ncHVtcF9vbmx5J10ge1xuICAgIG1hcmdpbjogMCA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJNYWluU3R5bGUgPSBzdHlsZWQuZGl2PHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIHBhZGRpbmc6ICR7aXNNb2JpbGVcbiAgICA/ICcxMHB4IDMwcHggMTBweCAxMHB4J1xuICAgIDogKHApID0+IChwLmlzUnRsID8gJzIwcHgnIDogJzIwcHggNDBweCAyMHB4IDIwcHgnKX07XG4gIGhlaWdodDogMTAwJTtcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJIZWFkU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGgyIHtcbiAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUueHhsfTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgc3ZnOmhvdmVyIHtcbiAgICBmaWxsOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjcwfTtcbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc1NpZGViYXJGb290ZXJTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDc1cHg7XG4gIHBhZGRpbmc6IDAgMzVweDtcbiAgLmJ0biB7XG4gICAgcGFkZGluZzogNXB4IDMwcHg7XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNTaWRlYmFyRGVsZXRlU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBmaWxsOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucHQ3MH07XG4gICAgc3ZnIHtcbiAgICAgIGZpbGw6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wdDcwfTtcbiAgICB9XG4gIH1cbmA7XG4iXX0=
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1NpZGViYXIudHN4Il0sIm5hbWVzIjpbIk5vdGlmaWNhdGlvblNpZGViYXJTdHlsZSIsInN0eWxlZCIsImRpdiIsInRoZW1lIiwiekluZGV4ZXMiLCJzaWRlYmFyIiwiTm90aWZpY2F0aW9uU2lkZWJhck1haW5TdHlsZSIsIk5vdGlmaWNhdGlvblNpZGViYXJIZWFkU3R5bGUiLCJmb250U2l6ZSIsInh4bCIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm43MCIsIk5vdGlmaWNhdGlvbnNTaWRlYmFyRm9vdGVyU3R5bGUiLCJuMjAiLCJOb3RpZmljYXRpb25zU2lkZWJhckRlbGV0ZVN0eWxlIiwibWQiLCJwcmltYXJ5IiwicDEiLCJwdDcwIiwiTm90aWZpY2F0aW9uc1NpZGViYXIiLCJub3RpZmljYXRpb24iLCJzZXRJc1NpZGViYXJPcGVuIiwicmVtb3ZlTm90aWZpY2F0aW9uIiwic2F2ZU5vdGlmaWNhdGlvbiIsIm5ld05vdGlmaWNhdGlvbiIsInNldE5ld05vdGlmaWNhdGlvbiIsIm9wZW5TaWRlYmFyIiwic2V0T3BlblNpZGViYXIiLCJpZCIsInR5cGUiLCJtb2NrVHlwZXMiLCJjbG9zZVNpZGViYXIiLCJzZXRUaW1lb3V0IiwiaGFuZGxlTm90aWZpY2F0aW9uVHlwZSIsImUiLCJ2YWx1ZSIsImZpbmQiLCJ0ZXh0IiwidGFyZ2V0IiwicHJldlN0YXRlIiwiaGFuZGxlU2V2ZXJpdGllcyIsInNldmVyaXRpZXMiLCJoYW5kbGVXYXRlckF1dGhvcml0aWVzIiwid2F0ZXJBdXRob3JpdGllcyIsImhhbmRsZVNvdXJjZXMiLCJzb3VyY2VzIiwiaGFuZGxlU2VuZFZpYSIsIm5vdGlmaWNhdGlvbkFsZXJ0cyIsImZpZWxkIiwiaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlIiwiY2hlY2tlZCIsInNhbXBsZSIsImRlbGV0ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbklkIiwiaGFuZGxlU3VibWl0IiwicHJldmVudERlZmF1bHQiLCJub3RpZmljYXRpb25Ub1NhdmUiLCJpMThuIiwidCIsInZhcmlhbnQiLCJQUklNQVJZIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBR0E7Ozs7QUFFQTs7QUFJQTs7QUFDQTs7Ozs7O0FBU0EsSUFBTUEsd0JBQXdCLEdBQUdDLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLGtYQVVqQjtBQUFBLE1BQUdDLEtBQUgsUUFBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsUUFBTixDQUFlQyxPQUE5QjtBQUFBLENBVmlCLENBQTlCOztBQWdDQSxJQUFNQyw0QkFBNEIsR0FBR0wsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEsc0NBQWxDOztBQUtBLElBQU1LLDRCQUE0QixHQUFHTiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSxtTEFLakI7QUFBQSxNQUFHQyxLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNLLFFBQU4sQ0FBZUMsR0FBOUI7QUFBQSxDQUxpQixFQWV0QjtBQUFBLE1BQUdOLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ08sV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJDLEdBQXpDO0FBQUEsQ0Fmc0IsQ0FBbEM7O0FBbUJBLElBQU1DLCtCQUErQixHQUFHWiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSwwSkFJSjtBQUFBLE1BQUdDLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ08sV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJHLEdBQXpDO0FBQUEsQ0FKSSxDQUFyQzs7QUFZQSxJQUFNQywrQkFBK0IsR0FBR2QsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEscUxBTXRCO0FBQUEsTUFBR0MsS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDSyxRQUFOLENBQWVRLEVBQTlCO0FBQUEs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QUFEWCxrQkFHRSw2QkFBQyxxQkFBRCxPQUhGLEVBSUc2QixjQUFLQyxDQUFMLENBQU8sNkNBQVAsQ0FKSCxDQURGLGVBT0UsNkJBQUMsZUFBRDtBQUFRLElBQUEsT0FBTyxFQUFFQyxnQkFBUUMsT0FBekI7QUFBa0MsSUFBQSxJQUFJLEVBQUMsSUFBdkM7QUFBNEMsSUFBQSxJQUFJLEVBQUM7QUFBakQsS0FDR0gsY0FBS0MsQ0FBTCxDQUFPLDhCQUFQLENBREgsQ0FQRixDQVZGLENBUkYsQ0FMRixDQURGO0FBdUNELENBNUhEOztlQThIZXZDLG9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgVHJhc2ggfSBmcm9tICdzcmMvYXNzZXRzL3RyYXNoLnN2Zyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCBCdXR0b24sIHsgdmFyaWFudCB9IGZyb20gJ3NyYy91aS1raXQvQnV0dG9uL0J1dHRvbic7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDbG9zZSB9IGZyb20gJ3NyYy9hc3NldHMvY2xvc2Uuc3ZnJztcbmltcG9ydCB7XG4gIG1vY2tUeXBlcyxcbiAgTm90aWZpY2F0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQgZnJvbSAnLi9Ob3RpZmljYXRpb25zRm9ybS9Ob3RpZmljYXRpb25zRm9ybUNvbnRlbnQnO1xuXG5pbnRlcmZhY2Ugbm90aWZpY2F0aW9uU2lkZWJhclByb3BzIHtcbiAgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XG4gIHNldElzU2lkZWJhck9wZW46IChpc1NpZGViYXJPcGVuOiBib29sZWFuKSA9PiB2b2lkO1xuICByZW1vdmVOb3RpZmljYXRpb246IChub3RpZmljYXRpb25JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBzYXZlTm90aWZpY2F0aW9uOiAobm90aWZpY2F0aW9uVG9TYXZlOiBOb3RpZmljYXRpb24pID0+IHZvaWQ7XG59XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogNDUlO1xuICBoZWlnaHQ6IDkyLjV2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHJpZ2h0OiAtODAwcHg7XG4gIHRvcDogNzNweDtcbiAgei1pbmRleDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS56SW5kZXhlcy5zaWRlYmFyfTtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMXMgZWFzZS1pbi1vdXQ7XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gIGZvcm0ge1xuICAgIGhlaWdodDogODF2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG5cbiAgJiYmLm9wZW4tc2lkZWJhciB7XG4gICAgcmlnaHQ6IC0yMHB4O1xuICB9XG4gICYmJi5jbG9zZS1zaWRlYmFyIHtcbiAgICByaWdodDogLTgwMHB4O1xuICB9XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyTWFpblN0eWxlID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFySGVhZFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBoMiB7XG4gICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLnh4bH07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIHN2Zzpob3ZlciB7XG4gICAgZmlsbDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm43MH07XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNTaWRlYmFyRm9vdGVyU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDJweCAtNHB4IDZweCAwcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4yMH07XG4gIGhlaWdodDogNzVweDtcbiAgcGFkZGluZzogMCAzNXB4O1xuICAuYnRuIHtcbiAgICBwYWRkaW5nOiA1cHggNzBweDtcbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc1NpZGViYXJEZWxldGVTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLm1kfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGZpbGw6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wdDcwfTtcbiAgICBzdmcge1xuICAgICAgZmlsbDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnB0NzB9O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc1NpZGViYXI6IFJlYWN0LkZDPG5vdGlmaWNhdGlvblNpZGViYXJQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHNldElzU2lkZWJhck9wZW4sXG4gIHJlbW92ZU5vdGlmaWNhdGlvbixcbiAgc2F2ZU5vdGlmaWNhdGlvbixcbn0pID0+IHtcbiAgY29uc3QgW25ld05vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uXSA9IHVzZVN0YXRlKHsgLi4ubm90aWZpY2F0aW9uIH0pO1xuICBjb25zdCBbb3BlblNpZGViYXIsIHNldE9wZW5TaWRlYmFyXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldE9wZW5TaWRlYmFyKHRydWUpO1xuICAgIGlmICghbmV3Tm90aWZpY2F0aW9uLmlkKSBuZXdOb3RpZmljYXRpb24udHlwZSA9IG1vY2tUeXBlc1swXTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsb3NlU2lkZWJhciA9ICgpID0+IHtcbiAgICBzZXRPcGVuU2lkZWJhcihmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1NpZGViYXJPcGVuKGZhbHNlKTtcbiAgICB9LCAxMDAwKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVOb3RpZmljYXRpb25UeXBlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBtb2NrVHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS50ZXh0ID09PSBlLnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKHZhbHVlKVxuICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgdHlwZTogdmFsdWUsXG4gICAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2V2ZXJpdGllcyA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBzZXZlcml0aWVzOiB2YWx1ZSxcbiAgICB9KSk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLndhdGVyQXV0aG9yaXRpZXMgfTtcbiAgICB2YWx1ZS50eXBlID0gZS50YXJnZXQudmFsdWU7XG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICB3YXRlckF1dGhvcml0aWVzOiB2YWx1ZSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU291cmNlcyA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24uc291cmNlcyB9O1xuICAgIHZhbHVlLnR5cGUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHNvdXJjZXM6IHZhbHVlLFxuICAgIH0pKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZW5kVmlhID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25BbGVydHMgfTtcbiAgICBjb25zdCBmaWVsZCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHZhbHVlW2ZpZWxkXSA9ICF2YWx1ZVtmaWVsZF07XG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBub3RpZmljYXRpb25BbGVydHM6IHZhbHVlLFxuICAgIH0pKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBzYW1wbGU6IHZhbHVlLFxuICAgIH0pKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVOb3RpZmljYXRpb24gPSAobm90aWZpY2F0aW9uSWQ6IHN0cmluZykgPT4ge1xuICAgIHJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZCk7XG4gICAgY2xvc2VTaWRlYmFyKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MRm9ybUVsZW1lbnQ+KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvblRvU2F2ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uIH07XG4gICAgc2F2ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25Ub1NhdmUpO1xuICAgIGNsb3NlU2lkZWJhcigpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblNpZGViYXJTdHlsZVxuICAgICAgY2xhc3NOYW1lPXtgc2lkZWJhci13cmFwcGVyICR7XG4gICAgICAgIG9wZW5TaWRlYmFyID8gJ29wZW4tc2lkZWJhcicgOiAnY2xvc2Utc2lkZWJhcidcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIDxOb3RpZmljYXRpb25TaWRlYmFyTWFpblN0eWxlPlxuICAgICAgICA8Tm90aWZpY2F0aW9uU2lkZWJhckhlYWRTdHlsZT5cbiAgICAgICAgICA8aDI+e2Ake1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uLmlkID8gJ0VkaXQgTm90aWZpY2F0aW9uJyA6ICdBZGQgTm90aWZpY2F0aW9uJ1xuICAgICAgICAgIH1gfTwvaDI+XG4gICAgICAgICAgPENsb3NlIG9uQ2xpY2s9eygpID0+IGNsb3NlU2lkZWJhcigpfSAvPlxuICAgICAgICA8L05vdGlmaWNhdGlvblNpZGViYXJIZWFkU3R5bGU+XG4gICAgICAgIDxwPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zdWJ0aXRsZScpfTwvcD5cbiAgICAgICAgPEZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uPXtuZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlPXtoYW5kbGVOb3RpZmljYXRpb25UeXBlfVxuICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcz17aGFuZGxlU2V2ZXJpdGllc31cbiAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXM9e2hhbmRsZVdhdGVyQXV0aG9yaXRpZXN9XG4gICAgICAgICAgICBoYW5kbGVTb3VyY2VzPXtoYW5kbGVTb3VyY2VzfVxuICAgICAgICAgICAgaGFuZGxlU2VuZFZpYT17aGFuZGxlU2VuZFZpYX1cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZT17aGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNTaWRlYmFyRm9vdGVyU3R5bGU+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc1NpZGViYXJEZWxldGVTdHlsZVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBkZWxldGVOb3RpZmljYXRpb24obmV3Tm90aWZpY2F0aW9uLmlkKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFRyYXNoIC8+XG4gICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2RlbGV0ZV9ub3RpZmljYXRpb24nKX1cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc1NpZGViYXJEZWxldGVTdHlsZT5cbiAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD17dmFyaWFudC5QUklNQVJZfSBzaXplPVwibWRcIiB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhdmUnKX1cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc1NpZGViYXJGb290ZXJTdHlsZT5cbiAgICAgICAgPC9Gb3JtPlxuICAgICAgPC9Ob3RpZmljYXRpb25TaWRlYmFyTWFpblN0eWxlPlxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhclN0eWxlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uc1NpZGViYXI7XG4iXX0=