@kando-env/kando-ui 1.2.47-alpha.1 → 1.2.47-alpha.11

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 (30) hide show
  1. package/lib/Router.js +2 -2
  2. package/lib/i18n/en.json +21 -9
  3. package/lib/i18n/he.json +62 -0
  4. package/lib/macros/getVersion.js +2 -2
  5. package/lib/pages/ImportGisPage/GisFileUploadRespones.js +2 -2
  6. package/lib/pages/ImportGisPage/ImportGisButtomButtons.js +2 -1
  7. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +5 -2
  8. package/lib/pages/ImportGisPage/ResponseBody.js +2 -2
  9. package/lib/pages/ImportGisPage/ValidationResponse.js +17 -11
  10. package/lib/pages/ImportGisPage/importGisUtils.js +17 -9
  11. package/lib/pages/ImportGisPage/style.module.scss +12 -0
  12. package/lib/pages/NotificationsPageV2/NotificationsPage.js +137 -83
  13. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +19 -8
  14. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +230 -93
  15. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +97 -140
  16. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +208 -0
  17. package/lib/pages/NotificationsPageV2/notificationUtils.js +60 -258
  18. package/lib/pages/SamplingsPage/NewSamplingAction.js +2 -2
  19. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +20 -25
  20. package/lib/pages/SamplingsPage/SamplingProperties/SamplingMobileProperties.js +73 -11
  21. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +2 -1
  22. package/lib/pages/SamplingsPage/SamplingsPage.js +18 -2
  23. package/lib/pages/SamplingsPage/samplingsPageUtils.js +23 -24
  24. package/lib/pages/SamplingsPage/style.module.scss +25 -0
  25. package/lib/styles/theme/theme.js +2 -2
  26. package/lib/ui-kit/Checkbox/Checkbox.js +18 -17
  27. package/lib/ui-kit/DropDown/DropDown.js +2 -4
  28. package/lib/ui-kit/KandoTable/KandoTable.js +3 -18
  29. package/lib/utilities/urls.js +14 -3
  30. package/package.json +1 -1
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,7 +11,7 @@ exports.default = void 0;
9
11
 
10
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _reactBootstrap = require("react-bootstrap");
15
17
 
@@ -21,89 +23,54 @@ var _Checkbox = _interopRequireDefault(require("ui-kit/Checkbox/Checkbox"));
21
23
 
22
24
  var _RadioButtonGroup = _interopRequireDefault(require("ui-kit/RadioButtons/RadioButtonGroup"));
23
25
 
24
- var NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
25
- displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
26
- componentId: "sc-1u0oj29-0"
27
- })(["width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}"], function (_ref) {
28
- var theme = _ref.theme;
29
- return theme.colorScheme.natural.n30;
30
- }, function (_ref2) {
31
- var theme = _ref2.theme;
32
- return theme.fontSize.md;
33
- }, function (_ref3) {
34
- var theme = _ref3.theme;
35
- return theme.fontWeight.w600;
36
- }, function (_ref4) {
37
- var theme = _ref4.theme;
38
- return theme.colorScheme.natural.n80;
39
- }, function (_ref5) {
40
- var theme = _ref5.theme;
41
- return theme.colorScheme.natural.n80;
42
- }, function (_ref6) {
43
- var theme = _ref6.theme;
44
- return theme.colorScheme.primary.p1;
45
- }, function (_ref7) {
46
- var theme = _ref7.theme;
47
- return theme.colorScheme.primary.p1;
48
- }, function (_ref8) {
49
- var theme = _ref8.theme;
50
- return theme.colorScheme.data.O100;
51
- }, function (_ref9) {
52
- var theme = _ref9.theme;
53
- return theme.colorScheme.data.O100;
54
- }, function (_ref10) {
55
- var theme = _ref10.theme;
56
- return theme.colorScheme.natural.n30;
57
- }, function (_ref11) {
58
- var theme = _ref11.theme;
59
- return theme.colorScheme.natural.n90;
60
- });
26
+ var _reactSelect = _interopRequireDefault(require("react-select"));
61
27
 
