@1money/component-ui 0.1.17 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/es/components/Dialog/hooks.d.ts +1 -2
  2. package/es/components/Dialog/hooks.js +2 -21
  3. package/es/components/Drawer/hooks/useDialogFocus.d.ts +1 -2
  4. package/es/components/Drawer/hooks/useDialogFocus.js +2 -22
  5. package/es/components/Input/Mask/Mask.js +2 -6
  6. package/es/components/Navigation/Navigation.d.ts +8 -3
  7. package/es/components/Navigation/Navigation.js +74 -42
  8. package/es/components/Navigation/context.d.ts +12 -0
  9. package/es/components/Navigation/context.js +17 -0
  10. package/es/components/Navigation/interface.d.ts +4 -1
  11. package/es/components/Select/Select.js +6 -3
  12. package/es/components/Select/utils.js +27 -3
  13. package/es/hooks/useDialogFocus.d.ts +2 -0
  14. package/es/hooks/useDialogFocus.js +22 -0
  15. package/es/index.css +1 -1
  16. package/es/index.d.ts +1 -1
  17. package/es/index.js +1 -1
  18. package/lib/components/Dialog/hooks.d.ts +1 -2
  19. package/lib/components/Dialog/hooks.js +10 -22
  20. package/lib/components/Drawer/hooks/useDialogFocus.d.ts +1 -2
  21. package/lib/components/Drawer/hooks/useDialogFocus.js +8 -23
  22. package/lib/components/Input/Mask/Mask.js +2 -6
  23. package/lib/components/Navigation/Navigation.d.ts +8 -3
  24. package/lib/components/Navigation/Navigation.js +73 -41
  25. package/lib/components/Navigation/context.d.ts +12 -0
  26. package/lib/components/Navigation/context.js +22 -0
  27. package/lib/components/Navigation/interface.d.ts +4 -1
  28. package/lib/components/Select/Select.js +5 -2
  29. package/lib/components/Select/utils.js +27 -3
  30. package/lib/hooks/useDialogFocus.d.ts +2 -0
  31. package/lib/hooks/useDialogFocus.js +28 -0
  32. package/lib/index.css +1 -1
  33. package/lib/index.d.ts +1 -1
  34. package/lib/index.js +1 -1
  35. package/package.json +1 -12
  36. package/scripts/mcp-server/README.md +5 -0
  37. package/scripts/mcp-server/examples.generated.json +18 -6
  38. package/scripts/mcp-server/index.generated.json +56 -5
  39. package/scripts/mcp-server/index.mjs +2 -1
  40. package/scripts/mcp-server/tools/get-symbol.mjs +5 -25
  41. package/scripts/mcp-server/tools/resolve-import.mjs +5 -19
  42. package/scripts/mcp-server/tools/symbol-lookups.mjs +29 -0
@@ -1,5 +1,4 @@
1
- import type { RefObject } from 'react';
2
1
  import type { DialogAction } from './types';
2
+ export { useDialogFocus } from "../../hooks/useDialogFocus";
3
3
  export declare const useBodyScrollLock: (locked: boolean) => void;
4
- export declare const useDialogFocus: (active: boolean, dialogRef: RefObject<HTMLDivElement | null>) => void;
5
4
  export declare const useEscapeClose: (enabled: boolean, onClose?: DialogAction) => void;
@@ -1,5 +1,6 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  import { DIALOG_DEFAULTS } from './constants';
3
+ export { useDialogFocus } from '../../hooks/useDialogFocus';
3
4
  var scrollLockCount = 0;
4
5
  var setBodyOverflow = function setBodyOverflow(value) {
5
6
  if (typeof document === 'undefined') return;
@@ -32,26 +33,6 @@ export var useBodyScrollLock = function useBodyScrollLock(locked) {
32
33
  };
33
34
  }, [locked]);
34
35
  };
35
- export var useDialogFocus = function useDialogFocus(active, dialogRef) {
36
- var previousActiveElementRef = useRef(null);
37
- useEffect(function () {
38
- if (!active || typeof document === 'undefined') return undefined;
39
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
40
- var frame = window.requestAnimationFrame(function () {
41
- var _a;
42
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
43
- });
44
- return function () {
45
- window.cancelAnimationFrame(frame);
46
- };
47
- }, [active, dialogRef]);
48
- useEffect(function () {
49
- var _a, _b;
50
- if (active) return;
51
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
52
- previousActiveElementRef.current = null;
53
- }, [active]);
54
- };
55
36
  export var useEscapeClose = function useEscapeClose(enabled, onClose) {
56
37
  useEffect(function () {
57
38
  if (!enabled || typeof document === 'undefined') return undefined;
@@ -66,4 +47,4 @@ export var useEscapeClose = function useEscapeClose(enabled, onClose) {
66
47
  };
67
48
  }, [enabled, onClose]);
68
49
  };
