@kando-env/kando-ui 1.2.268 → 1.2.270

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 (122) hide show
  1. package/lib/Widgets/Map/areas/AreaUtils.js +4 -4
  2. package/lib/Widgets/Map/points/PointUtils.js +4 -2
  3. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +3 -3
  4. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +6 -6
  5. package/lib/Widgets/UtilityInformation/UtilityInformation.js +3 -3
  6. package/lib/assets/icons/copy.svg +8 -0
  7. package/lib/assets/icons/index.js +43 -1
  8. package/lib/assets/icons/info-dot.svg +4 -0
  9. package/lib/assets/icons/map.svg +24 -0
  10. package/lib/assets/icons/question-info.svg +3 -0
  11. package/lib/assets/icons/sampling.svg +9 -0
  12. package/lib/assets/icons/score-info.svg +9 -0
  13. package/lib/components/Sector/svgs/AreaMissing.svg +10 -0
  14. package/lib/components/Sector/svgs/Brewing.svg +99 -92
  15. package/lib/components/Sector/svgs/Cowshed.svg +27 -22
  16. package/lib/components/Sector/svgs/Garage.svg +26 -23
  17. package/lib/components/Sector/svgs/Missing.svg +36 -35
  18. package/lib/components/Sector/svgs/Motor Vehicle.svg +21 -0
  19. package/lib/components/Sector/svgs/Polymer.svg +42 -0
  20. package/lib/components/Sector/svgs/Pulp and Paper.svg +26 -0
  21. package/lib/components/Sector/svgs/Seafood.svg +26 -0
  22. package/lib/components/Sector/svgs/barrel.svg +99 -92
  23. package/lib/components/Sector/svgs/beer.svg +16 -12
  24. package/lib/components/Sector/svgs/beverage.svg +17 -12
  25. package/lib/components/Sector/svgs/car-repair.svg +26 -23
  26. package/lib/components/Sector/svgs/car-wash.svg +35 -35
  27. package/lib/components/Sector/svgs/chemistry.svg +17 -29
  28. package/lib/components/Sector/svgs/conductor-manufacturer.svg +20 -16
  29. package/lib/components/Sector/svgs/cosmetic-manufacturer.svg +25 -22
  30. package/lib/components/Sector/svgs/cow.svg +27 -22
  31. package/lib/components/Sector/svgs/cpu.svg +20 -16
  32. package/lib/components/Sector/svgs/dairy.svg +16 -17
  33. package/lib/components/Sector/svgs/dippel-oil.svg +21 -16
  34. package/lib/components/Sector/svgs/food-donation.svg +33 -28
  35. package/lib/components/Sector/svgs/food-factory.svg +20 -16
  36. package/lib/components/Sector/svgs/garbage-truck-1.svg +31 -33
  37. package/lib/components/Sector/svgs/gas-station.svg +22 -25
  38. package/lib/components/Sector/svgs/glass-manufacturer.svg +22 -20
  39. package/lib/components/Sector/svgs/glass.svg +22 -20
  40. package/lib/components/Sector/svgs/hand-washing.svg +19 -16
  41. package/lib/components/Sector/svgs/hospital.svg +31 -27
  42. package/lib/components/Sector/svgs/hotel.svg +24 -23
  43. package/lib/components/Sector/svgs/laundromat.svg +26 -25
  44. package/lib/components/Sector/svgs/leather-factory.svg +15 -22
  45. package/lib/components/Sector/svgs/leather.svg +15 -22
  46. package/lib/components/Sector/svgs/lipstick.svg +25 -22
  47. package/lib/components/Sector/svgs/meat.svg +27 -23
  48. package/lib/components/Sector/svgs/metal-coating-plant.svg +21 -20
  49. package/lib/components/Sector/svgs/metal-facbrication.svg +30 -19
  50. package/lib/components/Sector/svgs/milk.svg +16 -17
  51. package/lib/components/Sector/svgs/oil-rig.svg +15 -16
  52. package/lib/components/Sector/svgs/petrochemical.svg +21 -12
  53. package/lib/components/Sector/svgs/pie.svg +20 -16
  54. package/lib/components/Sector/svgs/pills.svg +21 -21
  55. package/lib/components/Sector/svgs/plant-unkown-3.svg +36 -35
  56. package/lib/components/Sector/svgs/plastic-rubber.svg +34 -42
  57. package/lib/components/Sector/svgs/printer.svg +16 -16
  58. package/lib/components/Sector/svgs/recycling.svg +15 -16
  59. package/lib/components/Sector/svgs/refinery.svg +16 -17
  60. package/lib/components/Sector/svgs/repair.svg +14 -12
  61. package/lib/components/Sector/svgs/sewing-machine.svg +22 -21
  62. package/lib/components/Sector/svgs/shop.svg +26 -23
  63. package/lib/components/Sector/svgs/soda.svg +15 -12
  64. package/lib/components/Sector/svgs/spray-gun.svg +21 -20
  65. package/lib/components/Sector/svgs/washing-machine.svg +26 -25
  66. package/lib/components/Sector/svgs/waste.svg +34 -42
  67. package/lib/components/Sector/svgs/welder-a.svg +30 -19
  68. package/lib/components/Sector/svgs/wine-glass.svg +10 -14
  69. package/lib/components/SevereEvent/SevereEvent.js +18 -9
  70. package/lib/hooks/useUserTimeZone.js +36 -2
  71. package/lib/hooks/useUserTimeZone.test.js +15 -1
  72. package/lib/i18n/en.json +54 -2
  73. package/lib/i18n/he.json +25 -2
  74. package/lib/macros/getVersion.js +1 -1
  75. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +4 -2
  76. package/lib/pages/EventsPage/events/event_info/EventDetails.js +2 -2
  77. package/lib/pages/EventsPage/events/event_info/EventInfo.js +49 -19
  78. package/lib/pages/EventsPage/events/event_info/EventInfoStyle.scss +16 -4
  79. package/lib/pages/EventsPage/events/event_info/EventSection.js +47 -0
  80. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +59 -0
  81. package/lib/pages/EventsPage/events/event_info/Header/Header.js +31 -0
  82. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +86 -0
  83. package/lib/pages/EventsPage/events/event_info/Header/index.js +11 -0
  84. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +35 -0
  85. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +54 -0
  86. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +11 -0
  87. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +37 -0
  88. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreGauge.js +155 -0
  89. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +63 -0
  90. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +11 -0
  91. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +38 -0
  92. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +26 -0
  93. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +58 -0
  94. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +42 -0
  95. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +36 -0
  96. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +41 -0
  97. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +44 -0
  98. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +20 -0
  99. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +70 -0
  100. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterConsumptionPerDay.js +28 -0
  101. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +33 -0
  102. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +56 -0
  103. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +29 -0
  104. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +30 -0
  105. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +70 -0
  106. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +40 -0
  107. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +11 -0
  108. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +20 -0
  109. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +46 -0
  110. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +38 -0
  111. package/lib/pages/EventsPage/events/event_info/styles.js +32 -0
  112. package/lib/store/events/models/IEvent.js +1 -1
  113. package/lib/store/events/models/ISource.js +1 -1
  114. package/lib/styles/theme/theme.js +12 -1
  115. package/lib/styles.scss +8 -0
  116. package/lib/ui-kit/siteName/SiteName.js +31 -0
  117. package/lib/utilities/scoreToData.js +44 -0
  118. package/lib/utilities/scoreToData.test.js +16 -0
  119. package/package.json +2 -2
  120. package/lib/pages/EventsPage/events/event_info/samplings/Sampling.js +0 -46
  121. package/lib/pages/EventsPage/events/event_info/samplings/Samplings.js +0 -38
  122. package/lib/utilities/scoreToColor.js +0 -24
@@ -9,13 +9,15 @@ exports.SevereEvent = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _lodash = require("lodash");
11
11
  var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
12
- var _TimeFormat = _interopRequireDefault(require("../../utilities/TimeFormat"));
12
+ var _TimeFormat = _interopRequireDefault(require("utilities/TimeFormat"));
13
13
  var _info = require("@svgr/webpack?-svgo!./assets/info.svg");
14
14
  var _Eta = _interopRequireDefault(require("./Eta/Eta"));
15
15
  require("./SevereEvent.scss");
16
16
  var _InfoTooltip = require("ui-kit/InfoTooltip/InfoTooltip");
17
17
  var _AlertIcon = require("@svgr/webpack?-svgo!./AlertIcon.svg");
18
18
  var _EventUtils = require("pages/EventsPage/events/events_list/EventUtils");
19
+ var _useUserTimeZone = require("hooks/useUserTimeZone");
20
+ var _SiteName = _interopRequireDefault(require("../../ui-kit/siteName/SiteName"));
19
21
  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); }
20
22
  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; }
21
23
  var SevereEvent = function SevereEvent(_ref) {
@@ -32,13 +34,16 @@ var SevereEvent = function SevereEvent(_ref) {
32
34
  return (0, _EventUtils.parseEventData)(event);
33
35
  }, [event]),
34
36
  firstseen = _useMemo.firstseen,
35
- lastseen = _useMemo.lastseen,
36
- total = _useMemo.total;
37
+ lastseen = _useMemo.lastseen;
38
+ var dischargeTime = (0, _useUserTimeZone.calculateTimeDuration)({
39
+ start_time: firstseen.start_time,
40
+ end_time: firstseen.last_seen_time
41
+ });
37
42
  var itemContainer = (0, _react.useRef)(null);
38
43
 
39
44
  /* Show name in the title for factories only */