62
- var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
63
- displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
64
- componentId: "sc-1u0oj29-1"
65
- })(["display:flex;gap:", ";margin-bottom:8px;"], function (_ref12) {
66
- var gap = _ref12.gap;
67
- return gap + 'px';
68
- });
28
+ var _NotificationsUtils = require("../NotificationsUtils");
29
+
30
+ 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); }
69
31
 
70
- var NotificationsFormContent = function NotificationsFormContent(_ref13) {
71
- var notification = _ref13.notification,
72
- handleWaterAuthorities = _ref13.handleWaterAuthorities,
73
- handleSources = _ref13.handleSources,
74
- handleSendVia = _ref13.handleSendVia,
75
- handleNotificationType = _ref13.handleNotificationType,
76
- handleNotificationSample = _ref13.handleNotificationSample,
77
- handleSeverities = _ref13.handleSeverities;
32
+ 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; }
33
+
34
+ var NotificationsFormContent = function NotificationsFormContent(_ref) {
35
+ var notification = _ref.notification,
36
+ points = _ref.points,
37
+ tags = _ref.tags,
38
+ sensors = _ref.sensors,
39
+ waterAuthorities = _ref.waterAuthorities,
40
+ allowedNotifications = _ref.allowedNotifications,
41
+ setNewNotification = _ref.setNewNotification;
42
+ (0, _react.useEffect)(function () {}, []);
78
43
  return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
79
44
  controlId: "notification-type"
80
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Control, {
81
- as: "select",
82
- onChange: handleNotificationType,
83
- value: notification.type.text,
84
- name: "type",
85
- disabled: notification.id ? true : false
86
- }, /*#__PURE__*/_react.default.createElement("option", {
87
- value: "pollutionEventAlert"
88
- }, _i18n.default.t('notifications_page.edit_pollution_event')), /*#__PURE__*/_react.default.createElement("option", {
89
- value: "thresholdsExceededAlert"
90
- }, _i18n.default.t('notifications_page.edit_thresholds_exceeded')), /*#__PURE__*/_react.default.createElement("option", {
91
- value: "waterLevelOverflowAlert"
92
- }, _i18n.default.t('notifications_page.edit_water_level_overflow')), /*#__PURE__*/_react.default.createElement("option", {
93
- value: "deviceMalfunctionsAlert"
94
- }, _i18n.default.t('notifications_page.edit_device_malfunctions')), /*#__PURE__*/_react.default.createElement("option", {
95
- value: "WBEWeeklySummary"
96
- }, _i18n.default.t('notifications_page.edit_wbe_Weekly_Summary')), /*#__PURE__*/_react.default.createElement("option", {
97
- value: "WBEAlert"
98
- }, _i18n.default.t('notifications_page.edit_wbe_alert')))), (!notification.type.id || notification.type.id === 't123' || notification.type.id === 't124') && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
45
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
46
+ onChange: function onChange(option) {
47
+ return (0, _NotificationsUtils.handleNotificationType)(option, notification, setNewNotification);
48
+ },
49
+ name: 'type',
50
+ options: allowedNotifications.map(function (type) {
51
+ return {
52
+ value: type,
53
+ label: _i18n.default.t("notifications_page.".concat(type))
54
+ };
55
+ }),
56
+ defaultValue: notification.type !== '' ? {
57
+ value: notification.type,
58
+ label: _i18n.default.t("notifications_page.".concat(notification.type))
59
+ } : {
60
+ value: 'PollutionAlertConfig',
61
+ label: _i18n.default.t("notifications_page.PollutionAlertConfig")
62
+ }
63
+ })), notification.type === 'PollutionAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
99
64
  controlId: "notification-severity"
100
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), _i18n.default.t('notifications_page.subtitle'), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
65
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
101
66
  gap: "10"
102
67
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
103
68
  options: _notificationUtils.severitiesRadioButtons,
104
- handleChange: handleSeverities,
105
- className: notification.severities,
106
- checked: notification.severities,
69
+ handleChange: function handleChange(event) {
70
+ return (0, _NotificationsUtils.handleSeverities)(event, setNewNotification);
71
+ },
72
+ className: notification.severity,
73
+ checked: notification.severity,
107
74
  type: "radio"
108
75
  }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
