@projectcor/people-microfront 1.0.2-8 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/lib/App.js +8 -45
  2. package/lib/App.stories.js +27 -2
  3. package/lib/components/DeleteTeamModal/DeleteTeamModal.js +8 -5
  4. package/lib/components/DeleteTeamModal/DeleteTeamModal.styles.js +11 -10
  5. package/lib/components/DeletedUserIcon/DeletedUserIcon.js +5 -3
  6. package/lib/components/DeletedUserIcon/DeletedUserIcon.styles.js +2 -2
  7. package/lib/components/DisabledUserIcon/DisabledUserIcon.js +3 -2
  8. package/lib/components/DisabledUserIcon/DisabledUserIcon.styles.js +2 -2
  9. package/lib/components/EmptyStateTeams/EmptyStateTeams.js +4 -3
  10. package/lib/components/EmptyStateTeams/EmptyStateTeams.styles.js +3 -2
  11. package/lib/components/EmptyUser/EmptyUser.js +9 -48
  12. package/lib/components/EmptyUser/EmptyUser.styles.js +18 -0
  13. package/lib/components/ErrorComponent/ErrorComponent.spec.js +3 -2
  14. package/lib/components/ErrorComponent/ErrorComponent.styles.js +5 -5
  15. package/lib/components/ErrorTeams/ErrorTeams.styles.js +3 -2
  16. package/lib/components/Filters/FilterChip/FilterChip.js +52 -32
  17. package/lib/components/Filters/FilterChip/FilterChip.styles.js +6 -0
  18. package/lib/components/Filters/LabelFilter/LabelFilter.js +22 -20
  19. package/lib/components/Filters/LabelFilter/LabelFilter.styles.js +4 -4
  20. package/lib/components/Filters/SearchComponent/SearchComponent.js +3 -5
  21. package/lib/components/HeaderTeams/HeaderTeams.js +4 -3
  22. package/lib/components/HeaderTeams/HeaderTeams.style.js +3 -2
  23. package/lib/components/Icons/UserIconLock.js +3 -2
  24. package/lib/components/Icons/UserIconWithCross.js +3 -2
  25. package/lib/components/Illustration/EmptyFilter.js +67 -0
  26. package/lib/components/Layout/Layout.js +23 -2
  27. package/lib/components/Layout/Layout.styles.js +19 -3
  28. package/lib/components/Layout/index.js +2 -3
  29. package/lib/components/MenuOptions/MenuOptions.js +127 -40
  30. package/lib/components/MenuOptions/MenuOptions.styles.js +8 -4
  31. package/lib/components/Modal/ModalLayout.js +4 -4
  32. package/lib/components/Modal/ModalLayout.style.js +9 -9
  33. package/lib/components/ModalBlockedUser/ModalBlockedUser.js +47 -0
  34. package/lib/components/ModalBlockedUser/ModalBlockedUser.styles.js +14 -0
  35. package/lib/components/ModalBlockedUser/index.js +2 -0
  36. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.js +14 -52
  37. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.styles.js +37 -0
  38. package/lib/components/ModalEditUserPosition/UserEditPositionRow.js +55 -168
  39. package/lib/components/ModalEditUserPosition/UserEditPositionRow.styles.js +56 -1
  40. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.js +109 -25
  41. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.styles.js +9 -4
  42. package/lib/components/ModalOptionsWithSearch/SearchInput.js +5 -2
  43. package/lib/components/Pagination/Pagination.styles.js +5 -1
  44. package/lib/components/Pagination/PaginationView.js +83 -0
  45. package/lib/components/Search/InputSearch.js +3 -2
  46. package/lib/components/Search/Search.js +18 -15
  47. package/lib/components/Table/Header/HeaderTable.js +29 -41
  48. package/lib/components/Table/Header/HeaderTable.styles.js +15 -0
  49. package/lib/components/Table/Row/Row.js +59 -27
  50. package/lib/components/Table/Row/Row.styles.js +40 -18
  51. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.js +8 -5
  52. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.styles.js +7 -6
  53. package/lib/components/Table/TeamRow/AddUsers/AddUsers.js +92 -61
  54. package/lib/components/Table/TeamRow/AddUsers/AddUsers.styles.js +8 -3
  55. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.js +8 -5
  56. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.styles.js +7 -6
  57. package/lib/components/Table/TeamRow/TeamRow.js +40 -13
  58. package/lib/components/Table/TeamRow/TeamRow.styles.js +7 -0
  59. package/lib/components/Table/TeamRow/UsersRow/UsersRow.js +10 -6
  60. package/lib/components/Table/TeamRow/UsersRow/UsersRow.styles.js +5 -4
  61. package/lib/components/TeamDetailsModal/MembersSelect.js +38 -35
  62. package/lib/components/TeamDetailsModal/TeamDetailsModal.js +21 -17
  63. package/lib/components/TeamDetailsModal/TeamDetailsModal.styles.js +30 -21
  64. package/lib/components/UserRow/UserRow.js +17 -70
  65. package/lib/components/UserRow/UserRow.styles.js +33 -4
  66. package/lib/container/Body/BodyContainer.js +52 -33
  67. package/lib/container/Body/BodyContainerViewTeams.js +37 -18
  68. package/lib/container/Filters/FiltersContainer.js +99 -34
  69. package/lib/container/Filters/FiltersTeamsContainer.js +1 -5
  70. package/lib/container/MainView/MainTeamsView.js +24 -22
  71. package/lib/container/MainView/MainUsersView.js +46 -80
  72. package/lib/container/MainView/MainUsersView.styles.js +32 -0
  73. package/lib/container/MainView/MainView.js +2 -4
  74. package/lib/container/Pagination/PaginationContainer.js +10 -123
  75. package/lib/container/Pagination/PaginationTeamsContainer.js +32 -0
  76. package/lib/container/RouterComponent/RouterComponent.js +24 -45
  77. package/lib/container/RouterComponent/RouterComponent.stories.js +1 -3
  78. package/lib/container/RouterComponent/RouterComponent.styles.js +26 -0
  79. package/lib/container/TableContainer/TableContainer.js +35 -11
  80. package/lib/context/TeamsContext.js +8 -2
  81. package/lib/context/UsersContext.js +45 -22
  82. package/lib/hooks/useAbortController.js +15 -11
  83. package/lib/hooks/useCreateTeams.js +8 -4
  84. package/lib/hooks/useDebouncedCallback.js +27 -0
  85. package/lib/hooks/useDeleteTeam.js +5 -1
  86. package/lib/hooks/useGetTeams.js +45 -19
  87. package/lib/hooks/useGetUserPositionFilter.js +5 -2
  88. package/lib/hooks/useGetUsers.js +38 -17
  89. package/lib/hooks/useGetUsersForFilter.js +1 -2
  90. package/lib/hooks/useGraphAdapter.js +19 -8
  91. package/lib/hooks/useLoadMoreGuard.js +16 -0
  92. package/lib/hooks/useResize.js +9 -4
  93. package/lib/lang/i18nextForWeb.js +2 -2
  94. package/lib/lang/translation/br.json +63 -13
  95. package/lib/lang/translation/en.json +64 -13
  96. package/lib/lang/translation/es.json +64 -13
  97. package/lib/lang/translation/fr.json +66 -15
  98. package/lib/query/getTeams.js +2 -2
  99. package/lib/query/getUsers.js +2 -2
  100. package/lib/types/global.d.js +1 -1
  101. package/lib/types/userType.d.js +1 -1
  102. package/lib/utils/formatNumber.js +55 -0
  103. package/lib/utils/tabUrl.js +20 -0
  104. package/package.json +2 -2
  105. package/readme.md +223 -52
  106. package/lib/components/ModalBloquedUser/ModalBloquedUser.js +0 -70
  107. package/lib/components/ModalBloquedUser/index.js +0 -2
  108. package/lib/components/Pagination/Pagination.js +0 -78
  109. package/lib/components/ShowMore/ShowMore.js +0 -12
  110. package/lib/components/ShowMore/ShowMore.style.js +0 -10
  111. package/lib/components/ShowMore/index.js +0 -2
  112. package/lib/components/Table/Content/ContentTable.js +0 -7
  113. package/lib/components/Table/Content/index.js +0 -2
@@ -5,14 +5,34 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  /* eslint-disable @typescript-eslint/no-unused-vars */
6
6
  /* eslint-disable no-unused-vars */
7
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
8
- import { useCallback, memo, useState } from 'react';
8
+ import { useCallback, memo, useState, lazy, Suspense } from 'react';
9
9
  import { RowComponent } from '../../components/Table/Row';
10
- import { ModalBloquedUser } from '../../components/ModalBloquedUser';
11
10
  import { useUsersEditPositions, useUsersQuery, useUsersView } from '../../context/UsersContext';
12
- import { EmptyUserComponent } from '../../components/EmptyUser/EmptyUser';
13
11
  import { useUnblockUser } from '../../hooks/useUnblockUser';