40
45
  var eventSource = function eventSource(event) {
41
- if (event.source_type === 'factory') {
46
+ if (event.source_type === 'factory' && event.sources[0].polluter) {
42
47
  var _first;
43
48
  return /*#__PURE__*/_react.default.createElement("div", {
44
49
  className: "source"
@@ -80,7 +85,9 @@ var SevereEvent = function SevereEvent(_ref) {
80
85
  className: "mobile"
81
86
  }, /*#__PURE__*/_react.default.createElement("div", {
82
87
  className: "addr"
83
- }, firstseen.point_name), /*#__PURE__*/_react.default.createElement("div", {
88
+ }, /*#__PURE__*/_react.default.createElement(_SiteName.default, {
89
+ site: firstseen.point_name
90
+ })), /*#__PURE__*/_react.default.createElement("div", {
84
91
  className: "date"
85
92
  }, /*#__PURE__*/_react.default.createElement(_TimeFormat.default, {
86
93
  timestamp: firstseen.start_time.toString(),
@@ -93,7 +100,9 @@ var SevereEvent = function SevereEvent(_ref) {
93
100
  className: "mobile"
94
101
  }, /*#__PURE__*/_react.default.createElement("div", {
95
102
  className: "addr"
96
- }, lastseen.point_name), /*#__PURE__*/_react.default.createElement("div", {
103
+ }, /*#__PURE__*/_react.default.createElement(_SiteName.default, {
104
+ site: lastseen.point_name
105
+ })), /*#__PURE__*/_react.default.createElement("div", {
97
106
  className: "date"
98
107
  }, /*#__PURE__*/_react.default.createElement(_TimeFormat.default, {
99
108
  timestamp: lastseen.last_seen_time.toString(),
@@ -104,9 +113,9 @@ var SevereEvent = function SevereEvent(_ref) {
104
113
  className: "total-time"
105
114
  }, /*#__PURE__*/_react.default.createElement("div", {
106
115
  className: "type-title"
107
- }, _i18n.default.t('dashboard_v2.utility_dashboard.most-severe-events.total-time'), ":"), /*#__PURE__*/_react.default.createElement("div", {
116
+ }, _i18n.default.t('events_overview.discharge_time'), ":"), /*#__PURE__*/_react.default.createElement("div", {
108
117
  className: "time"
109
- }, total)))), etaWWTP && /*#__PURE__*/_react.default.createElement("div", {
118
+ }, dischargeTime)))), etaWWTP && /*#__PURE__*/_react.default.createElement("div", {
110
119
  className: "eta-wwtp"
111
120
  }, /*#__PURE__*/_react.default.createElement("div", {
112
121
  className: "type-title"
@@ -145,4 +154,4 @@ var SevereEvent = function SevereEvent(_ref) {
145
154
  };
146
155
  exports.SevereEvent = SevereEvent;
147
156
  var severities = ['low', 'high', 'extreme'];
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RpbWVGb3JtYXQiLCJfaW5mbyIsIl9FdGEiLCJfSW5mb1Rvb2x0aXAiLCJfQWxlcnRJY29uIiwiX0V2ZW50VXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlNldmVyZUV2ZW50IiwiX3JlZiIsImV0YVdXVFAiLCJfcmVmJG1zZyIsIm1zZyIsImV2ZW50IiwiaGFuZGxlQ2xpY2siLCJvbk1vdXNlRW50ZXJFdmVudCIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXhjZXB0aW9uQWxlcnQiLCJ2YWxpZGF0ZUV2ZW50IiwiX3VzZU1lbW8iLCJ1c2VNZW1vIiwicGFyc2VFdmVudERhdGEiLCJmaXJzdHNlZW4iLCJsYXN0c2VlbiIsInRvdGFsIiwiaXRlbUNvbnRhaW5lciIsInVzZVJlZiIsImV2ZW50U291cmNlIiwic291cmNlX3R5cGUiLCJfZmlyc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaTE4biIsInQiLCJmaXJzdCIsInNvdXJjZXMiLCJwb2ludF9uYW1lIiwidXNlRWZmZWN0IiwidW5kZWZpbmVkIiwicmVmIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImNvbmNhdCIsInNldmVyaXRpZXMiLCJOdW1iZXIiLCJzZXZlcml0eSIsImlkIiwiZGlzY2hhcmdpbmciLCJ0aW1lc3RhbXAiLCJzdGFydF90aW1lIiwidG9TdHJpbmciLCJ0aW1lX3pvbmUiLCJsYXN0X3NlZW5fdGltZSIsImRhdGUiLCJ0aW1lIiwiaHJlZiIsImludGVyZXN0UG9pbnRzIiwiZXZlbnRfaWRzIiwiaW5jbHVkZXMiLCJtZXNzYWdlcyIsIm1hcCIsImV2ZW50X2lkIiwiSW5mb1Rvb2x0aXAiLCJkYXRhIiwibWVzc2FnZSIsInRpdGxlIiwiYWxpZ25Ub0JvdHRvbSIsImFsdGVybmF0ZUljb24iLCJSZWFjdENvbXBvbmVudCIsInJldmVyc2VkIiwicGFkZGluZyIsIkZyYWdtZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2V2ZXJlRXZlbnQvU2V2ZXJlRXZlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJy4uLy4uL3V0aWxpdGllcy9UaW1lRm9ybWF0JztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEluZm8gfSBmcm9tICcuL2Fzc2V0cy9pbmZvLnN2Zyc7XG5pbXBvcnQgRXRhIGZyb20gJy4vRXRhL0V0YSc7XG5pbXBvcnQgJy4vU2V2ZXJlRXZlbnQuc2Nzcyc7XG5pbXBvcnQgeyBldGFXV1RQIH0gZnJvbSAnc3JjL3BhZ2VzL1V0aWxpdHlEYXNoYm9hcmRQYWdlL01vc3RTZXZlcmVFdmVudHMvbW9kZWxzJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJbmZvVG9vbHRpcCB9IGZyb20gJ3NyYy91aS1raXQvSW5mb1Rvb2x0aXAvSW5mb1Rvb2x0aXAnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgQWxlcnRJY29uIH0gZnJvbSAnLi9BbGVydEljb24uc3ZnJztcbmltcG9ydCB7IHBhcnNlRXZlbnREYXRhIH0gZnJvbSAnc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0V2ZW50VXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNldmVyZUV2ZW50UHJvcHMge1xuICBldGFXV1RQPzogZXRhV1dUUDtcbiAgbXNnPzogc3RyaW5nO1xuICBldmVudDogSUV2ZW50O1xuICBvbk1vdXNlRW50ZXJFdmVudD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbk1vdXNlTGVhdmVFdmVudD86ICgpID0+IHZvaWQ7XG4gIGhhbmRsZUNsaWNrPzogKGFyZzI6IGFueSwgYXJnMTogYW55KSA9PiB2b2lkO1xuICB2YWx1ZXNGcm9tS1FMPzogc3RyaW5nO1xuICBleGNlcHRpb25BbGVydD86IHtcbiAgICBtZXNzYWdlczogeyBtZXNzYWdlOiBhbnk7IGV2ZW50X2lkOiBudW1iZXIgfVtdO1xuICAgIGV2ZW50X2lkczogbnVtYmVyW107XG4gIH07XG4gIHZhbGlkYXRlRXZlbnQ/OiAoZXZlbnQ6IElFdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFNldmVyZUV2ZW50OiBSZWFjdC5GQzxTZXZlcmVFdmVudFByb3BzPiA9ICh7XG4gIGV0YVdXVFAsXG4gIG1zZyA9ICcnLFxuICBldmVudCxcbiAgaGFuZGxlQ2xpY2ssXG4gIG9uTW91c2VFbnRlckV2ZW50LFxuICBvbk1vdXNlTGVhdmVFdmVudCxcbiAgZXhjZXB0aW9uQWxlcnQsXG4gIHZhbGlkYXRlRXZlbnQsXG59KSA9PiB7XG4gIGNvbnN0IHsgZmlyc3RzZWVuLCBsYXN0c2VlbiwgdG90YWwgfSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gcGFyc2VFdmVudERhdGEoZXZlbnQpLFxuICAgIFtldmVudF0sXG4gICk7XG4gIGNvbnN0IGl0ZW1Db250YWluZXIgPSB1c2VSZWY8YW55PihudWxsKTtcblxuICAvKiBTaG93IG5hbWUgaW4gdGhlIHRpdGxlIGZvciBmYWN0b3JpZXMgb25seSAqL1xuICBjb25zdCBldmVudFNvdXJjZSA9IChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnNvdXJjZV90eXBlID09PSAnZmFjdG9yeScpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic291cmNlXCI+XG4gICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLm1vc3Qtc2V2ZXJlLWV2ZW50cy5zb3VyY2UnKX1cbiAgICAgICAgICA6Jm5ic3A7XG4gICAgICAgICAge2ZpcnN0KGV2ZW50LnNvdXJjZXMpPy5wb2ludF9uYW1lIHx8ICdObyBOYW1lJ31cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdmFsaWRhdGVFdmVudCAhPT0gdW5kZWZpbmVkICYmIHZhbGlkYXRlRXZlbnQoZXZlbnQpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2l0ZW1Db250YWluZXJ9XG4gICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDbGljayAmJiBoYW5kbGVDbGljayhldmVudCwgaXRlbUNvbnRhaW5lcil9XG4gICAgICBvbk1vdXNlRW50ZXI9eygpID0+IG9uTW91c2VFbnRlckV2ZW50ICYmIG9uTW91c2VFbnRlckV2ZW50KGV2ZW50KX1cbiAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gb25Nb3VzZUxlYXZlRXZlbnQgJiYgb25Nb3VzZUxlYXZlRXZlbnQoKX1cbiAgICAgIGNsYXNzTmFtZT17YHNldmVyZS1ldmVudCAke3NldmVyaXRpZXNbTnVtYmVyKGV2ZW50LnNldmVyaXR5KV19YH1cbiAgICAgIGRhdGEtZXZlbnQtaWQ9e2V2ZW50LmlkfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidG9wXCI+XG4gICAgICAgIHtldmVudFNvdXJjZShldmVudCl9XG5cbiAgICAgICAge2V2ZW50LmRpc2NoYXJnaW5nICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpc2NoYXJnaW5nXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZGlzY2hhcmdpbmcnKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaXJzdFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInR5cGUtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZF92Mi51dGlsaXR5X2Rhc2hib2FyZC5tb3N0LXNldmVyZS1ldmVudHMuZmlyc3Qtc2VlbicsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2JpbGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkZHJcIj57Zmlyc3RzZWVuLnBvaW50X25hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e2ZpcnN0c2Vlbi5zdGFydF90aW1lLnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17Zmlyc3RzZWVuLnRpbWVfem9uZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0eXBlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICB7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZF92Mi51dGlsaXR5X2Rhc2hib2FyZC5tb3N0LXNldmVyZS1ldmVudHMubGFzdC1zZWVuJyxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWRkclwiPntsYXN0c2Vlbi5wb2ludF9uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtsYXN0c2Vlbi5sYXN0X3NlZW5fdGltZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e2xhc3RzZWVuLnRpbWVfem9uZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydsb3dlcl9kZXRhaWxzJ30+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvdGFsLXRpbWVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0eXBlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udChcbiAgICAgICAgICAgICAgICAgICdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQubW9zdC1zZXZlcmUtZXZlbnRzLnRvdGFsLXRpbWUnLFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgey8qVG90YWwgdGltZSovfTpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZVwiPnt0b3RhbH08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2V0YVdXVFAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXRhLXd3dHBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHlwZS10aXRsZVwiPlxuICAgICAgICAgICAgICB7aTE4bi50KFxuICAgICAgICAgICAgICAgICdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQubW9zdC1zZXZlcmUtZXZlbnRzLmV0YS13d3RwJyxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlIFwiPlxuICAgICAgICAgICAgICAgIHtldGFXV1RQLmRhdGV9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGltZVwiPiAoe2V0YVdXVFAudGltZX0pPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJtb3JlIFwiPlxuICAgICAgICAgICAgICAgIHtldGFXV1RQLmludGVyZXN0UG9pbnRzXG4gICAgICAgICAgICAgICAgICA/IGAke2V0YVdXVFAuaW50ZXJlc3RQb2ludHN9ICR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQubW9zdC1zZXZlcmUtZXZlbnRzLm1vcmUtaW50ZXJzZXQnLFxuICAgICAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFsZXJ0LWljb25cIj5cbiAgICAgICAgICB7ZXhjZXB0aW9uQWxlcnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgZXhjZXB0aW9uQWxlcnQuZXZlbnRfaWRzLmluY2x1ZGVzKGV2ZW50LmlkKSAmJlxuICAgICAgICAgICAgZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMubWFwKChtc2cpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG1zZy5ldmVudF9pZCA9PT0gZXZlbnQuaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPEluZm9Ub29sdGlwXG4gICAgICAgICAgICAgICAgICAgIGRhdGE9e21zZy5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17Jyd9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduVG9Cb3R0b209e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVJY29uPXs8QWxlcnRJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICByZXZlcnNlZD17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDw+PC8+XG4gICAgICAgICAgICAgICAgICA8L0luZm9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDw+PC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxFdGEgZXZlbnQ9e2V2ZW50fSAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgbXNnJHttc2cgPyAnIG9uJyA6ICcnfWB9PlxuICAgICAgICAgIDxJbmZvIHdpZHRoPVwiMTNweFwiIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgIHttc2d9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBzZXZlcml0aWVzID0gWydsb3cnLCAnaGlnaCcsICdleHRyZW1lJ107XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQW9ELElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUVwRCxJQUFBTSxJQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQUEsT0FBQTtBQUdBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUFpRSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFFakUsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQW9GLFNBQUFVLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBWix3QkFBQWdC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
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1RpbWVGb3JtYXQiLCJfaW5mbyIsIl9FdGEiLCJfSW5mb1Rvb2x0aXAiLCJfQWxlcnRJY29uIiwiX0V2ZW50VXRpbHMiLCJfdXNlVXNlclRpbWVab25lIiwiX1NpdGVOYW1lIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJTZXZlcmVFdmVudCIsIl9yZWYiLCJldGFXV1RQIiwiX3JlZiRtc2ciLCJtc2ciLCJldmVudCIsImhhbmRsZUNsaWNrIiwib25Nb3VzZUVudGVyRXZlbnQiLCJvbk1vdXNlTGVhdmVFdmVudCIsImV4Y2VwdGlvbkFsZXJ0IiwidmFsaWRhdGVFdmVudCIsIl91c2VNZW1vIiwidXNlTWVtbyIsInBhcnNlRXZlbnREYXRhIiwiZmlyc3RzZWVuIiwibGFzdHNlZW4iLCJkaXNjaGFyZ2VUaW1lIiwiY2FsY3VsYXRlVGltZUR1cmF0aW9uIiwic3RhcnRfdGltZSIsImVuZF90aW1lIiwibGFzdF9zZWVuX3RpbWUiLCJpdGVtQ29udGFpbmVyIiwidXNlUmVmIiwiZXZlbnRTb3VyY2UiLCJzb3VyY2VfdHlwZSIsInNvdXJjZXMiLCJwb2xsdXRlciIsIl9maXJzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpMThuIiwidCIsImZpcnN0IiwicG9pbnRfbmFtZSIsInVzZUVmZmVjdCIsInVuZGVmaW5lZCIsInJlZiIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJjb25jYXQiLCJzZXZlcml0aWVzIiwiTnVtYmVyIiwic2V2ZXJpdHkiLCJpZCIsImRpc2NoYXJnaW5nIiwic2l0ZSIsInRpbWVzdGFtcCIsInRvU3RyaW5nIiwidGltZV96b25lIiwiZGF0ZSIsInRpbWUiLCJocmVmIiwiaW50ZXJlc3RQb2ludHMiLCJldmVudF9pZHMiLCJpbmNsdWRlcyIsIm1lc3NhZ2VzIiwibWFwIiwiZXZlbnRfaWQiLCJJbmZvVG9vbHRpcCIsImRhdGEiLCJtZXNzYWdlIiwidGl0bGUiLCJhbGlnblRvQm90dG9tIiwiYWx0ZXJuYXRlSWNvbiIsIlJlYWN0Q29tcG9uZW50IiwicmV2ZXJzZWQiLCJwYWRkaW5nIiwiRnJhZ21lbnQiLCJ3aWR0aCIsImhlaWdodCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TZXZlcmVFdmVudC9TZXZlcmVFdmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IFRpbWVGb3JtYXQgZnJvbSAnc3JjL3V0aWxpdGllcy9UaW1lRm9ybWF0JztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEluZm8gfSBmcm9tICcuL2Fzc2V0cy9pbmZvLnN2Zyc7XG5pbXBvcnQgRXRhIGZyb20gJy4vRXRhL0V0YSc7XG5pbXBvcnQgJy4vU2V2ZXJlRXZlbnQuc2Nzcyc7XG5pbXBvcnQgeyBldGFXV1RQIH0gZnJvbSAnc3JjL3BhZ2VzL1V0aWxpdHlEYXNoYm9hcmRQYWdlL01vc3RTZXZlcmVFdmVudHMvbW9kZWxzJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJbmZvVG9vbHRpcCB9IGZyb20gJ3NyYy91aS1raXQvSW5mb1Rvb2x0aXAvSW5mb1Rvb2x0aXAnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgQWxlcnRJY29uIH0gZnJvbSAnLi9BbGVydEljb24uc3ZnJztcbmltcG9ydCB7IHBhcnNlRXZlbnREYXRhIH0gZnJvbSAnc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0V2ZW50VXRpbHMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlVGltZUR1cmF0aW9uIH0gZnJvbSAnc3JjL2hvb2tzL3VzZVVzZXJUaW1lWm9uZSc7XG5pbXBvcnQgU2l0ZU5hbWUgZnJvbSAnLi4vLi4vdWkta2l0L3NpdGVOYW1lL1NpdGVOYW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXZlcmVFdmVudFByb3BzIHtcbiAgZXRhV1dUUD86IGV0YVdXVFA7XG4gIG1zZz86IHN0cmluZztcbiAgZXZlbnQ6IElFdmVudDtcbiAgb25Nb3VzZUVudGVyRXZlbnQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25Nb3VzZUxlYXZlRXZlbnQ/OiAoKSA9PiB2b2lkO1xuICBoYW5kbGVDbGljaz86IChhcmcyOiBhbnksIGFyZzE6IGFueSkgPT4gdm9pZDtcbiAgdmFsdWVzRnJvbUtRTD86IHN0cmluZztcbiAgZXhjZXB0aW9uQWxlcnQ/OiB7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9O1xuICB2YWxpZGF0ZUV2ZW50PzogKGV2ZW50OiBJRXZlbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBTZXZlcmVFdmVudDogUmVhY3QuRkM8U2V2ZXJlRXZlbnRQcm9wcz4gPSAoe1xuICBldGFXV1RQLFxuICBtc2cgPSAnJyxcbiAgZXZlbnQsXG4gIGhhbmRsZUNsaWNrLFxuICBvbk1vdXNlRW50ZXJFdmVudCxcbiAgb25Nb3VzZUxlYXZlRXZlbnQsXG4gIGV4Y2VwdGlvbkFsZXJ0LFxuICB2YWxpZGF0ZUV2ZW50LFxufSkgPT4ge1xuICBjb25zdCB7IGZpcnN0c2VlbiwgbGFzdHNlZW4gfSA9IHVzZU1lbW8oKCkgPT4gcGFyc2VFdmVudERhdGEoZXZlbnQpLCBbZXZlbnRdKTtcbiAgY29uc3QgZGlzY2hhcmdlVGltZSA9IGNhbGN1bGF0ZVRpbWVEdXJhdGlvbih7XG4gICAgc3RhcnRfdGltZTogZmlyc3RzZWVuLnN0YXJ0X3RpbWUsXG4gICAgZW5kX3RpbWU6IGZpcnN0c2Vlbi5sYXN0X3NlZW5fdGltZSxcbiAgfSk7XG4gIGNvbnN0IGl0ZW1Db250YWluZXIgPSB1c2VSZWY8YW55PihudWxsKTtcblxuICAvKiBTaG93IG5hbWUgaW4gdGhlIHRpdGxlIGZvciBmYWN0b3JpZXMgb25seSAqL1xuICBjb25zdCBldmVudFNvdXJjZSA9IChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnNvdXJjZV90eXBlID09PSAnZmFjdG9yeScgJiYgZXZlbnQuc291cmNlc1swXS5wb2xsdXRlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb3VyY2VcIj5cbiAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQubW9zdC1zZXZlcmUtZXZlbnRzLnNvdXJjZScpfVxuICAgICAgICAgIDombmJzcDtcbiAgICAgICAgICB7Zmlyc3QoZXZlbnQuc291cmNlcyk/LnBvaW50X25hbWUgfHwgJ05vIE5hbWUnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB2YWxpZGF0ZUV2ZW50ICE9PSB1bmRlZmluZWQgJiYgdmFsaWRhdGVFdmVudChldmVudCk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17aXRlbUNvbnRhaW5lcn1cbiAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrICYmIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtQ29udGFpbmVyKX1cbiAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gb25Nb3VzZUVudGVyRXZlbnQgJiYgb25Nb3VzZUVudGVyRXZlbnQoZXZlbnQpfVxuICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBvbk1vdXNlTGVhdmVFdmVudCAmJiBvbk1vdXNlTGVhdmVFdmVudCgpfVxuICAgICAgY2xhc3NOYW1lPXtgc2V2ZXJlLWV2ZW50ICR7c2V2ZXJpdGllc1tOdW1iZXIoZXZlbnQuc2V2ZXJpdHkpXX1gfVxuICAgICAgZGF0YS1ldmVudC1pZD17ZXZlbnQuaWR9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0b3BcIj5cbiAgICAgICAge2V2ZW50U291cmNlKGV2ZW50KX1cblxuICAgICAgICB7ZXZlbnQuZGlzY2hhcmdpbmcgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlzY2hhcmdpbmdcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5kaXNjaGFyZ2luZycpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpcnN0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHlwZS10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLm1vc3Qtc2V2ZXJlLWV2ZW50cy5maXJzdC1zZWVuJyxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWRkclwiPlxuICAgICAgICAgICAgICAgICAgPFNpdGVOYW1lIHNpdGU9e2ZpcnN0c2Vlbi5wb2ludF9uYW1lfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtmaXJzdHNlZW4uc3RhcnRfdGltZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e2ZpcnN0c2Vlbi50aW1lX3pvbmUudG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXN0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHlwZS10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAge2kxOG4udChcbiAgICAgICAgICAgICAgICAgICdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQubW9zdC1zZXZlcmUtZXZlbnRzLmxhc3Qtc2VlbicsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb2JpbGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkZHJcIj5cbiAgICAgICAgICAgICAgICAgIDxTaXRlTmFtZSBzaXRlPXtsYXN0c2Vlbi5wb2ludF9uYW1lfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPXtsYXN0c2Vlbi5sYXN0X3NlZW5fdGltZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e2xhc3RzZWVuLnRpbWVfem9uZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydsb3dlcl9kZXRhaWxzJ30+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvdGFsLXRpbWVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0eXBlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmRpc2NoYXJnZV90aW1lJyl9XG4gICAgICAgICAgICAgICAgey8qVG90YWwgdGltZSovfTpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZVwiPntkaXNjaGFyZ2VUaW1lfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7ZXRhV1dUUCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJldGEtd3d0cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0eXBlLXRpdGxlXCI+XG4gICAgICAgICAgICAgIHtpMThuLnQoXG4gICAgICAgICAgICAgICAgJ2Rhc2hib2FyZF92Mi51dGlsaXR5X2Rhc2hib2FyZC5tb3N0LXNldmVyZS1ldmVudHMuZXRhLXd3dHAnLFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUgXCI+XG4gICAgICAgICAgICAgICAge2V0YVdXVFAuZGF0ZX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lXCI+ICh7ZXRhV1dUUC50aW1lfSk8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cIm1vcmUgXCI+XG4gICAgICAgICAgICAgICAge2V0YVdXVFAuaW50ZXJlc3RQb2ludHNcbiAgICAgICAgICAgICAgICAgID8gYCR7ZXRhV1dUUC5pbnRlcmVzdFBvaW50c30gJHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZF92Mi51dGlsaXR5X2Rhc2hib2FyZC5tb3N0LXNldmVyZS1ldmVudHMubW9yZS1pbnRlcnNldCcsXG4gICAgICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWxlcnQtaWNvblwiPlxuICAgICAgICAgIHtleGNlcHRpb25BbGVydCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBleGNlcHRpb25BbGVydC5ldmVudF9pZHMuaW5jbHVkZXMoZXZlbnQuaWQpICYmXG4gICAgICAgICAgICBleGNlcHRpb25BbGVydC5tZXNzYWdlcy5tYXAoKG1zZykgPT4ge1xuICAgICAgICAgICAgICBpZiAobXNnLmV2ZW50X2lkID09PSBldmVudC5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8SW5mb1Rvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgZGF0YT17bXNnLm1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXsnJ31cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25Ub0JvdHRvbT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUljb249ezxBbGVydEljb24gLz59XG4gICAgICAgICAgICAgICAgICAgIHJldmVyc2VkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD48Lz5cbiAgICAgICAgICAgICAgICAgIDwvSW5mb1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPD48Lz47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEV0YSBldmVudD17ZXZlbnR9IC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Btc2cke21zZyA/ICcgb24nIDogJyd9YH0+XG4gICAgICAgICAgPEluZm8gd2lkdGg9XCIxM3B4XCIgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICAgICAge21zZ31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IHNldmVyaXRpZXMgPSBbJ2xvdycsICdoaWdoJywgJ2V4dHJlbWUnXTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFB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
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.useUserSelectedTimeFormat = exports.useUserSelectedDateFormat = void 0;
7
+ exports.useUserSelectedTimeFormat = exports.useUserSelectedDateFormat = exports.useTimeInFormat = exports.displayTimeInFormat = exports.displayDuration = exports.calculateTimeDuration = void 0;
7
8
  var _reactRedux = require("react-redux");
9
+ var _moment = _interopRequireDefault(require("moment/moment"));
8
10
  var useUserSelectedDateTimeFormat = function useUserSelectedDateTimeFormat() {
9
11
  var userInfo = (0, _reactRedux.useSelector)(function (state) {
10
12
  return state.permissions.user_info;
@@ -25,4 +27,36 @@ var useUserSelectedTimeFormat = function useUserSelectedTimeFormat() {
25
27
  return 'DD/MM/YYYY HH:mm';
26
28
  };
27
29
  exports.useUserSelectedTimeFormat = useUserSelectedTimeFormat;
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJ1c2VVc2VyU2VsZWN0ZWREYXRlVGltZUZvcm1hdCIsInVzZXJJbmZvIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsInBlcm1pc3Npb25zIiwidXNlcl9pbmZvIiwiZGF0ZV90aW1lX2Zvcm1hdCIsInVzZVVzZXJTZWxlY3RlZERhdGVGb3JtYXQiLCJleHBvcnRzIiwidXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VVc2VyVGltZVpvbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmNvbnN0IHVzZVVzZXJTZWxlY3RlZERhdGVUaW1lRm9ybWF0ID0gKCkgPT4ge1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcbiAgcmV0dXJuIHVzZXJJbmZvLmRhdGVfdGltZV9mb3JtYXQ7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVXNlclNlbGVjdGVkRGF0ZUZvcm1hdCA9ICgpID0+IHtcbiAgaWYgKHVzZVVzZXJTZWxlY3RlZERhdGVUaW1lRm9ybWF0KCkgPT09ICd1cycpIHtcbiAgICByZXR1cm4gJ01NTSBERCwgWVlZWSc7XG4gIH1cblxuICByZXR1cm4gJ0REL01NL1lZWVknO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQgPSAoKSA9PiB7XG4gIGlmICh1c2VVc2VyU2VsZWN0ZWREYXRlVGltZUZvcm1hdCgpID09PSAndXMnKSB7XG4gICAgcmV0dXJuICdNTU0gREQsIFlZWVkgaGg6bW0gQSc7XG4gIH1cblxuICByZXR1cm4gJ0REL01NL1lZWVkgSEg6bW0nO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBTUMsNkJBQTZCLEdBQUcsU0FBaENBLDZCQUE2QkEsQ0FBQSxFQUFTO0VBQzFDLElBQU1DLFFBQVEsR0FBRyxJQUFBQyx1QkFBVyxFQUFDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsU0FBUztFQUFBLEVBQUM7RUFDcEUsT0FBT0osUUFBUSxDQUFDSyxnQkFBZ0I7QUFDbEMsQ0FBQztBQUVNLElBQU1DLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUEsRUFBUztFQUM3QyxJQUFJUCw2QkFBNkIsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO0lBQzVDLE9BQU8sY0FBYztFQUN2QjtFQUVBLE9BQU8sWUFBWTtBQUNyQixDQUFDO0FBQUNRLE9BQUEsQ0FBQUQseUJBQUEsR0FBQUEseUJBQUE7QUFFSyxJQUFNRSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFBLEVBQVM7RUFDN0MsSUFBSVQsNkJBQTZCLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUM1QyxPQUFPLHNCQUFzQjtFQUMvQjtFQUVBLE9BQU8sa0JBQWtCO0FBQzNCLENBQUM7QUFBQ1EsT0FBQSxDQUFBQyx5QkFBQSxHQUFBQSx5QkFBQSJ9
30
+ var useTimeInFormat = function useTimeInFormat(_ref) {
31
+ var time = _ref.time,
32
+ time_zone = _ref.time_zone;
33
+ return _moment.default.unix(time).tz(time_zone).format(useUserSelectedTimeFormat());
34
+ };
35
+ exports.useTimeInFormat = useTimeInFormat;
36
+ var calculateTimeDuration = function calculateTimeDuration(_ref2) {
37
+ var _ref2$start_time = _ref2.start_time,
38
+ start_time = _ref2$start_time === void 0 ? (0, _moment.default)().unix() : _ref2$start_time,
39
+ end_time = _ref2.end_time;
40
+ var duration = _moment.default.duration(_moment.default.unix(end_time).diff(_moment.default.unix(start_time)));
41
+ var days = duration.days() ? "".concat(duration.days(), "d") : '';
42
+ var hours = duration.hours() ? "".concat(duration.hours(), "h") : '';
43
+ var minutes = duration.minutes() || !days && !hours ? "".concat(duration.minutes(), "m") : '';
44
+ return [days, hours, minutes].filter(Boolean).join(' ');
45
+ };
46
+ exports.calculateTimeDuration = calculateTimeDuration;
47
+ var displayDuration = function displayDuration(timeInMinutes) {
48
+ var hours = Math.floor(timeInMinutes / 60);
49
+ var minutes = timeInMinutes % 60;
50
+ var hoursDisplay = hours > 0 ? "".concat(hours, "h") : '';
51
+ var minutesDisplay = minutes > 0 || !hoursDisplay ? "".concat(minutes, "m") : '';
52
+ return [hoursDisplay, minutesDisplay].filter(Boolean).join(' ');
53
+ };
54
+ exports.displayDuration = displayDuration;
55
+ var displayTimeInFormat = function displayTimeInFormat(_ref3) {
56
+ var time = _ref3.time,
57
+ time_zone = _ref3.time_zone,
58
+ format = _ref3.format;
59
+ return _moment.default.unix(time).tz(time_zone).format(format);
60
+ };
61
+ exports.displayTimeInFormat = displayTimeInFormat;
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInVzZVVzZXJTZWxlY3RlZERhdGVUaW1lRm9ybWF0IiwidXNlckluZm8iLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJkYXRlX3RpbWVfZm9ybWF0IiwidXNlVXNlclNlbGVjdGVkRGF0ZUZvcm1hdCIsImV4cG9ydHMiLCJ1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IiwidXNlVGltZUluRm9ybWF0IiwiX3JlZiIsInRpbWUiLCJ0aW1lX3pvbmUiLCJtb21lbnQiLCJ1bml4IiwidHoiLCJmb3JtYXQiLCJjYWxjdWxhdGVUaW1lRHVyYXRpb24iLCJfcmVmMiIsIl9yZWYyJHN0YXJ0X3RpbWUiLCJzdGFydF90aW1lIiwiZW5kX3RpbWUiLCJkdXJhdGlvbiIsImRpZmYiLCJkYXlzIiwiY29uY2F0IiwiaG91cnMiLCJtaW51dGVzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJkaXNwbGF5RHVyYXRpb24iLCJ0aW1lSW5NaW51dGVzIiwiTWF0aCIsImZsb29yIiwiaG91cnNEaXNwbGF5IiwibWludXRlc0Rpc3BsYXkiLCJkaXNwbGF5VGltZUluRm9ybWF0IiwiX3JlZjMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlVXNlclRpbWVab25lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcblxuY29uc3QgdXNlVXNlclNlbGVjdGVkRGF0ZVRpbWVGb3JtYXQgPSAoKSA9PiB7XG4gIGNvbnN0IHVzZXJJbmZvID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5wZXJtaXNzaW9ucy51c2VyX2luZm8pO1xuICByZXR1cm4gdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdDtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VVc2VyU2VsZWN0ZWREYXRlRm9ybWF0ID0gKCkgPT4ge1xuICBpZiAodXNlVXNlclNlbGVjdGVkRGF0ZVRpbWVGb3JtYXQoKSA9PT0gJ3VzJykge1xuICAgIHJldHVybiAnTU1NIERELCBZWVlZJztcbiAgfVxuXG4gIHJldHVybiAnREQvTU0vWVlZWSc7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCA9ICgpID0+IHtcbiAgaWYgKHVzZVVzZXJTZWxlY3RlZERhdGVUaW1lRm9ybWF0KCkgPT09ICd1cycpIHtcbiAgICByZXR1cm4gJ01NTSBERCwgWVlZWSBoaDptbSBBJztcbiAgfVxuXG4gIHJldHVybiAnREQvTU0vWVlZWSBISDptbSc7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVGltZUluRm9ybWF0ID0gKHtcbiAgdGltZSxcbiAgdGltZV96b25lLFxufToge1xuICB0aW1lOiBudW1iZXI7XG4gIHRpbWVfem9uZTogc3RyaW5nO1xufSkgPT4ge1xuICByZXR1cm4gbW9tZW50LnVuaXgodGltZSkudHoodGltZV96b25lKS5mb3JtYXQodXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVUaW1lRHVyYXRpb24gPSAoe1xuICBzdGFydF90aW1lID0gbW9tZW50KCkudW5peCgpLFxuICBlbmRfdGltZSxcbn0pID0+IHtcbiAgY29uc3QgZHVyYXRpb24gPSBtb21lbnQuZHVyYXRpb24oXG4gICAgbW9tZW50LnVuaXgoZW5kX3RpbWUpLmRpZmYobW9tZW50LnVuaXgoc3RhcnRfdGltZSkpLFxuICApO1xuICBjb25zdCBkYXlzID0gZHVyYXRpb24uZGF5cygpID8gYCR7ZHVyYXRpb24uZGF5cygpfWRgIDogJyc7XG4gIGNvbnN0IGhvdXJzID0gZHVyYXRpb24uaG91cnMoKSA/IGAke2R1cmF0aW9uLmhvdXJzKCl9aGAgOiAnJztcbiAgY29uc3QgbWludXRlcyA9XG4gICAgZHVyYXRpb24ubWludXRlcygpIHx8ICghZGF5cyAmJiAhaG91cnMpID8gYCR7ZHVyYXRpb24ubWludXRlcygpfW1gIDogJyc7XG5cbiAgcmV0dXJuIFtkYXlzLCBob3VycywgbWludXRlc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5RHVyYXRpb24gPSAodGltZUluTWludXRlczogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcih0aW1lSW5NaW51dGVzIC8gNjApO1xuICBjb25zdCBtaW51dGVzID0gdGltZUluTWludXRlcyAlIDYwO1xuICBjb25zdCBob3Vyc0Rpc3BsYXkgPSBob3VycyA+IDAgPyBgJHtob3Vyc31oYCA6ICcnO1xuICBjb25zdCBtaW51dGVzRGlzcGxheSA9IG1pbnV0ZXMgPiAwIHx8ICFob3Vyc0Rpc3BsYXkgPyBgJHttaW51dGVzfW1gIDogJyc7XG4gIHJldHVybiBbaG91cnNEaXNwbGF5LCBtaW51dGVzRGlzcGxheV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5VGltZUluRm9ybWF0ID0gKHsgdGltZSwgdGltZV96b25lLCBmb3JtYXQgfSkgPT4ge1xuICByZXR1cm4gbW9tZW50LnVuaXgodGltZSkudHoodGltZV96b25lKS5mb3JtYXQoZm9ybWF0KTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFNRyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQTZCQSxDQUFBLEVBQVM7RUFDMUMsSUFBTUMsUUFBUSxHQUFHLElBQUFDLHVCQUFXLEVBQUMsVUFBQ0MsS0FBSztJQUFBLE9BQUtBLEtBQUssQ0FBQ0MsV0FBVyxDQUFDQyxTQUFTO0VBQUEsRUFBQztFQUNwRSxPQUFPSixRQUFRLENBQUNLLGdCQUFnQjtBQUNsQyxD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
@@ -33,5 +33,19 @@ describe('useUserTimeZone unit tests', function () {
33
33
  var pm_time = (0, _moment.default)(new Date('Dec 12, 2022 11:11 pm').getTime()).format((0, _useUserTimeZone.useUserSelectedTimeFormat)());
34
34
  expect(pm_time).toEqual('12/12/2022 23:11');
35
35
  });
36
+ describe('displayDuration', function () {
37
+ test('only hours', function () {
38
+ expect((0, _useUserTimeZone.displayDuration)(60)).toEqual('1h');
39
+ });
40
+ test('only minutes', function () {
41
+ expect((0, _useUserTimeZone.displayDuration)(40)).toEqual('40m');
42
+ });
43
+ test('0 minutes', function () {
44
+ expect((0, _useUserTimeZone.displayDuration)(0)).toEqual('0m');
45
+ });
46
+ test('hours and minutes', function () {
47
+ expect((0, _useUserTimeZone.displayDuration)(140)).toEqual('2h 20m');
48
+ });
49
+ });
36
50
  });
37
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3VzZVVzZXJUaW1lWm9uZSIsIl9tb21lbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVhY3RSZWR1eCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJqZXN0IiwibW9jayIsInVzZVNlbGVjdG9yIiwiZm4iLCJkZXNjcmliZSIsInVzZVNlbGVjdG9yTW9jayIsInNweU9uIiwidGVzdCIsIm1vY2tSZXR1cm5WYWx1ZSIsImRhdGVfdGltZV9mb3JtYXQiLCJhbV90aW1lIiwibW9tZW50IiwiRGF0ZSIsImdldFRpbWUiLCJmb3JtYXQiLCJ1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IiwiZXhwZWN0IiwidG9FcXVhbCIsInBtX3RpbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlVXNlclRpbWVab25lLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAdGVzdGluZy1saWJyYXJ5L2plc3QtZG9tL2V4dGVuZC1leHBlY3QnO1xuaW1wb3J0IHsgdXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCB9IGZyb20gJy4vdXNlVXNlclRpbWVab25lJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIHJlYWN0UmVkdXggZnJvbSAncmVhY3QtcmVkdXgnO1xuamVzdC5tb2NrKCdyZWFjdC1yZWR1eCcsICgpID0+ICh7XG4gIHVzZVNlbGVjdG9yOiBqZXN0LmZuKCksXG59KSk7XG5cbmRlc2NyaWJlKCd1c2VVc2VyVGltZVpvbmUgdW5pdCB0ZXN0cycsICgpID0+IHtcbiAgY29uc3QgdXNlU2VsZWN0b3JNb2NrID0gamVzdC5zcHlPbihyZWFjdFJlZHV4LCAndXNlU2VsZWN0b3InKTtcblxuICB0ZXN0KCd1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IHVzJywgKCkgPT4ge1xuICAgIHVzZVNlbGVjdG9yTW9jay5tb2NrUmV0dXJuVmFsdWUoeyBkYXRlX3RpbWVfZm9ybWF0OiAndXMnIH0pO1xuICAgIGNvbnN0IGFtX3RpbWUgPSBtb21lbnQobmV3IERhdGUoJzEyLzEyLzIwMjIgMTE6MTEnKS5nZXRUaW1lKCkpLmZvcm1hdChcbiAgICAgIHVzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQoKSxcbiAgICApO1xuICAgIGV4cGVjdChhbV90aW1lKS50b0VxdWFsKCdEZWMgMTIsIDIwMjIgMTE6MTEgQU0nKTtcbiAgICBjb25zdCBwbV90aW1lID0gbW9tZW50KG5ldyBEYXRlKCcxMi8xMi8yMDIyIDIzOjExJykuZ2V0VGltZSgpKS5mb3JtYXQoXG4gICAgICB1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0KCksXG4gICAgKTtcbiAgICBleHBlY3QocG1fdGltZSkudG9FcXVhbCgnRGVjIDEyLCAyMDIyIDExOjExIFBNJyk7XG4gIH0pO1xuICB0ZXN0KCd1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IGV1cm9wZScsICgpID0+IHtcbiAgICB1c2VTZWxlY3Rvck1vY2subW9ja1JldHVyblZhbHVlKHsgZGF0ZV90aW1lX2Zvcm1hdDogJ2V1JyB9KTtcbiAgICBjb25zdCBhbV90aW1lID0gbW9tZW50KG5ldyBEYXRlKCdEZWMgMTIsIDIwMjIsIDExOjExIGFtJykuZ2V0VGltZSgpKS5mb3JtYXQoXG4gICAgICB1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0KCksXG4gICAgKTtcbiAgICBleHBlY3QoYW1fdGltZSkudG9FcXVhbCgnMTIvMTIvMjAyMiAxMToxMScpO1xuICAgIGNvbnN0IHBtX3RpbWUgPSBtb21lbnQobmV3IERhdGUoJ0RlYyAxMiwgMjAyMiAxMToxMSBwbScpLmdldFRpbWUoKSkuZm9ybWF0KFxuICAgICAgdXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCgpLFxuICAgICk7XG4gICAgZXhwZWN0KHBtX3RpbWUpLnRvRXF1YWwoJzEyLzEyLzIwMjIgMjM6MTEnKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBQSxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUEwQyxTQUFBTSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUYsd0JBQUFNLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFB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
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3VzZVVzZXJUaW1lWm9uZSIsIl9tb21lbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVhY3RSZWR1eCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJqZXN0IiwibW9jayIsInVzZVNlbGVjdG9yIiwiZm4iLCJkZXNjcmliZSIsInVzZVNlbGVjdG9yTW9jayIsInNweU9uIiwidGVzdCIsIm1vY2tSZXR1cm5WYWx1ZSIsImRhdGVfdGltZV9mb3JtYXQiLCJhbV90aW1lIiwibW9tZW50IiwiRGF0ZSIsImdldFRpbWUiLCJmb3JtYXQiLCJ1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IiwiZXhwZWN0IiwidG9FcXVhbCIsInBtX3RpbWUiLCJkaXNwbGF5RHVyYXRpb24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlVXNlclRpbWVab25lLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAdGVzdGluZy1saWJyYXJ5L2plc3QtZG9tL2V4dGVuZC1leHBlY3QnO1xuaW1wb3J0IHsgZGlzcGxheUR1cmF0aW9uLCB1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0IH0gZnJvbSAnLi91c2VVc2VyVGltZVpvbmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICogYXMgcmVhY3RSZWR1eCBmcm9tICdyZWFjdC1yZWR1eCc7XG5qZXN0Lm1vY2soJ3JlYWN0LXJlZHV4JywgKCkgPT4gKHtcbiAgdXNlU2VsZWN0b3I6IGplc3QuZm4oKSxcbn0pKTtcblxuZGVzY3JpYmUoJ3VzZVVzZXJUaW1lWm9uZSB1bml0IHRlc3RzJywgKCkgPT4ge1xuICBjb25zdCB1c2VTZWxlY3Rvck1vY2sgPSBqZXN0LnNweU9uKHJlYWN0UmVkdXgsICd1c2VTZWxlY3RvcicpO1xuXG4gIHRlc3QoJ3VzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQgdXMnLCAoKSA9PiB7XG4gICAgdXNlU2VsZWN0b3JNb2NrLm1vY2tSZXR1cm5WYWx1ZSh7IGRhdGVfdGltZV9mb3JtYXQ6ICd1cycgfSk7XG4gICAgY29uc3QgYW1fdGltZSA9IG1vbWVudChuZXcgRGF0ZSgnMTIvMTIvMjAyMiAxMToxMScpLmdldFRpbWUoKSkuZm9ybWF0KFxuICAgICAgdXNlVXNlclNlbGVjdGVkVGltZUZvcm1hdCgpLFxuICAgICk7XG4gICAgZXhwZWN0KGFtX3RpbWUpLnRvRXF1YWwoJ0RlYyAxMiwgMjAyMiAxMToxMSBBTScpO1xuICAgIGNvbnN0IHBtX3RpbWUgPSBtb21lbnQobmV3IERhdGUoJzEyLzEyLzIwMjIgMjM6MTEnKS5nZXRUaW1lKCkpLmZvcm1hdChcbiAgICAgIHVzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQoKSxcbiAgICApO1xuICAgIGV4cGVjdChwbV90aW1lKS50b0VxdWFsKCdEZWMgMTIsIDIwMjIgMTE6MTEgUE0nKTtcbiAgfSk7XG4gIHRlc3QoJ3VzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQgZXVyb3BlJywgKCkgPT4ge1xuICAgIHVzZVNlbGVjdG9yTW9jay5tb2NrUmV0dXJuVmFsdWUoeyBkYXRlX3RpbWVfZm9ybWF0OiAnZXUnIH0pO1xuICAgIGNvbnN0IGFtX3RpbWUgPSBtb21lbnQobmV3IERhdGUoJ0RlYyAxMiwgMjAyMiwgMTE6MTEgYW0nKS5nZXRUaW1lKCkpLmZvcm1hdChcbiAgICAgIHVzZVVzZXJTZWxlY3RlZFRpbWVGb3JtYXQoKSxcbiAgICApO1xuICAgIGV4cGVjdChhbV90aW1lKS50b0VxdWFsKCcxMi8xMi8yMDIyIDExOjExJyk7XG4gICAgY29uc3QgcG1fdGltZSA9IG1vbWVudChuZXcgRGF0ZSgnRGVjIDEyLCAyMDIyIDExOjExIHBtJykuZ2V0VGltZSgpKS5mb3JtYXQoXG4gICAgICB1c2VVc2VyU2VsZWN0ZWRUaW1lRm9ybWF0KCksXG4gICAgKTtcbiAgICBleHBlY3QocG1fdGltZSkudG9FcXVhbCgnMTIvMTIvMjAyMiAyMzoxMScpO1xuICB9KTtcblxuICBkZXNjcmliZSgnZGlzcGxheUR1cmF0aW9uJywgKCkgPT4ge1xuICAgIHRlc3QoJ29ubHkgaG91cnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZGlzcGxheUR1cmF0aW9uKDYwKSkudG9FcXVhbCgnMWgnKTtcbiAgICB9KTtcbiAgICB0ZXN0KCdvbmx5IG1pbnV0ZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZGlzcGxheUR1cmF0aW9uKDQwKSkudG9FcXVhbCgnNDBtJyk7XG4gICAgfSk7XG4gICAgdGVzdCgnMCBtaW51dGVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGRpc3BsYXlEdXJhdGlvbigwKSkudG9FcXVhbCgnMG0nKTtcbiAgICB9KTtcbiAgICB0ZXN0KCdob3VycyBhbmQgbWludXRlcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChkaXNwbGF5RHVyYXRpb24oMTQwKSkudG9FcXVhbCgnMmggMjBtJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBMEMsU0FBQU0seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxP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
package/lib/i18n/en.json CHANGED
@@ -96,6 +96,7 @@
96
96
  }
97
97
  },
98
98
  "copy": {
99
+ "action": "Copy link",
99
100
  "success": "Copied!",
100
101
  "failed": "Copy failed"
101
102
  },
@@ -138,7 +139,33 @@
138
139
  "assets": "Assets",
139
140
  "firmware_versions": "Firmware Versions",
140
141
  "fota_requests": "Firmware Update",
141
- "schedulers": "Samplers Sleep"
142
+ "schedulers": "Samplers Sleep",
143
+ "firmware_versions_dl": "Datalogger Firmware Versions",
144
+ "firmware_versions_aeye": "Aeye Firmware Versions",
145
+ "fota_requests_dls": "Datalogger Firmware Update",
146
+ "fota_requests_aeyes": "Aeye Firmware Update",
147
+ "fota_requests_header_dl": "Listing Dataloggers FOTA Requests",
148
+ "fota_requests_header_aeye": "Listing Aeye FOTA Requests"
149
+ },
150
+ "edit": {
151
+ "fota_requests_dl": "Editing Datalogger Fota Request",
152
+ "firmware_versions_dl": "Editing Datalogger Firmware Version",
153
+ "fota_requests_aeye": "Editing Aeye Fota Request",
154
+ "firmware_versions_aeye": "Editing Aeye Firmware Version"
155
+ },
156
+ "new": {
157
+ "fota_requests_dl": "New Datalogger Fota request",
158
+ "fota_requests_aeye": "New Aeye Fota request",
159
+ "firmware_versions_dl": "New Datalogger Firmware Version",
160
+ "firmware_versions_aeye": "New Aeye Firmware Version",
161
+ "create_fota_request_dl": "Save Datalogger Fota Request",
162
+ "create_fota_request_aeye": "Save Aeye Fota Request",
163
+ "create_firmware_version_dl": "Save Datalogger Firmware Version",
164
+ "create_firmware_version_aeye": "Save Aeye Firmware Version"
165
+ },
166
+ "reports": {
167
+ "fota_requests_aeye": "Aeye Fota Status Report",
168
+ "fota_requests_dl": "Datalogger Fota Status Report"
142
169
  },
143
170
  "update_client": "Client"
144
171
  },
@@ -1116,7 +1143,9 @@
1116
1143
  "users_report": "Users Report",
1117
1144
  "health_check_report": "Health Check Report",
1118
1145
  "composite_sampling_report": "Composite Sampling Report",
1119
- "sites_report": "Sites Report"
1146
+ "sites_report": "Sites Report",
1147
+ "fota_report_dl": " Dataloggers FOTA Status Report",
1148
+ "fota_report_aeye": "Aeye FOTA Status Report"
1120
1149
  },
1121
1150
  "columns": {
1122
1151
  "client_name": "Client Name",
@@ -3064,6 +3093,29 @@
3064
3093
  }
3065
3094
  }
3066
3095
  },
3096
+ "event_info": {
3097
+ "timelines": "Timelines",
3098
+ "severity_score": "Event Score",
3099
+ "sampling": "Sampling",
3100
+ "sampling_plural": "Samplings ({{count}})",
3101
+ "static_thresholds_crossed_explanation": "Exceeding expected pollution for this sector",
3102
+ "dynamic_thresholds_crossed_explanation": "Worse than usual for this site ({{score}})",
3103
+ "event_sources": "Event Sources",
3104
+ "potential_source_confidence": "{{percentage}}% Confident",
3105
+ "discharging": "Discharging",
3106
+ "water_consumption": "Water Discharge",
3107
+ "eta_to": "In {{eta}}",
3108
+ "eta_to_name": "ETA to {{eta}}",
3109
+ "could_not_detect": "Could not detect source",
3110
+ "area_name": "Area: {{name}}",
3111
+ "score_tooltip": "The severity of an event depends on several contributing factors.\n1. Static thresholds – driven by PI.\n2. Values deviation from historical statistics.\n3. The distance between the minimum and maximum values of the signals.\n4. The behavior of the signal.\n\n",
3112
+ "source_types": {
3113
+ "source": "Source",
3114
+ "potential_sources": "Potential Sources",
3115
+ "potential_sources_plural": "Potential Sources ({{count}})",
3116
+ "unknown_sources": "Source"
3117
+ }
3118
+ },
3067
3119
  "discharge": {
3068
3120
  "discharge": "Discharge",
3069
3121
  "pattern_overtime": "Pattern Over Time"
package/lib/i18n/he.json CHANGED
@@ -87,6 +87,7 @@
87
87
  }
88
88
  },
89
89
  "copy": {
90
+ "action": "העתק",
90
91
  "success": "הועתק",
91
92
  "failed": "העתקה נכשלה"
92
93
  },
@@ -2948,8 +2949,8 @@
2948
2949
  "discharge_pattern_overtime": "דפוסי זיהום לאורך זמן (30 ימים אחרונים)",
2949
2950
  "discharge_pattern": "דפוסי זיהום",
2950
2951
  "metascore": "מגמה (שנה אחרונה)",
2951
- "discharging": "בפריקה",
2952
- "discharge_time": "זמן הפריקה",
2952
+ "discharging": "מזרים",
2953
+ "discharge_time": "זמן הזרמה",
2953
2954
  "discharge_start_time": "תחילת הפריקה",
2954
2955
  "more_info": "עוד פרטים",
2955
2956
  "confidence": "רמת ודאות",
@@ -3020,6 +3021,28 @@
3020
3021
  }