109
76
  controlId: "notification-water-authorities"
@@ -111,21 +78,141 @@ var NotificationsFormContent = function NotificationsFormContent(_ref13) {
111
78
  gap: "0"
112
79
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
113
80
  options: _notificationUtils.waterAuthoritiesRadioButtons,
114
- handleChange: handleWaterAuthorities,
115
- className: notification.waterAuthorities.type,
116
- checked: notification.waterAuthorities.type,
81
+ handleChange: function handleChange(event) {
82
+ return (0, _NotificationsUtils.handleWaterAuthorities)(event, '', notification, setNewNotification);
83
+ },
84
+ className: notification.water_authorities.selection_type,
85
+ checked: notification.water_authorities.selection_type,
117
86
  type: "radio"
118
- }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
87
+ })), notification.water_authorities.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
88
+ name: 'water_authority',
89
+ onChange: function onChange(option) {
90
+ (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
91
+ selection_type: notification.water_authorities.selection_type,
92
+ set: option
93
+ }, notification, setNewNotification);
94
+ },
95
+ isSearchable: true,
96
+ isMulti: true,
97
+ classNamePrefix: 'water_authority',
98
+ options: waterAuthorities === null || waterAuthorities === void 0 ? void 0 : waterAuthorities.map(function (wa) {
99
+ return {
100
+ value: wa.water_authority.id,
101
+ label: wa.water_authority.label
102
+ };
103
+ }),
104
+ defaultValue: notification.water_authorities.set !== null ? notification.water_authorities.set.map(function (wa) {
105
+ return {
106
+ value: wa.id,
107
+ label: wa.text
108
+ };
109
+ }) : []
110
+ })), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
119
111
  controlId: "notification-sources"
120
112
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sources')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
121
113
  gap: "0"
122
114
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
123
115
  options: _notificationUtils.sourcesRadioButtons,
124
- handleChange: handleSources,
125
- className: notification.sources.type,
126
- checked: notification.sources.type,
116
+ handleChange: function handleChange(event) {
117
+ return (0, _NotificationsUtils.handleSources)(event, '', notification, setNewNotification);
118
+ },
119
+ className: notification.points.selection_type,
120
+ checked: notification.points.selection_type,
127
121
  type: "radio"
128
- }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
122
+ })), notification.points.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
123
+ name: 'point',
124
+ onChange: function onChange(option) {
125
+ (0, _NotificationsUtils.handleSources)(undefined, {
126
+ selection_type: notification.points.selection_type,
127
+ set: option
128
+ }, notification, setNewNotification);
129
+ },
130
+ isSearchable: true,
131
+ isMulti: true,
132
+ classNamePrefix: 'point',
133
+ options: points === null || points === void 0 ? void 0 : points.map(function (p) {
134
+ return {
135
+ value: p.point.id,
136
+ label: p.point.label
137
+ };
138
+ }),
139
+ defaultValue: notification.points.set !== null ? notification.points.set.map(function (p) {
140
+ return {
141
+ value: p.id,
142
+ label: p.text
143
+ };
144
+ }) : []
145
+ })), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
146
+ controlId: "notification-tags"
147
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.tags')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
148
+ gap: "0"
149
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
150
+ options: _notificationUtils.sourcesRadioButtons,
151
+ handleChange: function handleChange(event) {
152
+ return (0, _NotificationsUtils.handleTags)(event, '', notification, setNewNotification);
153
+ },
154
+ className: notification.tags.selection_type,
155
+ checked: notification.tags.selection_type,
156
+ type: "radio"
157
+ })), notification.tags.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
158
+ name: 'point',
159
+ onChange: function onChange(option) {
160
+ (0, _NotificationsUtils.handleTags)(undefined, {
161
+ selection_type: notification.tags !== undefined ? notification.tags.selection_type : [],
162
+ set: option
163
+ }, notification, setNewNotification);
164
+ },
165
+ isSearchable: true,
166
+ isMulti: true,
167
+ classNamePrefix: 'point',
168
+ options: tags === null || tags === void 0 ? void 0 : tags.map(function (p) {
169
+ return {
170
+ value: p.tag.id,
171
+ label: p.tag.label
172
+ };
173
+ }),
174
+ defaultValue: notification.tags.set !== null ? notification.tags.set.map(function (p) {
175
+ return {
176
+ value: p.id,
177
+ label: p.text
178
+ };
179
+ }) : []
180
+ })), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
181
+ controlId: "notification-sensors"
182
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sensors')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
183
+ gap: "0"
184
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
185
+ options: _notificationUtils.sourcesRadioButtons,
186
+ handleChange: function handleChange(event) {
187
+ return (0, _NotificationsUtils.handleSensors)(event, '', notification, setNewNotification);
188
+ },
189
+ className: notification.sensors.selection_type,
190
+ checked: notification.sensors.selection_type,
191
+ type: "radio"
192
+ })), notification.sensors.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
193
+ name: 'point',
194
+ onChange: function onChange(option) {
195
+ (0, _NotificationsUtils.handleSensors)(undefined, {
196
+ selection_type: notification.sensors !== undefined ? notification.sensors.selection_type : [],
197
+ set: option
198
+ }, notification, setNewNotification);
199
+ },
200
+ isSearchable: true,
201
+ isMulti: true,
202
+ classNamePrefix: 'point',
203
+ options: sensors === null || sensors === void 0 ? void 0 : sensors.map(function (p) {
204
+ return {
205
+ value: p.sensor.id,
206
+ label: p.sensor.label
207
+ };
208
+ }),
209
+ defaultValue: notification.sensors.set !== null ? notification.sensors.set.map(function (p) {
210
+ return {
211
+ value: p.id,
212
+ label: p.text
213
+ };
214
+ }) : []
215
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
129
216
  controlId: "notification-send"
