@onepercentio/one-ui 0.21.3 → 0.21.4

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 (165) hide show
  1. package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.d.ts +15 -0
  2. package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js +37 -0
  3. package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js.map +1 -0
  4. package/ai/hooks/ui/useAlternating.ai.d.ts +9 -0
  5. package/ai/hooks/ui/useAlternating.ai.js +17 -0
  6. package/ai/hooks/ui/useAlternating.ai.js.map +1 -0
  7. package/ai/hooks/useHero.ai.d.ts +9 -0
  8. package/ai/hooks/useHero.ai.js +21 -0
  9. package/ai/hooks/useHero.ai.js.map +1 -0
  10. package/ai/types.d.ts +9 -0
  11. package/ai/types.js +3 -0
  12. package/ai/types.js.map +1 -0
  13. package/dist/assets/styles/variables.scss +0 -5
  14. package/dist/components/AdaptiveButton/AdaptiveButton.d.ts +2 -2
  15. package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
  16. package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +4 -3
  17. package/dist/components/AdaptiveDialog/AdaptiveDialog.js +6 -3
  18. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.d.ts +3 -0
  19. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +7 -6
  20. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.d.ts +2 -0
  21. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
  22. package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +3 -0
  23. package/dist/components/AnchoredTooltip/AnchoredTooltip.js +5 -5
  24. package/dist/components/AnimatedEntrance/AnimatedEntrance.d.ts +3 -3
  25. package/dist/components/AsyncWrapper/AsyncWrapper.d.ts +2 -2
  26. package/dist/components/Avatar/Avatar.d.ts +2 -1
  27. package/dist/components/BucketFill/BucketFill.d.ts +3 -3
  28. package/dist/components/Button/Button.d.ts +2 -2
  29. package/dist/components/Button/Button.js +5 -4
  30. package/dist/components/Button/Button.module.scss +5 -2
  31. package/dist/components/Card/Card.d.ts +2 -2
  32. package/dist/components/Chart/Chart.logic.d.ts +3 -1
  33. package/dist/components/Chart/Chart.logic.js +2 -1
  34. package/dist/components/Chart/Chart.view.d.ts +2 -1
  35. package/dist/components/CheckBox/CheckBox.d.ts +1 -1
  36. package/dist/components/CodeInput/CodeInput.d.ts +9 -0
  37. package/dist/components/CodeInput/CodeInput.js +85 -0
  38. package/dist/components/CodeInput/CodeInput.module.scss +5 -0
  39. package/dist/components/CodeInput/index.d.ts +1 -0
  40. package/dist/components/CodeInput/index.js +14 -0
  41. package/dist/components/Collapsable/Collapsable.d.ts +5 -2
  42. package/dist/components/Collapsable/Collapsable.js +22 -7
  43. package/dist/components/Countdown/Countdown.d.ts +2 -1
  44. package/dist/components/Divider/Divider.d.ts +2 -1
  45. package/dist/components/EmailInput/EmailInput.d.ts +3 -0
  46. package/dist/components/EmailInput/EmailInput.js +5 -5
  47. package/dist/components/FadeIn/FadeIn.d.ts +3 -0
  48. package/dist/components/FadeIn/FadeIn.js +5 -4
  49. package/dist/components/FileInput/FileInput.d.ts +1 -1
  50. package/dist/components/FileInput/View/BigFactory/BigFactory.d.ts +2 -2
  51. package/dist/components/FileInput/View/Compact/Compact.d.ts +2 -1
  52. package/dist/components/FlowController/FlowController.d.ts +2 -2
  53. package/dist/components/Form/v2/Form.d.ts +18 -0
  54. package/dist/components/Form/v2/Form.hook.d.ts +21 -0
  55. package/dist/components/Form/v2/Form.hook.js +214 -0
  56. package/dist/components/Form/v2/Form.js +69 -0
  57. package/dist/components/Form/v2/Form.module.scss +0 -0
  58. package/dist/components/Form/v2/Form.types.d.ts +97 -0
  59. package/dist/components/Form/v2/Form.types.js +45 -0
  60. package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.d.ts +12 -0
  61. package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +74 -0
  62. package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
  63. package/dist/components/Form/v2/FormField/Extensions/DateField/index.d.ts +1 -0
  64. package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +14 -0
  65. package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.d.ts +10 -0
  66. package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +92 -0
  67. package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
  68. package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +1 -0
  69. package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +14 -0
  70. package/dist/components/Form/v2/FormField/FormField.d.ts +6 -0
  71. package/dist/components/Form/v2/FormField/FormField.js +309 -0
  72. package/dist/components/Form/v2/FormField/FormField.module.scss +0 -0
  73. package/dist/components/Form/v2/FormField/FormField.types.d.ts +83 -0
  74. package/dist/components/Form/v2/FormField/FormField.types.js +13 -0
  75. package/dist/components/Form/v2/FormField/index.d.ts +1 -0
  76. package/dist/components/Form/v2/FormField/index.js +14 -0
  77. package/dist/components/Form/v2/index.d.ts +1 -0
  78. package/dist/components/Form/v2/index.js +14 -0
  79. package/dist/components/HSForms/HSForms.d.ts +2 -1
  80. package/dist/components/Header/Header.d.ts +2 -2
  81. package/dist/components/HeaderCloseBtn/HeaderCloseBtn.d.ts +2 -1
  82. package/dist/components/InfinityScroll/InfinityScroll.d.ts +3 -0
  83. package/dist/components/InfinityScroll/InfinityScroll.js +5 -5
  84. package/dist/components/Input/Input.d.ts +3 -0
  85. package/dist/components/Input/Input.js +4 -4
  86. package/dist/components/InstantCounter/InstantCounter.d.ts +3 -0
  87. package/dist/components/InstantCounter/InstantCounter.js +5 -4
  88. package/dist/components/LavaLamp/LavaLamp.d.ts +2 -2
  89. package/dist/components/LavaLamp/LavaLamp.js +1 -1
  90. package/dist/components/LavaLamp/v2/LavaLamp.d.ts +2 -2
  91. package/dist/components/LinkToId/LinkToId.d.ts +2 -2
  92. package/dist/components/Loader/Loader.d.ts +1 -1
  93. package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.d.ts +2 -1
  94. package/dist/components/LoopableVideo/LoopableVideo.d.ts +2 -2
  95. package/dist/components/MainGrid/MainGrid.d.ts +3 -0
  96. package/dist/components/MainGrid/MainGrid.js +5 -4
  97. package/dist/components/MutableHamburgerButton/MutableHamburgerButton.d.ts +1 -1
  98. package/dist/components/Notification/Notification.d.ts +2 -2
  99. package/dist/components/OrderableList/OrderableList.d.ts +1 -1
  100. package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +9 -6
  101. package/dist/components/PaginationIndicator/PaginationIndicator.js +49 -11
  102. package/dist/components/Parallax/Parallax.d.ts +3 -0
  103. package/dist/components/Parallax/Parallax.js +5 -4
  104. package/dist/components/PasswordInput/PasswordInput.d.ts +3 -0
  105. package/dist/components/PasswordInput/PasswordInput.js +5 -5
  106. package/dist/components/PingPongText/PingPongText.d.ts +2 -2
  107. package/dist/components/PixelatedScan/PixelatedScan.d.ts +2 -1
  108. package/dist/components/Portal/Portal.d.ts +1 -1
  109. package/dist/components/ProgressBar/ProgressBar.d.ts +3 -3
  110. package/dist/components/ProgressTexts/ProgressTexts.d.ts +1 -1
  111. package/dist/components/Radio/Radio.d.ts +1 -1
  112. package/dist/components/SectionContainer/SectionContainer.d.ts +3 -0
  113. package/dist/components/SectionContainer/SectionContainer.js +5 -4
  114. package/dist/components/Select/Select.d.ts +3 -3
  115. package/dist/components/Select/Select.js +1 -1
  116. package/dist/components/Skeleton/Skeleton.d.ts +2 -1
  117. package/dist/components/Spacing/Spacing.d.ts +2 -1
  118. package/dist/components/StaticScroller/StaticScroller.d.ts +3 -0
  119. package/dist/components/StaticScroller/StaticScroller.js +5 -4
  120. package/dist/components/Switch/Switch.d.ts +2 -2
  121. package/dist/components/Table/Table.d.ts +2 -1
  122. package/dist/components/Tabs/Tabs.d.ts +2 -2
  123. package/dist/components/Text/Text.d.ts +7 -5
  124. package/dist/components/Text/Text.js +5 -4
  125. package/dist/components/Text/Text.module.scss +4 -0
  126. package/dist/components/Transition/Transition.d.ts +8 -5
  127. package/dist/components/Transition/Transition.js +18 -16
  128. package/dist/components/Transition/Transition.module.scss +1 -1
  129. package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +3 -0
  130. package/dist/components/UncontrolledTransition/UncontrolledTransition.js +25 -13
  131. package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.d.ts +2 -0
  132. package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +44 -0
  133. package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.d.ts +4 -1
  134. package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +6 -5
  135. package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.d.ts +2 -2
  136. package/dist/context/AsyncProcess.d.ts +2 -1
  137. package/dist/context/ContextAsyncControl.d.ts +24 -0
  138. package/dist/context/ContextAsyncControl.js +101 -0
  139. package/dist/context/CustomBrowserRouter.d.ts +2 -2
  140. package/dist/context/OneUIProvider.d.ts +29 -1
  141. package/dist/context/OneUIProvider.js +1 -1
  142. package/dist/hooks/persistence/useLocalStorage.d.ts +1 -1
  143. package/dist/hooks/persistence/useLocalStorage.js +5 -1
  144. package/dist/hooks/ui/useAlternating.d.ts +4 -0
  145. package/dist/hooks/ui/useAlternating.js +34 -0
  146. package/dist/hooks/ui/usePaginationControls.d.ts +2 -2
  147. package/dist/hooks/useAsyncControl.d.ts +15 -3
  148. package/dist/hooks/useAsyncControl.js +24 -20
  149. package/dist/hooks/useHero.d.ts +4 -2
  150. package/dist/hooks/useHero.js +39 -15
  151. package/dist/hooks/useHero.module.scss +1 -1
  152. package/dist/hooks/useShortIntl.d.ts +1 -1
  153. package/dist/hooks/useShortIntl.js +1 -1
  154. package/dist/models/GenericContract.d.ts +3 -3
  155. package/dist/models/GenericContract.js +5 -3
  156. package/dist/storybookUtils/index.d.ts +2 -2
  157. package/dist/type-utils.d.ts +5 -0
  158. package/dist/type-utils.js +1 -1
  159. package/dist/utility.d.js +1 -1
  160. package/package.json +16 -4
  161. package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +35 -0
  162. package/src_ai/hooks/ui/useAlternating.ai.ts +15 -0
  163. package/src_ai/hooks/useHero.ai.ts +18 -0
  164. package/src_ai/types.ts +10 -0
  165. package/tsconfig-ai.json +9 -0
@@ -7,7 +7,7 @@ export declare type WalletConnectionProps = PropsWithChildren<Omit<ReturnType<ty
7
7
  isConnectedAndValidChain: boolean;
8
8
  isConnected: boolean;
9
9
  wallet?: string;
10
- connect: () => void;
10
+ connect: () => Promise<void>;
11
11
  disconnect: () => void;
12
12
  changeChainId: () => void;
13
13
  }>;
@@ -37,6 +37,9 @@ declare type Props = {
37
37
  */
38
38
  Content: (props: WalletConnectionProps) => ReactElement;
39
39
  };