69
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL2hvb2tzLnRzIiwiY29tcG9uZW50cy9EaWFsb2cvaG9va3MuanMiXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlUmVmIiwiRElBTE9HX0RFRkFVTFRTIiwic2Nyb2xsTG9ja0NvdW50Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwiY2FsbCIsInVzZUVzY2FwZUNsb3NlIiwiZW5hYmxlZCIsIm9uQ2xvc2UiLCJoYW5kbGVLZXlEb3duIiwiZXZlbnQiLCJrZXkiLCJlc2NhcGVLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJrZXlkb3duRXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pDLFNBQVNDLGVBQWUsUUFBUSxhQUFhO0FBSTdDLElBQUlDLGVBQWUsR0FBRyxDQUFDO0FBRXZCLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsS0FBYSxFQUFJO0VBQ3hDLElBQUksT0FBT0MsUUFBUSxLQUFLLFdBQVcsRUFB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TyxHQUFHLElBQUk7RUFDekMsQ0FBQyxFQUFFLENBQUNHLE1BQU0sQ0FBQyxDQUFDO0FBQ2QsQ0FBQztBQUVELE9BQU8sSUFBTVksY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxPQUFnQixFQUFFQyxPQUFzQixFQUFJO0VBQ3pFckMsU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJLENBQUNvQyxPQUFPLElBQUksT0FBTzlCLFFBQVEsS0FBSyxXQUFXLEVBQUUsT0FBT2UsU0FBUztJQUVqRSxJQUFNaUIsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxLQUFvQixFQUFJO01BQzdDLElBQUlBLEtBQUssQ0FBQ0MsR0FBRyxLQUFLdEMsZUFBZSxDQUFDdUMsU0FBUyxFQUFFO01BQzdDRixLQUFLLENBQUNHLGNBQWMsQ0FBQSxDQUFFO01BQ3RCLE1BQUtMLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFBLENBQUksQ0FBQTtJQUNsQixDQUFDO0lBRUQvQixRQUFRLENBQUNxQyxnQkFBZ0IsQ0FBQ3pDLGVBQWUsQ0FBQzBDLFlBQVksRUFBRU4sYUFBYSxDQUFDO0lBRXRFLE9BQU8sWUFBSztNQUNWaEMsUUFBUSxDQUFDdUMsbUJBQW1CLENBQUMzQyxlQUFlLENBQUMwQyxZQUFZLEVBQUVOLGFBQWEsQ0FBQztJQUMzRSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNGLE9BQU8sRUFBRUMsT0FBTyxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0RpYWxvZy9ob29rcy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBESUFMT0dfREVGQVVMVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IHNldEJvZHlPdmVyZmxvdyA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm47XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHZhbHVlO1xufTtcbmNvbnN0IGxvY2tCb2R5U2Nyb2xsID0gKCkgPT4ge1xuICAgIHNjcm9sbExvY2tDb3VudCArPSAxO1xuICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dIaWRkZW4pO1xufTtcbmNvbnN0IHVubG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ID0gTWF0aC5tYXgoMCwgc2Nyb2xsTG9ja0NvdW50IC0gMSk7XG4gICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dSZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5leHBvcnQgY29uc3QgdXNlQm9keVNjcm9sbExvY2sgPSAobG9ja2VkKSA9PiB7XG4gICAgY29uc3QgaXNMb2NrZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbG9ja2VkIHx8IGlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpc0xvY2tlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgbG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNMb2NrZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpc0xvY2tlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB1bmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIH07XG4gICAgfSwgW2xvY2tlZF0pO1xufTtcbmV4cG9ydCBjb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuZXhwb3J0IGNvbnN0IHVzZUVzY2FwZUNsb3NlID0gKGVuYWJsZWQsIG9uQ2xvc2UpID0+IHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVuYWJsZWQgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgIT09IERJQUxPR19ERUZBVUxUUy5lc2NhcGVLZXkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHZvaWQgKG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpKTtcbiAgICAgICAgfTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoRElBTE9HX0RFRkFVTFRTLmtleWRvd25FdmVudCwgaGFuZGxlS2V5RG93bik7XG4gICAgICAgIH07XG4gICAgfSwgW2VuYWJsZWQsIG9uQ2xvc2VdKTtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
50
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL2hvb2tzLnRzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsIkRJQUxPR19ERUZBVUxUUyIsInVzZURpYWxvZ0ZvY3VzIiwic2Nyb2xsTG9ja0NvdW50Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDekMsU0FBU0MsZUFBZSxRQUFRLGFBQWE7QUFHN0MsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUUzRCxJQUFJQyxlQUFlLEdBQUcsQ0FBQztBQUV2QixJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlDLEtBQWEsRUFBSTtFQUN4QyxJQUFJLE9BQU9DLFFBQVEsS0FBSyxXQUFXLEVBQUU7RUFDckNBLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFFBQVEsR0FBR0osS0FBSztBQUN0QyxDQUFDO0FBRUQsSUFBTUssY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFBLEVBQVE7RUFDMUJQLGVBQWUsSUFBSSxDQUFDO0VBQ3BCQyxlQUFlLENBQUNILGVBQWUsQ0FBQ1UsY0FBYyxDQUFDO0FBQ2pELENBQUM7QUFFRCxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQVE7RUFDNUJULGVBQWUsR0FBR1UsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFWCxlQUFlLEdBQUcsQ0FBQyxDQUFDO0VBRWxELElBQUlBLGVBQWUsS0FBSyxDQUFDLEVBQUU7SUFDekJZLHFCQUFxQixDQUFDLFlBQUs7TUFDekIsSUFBSVosZUFBZSxLQUFLLENBQUMsRUFBRTtRQUN6QkMsZUFBZSxDQUFDSCxlQUFlLENBQUNlLGFBQWEsQ0FBQztNQUNoRDtJQUNGLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FBQztBQUVELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsTUFBZSxFQUFJO0VBQ25ELElBQU1DLFdBQVcsR0FBR25CLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFFakNELFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBSSxDQUFDbUIsTUFBTSxJQUFJQyxXQUFXLENBQUNDLE9BQU8sRUFBRSxPQUFPQyxTQUFTO0lBRXBERixXQUFXLENBQUNDLE9BQU8sR0FBRyxJQUFJO0lBQzFCVixjQUFjLENBQUEsQ0FBRTtJQUVoQixPQUFPLFlBQUs7TUFDVixJQUFJLENBQUNTLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFO01BQzFCRCxXQUFXLENBQUNDLE9BQU8sR0FBRyxLQUFLO01BQzNCUixnQkFBZ0IsQ0FBQSxDQUFFO0lBQ3BCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ00sTUFBTSxDQUFDLENBQUM7QUFDZCxDQUFDO0FBRUQsT0FBTyxJQUFNSSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLE9BQWdCLEVBQUVDLE9BQXNCLEVBQUk7RUFDekV6QixTQUFTLENBQUMsWUFBSztJQUNiLElBQUksQ0FBQ3dCLE9BQU8sSUFBSSxPQUFPakIsUUFBUSxLQUFLLFdBQVcsRUFBRSxPQUFPZSxTQUFTO0lBRWpFLElBQU1JLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsS0FBb0IsRUFBSTtNQUM3QyxJQUFJQSxLQUFLLENBQUNDLEdBQUcsS0FBSzFCLGVBQWUsQ0FBQzJCLFNBQVMsRUFBRTtNQUM3Q0YsS0FBSyxDQUFDRyxjQUFjLENBQUEsQ0FBRTtNQUN0QixNQUFLTCxPQUFPLEtBQUEsSUFBQSxJQUFQQSxPQUFPLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVBBLE9BQU8sQ0FBQSxDQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVEbEIsUUFBUSxDQUFDd0IsZ0JBQWdCLENBQUM3QixlQUFlLENBQUM4QixZQUFZLEVBQUVOLGFBQWEsQ0FBQztJQUV0RSxPQUFPLFlBQUs7TUFDVm5CLFFBQVEsQ0FBQzBCLG1CQUFtQixDQUFDL0IsZUFBZSxDQUFDOEIsWUFBWSxFQUFFTixhQUFhLENBQUM7SUFDM0UsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDRixPQUFPLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hCLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvaG9va3MuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,2 +1 @@
1
- import type { RefObject } from 'react';
2
- export declare const useDialogFocus: (active: boolean, dialogRef: RefObject<HTMLDivElement | null>) => void;
1
+ export { useDialogFocus } from "../../../hooks/useDialogFocus";
@@ -1,22 +1,2 @@
1
- import { useEffect, useRef } from 'react';
2
- export var useDialogFocus = function useDialogFocus(active, dialogRef) {
3
- var previousActiveElementRef = useRef(null);
4
- useEffect(function () {
5
- if (!active || typeof document === 'undefined') return undefined;
6
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
7
- var frame = window.requestAnimationFrame(function () {
8
- var _a;
9
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
10
- });
11
- return function () {
12
- window.cancelAnimationFrame(frame);
13
- };
14
- }, [active, dialogRef]);
15
- useEffect(function () {
16
- var _a, _b;
17
- if (active) return;
18
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
19
- previousActiveElementRef.current = null;
20
- }, [active]);
21
- };
22
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEaWFsb2dGb2N1cy50cyIsImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZURpYWxvZ0ZvY3VzIiwiYWN0aXZlIiwiZGlhbG9nUmVmIiwicHJldmlvdXNBY3RpdmVFbGVtZW50UmVmIiwiZG9jdW1lbnQiLCJ1bmRlZmluZWQiLCJjdXJyZW50IiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZnJhbWUiLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJfYSIsImZvY3VzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJfYiIsImNhbGwiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFHekMsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQ3pCQyxNQUFlLEVBQ2ZDLFNBQTJDLEVBQ3pDO0VBQ0YsSUFBTUMsd0JBQXdCLEdBQUdKLE1BQU0sQ0FBcUIsSUFBSSxDQUFDO0VBRWpFRCxTQUFTLENBQUMsWUFBSztJQUNiLElBQUksQ0FBQ0csTUFBTSxJQUFJLE9BQU9HLFFBQVEsS0FBSyxXQUFXLEVBQUUsT0FBT0MsU0FBUztJQUVoRUYsd0JBQXdCLENBQUNHLE9BQU8sR0FDOUJGLFFBQVEsQ0FBQ0csYUFBYSxZQUFZQyxXQUFXLEdBQUdKLFFBQVEsQ0FBQ0csYUFBYSxHQUFHLElBQUk7SUFFL0UsSUFBTUUsS0FBSyxHQUFHQyxNQUFNLENBQUNDLHFCQUFxQixDQUFDLFlBQUs7TUNOeEMsSUFBSUMsRUFBRTtNRE9aLENBQUFBLEVBQUEsR0FBQVYsU0FBUyxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBTSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUMsS0FBSyxDQUFBLENBQUU7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxZQUFLO01BQ1ZILE1BQU0sQ0FBQ0ksb0JBQW9CLENBQUNMLEtBQUssQ0FBQztJQUNwQyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNSLE1BQU0sRUFBRUMsU0FBUyxDQUFDLENBQUM7RUFFdkJKLFNBQVMsQ0FBQyxZQUFLO0lDUFQsSUFBSWMsRUFBRSxFQUFFRyxFQUFFO0lEUWQsSUFBSWQsTUFBTSxFQUFFO0lBRVosQ0FBQWMsRUFBQSxHQUFBLENBQUFILEVBQUEsR0FBQVQsd0JBQXdCLENBQUNHLE9BQU8sTUFBQSxJQUFBLElBQUFNLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFQyxLQUFLLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQUMsSUFBQSxDQUFBSixFQUFBLENBQUk7SUFDM0NULHdCQUF3QixDQUFDRyxPQUFPLEdBQUcsSUFBSTtFQUN6QyxDQUFDLEVBQUUsQ0FBQ0wsTUFBTSxDQUFDLENBQUM7QUFDZCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJhd2VyL2hvb2tzL3VzZURpYWxvZ0ZvY3VzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBjb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
1
+ export { useDialogFocus } from '../../../hooks/useDialogFocus';
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJhd2VyL3NyYy9jb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEaWFsb2dGb2N1cy50cyJdLCJuYW1lcyI6WyJ1c2VEaWFsb2dGb2N1cyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxRQUFRLCtCQUErQiIsImZpbGUiOiJjb21wb25lbnRzL0RyYXdlci9ob29rcy91c2VEaWFsb2dGb2N1cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -155,14 +155,10 @@ export var InputMask = function InputMask(props) {
155
155
  }