130
217
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_send_via')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
131
218
  gap: "10"
@@ -133,22 +220,72 @@ var NotificationsFormContent = function NotificationsFormContent(_ref13) {
133
220
  return /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
134
221
  key: value.label,
135
222
  option: value,
136
- handleChange: handleSendVia,
137
- className: notification.notificationAlerts,
138
- checked: notification.notificationAlerts,
223
+ handleChange: function handleChange(event) {
224
+ return (0, _NotificationsUtils.handleSendVia)(event, notification, setNewNotification);
225
+ },
226
+ className: notification.actions,
227
+ checked: notification.actions,
139
228
  type: "checkbox"
140
229
  });
141
- }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
230
+ }))), notification.type === 'PollutionAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
142
231
  inline: true,
143
232
  label: _i18n.default.t('notifications_page.edit_sampler_active'),
144
- name: "sample",
233
+ name: "pump_only",
145
234
  type: "checkbox",
146
- id: "sample",
147
- onChange: handleNotificationSample,
148
- checked: notification.sample
235
+ id: "pump_only",
236
+ onChange: function onChange(e) {
237
+ return (0, _NotificationsUtils.handleNotificationSample)(e, setNewNotification);
238
+ },
239
+ checked: notification.pump_only
149
240
  })));
150
241
  };
151
242
 
152
243
  var _default = NotificationsFormContent;