40
+ /**
41
+ * This component handles some cenarios when dealing with the wallet connection to different providers (ex: Metamask)
42
+ **/
40
43
  declare const WalletConnectionWrapper: React.ForwardRefExoticComponent<Props & {
41
44
  children?: React.ReactNode;
42
45
  } & React.RefAttributes<{
@@ -20,9 +20,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
20
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
21
21
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
22
22
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
- /**
24
- * This component handles a lot of cenarios when dealing with the wallet connection to different providers (ex: Metamask)
25
- **/
26
23
  function _WalletConnectionWrapper(props, ref) {
27
24
  return /*#__PURE__*/_react.default.createElement(_useWallet.UseWalletProvider, null, /*#__PURE__*/_react.default.createElement(Content, _extends({
28
25
  compRef: ref || /*#__PURE__*/(0, _react.createRef)()
@@ -47,7 +44,7 @@ function Content(_ref) {
47
44
  const connectionAsyncWrapper = (0, _useAsyncControl.default)();
48
45
  const connect = /*#__PURE__*/function () {
49
46
  var _ref2 = _asyncToGenerator(function* () {
50
- connectionAsyncWrapper.process( /*#__PURE__*/_asyncToGenerator(function* () {
47
+ yield connectionAsyncWrapper.process( /*#__PURE__*/_asyncToGenerator(function* () {
51
48
  yield wallet.connect("injected");
52
49
  localStorage.setItem("auto_connect", "true");
53
50
  }));
@@ -126,9 +123,13 @@ function Content(_ref) {
126
123
  wallet: wallet.account
127
124
  }), children));
128
125
  }
126
+
127
+ /**
128
+ * This component handles some cenarios when dealing with the wallet connection to different providers (ex: Metamask)
129
+ **/
129
130
  const WalletConnectionWrapper = /*#__PURE__*/(0, _react.forwardRef)(_WalletConnectionWrapper);
130
131
  var _default = WalletConnectionWrapper;
131
132
  exports.default = _default;
132
133
  const BaseWalletConnectionWrapper = /*#__PURE__*/(0, _react.forwardRef)(_BaseWalletConnectionWrapper);
133
134
  exports.BaseWalletConnectionWrapper = BaseWalletConnectionWrapper;
134
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlV2FsbGV0IiwiX3VzZUFzeW5jQ29udHJvbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIl90eXBlb2YiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiaSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJvIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJuIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsInJldHVybiIsImlzQXJyYXkiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJhcmciLCJpbmZvIiwiZXJyb3IiLCJQcm9taXNlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX1dhbGxldENvbm5lY3Rpb25XcmFwcGVyIiwicHJvcHMiLCJyZWYiLCJjcmVhdGVFbGVtZW50IiwiVXNlV2FsbGV0UHJvdmlkZXIiLCJDb250ZW50IiwiY29tcFJlZiIsImNyZWF0ZVJlZiIsIl9CYXNlV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJfcmVmIiwiUHJvdmlkZXJVbmF2YWlsYWJsZSIsIkNoYWluSWRJbnZhbGlkIiwiY2hhaW4iLCJQcm92aWRlZENvbnRlbnRXcmFwcGVyIiwiY2hpbGRyZW4iLCJ3YWxsZXQiLCJ1c2VXYWxsZXQiLCJjb25uZWN0aW9uQXN5bmNXcmFwcGVyIiwidXNlQXN5bmNDb250cm9sIiwiY29ubmVjdCIsIl9yZWYyIiwicHJvY2VzcyIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJkaXNjb25uZWN0IiwicmVzZXQiLCJyZW1vdmVJdGVtIiwidXNlRWZmZWN0IiwiYXV0b0Nvbm5lY3QiLCJnZXRJdGVtIiwiYWNjb3VudCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIndpbmRvdyIsImV0aGVyZXVtIiwiX3VzZVN0YXRlMiIsImlzUHJvdmlkZXJBdmFpbGFibGUiLCJpc0NoYWluSWRWYWxpZCIsInVzZU1lbW8iLCJpc0Nvbm5lY3RlZCIsImNoYWluSWQiLCJpZCIsImNoYW5nZUNoYWluSWQiLCJfY2hhbmdlQ2hhaW5JZCIsInJlcXVlc3QiLCJtZXRob2QiLCJwYXJhbXMiLCJjb25jYXQiLCJwYWRTdGFydCIsImUiLCJjb2RlIiwiY2hhaW5OYW1lIiwicnBjVXJscyIsInJwY1VybCIsImJsb2NrRXhwbG9yZXJVcmxzIiwiZXhwbG9yZXJVcmwiLCJuYXRpdmVDdXJyZW5jeSIsInN5bWJvbCIsImN1cnJlbmN5IiwiZGVjaW1hbHMiLCJDb250ZW50V3JhcHBlciIsIkZyYWdtZW50IiwiaXNDb25uZWN0ZWRBbmRWYWxpZENoYWluIiwiV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiQmFzZVdhbGxldENvbm5lY3Rpb25XcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIvV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVSZWYsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIFJlYWN0RWxlbWVudCxcbiAgUmVhY3ROb2RlLFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVdhbGxldCwgVXNlV2FsbGV0UHJvdmlkZXIgfSBmcm9tIFwidXNlLXdhbGxldFwiO1xuaW1wb3J0IHVzZUFzeW5jQ29udHJvbCBmcm9tIFwiLi4vLi4vaG9va3MvdXNlQXN5bmNDb250cm9sXCI7XG5cbmV4cG9ydCB0eXBlIFdhbGxldENvbm5lY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPFxuICBPbWl0PFJldHVyblR5cGU8dHlwZW9mIHVzZUFzeW5jQ29udHJvbD4sIFwicHJvY2Vzc1wiPiAmIHtcbiAgICBjaGFpbklkPzogbnVtYmVyO1xuICAgIGlzQ2hhaW5JZFZhbGlkOiBib29sZWFuO1xuICAgIGlzUHJvdmlkZXJBdmFpbGFibGU6IGJvb2xlYW47XG4gICAgaXNDb25uZWN0ZWRBbmRWYWxpZENoYWluOiBib29sZWFuO1xuICAgIGlzQ29ubmVjdGVkOiBib29sZWFuO1xuICAgIHdhbGxldD86IHN0cmluZztcblxuICAgIGNvbm5lY3Q6ICgpID0+IHZvaWQ7XG4gICAgZGlzY29ubmVjdDogKCkgPT4gdm9pZDtcbiAgICBjaGFuZ2VDaGFpbklkOiAoKSA9PiB2b2lkO1xuICB9XG4+O1xuXG50eXBlIFByb3BzID0ge1xuICAvKipcbiAgICogVGhlIGNoYWluIGlkIHRoYXQgdGhlIHVzZXIgaXMgZXhwZWN0ZWQgdG8gY29ubmVjdCB0b1xuICAgKi9cbiAgY2hhaW46IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHJwY1VybDogc3RyaW5nO1xuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGEgcHJvdmlkZXIgbGlrZSBtZXRhbWFzayBhdmFpbGFibGVcbiAgICovXG4gIFByb3ZpZGVyVW5hdmFpbGFibGU/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhpcyBpcyBpbnZva2VkIHdoZW4gdGhlIGNoYWluIElEIGlzIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIENoYWluSWRJbnZhbGlkPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8e1xuICAgIGNoYW5nZUNoYWluSWQ6ICgpID0+IHZvaWQ7XG4gIH0+O1xuXG4gIC8qKlxuICAgKiBUaGlzIHJlbmRlcnMgdGhlIGNvbnRlbnQgdGhhdCBpcyBzaG93biBpbnNpZGUgdGhlIHdhbGxldCBjb250ZW50XG4gICAqL1xuICBDb250ZW50OiAocHJvcHM6IFdhbGxldENvbm5lY3Rpb25Qcm9wcykgPT4gUmVhY3RFbGVtZW50O1xufTtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBoYW5kbGVzIGEgbG90IG9mIGNlbmFyaW9zIHdoZW4gZGVhbGluZyB3aXRoIHRoZSB3YWxsZXQgY29ubmVjdGlvbiB0byBkaWZmZXJlbnQgcHJvdmlkZXJzIChleDogTWV0YW1hc2spXG4gKiovXG5mdW5jdGlvbiBfV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIoXG4gIHByb3BzOiBQcm9wc1dpdGhDaGlsZHJlbjxQcm9wcz4sXG4gIHJlZjogRm9yd2FyZGVkUmVmPHtcbiAgICBjb25uZWN0OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQ7XG4gIH0+XG4pIHtcbiAgcmV0dXJuIChcbiAgICA8VXNlV2FsbGV0UHJvdmlkZXI+XG4gICAgICA8Q29udGVudCBjb21wUmVmPXtyZWYgfHwgY3JlYXRlUmVmKCl9IHsuLi5wcm9wc30gLz5cbiAgICA8L1VzZVdhbGxldFByb3ZpZGVyPlxuICApO1xufVxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBoYW5kbGVzIGEgbG90IG9mIGNlbmFyaW9zIHdoZW4gZGVhbGluZyB3aXRoIHRoZSB3YWxsZXQgY29ubmVjdGlvbiB0byBkaWZmZXJlbnQgcHJvdmlkZXJzIChleDogTWV0YW1hc2spXG4gKiovXG5mdW5jdGlvbiBfQmFzZVdhbGxldENvbm5lY3Rpb25XcmFwcGVyKFxuICBwcm9wczogUHJvcHMgJiB7XG4gICAgY2hpbGRyZW4/OiBhbnk7XG4gIH0sXG4gIHJlZjogRm9yd2FyZGVkUmVmPHtcbiAgICBjb25uZWN0OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQ7XG4gIH0+XG4pIHtcbiAgcmV0dXJuIDxDb250ZW50IGNvbXBSZWY9e3JlZiB8fCBjcmVhdGVSZWYoKX0gey4uLnByb3BzfSAvPjtcbn1cblxuZnVuY3Rpb24gQ29udGVudCh7XG4gIFByb3ZpZGVyVW5hdmFpbGFibGUsXG4gIENoYWluSWRJbnZhbGlkLFxuICBjaGFpbixcbiAgQ29udGVudDogUHJvdmlkZWRDb250ZW50V3JhcHBlcixcbiAgY29tcFJlZixcbiAgY2hpbGRyZW4sXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxcbiAgUHJvcHMgJiB7XG4gICAgY29tcFJlZjogRm9yd2FyZGVkUmVmPHtcbiAgICAgIGNvbm5lY3Q6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgICBkaXNjb25uZWN0OiAoKSA9PiB2b2lkO1xuICAgIH0+O1xuICB9XG4+KSB7XG4gIGNvbnN0IHdhbGxldCA9IHVzZVdhbGxldCgpO1xuICBjb25zdCBjb25uZWN0aW9uQXN5bmNXcmFwcGVyID0gdXNlQXN5bmNDb250cm9sKCk7XG4gIGNvbnN0IGNvbm5lY3QgPSBhc3luYyAoKSA9PiB7XG4gICAgY29ubmVjdGlvbkFzeW5jV3JhcHBlci5wcm9jZXNzKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHdhbGxldC5jb25uZWN0KFwiaW5qZWN0ZWRcIik7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dG9fY29ubmVjdFwiLCBcInRydWVcIik7XG4gICAgfSk7XG4gIH07XG4gIGNvbnN0IGRpc2Nvbm5lY3QgPSAoKSA9PiB7XG4gICAgd2FsbGV0LnJlc2V0KCk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJhdXRvX2Nvbm5lY3RcIik7XG4gIH07XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYXV0b0Nvbm5lY3QgPSAhIWxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0b19jb25uZWN0XCIpO1xuICAgIGlmIChhdXRvQ29ubmVjdCAmJiAhd2FsbGV0LmFjY291bnQpIGNvbm5lY3QoKTtcbiAgfSwgW10pO1xuICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgIGNvbXBSZWYsXG4gICAgKCkgPT4gKHtcbiAgICAgIGNvbm5lY3QsXG4gICAgICBkaXNjb25uZWN0LFxuICAgIH0pLFxuICAgIFt3YWxsZXRdXG4gICk7XG4gIGNvbnN0IFtpc1Byb3ZpZGVyQXZhaWxhYmxlXSA9IHVzZVN0YXRlKCgpID0+ICEhd2luZG93LmV0aGVyZXVtKTtcbiAgY29uc3QgaXNDaGFpbklkVmFsaWQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh3YWxsZXQuaXNDb25uZWN0ZWQoKSA/IHdhbGxldC5jaGFpbklkID09PSBjaGFpbi5pZCA6IHRydWUpLFxuICAgIFt3YWxsZXQsIGNoYWluLmlkXVxuICApO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGNoYW5nZUNoYWluSWQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdpbmRvdy5ldGhlcmV1bSEucmVxdWVzdCh7XG4gICAgICAgIG1ldGhvZDogXCJ3YWxsZXRfc3dpdGNoRXRoZXJldW1DaGFpblwiLFxuICAgICAgICBwYXJhbXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjaGFpbklkOiBgMHgke2NoYWluLmlkLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIil9YCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBzd2l0Y2ggKGUuY29kZSkge1xuICAgICAgICBjYXNlIDQ5MDI6XG4gICAgICAgICAgd2luZG93LmV0aGVyZXVtIS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJ3YWxsZXRfYWRkRXRoZXJldW1DaGFpblwiLFxuICAgICAgICAgICAgcGFyYW1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjaGFpbklkOiBgMHgke2NoYWluLmlkLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIil9YCxcbiAgICAgICAgICAgICAgICBjaGFpbk5hbWU6IGNoYWluLm5hbWUsXG4gICAgICAgICAgICAgICAgcnBjVXJsczogW2NoYWluLnJwY1VybF0sXG4gICAgICAgICAgICAgICAgYmxvY2tFeHBsb3JlclVybHM6IFtjaGFpbi5leHBsb3JlclVybF0sXG4gICAgICAgICAgICAgICAgbmF0aXZlQ3VycmVuY3k6IHtcbiAgICAgICAgICAgICAgICAgIHN5bWJvbDogY2hhaW4uY3VycmVuY3ksXG4gICAgICAgICAgICAgICAgICBkZWNpbWFsczogMTgsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IENvbnRlbnRXcmFwcGVyID0gUHJvdmlkZWRDb250ZW50V3JhcHBlciBhcyBhbnk7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtQcm92aWRlclVuYXZhaWxhYmxlICYmICFpc1Byb3ZpZGVyQXZhaWxhYmxlICYmIDxQcm92aWRlclVuYXZhaWxhYmxlIC8+fVxuICAgICAge0NoYWluSWRJbnZhbGlkICYmICFpc0NoYWluSWRWYWxpZCAmJiAoXG4gICAgICAgIDxDaGFpbklkSW52YWxpZCBjaGFuZ2VDaGFpbklkPXtjaGFuZ2VDaGFpbklkfSAvPlxuICAgICAgKX1cbiAgICAgIHtcbiAgICAgICAgPENvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgey4uLmNvbm5lY3Rpb25Bc3luY1dyYXBwZXJ9XG4gICAgICAgICAgaXNDaGFpbklkVmFsaWQ9e2lzQ2hhaW5JZFZhbGlkfVxuICAgICAgICAgIGlzUHJvdmlkZXJBdmFpbGFibGU9e2lzUHJvdmlkZXJBdmFpbGFibGV9XG4gICAgICAgICAgaXNDb25uZWN0ZWRBbmRWYWxpZENoYWluPXtpc0NoYWluSWRWYWxpZCAmJiB3YWxsZXQuaXNDb25uZWN0ZWQoKX1cbiAgICAgICAgICBjb25uZWN0PXtjb25uZWN0fVxuICAgICAgICAgIGRpc2Nvbm5lY3Q9e2Rpc2Nvbm5lY3R9XG4gICAgICAgICAgY2hhbmdlQ2hhaW5JZD17Y2hhbmdlQ2hhaW5JZH1cbiAgICAgICAgICBjaGFpbklkPXt3YWxsZXQuY2hhaW5JZH1cbiAgICAgICAgICBpc0Nvbm5lY3RlZD17d2FsbGV0LmlzQ29ubmVjdGVkKCl9XG4gICAgICAgICAgd2FsbGV0PXt3YWxsZXQuYWNjb3VudH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Db250ZW50V3JhcHBlcj5cbiAgICAgIH1cbiAgICA8Lz5cbiAgKTtcbn1cblxuY29uc3QgV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIgPSBmb3J3YXJkUmVmKF9XYWxsZXRDb25uZWN0aW9uV3JhcHBlcik7XG5leHBvcnQgZGVmYXVsdCBXYWxsZXRDb25uZWN0aW9uV3JhcHBlcjtcblxuZXhwb3J0IGNvbnN0IEJhc2VXYWxsZXRDb25uZWN0aW9uV3JhcHBlciA9IGZvcndhcmRSZWYoXG4gIF9CYXNlV2FsbGV0Q29ubmVjdGlvbldyYXBwZXJcbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFZQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQTBELFNBQUFHLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBSyxHQUFBLEVBQUFJLFdBQUEsU0FBQUEsV0FBQSxJQUFBSixHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQVEsT0FBQSxDQUFBUixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQVMsS0FBQSxHQUFBTix3QkFBQSxDQUFBQyxXQUFBLE9BQUFLLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFWLEdBQUEsWUFBQVMsS0FBQSxDQUFBRSxHQUFBLENBQUFYLEdBQUEsU0FBQVksTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFqQixHQUFBLFFBQUFpQixHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFB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
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlV2FsbGV0IiwiX3VzZUFzeW5jQ29udHJvbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIl90eXBlb2YiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiaSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJvIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJuIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsInJldHVybiIsImlzQXJyYXkiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJhcmciLCJpbmZvIiwiZXJyb3IiLCJQcm9taXNlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX1dhbGxldENvbm5lY3Rpb25XcmFwcGVyIiwicHJvcHMiLCJyZWYiLCJjcmVhdGVFbGVtZW50IiwiVXNlV2FsbGV0UHJvdmlkZXIiLCJDb250ZW50IiwiY29tcFJlZiIsImNyZWF0ZVJlZiIsIl9CYXNlV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJfcmVmIiwiUHJvdmlkZXJVbmF2YWlsYWJsZSIsIkNoYWluSWRJbnZhbGlkIiwiY2hhaW4iLCJQcm92aWRlZENvbnRlbnRXcmFwcGVyIiwiY2hpbGRyZW4iLCJ3YWxsZXQiLCJ1c2VXYWxsZXQiLCJjb25uZWN0aW9uQXN5bmNXcmFwcGVyIiwidXNlQXN5bmNDb250cm9sIiwiY29ubmVjdCIsIl9yZWYyIiwicHJvY2VzcyIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJkaXNjb25uZWN0IiwicmVzZXQiLCJyZW1vdmVJdGVtIiwidXNlRWZmZWN0IiwiYXV0b0Nvbm5lY3QiLCJnZXRJdGVtIiwiYWNjb3VudCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIndpbmRvdyIsImV0aGVyZXVtIiwiX3VzZVN0YXRlMiIsImlzUHJvdmlkZXJBdmFpbGFibGUiLCJpc0NoYWluSWRWYWxpZCIsInVzZU1lbW8iLCJpc0Nvbm5lY3RlZCIsImNoYWluSWQiLCJpZCIsImNoYW5nZUNoYWluSWQiLCJfY2hhbmdlQ2hhaW5JZCIsInJlcXVlc3QiLCJtZXRob2QiLCJwYXJhbXMiLCJjb25jYXQiLCJwYWRTdGFydCIsImUiLCJjb2RlIiwiY2hhaW5OYW1lIiwicnBjVXJscyIsInJwY1VybCIsImJsb2NrRXhwbG9yZXJVcmxzIiwiZXhwbG9yZXJVcmwiLCJuYXRpdmVDdXJyZW5jeSIsInN5bWJvbCIsImN1cnJlbmN5IiwiZGVjaW1hbHMiLCJDb250ZW50V3JhcHBlciIsIkZyYWdtZW50IiwiaXNDb25uZWN0ZWRBbmRWYWxpZENoYWluIiwiV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiQmFzZVdhbGxldENvbm5lY3Rpb25XcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIvV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVSZWYsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIFJlYWN0RWxlbWVudCxcbiAgUmVhY3ROb2RlLFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVdhbGxldCwgVXNlV2FsbGV0UHJvdmlkZXIgfSBmcm9tIFwidXNlLXdhbGxldFwiO1xuaW1wb3J0IHVzZUFzeW5jQ29udHJvbCBmcm9tIFwiLi4vLi4vaG9va3MvdXNlQXN5bmNDb250cm9sXCI7XG5cbmV4cG9ydCB0eXBlIFdhbGxldENvbm5lY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPFxuICBPbWl0PFJldHVyblR5cGU8dHlwZW9mIHVzZUFzeW5jQ29udHJvbD4sIFwicHJvY2Vzc1wiPiAmIHtcbiAgICBjaGFpbklkPzogbnVtYmVyO1xuICAgIGlzQ2hhaW5JZFZhbGlkOiBib29sZWFuO1xuICAgIGlzUHJvdmlkZXJBdmFpbGFibGU6IGJvb2xlYW47XG4gICAgaXNDb25uZWN0ZWRBbmRWYWxpZENoYWluOiBib29sZWFuO1xuICAgIGlzQ29ubmVjdGVkOiBib29sZWFuO1xuICAgIHdhbGxldD86IHN0cmluZztcblxuICAgIGNvbm5lY3Q6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgZGlzY29ubmVjdDogKCkgPT4gdm9pZDtcbiAgICBjaGFuZ2VDaGFpbklkOiAoKSA9PiB2b2lkO1xuICB9XG4+O1xuXG50eXBlIFByb3BzID0ge1xuICAvKipcbiAgICogVGhlIGNoYWluIGlkIHRoYXQgdGhlIHVzZXIgaXMgZXhwZWN0ZWQgdG8gY29ubmVjdCB0b1xuICAgKi9cbiAgY2hhaW46IHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHJwY1VybDogc3RyaW5nO1xuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGEgcHJvdmlkZXIgbGlrZSBtZXRhbWFzayBhdmFpbGFibGVcbiAgICovXG4gIFByb3ZpZGVyVW5hdmFpbGFibGU/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhpcyBpcyBpbnZva2VkIHdoZW4gdGhlIGNoYWluIElEIGlzIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIENoYWluSWRJbnZhbGlkPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8e1xuICAgIGNoYW5nZUNoYWluSWQ6ICgpID0+IHZvaWQ7XG4gIH0+O1xuXG4gIC8qKlxuICAgKiBUaGlzIHJlbmRlcnMgdGhlIGNvbnRlbnQgdGhhdCBpcyBzaG93biBpbnNpZGUgdGhlIHdhbGxldCBjb250ZW50XG4gICAqL1xuICBDb250ZW50OiAocHJvcHM6IFdhbGxldENvbm5lY3Rpb25Qcm9wcykgPT4gUmVhY3RFbGVtZW50O1xufTtcbmZ1bmN0aW9uIF9XYWxsZXRDb25uZWN0aW9uV3JhcHBlcihcbiAgcHJvcHM6IFByb3BzV2l0aENoaWxkcmVuPFByb3BzPixcbiAgcmVmOiBGb3J3YXJkZWRSZWY8e1xuICAgIGNvbm5lY3Q6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgZGlzY29ubmVjdDogKCkgPT4gdm9pZDtcbiAgfT5cbikge1xuICByZXR1cm4gKFxuICAgIDxVc2VXYWxsZXRQcm92aWRlcj5cbiAgICAgIDxDb250ZW50IGNvbXBSZWY9e3JlZiB8fCBjcmVhdGVSZWYoKX0gey4uLnByb3BzfSAvPlxuICAgIDwvVXNlV2FsbGV0UHJvdmlkZXI+XG4gICk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGhhbmRsZXMgYSBsb3Qgb2YgY2VuYXJpb3Mgd2hlbiBkZWFsaW5nIHdpdGggdGhlIHdhbGxldCBjb25uZWN0aW9uIHRvIGRpZmZlcmVudCBwcm92aWRlcnMgKGV4OiBNZXRhbWFzaylcbiAqKi9cbmZ1bmN0aW9uIF9CYXNlV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIoXG4gIHByb3BzOiBQcm9wcyAmIHtcbiAgICBjaGlsZHJlbj86IGFueTtcbiAgfSxcbiAgcmVmOiBGb3J3YXJkZWRSZWY8e1xuICAgIGNvbm5lY3Q6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgZGlzY29ubmVjdDogKCkgPT4gdm9pZDtcbiAgfT5cbikge1xuICByZXR1cm4gPENvbnRlbnQgY29tcFJlZj17cmVmIHx8IGNyZWF0ZVJlZigpfSB7Li4ucHJvcHN9IC8+O1xufVxuXG5mdW5jdGlvbiBDb250ZW50KHtcbiAgUHJvdmlkZXJVbmF2YWlsYWJsZSxcbiAgQ2hhaW5JZEludmFsaWQsXG4gIGNoYWluLFxuICBDb250ZW50OiBQcm92aWRlZENvbnRlbnRXcmFwcGVyLFxuICBjb21wUmVmLFxuICBjaGlsZHJlbixcbn06IFByb3BzV2l0aENoaWxkcmVuPFxuICBQcm9wcyAmIHtcbiAgICBjb21wUmVmOiBGb3J3YXJkZWRSZWY8e1xuICAgICAgY29ubmVjdDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQ7XG4gICAgfT47XG4gIH1cbj4pIHtcbiAgY29uc3Qgd2FsbGV0ID0gdXNlV2FsbGV0KCk7XG4gIGNvbnN0IGNvbm5lY3Rpb25Bc3luY1dyYXBwZXIgPSB1c2VBc3luY0NvbnRyb2woKTtcbiAgY29uc3QgY29ubmVjdCA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBjb25uZWN0aW9uQXN5bmNXcmFwcGVyLnByb2Nlc3MoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2FsbGV0LmNvbm5lY3QoXCJpbmplY3RlZFwiKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYXV0b19jb25uZWN0XCIsIFwidHJ1ZVwiKTtcbiAgICB9KTtcbiAgfTtcbiAgY29uc3QgZGlzY29ubmVjdCA9ICgpID0+IHtcbiAgICB3YWxsZXQucmVzZXQoKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImF1dG9fY29ubmVjdFwiKTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhdXRvQ29ubmVjdCA9ICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhdXRvX2Nvbm5lY3RcIik7XG4gICAgaWYgKGF1dG9Db25uZWN0ICYmICF3YWxsZXQuYWNjb3VudCkgY29ubmVjdCgpO1xuICB9LCBbXSk7XG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgY29tcFJlZixcbiAgICAoKSA9PiAoe1xuICAgICAgY29ubmVjdCxcbiAgICAgIGRpc2Nvbm5lY3QsXG4gICAgfSksXG4gICAgW3dhbGxldF1cbiAgKTtcbiAgY29uc3QgW2lzUHJvdmlkZXJBdmFpbGFibGVdID0gdXNlU3RhdGUoKCkgPT4gISF3aW5kb3cuZXRoZXJldW0pO1xuICBjb25zdCBpc0NoYWluSWRWYWxpZCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHdhbGxldC5pc0Nvbm5lY3RlZCgpID8gd2FsbGV0LmNoYWluSWQgPT09IGNoYWluLmlkIDogdHJ1ZSksXG4gICAgW3dhbGxldCwgY2hhaW4uaWRdXG4gICk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gY2hhbmdlQ2hhaW5JZCgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2luZG93LmV0aGVyZXVtIS5yZXF1ZXN0KHtcbiAgICAgICAgbWV0aG9kOiBcIndhbGxldF9zd2l0Y2hFdGhlcmV1bUNoYWluXCIsXG4gICAgICAgIHBhcmFtczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNoYWluSWQ6IGAweCR7Y2hhaW4uaWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIFwiMFwiKX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHN3aXRjaCAoZS5jb2RlKSB7XG4gICAgICAgIGNhc2UgNDkwMjpcbiAgICAgICAgICB3aW5kb3cuZXRoZXJldW0hLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiBcIndhbGxldF9hZGRFdGhlcmV1bUNoYWluXCIsXG4gICAgICAgICAgICBwYXJhbXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNoYWluSWQ6IGAweCR7Y2hhaW4uaWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIFwiMFwiKX1gLFxuICAgICAgICAgICAgICAgIGNoYWluTmFtZTogY2hhaW4ubmFtZSxcbiAgICAgICAgICAgICAgICBycGNVcmxzOiBbY2hhaW4ucnBjVXJsXSxcbiAgICAgICAgICAgICAgICBibG9ja0V4cGxvcmVyVXJsczogW2NoYWluLmV4cGxvcmVyVXJsXSxcbiAgICAgICAgICAgICAgICBuYXRpdmVDdXJyZW5jeToge1xuICAgICAgICAgICAgICAgICAgc3ltYm9sOiBjaGFpbi5jdXJyZW5jeSxcbiAgICAgICAgICAgICAgICAgIGRlY2ltYWxzOiAxOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgQ29udGVudFdyYXBwZXIgPSBQcm92aWRlZENvbnRlbnRXcmFwcGVyIGFzIGFueTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge1Byb3ZpZGVyVW5hdmFpbGFibGUgJiYgIWlzUHJvdmlkZXJBdmFpbGFibGUgJiYgPFByb3ZpZGVyVW5hdmFpbGFibGUgLz59XG4gICAgICB7Q2hhaW5JZEludmFsaWQgJiYgIWlzQ2hhaW5JZFZhbGlkICYmIChcbiAgICAgICAgPENoYWluSWRJbnZhbGlkIGNoYW5nZUNoYWluSWQ9e2NoYW5nZUNoYWluSWR9IC8+XG4gICAgICApfVxuICAgICAge1xuICAgICAgICA8Q29udGVudFdyYXBwZXJcbiAgICAgICAgICB7Li4uY29ubmVjdGlvbkFzeW5jV3JhcHBlcn1cbiAgICAgICAgICBpc0NoYWluSWRWYWxpZD17aXNDaGFpbklkVmFsaWR9XG4gICAgICAgICAgaXNQcm92aWRlckF2YWlsYWJsZT17aXNQcm92aWRlckF2YWlsYWJsZX1cbiAgICAgICAgICBpc0Nvbm5lY3RlZEFuZFZhbGlkQ2hhaW49e2lzQ2hhaW5JZFZhbGlkICYmIHdhbGxldC5pc0Nvbm5lY3RlZCgpfVxuICAgICAgICAgIGNvbm5lY3Q9e2Nvbm5lY3R9XG4gICAgICAgICAgZGlzY29ubmVjdD17ZGlzY29ubmVjdH1cbiAgICAgICAgICBjaGFuZ2VDaGFpbklkPXtjaGFuZ2VDaGFpbklkfVxuICAgICAgICAgIGNoYWluSWQ9e3dhbGxldC5jaGFpbklkfVxuICAgICAgICAgIGlzQ29ubmVjdGVkPXt3YWxsZXQuaXNDb25uZWN0ZWQoKX1cbiAgICAgICAgICB3YWxsZXQ9e3dhbGxldC5hY2NvdW50fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0NvbnRlbnRXcmFwcGVyPlxuICAgICAgfVxuICAgIDwvPlxuICApO1xufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGhhbmRsZXMgc29tZSBjZW5hcmlvcyB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgd2FsbGV0IGNvbm5lY3Rpb24gdG8gZGlmZmVyZW50IHByb3ZpZGVycyAoZXg6IE1ldGFtYXNrKVxuICoqL1xuY29uc3QgV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIgPSBmb3J3YXJkUmVmKF9XYWxsZXRDb25uZWN0aW9uV3JhcHBlcik7XG5leHBvcnQgZGVmYXVsdCBXYWxsZXRDb25uZWN0aW9uV3JhcHBlcjtcblxuZXhwb3J0IGNvbnN0IEJhc2VXYWxsZXRDb25uZWN0aW9uV3JhcHBlciA9IGZvcndhcmRSZWYoXG4gIF9CYXNlV2FsbGV0Q29ubmVjdGlvbldyYXBwZXJcbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFZQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQTBELFNBQUFHLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBSyxHQUFBLEVBQUFJLFdBQUEsU0FBQUEsV0FBQSxJQUFBSixHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQVEsT0FBQSxDQUFBUixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQVMsS0FBQSxHQUFBTix3QkFBQSxDQUFBQyxXQUFBLE9BQUFLLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFWLEdBQUEsWUFBQVMsS0FBQSxDQUFBRSxHQUFBLENBQUFYLEdBQUEsU0FBQVksTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFqQixHQUFBLFFBQUFpQixHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxD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
@@ -1,7 +1,7 @@
1
- import { PropsWithChildren } from "react";
1
+ import React, { PropsWithChildren } from "react";
2
2
  /**
3
3
  * This utilitary component shall be used to lock the focus and disable scroll over the wrapped component
4
4
  **/
5
5
  export default function ScrollAndFocusLock({ open, children, }: PropsWithChildren<{
6
6
  open: boolean;
7
- }>): JSX.Element;
7
+ }>): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { PropsWithChildren } from "react";
2
3
  declare type PersistedIdentifier = string;
3
4
  export default function AsyncProcessProvider({ children, triggers, persistence, }: PropsWithChildren<{
@@ -11,7 +12,7 @@ export default function AsyncProcessProvider({ children, triggers, persistence,
11
12
  remove: (id: PersistedIdentifier) => void;
12
13
  recover: () => [PersistedIdentifier, Promise<void>][];
13
14
  };
14
- }>): JSX.Element;
15
+ }>): React.JSX.Element;
15
16
  export declare function useAsyncProcess(): {
16
17
  [k in keyof OnepercentUtility.AsyncQueue.Processes]: (...args: OnepercentUtility.AsyncQueue.Processes[k]) => Promise<void>;
17
18
  } & {
@@ -0,0 +1,24 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ import { FunctionMap } from "../hooks/useAsyncControl";
3
+ declare type CB = (...args: any[]) => void;
4
+ declare class Subscriber {
5
+ private sharedCbs;
6
+ private latest;
7
+ register<C extends CB>(cbId: string, cb: C): (...args: Parameters<C>) => void;
8
+ unregister<C extends CB>(cbId: string, cb: C): void;
9
+ current(cbId: string): any;
10
+ }
11
+ export declare type ContextAsyncControlContextShape = {
12
+ [controlId: string]: Subscriber;
13
+ };
14
+ export declare const ContextAsyncControlContext: React.Context<ContextAsyncControlContextShape>;
15
+ export default function ContextAsyncControlProvider({ children, }: PropsWithChildren<{}>): React.JSX.Element;
16
+ export declare function useShareState<E>(controlId: string, stateId: string): readonly [E, (value: React.SetStateAction<E>) => void];
17
+ export declare function useContextControl<E, F extends FunctionMap>(controlId: string, functionsToWrap: F): {
18
+ process: (asyncFn: () => Promise<any>) => Promise<any>;
19
+ loading: boolean;
20
+ error: Error | E | undefined;
21
+ setError: React.Dispatch<React.SetStateAction<Error | E | undefined>>;
22
+ setLoading: React.Dispatch<React.SetStateAction<boolean>>;
23
+ } & F;
24
+ export {};
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ContextAsyncControlContext = void 0;
7
+ exports.default = ContextAsyncControlProvider;
8
+ exports.useContextControl = useContextControl;
9
+ exports.useShareState = useShareState;
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _useAsyncControl = require("../hooks/useAsyncControl");
12
+ 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); }
13
+ 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; }
14
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
23
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
24
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
26
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
27
+ let Subscriber = /*#__PURE__*/function () {
28
+ function Subscriber() {
29
+ _classCallCheck(this, Subscriber);
30
+ _defineProperty(this, "sharedCbs", {});
31
+ _defineProperty(this, "latest", {});
32
+ }
33
+ _createClass(Subscriber, [{
34
+ key: "register",
35
+ value: function register(cbId, cb) {
36
+ var _this = this;
37
+ if (!this.sharedCbs[cbId]) this.sharedCbs[cbId] = [];
38
+ this.sharedCbs[cbId].push(cb);
39
+ return function () {
40
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
41
+ args[_key] = arguments[_key];
42
+ }
43
+ _this.latest[cbId] = args;
44
+ for (let cb of _this.sharedCbs[cbId]) cb.apply(void 0, args);
45
+ };
46
+ }
47
+ }, {
48
+ key: "unregister",
49
+ value: function unregister(cbId, cb) {
50
+ const cbIdx = this.sharedCbs[cbId].indexOf(cb);
51
+ this.sharedCbs[cbId].splice(cbIdx, 1);
52
+ }
53
+ }, {
54
+ key: "current",
55
+ value: function current(cbId) {
56
+ return this.latest[cbId];
57
+ }
58
+ }]);
59
+ return Subscriber;
60
+ }();
61
+ const ContextAsyncControlContext = /*#__PURE__*/(0, _react.createContext)(null);
62
+ exports.ContextAsyncControlContext = ContextAsyncControlContext;
63
+ function ContextAsyncControlProvider(_ref) {
64
+ let children = _ref.children;
65
+ return /*#__PURE__*/_react.default.createElement(ContextAsyncControlContext.Provider, {
66
+ value: {}
67
+ }, children);
68
+ }
69
+ function useShareState(controlId, stateId) {
70
+ const ctx = (0, _react.useContext)(ContextAsyncControlContext);
71
+ const _useState = (0, _react.useState)(function () {
72
+ var _ctx$controlId$curren;
73
+ if (!ctx[controlId]) ctx[controlId] = new Subscriber();
74
+ const initAs = (_ctx$controlId$curren = ctx[controlId].current(stateId)) === null || _ctx$controlId$curren === void 0 ? void 0 : _ctx$controlId$curren[0];
75
+ return initAs;
76
+ }),
77
+ _useState2 = _slicedToArray(_useState, 2),
78
+ state = _useState2[0],
79
+ setLocalState = _useState2[1];
80
+ const wrappedSetState = (0, _react.useMemo)(function () {
81
+ return ctx[controlId].register(stateId, setLocalState);
82
+ }, []);
83
+ (0, _react.useInsertionEffect)(function () {
84
+ return function () {
85
+ ctx[controlId].unregister(stateId, setLocalState);
86
+ };
87
+ }, []);
88
+ return [state, wrappedSetState];
89
+ }
90
+ function useContextControl(controlId, functionsToWrap) {
91
+ const _useShareState = useShareState(controlId, "error"),
92
+ _useShareState2 = _slicedToArray(_useShareState, 2),
93
+ error = _useShareState2[0],
94
+ setError = _useShareState2[1];
95
+ const _useShareState3 = useShareState(controlId, "loading"),
96
+ _useShareState4 = _slicedToArray(_useShareState3, 2),
97
+ loading = _useShareState4[0],
98
+ setLoading = _useShareState4[1];
99
+ return (0, _useAsyncControl.useRawAsynControl)(functionsToWrap, [error, setError], [loading, setLoading]);
100
+ }
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQXN5bmNDb250cm9sIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJyZXR1cm4iLCJpc0FycmF5IiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJOdW1iZXIiLCJTdWJzY3JpYmVyIiwicmVnaXN0ZXIiLCJjYklkIiwiY2IiLCJfdGhpcyIsInNoYXJlZENicyIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsImxhdGVzdCIsImFwcGx5IiwidW5yZWdpc3RlciIsImNiSWR4IiwiaW5kZXhPZiIsInNwbGljZSIsImN1cnJlbnQiLCJDb250ZXh0QXN5bmNDb250cm9sQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJleHBvcnRzIiwiQ29udGV4dEFzeW5jQ29udHJvbFByb3ZpZGVyIiwiX3JlZiIsImNoaWxkcmVuIiwiY3JlYXRlRWxlbWVudCIsIlByb3ZpZGVyIiwidXNlU2hhcmVTdGF0ZSIsImNvbnRyb2xJZCIsInN0YXRlSWQiLCJjdHgiLCJ1c2VDb250ZXh0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfY3R4JGNvbnRyb2xJZCRjdXJyZW4iLCJpbml0QXMiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRMb2NhbFN0YXRlIiwid3JhcHBlZFNldFN0YXRlIiwidXNlTWVtbyIsInVzZUluc2VydGlvbkVmZmVjdCIsInVzZUNvbnRleHRDb250cm9sIiwiZnVuY3Rpb25zVG9XcmFwIiwiX3VzZVNoYXJlU3RhdGUiLCJfdXNlU2hhcmVTdGF0ZTIiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNoYXJlU3RhdGUzIiwiX3VzZVNoYXJlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJ1c2VSYXdBc3luQ29udHJvbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L0NvbnRleHRBc3luY0NvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VFZmZlY3QsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZ1bmN0aW9uTWFwLCB1c2VSYXdBc3luQ29udHJvbCB9IGZyb20gXCIuLi9ob29rcy91c2VBc3luY0NvbnRyb2xcIjtcblxudHlwZSBDQiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbmNsYXNzIFN1YnNjcmliZXIge1xuICBwcml2YXRlIHNoYXJlZENiczogeyBbaWQ6IHN0cmluZ106IEZ1bmN0aW9uW10gfSA9IHt9O1xuICBwcml2YXRlIGxhdGVzdDoge1xuICAgIFtpZDogc3RyaW5nXTogYW55O1xuICB9ID0ge307XG5cbiAgcmVnaXN0ZXI8QyBleHRlbmRzIENCPihjYklkOiBzdHJpbmcsIGNiOiBDKSB7XG4gICAgaWYgKCF0aGlzLnNoYXJlZENic1tjYklkXSkgdGhpcy5zaGFyZWRDYnNbY2JJZF0gPSBbXTtcbiAgICB0aGlzLnNoYXJlZENic1tjYklkXS5wdXNoKGNiKTtcbiAgICByZXR1cm4gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Qz4pID0+IHtcbiAgICAgIHRoaXMubGF0ZXN0W2NiSWRdID0gYXJncztcbiAgICAgIGZvciAobGV0IGNiIG9mIHRoaXMuc2hhcmVkQ2JzW2NiSWRdKSBjYiguLi5hcmdzKTtcbiAgICB9O1xuICB9XG4gIHVucmVnaXN0ZXI8QyBleHRlbmRzIENCPihjYklkOiBzdHJpbmcsIGNiOiBDKSB7XG4gICAgY29uc3QgY2JJZHggPSB0aGlzLnNoYXJlZENic1tjYklkXS5pbmRleE9mKGNiKTtcbiAgICB0aGlzLnNoYXJlZENic1tjYklkXS5zcGxpY2UoY2JJZHgsIDEpO1xuICB9XG4gIGN1cnJlbnQoY2JJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0W2NiSWRdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRBc3luY0NvbnRyb2xDb250ZXh0U2hhcGUgPSB7XG4gIFtjb250cm9sSWQ6IHN0cmluZ106IFN1YnNjcmliZXI7XG59O1xuZXhwb3J0IGNvbnN0IENvbnRleHRBc3luY0NvbnRyb2xDb250ZXh0ID1cbiAgY3JlYXRlQ29udGV4dDxDb250ZXh0QXN5bmNDb250cm9sQ29udGV4dFNoYXBlPihudWxsIGFzIGFueSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbnRleHRBc3luY0NvbnRyb2xQcm92aWRlcih7XG4gIGNoaWxkcmVuLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48e30+KSB7XG4gIHJldHVybiAoXG4gICAgPENvbnRleHRBc3luY0NvbnRyb2xDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7fX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db250ZXh0QXN5bmNDb250cm9sQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNoYXJlU3RhdGU8RT4oY29udHJvbElkOiBzdHJpbmcsIHN0YXRlSWQ6IHN0cmluZykge1xuICBjb25zdCBjdHggPSB1c2VDb250ZXh0KENvbnRleHRBc3luY0NvbnRyb2xDb250ZXh0KTtcbiAgY29uc3QgW3N0YXRlLCBzZXRMb2NhbFN0YXRlXSA9IHVzZVN0YXRlPEU+KCgpID0+IHtcbiAgICBpZiAoIWN0eFtjb250cm9sSWRdKSBjdHhbY29udHJvbElkXSA9IG5ldyBTdWJzY3JpYmVyKCk7XG4gICAgY29uc3QgaW5pdEFzID0gY3R4W2NvbnRyb2xJZF0uY3VycmVudChzdGF0ZUlkKT8uWzBdIGFzIEU7XG4gICAgcmV0dXJuIGluaXRBcztcbiAgfSk7XG5cbiAgY29uc3Qgd3JhcHBlZFNldFN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGN0eFtjb250cm9sSWRdLnJlZ2lzdGVyKHN0YXRlSWQsIHNldExvY2FsU3RhdGUpO1xuICB9LCBbXSk7XG5cbiAgdXNlSW5zZXJ0aW9uRWZmZWN0KFxuICAgICgpID0+ICgpID0+IHtcbiAgICAgIGN0eFtjb250cm9sSWRdLnVucmVnaXN0ZXIoc3RhdGVJZCwgc2V0TG9jYWxTdGF0ZSk7XG4gICAgfSxcbiAgICBbXVxuICApO1xuXG4gIHJldHVybiBbc3RhdGUsIHdyYXBwZWRTZXRTdGF0ZV0gYXMgY29uc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb250ZXh0Q29udHJvbDxFLCBGIGV4dGVuZHMgRnVuY3Rpb25NYXA+KFxuICBjb250cm9sSWQ6IHN0cmluZyxcbiAgZnVuY3Rpb25zVG9XcmFwOiBGXG4pIHtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTaGFyZVN0YXRlPEUgfCBFcnJvciB8IHVuZGVmaW5lZD4oXG4gICAgY29udHJvbElkLFxuICAgIFwiZXJyb3JcIlxuICApO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTaGFyZVN0YXRlPGJvb2xlYW4+KGNvbnRyb2xJZCwgXCJsb2FkaW5nXCIpO1xuXG4gIHJldHVybiB1c2VSYXdBc3luQ29udHJvbChcbiAgICBmdW5jdGlvbnNUb1dyYXAsXG4gICAgW2Vycm9yLCBzZXRFcnJvcl0sXG4gICAgW2xvYWRpbmcsIHNldExvYWRpbmddXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQVNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFBMEUsU0FBQUUseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFKLHdCQUFBUSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFB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
@@ -1,5 +1,5 @@
1
1
  import { createBrowserHistory } from "history";
2
- import { PropsWithChildren } from "react";
2
+ import React, { PropsWithChildren } from "react";
3
3
  export declare type CustomState = {
4
4
  internalNavigation?: boolean;
5
5
  };
@@ -10,4 +10,4 @@ export default function CustomBrowserRouter({ children, beforeRouteChange, }: Pr
10
10
  * @returns The new route
11
11
  */
12
12
  beforeRouteChange?: (newRoute: string, history: ReturnType<typeof createBrowserHistory>) => string;
13
- }>): JSX.Element;
13
+ }>): React.JSX.Element;
@@ -7,11 +7,36 @@ import Button from "../components/Button";
7
7
  import CheckBox from "../components/CheckBox";