14
- import { BodyContainerViewTeams } from './BodyContainerViewTeams';
12
+ import { LoaderComponent } from '../../components/Loading/LoadingComponent';
13
+ import { LayoutBodyUser } from '../../components/Layout/Layout';
15
14
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
+ var LazyEmptyUserComponent = /*#__PURE__*/lazy(function () {
16
+ return import('../../components/EmptyUser/EmptyUser').then(function (module) {
17
+ return {
18
+ "default": module.EmptyUserComponent
19
+ };
20
+ });
21
+ });
22
+ var LazyModalBlockedUser = /*#__PURE__*/lazy(function () {
23
+ return import('../../components/ModalBlockedUser').then(function (module) {
24
+ return {
25
+ "default": module.ModalBlockedUser
26
+ };
27
+ });
28
+ });
29
+ var LazyBodyContainerViewTeams = /*#__PURE__*/lazy(function () {
30
+ return import('./BodyContainerViewTeams').then(function (module) {
31
+ return {
32
+ "default": module.BodyContainerViewTeams
33
+ };
34
+ });
35
+ });
16
36
  var BodyContainerViewUsers = function BodyContainerViewUsers() {
17
37
  var _useUsersQuery = useUsersQuery(),
18
38
  users = _useUsersQuery.users;
@@ -23,18 +43,18 @@ var BodyContainerViewUsers = function BodyContainerViewUsers() {
23
43
  handleUnblockUser = _useUnblockUser.handleUnblockUser;
24
44
  var _useState = useState(false),
25
45
  _useState2 = _slicedToArray(_useState, 2),
26
- showModalBloquedUser = _useState2[0],
27
- setShowModalBloquedUser = _useState2[1];
46
+ showModalBlockedUser = _useState2[0],
47
+ setShowModalBlockedUser = _useState2[1];
28
48
  var _useState3 = useState(null),
29
49
  _useState4 = _slicedToArray(_useState3, 2),
30
- userBloqued = _useState4[0],
31
- setUserBloqued = _useState4[1];
50
+ userBlocked = _useState4[0],
51
+ setUserBlocked = _useState4[1];
32
52
  var handleSelectOption = useCallback(function (option, user, userIndexPositionToEdit) {
33
53
  if (option.id === 1) {
34
- setUserBloqued(_objectSpread(_objectSpread({}, user), {}, {
54
+ setUserBlocked(_objectSpread(_objectSpread({}, user), {}, {
35
55
  userIndexPositionToEdit: userIndexPositionToEdit
36
56
  }));
37
- setShowModalBloquedUser(true);
57
+ setShowModalBlockedUser(true);
38
58
  return;
39
59
  }
40
60
  if (option.id === 2) {
@@ -47,26 +67,23 @@ var BodyContainerViewUsers = function BodyContainerViewUsers() {
47
67
  }, []);
48
68
  var handleAction = function handleAction(action, userInfoToSend) {
49
69
  if (action === 'cancel') {
50
- setShowModalBloquedUser(false);
51
- setUserBloqued(null);
70
+ setShowModalBlockedUser(false);
71
+ setUserBlocked(null);
52
72
  return;
53
73
  }
54
74
  if (action === 'unlock') {
55
75
  handleUnblockUser(userInfoToSend);
56
76
  }
57
- setShowModalBloquedUser(false);
77
+ setShowModalBlockedUser(false);
58
78
  };
59
79
  return /*#__PURE__*/_jsxs(_Fragment, {
60
- children: [showModalBloquedUser && /*#__PURE__*/_jsx(ModalBloquedUser, {
61
- user: userBloqued,
62
- handleAction: handleAction
63
- }), /*#__PURE__*/_jsx("div", {
64
- style: {
65
- display: 'flex',
66
- flexDirection: 'column',
67
- border: '1px solid #e7e7e7',
68
- borderRadius: '0 0 4px 4px'
69
- },
80
+ children: [showModalBlockedUser && /*#__PURE__*/_jsx(Suspense, {
81
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
82
+ children: /*#__PURE__*/_jsx(LazyModalBlockedUser, {
83
+ user: userBlocked,
84
+ handleAction: handleAction
85
+ })
86
+ }), /*#__PURE__*/_jsx(LayoutBodyUser, {
70
87
  children: users !== null && users !== void 0 && users.length ? users.map(function (user, index) {
71
88
  return /*#__PURE__*/_jsx(RowComponent, {
72
89
  id: user.id.toString(),
@@ -76,23 +93,22 @@ var BodyContainerViewUsers = function BodyContainerViewUsers() {
76
93
  handleSetUsersToEditPositions: handleSetUsersToEditPositions,
77
94
  userIndexPositionToEdit: index
78
95
  }, user.id);
79
- }) : /*#__PURE__*/_jsx(EmptyUserComponent, {})
96
+ }) : /*#__PURE__*/_jsx(Suspense, {
97
+ fallback: null,
98
+ children: /*#__PURE__*/_jsx(LazyEmptyUserComponent, {})
99
+ })
80
100
  })]
81
101
  });
82
102
  };
83
103
  var BodyContainerViewPositions = function BodyContainerViewPositions() {
84
- return /*#__PURE__*/_jsx("div", {
85
- children: "BodyContainerViewPositions"
86
- });
104
+ return null;
87
105
  };
88
106
  var BodyContainerViewLeaves = function BodyContainerViewLeaves() {
89
- return /*#__PURE__*/_jsx("div", {
90
- children: "BodyContainerViewLeaves"
91
- });
107
+ return null;
92
108
  };
93
109
  var BodyContainerByView = {
94
110
  users: BodyContainerViewUsers,
95
- teams: BodyContainerViewTeams,
111
+ teams: LazyBodyContainerViewTeams,
96
112
  positions: BodyContainerViewPositions,
97
113
  leaves: BodyContainerViewLeaves
98
114
  };
@@ -100,6 +116,9 @@ export var BodyContainer = /*#__PURE__*/memo(function () {
100
116
  var _useUsersView = useUsersView(),
101
117
  view = _useUsersView.view;
102
118
  var BodyContainerView = BodyContainerByView[view];
103
- return /*#__PURE__*/_jsx(BodyContainerView, {});
119
+ return /*#__PURE__*/_jsx(Suspense, {
120
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
121
+ children: /*#__PURE__*/_jsx(BodyContainerView, {})
122
+ });
104
123
  });
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsIm1lbW8iLCJ1c2VTdGF0ZSIsIlJvd0NvbXBvbmVudCIsIk1vZGFsQmxvcXVlZFVzZXIiLCJ1c2VVc2Vyc0VkaXRQb3NpdGlvbnMiLCJ1c2VVc2Vyc1F1ZXJ5IiwidXNlVXNlcnNWaWV3IiwiRW1wdHlVc2VyQ29tcG9uZW50IiwidXNlVW5ibG9ja1VzZXIiLCJCb2R5Q29udGFpbmVyVmlld1RlYW1zIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiQm9keUNvbnRhaW5lclZpZXdVc2VycyIsIl91c2VVc2Vyc1F1ZXJ5IiwidXNlcnMiLCJfdXNlVXNlcnNFZGl0UG9zaXRpb24iLCJoYXNFZGl0UG9zaXRpb25zIiwiaGFuZGxlU2V0VXNlcnNUb0VkaXRQb3NpdGlvbnMiLCJfdXNlVW5ibG9ja1VzZXIiLCJoYW5kbGVVbmJsb2NrVXNlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dNb2RhbEJsb3F1ZWRVc2VyIiwic2V0U2hvd01vZGFsQmxvcXVlZFVzZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInVzZXJCbG9xdWVkIiwic2V0VXNlckJsb3F1ZWQiLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJvcHRpb24iLCJ1c2VyIiwidXNlckluZGV4UG9zaXRpb25Ub0VkaXQiLCJpZCIsIl9vYmplY3RTcHJlYWQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJjb25jYXQiLCJoYW5kbGVBY3Rpb24iLCJhY3Rpb24iLCJ1c2VySW5mb1RvU2VuZCIsImNoaWxkcmVuIiwic3R5bGUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImxlbmd0aCIsIm1hcCIsImluZGV4IiwidG9TdHJpbmciLCJCb2R5Q29udGFpbmVyVmlld1Bvc2l0aW9ucyIsIkJvZHlDb250YWluZXJWaWV3TGVhdmVzIiwiQm9keUNvbnRhaW5lckJ5VmlldyIsInRlYW1zIiwicG9zaXRpb25zIiwibGVhdmVzIiwiQm9keUNvbnRhaW5lciIsIl91c2VVc2Vyc1ZpZXciLCJ2aWV3IiwiQm9keUNvbnRhaW5lclZpZXciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0JvZHkvQm9keUNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIG1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhYmxlL1JvdydcbmltcG9ydCB7IE1vZGFsQmxvcXVlZFVzZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL01vZGFsQmxvcXVlZFVzZXInXG5pbXBvcnQgeyB1c2VVc2Vyc0VkaXRQb3NpdGlvbnMsIHVzZVVzZXJzUXVlcnksIHVzZVVzZXJzVmlldyB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgRW1wdHlVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9FbXB0eVVzZXIvRW1wdHlVc2VyJ1xuaW1wb3J0IHsgdXNlVW5ibG9ja1VzZXIgfSBmcm9tICcuLi8uLi9ob29rcy91c2VVbmJsb2NrVXNlcidcbmltcG9ydCB7IEJvZHlDb250YWluZXJWaWV3VGVhbXMgfSBmcm9tICcuL0JvZHlDb250YWluZXJWaWV3VGVhbXMnXG5cbmNvbnN0IEJvZHlDb250YWluZXJWaWV3VXNlcnMgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdXNlcnMgfSA9IHVzZVVzZXJzUXVlcnkoKVxuICBjb25zdCB7IGhhc0VkaXRQb3NpdGlvbnMsIGhhbmRsZVNldFVzZXJzVG9FZGl0UG9zaXRpb25zIH0gPSB1c2VVc2Vyc0VkaXRQb3NpdGlvbnMoKVxuICBjb25zdCB7IGhhbmRsZVVuYmxvY2tVc2VyIH0gPSB1c2VVbmJsb2NrVXNlcigpXG4gIGNvbnN0IFtzaG93TW9kYWxCbG9xdWVkVXNlciwgc2V0U2hvd01vZGFsQmxvcXVlZFVzZXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt1c2VyQmxvcXVlZCwgc2V0VXNlckJsb3F1ZWRdID0gdXNlU3RhdGU8YW55PihudWxsKVxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAob3B0aW9uOiB7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSwgdXNlcjogYW55LCB1c2VySW5kZXhQb3NpdGlvblRvRWRpdDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAob3B0aW9uLmlkID09PSAxKSB7XG4gICAgICAgIHNldFVzZXJCbG9xdWVkKHsgLi4udXNlciwgdXNlckluZGV4UG9zaXRpb25Ub0VkaXQgfSlcbiAgICAgICAgc2V0U2hvd01vZGFsQmxvcXVlZFVzZXIodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uLmlkID09PSAyKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC91c2Vycy8ke3VzZXIuaWR9L2VkaXRgXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gMykge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvdXNlcnMvJHt1c2VyLmlkfS9kZWxldGVgXG4gICAgICB9XG4gICAgfSxcbiAgICBbXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKGFjdGlvbjogc3RyaW5nLCB1c2VySW5mb1RvU2VuZDogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgIHNldFNob3dNb2RhbEJsb3F1ZWRVc2VyKGZhbHNlKVxuICAgICAgc2V0VXNlckJsb3F1ZWQobnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoYWN0aW9uID09PSAndW5sb2NrJykge1xuICAgICAgaGFuZGxlVW5ibG9ja1VzZXIodXNlckluZm9Ub1NlbmQpXG4gICAgfVxuICAgIHNldFNob3dNb2RhbEJsb3F1ZWRVc2VyKGZhbHNlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3Nob3dNb2RhbEJsb3F1ZWRVc2VyICYmIDxNb2RhbEJsb3F1ZWRVc2VyIHVzZXI9e3VzZXJCbG9xdWVkfSBoYW5kbGVBY3Rpb249e2hhbmRsZUFjdGlvbn0gLz59XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGJvcmRlcjogJzFweCBzb2xpZCAjZTdlN2U3JywgYm9yZGVyUmFkaXVzOiAnMCAwIDRweCA0cHgnIH19XG4gICAgICA+XG4gICAgICAgIHt1c2Vycz8ubGVuZ3RoID8gKFxuICAgICAgICAgIHVzZXJzLm1hcCgodXNlciwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxSb3dDb21wb25lbnRcbiAgICAgICAgICAgICAga2V5PXt1c2VyLmlkfVxuICAgICAgICAgICAgICBpZD17dXNlci5pZC50b1N0cmluZygpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgaGFzRWRpdFBvc2l0aW9ucz17aGFzRWRpdFBvc2l0aW9uc31cbiAgICAgICAgICAgICAgaGFuZGxlU2V0VXNlcnNUb0VkaXRQb3NpdGlvbnM9e2hhbmRsZVNldFVzZXJzVG9FZGl0UG9zaXRpb25zfVxuICAgICAgICAgICAgICB1c2VySW5kZXhQb3NpdGlvblRvRWRpdD17aW5kZXh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEVtcHR5VXNlckNvbXBvbmVudCAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gIClcbn1cblxuY29uc3QgQm9keUNvbnRhaW5lclZpZXdQb3NpdGlvbnMgPSAoKSA9PiB7XG4gIHJldHVybiA8ZGl2PkJvZHlDb250YWluZXJWaWV3UG9zaXRpb25zPC9kaXY+XG59XG5cbmNvbnN0IEJvZHlDb250YWluZXJWaWV3TGVhdmVzID0gKCkgPT4ge1xuICByZXR1cm4gPGRpdj5Cb2R5Q29udGFpbmVyVmlld0xlYXZlczwvZGl2PlxufVxuXG5jb25zdCBCb2R5Q29udGFpbmVyQnlWaWV3ID0ge1xuICB1c2VyczogQm9keUNvbnRhaW5lclZpZXdVc2VycyxcbiAgdGVhbXM6IEJvZHlDb250YWluZXJWaWV3VGVhbXMsXG4gIHBvc2l0aW9uczogQm9keUNvbnRhaW5lclZpZXdQb3NpdGlvbnMsXG4gIGxlYXZlczogQm9keUNvbnRhaW5lclZpZXdMZWF2ZXMsXG59XG5cbmV4cG9ydCBjb25zdCBCb2R5Q29udGFpbmVyID0gbWVtbygoKSA9PiB7XG4gIGNvbnN0IHsgdmlldyB9ID0gdXNlVXNlcnNWaWV3KClcbiAgY29uc3QgQm9keUNvbnRhaW5lclZpZXcgPSBCb2R5Q29udGFpbmVyQnlWaWV3W3ZpZXddXG4gIHJldHVybiA8Qm9keUNvbnRhaW5lclZpZXcgLz5cbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFbkQsU0FBU0MsWUFBWSxRQUFRLDRCQUE0QjtBQUN6RCxTQUFTQyxnQkFBZ0IsUUFBUSxtQ0FBbUM7QUFDcEUsU0FBU0MscUJBQXFCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxRQUFRLDRCQUE0QjtBQUMvRixTQUFTQyxrQkFBa0IsUUFBUSxzQ0FBc0M7QUFDekUsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUVqRSxJQUFNQyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBLEVBQVM7RUFDbkMsSUFBQUMsY0FBQSxHQUFrQlosYUFBYSxDQUFDLENBQUM7SUFBekJhLEtBQUssR0FBQUQsY0FBQSxDQUFMQyxLQUFLO0VBQ2IsSUFBQUMscUJBQUEsR0FBNERmLHFCQUFxQixDQUFDLENBQUM7SUFBM0VnQixnQkFBZ0IsR0FBQUQscUJBQUEsQ0FBaEJDLGdCQUFnQjtJQUFFQyw2QkFBNkIsR0FBQUYscUJBQUEsQ0FBN0JFLDZCQUE2QjtFQUN2RCxJQUFBQyxlQUFBLEdBQThCZCxjQUFjLENBQUMsQ0FBQztJQUF0Q2UsaUJBQWlCLEdBQUFELGVBQUEsQ0FBakJDLGlCQUFpQjtFQUN6QixJQUFBQyxTQUFBLEdBQXdEdkIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBd0IsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBaEVHLG9CQUFvQixHQUFBRixVQUFBO0lBQUVHLHVCQUF1QixHQUFBSCxVQUFBO0VBQ3BELElBQUFJLFVBQUEsR0FBc0M1QixRQUFRLENBQU0sSUFBSSxDQUFDO0lBQUE2QixVQUFBLEdBQUFKLGNBQUEsQ0FBQUcsVUFBQTtJQUFsREUsV0FBVyxHQUFBRCxVQUFBO0lBQUVFLGNBQWMsR0FBQUYsVUFBQTtFQUNsQyxJQUFNRyxrQkFBa0IsR0FBR2xDLFdBQVcsQ0FDcEMsVUFBQ21DLE1BQXFDLEVBQUVDLElBQVMsRUFBRUMsdUJBQStCLEVBQUs7SUFDckYsSUFBSUYsTUFBTSxDQUFDRyxFQUFFLEtBQUssQ0FBQyxFQUFFO01BQ25CTCxjQUFjLENBQUFNLGFBQUEsQ0FBQUEsYUFBQSxLQUFNSCxJQUFJO1FBQUVDLHVCQUF1QixFQUF2QkE7TUFBdUIsRUFBRSxDQUFDO01BQ3BEUix1QkFBdUIsQ0FBQyxJQUFJLENBQUM7TUFDN0I7SUFDRjtJQUNBLElBQUlNLE1BQU0sQ0FBQ0csRUFBRSxLQUFLLENBQUMsRUFBRTtNQUNuQkUsTUFBTSxDQUFDQyxRQUFRLENBQUNDLElBQUksYUFBQUMsTUFBQSxDQUFhUCxJQUFJLENBQUNFLEVBQUUsVUFBTztNQUMvQztJQUNGO0lBQ0EsSUFBSUgsTUFBTSxDQUFDRyxFQUFFLEtBQUssQ0FBQyxFQUFFO01BQ25CRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxhQUFBQyxNQUFBLENBQWFQLElBQUksQ0FBQ0UsRUFBRSxZQUFTO0lBQ25EO0VBQ0YsQ0FBQyxFQUNELEVBQ0YsQ0FBQztFQUVELElBQU1NLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxNQUFjLEVBQUVDLGNBQW1CLEVBQUs7SUFDNUQsSUFBSUQsTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUN2QmhCLHVCQUF1QixDQUFDLEtBQUssQ0FBQztNQUM5QkksY0FBYyxDQUFDLElBQUksQ0FBQztNQUNwQjtJQUNGO0lBQ0EsSUFBSVksTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUN2QnJCLGlCQUFpQixDQUFDc0IsY0FBYyxDQUFDO0lBQ25DO0lBQ0FqQix1QkFBdUIsQ0FBQyxLQUFLLENBQUM7RUFDaEMsQ0FBQztFQUVELG9CQUNFYixLQUFBLENBQUFGLFNBQUE7SUFBQWlDLFFBQUEsR0FDR25CLG9CQUFvQixpQkFBSWhCLElBQUEsQ0FBQ1IsZ0JBQWdCO01BQUNnQyxJQUFJLEVBQUVKLFdBQVk7TUFBQ1ksWUFBWSxFQUFFQTtJQUFhLENBQUUsQ0FBQyxlQUM1RmhDLElBQUE7TUFDRW9DLEtBQUssRUFBRTtRQUFFQyxPQUFPLEVBQUUsTUFBTTtRQUFFQyxhQUFhLEVBQUUsUUFBUTtRQUFFQyxNQUFNLEVBQUUsbUJBQW1CO1FBQUVDLFlBQVksRUFBRTtNQUFjLENBQUU7TUFBQUwsUUFBQSxFQUU3RzVCLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVrQyxNQUFNLEdBQ1psQyxLQUFLLENBQUNtQyxHQUFHLENBQUMsVUFBQ2xCLElBQUksRUFBRW1CLEtBQUs7UUFBQSxvQkFDcEIzQyxJQUFBLENBQUNULFlBQVk7VUFFWG1DLEVBQUUsRUFBRUYsSUFBSSxDQUFDRSxFQUFFLENBQUNrQixRQUFRLENBQUMsQ0FBRTtVQUN2QnRCLGtCQUFrQixFQUFFQSxrQkFBbUI7VUFDdkNFLElBQUksRUFBRUEsSUFBSztVQUNYZixnQkFBZ0IsRUFBRUEsZ0JBQWlCO1VBQ25DQyw2QkFBNkIsRUFBRUEsNkJBQThCO1VBQzdEZSx1QkFBdUIsRUFBRWtCO1FBQU0sR0FOMUJuQixJQUFJLENBQUNFLEVBT1gsQ0FBQztNQUFBLENBQ0gsQ0FBQyxnQkFFRjFCLElBQUEsQ0FBQ0osa0JBQWtCLElBQUU7SUFDdEIsQ0FDRSxDQUFDO0VBQUEsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELElBQU1pRCwwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTBCQSxDQUFBLEVBQVM7RUFDdkMsb0JBQU83QyxJQUFBO0lBQUFtQyxRQUFBLEVBQUs7RUFBMEIsQ0FBSyxDQUFDO0FBQzlDLENBQUM7QUFFRCxJQUFNVyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBLEVBQVM7RUFDcEMsb0JBQU85QyxJQUFBO0lBQUFtQyxRQUFBLEVBQUs7RUFBdUIsQ0FBSyxDQUFDO0FBQzNDLENBQUM7QUFFRCxJQUFNWSxtQkFBbUIsR0FBRztFQUMxQnhDLEtBQUssRUFBRUYsc0JBQXNCO0VBQzdCMkMsS0FBSyxFQUFFbEQsc0JBQXNCO0VBQzdCbUQsU0FBUyxFQUFFSiwwQkFBMEI7RUFDckNLLE1BQU0sRUFBRUo7QUFDVixDQUFDO0FBRUQsT0FBTyxJQUFNSyxhQUFhLGdCQUFHOUQsSUFBSSxDQUFDLFlBQU07RUFDdEMsSUFBQStELGFBQUEsR0FBaUJ6RCxZQUFZLENBQUMsQ0FBQztJQUF2QjBELElBQUksR0FBQUQsYUFBQSxDQUFKQyxJQUFJO0VBQ1osSUFBTUMsaUJBQWlCLEdBQUdQLG1CQUFtQixDQUFDTSxJQUFJLENBQUM7RUFDbkQsb0JBQU9yRCxJQUFBLENBQUNzRCxpQkFBaUIsSUFBRSxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsIm1lbW8iLCJ1c2VTdGF0ZSIsImxhenkiLCJTdXNwZW5zZSIsIlJvd0NvbXBvbmVudCIsInVzZVVzZXJzRWRpdFBvc2l0aW9ucyIsInVzZVVzZXJzUXVlcnkiLCJ1c2VVc2Vyc1ZpZXciLCJ1c2VVbmJsb2NrVXNlciIsIkxvYWRlckNvbXBvbmVudCIsIkxheW91dEJvZHlVc2VyIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiTGF6eUVtcHR5VXNlckNvbXBvbmVudCIsInRoZW4iLCJtb2R1bGUiLCJFbXB0eVVzZXJDb21wb25lbnQiLCJMYXp5TW9kYWxCbG9ja2VkVXNlciIsIk1vZGFsQmxvY2tlZFVzZXIiLCJMYXp5Qm9keUNvbnRhaW5lclZpZXdUZWFtcyIsIkJvZHlDb250YWluZXJWaWV3VGVhbXMiLCJCb2R5Q29udGFpbmVyVmlld1VzZXJzIiwiX3VzZVVzZXJzUXVlcnkiLCJ1c2VycyIsIl91c2VVc2Vyc0VkaXRQb3NpdGlvbiIsImhhc0VkaXRQb3NpdGlvbnMiLCJoYW5kbGVTZXRVc2Vyc1RvRWRpdFBvc2l0aW9ucyIsIl91c2VVbmJsb2NrVXNlciIsImhhbmRsZVVuYmxvY2tVc2VyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd01vZGFsQmxvY2tlZFVzZXIiLCJzZXRTaG93TW9kYWxCbG9ja2VkVXNlciIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwidXNlckJsb2NrZWQiLCJzZXRVc2VyQmxvY2tlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsInVzZXIiLCJ1c2VySW5kZXhQb3NpdGlvblRvRWRpdCIsImlkIiwiX29iamVjdFNwcmVhZCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImNvbmNhdCIsImhhbmRsZUFjdGlvbiIsImFjdGlvbiIsInVzZXJJbmZvVG9TZW5kIiwiY2hpbGRyZW4iLCJmYWxsYmFjayIsImxlbmd0aCIsIm1hcCIsImluZGV4IiwidG9TdHJpbmciLCJCb2R5Q29udGFpbmVyVmlld1Bvc2l0aW9ucyIsIkJvZHlDb250YWluZXJWaWV3TGVhdmVzIiwiQm9keUNvbnRhaW5lckJ5VmlldyIsInRlYW1zIiwicG9zaXRpb25zIiwibGVhdmVzIiwiQm9keUNvbnRhaW5lciIsIl91c2VVc2Vyc1ZpZXciLCJ2aWV3IiwiQm9keUNvbnRhaW5lclZpZXciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0JvZHkvQm9keUNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIG1lbW8sIHVzZVN0YXRlLCBsYXp5LCBTdXNwZW5zZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUm93Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UYWJsZS9Sb3cnXG5pbXBvcnQgeyB1c2VVc2Vyc0VkaXRQb3NpdGlvbnMsIHVzZVVzZXJzUXVlcnksIHVzZVVzZXJzVmlldyB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgdXNlVW5ibG9ja1VzZXIgfSBmcm9tICcuLi8uLi9ob29rcy91c2VVbmJsb2NrVXNlcidcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTG9hZGluZy9Mb2FkaW5nQ29tcG9uZW50J1xuaW1wb3J0IHsgTGF5b3V0Qm9keVVzZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0xheW91dC9MYXlvdXQnXG5cbmNvbnN0IExhenlFbXB0eVVzZXJDb21wb25lbnQgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9FbXB0eVVzZXIvRW1wdHlVc2VyJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLkVtcHR5VXNlckNvbXBvbmVudCB9KSlcbilcblxuY29uc3QgTGF6eU1vZGFsQmxvY2tlZFVzZXIgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9Nb2RhbEJsb2NrZWRVc2VyJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLk1vZGFsQmxvY2tlZFVzZXIgfSkpXG4pXG5cbmNvbnN0IExhenlCb2R5Q29udGFpbmVyVmlld1RlYW1zID0gbGF6eSgoKSA9PlxuICBpbXBvcnQoJy4vQm9keUNvbnRhaW5lclZpZXdUZWFtcycpLnRoZW4obW9kdWxlID0+ICh7IGRlZmF1bHQ6IG1vZHVsZS5Cb2R5Q29udGFpbmVyVmlld1RlYW1zIH0pKVxuKVxuXG5jb25zdCBCb2R5Q29udGFpbmVyVmlld1VzZXJzID0gKCkgPT4ge1xuICBjb25zdCB7IHVzZXJzIH0gPSB1c2VVc2Vyc1F1ZXJ5KClcbiAgY29uc3QgeyBoYXNFZGl0UG9zaXRpb25zLCBoYW5kbGVTZXRVc2Vyc1RvRWRpdFBvc2l0aW9ucyB9ID0gdXNlVXNlcnNFZGl0UG9zaXRpb25zKClcbiAgY29uc3QgeyBoYW5kbGVVbmJsb2NrVXNlciB9ID0gdXNlVW5ibG9ja1VzZXIoKVxuICBjb25zdCBbc2hvd01vZGFsQmxvY2tlZFVzZXIsIHNldFNob3dNb2RhbEJsb2NrZWRVc2VyXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdXNlckJsb2NrZWQsIHNldFVzZXJCbG9ja2VkXSA9IHVzZVN0YXRlPGFueT4obnVsbClcbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogeyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0sIHVzZXI6IGFueSwgdXNlckluZGV4UG9zaXRpb25Ub0VkaXQ6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gMSkge1xuICAgICAgICBzZXRVc2VyQmxvY2tlZCh7IC4uLnVzZXIsIHVzZXJJbmRleFBvc2l0aW9uVG9FZGl0IH0pXG4gICAgICAgIHNldFNob3dNb2RhbEJsb2NrZWRVc2VyKHRydWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gMikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvdXNlcnMvJHt1c2VyLmlkfS9lZGl0YFxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb24uaWQgPT09IDMpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL3VzZXJzLyR7dXNlci5pZH0vZGVsZXRlYFxuICAgICAgfVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUFjdGlvbiA9IChhY3Rpb246IHN0cmluZywgdXNlckluZm9Ub1NlbmQ6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdjYW5jZWwnKSB7XG4gICAgICBzZXRTaG93TW9kYWxCbG9ja2VkVXNlcihmYWxzZSlcbiAgICAgIHNldFVzZXJCbG9ja2VkKG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGFjdGlvbiA9PT0gJ3VubG9jaycpIHtcbiAgICAgIGhhbmRsZVVuYmxvY2tVc2VyKHVzZXJJbmZvVG9TZW5kKVxuICAgIH1cbiAgICBzZXRTaG93TW9kYWxCbG9ja2VkVXNlcihmYWxzZSlcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtzaG93TW9kYWxCbG9ja2VkVXNlciAmJiAoXG4gICAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PExvYWRlckNvbXBvbmVudCAvPn0+XG4gICAgICAgICAgPExhenlNb2RhbEJsb2NrZWRVc2VyIHVzZXI9e3VzZXJCbG9ja2VkfSBoYW5kbGVBY3Rpb249e2hhbmRsZUFjdGlvbn0gLz5cbiAgICAgICAgPC9TdXNwZW5zZT5cbiAgICAgICl9XG4gICAgICA8TGF5b3V0Qm9keVVzZXI+XG4gICAgICAgIHt1c2Vycz8ubGVuZ3RoID8gKFxuICAgICAgICAgIHVzZXJzLm1hcCgodXNlciwgaW5kZXg6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgPFJvd0NvbXBvbmVudFxuICAgICAgICAgICAgICBrZXk9e3VzZXIuaWR9XG4gICAgICAgICAgICAgIGlkPXt1c2VyLmlkLnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17aGFuZGxlU2VsZWN0T3B0aW9ufVxuICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICBoYXNFZGl0UG9zaXRpb25zPXtoYXNFZGl0UG9zaXRpb25zfVxuICAgICAgICAgICAgICBoYW5kbGVTZXRVc2Vyc1RvRWRpdFBvc2l0aW9ucz17aGFuZGxlU2V0VXNlcnNUb0VkaXRQb3NpdGlvbnN9XG4gICAgICAgICAgICAgIHVzZXJJbmRleFBvc2l0aW9uVG9FZGl0PXtpbmRleH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSlcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9e251bGx9PlxuICAgICAgICAgICAgPExhenlFbXB0eVVzZXJDb21wb25lbnQgLz5cbiAgICAgICAgICA8L1N1c3BlbnNlPlxuICAgICAgICApfVxuICAgICAgPC9MYXlvdXRCb2R5VXNlcj5cbiAgICA8Lz5cbiAgKVxufVxuXG5jb25zdCBCb2R5Q29udGFpbmVyVmlld1Bvc2l0aW9ucyA9ICgpID0+IHtcbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgQm9keUNvbnRhaW5lclZpZXdMZWF2ZXMgPSAoKSA9PiB7XG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IEJvZHlDb250YWluZXJCeVZpZXcgPSB7XG4gIHVzZXJzOiBCb2R5Q29udGFpbmVyVmlld1VzZXJzLFxuICB0ZWFtczogTGF6eUJvZHlDb250YWluZXJWaWV3VGVhbXMsXG4gIHBvc2l0aW9uczogQm9keUNvbnRhaW5lclZpZXdQb3NpdGlvbnMsXG4gIGxlYXZlczogQm9keUNvbnRhaW5lclZpZXdMZWF2ZXMsXG59XG5cbmV4cG9ydCBjb25zdCBCb2R5Q29udGFpbmVyID0gbWVtbygoKSA9PiB7XG4gIGNvbnN0IHsgdmlldyB9ID0gdXNlVXNlcnNWaWV3KClcbiAgY29uc3QgQm9keUNvbnRhaW5lclZpZXcgPSBCb2R5Q29udGFpbmVyQnlWaWV3W3ZpZXddXG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlIGZhbGxiYWNrPXs8TG9hZGVyQ29tcG9uZW50IC8+fT5cbiAgICAgIDxCb2R5Q29udGFpbmVyVmlldyAvPlxuICAgIDwvU3VzcGVuc2U+XG4gIClcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ25FLFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MscUJBQXFCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxRQUFRLDRCQUE0QjtBQUMvRixTQUFTQyxjQUFjLFFBQVEsNEJBQTRCO0FBQzNELFNBQVNDLGVBQWUsUUFBUSwyQ0FBMkM7QUFDM0UsU0FBU0MsY0FBYyxRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRS9ELElBQU1DLHNCQUFzQixnQkFBR2YsSUFBSSxDQUFDO0VBQUEsT0FDbEMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUNnQixJQUFJLENBQUMsVUFBQUMsTUFBTTtJQUFBLE9BQUs7TUFBRSxXQUFTQSxNQUFNLENBQUNDO0lBQW1CLENBQUM7RUFBQSxDQUFDLENBQUM7QUFBQSxDQUN6RyxDQUFDO0FBRUQsSUFBTUMsb0JBQW9CLGdCQUFHbkIsSUFBSSxDQUFDO0VBQUEsT0FDaEMsTUFBTSxDQUFDLG1D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
@@ -1,15 +1,28 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { useState, useEffect, useCallback } from 'react';
2
+ import { useState, useEffect, useCallback, lazy, Suspense } from 'react';
3
3
  import { TeamRow } from '../../components/Table/TeamRow/TeamRow';
4
- import { TeamDetailsModal } from '../../components/TeamDetailsModal';
5
- import { DeleteTeamModal } from '../../components/DeleteTeamModal';
6
4
  import { useTeams } from '../../context/TeamsContext';
5
+ import { LoaderComponent } from '../../components/Loading/LoadingComponent';
7
6
  import { useCreateTeam } from '../../hooks/useCreateTeams';
8
7
  import { useUpdateTeam } from '../../hooks/useUpdateTeam';
9
8
  import { useAssignUserToTeam } from '../../hooks/useAssignUserToTeam';
10
9
  import { useUnassignUserFromTeam } from '../../hooks/useUnassignUserFromTeam';
11
10
  import { useDeleteTeam } from '../../hooks/useDeleteTeam';
12
11
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
+ var LazyTeamDetailsModal = /*#__PURE__*/lazy(function () {
13
+ return import('../../components/TeamDetailsModal').then(function (module) {
14
+ return {
15
+ "default": module.TeamDetailsModal
16
+ };
17
+ });
18
+ });
19
+ var LazyDeleteTeamModal = /*#__PURE__*/lazy(function () {
20
+ return import('../../components/DeleteTeamModal').then(function (module) {
21
+ return {
22
+ "default": module.DeleteTeamModal
23
+ };
24
+ });
25
+ });
13
26
  var mockWorkspacesList = [{
14
27
  id: 1,
15
28
  name: 'Workspace 1'
@@ -171,21 +184,27 @@ export var BodyContainerViewTeams = function BodyContainerViewTeams() {
171
184
  handleEditTeam: handleEditTeamFromMenu,
172
185
  handleRemoveUser: handleRemoveUser,
173
186
  handleAddUser: handleAddUser
174
- }), /*#__PURE__*/_jsx(TeamDetailsModal, {
175
- team: selectedTeam,
176
- isOpen: isModalOpen,
177
- onClose: handleCloseModal,
178
- onEdit: handleEditTeam,
179
- onCreate: handleCreateTeamSubmit,
180
- mode: modalMode,
181
- workspacesList: mockWorkspacesList,
182
- membersList: mockMembersList
183
- }), /*#__PURE__*/_jsx(DeleteTeamModal, {
184
- team: teamToDelete,
185
- isOpen: isDeleteModalOpen,
186
- onClose: handleCloseDeleteModal,
187
- onConfirm: handleConfirmDelete
187
+ }), isModalOpen && /*#__PURE__*/_jsx(Suspense, {
188
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
189
+ children: /*#__PURE__*/_jsx(LazyTeamDetailsModal, {
190
+ team: selectedTeam,
191
+ isOpen: isModalOpen,
192
+ onClose: handleCloseModal,
193
+ onEdit: handleEditTeam,
194
+ onCreate: handleCreateTeamSubmit,
195
+ mode: modalMode,
196
+ workspacesList: mockWorkspacesList,
197
+ membersList: mockMembersList
198
+ })
199
+ }), isDeleteModalOpen && /*#__PURE__*/_jsx(Suspense, {
200
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
201
+ children: /*#__PURE__*/_jsx(LazyDeleteTeamModal, {
202
+ team: teamToDelete,
203
+ isOpen: isDeleteModalOpen,
204
+ onClose: handleCloseDeleteModal,
205
+ onConfirm: handleConfirmDelete
206
+ })
188
207
  })]
189
208
  });
190
209
  };
191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwiVGVhbVJvdyIsIlRlYW1EZXRhaWxzTW9kYWwiLCJEZWxldGVUZWFtTW9kYWwiLCJ1c2VUZWFtcyIsInVzZUNyZWF0ZVRlYW0iLCJ1c2VVcGRhdGVUZWFtIiwidXNlQXNzaWduVXNlclRvVGVhbSIsInVzZVVuYXNzaWduVXNlckZyb21UZWFtIiwidXNlRGVsZXRlVGVhbSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIm1vY2tXb3Jrc3BhY2VzTGlzdCIsImlkIiwibmFtZSIsIm1vY2tNZW1iZXJzTGlzdCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiQm9keUNvbnRhaW5lclZpZXdUZWFtcyIsIl91c2VUZWFtcyIsInRlYW1zIiwiX3VzZUNyZWF0ZVRlYW0iLCJmZXRjaENyZWF0ZVRlYW0iLCJfdXNlVXBkYXRlVGVhbSIsInVwZGF0ZVRlYW0iLCJfdXNlQXNzaWduVXNlclRvVGVhbSIsImFzc2lnblVzZXJUb1RlYW0iLCJfdXNlVW5hc3NpZ25Vc2VyRnJvbVQiLCJ1bmFzc2lnblVzZXJGcm9tVGVhbSIsIl91c2VEZWxldGVUZWFtIiwiZGVsZXRlVGVhbSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkVGVhbSIsInNldFNlbGVjdGVkVGVhbSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNNb2RhbE9wZW4iLCJzZXRJc01vZGFsT3BlbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibW9kYWxNb2RlIiwic2V0TW9kYWxNb2RlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJ0ZWFtVG9EZWxldGUiLCJzZXRUZWFtVG9EZWxldGUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzRGVsZXRlTW9kYWxPcGVuIiwic2V0SXNEZWxldGVNb2RhbE9wZW4iLCJoYW5kbGVTaG93VGVhbURldGFpbHMiLCJ0ZWFtSWQiLCJ0ZWFtIiwiZmluZCIsInQiLCJoYW5kbGVDcmVhdGVUZWFtIiwiaGFuZGxlQ3JlYXRlVGVhbUV2ZW50Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlRWRpdFRlYW0iLCJmb3JtRGF0YSIsImZpZWxkcyIsImRlc2NyaXB0aW9uIiwiaGFzV29ya3NwYWNlc0ZlYXR1cmUiLCJ3b3Jrc3BhY2UiLCJ3b3Jrc3BhY2VJZCIsImhhbmRsZUNyZWF0ZVRlYW1TdWJtaXQiLCJoYW5kbGVFZGl0VGVhbUZyb21NZW51IiwiaGFuZGxlRGVsZXRlVGVhbSIsImhhbmRsZUNsb3NlRGVsZXRlTW9kYWwiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiZGVsZXRlRnJvbVByb2plY3RzIiwiaGFuZGxlQWRkVXNlciIsInVzZXJJZCIsImdpdmVBY2Nlc3NUb0FsbFByb2plY3RzIiwic2V0VXNlclRlYW1Qcm9qZWN0IiwiaGFuZGxlUmVtb3ZlVXNlciIsImNoaWxkcmVuIiwiaXNPcGVuIiwib25DbG9zZSIsIm9uRWRpdCIsIm9uQ3JlYXRlIiwibW9kZSIsIndvcmtzcGFjZXNMaXN0IiwibWVtYmVyc0xpc3QiLCJvbkNvbmZpcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0JvZHkvQm9keUNvbnRhaW5lclZpZXdUZWFtcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRlYW1Sb3cgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhYmxlL1RlYW1Sb3cvVGVhbVJvdydcbmltcG9ydCB7IFRlYW1EZXRhaWxzTW9kYWwsIFRlYW0sIEZvcm1EYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlVGVhbU1vZGFsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9EZWxldGVUZWFtTW9kYWwnXG5pbXBvcnQgeyB1c2VUZWFtcyB9IGZyb20gJy4uLy4uL2NvbnRleHQvVGVhbXNDb250ZXh0J1xuaW1wb3J0IHsgdXNlQ3JlYXRlVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNyZWF0ZVRlYW1zJ1xuaW1wb3J0IHsgdXNlVXBkYXRlVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVVwZGF0ZVRlYW0nXG5pbXBvcnQgeyB1c2VBc3NpZ25Vc2VyVG9UZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlQXNzaWduVXNlclRvVGVhbSdcbmltcG9ydCB7IHVzZVVuYXNzaWduVXNlckZyb21UZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlVW5hc3NpZ25Vc2VyRnJvbVRlYW0nXG5pbXBvcnQgeyB1c2VEZWxldGVUZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVsZXRlVGVhbSdcblxuY29uc3QgbW9ja1dvcmtzcGFjZXNMaXN0ID0gW1xuICB7IGlkOiAxLCBuYW1lOiAnV29ya3NwYWNlIDEnIH0sXG4gIHsgaWQ6IDIsIG5hbWU6ICdXb3Jrc3BhY2UgMicgfSxcbiAgeyBpZDogMywgbmFtZTogJ1dvcmtzcGFjZSAzJyB9LFxuXVxuXG5jb25zdCBtb2NrTWVtYmVyc0xpc3QgPSBbXG4gIHsgaWQ6IDEsIGZpcnN0TmFtZTogJ1VzZXIgMScsIGxhc3ROYW1lOiAnQXBlbGxpZG8gMScgfSxcbiAgeyBpZDogMiwgZmlyc3ROYW1lOiAnVXNlciAyJywgbGFzdE5hbWU6ICdBcGVsbGlkbyAyJyB9LFxuICB7IGlkOiAzLCBmaXJzdE5hbWU6ICdVc2VyIDMnLCBsYXN0TmFtZTogJ0FwZWxsaWRvIDMnIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBCb2R5Q29udGFpbmVyVmlld1RlYW1zID0gKCkgPT4ge1xuICBjb25zdCB7IHRlYW1zIH0gPSB1c2VUZWFtcygpXG4gIGNvbnN0IHsgZmV0Y2hDcmVhdGVUZWFtIH0gPSB1c2VDcmVhdGVUZWFtKClcbiAgY29uc3QgeyB1cGRhdGVUZWFtIH0gPSB1c2VVcGRhdGVUZWFtKClcbiAgY29uc3QgeyBhc3NpZ25Vc2VyVG9UZWFtIH0gPSB1c2VBc3NpZ25Vc2VyVG9UZWFtKClcbiAgY29uc3QgeyB1bmFzc2lnblVzZXJGcm9tVGVhbSB9ID0gdXNlVW5hc3NpZ25Vc2VyRnJvbVRlYW0oKVxuICBjb25zdCB7IGRlbGV0ZVRlYW0gfSA9IHVzZURlbGV0ZVRlYW0oKVxuICBjb25zdCBbc2VsZWN0ZWRUZWFtLCBzZXRTZWxlY3RlZFRlYW1dID0gdXNlU3RhdGU8VGVhbSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc01vZGFsT3Blbiwgc2V0SXNNb2RhbE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbE1vZGUsIHNldE1vZGFsTW9kZV0gPSB1c2VTdGF0ZTwndmlldycgfCAnZWRpdCcgfCAnY3JlYXRlJz4oJ3ZpZXcnKVxuICBjb25zdCBbdGVhbVRvRGVsZXRlLCBzZXRUZWFtVG9EZWxldGVdID0gdXNlU3RhdGU8VGVhbSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc0RlbGV0ZU1vZGFsT3Blbiwgc2V0SXNEZWxldGVNb2RhbE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlU2hvd1RlYW1EZXRhaWxzID0gKHRlYW1JZDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdGVhbSA9IHRlYW1zLmZpbmQodCA9PiB0LmlkID09PSB0ZWFtSWQpXG4gICAgaWYgKHRlYW0pIHtcbiAgICAgIHNldFNlbGVjdGVkVGVhbSh0ZWFtKVxuICAgICAgc2V0TW9kYWxNb2RlKCd2aWV3JylcbiAgICAgIHNldElzTW9kYWxPcGVuKHRydWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRlVGVhbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZFRlYW0obnVsbClcbiAgICBzZXRNb2RhbE1vZGUoJ2NyZWF0ZScpXG4gICAgc2V0SXNNb2RhbE9wZW4odHJ1ZSlcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDcmVhdGVUZWFtRXZlbnQgPSAoKSA9PiB7XG4gICAgICBoYW5kbGVDcmVhdGVUZWFtKClcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY3JlYXRlVGVhbScsIGhhbmRsZUNyZWF0ZVRlYW1FdmVudClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignY3JlYXRlVGVhbScsIGhhbmRsZUNyZWF0ZVRlYW1FdmVudClcbiAgICB9XG4gIH0sIFtoYW5kbGVDcmVhdGVUZWFtXSlcblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gKCkgPT4ge1xuICAgIHNldElzTW9kYWxPcGVuKGZhbHNlKVxuICAgIHNldFNlbGVjdGVkVGVhbShudWxsKVxuICAgIHNldE1vZGFsTW9kZSgndmlldycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVFZGl0VGVhbSA9IChmb3JtRGF0YTogRm9ybURhdGEpID0+IHtcbiAgICBpZiAoIXNlbGVjdGVkVGVhbSkgcmV0dXJuXG5cbiAgICBjb25zdCBmaWVsZHM6IHtcbiAgICAgIGlkOiBudW1iZXJcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgICAgd29ya3NwYWNlSWQ/OiBudW1iZXJcbiAgICB9ID0ge1xuICAgICAgaWQ6ICtzZWxlY3RlZFRlYW0uaWQsXG4gICAgICBuYW1lOiBmb3JtRGF0YS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGZvcm1EYXRhLmRlc2NyaXB0aW9uLFxuICAgIH1cblxuICAgIGlmICh3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgZm9ybURhdGEud29ya3NwYWNlKSB7XG4gICAgICBmaWVsZHMud29ya3NwYWNlSWQgPSBmb3JtRGF0YS53b3Jrc3BhY2UuaWRcbiAgICB9XG5cbiAgICB1cGRhdGVUZWFtKGZpZWxkcylcbiAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNyZWF0ZVRlYW1TdWJtaXQgPSAoZm9ybURhdGE6IEZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgZmllbGRzOiB7XG4gICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmdcbiAgICAgIHdvcmtzcGFjZUlkPzogbnVtYmVyXG4gICAgfSA9IHtcbiAgICAgIG5hbWU6IGZvcm1EYXRhLm5hbWUsXG4gICAgICAvLyB1c2VyczogZm9ybURhdGEubWVtYmVycy5tYXAobWVtYmVyID0+IG1lbWJlci5pZCksIFRPRE86IFZhIGVuIGxhIHNlZ3VuZGEgdmVyc2lvblxuICAgICAgZGVzY3JpcHRpb246IGZvcm1EYXRhLmRlc2NyaXB0aW9uLFxuICAgIH1cblxuICAgIGlmICh3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgZm9ybURhdGEud29ya3NwYWNlKSB7XG4gICAgICBmaWVsZHMud29ya3NwYWNlSWQgPSBmb3JtRGF0YS53b3Jrc3BhY2UuaWRcbiAgICB9XG4gICAgZmV0Y2hDcmVhdGVUZWFtKGZpZWxkcylcbiAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRUZWFtRnJvbU1lbnUgPSAodGVhbUlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZWFtID0gdGVhbXMuZmluZCh0ID0+IHQuaWQgPT09IHRlYW1JZClcbiAgICBpZiAodGVhbSkge1xuICAgICAgc2V0U2VsZWN0ZWRUZWFtKHRlYW0pXG4gICAgICBzZXRNb2RhbE1vZGUoJ2VkaXQnKVxuICAgICAgc2V0SXNNb2RhbE9wZW4odHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVUZWFtID0gKHRlYW1JZDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdGVhbSA9IHRlYW1zLmZpbmQodCA9PiB0LmlkID09PSB0ZWFtSWQpXG4gICAgaWYgKHRlYW0pIHtcbiAgICAgIHNldFRlYW1Ub0RlbGV0ZSh0ZWFtKVxuICAgICAgc2V0SXNEZWxldGVNb2RhbE9wZW4odHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZURlbGV0ZU1vZGFsID0gKCkgPT4ge1xuICAgIHNldElzRGVsZXRlTW9kYWxPcGVuKGZhbHNlKVxuICAgIHNldFRlYW1Ub0RlbGV0ZShudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybURlbGV0ZSA9IChkZWxldGVGcm9tUHJvamVjdHM6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodGVhbVRvRGVsZXRlKSB7XG4gICAgICBkZWxldGVUZWFtKHRlYW1Ub0RlbGV0ZS5pZCwgZGVsZXRlRnJvbVByb2plY3RzKVxuICAgIH1cbiAgICBoYW5kbGVDbG9zZURlbGV0ZU1vZGFsKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUFkZFVzZXIgPSAodGVhbUlkOiBudW1iZXIsIHVzZXJJZDogbnVtYmVyLCBnaXZlQWNjZXNzVG9BbGxQcm9qZWN0czogYm9vbGVhbikgPT4ge1xuICAgIGFzc2lnblVzZXJUb1RlYW0oe1xuICAgICAgc2V0VXNlclRlYW1Qcm9qZWN0OiBnaXZlQWNjZXNzVG9BbGxQcm9qZWN0cyxcbiAgICAgIHVzZXJJZCxcbiAgICAgIHRlYW1JZCxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVtb3ZlVXNlciA9ICh0ZWFtSWQ6IG51bWJlciwgdXNlcklkOiBudW1iZXIsIGRlbGV0ZUZyb21Qcm9qZWN0czogYm9vbGVhbikgPT4ge1xuICAgIHVuYXNzaWduVXNlckZyb21UZWFtKHtcbiAgICAgIGRlbGV0ZUZyb21Qcm9qZWN0cyxcbiAgICAgIHVzZXJJZCxcbiAgICAgIHRlYW1JZCxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFRlYW1Sb3dcbiAgICAgICAgdGVhbXM9e3RlYW1zfVxuICAgICAgICBoYW5kbGVTaG93VGVhbURldGFpbHM9e2hhbmRsZVNob3dUZWFtRGV0YWlsc31cbiAgICAgICAgaGFuZGxlRGVsZXRlVGVhbT17aGFuZGxlRGVsZXRlVGVhbX1cbiAgICAgICAgaGFuZGxlRWRpdFRlYW09e2hhbmRsZUVkaXRUZWFtRnJvbU1lbnV9XG4gICAgICAgIGhhbmRsZVJlbW92ZVVzZXI9e2hhbmRsZVJlbW92ZVVzZXJ9XG4gICAgICAgIGhhbmRsZUFkZFVzZXI9e2hhbmRsZUFkZFVzZXJ9XG4gICAgICAvPlxuICAgICAgPFRlYW1EZXRhaWxzTW9kYWxcbiAgICAgICAgdGVhbT17c2VsZWN0ZWRUZWFtfVxuICAgICAgICBpc09wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICBvbkVkaXQ9e2hhbmRsZUVkaXRUZWFtfVxuICAgICAgICBvbkNyZWF0ZT17aGFuZGxlQ3JlYXRlVGVhbVN1Ym1pdH1cbiAgICAgICAgbW9kZT17bW9kYWxNb2RlfVxuICAgICAgICB3b3Jrc3BhY2VzTGlzdD17bW9ja1dvcmtzcGFjZXNMaXN0fVxuICAgICAgICBtZW1iZXJzTGlzdD17bW9ja01lbWJlcnNMaXN0fVxuICAgICAgLz5cbiAgICAgIDxEZWxldGVUZWFtTW9kYWxcbiAgICAgICAgdGVhbT17dGVhbVRvRGVsZXRlfVxuICAgICAgICBpc09wZW49e2lzRGVsZXRlTW9kYWxPcGVufVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZURlbGV0ZU1vZGFsfVxuICAgICAgICBvbkNvbmZpcm09e2hhbmRsZUNvbmZpcm1EZWxldGV9XG4gICAgICAvPlxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxRQUFRLE9BQU87QUFDeEQsU0FBU0MsT0FBTyxRQUFRLHdDQUF3QztBQUNoRSxTQUFTQyxnQkFBZ0IsUUFBd0IsbUNBQW1DO0FBQ3BGLFNBQVNDLGVBQWUsUUFBUSxrQ0FBa0M7QUFDbEUsU0FBU0MsUUFBUSxRQUFRLDRCQUE0QjtBQUNyRCxTQUFTQyxhQUFhLFFBQVEsNEJBQTRCO0FBQzFELFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsbUJBQW1CLFFBQVEsaUNBQWlDO0FBQ3JFLFNBQVNDLHVCQUF1QixRQUFRLHFDQUFxQztBQUM3RSxTQUFTQyxhQUFhLFFBQVEsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFekQsSUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFBRUMsRUFBRSxFQUFFLENBQUM7RUFBRUMsSUFBSSxFQUFFO0FBQWMsQ0FBQyxFQUM5QjtFQUFFRCxFQUFFLEVBQUUsQ0FBQztFQUFFQyxJQUFJLEVBQUU7QUFBYyxDQUFDLEVBQzlCO0VBQUVELEVBQUUsRUFBRSxDQUFDO0VBQUVDLElBQUksRUFBRTtBQUFjLENBQUMsQ0FDL0I7QUFFRCxJQUFNQyxlQUFlLEdBQUcsQ0FDdEI7RUFBRUYsRUFBRSxFQUFFLENBQUM7RUFBRUcsU0FBUyxFQUFFLFFBQVE7RUFBRUMsUUFBUSxFQUFFO0FBQWEsQ0FBQyxFQUN0RDtFQUFFSixFQUFFLEVBQUUsQ0FBQztFQUFFRyxTQUFTLEVBQUUsUUFBUTtFQUFFQyxRQUFRLEVBQUU7QUFBYSxDQUFDLEVBQ3REO0VBQUVKLEVBQUUsRUFBRSxDQUFDO0VBQUVHLFNBQVMsRUFBRSxRQUFRO0VBQUVDLFFBQVEsRUFBRTtBQUFhLENBQUMsQ0FDdkQ7QUFFRCxPQUFPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUEsRUFBUztFQUMxQyxJQUFBQyxTQUFBLEdBQWtCbkIsUUFBUSxDQUFDLENBQUM7SUFBcEJvQixLQUFLLEdBQUFELFNBQUEsQ0FBTEMsS0FBSztFQUNiLElBQUFDLGNBQUEsR0FBNEJwQixhQUFhLENBQUMsQ0FBQztJQUFuQ3FCLGVBQWUsR0FBQUQsY0FBQSxDQUFmQyxlQUFlO0VBQ3ZCLElBQUFDLGNBQUEsR0FBdUJyQixhQUFhLENBQUMsQ0FBQztJQUE5QnNCLFVBQVUsR0FBQUQsY0FBQSxDQUFWQyxVQUFVO0VBQ2xCLElBQUFDLG9CQUFBLEdBQTZCdEIsbUJBQW1CLENBQUMsQ0FBQztJQUExQ3VCLGdCQUFnQixHQUFBRCxvQkFBQSxDQUFoQkMsZ0JBQWdCO0VBQ3hCLElBQUFDLHFCQUFBLEdBQWlDdkIsdUJBQXVCLENBQUMsQ0FBQztJQUFsRHdCLG9CQUFvQixHQUFBRCxxQkFBQSxDQUFwQkMsb0JBQW9CO0VBQzVCLElBQUFDLGNBQUEsR0FBdUJ4QixhQUFhLENBQUMsQ0FBQztJQUE5QnlCLFVBQVUsR0FBQUQsY0FBQSxDQUFWQyxVQUFVO0VBQ2xCLElBQUFDLFNBQUEsR0FBd0NyQyxRQUFRLENBQWMsSUFBSSxDQUFDO0lBQUFzQyxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUE1REcsWUFBWSxHQUFBRixVQUFBO0lBQUVHLGVBQWUsR0FBQUgsVUFBQTtFQUNwQyxJQUFBSSxVQUFBLEdBQXNDMUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBMkMsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBOUNFLFdBQVcsR0FBQUQsVUFBQTtJQUFFRSxjQUFjLEdBQUFGLFVBQUE7RUFDbEMsSUFBQUcsVUFBQSxHQUFrQzlDLFFBQVEsQ0FBNkIsTUFBTSxDQUFDO0lBQUErQyxVQUFBLEdBQUFSLGNBQUEsQ0FBQU8sVUFBQTtJQUF2RUUsU0FBUyxHQUFBRCxVQUFBO0lBQUVFLFlBQVksR0FBQUYsVUFBQTtFQUM5QixJQUFBRyxVQUFBLEdBQXdDbEQsUUFBUSxDQUFjLElBQUksQ0FBQztJQUFBbUQsVUFBQSxHQUFBWixjQUFBLENBQUFXLFVBQUE7SUFBNURFLFlBQVksR0FBQUQsVUFBQTtJQUFFRSxlQUFlLEdBQUFGLFVBQUE7RUFDcEMsSUFBQUcsVUFBQSxHQUFrRHRELFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXVELFVBQUEsR0FBQWhCLGNBQUEsQ0FBQWUsVUFBQTtJQUExREUsaUJBQWlCLEdBQUFELFVBQUE7SUFBRUUsb0JBQW9CLEdBQUFGLFVBQUE7RUFFOUMsSUFBTUcscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsTUFBYyxFQUFLO0lBQ2hELElBQU1DLElBQUksR0FBR2xDLEtBQUssQ0FBQ21DLElBQUksQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDM0MsRUFBRSxLQUFLd0MsTUFBTTtJQUFBLEVBQUM7SUFDN0MsSUFBSUMsSUFBSSxFQUFFO01BQ1JuQixlQUFlLENBQUNtQixJQUFJLENBQUM7TUFDckJYLFlBQVksQ0FBQyxNQUFNLENBQUM7TUFDcEJKLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDdEI7RUFDRixDQUFDO0VBRUQsSUFBTWtCLGdCQUFnQixHQUFHN0QsV0FBVyxDQUFDLFlBQU07SUFDekN1QyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JCUSxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ3RCSixjQUFjLENBQUMsSUFBSSxDQUFDO0VBQ3RCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjVDLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTStELHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUEsRUFBUztNQUNsQ0QsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRURFLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsWUFBWSxFQUFFRixxQkFBcUIsQ0FBQztJQUU1RCxPQUFPLFlBQU07TUFDWEMsTUFBTSxDQUFDRSxtQkFBbUIsQ0FBQyxZQUFZLEVBQUVILHFCQUFxQixDQUFDO0lBQ2pFLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0QsZ0JBQWdCLENBQUMsQ0FBQztFQUV0QixJQUFNSyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQVM7SUFDN0J2QixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JCSixlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JCUSxZQUFZLENBQUMsTUFBTSxDQUFDO0VBQ3RCLENBQUM7RUFFRCxJQUFNb0IsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxRQUFrQixFQUFLO0lBQzdDLElBQUksQ0FBQzlCLFlBQVksRUFBRTtJQUVuQixJQUFNK0IsTUFLTCxHQUFHO01BQ0ZwRCxFQUFFLEVBQUUsQ0FBQ3FCLFlBQVksQ0FBQ3JCLEVBQUU7TUFDcEJDLElBQUksRUFBRWtELFFBQVEsQ0FBQ2xELElBQUk7TUFDbkJvRCxXQUFXLEVBQUVGLFFBQVEsQ0FBQ0U7SUFDeEIsQ0FBQztJQUVELElBQUlQLE1BQU0sQ0FBQ1Esb0JBQW9CLElBQUlILFFBQVEsQ0FBQ0ksU0FBUyxFQUFFO01BQ3JESCxNQUFNLENBQUNJLFdBQVcsR0FBR0wsUUFBUSxDQUFDSSxTQUFTLENBQUN2RCxFQUFFO0lBQzVDO0lBRUFXLFVBQVUsQ0FBQ3lDLE1BQU0sQ0FBQztJQUNsQkgsZ0JBQWdCLENBQUMsQ0FBQztFQUNwQixDQUFDO0VBRUQsSUFBTVEsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSU4sUUFBa0IsRUFBSztJQUNyRCxJQUFNQyxNQUlMLEdBQUc7TUFDRm5ELElBQUksRUFBRWtELFFBQVEsQ0FBQ2xELElBQUk7TUFDbkI7TUFDQW9ELFdBQVcsRUFBRUYsUUFBUSxDQUFDRTtJQUN4QixDQUFDO0lBRUQsSUFBSVAsTUFBTSxDQUFDUSxvQkFBb0IsSUFBSUgsUUFBUSxDQUFDSSxTQUFTLEVBQUU7TUFDckRILE1BQU0sQ0FBQ0ksV0FBVyxHQUFHTCxRQUFRLENBQUNJLFNBQVMsQ0FBQ3ZELEVBQUU7SUFDNUM7SUFDQVMsZUFBZSxDQUFDMkMsTUFBTSxDQUFDO0lBQ3ZCSCxnQkFBZ0IsQ0FBQyxDQUFDO0VBQ3BCLENBQUM7RUFFRCxJQUFNUyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFJbEIsTUFBYyxFQUFLO0lBQ2pELElBQU1DLElBQUksR0FBR2xDLEtBQUssQ0FBQ21DLElBQUksQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDM0MsRUFBRSxLQUFLd0MsTUFBTTtJQUFBLEVBQUM7SUFDN0MsSUFBSUMsSUFBSSxFQUFFO01BQ1JuQixlQUFlLENBQUNtQixJQUFJLENBQUM7TUFDckJYLFlBQVksQ0FBQyxNQUFNLENBQUM7TUFDcEJKLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDdEI7RUFDRixDQUFDO0VBRUQsSUFBTWlDLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUluQixNQUFjLEVBQUs7SUFDM0MsSUFBTUMsSUFBSSxHQUFHbEMsS0FBSyxDQUFDbUMsSUFBSSxDQUFDLFVBQUFDLENBQUM7TUFBQSxPQUFJQSxDQUFDLENBQUMzQyxFQUFFLEtBQUt3QyxNQUFNO0lBQUEsRUFBQztJQUM3QyxJQUFJQyxJQUFJLEVBQUU7TUFDUlAsZUFBZSxDQUFDTyxJQUFJLENBQUM7TUFDckJILG9CQUFvQixDQUFDLElBQUksQ0FBQztJQUM1QjtFQUNGLENBQUM7RUFFRCxJQUFNc0Isc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBQSxFQUFTO0lBQ25DdEIsb0JBQW9CLENBQUMsS0FBSyxDQUFDO0lBQzNCSixlQUFlLENBQUMsSUFBSSxDQUFDO0VBQ3ZCLENBQUM7RUFFRCxJQUFNMkIsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsa0JBQTJCLEVBQUs7SUFDM0QsSUFBSTdCLFlBQVksRUFBRTtNQUNoQmhCLFVBQVUsQ0FBQ2dCLFlBQVksQ0FBQ2pDLEVBQUUsRUFBRThELGtCQUFrQixDQUFDO0lBQ2pEO0lBQ0FGLHNCQUFzQixDQUFDLENBQUM7RUFDMUIsQ0FBQztFQUVELElBQU1HLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSXZCLE1BQWMsRUFBRXdCLE1BQWMsRUFBRUMsdUJBQWdDLEVBQUs7SUFDMUZwRCxnQkFBZ0IsQ0FBQztNQUNmcUQsa0JBQWtCLEVBQUVELHVCQUF1QjtNQUMzQ0QsTUFBTSxFQUFOQSxNQUFNO01BQ054QixNQUFNLEVBQU5BO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU0yQixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJM0IsTUFBYyxFQUFFd0IsTUFBYyxFQUFFRixrQkFBMkIsRUFBSztJQUN4Ri9DLG9CQUFvQixDQUFDO01BQ25CK0Msa0JBQWtCLEVBQWxCQSxrQkFBa0I7TUFDbEJFLE1BQU0sRUFBTkEsTUFBTTtNQUNOeEIsTUFBTSxFQUFOQTtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxvQkFDRTFDLEtBQUEsQ0FBQUYsU0FBQTtJQUFBd0UsUUFBQSxnQkFDRTFFLElBQUEsQ0FBQ1YsT0FBTztNQUNOdUIsS0FBSyxFQUFFQSxLQUFNO01BQ2JnQyxxQkFBcUIsRUFBRUEscUJBQXNCO01BQzdDb0IsZ0JBQWdCLEVBQUVBLGdCQUFpQjtNQUNuQ1QsY0FBYyxFQUFFUSxzQkFBdUI7TUFDdkNTLGdCQUFnQixFQUFFQSxnQkFBaUI7TUFDbkNKLGFBQWEsRUFBRUE7SUFBYyxDQUM5QixDQUFDLGVBQ0ZyRSxJQUFBLENBQUNULGdCQUFnQjtNQUNmd0QsSUFBSSxFQUFFcEIsWUFBYTtNQUNuQmdELE1BQU0sRUFBRTVDLFdBQVk7TUFDcEI2QyxPQUFPLEVBQUVyQixnQkFBaUI7TUFDMUJzQixNQUFNLEVBQUVyQixjQUFlO01BQ3ZCc0IsUUFBUSxFQUFFZixzQkFBdUI7TUFDakNnQixJQUFJLEVBQUU1QyxTQUFVO01BQ2hCNkMsY0FBYyxFQUFFM0Usa0JBQW1CO01BQ25DNEUsV0FBVyxFQUFFekU7SUFBZ0IsQ0FDOUIsQ0FBQyxlQUNGUixJQUFBLENBQUNSLGVBQWU7TUFDZHVELElBQUksRUFBRVIsWUFBYTtNQUNuQm9DLE1BQU0sRUFBRWhDLGlCQUFrQjtNQUMxQmlDLE9BQU8sRUFBRVYsc0JBQXVCO01BQ2hDZ0IsU0FBUyxFQUFFZjtJQUFvQixDQUNoQyxDQUFDO0VBQUEsQ0FDRixDQUFDO0FBRVAsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
210
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwibGF6eSIsIlN1c3BlbnNlIiwiVGVhbVJvdyIsInVzZVRlYW1zIiwiTG9hZGVyQ29tcG9uZW50IiwidXNlQ3JlYXRlVGVhbSIsInVzZVVwZGF0ZVRlYW0iLCJ1c2VBc3NpZ25Vc2VyVG9UZWFtIiwidXNlVW5hc3NpZ25Vc2VyRnJvbVRlYW0iLCJ1c2VEZWxldGVUZWFtIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiTGF6eVRlYW1EZXRhaWxzTW9kYWwiLCJ0aGVuIiwibW9kdWxlIiwiVGVhbURldGFpbHNNb2RhbCIsIkxhenlEZWxldGVUZWFtTW9kYWwiLCJEZWxldGVUZWFtTW9kYWwiLCJtb2NrV29ya3NwYWNlc0xpc3QiLCJpZCIsIm5hbWUiLCJtb2NrTWVtYmVyc0xpc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsIkJvZHlDb250YWluZXJWaWV3VGVhbXMiLCJfdXNlVGVhbXMiLCJ0ZWFtcyIsIl91c2VDcmVhdGVUZWFtIiwiZmV0Y2hDcmVhdGVUZWFtIiwiX3VzZVVwZGF0ZVRlYW0iLCJ1cGRhdGVUZWFtIiwiX3VzZUFzc2lnblVzZXJUb1RlYW0iLCJhc3NpZ25Vc2VyVG9UZWFtIiwiX3VzZVVuYXNzaWduVXNlckZyb21UIiwidW5hc3NpZ25Vc2VyRnJvbVRlYW0iLCJfdXNlRGVsZXRlVGVhbSIsImRlbGV0ZVRlYW0iLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWxlY3RlZFRlYW0iLCJzZXRTZWxlY3RlZFRlYW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzTW9kYWxPcGVuIiwic2V0SXNNb2RhbE9wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm1vZGFsTW9kZSIsInNldE1vZGFsTW9kZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidGVhbVRvRGVsZXRlIiwic2V0VGVhbVRvRGVsZXRlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJpc0RlbGV0ZU1vZGFsT3BlbiIsInNldElzRGVsZXRlTW9kYWxPcGVuIiwiaGFuZGxlU2hvd1RlYW1EZXRhaWxzIiwidGVhbUlkIiwidGVhbSIsImZpbmQiLCJ0IiwiaGFuZGxlQ3JlYXRlVGVhbSIsImhhbmRsZUNyZWF0ZVRlYW1FdmVudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImhhbmRsZUVkaXRUZWFtIiwiZm9ybURhdGEiLCJmaWVsZHMiLCJkZXNjcmlwdGlvbiIsImhhc1dvcmtzcGFjZXNGZWF0dXJlIiwid29ya3NwYWNlIiwid29ya3NwYWNlSWQiLCJoYW5kbGVDcmVhdGVUZWFtU3VibWl0IiwiaGFuZGxlRWRpdFRlYW1Gcm9tTWVudSIsImhhbmRsZURlbGV0ZVRlYW0iLCJoYW5kbGVDbG9zZURlbGV0ZU1vZGFsIiwiaGFuZGxlQ29uZmlybURlbGV0ZSIsImRlbGV0ZUZyb21Qcm9qZWN0cyIsImhhbmRsZUFkZFVzZXIiLCJ1c2VySWQiLCJnaXZlQWNjZXNzVG9BbGxQcm9qZWN0cyIsInNldFVzZXJUZWFtUHJvamVjdCIsImhhbmRsZVJlbW92ZVVzZXIiLCJjaGlsZHJlbiIsImZhbGxiYWNrIiwiaXNPcGVuIiwib25DbG9zZSIsIm9uRWRpdCIsIm9uQ3JlYXRlIiwibW9kZSIsIndvcmtzcGFjZXNMaXN0IiwibWVtYmVyc0xpc3QiLCJvbkNvbmZpcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0JvZHkvQm9keUNvbnRhaW5lclZpZXdUZWFtcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2ssIGxhenksIFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUZWFtUm93IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UYWJsZS9UZWFtUm93L1RlYW1Sb3cnXG5pbXBvcnQgdHlwZSB7IFRlYW0sIEZvcm1EYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsJ1xuaW1wb3J0IHsgdXNlVGVhbXMgfSBmcm9tICcuLi8uLi9jb250ZXh0L1RlYW1zQ29udGV4dCdcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTG9hZGluZy9Mb2FkaW5nQ29tcG9uZW50J1xuaW1wb3J0IHsgdXNlQ3JlYXRlVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNyZWF0ZVRlYW1zJ1xuaW1wb3J0IHsgdXNlVXBkYXRlVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVVwZGF0ZVRlYW0nXG5pbXBvcnQgeyB1c2VBc3NpZ25Vc2VyVG9UZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlQXNzaWduVXNlclRvVGVhbSdcbmltcG9ydCB7IHVzZVVuYXNzaWduVXNlckZyb21UZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlVW5hc3NpZ25Vc2VyRnJvbVRlYW0nXG5pbXBvcnQgeyB1c2VEZWxldGVUZWFtIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVsZXRlVGVhbSdcblxuY29uc3QgTGF6eVRlYW1EZXRhaWxzTW9kYWwgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLlRlYW1EZXRhaWxzTW9kYWwgfSkpXG4pXG5cbmNvbnN0IExhenlEZWxldGVUZWFtTW9kYWwgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9EZWxldGVUZWFtTW9kYWwnKS50aGVuKG1vZHVsZSA9PiAoeyBkZWZhdWx0OiBtb2R1bGUuRGVsZXRlVGVhbU1vZGFsIH0pKVxuKVxuXG5jb25zdCBtb2NrV29ya3NwYWNlc0xpc3QgPSBbXG4gIHsgaWQ6IDEsIG5hbWU6ICdXb3Jrc3BhY2UgMScgfSxcbiAgeyBpZDogMiwgbmFtZTogJ1dvcmtzcGFjZSAyJyB9LFxuICB7IGlkOiAzLCBuYW1lOiAnV29ya3NwYWNlIDMnIH0sXG5dXG5cbmNvbnN0IG1vY2tNZW1iZXJzTGlzdCA9IFtcbiAgeyBpZDogMSwgZmlyc3ROYW1lOiAnVXNlciAxJywgbGFzdE5hbWU6ICdBcGVsbGlkbyAxJyB9LFxuICB7IGlkOiAyLCBmaXJzdE5hbWU6ICdVc2VyIDInLCBsYXN0TmFtZTogJ0FwZWxsaWRvIDInIH0sXG4gIHsgaWQ6IDMsIGZpcnN0TmFtZTogJ1VzZXIgMycsIGxhc3ROYW1lOiAnQXBlbGxpZG8gMycgfSxcbl1cblxuZXhwb3J0IGNvbnN0IEJvZHlDb250YWluZXJWaWV3VGVhbXMgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdGVhbXMgfSA9IHVzZVRlYW1zKClcbiAgY29uc3QgeyBmZXRjaENyZWF0ZVRlYW0gfSA9IHVzZUNyZWF0ZVRlYW0oKVxuICBjb25zdCB7IHVwZGF0ZVRlYW0gfSA9IHVzZVVwZGF0ZVRlYW0oKVxuICBjb25zdCB7IGFzc2lnblVzZXJUb1RlYW0gfSA9IHVzZUFzc2lnblVzZXJUb1RlYW0oKVxuICBjb25zdCB7IHVuYXNzaWduVXNlckZyb21UZWFtIH0gPSB1c2VVbmFzc2lnblVzZXJGcm9tVGVhbSgpXG4gIGNvbnN0IHsgZGVsZXRlVGVhbSB9ID0gdXNlRGVsZXRlVGVhbSgpXG4gIGNvbnN0IFtzZWxlY3RlZFRlYW0sIHNldFNlbGVjdGVkVGVhbV0gPSB1c2VTdGF0ZTxUZWFtIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzTW9kYWxPcGVuLCBzZXRJc01vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGFsTW9kZSwgc2V0TW9kYWxNb2RlXSA9IHVzZVN0YXRlPCd2aWV3JyB8ICdlZGl0JyB8ICdjcmVhdGUnPigndmlldycpXG4gIGNvbnN0IFt0ZWFtVG9EZWxldGUsIHNldFRlYW1Ub0RlbGV0ZV0gPSB1c2VTdGF0ZTxUZWFtIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzRGVsZXRlTW9kYWxPcGVuLCBzZXRJc0RlbGV0ZU1vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBoYW5kbGVTaG93VGVhbURldGFpbHMgPSAodGVhbUlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZWFtID0gdGVhbXMuZmluZCh0ID0+IHQuaWQgPT09IHRlYW1JZClcbiAgICBpZiAodGVhbSkge1xuICAgICAgc2V0U2VsZWN0ZWRUZWFtKHRlYW0pXG4gICAgICBzZXRNb2RhbE1vZGUoJ3ZpZXcnKVxuICAgICAgc2V0SXNNb2RhbE9wZW4odHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDcmVhdGVUZWFtID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNlbGVjdGVkVGVhbShudWxsKVxuICAgIHNldE1vZGFsTW9kZSgnY3JlYXRlJylcbiAgICBzZXRJc01vZGFsT3Blbih0cnVlKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNyZWF0ZVRlYW1FdmVudCA9ICgpID0+IHtcbiAgICAgIGhhbmRsZUNyZWF0ZVRlYW0oKVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjcmVhdGVUZWFtJywgaGFuZGxlQ3JlYXRlVGVhbUV2ZW50KVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjcmVhdGVUZWFtJywgaGFuZGxlQ3JlYXRlVGVhbUV2ZW50KVxuICAgIH1cbiAgfSwgW2hhbmRsZUNyZWF0ZVRlYW1dKVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNNb2RhbE9wZW4oZmFsc2UpXG4gICAgc2V0U2VsZWN0ZWRUZWFtKG51bGwpXG4gICAgc2V0TW9kYWxNb2RlKCd2aWV3JylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRUZWFtID0gKGZvcm1EYXRhOiBGb3JtRGF0YSkgPT4ge1xuICAgIGlmICghc2VsZWN0ZWRUZWFtKSByZXR1cm5cblxuICAgIGNvbnN0IGZpZWxkczoge1xuICAgICAgaWQ6IG51bWJlclxuICAgICAgbmFtZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgICB3b3Jrc3BhY2VJZD86IG51bWJlclxuICAgIH0gPSB7XG4gICAgICBpZDogK3NlbGVjdGVkVGVhbS5pZCxcbiAgICAgIG5hbWU6IGZvcm1EYXRhLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybURhdGEuZGVzY3JpcHRpb24sXG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiBmb3JtRGF0YS53b3Jrc3BhY2UpIHtcbiAgICAgIGZpZWxkcy53b3Jrc3BhY2VJZCA9IGZvcm1EYXRhLndvcmtzcGFjZS5pZFxuICAgIH1cblxuICAgIHVwZGF0ZVRlYW0oZmllbGRzKVxuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRlVGVhbVN1Ym1pdCA9IChmb3JtRGF0YTogRm9ybURhdGEpID0+IHtcbiAgICBjb25zdCBmaWVsZHM6IHtcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgICAgd29ya3NwYWNlSWQ/OiBudW1iZXJcbiAgICB9ID0ge1xuICAgICAgbmFtZTogZm9ybURhdGEubmFtZSxcbiAgICAgIC8vIHVzZXJzOiBmb3JtRGF0YS5tZW1iZXJzLm1hcChtZW1iZXIgPT4gbWVtYmVyLmlkKSwgVE9ETzogVmEgZW4gbGEgc2VndW5kYSB2ZXJzaW9uXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybURhdGEuZGVzY3JpcHRpb24sXG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiBmb3JtRGF0YS53b3Jrc3BhY2UpIHtcbiAgICAgIGZpZWxkcy53b3Jrc3BhY2VJZCA9IGZvcm1EYXRhLndvcmtzcGFjZS5pZFxuICAgIH1cbiAgICBmZXRjaENyZWF0ZVRlYW0oZmllbGRzKVxuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRWRpdFRlYW1Gcm9tTWVudSA9ICh0ZWFtSWQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHRlYW0gPSB0ZWFtcy5maW5kKHQgPT4gdC5pZCA9PT0gdGVhbUlkKVxuICAgIGlmICh0ZWFtKSB7XG4gICAgICBzZXRTZWxlY3RlZFRlYW0odGVhbSlcbiAgICAgIHNldE1vZGFsTW9kZSgnZWRpdCcpXG4gICAgICBzZXRJc01vZGFsT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZVRlYW0gPSAodGVhbUlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZWFtID0gdGVhbXMuZmluZCh0ID0+IHQuaWQgPT09IHRlYW1JZClcbiAgICBpZiAodGVhbSkge1xuICAgICAgc2V0VGVhbVRvRGVsZXRlKHRlYW0pXG4gICAgICBzZXRJc0RlbGV0ZU1vZGFsT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlRGVsZXRlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNEZWxldGVNb2RhbE9wZW4oZmFsc2UpXG4gICAgc2V0VGVhbVRvRGVsZXRlKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gKGRlbGV0ZUZyb21Qcm9qZWN0czogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0ZWFtVG9EZWxldGUpIHtcbiAgICAgIGRlbGV0ZVRlYW0odGVhbVRvRGVsZXRlLmlkLCBkZWxldGVGcm9tUHJvamVjdHMpXG4gICAgfVxuICAgIGhhbmRsZUNsb3NlRGVsZXRlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQWRkVXNlciA9ICh0ZWFtSWQ6IG51bWJlciwgdXNlcklkOiBudW1iZXIsIGdpdmVBY2Nlc3NUb0FsbFByb2plY3RzOiBib29sZWFuKSA9PiB7XG4gICAgYXNzaWduVXNlclRvVGVhbSh7XG4gICAgICBzZXRVc2VyVGVhbVByb2plY3Q6IGdpdmVBY2Nlc3NUb0FsbFByb2plY3RzLFxuICAgICAgdXNlcklkLFxuICAgICAgdGVhbUlkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVSZW1vdmVVc2VyID0gKHRlYW1JZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgZGVsZXRlRnJvbVByb2plY3RzOiBib29sZWFuKSA9PiB7XG4gICAgdW5hc3NpZ25Vc2VyRnJvbVRlYW0oe1xuICAgICAgZGVsZXRlRnJvbVByb2plY3RzLFxuICAgICAgdXNlcklkLFxuICAgICAgdGVhbUlkLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8VGVhbVJvd1xuICAgICAgICB0ZWFtcz17dGVhbXN9XG4gICAgICAgIGhhbmRsZVNob3dUZWFtRGV0YWlscz17aGFuZGxlU2hvd1RlYW1EZXRhaWxzfVxuICAgICAgICBoYW5kbGVEZWxldGVUZWFtPXtoYW5kbGVEZWxldGVUZWFtfVxuICAgICAgICBoYW5kbGVFZGl0VGVhbT17aGFuZGxlRWRpdFRlYW1Gcm9tTWVudX1cbiAgICAgICAgaGFuZGxlUmVtb3ZlVXNlcj17aGFuZGxlUmVtb3ZlVXNlcn1cbiAgICAgICAgaGFuZGxlQWRkVXNlcj17aGFuZGxlQWRkVXNlcn1cbiAgICAgIC8+XG4gICAgICB7aXNNb2RhbE9wZW4gJiYgKFxuICAgICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9ezxMb2FkZXJDb21wb25lbnQgLz59PlxuICAgICAgICAgIDxMYXp5VGVhbURldGFpbHNNb2RhbFxuICAgICAgICAgICAgdGVhbT17c2VsZWN0ZWRUZWFtfVxuICAgICAgICAgICAgaXNPcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICBvbkVkaXQ9e2hhbmRsZUVkaXRUZWFtfVxuICAgICAgICAgICAgb25DcmVhdGU9e2hhbmRsZUNyZWF0ZVRlYW1TdWJtaXR9XG4gICAgICAgICAgICBtb2RlPXttb2RhbE1vZGV9XG4gICAgICAgICAgICB3b3Jrc3BhY2VzTGlzdD17bW9ja1dvcmtzcGFjZXNMaXN0fVxuICAgICAgICAgICAgbWVtYmVyc0xpc3Q9e21vY2tNZW1iZXJzTGlzdH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N1c3BlbnNlPlxuICAgICAgKX1cbiAgICAgIHtpc0RlbGV0ZU1vZGFsT3BlbiAmJiAoXG4gICAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PExvYWRlckNvbXBvbmVudCAvPn0+XG4gICAgICAgICAgPExhenlEZWxldGVUZWFtTW9kYWxcbiAgICAgICAgICAgIHRlYW09e3RlYW1Ub0RlbGV0ZX1cbiAgICAgICAgICAgIGlzT3Blbj17aXNEZWxldGVNb2RhbE9wZW59XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZURlbGV0ZU1vZGFsfVxuICAgICAgICAgICAgb25Db25maXJtPXtoYW5kbGVDb25maXJtRGVsZXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3VzcGVuc2U+XG4gICAgICApfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hFLFNBQVNDLE9BQU8sUUFBUSx3Q0FBd0M7QUFFaEUsU0FBU0MsUUFBUSxRQUFRLDRCQUE0QjtBQUNyRCxTQUFTQyxlQUFlLFFBQVEsMkNBQTJDO0FBQzNFLFNBQVNDLGFBQWEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLDJCQUEyQjtBQUN6RCxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsdUJBQXVCLFFBQVEscUNBQXFDO0FBQzdFLFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUV6RCxJQUFNQyxvQkFB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SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTTJCLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUkzQixNQUFjLEVBQUV3QixNQUFjLEVBQUVGLGtCQUEyQixFQUFLO0lBQ3hGL0Msb0JBQW9CLENBQUM7TUFDbkIrQyxrQkFBa0IsRUFBbEJBLGtCQUFrQjtNQUNsQkUsTUFBTSxFQUFOQSxNQUFNO01BQ054QixNQUFNLEVBQU5BO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELG9CQUNFaEQsS0FBQSxDQUFBRixTQUFBO0lBQUE4RSxRQUFBLGdCQUNFaEYsSUFBQSxDQUFDVCxPQUFPO01BQ040QixLQUFLLEVBQUVBLEtBQU07TUFDYmdDLHFCQUFxQixFQUFFQSxxQkFBc0I7TUFDN0NvQixnQkFBZ0IsRUFBRUEsZ0JBQWlCO01BQ25DVCxjQUFjLEVBQUVRLHNCQUF1QjtNQUN2Q1MsZ0JBQWdCLEVBQUVBLGdCQUFpQjtNQUNuQ0osYUFBYSxFQUFFQTtJQUFjLENBQzlCLENBQUMsRUFDRHRDLFdBQVcsaUJBQ1ZyQyxJQUFBLENBQUNWLFFBQVE7TUFBQzJGLFFBQVEsZUFBRWpGLElBQUEsQ0FBQ1AsZUFBZSxJQUFFLENBQUU7TUFBQXVGLFFBQUEsZUFDdENoRixJQUFBLENBQUNLLG9CQUFvQjtRQUNuQmdELElBQUksRUFBRXBCLFlBQWE7UUFDbkJpRCxNQUFNLEVBQUU3QyxXQUFZO1FBQ3BCOEMsT0FBTyxFQUFFdEIsZ0JBQWlCO1FBQzFCdUIsTUFBTSxFQUFFdEIsY0FBZTtRQUN2QnVCLFFBQVEsRUFBRWhCLHNCQUF1QjtRQUNqQ2lCLElBQUksRUFBRTdDLFNBQVU7UUFDaEI4QyxjQUFjLEVBQUU1RSxrQkFBbUI7UUFDbkM2RSxXQUFXLEVBQUUxRTtNQUFnQixDQUM5QjtJQUFDLENBQ00sQ0FDWCxFQUNBbUMsaUJBQWlCLGlCQUNoQmpELElBQUEsQ0FBQ1YsUUFBUTtNQUFDMkYsUUFBUSxlQUFFakYsSUFBQSxDQUFDUCxlQUFlLElBQUUsQ0FBRTtNQUFBdUYsUUFBQSxlQUN0Q2hGLElBQUEsQ0FBQ1MsbUJBQW1CO1FBQ2xCNEMsSUFBSSxFQUFFUixZQUFhO1FBQ25CcUMsTUFBTSxFQUFFakMsaUJBQWtCO1FBQzFCa0MsT0FBTyxFQUFFWCxzQkFBdUI7UUFDaENpQixTQUFTLEVBQUVoQjtNQUFvQixDQUNoQztJQUFDLENBQ00sQ0FDWDtFQUFBLENBQ0QsQ0FBQztBQUVQLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -7,16 +8,17 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
8
  /* eslint-disable @typescript-eslint/no-empty-function */
8
9
  /* eslint-disable react/require-default-props */
9
10
  /* eslint-disable no-undef */
10
- import { memo, useEffect, useState, useRef } from 'react';
11
+ import { memo, useEffect, useState, useRef, useCallback } from 'react';
11
12
  import { useTranslation } from 'react-i18next';
12
13
  import { useUsersQuery } from '../../context/UsersContext';
13
14
  import { FilterChip } from '../../components/Filters/FilterChip';
14
15
  import { useGetTeams } from '../../hooks/useGetTeams';
16
+ import { useLoadMoreGuard } from '../../hooks/useLoadMoreGuard';
15
17
  import { SEARCH_EVENT } from '../../hooks/useSearchEvent';
16
18
  import { Search } from '../../components/Search/Search';
19
+ import { LayoutSearchUser } from '../../components/Layout/Layout';
17
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
- export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
19
- var handleGetUserPositionFilterProp = _ref.handleGetUserPositionFilter;
21
+ export var FiltersContainer = /*#__PURE__*/memo(function () {
20
22
  var _useTranslation = useTranslation('people'),
21
23
  t = _useTranslation.t;
22
24
  var _useUsersQuery = useUsersQuery(),
@@ -26,8 +28,9 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
26
28
  handleGetTeams = _useGetTeams.handleGetTeams,
27
29
  loading = _useGetTeams.loading,
28
30
  error = _useGetTeams.error,
29
- data = _useGetTeams.data;
30
- var handleGetUserPositionFilter = handleGetUserPositionFilterProp !== null && handleGetUserPositionFilterProp !== void 0 ? handleGetUserPositionFilterProp : function () {};
31
+ data = _useGetTeams.data,
32
+ currentPage = _useGetTeams.currentPage,
33
+ lastPage = _useGetTeams.lastPage;
31
34
  var _useState = useState(''),
32
35
  _useState2 = _slicedToArray(_useState, 2),
33
36
  searchTermValue = _useState2[0],
@@ -49,20 +52,31 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
49
52
  _useState0 = _slicedToArray(_useState9, 2),
50
53
  selectedPositions = _useState0[0],
51
54
  setSelectedPositions = _useState0[1];
55
+ var _useState1 = useState(''),
56
+ _useState10 = _slicedToArray(_useState1, 2),
57
+ teamSearchTerm = _useState10[0],
58
+ setTeamSearchTerm = _useState10[1];
59
+ var _useState11 = useState(''),
60
+ _useState12 = _slicedToArray(_useState11, 2),
61
+ positionSearchTerm = _useState12[0],
62
+ setPositionSearchTerm = _useState12[1];
63
+ var canLoadMoreTeams = currentPage < lastPage;
64
+ var _useLoadMoreGuard = useLoadMoreGuard(loading, canLoadMoreTeams),
65
+ requestTeamsLoadMore = _useLoadMoreGuard.requestLoadMore;
52
66
  var buildAndSendUserRequest = function buildAndSendUserRequest() {
53
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
54
- searchInputOverride = _ref2.searchInputOverride,
55
- teamsOverride = _ref2.teamsOverride,
56
- positionsOverride = _ref2.positionsOverride;
67
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
68
+ searchInputOverride = _ref.searchInputOverride,
69
+ teamsOverride = _ref.teamsOverride,
70
+ positionsOverride = _ref.positionsOverride;
57
71
  var positionsFilter = positionsOverride !== undefined ? positionsOverride.length ? {
58
72
  positions: positionsOverride
59
73
  } : {} : selectedPositions.length ? {
60
74
  positions: selectedPositions
61
75
  } : {};
62
76
  var teamsFilter = teamsOverride !== undefined ? teamsOverride.length ? {
63
- teams: teamsOverride
77
+ team: teamsOverride
64
78
  } : {} : selectedTeams.length ? {
65
- teams: selectedTeams
79
+ team: selectedTeams
66
80
  } : {};
67
81
  var valuesToFilter = _objectSpread(_objectSpread({}, positionsFilter), teamsFilter);
68
82
  handleGetUsers({
@@ -102,7 +116,14 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
102
116
  });
103
117
  }
104
118
  } else {
105
- handleGetTeams(1, searchTerm);
119
+ setTeamSearchTerm(searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
120
+ handleGetTeams(_objectSpread({
121
+ page: 1
122
+ }, searchTerm ? {
123
+ filter: {
124
+ name: searchTerm
125
+ }
126
+ } : {}));
106
127
  }
107
128
  }
108
129
  if (type === 'positionFilter') {
@@ -122,8 +143,8 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
122
143
  positionsOverride: valuesToFilter
123
144
  });
124
145
  }
125
- } else if (searchTerm) {
126
- handleGetUserPositionFilter(searchTerm);
146
+ } else {
147
+ setPositionSearchTerm(searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
127
148
  }
128
149
  }
129
150
  };
@@ -131,38 +152,82 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
131
152
  return function () {
132
153
  window.removeEventListener(SEARCH_EVENT, handleSearch);
133
154
  };
134
- }, [handleGetTeams, handleGetUserPositionFilter, handleGetUsers, searchTermValue]);
155
+ }, [handleGetUsers, searchTermValue, selectedTeams, selectedPositions]);
135
156
  useEffect(function () {
136
- if (data !== null && data !== void 0 && data.teams && !loading && !error) {
137
- setTeamOptions(data.teams.data.map(function (team) {
138
- return {
139
- id: team.id,
140
- label: team.name
141
- };
142
- }));
157
+ if (!(data !== null && data !== void 0 && data.teamsUsers) || error) return;
158
+ var mapped = data.teamsUsers.data.map(function (team) {
159
+ return {
160
+ id: team.id,
161
+ label: team.name
162
+ };
163
+ });
164
+ if (data.teamsUsers.page === 1) {
165
+ setTeamOptions(mapped);
166
+ } else {
167
+ setTeamOptions(function (prev) {
168
+ var existingIds = new Set(prev.map(function (o) {
169
+ return o.id;
170
+ }));
171
+ var newOnes = mapped.filter(function (o) {
172
+ return !existingIds.has(o.id);
173
+ });
174
+ return newOnes.length ? [].concat(_toConsumableArray(prev), _toConsumableArray(newOnes)) : prev;
175
+ });
143
176
  }
144
- }, [data, loading, error]);
177
+ }, [data, error]);
145
178
  useEffect(function () {
146
- if (positions !== null && positions !== void 0 && positions.length) {
179
+ if (positions) {
147
180
  setPositionOptions(positions);
148
- defaultPositionsRef.current = positions;
181
+ if (positions.length) {
182
+ defaultPositionsRef.current = positions;
183
+ }
149
184
  }
150
185
  }, [positions]);
151
- return /*#__PURE__*/_jsxs("div", {
152
- style: {
153
- display: 'flex',
154
- gap: '10px',
155
- alignItems: 'center'
156
- },
186
+ var handleTeamsLoadMore = useCallback(function () {
187
+ requestTeamsLoadMore(function () {
188
+ return handleGetTeams(_objectSpread({
189
+ page: currentPage + 1
190
+ }, teamSearchTerm !== null && teamSearchTerm !== void 0 && teamSearchTerm.trim() ? {
191
+ filter: {
192
+ name: teamSearchTerm.trim()
193
+ }
194
+ } : {}));
195
+ });
196
+ }, [requestTeamsLoadMore, currentPage, teamSearchTerm, handleGetTeams]);
197
+ var positionOptionsToShow = !positionSearchTerm.trim() ? positionOptions : function () {
198
+ var term = positionSearchTerm.trim().toLowerCase();
199
+ var posWithCategory = positionOptions;
200
+ var selectedOpts = posWithCategory.filter(function (p) {
201
+ return selectedPositions.includes(p.id);
202
+ });
203
+ var filteredOpts = posWithCategory.filter(function (p) {
204
+ return p.label.toLowerCase().includes(term) || p.categoryName && p.categoryName.toLowerCase().includes(term);
205
+ });
206
+ var filteredIds = new Set(filteredOpts.map(function (o) {
207
+ return o.id;
208
+ }));
209
+ var selectedNotInFiltered = selectedOpts.filter(function (o) {
210
+ return !filteredIds.has(o.id);
211
+ });
212
+ return [].concat(_toConsumableArray(selectedNotInFiltered), _toConsumableArray(filteredOpts));
213
+ }();
214
+ return /*#__PURE__*/_jsxs(LayoutSearchUser, {
157
215
  children: [/*#__PURE__*/_jsx(Search, {}), /*#__PURE__*/_jsx(FilterChip, {
158
216
  id: "teamFilter",
159
217
  label: t('filters.team'),
160
- options: teamOptions
218
+ options: teamOptions,
219
+ emptyMessage: t('users.emptyFilterMessage'),
220
+ onLoadMore: handleTeamsLoadMore,
221
+ hasMorePages: canLoadMoreTeams,
222
+ loadMoreLoading: loading,
223
+ dispatchSearchOnClose: false
161
224
  }), /*#__PURE__*/_jsx(FilterChip, {
162
225
  id: "positionFilter",
163
226
  label: t('filters.position'),
164
- options: positionOptions
227
+ options: positionOptionsToShow,
228
+ emptyMessage: t('users.emptyFilterMessage'),
229
+ dispatchSearchOnClose: true
165
230
  })]
166
231
  });
167
232
  });
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZVVzZXJzUXVlcnkiLCJGaWx0ZXJDaGlwIiwidXNlR2V0VGVhbXMiLCJTRUFSQ0hfRVZFTlQiLCJTZWFyY2giLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRmlsdGVyc0NvbnRhaW5lciIsIl9yZWYiLCJoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXJQcm9wIiwiaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VVc2Vyc1F1ZXJ5IiwiaGFuZGxlR2V0VXNlcnMiLCJwb3NpdGlvbnMiLCJfdXNlR2V0VGVhbXMiLCJoYW5kbGVHZXRUZWFtcyIsImxvYWRpbmciLCJlcnJvciIsImRhdGEiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWFyY2hUZXJtVmFsdWUiLCJzZXRTZWFyY2hUZXJtVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRlYW1PcHRpb25zIiwic2V0VGVhbU9wdGlvbnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBvc2l0aW9uT3B0aW9ucyIsInNldFBvc2l0aW9uT3B0aW9ucyIsImRlZmF1bHRQb3NpdGlvbnNSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkVGVhbXMiLCJzZXRTZWxlY3RlZFRlYW1zIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJzZWxlY3RlZFBvc2l0aW9ucyIsInNldFNlbGVjdGVkUG9zaXRpb25zIiwiYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QiLCJfcmVmMiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNlYXJjaElucHV0T3ZlcnJpZGUiLCJ0ZWFtc092ZXJyaWRlIiwicG9zaXRpb25zT3ZlcnJpZGUiLCJwb3NpdGlvbnNGaWx0ZXIiLCJ0ZWFtc0ZpbHRlciIsInRlYW1zIiwidmFsdWVzVG9GaWx0ZXIiLCJfb2JqZWN0U3ByZWFkIiwic2VhcmNoSW5wdXQiLCJwYWdlIiwiaGFuZGxlU2VhcmNoIiwiZXZlbnQiLCJfZXZlbnQkZGV0YWlsIiwiZGV0YWlsIiwic2VhcmNoVGVybSIsInR5cGUiLCJBcnJheSIsImlzQXJyYXkiLCJhcmVUZWFtc0VxdWFsIiwiZXZlcnkiLCJ2YWx1ZSIsImluZGV4IiwiYXJlUG9zaXRpb25zRXF1YWwiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hcCIsInRlYW0iLCJpZCIsImxhYmVsIiwibmFtZSIsImN1cnJlbnQiLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwiY2hpbGRyZW4iLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRhaW5lci9GaWx0ZXJzL0ZpbHRlcnNDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlcnNRdWVyeSB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgRmlsdGVyQ2hpcCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRmlsdGVycy9GaWx0ZXJDaGlwJ1xuaW1wb3J0IHsgdXNlR2V0VGVhbXMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRUZWFtcydcbmltcG9ydCB7IFNFQVJDSF9FVkVOVCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNlYXJjaEV2ZW50J1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9TZWFyY2gvU2VhcmNoJ1xuXG50eXBlIEZpbHRlcnNDb250YWluZXJQcm9wcyA9IHtcbiAgaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyPzogKG5hbWU6IHN0cmluZywgcGFnZT86IG51bWJlcikgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgRmlsdGVyc0NvbnRhaW5lciA9IG1lbW8oXG4gICh7IGhhbmRsZUdldFVzZXJQb3NpdGlvbkZpbHRlcjogaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyUHJvcCB9OiBGaWx0ZXJzQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdwZW9wbGUnKVxuICAgIGNvbnN0IHsgaGFuZGxlR2V0VXNlcnMsIHBvc2l0aW9ucyB9ID0gdXNlVXNlcnNRdWVyeSgpXG4gICAgY29uc3QgeyBoYW5kbGVHZXRUZWFtcywgbG9hZGluZywgZXJyb3IsIGRhdGEgfSA9IHVzZUdldFRlYW1zKClcbiAgICBjb25zdCBoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXIgPSBoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXJQcm9wID8/ICgoKSA9PiB7fSlcblxuICAgIGNvbnN0IFtzZWFyY2hUZXJtVmFsdWUsIHNldFNlYXJjaFRlcm1WYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgICBjb25zdCBbdGVhbU9wdGlvbnMsIHNldFRlYW1PcHRpb25zXSA9IHVzZVN0YXRlPHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10+KFtdKVxuICAgIGNvbnN0IFtwb3NpdGlvbk9wdGlvbnMsIHNldFBvc2l0aW9uT3B0aW9uc10gPSB1c2VTdGF0ZTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPihwb3NpdGlvbnMgfHwgW10pXG4gICAgY29uc3QgZGVmYXVsdFBvc2l0aW9uc1JlZiA9IHVzZVJlZjx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmc7IGNhdGVnb3J5TmFtZT86IHN0cmluZyB9W10+KHBvc2l0aW9ucyB8fCBbXSlcblxuICAgIGNvbnN0IFtzZWxlY3RlZFRlYW1zLCBzZXRTZWxlY3RlZFRlYW1zXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSlcbiAgICBjb25zdCBbc2VsZWN0ZWRQb3NpdGlvbnMsIHNldFNlbGVjdGVkUG9zaXRpb25zXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSlcblxuICAgIGNvbnN0IGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0ID0gKHtcbiAgICAgIHNlYXJjaElucHV0T3ZlcnJpZGUsXG4gICAgICB0ZWFtc092ZXJyaWRlLFxuICAgICAgcG9zaXRpb25zT3ZlcnJpZGUsXG4gICAgfToge1xuICAgICAgc2VhcmNoSW5wdXRPdmVycmlkZT86IHN0cmluZ1xuICAgICAgdGVhbXNPdmVycmlkZT86IG51bWJlcltdXG4gICAgICBwb3NpdGlvbnNPdmVycmlkZT86IG51bWJlcltdXG4gICAgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbnNGaWx0ZXIgPVxuICAgICAgICBwb3NpdGlvbnNPdmVycmlkZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwb3NpdGlvbnNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICAgID8geyBwb3NpdGlvbnM6IHBvc2l0aW9uc092ZXJyaWRlIH1cbiAgICAgICAgICAgIDoge31cbiAgICAgICAgICA6IHNlbGVjdGVkUG9zaXRpb25zLmxlbmd0aFxuICAgICAgICAgID8geyBwb3NpdGlvbnM6IHNlbGVjdGVkUG9zaXRpb25zIH1cbiAgICAgICAgICA6IHt9XG4gICAgICBjb25zdCB0ZWFtc0ZpbHRlciA9XG4gICAgICAgIHRlYW1zT3ZlcnJpZGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdGVhbXNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICAgID8geyB0ZWFtczogdGVhbXNPdmVycmlkZSB9XG4gICAgICAgICAgICA6IHt9XG4gICAgICAgICAgOiBzZWxlY3RlZFRlYW1zLmxlbmd0aFxuICAgICAgICAgID8geyB0ZWFtczogc2VsZWN0ZWRUZWFtcyB9XG4gICAgICAgICAgOiB7fVxuICAgICAgY29uc3QgdmFsdWVzVG9GaWx0ZXIgPSB7IC4uLnBvc2l0aW9uc0ZpbHRlciwgLi4udGVhbXNGaWx0ZXIgfVxuXG4gICAgICBoYW5kbGVHZXRVc2Vycyh7XG4gICAgICAgIHNlYXJjaElucHV0OiBzZWFyY2hJbnB1dE92ZXJyaWRlICE9PSB1bmRlZmluZWQgPyBzZWFyY2hJbnB1dE92ZXJyaWRlIDogc2VhcmNoVGVybVZhbHVlLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICB2YWx1ZXNUb0ZpbHRlcjogdmFsdWVzVG9GaWx0ZXIgYXMgYW55LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlU2VhcmNoID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlYXJjaFRlcm0sIHR5cGUsIHZhbHVlc1RvRmlsdGVyIH0gPSBldmVudC5kZXRhaWxcbiAgICAgICAgaWYgKHR5cGUgPT09ICdmaWx0ZXIxJykge1xuICAgICAgICAgIHNldFNlYXJjaFRlcm1WYWx1ZShzZWFyY2hUZXJtKVxuICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgc2VhcmNoSW5wdXRPdmVycmlkZTogc2VhcmNoVGVybSB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICd0ZWFtRmlsdGVyJykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlc1RvRmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBhcmVUZWFtc0VxdWFsID0gdmFsdWVzVG9GaWx0ZXIuZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4gdmFsdWUgPT09IHNlbGVjdGVkVGVhbXNbaW5kZXhdKVxuICAgICAgICAgICAgICBpZiAoYXJlVGVhbXNFcXVhbCkgcmV0dXJuXG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbXModmFsdWVzVG9GaWx0ZXIpXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHtcbiAgICAgICAgICAgICAgICB0ZWFtc092ZXJyaWRlOiB2YWx1ZXNUb0ZpbHRlcixcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbXMoW10pXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgdGVhbXNPdmVycmlkZTogW10gfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGFuZGxlR2V0VGVhbXMoMSwgc2VhcmNoVGVybSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gJ3Bvc2l0aW9uRmlsdGVyJykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZXNUb0ZpbHRlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRQb3NpdGlvbnMoW10pXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgcG9zaXRpb25zT3ZlcnJpZGU6IFtdIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBhcmVQb3NpdGlvbnNFcXVhbCA9IHZhbHVlc1RvRmlsdGVyLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBzZWxlY3RlZFBvc2l0aW9uc1tpbmRleF0pXG4gICAgICAgICAgICAgIGlmIChhcmVQb3NpdGlvbnNFcXVhbCkgcmV0dXJuXG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9zaXRpb25zKHZhbHVlc1RvRmlsdGVyKVxuICAgICAgICAgICAgICBidWlsZEFuZFNlbmRVc2VyUmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zT3ZlcnJpZGU6IHZhbHVlc1RvRmlsdGVyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2VhcmNoVGVybSkge1xuICAgICAgICAgICAgaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyKHNlYXJjaFRlcm0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIH1cbiAgICB9LCBbaGFuZGxlR2V0VGVhbXMsIGhhbmRsZUdldFVzZXJQb3NpdGlvbkZpbHRlciwgaGFuZGxlR2V0VXNlcnMsIHNlYXJjaFRlcm1WYWx1ZV0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGRhdGE/LnRlYW1zICYmICFsb2FkaW5nICYmICFlcnJvcikge1xuICAgICAgICBzZXRUZWFtT3B0aW9ucyhkYXRhLnRlYW1zLmRhdGEubWFwKHRlYW0gPT4gKHsgaWQ6IHRlYW0uaWQsIGxhYmVsOiB0ZWFtLm5hbWUgfSkpKVxuICAgICAgfVxuICAgIH0sIFtkYXRhLCBsb2FkaW5nLCBlcnJvcl0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHBvc2l0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHNldFBvc2l0aW9uT3B0aW9ucyhwb3NpdGlvbnMpXG4gICAgICAgIGRlZmF1bHRQb3NpdGlvbnNSZWYuY3VycmVudCA9IHBvc2l0aW9uc1xuICAgICAgfVxuICAgIH0sIFtwb3NpdGlvbnNdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTZWFyY2ggLz5cbiAgICAgICAgPEZpbHRlckNoaXAgaWQ9XCJ0ZWFtRmlsdGVyXCIgbGFiZWw9e3QoJ2ZpbHRlcnMudGVhbScpfSBvcHRpb25zPXt0ZWFtT3B0aW9uc30gLz5cbiAgICAgICAgPEZpbHRlckNoaXAgaWQ9XCJwb3NpdGlvbkZpbHRlclwiIGxhYmVsPXt0KCdmaWx0ZXJzLnBvc2l0aW9uJyl9IG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc30gLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuKVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsVUFBVSxRQUFRLHFDQUFxQztBQUNoRSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MsTUFBTSxRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFNdkQsT0FBTyxJQUFNQyxnQkFBZ0IsZ0JBQUdkLElBQUksQ0FDbEMsVUFB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
233
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VDYWxsYmFjayIsInVzZVRyYW5zbGF0aW9uIiwidXNlVXNlcnNRdWVyeSIsIkZpbHRlckNoaXAiLCJ1c2VHZXRUZWFtcyIsInVzZUxvYWRNb3JlR3VhcmQiLCJTRUFSQ0hfRVZFTlQiLCJTZWFyY2giLCJMYXlvdXRTZWFyY2hVc2VyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZpbHRlcnNDb250YWluZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiX3VzZVVzZXJzUXVlcnkiLCJoYW5kbGVHZXRVc2VycyIsInBvc2l0aW9ucyIsIl91c2VHZXRUZWFtcyIsImhhbmRsZUdldFRlYW1zIiwibG9hZGluZyIsImVycm9yIiwiZGF0YSIsImN1cnJlbnRQYWdlIiwibGFzdFBhZ2UiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWFyY2hUZXJtVmFsdWUiLCJzZXRTZWFyY2hUZXJtVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRlYW1PcHRpb25zIiwic2V0VGVhbU9wdGlvbnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBvc2l0aW9uT3B0aW9ucyIsInNldFBvc2l0aW9uT3B0aW9ucyIsImRlZmF1bHRQb3NpdGlvbnNSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkVGVhbXMiLCJzZXRTZWxlY3RlZFRlYW1zIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJzZWxlY3RlZFBvc2l0aW9ucyIsInNldFNlbGVjdGVkUG9zaXRpb25zIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwidGVhbVNlYXJjaFRlcm0iLCJzZXRUZWFtU2VhcmNoVGVybSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJwb3NpdGlvblNlYXJjaFRlcm0iLCJzZXRQb3NpdGlvblNlYXJjaFRlcm0iLCJjYW5Mb2FkTW9yZVRlYW1zIiwiX3VzZUxvYWRNb3JlR3VhcmQiLCJyZXF1ZXN0VGVhbXNMb2FkTW9yZSIsInJlcXVlc3RMb2FkTW9yZSIsImJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0IiwiX3JlZiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNlYXJjaElucHV0T3ZlcnJpZGUiLCJ0ZWFtc092ZXJyaWRlIiwicG9zaXRpb25zT3ZlcnJpZGUiLCJwb3NpdGlvbnNGaWx0ZXIiLCJ0ZWFtc0ZpbHRlciIsInRlYW0iLCJ2YWx1ZXNUb0ZpbHRlciIsIl9vYmplY3RTcHJlYWQiLCJzZWFyY2hJbnB1dCIsInBhZ2UiLCJoYW5kbGVTZWFyY2giLCJldmVudCIsIl9ldmVudCRkZXRhaWwiLCJkZXRhaWwiLCJzZWFyY2hUZXJtIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImFyZVRlYW1zRXF1YWwiLCJldmVyeSIsInZhbHVlIiwiaW5kZXgiLCJmaWx0ZXIiLCJuYW1lIiwiYXJlUG9zaXRpb25zRXF1YWwiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRlYW1zVXNlcnMiLCJtYXBwZWQiLCJtYXAiLCJpZCIsImxhYmVsIiwicHJldiIsImV4aXN0aW5nSWRzIiwiU2V0IiwibyIsIm5ld09uZXMiLCJoYXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJjdXJyZW50IiwiaGFuZGxlVGVhbXNMb2FkTW9yZSIsInRyaW0iLCJwb3NpdGlvbk9wdGlvbnNUb1Nob3ciLCJ0ZXJtIiwidG9Mb3dlckNhc2UiLCJwb3NXaXRoQ2F0ZWdvcnkiLCJzZWxlY3RlZE9wdHMiLCJwIiwiaW5jbHVkZXMiLCJmaWx0ZXJlZE9wdHMiLCJjYXRlZ29yeU5hbWUiLCJmaWx0ZXJlZElkcyIsInNlbGVjdGVkTm90SW5GaWx0ZXJlZCIsImNoaWxkcmVuIiwib3B0aW9ucyIsImVtcHR5TWVzc2FnZSIsIm9uTG9hZE1vcmUiLCJoYXNNb3JlUGFnZXMiLCJsb2FkTW9yZUxvYWRpbmciLCJkaXNwYXRjaFNlYXJjaE9uQ2xvc2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0ZpbHRlcnMvRmlsdGVyc0NvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlcnNRdWVyeSB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgRmlsdGVyQ2hpcCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRmlsdGVycy9GaWx0ZXJDaGlwJ1xuaW1wb3J0IHsgdXNlR2V0VGVhbXMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRUZWFtcydcbmltcG9ydCB7IHVzZUxvYWRNb3JlR3VhcmQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VMb2FkTW9yZUd1YXJkJ1xuaW1wb3J0IHsgU0VBUkNIX0VWRU5UIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlU2VhcmNoRXZlbnQnXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1NlYXJjaC9TZWFyY2gnXG5pbXBvcnQgeyBMYXlvdXRTZWFyY2hVc2VyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0J1xuXG5leHBvcnQgY29uc3QgRmlsdGVyc0NvbnRhaW5lciA9IG1lbW8oKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdwZW9wbGUnKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCBwb3NpdGlvbnMgfSA9IHVzZVVzZXJzUXVlcnkoKVxuICBjb25zdCB7IGhhbmRsZUdldFRlYW1zLCBsb2FkaW5nLCBlcnJvciwgZGF0YSwgY3VycmVudFBhZ2UsIGxhc3RQYWdlIH0gPSB1c2VHZXRUZWFtcygpXG5cbiAgY29uc3QgW3NlYXJjaFRlcm1WYWx1ZSwgc2V0U2VhcmNoVGVybVZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbdGVhbU9wdGlvbnMsIHNldFRlYW1PcHRpb25zXSA9IHVzZVN0YXRlPHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10+KFtdKVxuICBjb25zdCBbcG9zaXRpb25PcHRpb25zLCBzZXRQb3NpdGlvbk9wdGlvbnNdID0gdXNlU3RhdGU8eyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXT4ocG9zaXRpb25zIHx8IFtdKVxuICBjb25zdCBkZWZhdWx0UG9zaXRpb25zUmVmID0gdXNlUmVmPHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZzsgY2F0ZWdvcnlOYW1lPzogc3RyaW5nIH1bXT4ocG9zaXRpb25zIHx8IFtdKVxuXG4gIGNvbnN0IFtzZWxlY3RlZFRlYW1zLCBzZXRTZWxlY3RlZFRlYW1zXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSlcbiAgY29uc3QgW3NlbGVjdGVkUG9zaXRpb25zLCBzZXRTZWxlY3RlZFBvc2l0aW9uc10gPSB1c2VTdGF0ZTxudW1iZXJbXT4oW10pXG4gIGNvbnN0IFt0ZWFtU2VhcmNoVGVybSwgc2V0VGVhbVNlYXJjaFRlcm1dID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtwb3NpdGlvblNlYXJjaFRlcm0sIHNldFBvc2l0aW9uU2VhcmNoVGVybV0gPSB1c2VTdGF0ZSgnJylcblxuICBjb25zdCBjYW5Mb2FkTW9yZVRlYW1zID0gY3VycmVudFBhZ2UgPCBsYXN0UGFnZVxuICBjb25zdCB7IHJlcXVlc3RMb2FkTW9yZTogcmVxdWVzdFRlYW1zTG9hZE1vcmUgfSA9IHVzZUxvYWRNb3JlR3VhcmQobG9hZGluZywgY2FuTG9hZE1vcmVUZWFtcylcblxuICBjb25zdCBidWlsZEFuZFNlbmRVc2VyUmVxdWVzdCA9ICh7XG4gICAgc2VhcmNoSW5wdXRPdmVycmlkZSxcbiAgICB0ZWFtc092ZXJyaWRlLFxuICAgIHBvc2l0aW9uc092ZXJyaWRlLFxuICB9OiB7XG4gICAgc2VhcmNoSW5wdXRPdmVycmlkZT86IHN0cmluZ1xuICAgIHRlYW1zT3ZlcnJpZGU/OiBudW1iZXJbXVxuICAgIHBvc2l0aW9uc092ZXJyaWRlPzogbnVtYmVyW11cbiAgfSA9IHt9KSA9PiB7XG4gICAgY29uc3QgcG9zaXRpb25zRmlsdGVyID1cbiAgICAgIHBvc2l0aW9uc092ZXJyaWRlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBwb3NpdGlvbnNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICA/IHsgcG9zaXRpb25zOiBwb3NpdGlvbnNPdmVycmlkZSB9XG4gICAgICAgICAgOiB7fVxuICAgICAgICA6IHNlbGVjdGVkUG9zaXRpb25zLmxlbmd0aFxuICAgICAgICA/IHsgcG9zaXRpb25zOiBzZWxlY3RlZFBvc2l0aW9ucyB9XG4gICAgICAgIDoge31cbiAgICBjb25zdCB0ZWFtc0ZpbHRlciA9XG4gICAgICB0ZWFtc092ZXJyaWRlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB0ZWFtc092ZXJyaWRlLmxlbmd0aFxuICAgICAgICAgID8geyB0ZWFtOiB0ZWFtc092ZXJyaWRlIH1cbiAgICAgICAgICA6IHt9XG4gICAgICAgIDogc2VsZWN0ZWRUZWFtcy5sZW5ndGhcbiAgICAgICAgPyB7IHRlYW06IHNlbGVjdGVkVGVhbXMgfVxuICAgICAgICA6IHt9XG4gICAgY29uc3QgdmFsdWVzVG9GaWx0ZXIgPSB7IC4uLnBvc2l0aW9uc0ZpbHRlciwgLi4udGVhbXNGaWx0ZXIgfVxuXG4gICAgaGFuZGxlR2V0VXNlcnMoe1xuICAgICAgc2VhcmNoSW5wdXQ6IHNlYXJjaElucHV0T3ZlcnJpZGUgIT09IHVuZGVmaW5lZCA/IHNlYXJjaElucHV0T3ZlcnJpZGUgOiBzZWFyY2hUZXJtVmFsdWUsXG4gICAgICBwYWdlOiAxLFxuICAgICAgdmFsdWVzVG9GaWx0ZXI6IHZhbHVlc1RvRmlsdGVyIGFzIGFueSxcbiAgICB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IHNlYXJjaFRlcm0sIHR5cGUsIHZhbHVlc1RvRmlsdGVyIH0gPSBldmVudC5kZXRhaWxcbiAgICAgIGlmICh0eXBlID09PSAnZmlsdGVyMScpIHtcbiAgICAgICAgc2V0U2VhcmNoVGVybVZhbHVlKHNlYXJjaFRlcm0pXG4gICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgc2VhcmNoSW5wdXRPdmVycmlkZTogc2VhcmNoVGVybSB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUgPT09ICd0ZWFtRmlsdGVyJykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXNUb0ZpbHRlcikpIHtcbiAgICAgICAgICBpZiAodmFsdWVzVG9GaWx0ZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhcmVUZWFtc0VxdWFsID0gdmFsdWVzVG9GaWx0ZXIuZXZlcnkoKHZhbHVlLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSA9PT0gc2VsZWN0ZWRUZWFtc1tpbmRleF0pXG4gICAgICAgICAgICBpZiAoYXJlVGVhbXNFcXVhbCkgcmV0dXJuXG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRlYW1zKHZhbHVlc1RvRmlsdGVyKVxuICAgICAgICAgICAgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QoeyB0ZWFtc092ZXJyaWRlOiB2YWx1ZXNUb0ZpbHRlciB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRlYW1zKFtdKVxuICAgICAgICAgICAgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QoeyB0ZWFtc092ZXJyaWRlOiBbXSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUZWFtU2VhcmNoVGVybShzZWFyY2hUZXJtID8/ICcnKVxuICAgICAgICAgIGhhbmRsZUdldFRlYW1zKHsgcGFnZTogMSwgLi4uKHNlYXJjaFRlcm0gPyB7IGZpbHRlcjogeyBuYW1lOiBzZWFyY2hUZXJtIH0gfSA6IHt9KSB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlID09PSAncG9zaXRpb25GaWx0ZXInKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgIGlmICghdmFsdWVzVG9GaWx0ZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFBvc2l0aW9ucyhbXSlcbiAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgcG9zaXRpb25zT3ZlcnJpZGU6IFtdIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZVBvc2l0aW9uc0VxdWFsID0gdmFsdWVzVG9GaWx0ZXIuZXZlcnkoKHZhbHVlLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSA9PT0gc2VsZWN0ZWRQb3NpdGlvbnNbaW5kZXhdKVxuICAgICAgICAgICAgaWYgKGFyZVBvc2l0aW9uc0VxdWFsKSByZXR1cm5cbiAgICAgICAgICAgIHNldFNlbGVjdGVkUG9zaXRpb25zKHZhbHVlc1RvRmlsdGVyKVxuICAgICAgICAgICAgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3Qoe1xuICAgICAgICAgICAgICBwb3NpdGlvbnNPdmVycmlkZTogdmFsdWVzVG9GaWx0ZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRQb3NpdGlvblNlYXJjaFRlcm0oc2VhcmNoVGVybSA/PyAnJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoU0VBUkNIX0VWRU5ULCBoYW5kbGVTZWFyY2ggYXMgdW5rbm93biBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW2hhbmRsZUdldFVzZXJzLCBzZWFyY2hUZXJtVmFsdWUsIHNlbGVjdGVkVGVhbXMsIHNlbGVjdGVkUG9zaXRpb25zXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGF0YT8udGVhbXNVc2VycyB8fCBlcnJvcikgcmV0dXJuXG4gICAgY29uc3QgbWFwcGVkID0gZGF0YS50ZWFtc1VzZXJzLmRhdGEubWFwKCh0ZWFtOiB7IGlkOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgaWQ6IHRlYW0uaWQsXG4gICAgICBsYWJlbDogdGVhbS5uYW1lLFxuICAgIH0pKVxuICAgIGlmIChkYXRhLnRlYW1zVXNlcnMucGFnZSA9PT0gMSkge1xuICAgICAgc2V0VGVhbU9wdGlvbnMobWFwcGVkKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUZWFtT3B0aW9ucyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKG8gPT4gby5pZCkpXG4gICAgICAgIGNvbnN0IG5ld09uZXMgPSBtYXBwZWQuZmlsdGVyKChvOiB7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSkgPT4gIWV4aXN0aW5nSWRzLmhhcyhvLmlkKSlcbiAgICAgICAgcmV0dXJuIG5ld09uZXMubGVuZ3RoID8gWy4uLnByZXYsIC4uLm5ld09uZXNdIDogcHJldlxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtkYXRhLCBlcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocG9zaXRpb25zKSB7XG4gICAgICBzZXRQb3NpdGlvbk9wdGlvbnMocG9zaXRpb25zKVxuICAgICAgaWYgKHBvc2l0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgZGVmYXVsdFBvc2l0aW9uc1JlZi5jdXJyZW50ID0gcG9zaXRpb25zXG4gICAgICB9XG4gICAgfVxuICB9LCBbcG9zaXRpb25zXSlcblxuICBjb25zdCBoYW5kbGVUZWFtc0xvYWRNb3JlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJlcXVlc3RUZWFtc0xvYWRNb3JlKCgpID0+XG4gICAgICBoYW5kbGVHZXRUZWFtcyh7XG4gICAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgLi4uKHRlYW1TZWFyY2hUZXJtPy50cmltKCkgPyB7IGZpbHRlcjogeyBuYW1lOiB0ZWFtU2VhcmNoVGVybS50cmltKCkgfSB9IDoge30pLFxuICAgICAgfSlcbiAgICApXG4gIH0sIFtyZXF1ZXN0VGVhbXNMb2FkTW9yZSwgY3VycmVudFBhZ2UsIHRlYW1TZWFyY2hUZXJtLCBoYW5kbGVHZXRUZWFtc10pXG5cbiAgY29uc3QgcG9zaXRpb25PcHRpb25zVG9TaG93ID0gIXBvc2l0aW9uU2VhcmNoVGVybS50cmltKClcbiAgICA/IHBvc2l0aW9uT3B0aW9uc1xuICAgIDogKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGVybSA9IHBvc2l0aW9uU2VhcmNoVGVybS50cmltKCkudG9Mb3dlckNhc2UoKVxuICAgICAgICBjb25zdCBwb3NXaXRoQ2F0ZWdvcnkgPSBwb3NpdGlvbk9wdGlvbnMgYXMgeyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nOyBjYXRlZ29yeU5hbWU/OiBzdHJpbmcgfVtdXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0cyA9IHBvc1dpdGhDYXRlZ29yeS5maWx0ZXIocCA9PiBzZWxlY3RlZFBvc2l0aW9ucy5pbmNsdWRlcyhwLmlkKSlcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRzID0gcG9zV2l0aENhdGVnb3J5LmZpbHRlcihcbiAgICAgICAgICBwID0+IHAubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSB8fCAocC5jYXRlZ29yeU5hbWUgJiYgcC5jYXRlZ29yeU5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSlcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBmaWx0ZXJlZElkcyA9IG5ldyBTZXQoZmlsdGVyZWRPcHRzLm1hcChvID0+IG8uaWQpKVxuICAgICAgICBjb25zdCBzZWxlY3RlZE5vdEluRmlsdGVyZWQgPSBzZWxlY3RlZE9wdHMuZmlsdGVyKG8gPT4gIWZpbHRlcmVkSWRzLmhhcyhvLmlkKSlcbiAgICAgICAgcmV0dXJuIFsuLi5zZWxlY3RlZE5vdEluRmlsdGVyZWQsIC4uLmZpbHRlcmVkT3B0c11cbiAgICAgIH0pKClcblxuICByZXR1cm4gKFxuICAgIDxMYXlvdXRTZWFyY2hVc2VyPlxuICAgICAgPFNlYXJjaCAvPlxuICAgICAgPEZpbHRlckNoaXBcbiAgICAgICAgaWQ9XCJ0ZWFtRmlsdGVyXCJcbiAgICAgICAgbGFiZWw9e3QoJ2ZpbHRlcnMudGVhbScpfVxuICAgICAgICBvcHRpb25zPXt0ZWFtT3B0aW9uc31cbiAgICAgICAgZW1wdHlNZXNzYWdlPXt0KCd1c2Vycy5lbXB0eUZpbHRlck1lc3NhZ2UnKX1cbiAgICAgICAgb25Mb2FkTW9yZT17aGFuZGxlVGVhbXNMb2FkTW9yZX1cbiAgICAgICAgaGFzTW9yZVBhZ2VzPXtjYW5Mb2FkTW9yZVRlYW1zfVxuICAgICAgICBsb2FkTW9yZUxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgIGRpc3BhdGNoU2VhcmNoT25DbG9zZT17ZmFsc2V9XG4gICAgICAvPlxuICAgICAgPEZpbHRlckNoaXBcbiAgICAgICAgaWQ9XCJwb3NpdGlvbkZpbHRlclwiXG4gICAgICAgIGxhYmVsPXt0KCdmaWx0ZXJzLnBvc2l0aW9uJyl9XG4gICAgICAgIG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc1RvU2hvd31cbiAgICAgICAgZW1wdHlNZXNzYWdlPXt0KCd1c2Vycy5lbXB0eUZpbHRlck1lc3NhZ2UnKX1cbiAgICAgICAgZGlzcGF0Y2hTZWFyY2hPbkNsb3NlXG4gICAgICAvPlxuICAgIDwvTGF5b3V0U2VhcmNoVXNlcj5cbiAgKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUN0RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxhQUFhLFFBQVEsNEJBQTRCO0FBQzFELFNBQVNDLFVBQVUsUUFBUSxxQ0FBcUM7QUFDaEUsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDL0QsU0FBU0MsWUFBWSxRQUFRLDRCQUE0QjtBQUN6RCxTQUFTQyxNQUFNLFFBQVEsZ0NBQWdDO0FBQ3ZELFNBQVNDLGdCQUFnQixRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFakUsT0FBTyxJQUFNQyxnQkFBZ0IsZ0JBQUdqQixJQUFJLENBQUMsWUFBTTtFQUN6QyxJQUFBa0IsZUFBQSxHQUFjYixjQUFjLENBQUMsUUFBUSxDQUFDO0lBQTlCYyxDQUFDLEdBQUFELGVBQUEsQ0FBREMsQ0FBQztFQUNULElBQUFDLGNBQUEsR0FBc0NkLGFBQWEsQ0FBQyxDQUFDO0lBQTdDZSxjQUFjLEdBQUFELGNBQUEsQ0FBZEMsY0FBYztJQUFFQyxTQUFTLEdBQUFGLGNBQUEsQ0FBVEUsU0FBUztFQUNqQyxJQUFBQyxZQUFBLEdBQXdFZixXQUFXLENBQUMsQ0FBQztJQUE3RWdCLGNBQWMsR0FBQUQsWUFBQSxDQUFkQyxjQUFjO0lBQUVDLE9BQU8sR0FB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