153
244
  exports.default = _default;
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSIsInN0eWxlZCIsImRpdiIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjMwIiwiZm9udFNpemUiLCJtZCIsImZvbnRXZWlnaHQiLCJ3NjAwIiwibjgwIiwicHJpbWFyeSIsInAxIiwiZGF0YSIsIk8xMDAiLCJuOTAiLCJOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIiwiZ2FwIiwiTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50Iiwibm90aWZpY2F0aW9uIiwiaGFuZGxlV2F0ZXJBdXRob3JpdGllcyIsImhhbmRsZVNvdXJjZXMiLCJoYW5kbGVTZW5kVmlhIiwiaGFuZGxlTm90aWZpY2F0aW9uVHlwZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsImhhbmRsZVNldmVyaXRpZXMiLCJpMThuIiwidCIsInR5cGUiLCJ0ZXh0IiwiaWQiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwic2V2ZXJpdGllcyIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJ3YXRlckF1dGhvcml0aWVzIiwic291cmNlc1JhZGlvQnV0dG9ucyIsInNvdXJjZXMiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsIm1hcCIsInZhbHVlIiwibGFiZWwiLCJub3RpZmljYXRpb25BbGVydHMiLCJzYW1wbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBWUEsSUFBTUEsZ0NBQWdDLEdBQUdDLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLHNhQUdOO0FBQUEsTUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxX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QWxDLEtBQ0dVLHFDQUFrQkMsR0FBbEIsQ0FBc0IsVUFBQ0MsS0FBRCxFQUFXO0FBQ2hDLHdCQUNFLDZCQUFDLGlCQUFEO0FBQ0UsTUFBQSxHQUFHLEVBQUVBLEtBQUssQ0FBQ0MsS0FEYjtBQUVFLE1BQUEsTUFBTSxFQUFFRCxLQUZWO0FBR0UsTUFBQSxZQUFZLEVBQUVqQixhQUhoQjtBQUlFLE1BQUEsU0FBUyxFQUFFSCxZQUFZLENBQUNzQixrQkFKMUI7QUFLRSxNQUFBLE9BQU8sRUFBRXRCLFlBQVksQ0FBQ3NCLGtCQUx4QjtBQU1FLE1BQUEsSUFBSSxFQUFDO0FBTlAsTUFERjtBQVVELEdBWEEsQ0FESCxDQUZGLENBM0VGLGVBNEZFLDZCQUFDLG9CQUFELENBQU0sS0FBTixxQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFDRSxJQUFBLE1BQU0sTUFEUjtBQUVFLElBQUEsS0FBSyxFQUFFZixjQUFLQyxDQUFMLENBQU8sd0NBQVAsQ0FGVDtBQUdFLElBQUEsSUFBSSxFQUFDLFFBSFA7QUFJRSxJQUFBLElBQUksRUFBQyxVQUpQO0FBS0UsSUFBQSxFQUFFLEVBQUMsUUFMTDtBQU1FLElBQUEsUUFBUSxFQUFFSCx3QkFOWjtBQU9FLElBQUEsT0FBTyxFQUFFTCxZQUFZLENBQUN1QjtBQVB4QixJQURGLENBNUZGLENBREY7QUEwR0QsQ0FuSEQ7O2VBcUhleEIsd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHdhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHNvdXJjZXNSYWRpb0J1dHRvbnMsXG4gIHNlbmRWaWFDaGVja0JveGVzLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnc3JjL3VpLWtpdC9DaGVja2JveC9DaGVja2JveCc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHMge1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgaGFuZGxlV2F0ZXJBdXRob3JpdGllczogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBoYW5kbGVTb3VyY2VzOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIGhhbmRsZVNlbmRWaWE6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGU6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgaGFuZGxlU2V2ZXJpdGllczogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAxcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gICAgZm9udC13ZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFdlaWdodC53NjAwfTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmFsbCxcbiAgLmluY2x1ZGUsXG4gIC5leGNsdWRlLFxuICAudGVsZWdyYW0sXG4gIC5lbWFpbCxcbiAgLnNtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICB9XG4gIC5leHRyZW1lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gIC5oaWdoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgfVxuICAubWVkaXVtIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm45MH07XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgPSBzdHlsZWQuZGl2PHsgZ2FwOiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwICsgJ3B4J307XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMsXG4gIGhhbmRsZVNvdXJjZXMsXG4gIGhhbmRsZVNlbmRWaWEsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSxcbiAgaGFuZGxlU2V2ZXJpdGllcyxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Tm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdHlwZVwiPlxuICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF90eXBlJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICA8Rm9ybS5Db250cm9sXG4gICAgICAgICAgYXM9XCJzZWxlY3RcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVOb3RpZmljYXRpb25UeXBlfVxuICAgICAgICAgIHZhbHVlPXtub3RpZmljYXRpb24udHlwZS50ZXh0fVxuICAgICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICBkaXNhYmxlZD17bm90aWZpY2F0aW9uLmlkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICA+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInBvbGx1dGlvbkV2ZW50QWxlcnRcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3BvbGx1dGlvbl9ldmVudCcpfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ0aHJlc2hvbGRzRXhjZWVkZWRBbGVydFwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfdGhyZXNob2xkc19leGNlZWRlZCcpfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3YXRlckxldmVsT3ZlcmZsb3dBbGVydFwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfd2F0ZXJfbGV2ZWxfb3ZlcmZsb3cnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZGV2aWNlTWFsZnVuY3Rpb25zQWxlcnRcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2RldmljZV9tYWxmdW5jdGlvbnMnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV0JFV2Vla2x5U3VtbWFyeVwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfd2JlX1dlZWtseV9TdW1tYXJ5Jyl9XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIldCRUFsZXJ0XCI+XG4gICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF93YmVfYWxlcnQnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9Gb3JtLkNvbnRyb2w+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7KCFub3RpZmljYXRpb24udHlwZS5pZCB8fFxuICAgICAgICBub3RpZmljYXRpb24udHlwZS5pZCA9PT0gJ3QxMjMnIHx8XG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlLmlkID09PSAndDEyNCcpICYmIChcbiAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNldmVyaXR5XCI+XG4gICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2V2ZXJpdHknKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnN1YnRpdGxlJyl9XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgIG9wdGlvbnM9e3NldmVyaXRpZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU2V2ZXJpdGllc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24uc2V2ZXJpdGllc31cbiAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNldmVyaXRpZXN9XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgKX1cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi13YXRlci1hdXRob3JpdGllc1wiPlxuICAgICAgICA8Rm9ybS5MYWJlbD5cbiAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uud2F0ZXJfYXV0aG9yaXRpZXMnKX1cbiAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVdhdGVyQXV0aG9yaXRpZXN9XG4gICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi53YXRlckF1dGhvcml0aWVzLnR5cGV9XG4gICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJBdXRob3JpdGllcy50eXBlfVxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L05vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGU+XG4gICAgICAgIHsvKiBzZWFyY2ggaW5wdXQgYW5kIHRhZ3Mgc2VsZWN0aW9uIHdpbGwgYmUgYWRkZWQgbGF0ZXIgKi99XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc291cmNlc1wiPlxuICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVTb3VyY2VzfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24uc291cmNlcy50eXBlfVxuICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNvdXJjZXMudHlwZX1cbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICB7Lyogc2VhcmNoIGlucHV0IGFuZCB0YWdzIHNlbGVjdGlvbiB3aWxsIGJlIGFkZGVkIGxhdGVyICovfVxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNlbmRWaWF9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24ubm90aWZpY2F0aW9uQWxlcnRzfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25BbGVydHN9XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICA8Rm9ybS5DaGVja1xuICAgICAgICAgIGlubGluZVxuICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgbmFtZT1cInNhbXBsZVwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBpZD1cInNhbXBsZVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZU5vdGlmaWNhdGlvblNhbXBsZX1cbiAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2FtcGxlfVxuICAgICAgICAvPlxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ7XG4iXX0=
245
+
246
+ var NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
247
+ displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
248
+ componentId: "sc-1u0oj29-0"
249
+ })(["width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}.form-check-inline{align-items:self-start !important;input{margin-top:7px !important;}}"], function (_ref2) {
250
+ var theme = _ref2.theme;
251
+ return theme.colorScheme.natural.n30;
252
+ }, function (_ref3) {
253
+ var theme = _ref3.theme;
254
+ return theme.fontSize.md;
255
+ }, function (_ref4) {
256
+ var theme = _ref4.theme;
257
+ return theme.fontWeight.w600;
258
+ }, function (_ref5) {
259
+ var theme = _ref5.theme;
260
+ return theme.colorScheme.natural.n80;
261
+ }, function (_ref6) {
262
+ var theme = _ref6.theme;
263
+ return theme.colorScheme.natural.n80;
264
+ }, function (_ref7) {
265
+ var theme = _ref7.theme;
266
+ return theme.colorScheme.primary.p1;
267
+ }, function (_ref8) {
268
+ var theme = _ref8.theme;
269
+ return theme.colorScheme.primary.p1;
270
+ }, function (_ref9) {
271
+ var theme = _ref9.theme;
272
+ return theme.colorScheme.data.O100;
273
+ }, function (_ref10) {
274
+ var theme = _ref10.theme;
275
+ return theme.colorScheme.data.O100;
276
+ }, function (_ref11) {
277
+ var theme = _ref11.theme;
278
+ return theme.colorScheme.data.W100;
279
+ }, function (_ref12) {
280
+ var theme = _ref12.theme;
281
+ return theme.colorScheme.data.W100;
282
+ });
283
+
284
+ var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
285
+ displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
286
+ componentId: "sc-1u0oj29-1"
287
+ })(["display:flex;gap:", ";margin-bottom:8px;"], function (_ref13) {
288
+ var gap = _ref13.gap;
289
+ return gap + 'px';
290
+ });
291
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQiLCJub3RpZmljYXRpb24iLCJwb2ludHMiLCJ0YWdzIiwic2Vuc29ycyIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsInNldE5ld05vdGlmaWNhdGlvbiIsImkxOG4iLCJ0Iiwib3B0aW9uIiwibWFwIiwidHlwZSIsInZhbHVlIiwibGFiZWwiLCJpbmNsdWRlcyIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJldmVudCIsInNldmVyaXR5Iiwid2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyIsIndhdGVyX2F1dGhvcml0aWVzIiwic2VsZWN0aW9uX3R5cGUiLCJ1bmRlZmluZWQiLCJzZXQiLCJ3YSIsIndhdGVyX2F1dGhvcml0eSIsImlkIiwidGV4dCIsInNvdXJjZXNSYWRpb0J1dHRvbnMiLCJwIiwicG9pbnQiLCJ0YWciLCJzZW5zb3IiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsImFjdGlvbnMiLCJlIiwicHVtcF9vbmx5IiwiTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4zMCIsImZvbnRTaXplIiwibWQiLCJmb250V2VpZ2h0IiwidzYwMCIsIm44MCIsInByaW1hcnkiLCJwMSIsImRhdGEiLCJPMTAwIiwiVzEwMCIsIk5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUiLCJnYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBcUJBLElBQU1BLHdCQUFnRSxHQUFHLFNBQW5F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bEIsQ0FBdUJDLElBQXRDO0FBQUEsQ0FsQ2MsRUFtQ3pCO0FBQUEsTUFBR1osS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCVSxJQUFsQixDQUF1QkMsSUFBdEM7QUFBQSxDQW5DeUIsRUFzQ2Q7QUFBQSxNQUFHWixLQUFILFVBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JVLElBQWxCLENBQXVCRSxJQUF0QztBQUFBLENBdENjLEVBdUN6QjtBQUFBLE1BQUdiLEtBQUgsVUFBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQlUsSUFBbEIsQ0FBdUJFLElBQXRDO0FBQUEsQ0F2Q3lCLENBQXRDOztBQW1EQSxJQUFNQyw0QkFBNEIsR0FBR2hCLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLGlEQUV6QjtBQUFBLE1BQUdnQixHQUFILFVBQUdBLEdBQUg7QUFBQSxTQUFhQSxHQUFHLEdBQUcsSUFBbkI7QUFBQSxDQUZ5QixDQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbixcbiAgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyxcbiAgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyxcbiAgc291cmNlc1JhZGlvQnV0dG9ucyxcbiAgc2VuZFZpYUNoZWNrQm94ZXMsXG4gIEFkdmFuY2VkU2VsZWN0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnc3JjL3VpLWtpdC9DaGVja2JveC9DaGVja2JveCc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcbmltcG9ydCBTZWxlY3QgZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSxcbiAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZSxcbiAgaGFuZGxlU2VuZFZpYSxcbiAgaGFuZGxlU2Vuc29ycyxcbiAgaGFuZGxlU2V2ZXJpdGllcyxcbiAgaGFuZGxlU291cmNlcyxcbiAgaGFuZGxlVGFncyxcbiAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyxcbn0gZnJvbSAnLi4vTm90aWZpY2F0aW9uc1V0aWxzJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHMge1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgcG9pbnRzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB0YWdzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB3YXRlckF1dGhvcml0aWVzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBhbGxvd2VkTm90aWZpY2F0aW9uczogc3RyaW5nW107XG4gIHNldE5ld05vdGlmaWNhdGlvbjogYW55O1xufVxuXG5jb25zdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ6IFJlYWN0LkZDPG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHM+ID0gKHtcbiAgbm90aWZpY2F0aW9uLFxuICBwb2ludHMsXG4gIHRhZ3MsXG4gIHNlbnNvcnMsXG4gIHdhdGVyQXV0aG9yaXRpZXMsXG4gIGFsbG93ZWROb3RpZmljYXRpb25zLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG59KSA9PiB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW10pO1xuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10eXBlXCI+XG4gICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3R5cGUnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbikgPT5cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUob3B0aW9uLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgbmFtZT17J3R5cGUnfVxuICAgICAgICAgIG9wdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zIS5tYXAoKHR5cGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiB0eXBlLFxuICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7dHlwZX1gKSxcbiAgICAgICAgICB9KSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnJ1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBub3RpZmljYXRpb24udHlwZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS4ke25vdGlmaWNhdGlvbi50eXBlfWApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Qb2xsdXRpb25BbGVydENvbmZpZ2ApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdQb2xsdXRpb25BbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZXZlcml0eScpfVxuICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZXZlcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcyhldmVudCwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2V2ZXJpdHl9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24td2F0ZXItYXV0aG9yaXRpZXNcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLndhdGVyX2F1dGhvcml0aWVzJyl9XG4gICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICBvcHRpb25zPXt3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAge25vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiZcbiAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICBuYW1lPXsnd2F0ZXJfYXV0aG9yaXR5J31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZWxlY3Rpb25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PXsnd2F0ZXJfYXV0aG9yaXR5J31cbiAgICAgICAgICAgICAgb3B0aW9ucz17d2F0ZXJBdXRob3JpdGllcz8ubWFwKCh3YTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiB3YS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHdhLndhdGVyX2F1dGhvcml0eS5sYWJlbCxcbiAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNldC5tYXAoKHdhOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHdhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB3YS50ZXh0LFxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi1zb3VyY2VzXCI+XG4gICAgICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhldmVudCwgJycsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6IG5vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtwb2ludHM/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHAucG9pbnQuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5wb2ludC5sYWJlbCxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5wb2ludHMuc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnBvaW50cy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50YWdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdGFnc1wiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnRhZ3MnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c291cmNlc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoZXZlbnQsICcnLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24udGFncyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RhZ3M/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC50YWcuaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRhZy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50YWdzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnRhZ3Muc2V0Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbnNvcnNcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zZW5zb3JzJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NvdXJjZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKGV2ZW50LCAnJywgbm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICAgIHtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKFxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25fdHlwZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zZW5zb3JzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2Vuc29ycz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcC5zZW5zb3IuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5zZW5zb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbmRWaWEoZXZlbnQsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L05vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGU+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdQb2xsdXRpb25BbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cD5cbiAgICAgICAgICAgIDxGb3JtLkNoZWNrXG4gICAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgICBsYWJlbD17aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zYW1wbGVyX2FjdGl2ZScpfVxuICAgICAgICAgICAgICBuYW1lPVwicHVtcF9vbmx5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZShlLCBzZXROZXdOb3RpZmljYXRpb24pfVxuICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ucHVtcF9vbmx5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgPC9Ob3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDtcblxuY29uc3QgTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogNzJ2aDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMXB4ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uMzB9O1xuICBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuXG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUubWR9O1xuICAgIGZvbnQtd2VpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRXZWlnaHQudzYwMH07XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC5hbGwsXG4gIC5pbmNsdWRlLFxuICAuZXhjbHVkZSxcbiAgLnRlbGVncmFtLFxuICAuZW1haWwsXG4gIC5zbXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgfVxuICAuZXh0cmVtZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnAxfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnAxfTtcbiAgfVxuICAuaGlnaCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gIH1cbiAgLm1lZGl1bSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMH07XG4gIH1cblxuICAuZm9ybS1jaGVjay1pbmxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0ICFpbXBvcnRhbnQ7XG5cbiAgICBpbnB1dCB7XG4gICAgICBtYXJnaW4tdG9wOiA3cHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgPSBzdHlsZWQuZGl2PHsgZ2FwOiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwICsgJ3B4J307XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG4iXX0=