3021
3022
  }
3022
3023
  },
3024
+ "event_info": {
3025
+ "timelines": "זמנים",
3026
+ "severity_score": "מדד אירוע",
3027
+ "sampling": "דיגום",
3028
+ "sampling_plural": "דיגומים ({{count}})",
3029
+ "static_thresholds_crossed_explanation": "חורג מהמקובל לסקטור זה ",
3030
+ "dynamic_thresholds_crossed_explanation": " חורג מהרגיל לאתר זה ({{score}})",
3031
+ "event_sources": "מקורות אירוע",
3032
+ "potential_source_confidence": "{{percentage}}% ודאות",
3033
+ "discharging": "מזרים",
3034
+ "water_consumption": "שפכים",
3035
+ "eta_to": "בעוד: {{eta}}",
3036
+ "eta_to_name": "זמן הגעה משוער ל{{eta}}",
3037
+ "could_not_detect": "לא ניתן להצביע על המקור",
3038
+ "area_name": "איזור: {{name}}",
3039
+ "source_types": {
3040
+ "source": "מקור",
3041
+ "potential_sources": "מקורות חשודים",
3042
+ "potential_sources_plural": "({{count}}) מקורות חשודים",
3043
+ "unknown_sources": "מקור"
3044
+ }
3045
+ },
3023
3046
  "discharge": {
3024
3047
  "discharge": "זיהום",
3025
3048
  "pattern_overtime": "דפוסי זיהום לאורך זמן"
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.268";
3
+ var packageJsonVersion = "1.2.270";
4
4
  if (typeof packageJsonVersion === 'string') {
5
5
  // eslint-disable-next-line no-console
6
6
  console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
@@ -80,7 +80,9 @@ var EarlyWarnings = function EarlyWarnings(props) {
80
80
  if (!observation.arrivedButNotObserved) {
81
81
  return /*#__PURE__*/_react.default.createElement("li", {
82
82
  key: observation.earlyWarning.target_point_id
83
- }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("b", null, ' ', _i18n.default.t('events_overview.eta'), ' ', getPointName(observation.earlyWarning.target_point_id), ":", ' ')), /*#__PURE__*/_react.default.createElement("div", {
83
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("b", null, _i18n.default.t('events_info.eta_to_name', {
84
+ eta: getPointName(observation.earlyWarning.target_point_id)
85
+ }))), /*#__PURE__*/_react.default.createElement("div", {
84
86
  className: 'early-warning-info'
85
87
  }, _momentTimezone.default.unix(ETAToTarget(observation.observation, observation.earlyWarning)).format('h:mm a'), global_data.current_time !== 0 && /*#__PURE__*/_react.default.createElement("span", {
86
88
  className: 'danger'
@@ -123,4 +125,4 @@ var EarlyWarnings = function EarlyWarnings(props) {
123
125
  var connector = (0, _reactRedux.connect)(mapStateToProps);
124
126
  var _default = connector(EarlyWarnings);
125
127
  exports.default = _default;
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9tb21lbnRUaW1lem9uZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9UaW1lRm9ybWF0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsInBvaW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJFYXJseVdhcm5pbmdzIiwicHJvcHMiLCJldmVudCIsImdldFBvaW50TmFtZSIsInBvaW50X2lkIiwiX3BvaW50c19kYXRhJGl0ZW1zJGZpIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsImlkIiwibmFtZSIsIkVUQVRvVGFyZ2V0Iiwib2JzZXJ2YXRpb24iLCJlYXJseV93YXJuaW5nIiwic3RhcnRfdGltZSIsImRpc3RhbmNlIiwiY291bnREb3duVG9UYXJnZXQiLCJjdXJyZW50X3RpbWUiLCJnZXRFYXJseVdhcm5pbmdzIiwib2JzZXJ2YXRpb25zIiwib2JzIiwiZm9yRWFjaCIsImVhcmx5X3dhcm5pbmdzIiwiZXhpc3RpbmdFYXJseVdhcm5pbmciLCJmaW5kIiwiZWFybHlXYXJuaW5nIiwidGFyZ2V0X3BvaW50X2lkIiwidW5kZWZpbmVkIiwic3BsaWNlIiwiaW5kZXhPZiIsImFycml2ZWRCdXROb3RPYnNlcnZlZCIsImFycml2ZWQiLCJlbmRfdGltZSIsInB1c2giLCJyZW5kZXJFYXJseVdhcm5pbmdzIiwiY3JlYXRlRWxlbWVudCIsImkxOG4iLCJ0IiwiY2xhc3NOYW1lIiwibW9tZW50IiwidW5peCIsImZvcm1hdCIsImR1cmF0aW9uIiwiaHVtYW5pemUiLCJ0aW1lc3RhbXAiLCJ0aW1lX3pvbmUiLCJ1c2VFZmZlY3QiLCJGcmFnbWVudCIsIm1hcCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRfaW5mby9FYXJseVdhcm5pbmdzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgcG9pbnRzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRWFybHlXYXJuaW5nczogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGV2ZW50LCBwb2ludHNfZGF0YSwgZ2xvYmFsX2RhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGdldFBvaW50TmFtZSA9IChwb2ludF9pZDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmZpbHRlcigocG9pbnQpID0+IHBvaW50LmlkID09PSBwb2ludF9pZClbMF0/Lm5hbWUgfHxcbiAgICAgICdObyBOYW1lJ1xuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRVRBVG9UYXJnZXQgPSAob2JzZXJ2YXRpb246IGFueSwgZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgcmV0dXJuIG9ic2VydmF0aW9uLnN0YXJ0X3RpbWUgKyBlYXJseV93YXJuaW5nLmRpc3RhbmNlICogNjA7XG4gIH07XG5cbiAgY29uc3QgY291bnREb3duVG9UYXJnZXQgPSAoZWFybHlfd2FybmluZzogYW55LCBvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVhcmx5X3dhcm5pbmcuZGlzdGFuY2UgKiA2MCAtXG4gICAgICAoZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIC0gb2JzZXJ2YXRpb24uc3RhcnRfdGltZSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGdldEVhcmx5V2FybmluZ3MgPSAoKSA9PiB7XG4gICAgbGV0IG9ic2VydmF0aW9uczogYW55W10gPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9icykgPT4gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lID4gb2JzLnN0YXJ0X3RpbWUpXG4gICAgICAuZm9yRWFjaCgob2JzZXJ2YXRpb24pID0+IHtcbiAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlfd2FybmluZ3MuZm9yRWFjaCgoZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IGV4aXN0aW5nRWFybHlXYXJuaW5nID0gb2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgICAob2JzKSA9PlxuICAgICAgICAgICAgICBvYnMuZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCA9PT1cbiAgICAgICAgICAgICAgZWFybHlfd2FybmluZy50YXJnZXRfcG9pbnRfaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdFYXJseVdhcm5pbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gQ2hlY2tzIGlmIG9ic2VydmF0aW9uIGV4aXN0cyB3aXRoIHNhbWUgdGFyZ2V0XG5cbiAgICAgICAgICAgIG9ic2VydmF0aW9ucy5zcGxpY2Uob2JzZXJ2YXRpb25zLmluZGV4T2YoZXhpc3RpbmdFYXJseVdhcm5pbmcpLCAxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgYXJyaXZlZEJ1dE5vdE9ic2VydmVkLCBhcnJpdmVkO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBFdmVudCBoYXZlIG5vdCByZWFjaGVkIHRoZSB0YXJnZXQgeWV0XG4gICAgICAgICAgICBhcnJpdmVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmVuZF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpKSB7XG4gICAgICAgICAgICAvLyBFVEEgcmVhY2hlZCBhZnRlciBldmVudCBlbmRlZFxuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGFycml2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRXZlbnQgcmVhY2hlZCB0byB0YXJnZXRcbiAgICAgICAgICAgIGFycml2ZWRCdXROb3RPYnNlcnZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyaXZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2JzZXJ2YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkOiBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQsXG4gICAgICAgICAgICBhcnJpdmVkOiBhcnJpdmVkLFxuICAgICAgICAgICAgZWFybHlXYXJuaW5nOiBlYXJseV93YXJuaW5nLFxuICAgICAgICAgICAgb2JzZXJ2YXRpb246IG9ic2VydmF0aW9uLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9ic2VydmF0aW9ucztcbiAgfTtcblxuICBjb25zdCByZW5kZXJFYXJseVdhcm5pbmdzID0gKG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAoIW9ic2VydmF0aW9uLmFycml2ZWQpIHtcbiAgICAgIGlmICghb2JzZXJ2YXRpb24uYXJyaXZlZEJ1dE5vdE9ic2VydmVkKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGxpIGtleT17b2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZH0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldGEnKX17JyAnfVxuICAgICAgICAgICAgICAgIHtnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCl9OnsnICd9XG4gICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgICAge21vbWVudFxuICAgICAgICAgICAgICAgIC51bml4KFxuICAgICAgICAgICAgICAgICAgRVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLm9ic2VydmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZm9ybWF0KCdoOm1tIGEnKX1cbiAgICAgICAgICAgICAge2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSAhPT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZGFuZ2VyJ30+XG4gICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgKHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy53aXRoaW4nKX17JyAnfVxuICAgICAgICAgICAgICAgICAge21vbWVudFxuICAgICAgICAgICAgICAgICAgICAuZHVyYXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgY291bnREb3duVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRzJyxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuaHVtYW5pemUoKX1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5oaWdoX2NoYW5jZXNfb2ZfcmVhY2hpbmcnKX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGxpIGtleT17b2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZH0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXhwZWN0ZWRfdG9fYXJyaXZlX2J1dF9ub3Rfb2JzZXJ2ZWQnKX17JyAnfVxuICAgICAgICAgICAgICAgIHtnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCl9XG4gICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgICAge2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSAhPT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZGFuZ2VyJ30+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYXQnKX17JyAnfVxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17RVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLmVhcmx5V2FybmluZyxcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24udGltZV96b25lfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxsaSBrZXk9e29ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWR9PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnBvbGx1dGlvbl9oYXNfcmVhY2hlZCcpfXsnICd9XG4gICAgICAgICAgICAgIHtnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCl9XG4gICAgICAgICAgICA8L2I+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYXQnKX17JyAnfVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17RVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLm9ic2VydmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgdGltZV96b25lPXtvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbi50aW1lX3pvbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHt9LCBbZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lXSk7XG5cbiAgbGV0IG9ic2VydmF0aW9ucyA9IGdldEVhcmx5V2FybmluZ3MoKTtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8dWwgY2xhc3NOYW1lPXsnZWFybHlfd2FybmluZ3MnfT5cbiAgICAgICAge29ic2VydmF0aW9ucyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgb2JzZXJ2YXRpb25zLm1hcCgob2JzZXJ2YXRpb24pID0+IHJlbmRlckVhcmx5V2FybmluZ3Mob2JzZXJ2YXRpb24pKX1cbiAgICAgIDwvdWw+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFYXJseVdhcm5pbmdzKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFBa0QsU0FBQU0seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFSLHdCQUFBWSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBRWxELFNBQVNXLGVBQWVBLENBQUNDLEtBQWdCLEVBQUU7RUFDekMsSUFBUUMsV0FBVyxHQUFrQkQsS0FBSyxDQUFsQ0MsV0FBVztJQUFFQyxXQUFXLEdBQUtGLEtBQUssQ0FBckJFLFdBQVc7RUFFaEMsT0FBTztJQUNMRCxXQUFXLEVBQVhBLFdBQVc7SUFDWEMsV0FBVyxFQUFYQTtFQUNGLENBQUM7QUFDSDtBQU1BLElBQU1DLGFBQStCLEdBQUcsU0FBbENBLGFBQStCQSxDQUFJQyxLQUFLLEVBQUs7RUFDakQsSUFBUUMsS0FBSyxHQUErQkQsS0FBSyxDQUF6Q0MsS0FBSztJQUFFSixXQUFXLEdBQWtCRyxLQUFLLENBQWxDSCxXQUFXO0lBQUVDLFdBQVcsR0FBS0UsS0FBSyxDQUFyQkYsV0FBVztFQUV2QyxJQUFNSSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUMsUUFBZ0IsRUFBSztJQUFBLElBQUFDLHFCQUFBO0lBQ3pDLE9BQ0UsRUFBQUEscUJBQUEsR0FBQVAsV0FBVyxDQUFDUSxLQUFLLENBQUNDLE1BQU0sQ0FBQyxVQUFDQyxLQUFLO01BQUEsT0FBS0EsS0FBSyxDQUFDQyxFQUFFLEtBQUtMLFFBQVE7SUFBQSxFQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUFDLHFCQUFBLHVCQUE3REEscUJBQUEsQ0FBK0RLLElBQUksS0FDbkUsU0FBUztFQUViLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsV0FBZ0IsRUFBRUMsYUFBa0IsRUFBSztJQUM1RCxPQUFPRCxXQUFXLENBQUNFLFVBQVUsR0FBR0QsYUFBYSxDQUFDRSxRQUFRLEdBQUcsRUFBRTtFQUM3RCxDQUFDO0VBRUQsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUgsYUFBa0IsRUFBRUQsV0FBZ0IsRUFBSztJQUNsRSxPQUNFQyxhQUFhLENBQUNFLFFBQVEsR0FBRyxFQUFFLElBQzFCaEIsV0FBVyxDQUFDa0IsWUFBWSxHQUFHTCxXQUFXLENBQUNFLFVBQVUsQ0FBQztFQUV2RCxDQUFDO0VBRUQsSUFBTUksZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQSxFQUFTO0lBQzdCLElBQUlDLFlBQW1CLEdBQUcsRUFBRTtJQUM1QmpCLEtBQUssQ0FBQ2lCLFlBQVksQ0FDZlosTUFBTSxDQUFDLFVBQUNhLEdBQUc7TUFBQSxPQUFLckIsV0FBVyxDQUFDa0IsWUFBWSxHQUFHRyxHQUFHLENBQUNOLFVBQVU7SUFBQSxFQUFDLENBQzFETyxPQUFPLENBQUMsVUFBQ1QsV0FBVyxFQUFLO01BQ3hCQSxXQUFXLENBQUNVLGNBQWMsQ0FBQ0QsT0FBTyxDQUFDLFVBQUNSLGFBQWtCLEVBQUs7UUFDekQsSUFBSVUsb0JBQW9CLEdBQUdKLFlBQVksQ0FBQ0ssSUFBSSxDQUMxQyxVQUFDSixHQUFHO1VBQUEsT0FDRkEsR0FBRyxDQUFDSyxZQUFZLENBQUNDLGVBQWUsS0FDaENiLGFBQWEsQ0FBQ2EsZUFBZTtRQUFBLENBQ2pDLENBQUM7UUFDRCxJQUFJSCxvQkFBb0IsS0FBS0ksU0FBUyxFQUFFO1VBQ3RDOztVQUVBUixZQUFZLENBQUNTLE1BQU0sQ0FBQ1QsWUFBWSxDQUFDVSxPQUFPLENBQUNOLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFO1FBRUEsSUFBSU8scUJBQXFCLEVBQUVDLE9BQU87UUFFbEMsSUFDRWhDLFdBQVcsQ0FBQ2tCLFlBQVksR0FBR04sV0FBVyxDQUFDQyxXQUFXLEVBQUVDLGFBQWEsQ0FBQyxFQUNsRTtVQUNBO1VBQ0FrQixPQUFPLEdBQUcsS0FBSztVQUNmRCxxQkFBcUIsR0FBRyxLQUFLO1FBQy9CLENBQUMsTUFBTSxJQUFJNUIsS0FBSyxDQUFDOEIsUUFBUSxHQUFHckIsV0FBVyxDQUFDQyxXQUFXLEVBQUVDLGFBQWEsQ0FBQyxFQUFFO1VBQ25FO1VBQ0FpQixxQkFBcUIsR0FBRyxJQUFJO1VBQzVCQyxPQUFPLEdBQUcsS0FBSztRQUNqQixDQUFDLE1BQU07VUFDTDtVQUNBRCxxQkFBcUIsR0FBRyxLQUFLO1VBQzdCQyxPQUFPLEdBQUcsSUFBSTtRQUNoQjtRQUVBWixZQUFZLENBQUNjLElBQUksQ0FBQztVQUNoQkgscUJBQXFCLEVBQUVBLHFCQUFxQjtVQUM1Q0MsT0FBTyxFQUFFQSxPQUFPO1VBQ2hCTixZQUFZLEVBQUVaLGFBQWE7VUFDM0JELFdBQVcsRUFBRUE7UUFDZixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFSixPQUFPTyxZQUFZO0VBQ3JCLENBQUM7RUFFRCxJQUFNZSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJdEIsV0FBZ0IsRUFBSztJQUNoRCxJQUFJLENBQUNBLFdBQVcsQ0FBQ21CLE9BQU8sRUFBRTtNQUN4QixJQUFJLENBQUNuQixXQUFXLENBQUNrQixxQkFBcUIsRUFBRTtRQUN0QyxvQkFDRWpFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUE7VUFBSTdDLEdBQUcsRUFBRXNCLFdBQVcsQ0FBQ2EsWUFBWSxDQUFDQztRQUFnQixnQkFDaEQ3RCxNQUFBLENBQUFnQixPQUFBLENBQUFzRCxhQUFBLDJCQUNFdEUsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQSxZQUNHLEdBQUcsRUFDSEMsYUFBSSxDQUFDQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHLEVBQ2xDbEMsWUFBWSxDQUFDUyxXQUFXLENBQUNhLFlBQVksQ0FBQ0MsZUFBZSxDQUFDLEVBQUMsR0FBQyxFQUFDLEdBQ3pELENBQ0EsQ0FBQyxlQUNON0QsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQTtVQUFLRyxTQUFTLEVBQUU7UUFBcUIsR0FDbENDLHVCQUFNLENBQ0pDLElBQUksQ0FDSDdCLFdBQVcsQ0FDVEMsV0FBVyxDQUFDQSxXQUFXLEVBQ3ZCQSxXQUFXLENBQUNhLFlBQ2QsQ0FDRixDQUFDLENBQ0FnQixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQ2xCMUMsV0FBVyxDQUFDa0IsWUFBWSxLQUFLLENBQUMsaUJBQzdCcEQsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQTtVQUFNRyxTQUFTLEVBQUU7UUFBUyxHQUN2QixHQUFHLEVBQUMsR0FDSixFQUFDRixhQUFJLENBQUNDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEdBQUcsRUFDdENFLHVCQUFNLENBQ0pHLFFBQVEsQ0FDUDFCLGlCQUFpQixDQUNmSixXQUFXLENBQUNhLFlBQVksRUFDeEJiLFdBQVcsQ0FBQ0EsV0FDZCxDQUFDLEVBQ0QsU0FDRixDQUFDLENBQ0ErQixRQUFRLENBQUMsQ0FBQyxFQUFDLEdBRVYsQ0FDUCxlQUNEOUUsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQTtVQUFHRyxTQUFTLEVBQUU7UUFBUyxHQUNwQkYsYUFBSSxDQUFDQyxDQUFDLENBQUMsMENBQTBDLENBQ2pELENBQ0EsQ0FDSCxDQUFDO01BRVQsQ0FBQyxNQUFNO1FBQ0wsb0JBQ0V4RSxNQUFBLENBQUFnQixPQUFBLENBQUFzRCxhQUFBO1VBQUk3QyxHQUFHLEVBQUVzQixXQUFXLENBQUNhLFlBQVksQ0FBQ0M7UUFBZ0IsZ0JBQ2hEN0QsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQSwyQkFDRXRFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUEsWUFDR0MsYUFBSSxDQUFDQyxDQUFDLENBQUMscURBQXFELENBQUMsRUFBRSxHQUFHLEVBQ2xFbEMsWUFBWSxDQUFDUyxXQUFXLENBQUNhLFlBQVksQ0FBQ0MsZUFBZSxDQUNyRCxDQUNBLENBQUMsZUFDTjdELE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUE7VUFBS0csU0FBUyxFQUFFO1FBQXFCLEdBQ2xDdkMsV0FBVyxDQUFDa0IsWUFBWSxLQUFLLENBQUMsaUJBQzdCcEQsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQTtVQUFNRyxTQUFTLEVBQUU7UUFBUyxHQUN2QkYsYUFBSSxDQUFDQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHLGVBRWhDeEUsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQSxDQUFDL0QsV0FBQSxDQUFBUyxPQUFVO1VBQ1QrRCxTQUFTLEVBQUVqQyxXQUFXLENBQ3BCQyxXQUFXLENBQUNBLFdBQVcsRUFDdkJBLFdBQVcsQ0FBQ2EsWUFDZCxDQUFFO1VBQ0ZvQixTQUFTLEVBQUVqQyxXQUFXLENBQUNBLFdBQVcsQ0FBQ2lDO1FBQVUsQ0FDOUMsQ0FFQyxDQUVMLENBQ0gsQ0FBQztNQUVUO0lBQ0YsQ0FBQyxNQUFNO01BQ0wsb0JBQ0VoRixNQUFBLENBQUFnQixPQUFBLENBQUFzRCxhQUFBO1FBQUk3QyxHQUFHLEVBQUVzQixXQUFXLENBQUNhLFlBQVksQ0FBQ0M7TUFBZ0IsZ0JBQ2hEN0QsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBc0QsYUFBQSwyQkFDRXRFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUEsWUFDR0MsYUFBSSxDQUFDQyxDQUFDLENBQUMsdUNBQXVDLENBQUMsRUFBRSxHQUFHLEVBQ3BEbEMsWUFBWSxDQUFDUyxXQUFXLENBQUNhLFlBQVksQ0FBQ0MsZUFBZSxDQUNyRCxDQUNBLENBQUMsZUFDTjdELE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUE7UUFBS0csU0FBUyxFQUFFO01BQXFCLGdCQUNuQ3pFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUE7UUFBTUcsU0FBUyxFQUFFO01BQVMsR0FDdkJGLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsR0FBRyxlQUVoQ3hFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUEsQ0FBQy9ELFdBQUEsQ0FBQVMsT0FBVTtRQUNUK0QsU0FBUyxFQUFFakMsV0FBVyxDQUNwQkMsV0FBVyxDQUFDQSxXQUFXLEVBQ3ZCQSxXQUFXLENBQUNhLFlBQ2QsQ0FBRTtRQUNGb0IsU0FBUyxFQUFFakMsV0FBVyxDQUFDQSxXQUFXLENBQUNpQztNQUFVLENBQzlDLENBRUMsQ0FDSCxDQUNILENBQUM7SUFFVDtFQUNGLENBQUM7RUFFRCxJQUFBQyxnQkFBUyxFQUFDLFlBQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQy9DLFdBQVcsQ0FBQ2tCLFlBQVksQ0FBQyxDQUFDO0VBRS9DLElBQUlFLFlBQVksR0FBR0QsZ0JBQWdCLENBQUMsQ0FBQztFQUNyQyxvQkFDRXJELE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXNELGFBQUEsQ0FBQ3RFLE1BQUEsQ0FBQWdCLE9BQUssQ0FBQ2tFLFFBQVEscUJBQ2JsRixNQUFBLENBQUFnQixPQUFBLENBQUFzRCxhQUFBO0lBQUlHLFNBQVMsRUFBRTtFQUFpQixHQUM3Qm5CLFlBQVksS0FBS1EsU0FBUyxJQUN6QlIsWUFBWSxDQUFDNkIsR0FBRyxDQUFDLFVBQUNwQyxXQUFXO0lBQUEsT0FBS3NCLG1CQUFtQixDQUFDdEIsV0FBVyxDQUFDO0VBQUEsRUFDbEUsQ0FDVSxDQUFDO0FBRXJCLENBQUM7QUFFRCxJQUFNcUMsU0FBUyxHQUFHLElBQUFDLG1CQUFPLEVBQUN0RCxlQUFlLENBQUM7QUFBQyxJQUFBdUQsUUFBQSxHQUM1QkYsU0FBUyxDQUFDakQsYUFBYSxDQUFDO0FBQUFvRCxPQUFBLENBQUF2RSxPQUFBLEdBQUFzRSxRQUFBIn0=
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9tb21lbnRUaW1lem9uZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9UaW1lRm9ybWF0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsInBvaW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJFYXJseVdhcm5pbmdzIiwicHJvcHMiLCJldmVudCIsImdldFBvaW50TmFtZSIsInBvaW50X2lkIiwiX3BvaW50c19kYXRhJGl0ZW1zJGZpIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsImlkIiwibmFtZSIsIkVUQVRvVGFyZ2V0Iiwib2JzZXJ2YXRpb24iLCJlYXJseV93YXJuaW5nIiwic3RhcnRfdGltZSIsImRpc3RhbmNlIiwiY291bnREb3duVG9UYXJnZXQiLCJjdXJyZW50X3RpbWUiLCJnZXRFYXJseVdhcm5pbmdzIiwib2JzZXJ2YXRpb25zIiwib2JzIiwiZm9yRWFjaCIsImVhcmx5X3dhcm5pbmdzIiwiZXhpc3RpbmdFYXJseVdhcm5pbmciLCJmaW5kIiwiZWFybHlXYXJuaW5nIiwidGFyZ2V0X3BvaW50X2lkIiwidW5kZWZpbmVkIiwic3BsaWNlIiwiaW5kZXhPZiIsImFycml2ZWRCdXROb3RPYnNlcnZlZCIsImFycml2ZWQiLCJlbmRfdGltZSIsInB1c2giLCJyZW5kZXJFYXJseVdhcm5pbmdzIiwiY3JlYXRlRWxlbWVudCIsImkxOG4iLCJ0IiwiZXRhIiwiY2xhc3NOYW1lIiwibW9tZW50IiwidW5peCIsImZvcm1hdCIsImR1cmF0aW9uIiwiaHVtYW5pemUiLCJ0aW1lc3RhbXAiLCJ0aW1lX3pvbmUiLCJ1c2VFZmZlY3QiLCJGcmFnbWVudCIsIm1hcCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRfaW5mby9FYXJseVdhcm5pbmdzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgcG9pbnRzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRWFybHlXYXJuaW5nczogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGV2ZW50LCBwb2ludHNfZGF0YSwgZ2xvYmFsX2RhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGdldFBvaW50TmFtZSA9IChwb2ludF9pZDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmZpbHRlcigocG9pbnQpID0+IHBvaW50LmlkID09PSBwb2ludF9pZClbMF0/Lm5hbWUgfHxcbiAgICAgICdObyBOYW1lJ1xuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRVRBVG9UYXJnZXQgPSAob2JzZXJ2YXRpb246IGFueSwgZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgcmV0dXJuIG9ic2VydmF0aW9uLnN0YXJ0X3RpbWUgKyBlYXJseV93YXJuaW5nLmRpc3RhbmNlICogNjA7XG4gIH07XG5cbiAgY29uc3QgY291bnREb3duVG9UYXJnZXQgPSAoZWFybHlfd2FybmluZzogYW55LCBvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVhcmx5X3dhcm5pbmcuZGlzdGFuY2UgKiA2MCAtXG4gICAgICAoZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIC0gb2JzZXJ2YXRpb24uc3RhcnRfdGltZSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGdldEVhcmx5V2FybmluZ3MgPSAoKSA9PiB7XG4gICAgbGV0IG9ic2VydmF0aW9uczogYW55W10gPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9icykgPT4gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lID4gb2JzLnN0YXJ0X3RpbWUpXG4gICAgICAuZm9yRWFjaCgob2JzZXJ2YXRpb24pID0+IHtcbiAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlfd2FybmluZ3MuZm9yRWFjaCgoZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IGV4aXN0aW5nRWFybHlXYXJuaW5nID0gb2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgICAob2JzKSA9PlxuICAgICAgICAgICAgICBvYnMuZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCA9PT1cbiAgICAgICAgICAgICAgZWFybHlfd2FybmluZy50YXJnZXRfcG9pbnRfaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdFYXJseVdhcm5pbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gQ2hlY2tzIGlmIG9ic2VydmF0aW9uIGV4aXN0cyB3aXRoIHNhbWUgdGFyZ2V0XG5cbiAgICAgICAgICAgIG9ic2VydmF0aW9ucy5zcGxpY2Uob2JzZXJ2YXRpb25zLmluZGV4T2YoZXhpc3RpbmdFYXJseVdhcm5pbmcpLCAxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgYXJyaXZlZEJ1dE5vdE9ic2VydmVkLCBhcnJpdmVkO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBFdmVudCBoYXZlIG5vdCByZWFjaGVkIHRoZSB0YXJnZXQgeWV0XG4gICAgICAgICAgICBhcnJpdmVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmVuZF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpKSB7XG4gICAgICAgICAgICAvLyBFVEEgcmVhY2hlZCBhZnRlciBldmVudCBlbmRlZFxuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGFycml2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRXZlbnQgcmVhY2hlZCB0byB0YXJnZXRcbiAgICAgICAgICAgIGFycml2ZWRCdXROb3RPYnNlcnZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyaXZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2JzZXJ2YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkOiBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQsXG4gICAgICAgICAgICBhcnJpdmVkOiBhcnJpdmVkLFxuICAgICAgICAgICAgZWFybHlXYXJuaW5nOiBlYXJseV93YXJuaW5nLFxuICAgICAgICAgICAgb2JzZXJ2YXRpb246IG9ic2VydmF0aW9uLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9ic2VydmF0aW9ucztcbiAgfTtcblxuICBjb25zdCByZW5kZXJFYXJseVdhcm5pbmdzID0gKG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAoIW9ic2VydmF0aW9uLmFycml2ZWQpIHtcbiAgICAgIGlmICghb2JzZXJ2YXRpb24uYXJyaXZlZEJ1dE5vdE9ic2VydmVkKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGxpIGtleT17b2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZH0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfaW5mby5ldGFfdG9fbmFtZScsIHtcbiAgICAgICAgICAgICAgICAgIGV0YTogZ2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICAgIHttb21lbnRcbiAgICAgICAgICAgICAgICAudW5peChcbiAgICAgICAgICAgICAgICAgIEVUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvcm1hdCgnaDptbSBhJyl9XG4gICAgICAgICAgICAgIHtnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgIT09IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgICh7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcud2l0aGluJyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIHttb21lbnRcbiAgICAgICAgICAgICAgICAgICAgLmR1cmF0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgIGNvdW50RG93blRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kcycsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmh1bWFuaXplKCl9XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydkYW5nZXInfT5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuaGlnaF9jaGFuY2VzX29mX3JlYWNoaW5nJyl9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxsaSBrZXk9e29ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWR9PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV4cGVjdGVkX3RvX2Fycml2ZV9idXRfbm90X29ic2VydmVkJyl9eycgJ31cbiAgICAgICAgICAgICAgICB7Z2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpfVxuICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICAgIHtnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgIT09IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmF0Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e0VUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e29ic2VydmF0aW9uLm9ic2VydmF0aW9uLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGkga2V5PXtvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcudGFyZ2V0X3BvaW50X2lkfT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5wb2xsdXRpb25faGFzX3JlYWNoZWQnKX17JyAnfVxuICAgICAgICAgICAgICB7Z2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpfVxuICAgICAgICAgICAgPC9iPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydkYW5nZXInfT5cbiAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmF0Jyl9eycgJ31cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxUaW1lRm9ybWF0XG4gICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e0VUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24udGltZV96b25lfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIGxldCBvYnNlcnZhdGlvbnMgPSBnZXRFYXJseVdhcm5pbmdzKCk7XG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPHVsIGNsYXNzTmFtZT17J2Vhcmx5X3dhcm5pbmdzJ30+XG4gICAgICAgIHtvYnNlcnZhdGlvbnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIG9ic2VydmF0aW9ucy5tYXAoKG9ic2VydmF0aW9uKSA9PiByZW5kZXJFYXJseVdhcm5pbmdzKG9ic2VydmF0aW9uKSl9XG4gICAgICA8L3VsPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRWFybHlXYXJuaW5ncyk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUksS0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQWtELFNBQUFNLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFE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