8
8
  import Radio from "../components/Radio/Radio";
9
9
  import { FileInputViewProps } from "../components/FileInput/View/View.types";
10
+ import { AnswerByField, GenericFormFieldProps } from "../components/Form/v2/FormField/FormField.types";
11
+ import { UploadTask } from "firebase/storage";
10
12
  declare type DeepPartial<T> = {
11
13
  [P in keyof T]?: NonNullable<T[P]> extends Function ? T[P] : DeepPartial<T[P]>;
12
14
  };
13
15
  export declare type OneUIContextSpecs = {
14
16
  component: {
17
+ collapsable: {
18
+ className: string;
19
+ };
20
+ form: {
21
+ titleVariant: OnepercentUtility.UIElements.TextVariants;
22
+ labelVariant: OnepercentUtility.UIElements.TextVariants;
23
+ /** Label shown when a field is optional */
24
+ optionalLabel: string;
25
+ /** Label shown when a required field was not provided */
26
+ requiredLabel: string;
27
+ onFileUpload(questionId: string, file: File): UploadTask;
28
+ extensions?: {
29
+ [K in OnepercentUtility.UIElements.FormExtension["fields"]["type"]]: {
30
+ Input: (props: GenericFormFieldProps<K>) => ReactElement;
31
+ validator: (answer: AnswerByField<{
32
+ type: K;
33
+ }>) => {
34
+ isValid: boolean;
35
+ error?: string;
36
+ };
37
+ };
38
+ };
39
+ };
15
40
  text?: {
16
41
  className?: {
17
42
  [k in React.ComponentProps<typeof import("../components/Text")["default"]>["type"]]?: string;
@@ -80,6 +105,9 @@ export declare type OneUIContextSpecs = {
80
105
  adaptiveDialog: {
81
106
  dialogClassName: string;
82
107
  backdropClassName: string;
108
+ variant: {
109
+ [k in OnepercentUtility.UIElements.AdaptiveDialogVariants]: string;
110
+ };
83
111
  };
84
112
  adaptiveSidebar: {
85
113
  className: string;
@@ -108,7 +136,7 @@ export declare type OneUIContextSpecs = {
108
136
  declare type ContextConfigSpecs = DeepPartial<OneUIContextSpecs>;
109
137
  export default function OneUIProvider({ children, config, }: PropsWithChildren<{
110
138
  config: ContextConfigSpecs;
111
- }>): JSX.Element;
139
+ }>): React.JSX.Element;
112
140
  export declare function useOneUIContext(): OneUIContextSpecs;
113
141
  export declare function useOneUIView<P extends FieldPath<OneUIContextSpecs>>(oneuiConfigPath: P, componentName: string): NonNullable<import("type-fest/source/get").GetWithPath<OneUIContextSpecs, P extends string ? import("type-fest").Split<import("type-fest/source/get").FixPathSquareBrackets<P>, "."> : P, {}>>;
114
142
  export declare function useOneUIConfig<P extends FieldPath<OneUIContextSpecs>, T extends Get<OneUIContextSpecs, P>>(prop: P, defaultValue?: T): NonNullable<Get<OneUIContextSpecs, P>>;
@@ -99,4 +99,4 @@ function useCurrentImageScale() {
99
99
  const context = (0, _react.useContext)(Context);
100
100
  return context.state.imageScale;
101
101
  }
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVyZ2UiLCJfY2xvbmVEZWVwIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQWRhcHRpdmVJbWFnZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiT25lVUlQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNvbmZpZyIsInByZXZDdHgiLCJ1c2VDb250ZXh0Iiwic2NhbGUiLCJ1c2VBZGFwdGl2ZUltYWdlIiwibWVyZ2VkQ29uZmlnIiwidXNlTWVtbyIsIm1lcmdlIiwiY2xvbmUiLCJzdGF0ZSIsImltYWdlU2NhbGUiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInBhdGhUb0pzb24iLCJwYXRoIiwiZXhhbXBsZUNvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNwbGl0Iiwic2xpY2UiLCJyZXBsYWNlIiwiY29uY2F0IiwicmVkdWNlIiwicmVzdWx0IiwiaWR4IiwiYXJyIiwiciIsImsiLCJFcnJvcldyYXBwZXIiLCJvcmlnaW5hbE9iamVjdCIsIlByb3h5IiwiX3RhcmdldCIsInRvUHJpbWl0aXZlIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJlIiwicGF0aEpzb24iLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1c2VPbmVVSUNvbnRleHQiLCJjb250ZXh0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlT25lVUlWaWV3Iiwib25ldWlDb25maWdQYXRoIiwiY29tcG9uZW50TmFtZSIsInByb3ZpZGVkVmFsdWUiLCJ1c2VPbmVVSUNvbmZpZyIsInByb3AiLCJkZWZhdWx0VmFsdWUiLCJ2YWwiLCJlbmRzV2l0aCIsInVzZUN1cnJlbnRJbWFnZVNjYWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHQvT25lVUlQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJsb2Rhc2gvbWVyZ2VcIjtcbmltcG9ydCBjbG9uZSBmcm9tIFwibG9kYXNoL2Nsb25lRGVlcFwiO1xuaW1wb3J0IHsgR2V0IH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFByb3BzLCBSZWFjdEVsZW1lbnQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIFByb3BzV2l0aENoaWxkcmVuLCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGaWVsZFBhdGggfSBmcm9tIFwiLi4vdHlwZS11dGlsc1wiO1xuaW1wb3J0IHVzZUFkYXB0aXZlSW1hZ2UgZnJvbSBcIi4uL2hvb2tzL3VpL3VzZUFkYXB0aXZlSW1hZ2VcIjtcbmltcG9ydCB7IEltYWdlU2NhbGVzIH0gZnJvbSBcIkBtdXJpdGF2by93ZWJwYWNrLW1pY3JvZnJvbnRlbmQtc2NyaXB0cy9iaW4vdHlwZXMvSW1hZ2VTY2FsZXNcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2NvbXBvbmVudHMvQnV0dG9uXCI7XG5pbXBvcnQgQ2hlY2tCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvQ2hlY2tCb3hcIjtcbmltcG9ydCBSYWRpbyBmcm9tIFwiLi4vY29tcG9uZW50cy9SYWRpby9SYWRpb1wiO1xuaW1wb3J0IHsgRmlsZUlucHV0UHJvcHMgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9GaWxlSW5wdXQvRmlsZUlucHV0XCI7XG5pbXBvcnQgeyBGaWxlSW5wdXRWaWV3UHJvcHMgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9GaWxlSW5wdXQvVmlldy9WaWV3LnR5cGVzXCI7XG5cbnR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogTm9uTnVsbGFibGU8VFtQXT4gZXh0ZW5kcyBGdW5jdGlvblxuICAgID8gVFtQXVxuICAgIDogRGVlcFBhcnRpYWw8VFtQXT47XG59O1xuXG5leHBvcnQgdHlwZSBPbmVVSUNvbnRleHRTcGVjcyA9IHtcbiAgY29tcG9uZW50OiB7XG4gICAgdGV4dD86IHtcbiAgICAgIGNsYXNzTmFtZT86IHtcbiAgICAgICAgW2sgaW4gUmVhY3QuQ29tcG9uZW50UHJvcHM8XG4gICAgICAgICAgdHlwZW9mIGltcG9ydChcIi4uL2NvbXBvbmVudHMvVGV4dFwiKVtcImRlZmF1bHRcIl1cbiAgICAgICAgPltcInR5cGVcIl1dPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIGh0bWxUYWc/OiB7XG4gICAgICAgIFtrIGluIFJlYWN0LkNvbXBvbmVudFByb3BzPFxuICAgICAgICAgIHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL1RleHRcIilbXCJkZWZhdWx0XCJdXG4gICAgICAgID5bXCJ0eXBlXCJdXT86IFwicFwiIHwgXCJoMVwiIHwgXCJoMlwiIHwgXCJoM1wiIHwgXCJoNFwiIHwgXCJoNVwiIHwgXCJoNlwiO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGJ1dHRvbj86IHtcbiAgICAgIGNsYXNzTmFtZT86IHtcbiAgICAgICAgW2sgaW4gTm9uTnVsbGFibGU8XG4gICAgICAgICAgUmVhY3QuQ29tcG9uZW50UHJvcHM8XG4gICAgICAgICAgICB0eXBlb2YgaW1wb3J0KFwiLi4vY29tcG9uZW50cy9CdXR0b25cIilbXCJkZWZhdWx0XCJdXG4gICAgICAgICAgPltcInZhcmlhbnRcIl1cbiAgICAgICAgPl0/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgQ29tcG9uZW50PzogKHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgaW5wdXQ6IHtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgYm9yZGVyOiBib29sZWFuO1xuICAgIH07XG4gICAgZmlsZUlucHV0OiB7XG4gICAgICBWaWV3OiAocHJvcHM6IEZpbGVJbnB1dFZpZXdQcm9wcykgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgcGFzc3dvcmRJbnB1dDoge1xuICAgICAgaWNvblNyYzoge1xuICAgICAgICBwYXNzd29yZEhpZGRlbjogc3RyaW5nO1xuICAgICAgICBwYXNzd29yZFZpc2libGU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBhc3luY1dyYXBwZXI6IHtcbiAgICAgIExvYWRpbmdDb21wb25lbnQ/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgICAgIG1lc3NhZ2VzOiB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICByZXRyeUJ0bjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHNlbGVjdDoge1xuICAgICAgU3RhdGVJbmRpY2F0b3I6IChwcm9wczogeyBvcGVuOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgY2xhc3NOYW1lPzoge1xuICAgICAgICBkcm9wZG93bj86IHN0cmluZztcbiAgICAgICAgaXRlbT86IHN0cmluZztcbiAgICAgICAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGhlYWRlcjoge1xuICAgICAgTG9nb0ltYWdlOiAoKSA9PiBKU1guRWxlbWVudDtcbiAgICAgIE1vcmVPcHRpb25zOiAoeyBvcGVuIH06IHsgb3BlbjogYm9vbGVhbiB9KSA9PiBKU1guRWxlbWVudDtcbiAgICB9O1xuICAgIHRhYmxlOiB7XG4gICAgICBjb250cm9sczoge1xuICAgICAgICBQcmV2UGFnZTogKHsgZGlzYWJsZWQgfTogeyBkaXNhYmxlZDogYm9vbGVhbiB9KSA9PiBKU1guRWxlbWVudDtcbiAgICAgICAgTmV4dFBhZ2U6ICh7IGRpc2FibGVkIH06IHsgZGlzYWJsZWQ6IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICB9O1xuICAgIH07XG4gICAgdG9vbHRpcDoge1xuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIH07XG4gICAgYWRhcHRpdmVEaWFsb2c6IHtcbiAgICAgIGRpYWxvZ0NsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgYmFja2Ryb3BDbGFzc05hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIGFkYXB0aXZlU2lkZWJhcjoge1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICBjb250cm9sQ2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICBjaGVja2JveDoge1xuICAgICAgQ29tcG9uZW50PzogKHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2hlY2tCb3g+KSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgfTtcbiAgICByYWRpbzoge1xuICAgICAgQ29tcG9uZW50PzogKHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgUmFkaW8+KSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgfTtcbiAgfTtcbiAgaG9vazoge1xuICAgIHVpOiB7XG4gICAgICB1c2VQYWdpbmF0aW9uQ29udHJvbHM6IHtcbiAgICAgICAgTGVmdENvbnRyb2w6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgUmlnaHRDb250cm9sOiAoKSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgc3RhdGU6IHtcbiAgICBpbWFnZVNjYWxlOiBJbWFnZVNjYWxlcztcbiAgfTtcbn07XG5cbnR5cGUgQ29udGV4dENvbmZpZ1NwZWNzID0gRGVlcFBhcnRpYWw8T25lVUlDb250ZXh0U3BlY3M+O1xuXG5jb25zdCBDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxDb250ZXh0Q29uZmlnU3BlY3M+KG51bGwgYXMgYW55KTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gT25lVUlQcm92aWRlcih7XG4gIGNoaWxkcmVuLFxuICBjb25maWcsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjx7IGNvbmZpZzogQ29udGV4dENvbmZpZ1NwZWNzIH0+KSB7XG4gIGNvbnN0IHByZXZDdHggPSB1c2VDb250ZXh0KENvbnRleHQpO1xuICBjb25zdCBzY2FsZSA9IHVzZUFkYXB0aXZlSW1hZ2UoKTtcbiAgY29uc3QgbWVyZ2VkQ29uZmlnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlKGNsb25lKHByZXZDdHgpLCBjb25maWcsIHtcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIGltYWdlU2NhbGU6IHNjYWxlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSwgW3ByZXZDdHgsIGNvbmZpZywgc2NhbGVdKTtcblxuICByZXR1cm4gPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e21lcmdlZENvbmZpZ30+e2NoaWxkcmVufTwvQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmZ1bmN0aW9uIHBhdGhUb0pzb24oXG4gIHBhdGg6IHN0cmluZyxcbiAga2V5Pzogc3RyaW5nIHwgU3ltYm9sLFxuICBleGFtcGxlQ29uZmlnID0gXCJUSEVfTUlTU0lOR19DT05GSUdcIlxuKSB7XG4gIGlmICgha2V5KSB7XG4gICAga2V5ID0gcGF0aC5zcGxpdChcIi5cIikuc2xpY2UoLTEpWzBdO1xuICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoYC4ke2tleX1gLCBcIlwiKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoXG4gICAgLnNwbGl0KFwiLlwiKVxuICAgIC5jb25jYXQoa2V5IGFzIHN0cmluZylcbiAgICAucmVkdWNlKChyZXN1bHQsIGtleSwgaWR4LCBhcnIpID0+IHtcbiAgICAgIChhcnIuc2xpY2UoMCwgaWR4KS5yZWR1Y2UoKHIsIGspID0+IChyIGFzIGFueSlba10sIHJlc3VsdCkgYXMgYW55KVtrZXldID1cbiAgICAgICAgaWR4ID09PSBhcnIubGVuZ3RoIC0gMSA/IGV4YW1wbGVDb25maWcgOiB7fTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBFcnJvcldyYXBwZXIoXG4gIG9yaWdpbmFsT2JqZWN0OiBhbnksXG4gIHBhdGg6IHN0cmluZyA9IFwiY29uZmlnXCJcbik6IHR5cGVvZiBQcm94eSB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAgdHlwZW9mIG9yaWdpbmFsT2JqZWN0ICE9PSBcIm9iamVjdFwiID8ge30gOiBvcmlnaW5hbE9iamVjdCB8fCB7fSxcbiAgICB7XG4gICAgICBnZXQoX3RhcmdldCwga2V5KSB7XG4gICAgICAgIGlmIChrZXkgPT09IFN5bWJvbC50b1ByaW1pdGl2ZSkge1xuICAgICAgICAgIHJldHVybiAoKSA9PiBfdGFyZ2V0W2tleV07XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsT2JqZWN0W2tleV07XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKVxuICAgICAgICAgICAgcmV0dXJuIEVycm9yV3JhcHBlcih2YWx1ZSwgW3BhdGgsIGtleV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIuXCIpKTtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zdCBwYXRoSnNvbiA9IHBhdGhUb0pzb24ocGF0aCwga2V5KTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQSBjb21wb25lbnQgaXMgdXNpbmcgdGhlIFVJIGNvbmZpZyAke1twYXRoLCBrZXldLmpvaW4oXCIuXCIpfS5cblxuUGxlYXNlIGRlZmluZSBpdCB1c2luZzpcbmltcG9ydCBPbmVVSVByb3ZpZGVyIGZyb20gXCJAb25lcGVyY2VudC9vbmUtdWkvZGlzdC9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcblxuICAuLi5cbiR7YDxPbmVVSVByb3ZpZGVyIGNvbmZpZz17JHtKU09OLnN0cmluZ2lmeShwYXRoSnNvbiwgbnVsbCwgNCl9fT5cbi4uLlxuPC9PbmVVSVByb3ZpZGVyPmAucmVwbGFjZSgvWyBdL2csIFwiLVwiKX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPbmVVSUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKVxuICAgIHJldHVybiBFcnJvcldyYXBwZXIoY29udGV4dCkgYXMgdW5rbm93biBhcyBPbmVVSUNvbnRleHRTcGVjcztcblxuICByZXR1cm4gY29udGV4dCBhcyBPbmVVSUNvbnRleHRTcGVjcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uZVVJVmlldzxQIGV4dGVuZHMgRmllbGRQYXRoPE9uZVVJQ29udGV4dFNwZWNzPj4oXG4gIG9uZXVpQ29uZmlnUGF0aDogUCxcbiAgY29tcG9uZW50TmFtZTogc3RyaW5nXG4pIHtcbiAgY29uc3QgcHJvdmlkZWRWYWx1ZSA9IHVzZU9uZVVJQ29uZmlnKG9uZXVpQ29uZmlnUGF0aCk7XG4gIGlmICghcHJvdmlkZWRWYWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGNvbXBvbmVudCAke2NvbXBvbmVudE5hbWV9IHJlcXVpcmVzIGEgdmlldyB0byBiZSBzZXQgb24gT25lVUkgaW5pdGlhbGl6YXRpb25cblxuVmlld3MgcmVhZHkgZm9yIHVzZSB3aXRoIHRoaXMgY29tcG9uZW50IHNoYWxsIGJlIGF2YWlsYWJsZSBhdDpcbmltcG9ydCBTb21lVmlldyBmcm9tIFwiQG9uZXBlcmNlbnRpby9vbmUtdWkvZGlzdC9jb21wb25lbnRzLyR7Y29tcG9uZW50TmFtZX0vVmlldy9Tb21lVmlld1wiO1xuICAgIFxuUGxlYXNlIGRlZmluZSBpdCB1c2luZzpcbmltcG9ydCBPbmVVSVByb3ZpZGVyIGZyb20gXCJAb25lcGVyY2VudGlvL29uZS11aS9kaXN0L2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuXG4gIC4uLlxuJHtgPE9uZVVJUHJvdmlkZXIgY29uZmlnPXske0pTT04uc3RyaW5naWZ5KFxuICBwYXRoVG9Kc29uKG9uZXVpQ29uZmlnUGF0aCwgdW5kZWZpbmVkLCBcIlNvbWVWaWV3XCIpLFxuICBudWxsLFxuICA0XG4pfX0+XG4uLi5cbjwvT25lVUlQcm92aWRlcj5gLnJlcGxhY2UoL1sgXS9nLCBcIi1cIil9YCk7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZWRWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uZVVJQ29uZmlnPFxuICBQIGV4dGVuZHMgRmllbGRQYXRoPE9uZVVJQ29udGV4dFNwZWNzPixcbiAgVCBleHRlbmRzIEdldDxPbmVVSUNvbnRleHRTcGVjcywgUD5cbj4ocHJvcDogUCwgZGVmYXVsdFZhbHVlPzogVCk6IE5vbk51bGxhYmxlPEdldDxPbmVVSUNvbnRleHRTcGVjcywgUD4+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgY29uc3QgdmFsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0KGNvbnRleHQsIHByb3ApO1xuICAgIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLmVuZHNXaXRoKFwiLkNvbXBvbmVudFwiKSB8fFxuICAgICAgcHJvcC5lbmRzV2l0aChcIi5WaWV3XCIpXG4gICAgKVxuICAgICAgcmV0dXJuICh2YWwgYXMgYW55KSB8fCBkZWZhdWx0VmFsdWU7XG5cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHJldHVybiB2YWwgYXMgYW55O1xuICAgIHJldHVybiBFcnJvcldyYXBwZXIodmFsIHx8IGRlZmF1bHRWYWx1ZSkgYXMgdW5rbm93biBhcyBOb25OdWxsYWJsZTxUPjtcbiAgfVxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBnZXQoY29udGV4dCwgcHJvcCk7XG4gIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gIHJldHVybiB2YWx1ZSB8fCBkZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDdXJyZW50SW1hZ2VTY2FsZSgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHQuc3RhdGUhLmltYWdlU2NhbGUhO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSixPQUFBO0FBR0EsSUFBQUssaUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUE0RCxTQUFBTSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtD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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVyZ2UiLCJfY2xvbmVEZWVwIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQWRhcHRpdmVJbWFnZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiT25lVUlQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNvbmZpZyIsInByZXZDdHgiLCJ1c2VDb250ZXh0Iiwic2NhbGUiLCJ1c2VBZGFwdGl2ZUltYWdlIiwibWVyZ2VkQ29uZmlnIiwidXNlTWVtbyIsIm1lcmdlIiwiY2xvbmUiLCJzdGF0ZSIsImltYWdlU2NhbGUiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInBhdGhUb0pzb24iLCJwYXRoIiwiZXhhbXBsZUNvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNwbGl0Iiwic2xpY2UiLCJyZXBsYWNlIiwiY29uY2F0IiwicmVkdWNlIiwicmVzdWx0IiwiaWR4IiwiYXJyIiwiciIsImsiLCJFcnJvcldyYXBwZXIiLCJvcmlnaW5hbE9iamVjdCIsIlByb3h5IiwiX3RhcmdldCIsInRvUHJpbWl0aXZlIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJlIiwicGF0aEpzb24iLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1c2VPbmVVSUNvbnRleHQiLCJjb250ZXh0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlT25lVUlWaWV3Iiwib25ldWlDb25maWdQYXRoIiwiY29tcG9uZW50TmFtZSIsInByb3ZpZGVkVmFsdWUiLCJ1c2VPbmVVSUNvbmZpZyIsInByb3AiLCJkZWZhdWx0VmFsdWUiLCJ2YWwiLCJlbmRzV2l0aCIsInVzZUN1cnJlbnRJbWFnZVNjYWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHQvT25lVUlQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJsb2Rhc2gvbWVyZ2VcIjtcbmltcG9ydCBjbG9uZSBmcm9tIFwibG9kYXNoL2Nsb25lRGVlcFwiO1xuaW1wb3J0IHsgR2V0IH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFByb3BzLCBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZpZWxkUGF0aCB9IGZyb20gXCIuLi90eXBlLXV0aWxzXCI7XG5pbXBvcnQgdXNlQWRhcHRpdmVJbWFnZSBmcm9tIFwiLi4vaG9va3MvdWkvdXNlQWRhcHRpdmVJbWFnZVwiO1xuaW1wb3J0IHsgSW1hZ2VTY2FsZXMgfSBmcm9tIFwiQG11cml0YXZvL3dlYnBhY2stbWljcm9mcm9udGVuZC1zY3JpcHRzL2Jpbi90eXBlcy9JbWFnZVNjYWxlc1wiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vY29tcG9uZW50cy9CdXR0b25cIjtcbmltcG9ydCBDaGVja0JveCBmcm9tIFwiLi4vY29tcG9uZW50cy9DaGVja0JveFwiO1xuaW1wb3J0IFJhZGlvIGZyb20gXCIuLi9jb21wb25lbnRzL1JhZGlvL1JhZGlvXCI7XG5pbXBvcnQgeyBGaWxlSW5wdXRWaWV3UHJvcHMgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9GaWxlSW5wdXQvVmlldy9WaWV3LnR5cGVzXCI7XG5pbXBvcnQge1xuICBBbnN3ZXJCeUZpZWxkLFxuICBHZW5lcmljRm9ybUZpZWxkUHJvcHMsXG59IGZyb20gXCIuLi9jb21wb25lbnRzL0Zvcm0vdjIvRm9ybUZpZWxkL0Zvcm1GaWVsZC50eXBlc1wiO1xuaW1wb3J0IHsgVXBsb2FkVGFzayB9IGZyb20gXCJmaXJlYmFzZS9zdG9yYWdlXCI7XG5cbnR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogTm9uTnVsbGFibGU8VFtQXT4gZXh0ZW5kcyBGdW5jdGlvblxuICAgID8gVFtQXVxuICAgIDogRGVlcFBhcnRpYWw8VFtQXT47XG59O1xuXG5leHBvcnQgdHlwZSBPbmVVSUNvbnRleHRTcGVjcyA9IHtcbiAgY29tcG9uZW50OiB7XG4gICAgY29sbGFwc2FibGU6IHtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgZm9ybToge1xuICAgICAgdGl0bGVWYXJpYW50OiBPbmVwZXJjZW50VXRpbGl0eS5VSUVsZW1lbnRzLlRleHRWYXJpYW50cztcbiAgICAgIGxhYmVsVmFyaWFudDogT25lcGVyY2VudFV0aWxpdHkuVUlFbGVtZW50cy5UZXh0VmFyaWFudHM7XG4gICAgICAvKiogTGFiZWwgc2hvd24gd2hlbiBhIGZpZWxkIGlzIG9wdGlvbmFsICovXG4gICAgICBvcHRpb25hbExhYmVsOiBzdHJpbmc7XG5cbiAgICAgIC8qKiBMYWJlbCBzaG93biB3aGVuIGEgcmVxdWlyZWQgZmllbGQgd2FzIG5vdCBwcm92aWRlZCAqL1xuICAgICAgcmVxdWlyZWRMYWJlbDogc3RyaW5nO1xuXG4gICAgICBvbkZpbGVVcGxvYWQocXVlc3Rpb25JZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogVXBsb2FkVGFzaztcblxuICAgICAgZXh0ZW5zaW9ucz86IHtcbiAgICAgICAgW0sgaW4gT25lcGVyY2VudFV0aWxpdHkuVUlFbGVtZW50cy5Gb3JtRXh0ZW5zaW9uW1wiZmllbGRzXCJdW1widHlwZVwiXV06IHtcbiAgICAgICAgICBJbnB1dDogKHByb3BzOiBHZW5lcmljRm9ybUZpZWxkUHJvcHM8Sz4pID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgICB2YWxpZGF0b3I6IChhbnN3ZXI6IEFuc3dlckJ5RmllbGQ8eyB0eXBlOiBLIH0+KSA9PiB7XG4gICAgICAgICAgICBpc1ZhbGlkOiBib29sZWFuO1xuICAgICAgICAgICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICB0ZXh0Pzoge1xuICAgICAgY2xhc3NOYW1lPzoge1xuICAgICAgICBbayBpbiBSZWFjdC5Db21wb25lbnRQcm9wczxcbiAgICAgICAgICB0eXBlb2YgaW1wb3J0KFwiLi4vY29tcG9uZW50cy9UZXh0XCIpW1wiZGVmYXVsdFwiXVxuICAgICAgICA+W1widHlwZVwiXV0/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgaHRtbFRhZz86IHtcbiAgICAgICAgW2sgaW4gUmVhY3QuQ29tcG9uZW50UHJvcHM8XG4gICAgICAgICAgdHlwZW9mIGltcG9ydChcIi4uL2NvbXBvbmVudHMvVGV4dFwiKVtcImRlZmF1bHRcIl1cbiAgICAgICAgPltcInR5cGVcIl1dPzogXCJwXCIgfCBcImgxXCIgfCBcImgyXCIgfCBcImgzXCIgfCBcImg0XCIgfCBcImg1XCIgfCBcImg2XCI7XG4gICAgICB9O1xuICAgIH07XG4gICAgYnV0dG9uPzoge1xuICAgICAgY2xhc3NOYW1lPzoge1xuICAgICAgICBbayBpbiBOb25OdWxsYWJsZTxcbiAgICAgICAgICBSZWFjdC5Db21wb25lbnRQcm9wczxcbiAgICAgICAgICAgIHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL0J1dHRvblwiKVtcImRlZmF1bHRcIl1cbiAgICAgICAgICA+W1widmFyaWFudFwiXVxuICAgICAgICA+XT86IHN0cmluZztcbiAgICAgIH07XG4gICAgICBDb21wb25lbnQ/OiAocHJvcHM6IENvbXBvbmVudFByb3BzPHR5cGVvZiBCdXR0b24+KSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgfTtcbiAgICBpbnB1dDoge1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICBib3JkZXI6IGJvb2xlYW47XG4gICAgfTtcbiAgICBmaWxlSW5wdXQ6IHtcbiAgICAgIFZpZXc6IChwcm9wczogRmlsZUlucHV0Vmlld1Byb3BzKSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgfTtcbiAgICBwYXNzd29yZElucHV0OiB7XG4gICAgICBpY29uU3JjOiB7XG4gICAgICAgIHBhc3N3b3JkSGlkZGVuOiBzdHJpbmc7XG4gICAgICAgIHBhc3N3b3JkVmlzaWJsZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGFzeW5jV3JhcHBlcjoge1xuICAgICAgTG9hZGluZ0NvbXBvbmVudD86ICgpID0+IEpTWC5FbGVtZW50O1xuICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgIHJldHJ5QnRuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgc2VsZWN0OiB7XG4gICAgICBTdGF0ZUluZGljYXRvcjogKHByb3BzOiB7IG9wZW46IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICBjbGFzc05hbWU/OiB7XG4gICAgICAgIGRyb3Bkb3duPzogc3RyaW5nO1xuICAgICAgICBpdGVtPzogc3RyaW5nO1xuICAgICAgICBzZWxlY3RlZEl0ZW0/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgaGVhZGVyOiB7XG4gICAgICBMb2dvSW1hZ2U6ICgpID0+IEpTWC5FbGVtZW50O1xuICAgICAgTW9yZU9wdGlvbnM6ICh7IG9wZW4gfTogeyBvcGVuOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgIH07XG4gICAgdGFibGU6IHtcbiAgICAgIGNvbnRyb2xzOiB7XG4gICAgICAgIFByZXZQYWdlOiAoeyBkaXNhYmxlZCB9OiB7IGRpc2FibGVkOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgICBOZXh0UGFnZTogKHsgZGlzYWJsZWQgfTogeyBkaXNhYmxlZDogYm9vbGVhbiB9KSA9PiBKU1guRWxlbWVudDtcbiAgICAgIH07XG4gICAgfTtcbiAgICB0b29sdGlwOiB7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBhZGFwdGl2ZURpYWxvZzoge1xuICAgICAgZGlhbG9nQ2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICBiYWNrZHJvcENsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBbayBpbiBPbmVwZXJjZW50VXRpbGl0eS5VSUVsZW1lbnRzLkFkYXB0aXZlRGlhbG9nVmFyaWFudHNdOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgYWRhcHRpdmVTaWRlYmFyOiB7XG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICAgIGNvbnRyb2xDbGFzc05hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIGNoZWNrYm94OiB7XG4gICAgICBDb21wb25lbnQ/OiAocHJvcHM6IENvbXBvbmVudFByb3BzPHR5cGVvZiBDaGVja0JveD4pID0+IFJlYWN0RWxlbWVudDtcbiAgICB9O1xuICAgIHJhZGlvOiB7XG4gICAgICBDb21wb25lbnQ/OiAocHJvcHM6IENvbXBvbmVudFByb3BzPHR5cGVvZiBSYWRpbz4pID0+IFJlYWN0RWxlbWVudDtcbiAgICB9O1xuICB9O1xuICBob29rOiB7XG4gICAgdWk6IHtcbiAgICAgIHVzZVBhZ2luYXRpb25Db250cm9sczoge1xuICAgICAgICBMZWZ0Q29udHJvbDogKCkgPT4gUmVhY3RFbGVtZW50O1xuICAgICAgICBSaWdodENvbnRyb2w6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICBzdGF0ZToge1xuICAgIGltYWdlU2NhbGU6IEltYWdlU2NhbGVzO1xuICB9O1xufTtcblxudHlwZSBDb250ZXh0Q29uZmlnU3BlY3MgPSBEZWVwUGFydGlhbDxPbmVVSUNvbnRleHRTcGVjcz47XG5cbmNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0PENvbnRleHRDb25maWdTcGVjcz4obnVsbCBhcyBhbnkpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPbmVVSVByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIGNvbmZpZyxcbn06IFByb3BzV2l0aENoaWxkcmVuPHsgY29uZmlnOiBDb250ZXh0Q29uZmlnU3BlY3MgfT4pIHtcbiAgY29uc3QgcHJldkN0eCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGNvbnN0IHNjYWxlID0gdXNlQWRhcHRpdmVJbWFnZSgpO1xuICBjb25zdCBtZXJnZWRDb25maWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2UoY2xvbmUocHJldkN0eCksIGNvbmZpZywge1xuICAgICAgc3RhdGU6IHtcbiAgICAgICAgaW1hZ2VTY2FsZTogc2NhbGUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9LCBbcHJldkN0eCwgY29uZmlnLCBzY2FsZV0pO1xuXG4gIHJldHVybiA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWVyZ2VkQ29uZmlnfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPjtcbn1cblxuZnVuY3Rpb24gcGF0aFRvSnNvbihcbiAgcGF0aDogc3RyaW5nLFxuICBrZXk/OiBzdHJpbmcgfCBTeW1ib2wsXG4gIGV4YW1wbGVDb25maWcgPSBcIlRIRV9NSVNTSU5HX0NPTkZJR1wiXG4pIHtcbiAgaWYgKCFrZXkpIHtcbiAgICBrZXkgPSBwYXRoLnNwbGl0KFwiLlwiKS5zbGljZSgtMSlbMF07XG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZShgLiR7a2V5fWAsIFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIHBhdGhcbiAgICAuc3BsaXQoXCIuXCIpXG4gICAgLmNvbmNhdChrZXkgYXMgc3RyaW5nKVxuICAgIC5yZWR1Y2UoKHJlc3VsdCwga2V5LCBpZHgsIGFycikgPT4ge1xuICAgICAgKGFyci5zbGljZSgwLCBpZHgpLnJlZHVjZSgociwgaykgPT4gKHIgYXMgYW55KVtrXSwgcmVzdWx0KSBhcyBhbnkpW2tleV0gPVxuICAgICAgICBpZHggPT09IGFyci5sZW5ndGggLSAxID8gZXhhbXBsZUNvbmZpZyA6IHt9O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIEVycm9yV3JhcHBlcihcbiAgb3JpZ2luYWxPYmplY3Q6IGFueSxcbiAgcGF0aDogc3RyaW5nID0gXCJjb25maWdcIlxuKTogdHlwZW9mIFByb3h5IHtcbiAgcmV0dXJuIG5ldyBQcm94eShcbiAgICB0eXBlb2Ygb3JpZ2luYWxPYmplY3QgIT09IFwib2JqZWN0XCIgPyB7fSA6IG9yaWdpbmFsT2JqZWN0IHx8IHt9LFxuICAgIHtcbiAgICAgIGdldChfdGFyZ2V0LCBrZXkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gU3ltYm9sLnRvUHJpbWl0aXZlKSB7XG4gICAgICAgICAgcmV0dXJuICgpID0+IF90YXJnZXRba2V5XTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3JpZ2luYWxPYmplY3Rba2V5XTtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpXG4gICAgICAgICAgICByZXR1cm4gRXJyb3JXcmFwcGVyKHZhbHVlLCBbcGF0aCwga2V5XS5maWx0ZXIoQm9vbGVhbikuam9pbihcIi5cIikpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnN0IHBhdGhKc29uID0gcGF0aFRvSnNvbihwYXRoLCBrZXkpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBBIGNvbXBvbmVudCBpcyB1c2luZyB0aGUgVUkgY29uZmlnICR7W3BhdGgsIGtleV0uam9pbihcIi5cIil9LlxuXG5QbGVhc2UgZGVmaW5lIGl0IHVzaW5nOlxuaW1wb3J0IE9uZVVJUHJvdmlkZXIgZnJvbSBcIkBvbmVwZXJjZW50L29uZS11aS9kaXN0L2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuXG4gIC4uLlxuJHtgPE9uZVVJUHJvdmlkZXIgY29uZmlnPXske0pTT04uc3RyaW5naWZ5KHBhdGhKc29uLCBudWxsLCA0KX19PlxuLi4uXG48L09uZVVJUHJvdmlkZXI+YC5yZXBsYWNlKC9bIF0vZywgXCItXCIpfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uZVVJQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpXG4gICAgcmV0dXJuIEVycm9yV3JhcHBlcihjb250ZXh0KSBhcyB1bmtub3duIGFzIE9uZVVJQ29udGV4dFNwZWNzO1xuXG4gIHJldHVybiBjb250ZXh0IGFzIE9uZVVJQ29udGV4dFNwZWNzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlWaWV3PFAgZXh0ZW5kcyBGaWVsZFBhdGg8T25lVUlDb250ZXh0U3BlY3M+PihcbiAgb25ldWlDb25maWdQYXRoOiBQLFxuICBjb21wb25lbnROYW1lOiBzdHJpbmdcbikge1xuICBjb25zdCBwcm92aWRlZFZhbHVlID0gdXNlT25lVUlDb25maWcob25ldWlDb25maWdQYXRoKTtcbiAgaWYgKCFwcm92aWRlZFZhbHVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0gcmVxdWlyZXMgYSB2aWV3IHRvIGJlIHNldCBvbiBPbmVVSSBpbml0aWFsaXphdGlvblxuXG5WaWV3cyByZWFkeSBmb3IgdXNlIHdpdGggdGhpcyBjb21wb25lbnQgc2hhbGwgYmUgYXZhaWxhYmxlIGF0OlxuaW1wb3J0IFNvbWVWaWV3IGZyb20gXCJAb25lcGVyY2VudGlvL29uZS11aS9kaXN0L2NvbXBvbmVudHMvJHtjb21wb25lbnROYW1lfS9WaWV3L1NvbWVWaWV3XCI7XG4gICAgXG5QbGVhc2UgZGVmaW5lIGl0IHVzaW5nOlxuaW1wb3J0IE9uZVVJUHJvdmlkZXIgZnJvbSBcIkBvbmVwZXJjZW50aW8vb25lLXVpL2Rpc3QvY29udGV4dC9PbmVVSVByb3ZpZGVyXCI7XG5cbiAgLi4uXG4ke2A8T25lVUlQcm92aWRlciBjb25maWc9eyR7SlNPTi5zdHJpbmdpZnkoXG4gIHBhdGhUb0pzb24ob25ldWlDb25maWdQYXRoLCB1bmRlZmluZWQsIFwiU29tZVZpZXdcIiksXG4gIG51bGwsXG4gIDRcbil9fT5cbi4uLlxuPC9PbmVVSVByb3ZpZGVyPmAucmVwbGFjZSgvWyBdL2csIFwiLVwiKX1gKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlZFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlDb25maWc8XG4gIFAgZXh0ZW5kcyBGaWVsZFBhdGg8T25lVUlDb250ZXh0U3BlY3M+LFxuICBUIGV4dGVuZHMgR2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPlxuPihwcm9wOiBQLCBkZWZhdWx0VmFsdWU/OiBUKTogTm9uTnVsbGFibGU8R2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPj4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChDb250ZXh0KTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICBjb25zdCB2YWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBnZXQoY29udGV4dCwgcHJvcCk7XG4gICAgfSwgW2NvbnRleHQsIHByb3BdKTtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiIHx8XG4gICAgICB0eXBlb2YgdmFsID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3AuZW5kc1dpdGgoXCIuQ29tcG9uZW50XCIpIHx8XG4gICAgICBwcm9wLmVuZHNXaXRoKFwiLlZpZXdcIilcbiAgICApXG4gICAgICByZXR1cm4gKHZhbCBhcyBhbnkpIHx8IGRlZmF1bHRWYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHZhbCBhcyBhbnk7XG4gICAgcmV0dXJuIEVycm9yV3JhcHBlcih2YWwgfHwgZGVmYXVsdFZhbHVlKSBhcyB1bmtub3duIGFzIE5vbk51bGxhYmxlPFQ+O1xuICB9XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGdldChjb250ZXh0LCBwcm9wKTtcbiAgfSwgW2NvbnRleHQsIHByb3BdKTtcbiAgcmV0dXJuIHZhbHVlIHx8IGRlZmF1bHRWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUN1cnJlbnRJbWFnZVNjYWxlKCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChDb250ZXh0KTtcblxuICByZXR1cm4gY29udGV4dC5zdGF0ZSEuaW1hZ2VTY2FsZSE7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxNQUFBLEdBQUFD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
@@ -1,2 +1,2 @@
1
1
  /// <reference types="react" />
2
- export default function useLocalStorage<T extends any>(id: string, defaultValue: T): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
2
+ export default function useLocalStorage<T extends any>(id: string, defaultValue: Exclude<T, undefined>): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
@@ -19,6 +19,8 @@ const toString = function toString(val) {
19
19
  return !val ? "0" : "1";
20
20
  case "string":
21
21
  return val;
22
+ case "object":
23
+ return JSON.stringify(val);
22
24
  default:
23
25
  throw new Error("Doesn't know how to handle type " + _typeof(val));
24
26
  }
@@ -29,6 +31,8 @@ const fromString = function fromString(type, value) {
29
31
  return value === "1";
30
32
  case "string":
31
33
  return value;
34
+ case "object":
35
+ return JSON.parse(value);
32
36
  default:
33
37
  throw new Error("Doesn't know how to handle type " + type);
34
38
  }
@@ -47,4 +51,4 @@ function useLocalStorage(id, defaultValue) {
47
51
  }, [val]);
48
52
  return [val, setVal];
49
53
  }
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsInJldHVybiIsImlzQXJyYXkiLCJfdHlwZW9mIiwib2JqIiwiRFVEIiwidmFsIiwiRXJyb3IiLCJmcm9tU3RyaW5nIiwidHlwZSIsInVzZUxvY2FsU3RvcmFnZSIsImlkIiwiZGVmYXVsdFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJwZXJzaXN0ZWRWYWx1ZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJfdXNlU3RhdGUyIiwic2V0VmFsIiwidXNlRWZmZWN0Iiwic2V0SXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9wZXJzaXN0ZW5jZS91c2VMb2NhbFN0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuY29uc3QgRFVEID0gdHlwZW9mIFwiXCI7XG50eXBlIEF2YWlsYWJsZVByaW1pdGl2ZXMgPSB0eXBlb2YgRFVEO1xuY29uc3QgdG9TdHJpbmcgPSAodmFsOiBhbnkpID0+IHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsKSB7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiAhdmFsID8gXCIwXCIgOiBcIjFcIjtcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICByZXR1cm4gdmFsO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEb2Vzbid0IGtub3cgaG93IHRvIGhhbmRsZSB0eXBlIFwiICsgdHlwZW9mIHZhbCk7XG4gIH1cbn07XG5jb25zdCBmcm9tU3RyaW5nID0gKHR5cGU6IEF2YWlsYWJsZVByaW1pdGl2ZXMsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gXCIxXCI7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEb2Vzbid0IGtub3cgaG93IHRvIGhhbmRsZSB0eXBlIFwiICsgdHlwZSk7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VMb2NhbFN0b3JhZ2U8VCBleHRlbmRzIGFueT4oXG4gIGlkOiBzdHJpbmcsXG4gIGRlZmF1bHRWYWx1ZTogVFxuKSB7XG4gIGNvbnN0IFt2YWwsIHNldFZhbF0gPSB1c2VTdGF0ZTxUPigoKSA9PiB7XG4gICAgY29uc3QgcGVyc2lzdGVkVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZCk7XG4gICAgaWYgKHBlcnNpc3RlZFZhbHVlID09PSBudWxsKSByZXR1cm4gZGVmYXVsdFZhbHVlIGFzIFQ7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodHlwZW9mIGRlZmF1bHRWYWx1ZSwgcGVyc2lzdGVkVmFsdWUpIGFzIFQ7XG4gIH0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGlkLCB0b1N0cmluZyh2YWwpKTtcbiAgfSwgW3ZhbF0pO1xuICByZXR1cm4gW3ZhbCwgc2V0VmFs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
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsInJldHVybiIsImlzQXJyYXkiLCJfdHlwZW9mIiwib2JqIiwiRFVEIiwidmFsIiwiSlNPTiIsInN0cmluZ2lmeSIsIkVycm9yIiwiZnJvbVN0cmluZyIsInR5cGUiLCJwYXJzZSIsInVzZUxvY2FsU3RvcmFnZSIsImlkIiwiZGVmYXVsdFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJwZXJzaXN0ZWRWYWx1ZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJfdXNlU3RhdGUyIiwic2V0VmFsIiwidXNlRWZmZWN0Iiwic2V0SXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9wZXJzaXN0ZW5jZS91c2VMb2NhbFN0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuY29uc3QgRFVEID0gdHlwZW9mIFwiXCI7XG50eXBlIEF2YWlsYWJsZVByaW1pdGl2ZXMgPSB0eXBlb2YgRFVEO1xuY29uc3QgdG9TdHJpbmcgPSAodmFsOiBhbnkpID0+IHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsKSB7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiAhdmFsID8gXCIwXCIgOiBcIjFcIjtcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICByZXR1cm4gdmFsO1xuICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEb2Vzbid0IGtub3cgaG93IHRvIGhhbmRsZSB0eXBlIFwiICsgdHlwZW9mIHZhbCk7XG4gIH1cbn07XG5jb25zdCBmcm9tU3RyaW5nID0gKHR5cGU6IEF2YWlsYWJsZVByaW1pdGl2ZXMsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gXCIxXCI7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRG9lc24ndCBrbm93IGhvdyB0byBoYW5kbGUgdHlwZSBcIiArIHR5cGUpO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTG9jYWxTdG9yYWdlPFQgZXh0ZW5kcyBhbnk+KFxuICBpZDogc3RyaW5nLFxuICBkZWZhdWx0VmFsdWU6IEV4Y2x1ZGU8VCwgdW5kZWZpbmVkPlxuKSB7XG4gIGNvbnN0IFt2YWwsIHNldFZhbF0gPSB1c2VTdGF0ZTxUPigoKSA9PiB7XG4gICAgY29uc3QgcGVyc2lzdGVkVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZCk7XG4gICAgaWYgKHBlcnNpc3RlZFZhbHVlID09PSBudWxsKSByZXR1cm4gZGVmYXVsdFZhbHVlIGFzIFQ7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodHlwZW9mIGRlZmF1bHRWYWx1ZSwgcGVyc2lzdGVkVmFsdWUpIGFzIFQ7XG4gIH0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGlkLCB0b1N0cmluZyh2YWwpKTtcbiAgfSwgW3ZhbF0pO1xuICByZXR1cm4gW3ZhbCwgc2V0VmFsXSBhcyBjb25zdDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQTRDLFNBQUFDLGVBQUFDLEdBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLEdBQUEsS0FBQUcscUJBQUEsQ0FBQUgsR0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLEdBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBRiw0QkFBQUcsQ0FBQSxFQUFBQyxNQUFBLFNBQUFELENBQUEscUJBQUFBLENBQUEsc0JBQUFFLGlCQUFBLENBQUFGLENBQUEsRUFBQUMsTUFBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxDQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FBQVAsQ0FBQSxFQUFBUSxLQUFBLGFBQUFMLENBQUEsaUJBQUFILENBQUEsQ0FBQVMsV0FBQSxFQUFBTixDQUFBLEdBQUFILENBQUEsQ0FBQVMsV0FBQSxDQUFBQyxJQUFBLE1BQUFQLENBQUEsY0FBQUEsQ0FBQSxtQkFBQVEsS0FBQSxDQUFBQyxJQUFBLENBQUFaLENBQUEsT0FBQUcsQ0FBQSwrREFBQVUsSUFBQSxDQUFBVixDQUFBLFVBQUFELGlCQUFBLENBQUFGLENBQUEsRUFBQUMsTUFBQTtBQUFBLFNBQUFDLGtCQUFBVCxHQUFBLEVBQUFxQixHQUFBLFFBQUFBLEdBQUEsWUFBQUEsR0FBQSxHQUFBckIsR0FBQSxDQUFBc0IsTUFBQSxFQUFBRCxHQUFBLEdBQUFyQixHQUFBLENBQUFzQixNQUFBLFdBQUFyQixDQUFBLE1BQUFzQixJQUFBLE9B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
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Receives a list and keeps alternating between the list elements every 5 seconds
3
+ */
4
+ export default function useAlternating<X>(list: X[]): X;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useAlternating;
7
+ var _react = require("react");
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ /**
15
+ * Receives a list and keeps alternating between the list elements every 5 seconds
16
+ */
17
+ function useAlternating(list) {
18
+ const _useState = (0, _react.useState)(list[0]),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ current = _useState2[0],
21
+ setCurrent = _useState2[1];
22
+ (0, _react.useEffect)(function () {
23
+ const interval = setInterval(function () {
24
+ setCurrent(function (prev) {
25
+ return list[list.indexOf(prev) + 1] || list[0];
26
+ });
27
+ }, 5000);
28
+ return function () {
29
+ return clearInterval(interval);
30
+ };
31
+ }, []);
32
+ return current;
33
+ }
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJTeW1ib2wiLCJpdGVyYXRvciIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsInJldHVybiIsImlzQXJyYXkiLCJ1c2VBbHRlcm5hdGluZyIsImxpc3QiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJjdXJyZW50Iiwic2V0Q3VycmVudCIsInVzZUVmZmVjdCIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJwcmV2IiwiaW5kZXhPZiIsImNsZWFySW50ZXJ2YWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdWkvdXNlQWx0ZXJuYXRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBSZWNlaXZlcyBhIGxpc3QgYW5kIGtlZXBzIGFsdGVybmF0aW5nIGJldHdlZW4gdGhlIGxpc3QgZWxlbWVudHMgZXZlcnkgNSBzZWNvbmRzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUFsdGVybmF0aW5nPFg+KGxpc3Q6IFhbXSkge1xuICBjb25zdCBbY3VycmVudCwgc2V0Q3VycmVudF0gPSB1c2VTdGF0ZShsaXN0WzBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2V0Q3VycmVudCgocHJldikgPT4gbGlzdFtsaXN0LmluZGV4T2YocHJldikgKyAxXSB8fCBsaXN0WzBdKTtcbiAgICB9LCA1MDAwKTtcblxuICAgIHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBjdXJyZW50O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFBNEMsU0FBQUMsZUFBQUMsR0FBQSxFQUFBQyxDQUFBLFdBQUFDLGVBQUEsQ0FBQUYsR0FBQSxLQUFBRyxxQkFBQSxDQUFBSCxHQUFBLEVBQUFDLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUosR0FBQSxFQUFBQyxDQUFBLEtBQUFJLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBRyxDQUFBLEVBQUFDLE1BQUEsU0FBQUQsQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQUUsaUJBQUEsQ0FBQUYsQ0FBQSxFQUFBQyxNQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLENBQUFDLFFBQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLEVBQUFRLEtBQUEsYUFBQUwsQ0FBQSxpQkFBQUgsQ0FBQSxDQUFBUyxXQUFBLEVBQUFOLENBQUEsR0FBQUgsQ0FBQSxDQUFBUyxXQUFBLENBQUFDLElBQUEsTUFBQVAsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBUSxLQUFBLENBQUFDLElBQUEsQ0FBQVosQ0FBQSxPQUFBRyxDQUFBLCtEQUFBVSxJQUFBLENBQUFWLENBQUEsVUFBQUQsaUJBQUEsQ0FBQUYsQ0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUMsa0JBQUFULEdBQUEsRUFBQXFCLEdBQUEsUUFBQUEsR0FBQSxZQUFBQSxHQUFBLEdBQUFyQixHQUFBLENBQUFzQixNQUFBLEVBQUFELEdBQUEsR0FBQXJCLEdBQUEsQ0FBQXNCLE1BQUEsV0FBQXJCLENBQUEsTUFBQXNCLElBQUEsT0FBQUwsS0FBQSxDQUFBRyxHQUFBLEdBQUFwQixDQUFBLEdBQUFvQixHQUFBLEVBQUFwQixDQUFBLElBQUFzQixJQUFBLENBQUF0QixDQUFBLElBQUFELEdBQUEsQ0FBQUMsQ0FBQSxVQUFBc0IsSUFBQTtBQUFBLFNBQUFwQixzQkFBQUgsR0FBQSxFQUFBQyxDQUFBLFFBQUF1QixFQUFBLFdBQUF4QixHQUFBLGdDQUFBeUIsTUFBQSxJQUFBekIsR0FBQSxDQUFBeUIsTUFBQSxDQUFBQyxRQUFBLEtBQUExQixHQUFBLDRCQUFBd0IsRUFBQSxRQUFBRyxFQUFBLEVBQUFDLEVBQUEsRUFBQUMsRUFBQSxFQUFBQyxFQUFBLEVBQUFDLElBQUEsT0FBQUMsRUFBQSxPQUFBQyxFQUFBLGlCQUFBSixFQUFBLElBQUFMLEVBQUEsR0FBQUEsRUFBQSxDQUFBVixJQUFBLENBQUFkLEdBQUEsR0FBQWtDLElBQUEsUUFBQWpDLENBQUEsUUFBQVUsTUFBQSxDQUFBYSxFQUFBLE1BQUFBLEVBQUEsVUFBQVEsRUFBQSx1QkFBQUEsRUFBQSxJQUFBTCxFQUFBLEdBQUFFLEVBQUEsQ0FBQWYsSUFBQSxDQUFBVSxFQUFBLEdBQUFXLElBQUEsTUFBQUosSUFBQSxDQUFBSyxJQUFBLENBQUFULEVBQUEsQ0FBQVUsS0FBQSxHQUFBTixJQUFBLENBQUFULE1BQUEsS0FBQXJCLENBQUEsR0FBQStCLEVBQUEsaUJBQUFNLEdBQUEsSUFBQUwsRUFBQSxPQUFBTCxFQUFBLEdBQUFVLEdBQUEseUJBQUFOLEVBQUEsWUFBQVIsRUFBQSxDQUFBZSxNQUFBLEtBQUFULEVBQUEsR0FBQU4sRUFBQSxDQUFBZSxNQUFBLElBQUE1QixNQUFBLENBQUFtQixFQUFBLE1BQUFBLEVBQUEsMkJBQUFHLEVBQUEsUUFBQUwsRUFBQSxhQUFBRyxJQUFBO0FBQUEsU0FBQTdCLGdCQUFBRixHQUFBLFFBQUFrQixLQUFBLENBQUFzQixPQUFBLENBQUF4QyxHQUFBLFVBQUFBLEdBQUE7QUFFNUM7QUFDQTtBQUNBO0FBQ2UsU0FBU3lDLGNBQWNBLENBQUlDLElBQVMsRUFBRTtFQUNuRCxNQUFBQyxTQUFBLEdBQThCLElBQUFDLGVBQVEsRUFBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUFHLFVBQUEsR0FBQTlDLGNBQUEsQ0FBQTRDLFNBQUE7SUFBeENHLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFFMUIsSUFBQUcsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsTUFBTUMsUUFBUSxHQUFHQyxXQUFXLENBQUMsWUFBTTtNQUNqQ0gsVUFBVSxDQUFDLFVBQUNJLElBQUk7UUFBQSxPQUFLVCxJQUFJLENBQUNBLElBQUksQ0FBQ1UsT0FBTyxDQUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSVQsSUFBSSxDQUFDLENBQUMsQ0FBQztNQUFBLEVBQUM7SUFDL0QsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUVSLE9BQU87TUFBQSxPQUFNVyxhQUFhLENBQUNKLFFBQVEsQ0FBQztJQUFBO0VBQ3RDLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixPQUFPSCxPQUFPO0FBQ2hCIn0=