156
156
  });
157
157
  var handleChange = useEventCallback(function (event) {
158
- var _a;
159
158
  if (isComposing.current) return;
160
159
  var input = event.target;
161
- var cursorPos = (_a = input.selectionStart) !== null && _a !== void 0 ? _a : 0;
162
160
  var inputValue = input.value;
163
- // Extract only valid characters from the raw input
164
- var raw = extractRaw(inputValue, mask, slotChar) + inputValue.slice(cursorPos > 0 ? cursorPos - 1 : 0, cursorPos).replace(/[^\da-zA-Z]/g, '');
165
- // Re-extract from the full input to get clean raw
161
+ // Extract valid characters from the full input.
166
162
  var cleanRaw = '';
167
163
  for (var i = 0; i < inputValue.length; i++) {
168
164
  var ch = inputValue[i];
@@ -345,4 +341,4 @@ InputMask.displayName = 'InputMask';
345
341
  var MemoizedInputMask = /*#__PURE__*/memo(InputMask);
346
342
  MemoizedInputMask.displayName = 'InputMask';
347
343
  export default MemoizedInputMask;
348
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwiY29tcG9uZW50cy9JbnB1dC9zcmMvY29tcG9uZW50cy9JbnB1dC9NYXNrL01hc2sudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VJZCIsInVzZVJlZiIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGaWVsZFNoZWxsIiwidXNlU3luY1JlZiIsIk1BU0tfVE9LRU4iLCJpc01hc2tUb2tlbiIsImNoYXIiLCJhcHBseU1hc2siLCJyYXciLCJtYXNrIiwic2xvdENoYXIiLCJyZXN1bHQiLCJyYXdJbmRleCIsIm1hc2tDaGFyIiwicmUiLCJ0ZXN0IiwiZXh0cmFjdFJhdyIsImZvcm1hdHRlZCIsImNvdW50VG9rZW5TbG90cyIsImNvdW50IiwiZmluZE5leHRTbG90IiwiZnJvbUluZGV4IiwiZmluZEZpcnN0U2xvdCIsImlkeCIsIklucHV0TWFzayIsInByb3BzIiwiX2EiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiX3Byb3BzJHNsb3RDaGFyIiwiX3Byb3BzJHVubWFzayIsInVubWFzayIsIl9wcm9wcyRhdXRvQ2xlYXIiLCJhdXRvQ2xlYXIiLCJsYWJlbCIsImluZm8iLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsInRpcCIsInJlcXVpcmVkIiwicHJlZml4Iiwic3VmZml4IiwiX3Nob3dDb3VudCIsInNob3dDb3VudCIsInZhbHVlIiwiX3Byb3BzJGRlZmF1bHRWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwib25Db21wbGV0ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleURvd24iLCJyZWYiLCJleHRlcm5hbElkIiwiaWQiLCJyZXN0IiwiYXV0b0lkIiwiaW5wdXRJZCIsImNsYXNzZXMiLCJfdXNlU3luY1JlZiIsIl91c2VTeW5jUmVmMiIsIl9zbGljZWRUb0FycmF5IiwiaW5wdXRSZWYiLCJzeW5jUmVmIiwiaXNDb21wb3NpbmciLCJ0b3RhbFNsb3RzIiwiZm9ybWF0VmFsdWUiLCJ2YWwiLCJpbml0aWFsRm9ybWF0dGVkIiwiY29udHJvbGxlZEZvcm1hdHRlZCIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiaXNEaXNhYmxlZCIsImFyaWFSZXF1aXJlZCIsImFyaWFJbnZhbGlkIiwiZW1pdENoYW5nZSIsImV2ZW50IiwiaGFuZGxlQ2hhbmdlIiwiY3VycmVudCIsImlucHV0IiwidGFyZ2V0IiwiY3Vyc29yUG9zIiwic2VsZWN0aW9uU3RhcnQiLCJpbnB1dFZhbHVlIiwic2xpY2UiLCJyZXBsYWNlIiwiY2xlYW5SYXciLCJjaCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm5leHRQb3MiLCJzZXRTZWxlY3Rpb25SYW5nZSIsImhhbmRsZUtleURvd24iLCJfYiIsIl9jIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJwb3MiLCJzZWxFbmQiLCJzZWxlY3Rpb25FbmQiLCJjdXJyZW50UmF3IiwibmV3UmF3IiwicmF3SWR4IiwidGFyZ2V0UG9zIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVCbHVyIiwiZW1wdHkiLCJjaGlsZHJlbiIsImFzc2lnbiIsInBsYWNlaG9sZGVyIiwib25Db21wb3NpdGlvblN0YXJ0Iiwib25Db21wb3NpdGlvbkVuZCIsImRpc3BsYXlOYW1lIiwiTWVtb2l6ZWRJbnB1dE1hc2siXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNK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QUM7UUFBQSxlQUFBLEVBQ2M2RyxZQUFZO1FBQUEsY0FBQSxFQUNiQztNQUFXLENBQUEsQ0FBQSxDQUN6QixFQUNEcEMsTUFBTSxJQUFJN0QsSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUFNcUMsU0FBUyxFQUFFeUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFBbUQsUUFBQSxFQUFHcEU7TUFBTSxDQUFBLENBQVE7SUFBQSxDQUFBO0VBQzFELENBQUEsQ0FDSztBQUVqQixDQUFDO0FBRUQ1QixTQUFTLENBQUNxRyxXQUFXLEdBQUcsV0FBVztBQUVuQyxJQUFNQyxpQkFBaUIsZ0JBQUdwSSxJQUFJLENBQUM4QixTQUFTLENBQUM7QUFDekNzRyxpQkFBaUIsQ0FBQ0QsV0FBVyxHQUFHLFdBQVc7QUFFM0MsZUFBZUMsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUlkLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZpZWxkU2hlbGwgfSBmcm9tICcuLi9GaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVN5bmNSZWYgfSBmcm9tICcuLi91c2VTeW5jUmVmJztcbi8qKiBNYXNrIHRva2VuIG1hdGNoZXJzOiA5ID0gZGlnaXQsIGEgPSBsZXR0ZXIsICogPSBhbHBoYW51bWVyaWMgKi9cbmNvbnN0IE1BU0tfVE9LRU4gPSB7XG4gICAgJzknOiAvXFxkLyxcbiAgICAnYSc6IC9bYS16QS1aXS8sXG4gICAgJyonOiAvW2EtekEtWjAtOV0vLFxufTtcbmNvbnN0IGlzTWFza1Rva2VuID0gKGNoYXIpID0+IGNoYXIgaW4gTUFTS19UT0tFTjtcbi8qKiBBcHBseSBtYXNrIHRvIHJhdyB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBmb3JtYXR0ZWQgc3RyaW5nICovXG5jb25zdCBhcHBseU1hc2sgPSAocmF3LCBtYXNrLCBzbG90Q2hhcikgPT4ge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgcmF3SW5kZXggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBtYXNrQ2hhciA9IG1hc2tbaV07XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrQ2hhcikpIHtcbiAgICAgICAgICAgIGlmIChyYXdJbmRleCA8IHJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZSA9IE1BU0tfVE9LRU5bbWFza0NoYXJdO1xuICAgICAgICAgICAgICAgIC8vIFNraXAgaW52YWxpZCBjaGFyYWN0ZXJzIGluIHJhd1xuICAgICAgICAgICAgICAgIHdoaWxlIChyYXdJbmRleCA8IHJhdy5sZW5ndGggJiYgIXJlLnRlc3QocmF3W3Jhd0luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmF3SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJhd0luZGV4IDwgcmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcmF3W3Jhd0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgcmF3SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzbG90Q2hhcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gc2xvdENoYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gbWFza0NoYXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4vKiogRXh0cmFjdCByYXcgdmFsdWUgKG9ubHkgdXNlci10eXBlZCBjaGFyYWN0ZXJzLCBubyBsaXRlcmFscyBvciBzbG90IGNoYXJzKSAqL1xuY29uc3QgZXh0cmFjdFJhdyA9IChmb3JtYXR0ZWQsIG1hc2ssIHNsb3RDaGFyKSA9PiB7XG4gICAgbGV0IHJhdyA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGggJiYgaSA8IGZvcm1hdHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkgJiYgZm9ybWF0dGVkW2ldICE9PSBzbG90Q2hhcikge1xuICAgICAgICAgICAgcmF3ICs9IGZvcm1hdHRlZFtpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmF3O1xufTtcbi8qKiBDb3VudCBob3cgbWFueSBtYXNrIHRva2VucyBleGlzdCBpbiB0aGUgbWFzayBwYXR0ZXJuICovXG5jb25zdCBjb3VudFRva2VuU2xvdHMgPSAobWFzaykgPT4ge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSlcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgfVxuICAgIHJldHVybiBjb3VudDtcbn07XG4vKiogRmluZCB0aGUgY3Vyc29yIHBvc2l0aW9uIGZvciB0aGUgbmV4dCBhdmFpbGFibGUgbWFzayB0b2tlbiBzbG90ICovXG5jb25zdCBmaW5kTmV4dFNsb3QgPSAobWFzaywgZm9ybWF0dGVkLCBzbG90Q2hhciwgZnJvbUluZGV4KSA9PiB7XG4gICAgZm9yIChsZXQgaSA9IGZyb21JbmRleDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pICYmIChpID49IGZvcm1hdHRlZC5sZW5ndGggfHwgZm9ybWF0dGVkW2ldID09PSBzbG90Q2hhcikpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmcm9tSW5kZXg7XG59O1xuLyoqIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBzbG90IGNoYXIgaW4gZm9ybWF0dGVkIHZhbHVlICovXG5jb25zdCBmaW5kRmlyc3RTbG90ID0gKGZvcm1hdHRlZCwgc2xvdENoYXIpID0+IHtcbiAgICBjb25zdCBpZHggPSBmb3JtYXR0ZWQuaW5kZXhPZihzbG90Q2hhcik7XG4gICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBmb3JtYXR0ZWQubGVuZ3RoIDogaWR4O1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dE1hc2sgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgbGFiZWxDbGFzc05hbWUsIHByZWZpeENscyA9ICdpbnB1dCcsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIGRpc2FibGVkID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbWFzaywgc2xvdENoYXIgPSAnXycsIHVubWFzayA9IGZhbHNlLCBhdXRvQ2xlYXIgPSBmYWxzZSwgbGFiZWwsIGluZm8sIGZlZWRiYWNrLCBmZWVkYmFja0ljb24sIHRpcCwgcmVxdWlyZWQsIHByZWZpeCwgc3VmZml4LCBcbiAgICAvLyBBY2NlcHRlZCB2aWEgSW5wdXRCYXNlUHJvcHMgYnV0IG1lYW5pbmdsZXNzIGhlcmUgKHRoZSBtYXNrIHBhdHRlcm5cbiAgICAvLyBhbHJlYWR5IGZpeGVzIHRoZSBsZW5ndGgpOyBkZXN0cnVjdHVyZWQgc28gaXQgbmV2ZXIgbGVha3Mgb250byB0aGVcbiAgICAvLyBET00gaW5wdXQgYXMgYW4gdW5rbm93biBhdHRyaWJ1dGUuXG4gICAgc2hvd0NvdW50OiBfc2hvd0NvdW50LCB2YWx1ZSwgZGVmYXVsdFZhbHVlID0gJycsIG9uQ2hhbmdlLCBvbkNvbXBsZXRlLCBvbkZvY3VzLCBvbkJsdXIsIG9uS2V5RG93biwgcmVmLCBpZDogZXh0ZXJuYWxJZCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcImxhYmVsQ2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwic2l6ZVwiLCBcInN0YXR1c1wiLCBcImRpc2FibGVkXCIsIFwibG9hZGluZ1wiLCBcIm1hc2tcIiwgXCJzbG90Q2hhclwiLCBcInVubWFza1wiLCBcImF1dG9DbGVhclwiLCBcImxhYmVsXCIsIFwiaW5mb1wiLCBcImZlZWRiYWNrXCIsIFwiZmVlZGJhY2tJY29uXCIsIFwidGlwXCIsIFwicmVxdWlyZWRcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJzaG93Q291bnRcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25Db21wbGV0ZVwiLCBcIm9uRm9jdXNcIiwgXCJvbkJsdXJcIiwgXCJvbktleURvd25cIiwgXCJyZWZcIiwgXCJpZFwiXSk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBpbnB1dElkID0gZXh0ZXJuYWxJZCAhPT0gbnVsbCAmJiBleHRlcm5hbElkICE9PSB2b2lkIDAgPyBleHRlcm5hbElkIDogYXV0b0lkO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2lucHV0UmVmLCBzeW5jUmVmXSA9IHVzZVN5bmNSZWYocmVmKTtcbiAgICBjb25zdCBpc0NvbXBvc2luZyA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgdG90YWxTbG90cyA9IGNvdW50VG9rZW5TbG90cyhtYXNrKTtcbiAgICAvLyBJbnRlcm5hbCBzdGF0ZSBhbHdheXMgc3RvcmVzIHRoZSBmb3JtYXR0ZWQgdmFsdWVcbiAgICBjb25zdCBmb3JtYXRWYWx1ZSA9ICh2YWwpID0+IGFwcGx5TWFzayh2YWwsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICBjb25zdCBpbml0aWFsRm9ybWF0dGVkID0gZGVmYXVsdFZhbHVlID8gZm9ybWF0VmFsdWUoZGVmYXVsdFZhbHVlKSA6ICcnO1xuICAgIGNvbnN0IGNvbnRyb2xsZWRGb3JtYXR0ZWQgPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gZm9ybWF0VmFsdWUodmFsdWUpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShpbml0aWFsRm9ybWF0dGVkLCBjb250cm9sbGVkRm9ybWF0dGVkKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZWQgfHwgbG9hZGluZztcbiAgICBjb25zdCBhcmlhUmVxdWlyZWQgPSByZXF1aXJlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgY29uc3QgYXJpYUludmFsaWQgPSBzdGF0dXMgPT09ICdlcnJvcicgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGNvbnN0IGVtaXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChmb3JtYXR0ZWQsIGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RSYXcoZm9ybWF0dGVkLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZSh1bm1hc2sgPyByYXcgOiBmb3JtYXR0ZWQsIGV2ZW50KTtcbiAgICAgICAgaWYgKHJhdy5sZW5ndGggPT09IHRvdGFsU2xvdHMpIHtcbiAgICAgICAgICAgIG9uQ29tcGxldGUgPT09IG51bGwgfHwgb25Db21wbGV0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db21wbGV0ZSh1bm1hc2sgPyByYXcgOiBmb3JtYXR0ZWQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaXNDb21wb3NpbmcuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGNvbnN0IGN1cnNvclBvcyA9IChfYSA9IGlucHV0LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gaW5wdXQudmFsdWU7XG4gICAgICAgIC8vIEV4dHJhY3Qgb25seSB2YWxpZCBjaGFyYWN0ZXJzIGZyb20gdGhlIHJhdyBpbnB1dFxuICAgICAgICBjb25zdCByYXcgPSBleHRyYWN0UmF3KGlucHV0VmFsdWUsIG1hc2ssIHNsb3RDaGFyKVxuICAgICAgICAgICAgKyBpbnB1dFZhbHVlLnNsaWNlKGN1cnNvclBvcyA+IDAgPyBjdXJzb3JQb3MgLSAxIDogMCwgY3Vyc29yUG9zKS5yZXBsYWNlKC9bXlxcZGEtekEtWl0vZywgJycpO1xuICAgICAgICAvLyBSZS1leHRyYWN0IGZyb20gdGhlIGZ1bGwgaW5wdXQgdG8gZ2V0IGNsZWFuIHJhd1xuICAgICAgICBsZXQgY2xlYW5SYXcgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaCA9IGlucHV0VmFsdWVbaV07XG4gICAgICAgICAgICBpZiAoL1tcXGRhLXpBLVpdLy50ZXN0KGNoKSlcbiAgICAgICAgICAgICAgICBjbGVhblJhdyArPSBjaDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2soY2xlYW5SYXcsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgZXZlbnQpO1xuICAgICAgICAvLyBQb3NpdGlvbiBjdXJzb3IgYWZ0ZXIgdGhlIGxhc3QgZmlsbGVkIHNsb3RcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBmaW5kRmlyc3RTbG90KGZvcm1hdHRlZCwgc2xvdENoYXIpO1xuICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobmV4dFBvcywgbmV4dFBvcyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IChfYSA9IGlucHV0LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICAgICAgY29uc3Qgc2VsRW5kID0gKF9iID0gaW5wdXQuc2VsZWN0aW9uRW5kKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgICAgICAgICAgaWYgKHBvcyA9PT0gMCAmJiBzZWxFbmQgPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJhdyA9IGV4dHJhY3RSYXcoaW5uZXJWYWx1ZSwgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgaWYgKHBvcyAhPT0gc2VsRW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0aW9uOiByZW1vdmUgYWxsIHJhdyBjaGFycyBpbiB0aGUgc2VsZWN0ZWQgcmFuZ2VcbiAgICAgICAgICAgICAgICBsZXQgbmV3UmF3ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IHJhd0lkeCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aCAmJiByYXdJZHggPCBjdXJyZW50UmF3Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPCBwb3MgfHwgaSA+PSBzZWxFbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdSYXcgKz0gY3VycmVudFJhd1tyYXdJZHhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3SWR4Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKG5ld1JhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgeyB0YXJnZXQ6IGlucHV0IH0pO1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBmaW5kTmV4dFNsb3QobWFzaywgZm9ybWF0dGVkLCBzbG90Q2hhciwgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobmV4dFBvcywgbmV4dFBvcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaW5nbGUgYmFja3NwYWNlOiBmaW5kIHByZXYgdG9rZW4gcG9zaXRpb24gYW5kIHJlbW92ZSBpdFxuICAgICAgICAgICAgICAgIGxldCB0YXJnZXRQb3MgPSBwb3MgLSAxO1xuICAgICAgICAgICAgICAgIHdoaWxlICh0YXJnZXRQb3MgPj0gMCAmJiAhaXNNYXNrVG9rZW4obWFza1t0YXJnZXRQb3NdKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQb3MtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldFBvcyA8IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBsZXQgbmV3UmF3ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IHJhd0lkeCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IHRhcmdldFBvcyAmJiByYXdJZHggPCBjdXJyZW50UmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhdyArPSBjdXJyZW50UmF3W3Jhd0lkeF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByYXdJZHgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2sobmV3UmF3LCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgICAgIGVtaXRDaGFuZ2UoZm9ybWF0dGVkLCB7IHRhcmdldDogaW5wdXQgfSk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UodGFyZ2V0UG9zLCB0YXJnZXRQb3MpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcG9zID0gKF9jID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0UG9zID0gcG9zO1xuICAgICAgICAgICAgd2hpbGUgKHRhcmdldFBvcyA8IG1hc2subGVuZ3RoICYmICFpc01hc2tUb2tlbihtYXNrW3RhcmdldFBvc10pKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0UG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0UG9zID49IG1hc2subGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYXcgPSBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIGxldCBuZXdSYXcgPSAnJztcbiAgICAgICAgICAgIGxldCByYXdJZHggPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSB0YXJnZXRQb3MgJiYgcmF3SWR4IDwgY3VycmVudFJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhdyArPSBjdXJyZW50UmF3W3Jhd0lkeF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmF3SWR4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKG5ld1JhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgZW1pdENoYW5nZShmb3JtYXR0ZWQsIHsgdGFyZ2V0OiBpbnB1dCB9KTtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgb25LZXlEb3duID09PSBudWxsIHx8IG9uS2V5RG93biA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25LZXlEb3duKGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIC8vIE9uIGZvY3VzLCBpZiBlbXB0eSBzaG93IHRoZSBtYXNrIHBsYWNlaG9sZGVyXG4gICAgICAgIGlmICghaW5uZXJWYWx1ZSB8fCBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzaygnJywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBmaW5kRmlyc3RTbG90KGlucHV0LnZhbHVlLCBzbG90Q2hhcik7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmF3ID0gZXh0cmFjdFJhdyhpbm5lclZhbHVlLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgIGlmIChhdXRvQ2xlYXIgJiYgcmF3Lmxlbmd0aCA+IDAgJiYgcmF3Lmxlbmd0aCA8IHRvdGFsU2xvdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVtcHR5ID0gYXBwbHlNYXNrKCcnLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKGVtcHR5KTtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2UoZW1wdHksIHsgdGFyZ2V0OiBldmVudC50YXJnZXQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgY29tcGxldGVseSBlbXB0eSwgY2xlYXIgdGhlIGZvcm1hdHRlZCBtYXNrXG4gICAgICAgIGlmIChyYXcubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeChGaWVsZFNoZWxsLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIHByZWZpeENsczogcHJlZml4Q2xzLCBzaXplOiBzaXplLCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgdGlwOiB0aXAsIGZlZWRiYWNrOiBmZWVkYmFjaywgZmVlZGJhY2tJY29uOiBmZWVkYmFja0ljb24sIHJlcXVpcmVkOiByZXF1aXJlZCwgaW5wdXRJZDogaW5wdXRJZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJywgam9pbkNscyhpc0Rpc2FibGVkICYmIGNsYXNzZXMoJ2NvbnRyb2wtZGlzYWJsZWQnKSkpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogc3luY1JlZiwgaWQ6IGlucHV0SWQsIGNsYXNzTmFtZTogY2xhc3NlcygnZmllbGQnKSwgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsIHZhbHVlOiBpbm5lclZhbHVlLCBwbGFjZWhvbGRlcjogKF9hID0gcmVzdC5wbGFjZWhvbGRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXBwbHlNYXNrKCcnLCBtYXNrLCBzbG90Q2hhciksIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgb25Gb2N1czogaGFuZGxlRm9jdXMsIG9uQmx1cjogaGFuZGxlQmx1ciwgb25Db21wb3NpdGlvblN0YXJ0OiAoKSA9PiB7IGlzQ29tcG9zaW5nLmN1cnJlbnQgPSB0cnVlOyB9LCBvbkNvbXBvc2l0aW9uRW5kOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wb3NpbmcuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGUpO1xuICAgICAgICAgICAgICAgICAgICB9LCBcImFyaWEtcmVxdWlyZWRcIjogYXJpYVJlcXVpcmVkLCBcImFyaWEtaW52YWxpZFwiOiBhcmlhSW52YWxpZCB9KSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pIH0pKTtcbn07XG5JbnB1dE1hc2suZGlzcGxheU5hbWUgPSAnSW5wdXRNYXNrJztcbmNvbnN0IE1lbW9pemVkSW5wdXRNYXNrID0gbWVtbyhJbnB1dE1hc2spO1xuTWVtb2l6ZWRJbnB1dE1hc2suZGlzcGxheU5hbWUgPSAnSW5wdXRNYXNrJztcbmV4cG9ydCBkZWZhdWx0IE1lbW9pemVkSW5wdXRNYXNrOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
344
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwiY29tcG9uZW50cy9JbnB1dC9zcmMvY29tcG9uZW50cy9JbnB1dC9NYXNrL01hc2sudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VJZCIsInVzZVJlZiIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGaWVsZFNoZWxsIiwidXNlU3luY1JlZiIsIk1BU0tfVE9LRU4iLCJpc01hc2tUb2tlbiIsImNoYXIiLCJhcHBseU1hc2siLCJyYXciLCJtYXNrIiwic2xvdENoYXIiLCJyZXN1bHQiLCJyYXdJbmRleCIsIm1hc2tDaGFyIiwicmUiLCJ0ZXN0IiwiZXh0cmFjdFJhdyIsImZvcm1hdHRlZCIsImNvdW50VG9rZW5TbG90cyIsImNvdW50IiwiZmluZE5leHRTbG90IiwiZnJvbUluZGV4IiwiZmluZEZpcnN0U2xvdCIsImlkeCIsIklucHV0TWFzayIsInByb3BzIiwiX2EiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiX3Byb3BzJHNsb3RDaGFyIiwiX3Byb3BzJHVubWFzayIsInVubWFzayIsIl9wcm9wcyRhdXRvQ2xlYXIiLCJhdXRvQ2xlYXIiLCJsYWJlbCIsImluZm8iLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsInRpcCIsInJlcXVpcmVkIiwicHJlZml4Iiwic3VmZml4IiwiX3Nob3dDb3VudCIsInNob3dDb3VudCIsInZhbHVlIiwiX3Byb3BzJGRlZmF1bHRWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwib25Db21wbGV0ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleURvd24iLCJyZWYiLCJleHRlcm5hbElkIiwiaWQiLCJyZXN0IiwiYXV0b0lkIiwiaW5wdXRJZCIsImNsYXNzZXMiLCJfdXNlU3luY1JlZiIsIl91c2VTeW5jUmVmMiIsIl9zbGljZWRUb0FycmF5IiwiaW5wdXRSZWYiLCJzeW5jUmVmIiwiaXNDb21wb3NpbmciLCJ0b3RhbFNsb3RzIiwiZm9ybWF0VmFsdWUiLCJ2YWwiLCJpbml0aWFsRm9ybWF0dGVkIiwiY29udHJvbGxlZEZvcm1hdHRlZCIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiaXNEaXNhYmxlZCIsImFyaWFSZXF1aXJlZCIsImFyaWFJbnZhbGlkIiwiZW1pdENoYW5nZSIsImV2ZW50IiwiaGFuZGxlQ2hhbmdlIiwiY3VycmVudCIsImlucHV0IiwidGFyZ2V0IiwiaW5wdXRWYWx1ZSIsImNsZWFuUmF3IiwiY2giLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJuZXh0UG9zIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJoYW5kbGVLZXlEb3duIiwiX2IiLCJfYyIsImtleSIsInByZXZlbnREZWZhdWx0IiwicG9zIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxFbmQiLCJzZWxlY3Rpb25FbmQiLCJjdXJyZW50UmF3IiwibmV3UmF3IiwicmF3SWR4IiwidGFyZ2V0UG9zIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVCbHVyIiwiZW1wdHkiLCJjaGlsZHJlbiIsImFzc2lnbiIsInBsYWNlaG9sZGVyIiwib25Db21wb3NpdGlvblN0YXJ0Iiwib25Db21wb3NpdGlvbkVuZCIsImRpc3BsYXlOYW1lIiwiTWVtb2l6ZWRJbnB1dE1hc2siXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FB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TWFzay9NYXNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUlkLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZpZWxkU2hlbGwgfSBmcm9tICcuLi9GaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVN5bmNSZWYgfSBmcm9tICcuLi91c2VTeW5jUmVmJztcbi8qKiBNYXNrIHRva2VuIG1hdGNoZXJzOiA5ID0gZGlnaXQsIGEgPSBsZXR0ZXIsICogPSBhbHBoYW51bWVyaWMgKi9cbmNvbnN0IE1BU0tfVE9LRU4gPSB7XG4gICAgJzknOiAvXFxkLyxcbiAgICAnYSc6IC9bYS16QS1aXS8sXG4gICAgJyonOiAvW2EtekEtWjAtOV0vLFxufTtcbmNvbnN0IGlzTWFza1Rva2VuID0gKGNoYXIpID0+IGNoYXIgaW4gTUFTS19UT0tFTjtcbi8qKiBBcHBseSBtYXNrIHRvIHJhdyB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBmb3JtYXR0ZWQgc3RyaW5nICovXG5jb25zdCBhcHBseU1hc2sgPSAocmF3LCBtYXNrLCBzbG90Q2hhcikgPT4ge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgcmF3SW5kZXggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBtYXNrQ2hhciA9IG1hc2tbaV07XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrQ2hhcikpIHtcbiAgICAgICAgICAgIGlmIChyYXdJbmRleCA8IHJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZSA9IE1BU0tfVE9LRU5bbWFza0NoYXJdO1xuICAgICAgICAgICAgICAgIC8vIFNraXAgaW52YWxpZCBjaGFyYWN0ZXJzIGluIHJhd1xuICAgICAgICAgICAgICAgIHdoaWxlIChyYXdJbmRleCA8IHJhdy5sZW5ndGggJiYgIXJlLnRlc3QocmF3W3Jhd0luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmF3SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJhd0luZGV4IDwgcmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcmF3W3Jhd0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgcmF3SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzbG90Q2hhcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gc2xvdENoYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gbWFza0NoYXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4vKiogRXh0cmFjdCByYXcgdmFsdWUgKG9ubHkgdXNlci10eXBlZCBjaGFyYWN0ZXJzLCBubyBsaXRlcmFscyBvciBzbG90IGNoYXJzKSAqL1xuY29uc3QgZXh0cmFjdFJhdyA9IChmb3JtYXR0ZWQsIG1hc2ssIHNsb3RDaGFyKSA9PiB7XG4gICAgbGV0IHJhdyA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGggJiYgaSA8IGZvcm1hdHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkgJiYgZm9ybWF0dGVkW2ldICE9PSBzbG90Q2hhcikge1xuICAgICAgICAgICAgcmF3ICs9IGZvcm1hdHRlZFtpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmF3O1xufTtcbi8qKiBDb3VudCBob3cgbWFueSBtYXNrIHRva2VucyBleGlzdCBpbiB0aGUgbWFzayBwYXR0ZXJuICovXG5jb25zdCBjb3VudFRva2VuU2xvdHMgPSAobWFzaykgPT4ge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSlcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgfVxuICAgIHJldHVybiBjb3VudDtcbn07XG4vKiogRmluZCB0aGUgY3Vyc29yIHBvc2l0aW9uIGZvciB0aGUgbmV4dCBhdmFpbGFibGUgbWFzayB0b2tlbiBzbG90ICovXG5jb25zdCBmaW5kTmV4dFNsb3QgPSAobWFzaywgZm9ybWF0dGVkLCBzbG90Q2hhciwgZnJvbUluZGV4KSA9PiB7XG4gICAgZm9yIChsZXQgaSA9IGZyb21JbmRleDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pICYmIChpID49IGZvcm1hdHRlZC5sZW5ndGggfHwgZm9ybWF0dGVkW2ldID09PSBzbG90Q2hhcikpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmcm9tSW5kZXg7XG59O1xuLyoqIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBzbG90IGNoYXIgaW4gZm9ybWF0dGVkIHZhbHVlICovXG5jb25zdCBmaW5kRmlyc3RTbG90ID0gKGZvcm1hdHRlZCwgc2xvdENoYXIpID0+IHtcbiAgICBjb25zdCBpZHggPSBmb3JtYXR0ZWQuaW5kZXhPZihzbG90Q2hhcik7XG4gICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBmb3JtYXR0ZWQubGVuZ3RoIDogaWR4O1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dE1hc2sgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgbGFiZWxDbGFzc05hbWUsIHByZWZpeENscyA9ICdpbnB1dCcsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIGRpc2FibGVkID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbWFzaywgc2xvdENoYXIgPSAnXycsIHVubWFzayA9IGZhbHNlLCBhdXRvQ2xlYXIgPSBmYWxzZSwgbGFiZWwsIGluZm8sIGZlZWRiYWNrLCBmZWVkYmFja0ljb24sIHRpcCwgcmVxdWlyZWQsIHByZWZpeCwgc3VmZml4LCBcbiAgICAvLyBBY2NlcHRlZCB2aWEgSW5wdXRCYXNlUHJvcHMgYnV0IG1lYW5pbmdsZXNzIGhlcmUgKHRoZSBtYXNrIHBhdHRlcm5cbiAgICAvLyBhbHJlYWR5IGZpeGVzIHRoZSBsZW5ndGgpOyBkZXN0cnVjdHVyZWQgc28gaXQgbmV2ZXIgbGVha3Mgb250byB0aGVcbiAgICAvLyBET00gaW5wdXQgYXMgYW4gdW5rbm93biBhdHRyaWJ1dGUuXG4gICAgc2hvd0NvdW50OiBfc2hvd0NvdW50LCB2YWx1ZSwgZGVmYXVsdFZhbHVlID0gJycsIG9uQ2hhbmdlLCBvbkNvbXBsZXRlLCBvbkZvY3VzLCBvbkJsdXIsIG9uS2V5RG93biwgcmVmLCBpZDogZXh0ZXJuYWxJZCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcImxhYmVsQ2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwic2l6ZVwiLCBcInN0YXR1c1wiLCBcImRpc2FibGVkXCIsIFwibG9hZGluZ1wiLCBcIm1hc2tcIiwgXCJzbG90Q2hhclwiLCBcInVubWFza1wiLCBcImF1dG9DbGVhclwiLCBcImxhYmVsXCIsIFwiaW5mb1wiLCBcImZlZWRiYWNrXCIsIFwiZmVlZGJhY2tJY29uXCIsIFwidGlwXCIsIFwicmVxdWlyZWRcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJzaG93Q291bnRcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25Db21wbGV0ZVwiLCBcIm9uRm9jdXNcIiwgXCJvbkJsdXJcIiwgXCJvbktleURvd25cIiwgXCJyZWZcIiwgXCJpZFwiXSk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBpbnB1dElkID0gZXh0ZXJuYWxJZCAhPT0gbnVsbCAmJiBleHRlcm5hbElkICE9PSB2b2lkIDAgPyBleHRlcm5hbElkIDogYXV0b0lkO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2lucHV0UmVmLCBzeW5jUmVmXSA9IHVzZVN5bmNSZWYocmVmKTtcbiAgICBjb25zdCBpc0NvbXBvc2luZyA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgdG90YWxTbG90cyA9IGNvdW50VG9rZW5TbG90cyhtYXNrKTtcbiAgICAvLyBJbnRlcm5hbCBzdGF0ZSBhbHdheXMgc3RvcmVzIHRoZSBmb3JtYXR0ZWQgdmFsdWVcbiAgICBjb25zdCBmb3JtYXRWYWx1ZSA9ICh2YWwpID0+IGFwcGx5TWFzayh2YWwsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICBjb25zdCBpbml0aWFsRm9ybWF0dGVkID0gZGVmYXVsdFZhbHVlID8gZm9ybWF0VmFsdWUoZGVmYXVsdFZhbHVlKSA6ICcnO1xuICAgIGNvbnN0IGNvbnRyb2xsZWRGb3JtYXR0ZWQgPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gZm9ybWF0VmFsdWUodmFsdWUpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShpbml0aWFsRm9ybWF0dGVkLCBjb250cm9sbGVkRm9ybWF0dGVkKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZWQgfHwgbG9hZGluZztcbiAgICBjb25zdCBhcmlhUmVxdWlyZWQgPSByZXF1aXJlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgY29uc3QgYXJpYUludmFsaWQgPSBzdGF0dXMgPT09ICdlcnJvcicgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGNvbnN0IGVtaXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChmb3JtYXR0ZWQsIGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RSYXcoZm9ybWF0dGVkLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZSh1bm1hc2sgPyByYXcgOiBmb3JtYXR0ZWQsIGV2ZW50KTtcbiAgICAgICAgaWYgKHJhdy5sZW5ndGggPT09IHRvdGFsU2xvdHMpIHtcbiAgICAgICAgICAgIG9uQ29tcGxldGUgPT09IG51bGwgfHwgb25Db21wbGV0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db21wbGV0ZSh1bm1hc2sgPyByYXcgOiBmb3JtYXR0ZWQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzQ29tcG9zaW5nLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gaW5wdXQudmFsdWU7XG4gICAgICAgIC8vIEV4dHJhY3QgdmFsaWQgY2hhcmFjdGVycyBmcm9tIHRoZSBmdWxsIGlucHV0LlxuICAgICAgICBsZXQgY2xlYW5SYXcgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaCA9IGlucHV0VmFsdWVbaV07XG4gICAgICAgICAgICBpZiAoL1tcXGRhLXpBLVpdLy50ZXN0KGNoKSlcbiAgICAgICAgICAgICAgICBjbGVhblJhdyArPSBjaDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2soY2xlYW5SYXcsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgZXZlbnQpO1xuICAgICAgICAvLyBQb3NpdGlvbiBjdXJzb3IgYWZ0ZXIgdGhlIGxhc3QgZmlsbGVkIHNsb3RcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBmaW5kRmlyc3RTbG90KGZvcm1hdHRlZCwgc2xvdENoYXIpO1xuICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobmV4dFBvcywgbmV4dFBvcyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IChfYSA9IGlucHV0LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICAgICAgY29uc3Qgc2VsRW5kID0gKF9iID0gaW5wdXQuc2VsZWN0aW9uRW5kKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgICAgICAgICAgaWYgKHBvcyA9PT0gMCAmJiBzZWxFbmQgPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJhdyA9IGV4dHJhY3RSYXcoaW5uZXJWYWx1ZSwgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgaWYgKHBvcyAhPT0gc2VsRW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0aW9uOiByZW1vdmUgYWxsIHJhdyBjaGFycyBpbiB0aGUgc2VsZWN0ZWQgcmFuZ2VcbiAgICAgICAgICAgICAgICBsZXQgbmV3UmF3ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IHJhd0lkeCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aCAmJiByYXdJZHggPCBjdXJyZW50UmF3Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPCBwb3MgfHwgaSA+PSBzZWxFbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdSYXcgKz0gY3VycmVudFJhd1tyYXdJZHhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3SWR4Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKG5ld1JhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgeyB0YXJnZXQ6IGlucHV0IH0pO1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBmaW5kTmV4dFNsb3QobWFzaywgZm9ybWF0dGVkLCBzbG90Q2hhciwgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobmV4dFBvcywgbmV4dFBvcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaW5nbGUgYmFja3NwYWNlOiBmaW5kIHByZXYgdG9rZW4gcG9zaXRpb24gYW5kIHJlbW92ZSBpdFxuICAgICAgICAgICAgICAgIGxldCB0YXJnZXRQb3MgPSBwb3MgLSAxO1xuICAgICAgICAgICAgICAgIHdoaWxlICh0YXJnZXRQb3MgPj0gMCAmJiAhaXNNYXNrVG9rZW4obWFza1t0YXJnZXRQb3NdKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQb3MtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldFBvcyA8IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBsZXQgbmV3UmF3ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IHJhd0lkeCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IHRhcmdldFBvcyAmJiByYXdJZHggPCBjdXJyZW50UmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhdyArPSBjdXJyZW50UmF3W3Jhd0lkeF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByYXdJZHgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2sobmV3UmF3LCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgICAgIGVtaXRDaGFuZ2UoZm9ybWF0dGVkLCB7IHRhcmdldDogaW5wdXQgfSk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UodGFyZ2V0UG9zLCB0YXJnZXRQb3MpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcG9zID0gKF9jID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0UG9zID0gcG9zO1xuICAgICAgICAgICAgd2hpbGUgKHRhcmdldFBvcyA8IG1hc2subGVuZ3RoICYmICFpc01hc2tUb2tlbihtYXNrW3RhcmdldFBvc10pKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0UG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0UG9zID49IG1hc2subGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYXcgPSBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIGxldCBuZXdSYXcgPSAnJztcbiAgICAgICAgICAgIGxldCByYXdJZHggPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSB0YXJnZXRQb3MgJiYgcmF3SWR4IDwgY3VycmVudFJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhdyArPSBjdXJyZW50UmF3W3Jhd0lkeF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmF3SWR4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKG5ld1JhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgZW1pdENoYW5nZShmb3JtYXR0ZWQsIHsgdGFyZ2V0OiBpbnB1dCB9KTtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgb25LZXlEb3duID09PSBudWxsIHx8IG9uS2V5RG93biA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25LZXlEb3duKGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIC8vIE9uIGZvY3VzLCBpZiBlbXB0eSBzaG93IHRoZSBtYXNrIHBsYWNlaG9sZGVyXG4gICAgICAgIGlmICghaW5uZXJWYWx1ZSB8fCBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzaygnJywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBmaW5kRmlyc3RTbG90KGlucHV0LnZhbHVlLCBzbG90Q2hhcik7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmF3ID0gZXh0cmFjdFJhdyhpbm5lclZhbHVlLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgIGlmIChhdXRvQ2xlYXIgJiYgcmF3Lmxlbmd0aCA+IDAgJiYgcmF3Lmxlbmd0aCA8IHRvdGFsU2xvdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVtcHR5ID0gYXBwbHlNYXNrKCcnLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKGVtcHR5KTtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2UoZW1wdHksIHsgdGFyZ2V0OiBldmVudC50YXJnZXQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgY29tcGxldGVseSBlbXB0eSwgY2xlYXIgdGhlIGZvcm1hdHRlZCBtYXNrXG4gICAgICAgIGlmIChyYXcubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeChGaWVsZFNoZWxsLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIHByZWZpeENsczogcHJlZml4Q2xzLCBzaXplOiBzaXplLCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgdGlwOiB0aXAsIGZlZWRiYWNrOiBmZWVkYmFjaywgZmVlZGJhY2tJY29uOiBmZWVkYmFja0ljb24sIHJlcXVpcmVkOiByZXF1aXJlZCwgaW5wdXRJZDogaW5wdXRJZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJywgam9pbkNscyhpc0Rpc2FibGVkICYmIGNsYXNzZXMoJ2NvbnRyb2wtZGlzYWJsZWQnKSkpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogc3luY1JlZiwgaWQ6IGlucHV0SWQsIGNsYXNzTmFtZTogY2xhc3NlcygnZmllbGQnKSwgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsIHZhbHVlOiBpbm5lclZhbHVlLCBwbGFjZWhvbGRlcjogKF9hID0gcmVzdC5wbGFjZWhvbGRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXBwbHlNYXNrKCcnLCBtYXNrLCBzbG90Q2hhciksIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgb25Gb2N1czogaGFuZGxlRm9jdXMsIG9uQmx1cjogaGFuZGxlQmx1ciwgb25Db21wb3NpdGlvblN0YXJ0OiAoKSA9PiB7IGlzQ29tcG9zaW5nLmN1cnJlbnQgPSB0cnVlOyB9LCBvbkNvbXBvc2l0aW9uRW5kOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wb3NpbmcuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGUpO1xuICAgICAgICAgICAgICAgICAgICB9LCBcImFyaWEtcmVxdWlyZWRcIjogYXJpYVJlcXVpcmVkLCBcImFyaWEtaW52YWxpZFwiOiBhcmlhSW52YWxpZCB9KSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pIH0pKTtcbn07XG5JbnB1dE1hc2suZGlzcGxheU5hbWUgPSAnSW5wdXRNYXNrJztcbmNvbnN0IE1lbW9pemVkSW5wdXRNYXNrID0gbWVtbyhJbnB1dE1hc2spO1xuTWVtb2l6ZWRJbnB1dE1hc2suZGlzcGxheU5hbWUgPSAnSW5wdXRNYXNrJztcbmV4cG9ydCBkZWZhdWx0IE1lbW9pemVkSW5wdXRNYXNrOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1,5 +1,10 @@
1
- import type { NavigationProps, NavigationHandlers } from './interface';
1
+ import type { FC } from 'react';
2
+ import type { NavigationProps, NavigationItemProps, NavigationHandlers } from './interface';
2
3
  import './style';
3
- export declare const Navigation: import("react").ForwardRefExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>>;
4
- declare const _default: import("react").NamedExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>>;
4
+ export declare const Navigation: import("react").ForwardRefExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>> & {
5
+ Item: FC<NavigationItemProps>;
6
+ };
7
+ declare const _default: import("react").NamedExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>> & {
8
+ Item: FC<NavigationItemProps>;
9
+ };
5
10
  export default _default;