@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.
- package/lib/App.js +8 -45
- package/lib/App.stories.js +27 -2
- package/lib/components/DeleteTeamModal/DeleteTeamModal.js +8 -5
- package/lib/components/DeleteTeamModal/DeleteTeamModal.styles.js +11 -10
- package/lib/components/DeletedUserIcon/DeletedUserIcon.js +5 -3
- package/lib/components/DeletedUserIcon/DeletedUserIcon.styles.js +2 -2
- package/lib/components/DisabledUserIcon/DisabledUserIcon.js +3 -2
- package/lib/components/DisabledUserIcon/DisabledUserIcon.styles.js +2 -2
- package/lib/components/EmptyStateTeams/EmptyStateTeams.js +4 -3
- package/lib/components/EmptyStateTeams/EmptyStateTeams.styles.js +3 -2
- package/lib/components/EmptyUser/EmptyUser.js +9 -48
- package/lib/components/EmptyUser/EmptyUser.styles.js +18 -0
- package/lib/components/ErrorComponent/ErrorComponent.spec.js +3 -2
- package/lib/components/ErrorComponent/ErrorComponent.styles.js +5 -5
- package/lib/components/ErrorTeams/ErrorTeams.styles.js +3 -2
- package/lib/components/Filters/FilterChip/FilterChip.js +52 -32
- package/lib/components/Filters/FilterChip/FilterChip.styles.js +6 -0
- package/lib/components/Filters/LabelFilter/LabelFilter.js +22 -20
- package/lib/components/Filters/LabelFilter/LabelFilter.styles.js +4 -4
- package/lib/components/Filters/SearchComponent/SearchComponent.js +3 -5
- package/lib/components/HeaderTeams/HeaderTeams.js +4 -3
- package/lib/components/HeaderTeams/HeaderTeams.style.js +3 -2
- package/lib/components/Icons/UserIconLock.js +3 -2
- package/lib/components/Icons/UserIconWithCross.js +3 -2
- package/lib/components/Illustration/EmptyFilter.js +67 -0
- package/lib/components/Layout/Layout.js +23 -2
- package/lib/components/Layout/Layout.styles.js +19 -3
- package/lib/components/Layout/index.js +2 -3
- package/lib/components/MenuOptions/MenuOptions.js +127 -40
- package/lib/components/MenuOptions/MenuOptions.styles.js +8 -4
- package/lib/components/Modal/ModalLayout.js +4 -4
- package/lib/components/Modal/ModalLayout.style.js +9 -9
- package/lib/components/ModalBlockedUser/ModalBlockedUser.js +47 -0
- package/lib/components/ModalBlockedUser/ModalBlockedUser.styles.js +14 -0
- package/lib/components/ModalBlockedUser/index.js +2 -0
- package/lib/components/ModalEditUserPosition/ModalEditUserPosition.js +14 -52
- package/lib/components/ModalEditUserPosition/ModalEditUserPosition.styles.js +37 -0
- package/lib/components/ModalEditUserPosition/UserEditPositionRow.js +55 -168
- package/lib/components/ModalEditUserPosition/UserEditPositionRow.styles.js +56 -1
- package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.js +109 -25
- package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.styles.js +9 -4
- package/lib/components/ModalOptionsWithSearch/SearchInput.js +5 -2
- package/lib/components/Pagination/Pagination.styles.js +5 -1
- package/lib/components/Pagination/PaginationView.js +83 -0
- package/lib/components/Search/InputSearch.js +3 -2
- package/lib/components/Search/Search.js +18 -15
- package/lib/components/Table/Header/HeaderTable.js +29 -41
- package/lib/components/Table/Header/HeaderTable.styles.js +15 -0
- package/lib/components/Table/Row/Row.js +59 -27
- package/lib/components/Table/Row/Row.styles.js +40 -18
- package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.js +8 -5
- package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.styles.js +7 -6
- package/lib/components/Table/TeamRow/AddUsers/AddUsers.js +92 -61
- package/lib/components/Table/TeamRow/AddUsers/AddUsers.styles.js +8 -3
- package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.js +8 -5
- package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.styles.js +7 -6
- package/lib/components/Table/TeamRow/TeamRow.js +40 -13
- package/lib/components/Table/TeamRow/TeamRow.styles.js +7 -0
- package/lib/components/Table/TeamRow/UsersRow/UsersRow.js +10 -6
- package/lib/components/Table/TeamRow/UsersRow/UsersRow.styles.js +5 -4
- package/lib/components/TeamDetailsModal/MembersSelect.js +38 -35
- package/lib/components/TeamDetailsModal/TeamDetailsModal.js +21 -17
- package/lib/components/TeamDetailsModal/TeamDetailsModal.styles.js +30 -21
- package/lib/components/UserRow/UserRow.js +17 -70
- package/lib/components/UserRow/UserRow.styles.js +33 -4
- package/lib/container/Body/BodyContainer.js +52 -33
- package/lib/container/Body/BodyContainerViewTeams.js +37 -18
- package/lib/container/Filters/FiltersContainer.js +99 -34
- package/lib/container/Filters/FiltersTeamsContainer.js +1 -5
- package/lib/container/MainView/MainTeamsView.js +24 -22
- package/lib/container/MainView/MainUsersView.js +46 -80
- package/lib/container/MainView/MainUsersView.styles.js +32 -0
- package/lib/container/MainView/MainView.js +2 -4
- package/lib/container/Pagination/PaginationContainer.js +10 -123
- package/lib/container/Pagination/PaginationTeamsContainer.js +32 -0
- package/lib/container/RouterComponent/RouterComponent.js +24 -45
- package/lib/container/RouterComponent/RouterComponent.stories.js +1 -3
- package/lib/container/RouterComponent/RouterComponent.styles.js +26 -0
- package/lib/container/TableContainer/TableContainer.js +35 -11
- package/lib/context/TeamsContext.js +8 -2
- package/lib/context/UsersContext.js +45 -22
- package/lib/hooks/useAbortController.js +15 -11
- package/lib/hooks/useCreateTeams.js +8 -4
- package/lib/hooks/useDebouncedCallback.js +27 -0
- package/lib/hooks/useDeleteTeam.js +5 -1
- package/lib/hooks/useGetTeams.js +45 -19
- package/lib/hooks/useGetUserPositionFilter.js +5 -2
- package/lib/hooks/useGetUsers.js +38 -17
- package/lib/hooks/useGetUsersForFilter.js +1 -2
- package/lib/hooks/useGraphAdapter.js +19 -8
- package/lib/hooks/useLoadMoreGuard.js +16 -0
- package/lib/hooks/useResize.js +9 -4
- package/lib/lang/i18nextForWeb.js +2 -2
- package/lib/lang/translation/br.json +63 -13
- package/lib/lang/translation/en.json +64 -13
- package/lib/lang/translation/es.json +64 -13
- package/lib/lang/translation/fr.json +66 -15
- package/lib/query/getTeams.js +2 -2
- package/lib/query/getUsers.js +2 -2
- package/lib/types/global.d.js +1 -1
- package/lib/types/userType.d.js +1 -1
- package/lib/utils/formatNumber.js +55 -0
- package/lib/utils/tabUrl.js +20 -0
- package/package.json +2 -2
- package/readme.md +223 -52
- package/lib/components/ModalBloquedUser/ModalBloquedUser.js +0 -70
- package/lib/components/ModalBloquedUser/index.js +0 -2
- package/lib/components/Pagination/Pagination.js +0 -78
- package/lib/components/ShowMore/ShowMore.js +0 -12
- package/lib/components/ShowMore/ShowMore.style.js +0 -10
- package/lib/components/ShowMore/index.js +0 -2
- package/lib/components/Table/Content/ContentTable.js +0 -7
- package/lib/components/Table/Content/index.js +0 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import pallete from '@projectcor/theme/lib/base/colors';
|
|
4
6
|
import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
|
|
5
7
|
import { CUSelect } from '@projectcor/selector/lib/components/CUSelect';
|
|
6
8
|
import { SearchComponent } from '../Filters/SearchComponent/SearchComponent';
|
|
7
9
|
import { useGetUsers } from '../../hooks/useGetUsers';
|
|
8
|
-
import {
|
|
10
|
+
import { useDebouncedCallback } from '../../hooks/useDebouncedCallback';
|
|
9
11
|
import { SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperSelectIcon, SCMemberItemContent, SCMemberCheckbox, SCMemberSearchWrapper } from './TeamDetailsModal.styles';
|
|
10
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
13
|
export var MembersSelect = function MembersSelect(_ref) {
|
|
@@ -15,6 +17,8 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
15
17
|
_useState2 = _slicedToArray(_useState, 2),
|
|
16
18
|
showSelectMembers = _useState2[0],
|
|
17
19
|
setShowSelectMembers = _useState2[1];
|
|
20
|
+
var _useTranslation = useTranslation('teams'),
|
|
21
|
+
t = _useTranslation.t;
|
|
18
22
|
var _useGetUsers = useGetUsers(),
|
|
19
23
|
handleGetUsers = _useGetUsers.handleGetUsers,
|
|
20
24
|
users = _useGetUsers.users,
|
|
@@ -25,13 +29,13 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
25
29
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
26
30
|
searchValue = _useState4[0],
|
|
27
31
|
setSearchValue = _useState4[1];
|
|
28
|
-
var debouncedSearchValue = useDebounce(searchValue, 300);
|
|
29
32
|
var _useState5 = useState([]),
|
|
30
33
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
31
34
|
accumulatedUsers = _useState6[0],
|
|
32
35
|
setAccumulatedUsers = _useState6[1];
|
|
33
36
|
var scrollContainerRef = useRef(null);
|
|
34
37
|
var isLoadingMoreRef = useRef(false);
|
|
38
|
+
var currentSearchRef = useRef('');
|
|
35
39
|
var handleSelectMember = function handleSelectMember(member) {
|
|
36
40
|
var alredySelected = value.some(function (m) {
|
|
37
41
|
return m.id === member.id;
|
|
@@ -47,32 +51,36 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
47
51
|
}]));
|
|
48
52
|
}
|
|
49
53
|
};
|
|
50
|
-
var
|
|
54
|
+
var fetchUsers = useCallback(function (searchInput) {
|
|
55
|
+
currentSearchRef.current = searchInput;
|
|
56
|
+
setAccumulatedUsers([]);
|
|
57
|
+
isLoadingMoreRef.current = false;
|
|
58
|
+
handleGetUsers({
|
|
59
|
+
page: 1,
|
|
60
|
+
searchInput: searchInput
|
|
61
|
+
});
|
|
62
|
+
}, [handleGetUsers]);
|
|
63
|
+
var debouncedFetchUsers = useDebouncedCallback(fetchUsers, 300);
|
|
64
|
+
var handleSearch = useCallback(function (e) {
|
|
51
65
|
setSearchValue(e.target.value);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// Resetear usuarios acumulados cuando cambia el search o se abre el selector
|
|
66
|
+
debouncedFetchUsers(e.target.value);
|
|
67
|
+
}, [debouncedFetchUsers]);
|
|
55
68
|
useEffect(function () {
|
|
56
|
-
if (showSelectMembers) {
|
|
69
|
+
if (!showSelectMembers) {
|
|
70
|
+
setSearchValue('');
|
|
57
71
|
setAccumulatedUsers([]);
|
|
58
|
-
isLoadingMoreRef.current = false;
|
|
59
|
-
handleGetUsers({
|
|
60
|
-
page: 1,
|
|
61
|
-
searchInput: debouncedSearchValue
|
|
62
|
-
});
|
|
63
72
|
}
|
|
64
|
-
}, [
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
}, [showSelectMembers]);
|
|
74
|
+
useEffect(function () {
|
|
75
|
+
if (!showSelectMembers) return;
|
|
76
|
+
fetchUsers('');
|
|
77
|
+
}, [showSelectMembers, fetchUsers]);
|
|
67
78
|
useEffect(function () {
|
|
68
79
|
if (users.length > 0 && showSelectMembers) {
|
|
69
80
|
if (currentPage === 1) {
|
|
70
|
-
// Si es la primera página, reemplazar
|
|
71
81
|
setAccumulatedUsers(users);
|
|
72
82
|
} else {
|
|
73
|
-
// Si es una página posterior, agregar a los existentes
|
|
74
83
|
setAccumulatedUsers(function (prev) {
|
|
75
|
-
// Evitar duplicados
|
|
76
84
|
var existingIds = new Set(prev.map(function (u) {
|
|
77
85
|
return u.id;
|
|
78
86
|
}));
|
|
@@ -91,16 +99,15 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
91
99
|
var scrollTop = container.scrollTop,
|
|
92
100
|
scrollHeight = container.scrollHeight,
|
|
93
101
|
clientHeight = container.clientHeight;
|
|
94
|
-
var isNearBottom = scrollTop + clientHeight >= scrollHeight - 10;
|
|
95
|
-
|
|
102
|
+
var isNearBottom = scrollTop + clientHeight >= scrollHeight - 10;
|
|
96
103
|
if (isNearBottom && currentPage < totalPages) {
|
|
97
104
|
isLoadingMoreRef.current = true;
|
|
98
105
|
handleGetUsers({
|
|
99
106
|
page: currentPage + 1,
|
|
100
|
-
searchInput:
|
|
107
|
+
searchInput: currentSearchRef.current
|
|
101
108
|
});
|
|
102
109
|
}
|
|
103
|
-
}, [currentPage, totalPages, loading, handleGetUsers
|
|
110
|
+
}, [currentPage, totalPages, loading, handleGetUsers]);
|
|
104
111
|
useEffect(function () {
|
|
105
112
|
var container = scrollContainerRef.current;
|
|
106
113
|
if (!container || !showSelectMembers) return undefined;
|
|
@@ -110,21 +117,19 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
110
117
|
};
|
|
111
118
|
}, [handleScroll, showSelectMembers]);
|
|
112
119
|
var handleClickActionSelect = function handleClickActionSelect() {
|
|
113
|
-
setShowSelectMembers(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
setAccumulatedUsers([]);
|
|
117
|
-
}
|
|
120
|
+
setShowSelectMembers(function (prev) {
|
|
121
|
+
return !prev;
|
|
122
|
+
});
|
|
118
123
|
};
|
|
119
124
|
return /*#__PURE__*/_jsxs(CUSelect, {
|
|
120
|
-
title:
|
|
121
|
-
placeholder:
|
|
125
|
+
title: t('modal.addMembersTitle'),
|
|
126
|
+
placeholder: t('modal.addMembersPlaceholder'),
|
|
122
127
|
endIcon: /*#__PURE__*/_jsx(SCWrapperSelectIcon, {
|
|
123
128
|
isOpen: showSelectMembers,
|
|
124
129
|
children: /*#__PURE__*/_jsx(ChevronDown, {
|
|
125
130
|
width: "16px",
|
|
126
131
|
height: "16px",
|
|
127
|
-
color:
|
|
132
|
+
color: pallete.colors.dark
|
|
128
133
|
})
|
|
129
134
|
}),
|
|
130
135
|
value: value.map(function (member) {
|
|
@@ -140,7 +145,7 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
140
145
|
ref: scrollContainerRef,
|
|
141
146
|
children: [/*#__PURE__*/_jsx(SCMemberSearchWrapper, {
|
|
142
147
|
children: /*#__PURE__*/_jsx(SearchComponent, {
|
|
143
|
-
placeholder:
|
|
148
|
+
placeholder: t('modal.searchMemberPlaceholder'),
|
|
144
149
|
onChange: handleSearch,
|
|
145
150
|
value: searchValue
|
|
146
151
|
})
|
|
@@ -154,9 +159,7 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
154
159
|
e.stopPropagation();
|
|
155
160
|
handleSelectMember(member);
|
|
156
161
|
},
|
|
157
|
-
|
|
158
|
-
backgroundColor: isSelected ? '#edfaff' : 'transparent'
|
|
159
|
-
},
|
|
162
|
+
isSelected: isSelected,
|
|
160
163
|
children: /*#__PURE__*/_jsxs(SCMemberItemContent, {
|
|
161
164
|
children: [/*#__PURE__*/_jsx("span", {
|
|
162
165
|
children: memberName
|
|
@@ -175,4 +178,4 @@ export var MembersSelect = function MembersSelect(_ref) {
|
|
|
175
178
|
})]
|
|
176
179
|
});
|
|
177
180
|
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwiQ2hldnJvbkRvd24iLCJDVVNlbGVjdCIsIlNlYXJjaENvbXBvbmVudCIsInVzZUdldFVzZXJzIiwidXNlRGVib3VuY2UiLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwiU0NNZW1iZXJJdGVtQ29udGVudCIsIlNDTWVtYmVyQ2hlY2tib3giLCJTQ01lbWJlclNlYXJjaFdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWVtYmVyc1NlbGVjdCIsIl9yZWYiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1NlbGVjdE1lbWJlcnMiLCJzZXRTaG93U2VsZWN0TWVtYmVycyIsIl91c2VHZXRVc2VycyIsImhhbmRsZUdldFVzZXJzIiwidXNlcnMiLCJjdXJyZW50UGFnZSIsInRvdGFsUGFnZXMiLCJsb2FkaW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWFyY2hWYWx1ZSIsInNldFNlYXJjaFZhbHVlIiwiZGVib3VuY2VkU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImFjY3VtdWxhdGVkVXNlcnMiLCJzZXRBY2N1bXVsYXRlZFVzZXJzIiwic2Nyb2xsQ29udGFpbmVyUmVmIiwiaXNMb2FkaW5nTW9yZVJlZiIsImhhbmRsZVNlbGVjdE1lbWJlciIsIm1lbWJlciIsImFscmVkeVNlbGVjdGVkIiwic29tZSIsIm0iLCJpZCIsImZpbHRlciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZVNlYXJjaCIsImUiLCJ0YXJnZXQiLCJjdXJyZW50IiwicGFnZSIsInNlYXJjaElucHV0IiwibGVuZ3RoIiwicHJldiIsImV4aXN0aW5nSWRzIiwiU2V0IiwibWFwIiwidSIsIm5ld1VzZXJzIiwiaGFzIiwiaGFuZGxlU2Nyb2xsIiwiY29udGFpbmVyIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNOZWFyQm90dG9tIiwidW5kZWZpbmVkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDbGlja0FjdGlvblNlbGVjdCIsInRpdGxlIiwicGxhY2Vob2xkZXIiLCJlbmRJY29uIiwiaXNPcGVuIiwiY2hpbGRyZW4iLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiam9pbiIsIm9wZW4iLCJoYW5kbGVDbGlja0FjdGlvbiIsIm9uQ2xpY2siLCJyZWYiLCJtZW1iZXJOYW1lIiwiaXNTZWxlY3RlZCIsInN0b3BQcm9wYWdhdGlvbiIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwidHlwZSIsImNoZWNrZWQiLCJyZWFkT25seSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RlYW1EZXRhaWxzTW9kYWwvTWVtYmVyc1NlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIENoYW5nZUV2ZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyBDVVNlbGVjdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3NlbGVjdG9yL2xpYi9jb21wb25lbnRzL0NVU2VsZWN0J1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vRmlsdGVycy9TZWFyY2hDb21wb25lbnQvU2VhcmNoQ29tcG9uZW50J1xuaW1wb3J0IHsgdXNlR2V0VXNlcnMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRVc2VycydcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQge1xuICBTQ0JhY2tkcm9wSW5wdXRTZWxlY3QsXG4gIFNDQ1VJdGVtc0xpc3QsXG4gIFNDQ1VTZWxlY3RJdGVtLFxuICBTQ1dyYXBwZXJTZWxlY3RJY29uLFxuICBTQ01lbWJlckl0ZW1Db250ZW50LFxuICBTQ01lbWJlckNoZWNrYm94LFxuICBTQ01lbWJlclNlYXJjaFdyYXBwZXIsXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5pbXBvcnQgeyBUZWFtVXNlciB9IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC50eXBlcydcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi90eXBlcy91c2VyVHlwZSdcblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJTZWxlY3Rpb24ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgTWVtYmVyc1NlbGVjdFByb3BzIHtcbiAgdmFsdWU6IE1lbWJlclNlbGVjdGlvbltdXG4gIG9uQ2hhbmdlOiAoaW5wdXQ6IHN0cmluZywgdmFsdWU6IE1lbWJlclNlbGVjdGlvbltdKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBNZW1iZXJzU2VsZWN0ID0gKHsgdmFsdWUsIG9uQ2hhbmdlIH06IE1lbWJlcnNTZWxlY3RQcm9wcykgPT4ge1xuICBjb25zdCBbc2hvd1NlbGVjdE1lbWJlcnMsIHNldFNob3dTZWxlY3RNZW1iZXJzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCB1c2VycywgY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcgfSA9IHVzZUdldFVzZXJzKClcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVmFsdWUgPSB1c2VEZWJvdW5jZShzZWFyY2hWYWx1ZSwgMzAwKVxuICBjb25zdCBbYWNjdW11bGF0ZWRVc2Vycywgc2V0QWNjdW11bGF0ZWRVc2Vyc10gPSB1c2VTdGF0ZTxVc2VyW10+KFtdKVxuICBjb25zdCBzY3JvbGxDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0TWVtYmVyID0gKG1lbWJlcjogVXNlciB8IFRlYW1Vc2VyKSA9PiB7XG4gICAgY29uc3QgYWxyZWR5U2VsZWN0ZWQgPSB2YWx1ZS5zb21lKG0gPT4gbS5pZCA9PT0gbWVtYmVyLmlkKVxuICAgIGlmIChhbHJlZHlTZWxlY3RlZCkge1xuICAgICAgb25DaGFuZ2UoXG4gICAgICAgICdtZW1iZXJzJyxcbiAgICAgICAgdmFsdWUuZmlsdGVyKG0gPT4gbS5pZCAhPT0gbWVtYmVyLmlkKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkNoYW5nZSgnbWVtYmVycycsIFsuLi52YWx1ZSwgeyBpZDogbWVtYmVyLmlkLCBuYW1lOiBgJHttZW1iZXIuZmlyc3ROYW1lfSAke21lbWJlci5sYXN0TmFtZX1gIH1dKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKGUudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgLy8gUmVzZXRlYXIgdXN1YXJpb3MgYWN1bXVsYWRvcyBjdWFuZG8gY2FtYmlhIGVsIHNlYXJjaCBvIHNlIGFicmUgZWwgc2VsZWN0b3JcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2hvd1NlbGVjdE1lbWJlcnMpIHtcbiAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnMoW10pXG4gICAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaGFuZGxlR2V0VXNlcnMoeyBwYWdlOiAxLCBzZWFyY2hJbnB1dDogZGVib3VuY2VkU2VhcmNoVmFsdWUgfSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZSwgc2hvd1NlbGVjdE1lbWJlcnMsIGhhbmRsZUdldFVzZXJzXSlcblxuICAvLyBBY3VtdWxhciB1c3VhcmlvcyBjdWFuZG8gc2UgcmVjaWJlbiBudWV2b3MgZGF0b3NcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlcnMubGVuZ3RoID4gMCAmJiBzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIC8vIFNpIGVzIGxhIHByaW1lcmEgcMOhZ2luYSwgcmVlbXBsYXphclxuICAgICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKHVzZXJzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgZXMgdW5hIHDDoWdpbmEgcG9zdGVyaW9yLCBhZ3JlZ2FyIGEgbG9zIGV4aXN0ZW50ZXNcbiAgICAgICAgc2V0QWNjdW11bGF0ZWRVc2VycyhwcmV2ID0+IHtcbiAgICAgICAgICAvLyBFdml0YXIgZHVwbGljYWRvc1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcCh1ID0+IHUuaWQpKVxuICAgICAgICAgIGNvbnN0IG5ld1VzZXJzID0gdXNlcnMuZmlsdGVyKHUgPT4gIWV4aXN0aW5nSWRzLmhhcyh1LmlkKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLm5ld1VzZXJzXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gIH0sIFt1c2VycywgY3VycmVudFBhZ2UsIHNob3dTZWxlY3RNZW1iZXJzXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCBsb2FkaW5nIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzTmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMCAvLyAxMHB4IGRlIG1hcmdlblxuXG4gICAgaWYgKGlzTmVhckJvdHRvbSAmJiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogY3VycmVudFBhZ2UgKyAxLCBzZWFyY2hJbnB1dDogZGVib3VuY2VkU2VhcmNoVmFsdWUgfSlcbiAgICB9XG4gIH0sIFtjdXJyZW50UGFnZSwgdG90YWxQYWdlcywgbG9hZGluZywgaGFuZGxlR2V0VXNlcnMsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHNjcm9sbENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIXNob3dTZWxlY3RNZW1iZXJzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhbmRsZVNjcm9sbCwgc2hvd1NlbGVjdE1lbWJlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFNob3dTZWxlY3RNZW1iZXJzKCFzaG93U2VsZWN0TWVtYmVycylcbiAgICBpZiAoIXNob3dTZWxlY3RNZW1iZXJzKSB7XG4gICAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnMoW10pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q1VTZWxlY3RcbiAgICAgIHRpdGxlPVwiQWdyZWdhciBtaWVtYnJvcyAqXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWNjaW9uYXIgbWllbWJyb3NcIlxuICAgICAgZW5kSWNvbj17XG4gICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9PlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCIjMjAyMDFGXCIgLz5cbiAgICAgICAgPC9TQ1dyYXBwZXJTZWxlY3RJY29uPlxuICAgICAgfVxuICAgICAgdmFsdWU9e3ZhbHVlLm1hcChtZW1iZXIgPT4gbWVtYmVyLm5hbWUpLmpvaW4oJyAtICcpfVxuICAgICAgb3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9XG4gICAgICBoYW5kbGVDbGlja0FjdGlvbj17aGFuZGxlQ2xpY2tBY3Rpb25TZWxlY3R9XG4gICAgPlxuICAgICAgPFNDQmFja2Ryb3BJbnB1dFNlbGVjdCBvbkNsaWNrPXsoKSA9PiBzZXRTaG93U2VsZWN0TWVtYmVycyhmYWxzZSl9IC8+XG4gICAgICA8U0NDVUl0ZW1zTGlzdCByZWY9e3Njcm9sbENvbnRhaW5lclJlZn0+XG4gICAgICAgIDxTQ01lbWJlclNlYXJjaFdyYXBwZXI+XG4gICAgICAgICAgPFNlYXJjaENvbXBvbmVudCBwbGFjZWhvbGRlcj1cIkJ1c2NhciBtaWVtYnJvXCIgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH0gdmFsdWU9e3NlYXJjaFZhbHVlfSAvPlxuICAgICAgICA8L1NDTWVtYmVyU2VhcmNoV3JhcHBlcj5cbiAgICAgICAge2FjY3VtdWxhdGVkVXNlcnMubWFwKG1lbWJlciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWBcbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWU/LnNvbWUobSA9PiBtLmlkID09PSBtZW1iZXIuaWQpIHx8IGZhbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e21lbWJlci5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE1lbWJlcihtZW1iZXIpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogaXNTZWxlY3RlZCA/ICcjZWRmYWZmJyA6ICd0cmFuc3BhcmVudCcgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNDTWVtYmVySXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHNwYW4+e21lbWJlck5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxTQ01lbWJlckNoZWNrYm94XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RNZW1iZXIobWVtYmVyKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NDTWVtYmVySXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ1VTZWxlY3RJdGVtPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8L1NDQ1VJdGVtc0xpc3Q+XG4gICAgPC9DVVNlbGVjdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFFBQVEsRUFBZUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQzdFLFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUN2RSxTQUFTQyxlQUFlLFFBQVEsNENBQTRDO0FBQzVFLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxTQUNFQyxxQkFBcUIsRUFDckJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWNsQyxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsSUFBQSxFQUFnRDtFQUFBLElBQTFDQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtFQUM3QyxJQUFBQyxTQUFBLEdBQWtEeEIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBeUIsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBMURHLGlCQUFpQixHQUFBRixVQUFBO0lBQUVHLG9CQUFvQixHQUFBSCxVQUFBO0VBQzlDLElBQUFJLFlBQUEsR0FBb0V0QixXQUFXLENBQUMsQ0FBQztJQUF6RXVCLGNBQWMsR0FBQUQsWUFBQSxDQUFkQyxjQUFjO0lBQUVDLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0lBQUVDLFdBQVcsR0FBQUgsWUFBQSxDQUFYRyxXQUFXO0lBQUVDLFVBQVUsR0FBQUosWUFBQSxDQUFWSSxVQUFVO0lBQUVDLE9BQU8sR0FBQUwsWUFBQSxD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
|
|
181
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQ2hldnJvbkRvd24iLCJDVVNlbGVjdCIsIlNlYXJjaENvbXBvbmVudCIsInVzZUdldFVzZXJzIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwiU0NNZW1iZXJJdGVtQ29udGVudCIsIlNDTWVtYmVyQ2hlY2tib3giLCJTQ01lbWJlclNlYXJjaFdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWVtYmVyc1NlbGVjdCIsIl9yZWYiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1NlbGVjdE1lbWJlcnMiLCJzZXRTaG93U2VsZWN0TWVtYmVycyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlR2V0VXNlcnMiLCJoYW5kbGVHZXRVc2VycyIsInVzZXJzIiwiY3VycmVudFBhZ2UiLCJ0b3RhbFBhZ2VzIiwibG9hZGluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VhcmNoVmFsdWUiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYWNjdW11bGF0ZWRVc2VycyIsInNldEFjY3VtdWxhdGVkVXNlcnMiLCJzY3JvbGxDb250YWluZXJSZWYiLCJpc0xvYWRpbmdNb3JlUmVmIiwiY3VycmVudFNlYXJjaFJlZiIsImhhbmRsZVNlbGVjdE1lbWJlciIsIm1lbWJlciIsImFscmVkeVNlbGVjdGVkIiwic29tZSIsIm0iLCJpZCIsImZpbHRlciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImZldGNoVXNlcnMiLCJzZWFyY2hJbnB1dCIsImN1cnJlbnQiLCJwYWdlIiwiZGVib3VuY2VkRmV0Y2hVc2VycyIsImhhbmRsZVNlYXJjaCIsImUiLCJ0YXJnZXQiLCJsZW5ndGgiLCJwcmV2IiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJtYXAiLCJ1IiwibmV3VXNlcnMiLCJoYXMiLCJoYW5kbGVTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc05lYXJCb3R0b20iLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0IiwidGl0bGUiLCJwbGFjZWhvbGRlciIsImVuZEljb24iLCJpc09wZW4iLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJjb2xvcnMiLCJkYXJrIiwiam9pbiIsIm9wZW4iLCJoYW5kbGVDbGlja0FjdGlvbiIsIm9uQ2xpY2siLCJyZWYiLCJtZW1iZXJOYW1lIiwiaXNTZWxlY3RlZCIsInN0b3BQcm9wYWdhdGlvbiIsInR5cGUiLCJjaGVja2VkIiwicmVhZE9ubHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsL01lbWJlcnNTZWxlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCBDaGFuZ2VFdmVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgcGFsbGV0ZSBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ1VTZWxlY3QgfSBmcm9tICdAcHJvamVjdGNvci9zZWxlY3Rvci9saWIvY29tcG9uZW50cy9DVVNlbGVjdCdcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL0ZpbHRlcnMvU2VhcmNoQ29tcG9uZW50L1NlYXJjaENvbXBvbmVudCdcbmltcG9ydCB7IHVzZUdldFVzZXJzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlR2V0VXNlcnMnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZWRDYWxsYmFjayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJ1xuaW1wb3J0IHtcbiAgU0NCYWNrZHJvcElucHV0U2VsZWN0LFxuICBTQ0NVSXRlbXNMaXN0LFxuICBTQ0NVU2VsZWN0SXRlbSxcbiAgU0NXcmFwcGVyU2VsZWN0SWNvbixcbiAgU0NNZW1iZXJJdGVtQ29udGVudCxcbiAgU0NNZW1iZXJDaGVja2JveCxcbiAgU0NNZW1iZXJTZWFyY2hXcmFwcGVyLFxufSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgVGVhbVVzZXIgfSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwudHlwZXMnXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXNlclR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU2VsZWN0aW9uIHtcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIE1lbWJlcnNTZWxlY3RQcm9wcyB7XG4gIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXVxuICBvbkNoYW5nZTogKGlucHV0OiBzdHJpbmcsIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXSkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgTWVtYmVyc1NlbGVjdCA9ICh7IHZhbHVlLCBvbkNoYW5nZSB9OiBNZW1iZXJzU2VsZWN0UHJvcHMpID0+IHtcbiAgY29uc3QgW3Nob3dTZWxlY3RNZW1iZXJzLCBzZXRTaG93U2VsZWN0TWVtYmVyc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCB1c2VycywgY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcgfSA9IHVzZUdldFVzZXJzKClcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2FjY3VtdWxhdGVkVXNlcnMsIHNldEFjY3VtdWxhdGVkVXNlcnNdID0gdXNlU3RhdGU8VXNlcltdPihbXSlcbiAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBjdXJyZW50U2VhcmNoUmVmID0gdXNlUmVmKCcnKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE1lbWJlciA9IChtZW1iZXI6IFVzZXIgfCBUZWFtVXNlcikgPT4ge1xuICAgIGNvbnN0IGFscmVkeVNlbGVjdGVkID0gdmFsdWUuc29tZShtID0+IG0uaWQgPT09IG1lbWJlci5pZClcbiAgICBpZiAoYWxyZWR5U2VsZWN0ZWQpIHtcbiAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAnbWVtYmVycycsXG4gICAgICAgIHZhbHVlLmZpbHRlcihtID0+IG0uaWQgIT09IG1lbWJlci5pZClcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb25DaGFuZ2UoJ21lbWJlcnMnLCBbLi4udmFsdWUsIHsgaWQ6IG1lbWJlci5pZCwgbmFtZTogYCR7bWVtYmVyLmZpcnN0TmFtZX0gJHttZW1iZXIubGFzdE5hbWV9YCB9XSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBmZXRjaFVzZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlYXJjaElucHV0OiBzdHJpbmcpID0+IHtcbiAgICAgIGN1cnJlbnRTZWFyY2hSZWYuY3VycmVudCA9IHNlYXJjaElucHV0XG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogMSwgc2VhcmNoSW5wdXQgfSlcbiAgICB9LFxuICAgIFtoYW5kbGVHZXRVc2Vyc11cbiAgKVxuXG4gIGNvbnN0IGRlYm91bmNlZEZldGNoVXNlcnMgPSB1c2VEZWJvdW5jZWRDYWxsYmFjayhmZXRjaFVzZXJzLCAzMDApXG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZXRTZWFyY2hWYWx1ZShlLnRhcmdldC52YWx1ZSlcbiAgICAgIGRlYm91bmNlZEZldGNoVXNlcnMoZS50YXJnZXQudmFsdWUpXG4gICAgfSxcbiAgICBbZGVib3VuY2VkRmV0Y2hVc2Vyc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgc2V0U2VhcmNoVmFsdWUoJycpXG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgIH1cbiAgfSwgW3Nob3dTZWxlY3RNZW1iZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd1NlbGVjdE1lbWJlcnMpIHJldHVyblxuICAgIGZldGNoVXNlcnMoJycpXG4gIH0sIFtzaG93U2VsZWN0TWVtYmVycywgZmV0Y2hVc2Vyc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlcnMubGVuZ3RoID4gMCAmJiBzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnModXNlcnMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcCh1ID0+IHUuaWQpKVxuICAgICAgICAgIGNvbnN0IG5ld1VzZXJzID0gdXNlcnMuZmlsdGVyKHUgPT4gIWV4aXN0aW5nSWRzLmhhcyh1LmlkKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLm5ld1VzZXJzXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gIH0sIFt1c2VycywgY3VycmVudFBhZ2UsIHNob3dTZWxlY3RNZW1iZXJzXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCBsb2FkaW5nIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzTmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgaWYgKGlzTmVhckJvdHRvbSAmJiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogY3VycmVudFBhZ2UgKyAxLCBzZWFyY2hJbnB1dDogY3VycmVudFNlYXJjaFJlZi5jdXJyZW50IH0pXG4gICAgfVxuICB9LCBbY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcsIGhhbmRsZUdldFVzZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHNjcm9sbENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIXNob3dTZWxlY3RNZW1iZXJzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhbmRsZVNjcm9sbCwgc2hvd1NlbGVjdE1lbWJlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFNob3dTZWxlY3RNZW1iZXJzKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDVVNlbGVjdFxuICAgICAgdGl0bGU9e3QoJ21vZGFsLmFkZE1lbWJlcnNUaXRsZScpfVxuICAgICAgcGxhY2Vob2xkZXI9e3QoJ21vZGFsLmFkZE1lbWJlcnNQbGFjZWhvbGRlcicpfVxuICAgICAgZW5kSWNvbj17XG4gICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9PlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9e3BhbGxldGUuY29sb3JzLmRhcmt9IC8+XG4gICAgICAgIDwvU0NXcmFwcGVyU2VsZWN0SWNvbj5cbiAgICAgIH1cbiAgICAgIHZhbHVlPXt2YWx1ZS5tYXAobWVtYmVyID0+IG1lbWJlci5uYW1lKS5qb2luKCcgLSAnKX1cbiAgICAgIG9wZW49e3Nob3dTZWxlY3RNZW1iZXJzfVxuICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249e2hhbmRsZUNsaWNrQWN0aW9uU2VsZWN0fVxuICAgID5cbiAgICAgIDxTQ0JhY2tkcm9wSW5wdXRTZWxlY3Qgb25DbGljaz17KCkgPT4gc2V0U2hvd1NlbGVjdE1lbWJlcnMoZmFsc2UpfSAvPlxuICAgICAgPFNDQ1VJdGVtc0xpc3QgcmVmPXtzY3JvbGxDb250YWluZXJSZWZ9PlxuICAgICAgICA8U0NNZW1iZXJTZWFyY2hXcmFwcGVyPlxuICAgICAgICAgIDxTZWFyY2hDb21wb25lbnRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCdtb2RhbC5zZWFyY2hNZW1iZXJQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDTWVtYmVyU2VhcmNoV3JhcHBlcj5cbiAgICAgICAge2FjY3VtdWxhdGVkVXNlcnMubWFwKG1lbWJlciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWBcbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWU/LnNvbWUobSA9PiBtLmlkID09PSBtZW1iZXIuaWQpIHx8IGZhbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e21lbWJlci5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE1lbWJlcihtZW1iZXIpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgICAgIDxzcGFuPnttZW1iZXJOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8U0NNZW1iZXJDaGVja2JveFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0TWVtYmVyKG1lbWJlcilcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgPC9TQ0NVU2VsZWN0SXRlbT5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC9TQ0NVSXRlbXNMaXN0PlxuICAgIDwvQ1VTZWxlY3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxRQUFRLEVBQWVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUM3RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sbUNBQW1DO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUN2RSxTQUFTQyxlQUFlLFFBQVEsNENBQTRDO0FBQzVFLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0Msb0JBQW9CLFFBQVEsa0NBQWtDO0FBQ3ZFLFNBQ0VDLHFCQUFxQixFQUNyQkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsbUJBQW1CLEVBQ25CQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixRQUNoQiwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBY2xDLE9BQU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBQyxJQUFBLEVBQWdEO0VBQUEsSUFBMUNDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQUVDLFFBQVEsR0FBQUYsSUFBQSxDQUFSRSxRQUFRO0VBQzdDLElBQUFDLFNBQUEsR0FBa0QxQixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUEyQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUExREcsaUJBQWlCLEdBQUFGLFVBQUE7SUFBRUcsb0JBQW9CLEdBQUFILFVBQUE7RUFDOUMsSUFBQUksZUFBQSxHQUFjM0IsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUE3QjRCLENBQUMsR0FBQUQsZUFBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsWUFBQSxHQUFvRXhCLFdBQVcsQ0FBQyxDQUFDO0lBQXpFeUIsY0FBYyxHQUFBRCxZQUFBLENBQWRDLGNBQWM7SUFBRUMsS0FBSyxHQUFBRixZQUFBLENBQUxFLEtBQUs7SUFBRUMsV0FBVyxHQUFBSCxZQUFBLENBQVhHLFdBQVc7SUFBRUMsVUFBVSxHQUFBSixZQUFBLENBQVZJLFVBQVU7SUFBRUMsT0FBTyxHQUFBTCxZQUFBLENBQVBLLE9BQU87RUFDL0QsSUFBQUMsVUFBQSxHQUFzQ3ZDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXdDLFVBQUEsR0FBQVosY0FBQSxDQUFBVyxVQUFBO0lBQTNDRSxXQUFXLEdBQUFELFVBQUE7SUFBRUUsY0FBYyxHQUFBRixVQUFBO0VBQ2xDLElBQUFHLFVBQUEsR0FBZ0QzQyxRQUFRLENBQVMsRUFBRSxDQUFDO0lBQUE0QyxVQUFBLEdBQUFoQixjQUFBLENBQUFlLFVBQUE7SUFBN0RFLGdCQUFnQixHQUFBRCxVQUFBO0lBQUVFLG1CQUFtQixHQUFBRixVQUFBO0VBQzVDLElBQU1HLGtCQUFrQixHQUFHN0MsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDdkQsSUFBTThDLGdCQUFnQixHQUFHOUMsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUN0QyxJQUFNK0MsZ0JBQWdCLEdBQUcvQyxNQUFNLENBQUMsRUFBRSxDQUFDO0VBRW5DLElBQU1nRCxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxNQUF1QixFQUFLO0lBQ3RELElBQU1DLGNBQWMsR0FBRzVCLEtBQUssQ0FBQzZCLElBQUksQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDQyxFQUFFLEtBQUtKLE1BQU0sQ0FBQ0ksRUFBRTtJQUFBLEVBQUM7SUFDMUQsSUFBSUgsY0FBYyxFQUFFO01BQ2xCM0IsUUFBUSxDQUNOLFNBQVMsRUFDVEQsS0FBSyxDQUFDZ0MsTUFBTSxDQUFDLFVBQUFGLENBQUM7UUFBQSxPQUFJQSxDQUFDLENBQUNDLEVBQUUsS0FBS0osTUFBTSxDQUFDSSxFQUFFO01BQUEsRUFDdEMsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMOUIsUUFBUSxDQUFDLFNBQVMsS0FBQWdDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBTWxDLEtBQUssSUFBRTtRQUFFK0IsRUFBRSxFQUFFSixNQUFNLENBQUNJLEVBQUU7UUFBRUksSUFBSSxLQUFBRixNQUFBLENBQUtOLE1BQU0sQ0FBQ1MsU0FBUyxPQUFBSCxNQUFBLENBQUlOLE1BQU0sQ0FBQ1UsUUFBUTtNQUFHLENBQUMsRUFBQyxDQUFDO0lBQ3BHO0VBQ0YsQ0FBQztFQUVELElBQU1DLFVBQVUsR0FBRzNELFdBQVcsQ0FDNUIsVUFBQzRELFdBQW1CLEVBQUs7SUFDdkJkLGdCQUFnQixDQUFDZSxPQUFPLEdBQUdELFdBQVc7SUFDdENqQixtQkFBbUIsQ0FBQyxFQUFFLENBQUM7SUFDdkJFLGdCQUFnQixDQUFDZ0IsT0FBTyxHQUFHLEtBQUs7SUFDaEM5QixjQUFjLENBQUM7TUFBRStCLElBQUksRUFBRSxDQUFDO01BQUVGLFdBQVcsRUFBWEE7SUFBWSxDQUFDLENBQUM7RUFDMUMsQ0FBQyxFQUNELENBQUM3QixjQUFjLENBQ2pCLENBQUM7RUFFRCxJQUFNZ0MsbUJBQW1CLEdBQUd4RCxvQkFBb0IsQ0FBQ29ELFVBQVUsRUFBRSxHQUFHLENBQUM7RUFFakUsSUFBTUssWUFBWSxHQUFHaEUsV0FBVyxDQUM5QixVQUFDaUUsQ0FBZ0MsRUFBSztJQUNwQzFCLGNBQWMsQ0FBQzBCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDN0MsS0FBSyxDQUFDO0lBQzlCMEMsbUJBQW1CLENBQUNFLENBQUMsQ0FBQ0MsTUFBTSxDQUFDN0MsS0FBSyxDQUFDO0VBQ3JDLENBQUMsRUFDRCxDQUFDMEMsbUJBQW1CLENBQ3RCLENBQUM7RUFFRGpFLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNEIsaUJBQWlCLEVBQUU7TUFDdEJhLGNBQWMsQ0FBQyxFQUFFLENBQUM7TUFDbEJJLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztJQUN6QjtFQUNGLENBQUMsRUFBRSxDQUFDakIsaUJBQWlCLENBQUMsQ0FBQztFQUV2QjVCLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNEIsaUJBQWlCLEVBQUU7SUFDeEJpQyxVQUFVLENBQUMsRUFBRSxDQUFDO0VBQ2hCLENBQUMsRUFBRSxDQUFDakMsaUJBQWlCLEVBQUVpQyxVQUFVLENBQUMsQ0FBQztFQUVuQzdELFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSWtDLEtBQUssQ0FBQ21DLE1BQU0sR0FBRyxDQUFDLElBQUl6QyxpQkFBaUIsRUFBRTtNQUN6QyxJQUFJTyxXQUFXLEtBQUssQ0FBQyxFQUFFO1FBQ3JCVSxtQkFBbUIsQ0FBQ1gsS0FBSyxDQUFDO01BQzVCLENBQUMsTUFBTTtRQUNMVyxtQkFBbUIsQ0FBQyxVQUFBeUIsSUFBSSxFQUFJO1VBQzFCLElBQU1DLFdBQVcsR0FBRyxJQUFJQyxHQUFHLENBQUNGLElBQUksQ0FBQ0csR0FBRyxDQUFDLFVBQUFDLENBQUM7WUFBQSxPQUFJQSxDQUFDLENBQUNwQixFQUFFO1VBQUEsRUFBQyxDQUFDO1VBQ2hELElBQU1xQixRQUFRLEdBQUd6QyxLQUFLLENBQUNxQixNQUFNLENBQUMsVUFBQW1CLENBQUM7WUFBQSxPQUFJLENBQUNILFdBQVcsQ0FBQ0ssR0FBRyxDQUFDRixDQUFDLENBQUNwQixFQUFFLENBQUM7VUFBQSxFQUFDO1VBQzFELFVBQUFFLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBV2EsSUFBSSxHQUFBYixrQkFBQSxDQUFLa0IsUUFBUTtRQUM5QixDQUFDLENBQUM7TUFDSjtNQUNBNUIsZ0JBQWdCLENBQUNnQixPQUFPLEdBQUcsS0FBSztJQUNsQztFQUNGLENBQUMsRUFBRSxDQUFDN0IsS0FBSyxFQUFFQyxXQUFXLEVBQUVQLGlCQUFpQixDQUFDLENBQUM7RUFFM0MsSUFBTWlELFlBQVksR0FBRzNFLFdBQVcsQ0FBQyxZQUFNO0lBQ3JDLElBQU00RSxTQUFTLEdBQUdoQyxrQkFBa0IsQ0FBQ2lCLE9BQU87SUFDNUMsSUFBSSxDQUFDZSxTQUFTLElBQUl6QyxPQUFPLElBQUlVLGdCQUFnQixDQUFDZ0IsT0FBTyxFQUFFO0lBRXZELElBQVFnQixTQUFTLEdBQWlDRCxTQUFTLENBQW5EQyxTQUFTO01BQUVDLFlBQVksR0FBbUJGLFNBQVMsQ0FBeENFLFlBQVk7TUFBRUMsWUFBWSxHQUFLSCxTQUFTLENBQTFCRyxZQUFZO0lBQzdDLElBQU1DLFlBQVksR0FBR0gsU0FBUyxHQUFHRSxZQUFZLElBQUlELFlBQVksR0FBRyxFQUFFO0lBRWxFLElBQUlFLFlBQVksSUFBSS9DLFdBQVcsR0FBR0MsVUFBVSxFQUFFO01BQzVDVyxnQkFBZ0IsQ0FBQ2dCLE9BQU8sR0FBRyxJQUFJO01BQy9COUIsY0FBYyxDQUFDO1FBQUUrQixJQUFJLEVBQUU3QixXQUFXLEdBQUcsQ0FBQztRQUFFMkIsV0FBVyxFQUFFZCxnQkFBZ0IsQ0FBQ2U7TUFBUSxDQUFDLENBQUM7SUFDbEY7RUFDRixDQUFDLEVBQUUsQ0FBQzVCLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVKLGNBQWMsQ0FBQyxDQUFDO0VBRXREakMsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNOEUsU0FBUyxHQUFHaEMsa0JBQWtCLENBQUNpQixPQUFPO0lBQzVDLElBQUksQ0FBQ2UsU0FBUyxJQUFJLENBQUNsRCxpQkFBaUIsRUFBRSxPQUFPdUQsU0FBUztJQUV0REwsU0FBUyxDQUFDTSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVQLFlBQVksQ0FBQztJQUNsRCxPQUFPLFlBQU07TUFDWEMsU0FBUyxDQUFDTyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUVSLFlBQVksQ0FBQztJQUN2RCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNBLFlBQVksRUFBRWpELGlCQUFpQixDQUFDLENBQUM7RUFFckMsSUFBTTBELHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUEsRUFBUztJQUNwQ3pELG9CQUFvQixDQUFDLFVBQUF5QyxJQUFJO01BQUEsT0FBSSxDQUFDQSxJQUFJO0lBQUEsRUFBQztFQUNyQyxDQUFDO0VBRUQsb0JBQ0VsRCxLQUFBLENBQUNkLFFBQVE7SUFDUGlGLEtBQUssRUFBRXhELENBQUMsQ0FBQyx1QkFBdUIsQ0FBRTtJQUNsQ3lELFdBQVcsRUFBRXpELENBQUMsQ0FBQyw2QkFBNkIsQ0FBRTtJQUM5QzBELE9BQU8sZUFDTHZFLElBQUEsQ0FBQ0wsbUJBQW1CO01BQUM2RSxNQUFNLEVBQUU5RCxpQkFBa0I7TUFBQStELFFBQUEsZUFDN0N6RSxJQUFBLENBQUNiLFdBQVc7UUFBQ3VGLEtBQUssRUFBQyxNQUFNO1FBQUNDLE1BQU0sRUFBQyxNQUFNO1FBQUNDLEtBQUssRUFBRTFGLE9BQU8sQ0FBQzJGLE1BQU0sQ0FBQ0M7TUFBSyxDQUFFO0lBQUMsQ0FDbkQsQ0FDdEI7SUFDRHpFLEtBQUssRUFBRUEsS0FBSyxDQUFDa0QsR0FBRyxDQUFDLFVBQUF2QixNQUFNO01BQUEsT0FBSUEsTUFBTSxDQUFDUSxJQUFJO0lBQUEsRUFBQyxDQUFDdUMsSUFBSSxDQUFDLEtBQUssQ0FBRTtJQUNwREMsSUFBSSxFQUFFdEUsaUJBQWtCO0lBQ3hCdUUsaUJBQWlCLEVBQUViLHVCQUF3QjtJQUFBSyxRQUFBLGdCQUUzQ3pFLElBQUEsQ0FBQ1IscUJBQXFCO01BQUMwRixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVF2RSxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7TUFBQTtJQUFDLENBQUUsQ0FBQyxlQUNyRVQsS0FBQSxDQUFDVCxhQUFhO01BQUMwRixHQUFHLEVBQUV2RCxrQkFBbUI7TUFBQTZDLFFBQUEsZ0JBQ3JDekUsSUFBQSxDQUFDRixxQkFBcUI7UUFBQTJFLFFBQUEsZUFDcEJ6RSxJQUFBLENBQUNYLGVBQWU7VUFDZGlGLFdBQVcsRUFBRXpELENBQUMsQ0FBQywrQkFBK0IsQ0FBRTtVQUNoRFAsUUFBUSxFQUFFMEMsWUFBYTtVQUN2QjNDLEtBQUssRUFBRWlCO1FBQVksQ0FDcEI7TUFBQyxDQUNtQixDQUFDLEVBQ3ZCSSxnQkFBZ0IsQ0FBQzZCLEdBQUcsQ0FBQyxVQUFBdkIsTUFBTSxFQUFJO1FBQzlCLElBQU1vRCxVQUFVLE1BQUE5QyxNQUFBLENBQU1OLE1BQU0sQ0FBQ1MsU0FBUyxPQUFBSCxNQUFBLENBQUlOLE1BQU0sQ0FBQ1UsUUFBUSxDQUFFO1FBQzNELElBQU0yQyxVQUFVLEdBQUcsQ0FBQWhGLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNkIsSUFBSSxDQUFDLFVBQUFDLENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUNDLEVBQUUsS0FBS0osTUFBTSxDQUFDSSxFQUFFO1FBQUEsRUFBQyxLQUFJLEtBQUs7UUFDaEUsb0JBQ0VwQyxJQUFBLENBQUNOLGNBQWM7VUFFYndGLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO1lBQ1pBLENBQUMsQ0FBQ3FDLGVBQWUsQ0FBQyxDQUFDO1lBQ25CdkQsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQztVQUM1QixDQUFFO1VBQ0ZxRCxVQUFVLEVBQUVBLFVBQVc7VUFBQVosUUFBQSxlQUV2QnZFLEtBQUEsQ0FBQ04sbUJBQW1CO1lBQUE2RSxRQUFBLGdCQUNsQnpFLElBQUE7Y0FBQXlFLFFBQUEsRUFBT1c7WUFBVSxDQUFPLENBQUMsZUFDekJwRixJQUFBLENBQUNILGdCQUFnQjtjQUNmMEYsSUFBSSxFQUFDLFVBQVU7Y0FDZkMsT0FBTyxFQUFFSCxVQUFXO2NBQ3BCSSxRQUFRO2NBQ1JQLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO2dCQUNaQSxDQUFDLENBQUNxQyxlQUFlLENBQUMsQ0FBQztnQkFDbkJ2RCxrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDO2NBQzVCO1lBQUUsQ0FDSCxDQUFDO1VBQUEsQ0FDaUI7UUFBQyxHQWxCakJBLE1BQU0sQ0FBQ0ksRUFtQkUsQ0FBQztNQUVyQixDQUFDLENBQUM7SUFBQSxDQUNXLENBQUM7RUFBQSxDQUNSLENBQUM7QUFFZixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -4,12 +4,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
5
|
import React, { useState, useEffect } from 'react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import pallete from '@projectcor/theme/lib/base/colors';
|
|
7
8
|
import { CUButton } from '@projectcor/button/lib/components/CUButton';
|
|
8
9
|
import { Cross } from '@projectcor/icons/lib/components/Cross';
|
|
9
10
|
import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
|
|
10
11
|
import { Input } from '@projectcor/input/lib';
|
|
11
12
|
import { CUSelect } from '@projectcor/selector/lib/components/CUSelect';
|
|
12
|
-
import { SCTDMOverlay, SCTDMContainer, SCTDMHeader, SCTDMTitle, SCTDMCloseButton, SCTDMContent, SCTDMSection, SCTDMSectionLabel, SCTDMSectionValue, SCTDMUsersList, SCTDMWorkspaceTag, SCTDMButtonsContainer, SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperTextArea, SCTextAreaLabel, SCTextArea, SCWrapperSelectIcon } from './TeamDetailsModal.styles';
|
|
13
|
+
import { SCTDMOverlay, SCTDMContainer, SCTDMHeader, SCTDMTitle, SCTDMCloseButton, SCTDMContent, SCTDMSection, SCTDMSectionLabel, SCTDMSectionValue, SCTDMUsersList, SCTDMWorkspaceTag, SCTDMButtonsContainer, SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperTextArea, SCTextAreaLabel, SCTextArea, SCTextAreaCounter, SCWrapperSelectIcon } from './TeamDetailsModal.styles';
|
|
13
14
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
15
|
export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
15
16
|
var _formData$workspace;
|
|
@@ -144,7 +145,7 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
144
145
|
children: /*#__PURE__*/_jsx(Cross, {
|
|
145
146
|
width: 20,
|
|
146
147
|
height: 20,
|
|
147
|
-
color:
|
|
148
|
+
color: pallete.grey[300]
|
|
148
149
|
})
|
|
149
150
|
})]
|
|
150
151
|
}), isViewMode && team ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -169,20 +170,20 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
169
170
|
children: [/*#__PURE__*/_jsx(SCTDMSectionLabel, {
|
|
170
171
|
children: t('teams.modal.descriptionLabel')
|
|
171
172
|
}), /*#__PURE__*/_jsx(SCTDMSectionValue, {
|
|
172
|
-
children: team.description
|
|
173
|
+
children: team.description || '-'
|
|
173
174
|
})]
|
|
174
175
|
})]
|
|
175
176
|
}), /*#__PURE__*/_jsxs(SCTDMButtonsContainer, {
|
|
176
|
-
children: [
|
|
177
|
-
variant: "contained",
|
|
178
|
-
size: "medium",
|
|
179
|
-
onClick: handleEditClick,
|
|
180
|
-
children: t('teams.modal.editButton')
|
|
181
|
-
}), /*#__PURE__*/_jsx(CUButton, {
|
|
177
|
+
children: [/*#__PURE__*/_jsx(CUButton, {
|
|
182
178
|
variant: "text",
|
|
183
179
|
size: "medium",
|
|
184
180
|
onClick: handleCloseModal,
|
|
185
181
|
children: t('teams.cancel')
|
|
182
|
+
}), !window.hasWorkspacesFeature && /*#__PURE__*/_jsx(CUButton, {
|
|
183
|
+
variant: "contained",
|
|
184
|
+
size: "medium",
|
|
185
|
+
onClick: handleEditClick,
|
|
186
|
+
children: t('teams.modal.editButton')
|
|
186
187
|
})]
|
|
187
188
|
})]
|
|
188
189
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -190,12 +191,15 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
190
191
|
children: [/*#__PURE__*/_jsx(SCTDMSection, {
|
|
191
192
|
children: /*#__PURE__*/_jsx(Input, {
|
|
192
193
|
labelText: t('teams.modal.nameLabel'),
|
|
193
|
-
withCounter:
|
|
194
|
+
withCounter: true,
|
|
195
|
+
maxLength: 255,
|
|
194
196
|
value: formData.name || (team && mode === 'edit' ? team.name : ''),
|
|
195
197
|
placeholder: t('teams.modal.namePlaceholder'),
|
|
196
198
|
handleSetText: function handleSetText(value) {
|
|
197
199
|
return handleInputChange('name', value);
|
|
198
|
-
}
|
|
200
|
+
},
|
|
201
|
+
hasError: formData.name.length > 255,
|
|
202
|
+
errorMessage: t('modal.nameMaxLengthError')
|
|
199
203
|
}, "team-name-".concat((team === null || team === void 0 ? void 0 : team.id) || 'new', "-").concat(mode, "-").concat(isOpen))
|
|
200
204
|
}), window.hasWorkspacesFeature && /*#__PURE__*/_jsx(SCTDMSection, {
|
|
201
205
|
children: /*#__PURE__*/_jsxs(CUSelect, {
|
|
@@ -206,7 +210,7 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
206
210
|
children: /*#__PURE__*/_jsx(ChevronDown, {
|
|
207
211
|
width: "16px",
|
|
208
212
|
height: "16px",
|
|
209
|
-
color:
|
|
213
|
+
color: pallete.colors.dark
|
|
210
214
|
})
|
|
211
215
|
}),
|
|
212
216
|
value: ((_formData$workspace = formData.workspace) === null || _formData$workspace === void 0 ? void 0 : _formData$workspace.name) || '',
|
|
@@ -241,7 +245,10 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
241
245
|
},
|
|
242
246
|
spellCheck: false,
|
|
243
247
|
placeholder: t('teams.modal.descriptionPlaceholder'),
|
|
244
|
-
id: "myTextarea"
|
|
248
|
+
id: "myTextarea",
|
|
249
|
+
maxLength: 255
|
|
250
|
+
}), /*#__PURE__*/_jsxs(SCTextAreaCounter, {
|
|
251
|
+
children: [formData.description.length, " / 255"]
|
|
245
252
|
})]
|
|
246
253
|
})
|
|
247
254
|
})]
|
|
@@ -256,9 +263,6 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
256
263
|
variant: "contained",
|
|
257
264
|
size: "medium",
|
|
258
265
|
onClick: handleSave,
|
|
259
|
-
style: {
|
|
260
|
-
backgroundColor: '#666666'
|
|
261
|
-
},
|
|
262
266
|
children: mode === 'create' ? t('teams.createTeam') : t('teams.saveChanges')
|
|
263
267
|
})]
|
|
264
268
|
})]
|
|
@@ -266,4 +270,4 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
|
|
|
266
270
|
})
|
|
267
271
|
});
|
|
268
272
|
};
|
|
269
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlVHJhbnNsYXRpb24iLCJDVUJ1dHRvbiIsIkNyb3NzIiwiQ2hldnJvbkRvd24iLCJJbnB1dCIsIkNVU2VsZWN0IiwiU0NURE1PdmVybGF5IiwiU0NURE1Db250YWluZXIiLCJTQ1RETUhlYWRlciIsIlNDVERNVGl0bGUiLCJTQ1RETUNsb3NlQnV0dG9uIiwiU0NURE1Db250ZW50IiwiU0NURE1TZWN0aW9uIiwiU0NURE1TZWN0aW9uTGFiZWwiLCJTQ1RETVNlY3Rpb25WYWx1ZSIsIlNDVERNVXNlcnNMaXN0IiwiU0NURE1Xb3Jrc3BhY2VUYWciLCJTQ1RETUJ1dHRvbnNDb250YWluZXIiLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJUZXh0QXJlYSIsIlNDVGV4dEFyZWFMYWJlbCIsIlNDVGV4dEFyZWEiLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVGVhbURldGFpbHNNb2RhbCIsIl9yZWYiLCJfZm9ybURhdGEkd29ya3NwYWNlIiwidGVhbSIsImlzT3BlbiIsIm9uQ2xvc2UiLCJvbkVkaXQiLCJvbkNyZWF0ZSIsIl9yZWYkbW9kZSIsIm1vZGUiLCJ3b3Jrc3BhY2VzTGlzdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRWRpdE1vZGUiLCJzZXRJc0VkaXRNb2RlIiwiX3VzZVN0YXRlMyIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJtZW1iZXJzIiwiZGVzY3JpcHRpb24iLCJfdXNlU3RhdGU0IiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1NlbGVjdFdvcmtzcGFjZSIsInNldFNob3dTZWxlY3RXb3Jrc3BhY2UiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaWQiLCJ1c2VycyIsIm1hcCIsInVzZXIiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZvcm1hdFVzZXJzIiwiam9pbiIsImhhbmRsZUVkaXRDbGljayIsImhhbmRsZUNhbmNlbEVkaXQiLCJoYW5kbGVTYXZlIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJmaWVsZCIsInZhbHVlIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRNb2RhbFRpdGxlIiwiaXNGb3JtQ29tcGxldGUiLCJ3aW5kb3ciLCJoYXNXb3Jrc3BhY2VzRmVhdHVyZSIsInRyaW0iLCJsZW5ndGgiLCJpc1ZpZXdNb2RlIiwib25DbGljayIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInZhcmlhbnQiLCJzaXplIiwibGFiZWxUZXh0Iiwid2l0aENvdW50ZXIiLCJwbGFjZWhvbGRlciIsImhhbmRsZVNldFRleHQiLCJ0aXRsZSIsImVuZEljb24iLCJvcGVuIiwiaGFuZGxlQ2xpY2tBY3Rpb24iLCJodG1sRm9yIiwib25DaGFuZ2UiLCJzcGVsbENoZWNrIiwiZGlzYWJsZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RlYW1EZXRhaWxzTW9kYWwvVGVhbURldGFpbHNNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2lucHV0L2xpYidcbmltcG9ydCB7IENVU2VsZWN0IH0gZnJvbSAnQHByb2plY3Rjb3Ivc2VsZWN0b3IvbGliL2NvbXBvbmVudHMvQ1VTZWxlY3QnXG5pbXBvcnQgeyBUZWFtRGV0YWlsc01vZGFsUHJvcHMsIEZvcm1EYXRhLCBXb3Jrc3BhY2UgfSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwudHlwZXMnXG5pbXBvcnQgeyBNZW1iZXJTZWxlY3Rpb24gfSBmcm9tICcuL01lbWJlcnNTZWxlY3QnXG5pbXBvcnQge1xuICBTQ1RETU92ZXJsYXksXG4gIFNDVERNQ29udGFpbmVyLFxuICBTQ1RETUhlYWRlcixcbiAgU0NURE1UaXRsZSxcbiAgU0NURE1DbG9zZUJ1dHRvbixcbiAgU0NURE1Db250ZW50LFxuICBTQ1RETVNlY3Rpb24sXG4gIFNDVERNU2VjdGlvbkxhYmVsLFxuICBTQ1RETVNlY3Rpb25WYWx1ZSxcbiAgU0NURE1Vc2Vyc0xpc3QsXG4gIFNDVERNV29ya3NwYWNlVGFnLFxuICBTQ1RETUJ1dHRvbnNDb250YWluZXIsXG4gIFNDQmFja2Ryb3BJbnB1dFNlbGVjdCxcbiAgU0NDVUl0ZW1zTGlzdCxcbiAgU0NDVVNlbGVjdEl0ZW0sXG4gIFNDV3JhcHBlclRleHRBcmVhLFxuICBTQ1RleHRBcmVhTGFiZWwsXG4gIFNDVGV4dEFyZWEsXG4gIFNDV3JhcHBlclNlbGVjdEljb24sXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBUZWFtRGV0YWlsc01vZGFsID0gKHtcbiAgdGVhbSxcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBvbkVkaXQsXG4gIG9uQ3JlYXRlLFxuICBtb2RlID0gJ3ZpZXcnLFxuICB3b3Jrc3BhY2VzTGlzdCxcbn06IFRlYW1EZXRhaWxzTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCBbaXNFZGl0TW9kZSwgc2V0SXNFZGl0TW9kZV0gPSB1c2VTdGF0ZShtb2RlID09PSAnZWRpdCcgfHwgbW9kZSA9PT0gJ2NyZWF0ZScpXG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGU8Rm9ybURhdGE+KHtcbiAgICBuYW1lOiAnJyxcbiAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgbWVtYmVyczogW10sXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9KVxuICBjb25zdCBbc2hvd1NlbGVjdFdvcmtzcGFjZSwgc2V0U2hvd1NlbGVjdFdvcmtzcGFjZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2kgY2FtYmlhIGVsIG1vZG8sIGFqdXN0YXIgaXNFZGl0TW9kZVxuICAgIHNldElzRWRpdE1vZGUobW9kZSA9PT0gJ2VkaXQnIHx8IG1vZGUgPT09ICdjcmVhdGUnKVxuICB9LCBbbW9kZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgLy8gUmVzZXRlYXIgY3VhbmRvIGVsIG1vZGFsIHNlIGNpZXJyYVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChtb2RlID09PSAnY3JlYXRlJykge1xuICAgICAgLy8gUmVzZXRlYXIgZm9ybXVsYXJpbyBwYXJhIGNyZWFyXG4gICAgICBzZXRGb3JtRGF0YSh7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodGVhbSkge1xuICAgICAgLy8gQWN0dWFsaXphciBmb3JtdWxhcmlvIGN1YW5kbyBoYXkgdW4gZXF1aXBvIChtb2RvIHZpZXcgbyBlZGl0KVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiB0ZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIHdvcmtzcGFjZTogdGVhbS53b3Jrc3BhY2UgPyB7IGlkOiB0ZWFtLndvcmtzcGFjZS5pZCwgbmFtZTogdGVhbS53b3Jrc3BhY2UubmFtZSB9IDogbnVsbCxcbiAgICAgICAgbWVtYmVyczogdGVhbS51c2Vycy5tYXAodXNlciA9PiAoeyBpZDogdXNlci5pZCwgbmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gIH0pKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRlYW0uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3RlYW0sIG1vZGUsIGlzT3Blbl0pXG5cbiAgaWYgKCFpc09wZW4pIHJldHVybiBudWxsXG4gIGlmIChtb2RlID09PSAndmlldycgJiYgIWlzRWRpdE1vZGUgJiYgIXRlYW0pIHJldHVybiBudWxsXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKGZhbHNlKVxuICAgIHNldEZvcm1EYXRhKHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgbWVtYmVyczogW10sXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgfSlcbiAgICBvbkNsb3NlKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0ICYmICFpc0VkaXRNb2RlKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRVc2VycyA9ICgpID0+IHtcbiAgICBpZiAoIXRlYW0pIHJldHVybiAnJ1xuICAgIHJldHVybiB0ZWFtLnVzZXJzLm1hcCh1c2VyID0+IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YCkuam9pbignIC0gJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRDbGljayA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDYW5jZWxFZGl0ID0gKCkgPT4ge1xuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2F2ZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScgJiYgb25DcmVhdGUpIHtcbiAgICAgIG9uQ3JlYXRlKGZvcm1EYXRhKVxuICAgIH0gZWxzZSBpZiAob25FZGl0KSB7XG4gICAgICBvbkVkaXQoZm9ybURhdGEpXG4gICAgfVxuICAgIHNldElzRWRpdE1vZGUoZmFsc2UpXG4gICAgaWYgKG1vZGUgPT09ICdjcmVhdGUnKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgV29ya3NwYWNlIHwgbnVsbCB8IE1lbWJlclNlbGVjdGlvbltdKSA9PiB7XG4gICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWVsZF06IHZhbHVlLFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgZ2V0TW9kYWxUaXRsZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5jcmVhdGVUaXRsZScpXG4gICAgaWYgKGlzRWRpdE1vZGUpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5lZGl0VGl0bGUnKVxuICAgIHJldHVybiB0ZWFtPy5uYW1lIHx8ICcnXG4gIH1cblxuICBjb25zdCBpc0Zvcm1Db21wbGV0ZSA9IHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZVxuICAgID8gZm9ybURhdGEubmFtZS50cmltKCkubGVuZ3RoID4gMCAmJiBmb3JtRGF0YS53b3Jrc3BhY2UgIT09IG51bGxcbiAgICA6IGZvcm1EYXRhLm5hbWUudHJpbSgpLmxlbmd0aCA+IDBcblxuICBjb25zdCBpc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnICYmICFpc0VkaXRNb2RlXG5cbiAgcmV0dXJuIChcbiAgICA8U0NURE1PdmVybGF5IG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja30+XG4gICAgICA8U0NURE1Db250YWluZXI+XG4gICAgICAgIDxTQ1RETUhlYWRlcj5cbiAgICAgICAgICA8U0NURE1UaXRsZT57Z2V0TW9kYWxUaXRsZSgpfTwvU0NURE1UaXRsZT5cbiAgICAgICAgICA8U0NURE1DbG9zZUJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgIDxDcm9zcyB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPVwiI0E0QURCNVwiIC8+XG4gICAgICAgICAgPC9TQ1RETUNsb3NlQnV0dG9uPlxuICAgICAgICA8L1NDVERNSGVhZGVyPlxuXG4gICAgICAgIHtpc1ZpZXdNb2RlICYmIHRlYW0gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC51c2Vyc0xhYmVsJyl9PC9TQ1RETVNlY3Rpb25MYWJlbD5cbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgICA8U0NURE1Vc2Vyc0xpc3Q+e2Zvcm1hdFVzZXJzKCl9PC9TQ1RETVVzZXJzTGlzdD5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cblxuICAgICAgICAgICAgICB7d2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC53b3Jrc3BhY2VzTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgICAgICB7dGVhbS53b3Jrc3BhY2UgPyA8U0NURE1Xb3Jrc3BhY2VUYWc+e3RlYW0ud29ya3NwYWNlLm5hbWV9PC9TQ1RETVdvcmtzcGFjZVRhZz4gOiAnLSd9XG4gICAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvbkxhYmVsJyl9PC9TQ1RETVNlY3Rpb25MYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb25WYWx1ZT57dGVhbS5kZXNjcmlwdGlvbn08L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVFZGl0Q2xpY2t9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RlYW1zLm1vZGFsLmVkaXRCdXR0b24nKX1cbiAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cInRleHRcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17aGFuZGxlQ2xvc2VNb2RhbH0+XG4gICAgICAgICAgICAgICAge3QoJ3RlYW1zLmNhbmNlbCcpfVxuICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgPC9TQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2B0ZWFtLW5hbWUtJHt0ZWFtPy5pZCB8fCAnbmV3J30tJHttb2RlfS0ke2lzT3Blbn1gfVxuICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0PXt0KCd0ZWFtcy5tb2RhbC5uYW1lTGFiZWwnKX1cbiAgICAgICAgICAgICAgICAgIHdpdGhDb3VudGVyPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5uYW1lIHx8ICh0ZWFtICYmIG1vZGUgPT09ICdlZGl0JyA/IHRlYW0ubmFtZSA6ICcnKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5uYW1lUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRleHQ9e3ZhbHVlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCduYW1lJywgdmFsdWUpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiB7bW9kZSA9PT0gJ2NyZWF0ZScgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8TWVtYmVyc1NlbGVjdCB2YWx1ZT17Zm9ybURhdGEubWVtYmVyc30gb25DaGFuZ2U9e2hhbmRsZUlucHV0Q2hhbmdlfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfSAqL31cblxuICAgICAgICAgICAgICB7d2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPENVU2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0KCd0ZWFtcy5tb2RhbC53b3Jrc3BhY2VUaXRsZScpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgndGVhbXMubW9kYWwud29ya3NwYWNlUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgICAgZW5kSWNvbj17XG4gICAgICAgICAgICAgICAgICAgICAgPFNDV3JhcHBlclNlbGVjdEljb24gaXNPcGVuPXtzaG93U2VsZWN0V29ya3NwYWNlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCIjMjAyMDFGXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDV3JhcHBlclNlbGVjdEljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLndvcmtzcGFjZT8ubmFtZSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgICAgb3Blbj17c2hvd1NlbGVjdFdvcmtzcGFjZX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249eygpID0+IHNldFNob3dTZWxlY3RXb3Jrc3BhY2UoIXNob3dTZWxlY3RXb3Jrc3BhY2UpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U0NCYWNrZHJvcElucHV0U2VsZWN0IG9uQ2xpY2s9eygpID0+IHNldFNob3dTZWxlY3RXb3Jrc3BhY2UoZmFsc2UpfSAvPlxuICAgICAgICAgICAgICAgICAgICA8U0NDVUl0ZW1zTGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICB7d29ya3NwYWNlc0xpc3QubWFwKHdvcmtzcGFjZSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDVVNlbGVjdEl0ZW0ga2V5PXt3b3Jrc3BhY2UuaWR9IG9uQ2xpY2s9eygpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCd3b3Jrc3BhY2UnLCB3b3Jrc3BhY2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3dvcmtzcGFjZS5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0NVU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ0NVSXRlbXNMaXN0PlxuICAgICAgICAgICAgICAgICAgPC9DVVNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7IXdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxTQ1dyYXBwZXJUZXh0QXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFMYWJlbCBodG1sRm9yPVwibXlUZXh0YXJlYVwiPnt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvbkxhYmVsJyl9PC9TQ1RleHRBcmVhTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1RleHRBcmVhXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdkZXNjcmlwdGlvbicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgndGVhbXMubW9kYWwuZGVzY3JpcHRpb25QbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwibXlUZXh0YXJlYVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDV3JhcHBlclRleHRBcmVhPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVDYW5jZWxFZGl0fT5cbiAgICAgICAgICAgICAgICB7dCgndGVhbXMuY2FuY2VsJyl9XG4gICAgICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNGb3JtQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2F2ZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjNjY2NjY2JyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge21vZGUgPT09ICdjcmVhdGUnID8gdCgndGVhbXMuY3JlYXRlVGVhbScpIDogdCgndGVhbXMuc2F2ZUNoYW5nZXMnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgIDwvU0NURE1CdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9TQ1RETUNvbnRhaW5lcj5cbiAgICA8L1NDVERNT3ZlcmxheT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2xELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUd2RSxTQUNFQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLGdCQUFnQixFQUNoQkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGlCQUFpQixFQUNqQkMsaUJBQWlCLEVBQ2pCQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMscUJBQXFCLEVBQ3JCQyxxQkFBcUIsRUFDckJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsVUFBVSxFQUNWQyxtQkFBbUIsUUFDZCwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUVsQyxPQUFPLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUFDLElBQUEsRUFRQTtFQUFB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
|
|
273
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQ1VCdXR0b24iLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiSW5wdXQiLCJDVVNlbGVjdCIsIlNDVERNT3ZlcmxheSIsIlNDVERNQ29udGFpbmVyIiwiU0NURE1IZWFkZXIiLCJTQ1RETVRpdGxlIiwiU0NURE1DbG9zZUJ1dHRvbiIsIlNDVERNQ29udGVudCIsIlNDVERNU2VjdGlvbiIsIlNDVERNU2VjdGlvbkxhYmVsIiwiU0NURE1TZWN0aW9uVmFsdWUiLCJTQ1RETVVzZXJzTGlzdCIsIlNDVERNV29ya3NwYWNlVGFnIiwiU0NURE1CdXR0b25zQ29udGFpbmVyIiwiU0NCYWNrZHJvcElucHV0U2VsZWN0IiwiU0NDVUl0ZW1zTGlzdCIsIlNDQ1VTZWxlY3RJdGVtIiwiU0NXcmFwcGVyVGV4dEFyZWEiLCJTQ1RleHRBcmVhTGFiZWwiLCJTQ1RleHRBcmVhIiwiU0NUZXh0QXJlYUNvdW50ZXIiLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVGVhbURldGFpbHNNb2RhbCIsIl9yZWYiLCJfZm9ybURhdGEkd29ya3NwYWNlIiwidGVhbSIsImlzT3BlbiIsIm9uQ2xvc2UiLCJvbkVkaXQiLCJvbkNyZWF0ZSIsIl9yZWYkbW9kZSIsIm1vZGUiLCJ3b3Jrc3BhY2VzTGlzdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRWRpdE1vZGUiLCJzZXRJc0VkaXRNb2RlIiwiX3VzZVN0YXRlMyIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJtZW1iZXJzIiwiZGVzY3JpcHRpb24iLCJfdXNlU3RhdGU0IiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1NlbGVjdFdvcmtzcGFjZSIsInNldFNob3dTZWxlY3RXb3Jrc3BhY2UiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaWQiLCJ1c2VycyIsIm1hcCIsInVzZXIiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZvcm1hdFVzZXJzIiwiam9pbiIsImhhbmRsZUVkaXRDbGljayIsImhhbmRsZUNhbmNlbEVkaXQiLCJoYW5kbGVTYXZlIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJmaWVsZCIsInZhbHVlIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRNb2RhbFRpdGxlIiwiaXNGb3JtQ29tcGxldGUiLCJ3aW5kb3ciLCJoYXNXb3Jrc3BhY2VzRmVhdHVyZSIsInRyaW0iLCJsZW5ndGgiLCJpc1ZpZXdNb2RlIiwib25DbGljayIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsImdyZXkiLCJ2YXJpYW50Iiwic2l6ZSIsImxhYmVsVGV4dCIsIndpdGhDb3VudGVyIiwibWF4TGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJoYW5kbGVTZXRUZXh0IiwiaGFzRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJ0aXRsZSIsImVuZEljb24iLCJjb2xvcnMiLCJkYXJrIiwib3BlbiIsImhhbmRsZUNsaWNrQWN0aW9uIiwiaHRtbEZvciIsIm9uQ2hhbmdlIiwic3BlbGxDaGVjayIsImRpc2FibGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGVhbURldGFpbHNNb2RhbC9UZWFtRGV0YWlsc01vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IElucHV0IH0gZnJvbSAnQHByb2plY3Rjb3IvaW5wdXQvbGliJ1xuaW1wb3J0IHsgQ1VTZWxlY3QgfSBmcm9tICdAcHJvamVjdGNvci9zZWxlY3Rvci9saWIvY29tcG9uZW50cy9DVVNlbGVjdCdcbmltcG9ydCB7IFRlYW1EZXRhaWxzTW9kYWxQcm9wcywgRm9ybURhdGEsIFdvcmtzcGFjZSB9IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC50eXBlcydcbmltcG9ydCB7IE1lbWJlclNlbGVjdGlvbiB9IGZyb20gJy4vTWVtYmVyc1NlbGVjdCdcbmltcG9ydCB7XG4gIFNDVERNT3ZlcmxheSxcbiAgU0NURE1Db250YWluZXIsXG4gIFNDVERNSGVhZGVyLFxuICBTQ1RETVRpdGxlLFxuICBTQ1RETUNsb3NlQnV0dG9uLFxuICBTQ1RETUNvbnRlbnQsXG4gIFNDVERNU2VjdGlvbixcbiAgU0NURE1TZWN0aW9uTGFiZWwsXG4gIFNDVERNU2VjdGlvblZhbHVlLFxuICBTQ1RETVVzZXJzTGlzdCxcbiAgU0NURE1Xb3Jrc3BhY2VUYWcsXG4gIFNDVERNQnV0dG9uc0NvbnRhaW5lcixcbiAgU0NCYWNrZHJvcElucHV0U2VsZWN0LFxuICBTQ0NVSXRlbXNMaXN0LFxuICBTQ0NVU2VsZWN0SXRlbSxcbiAgU0NXcmFwcGVyVGV4dEFyZWEsXG4gIFNDVGV4dEFyZWFMYWJlbCxcbiAgU0NUZXh0QXJlYSxcbiAgU0NUZXh0QXJlYUNvdW50ZXIsXG4gIFNDV3JhcHBlclNlbGVjdEljb24sXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBUZWFtRGV0YWlsc01vZGFsID0gKHtcbiAgdGVhbSxcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBvbkVkaXQsXG4gIG9uQ3JlYXRlLFxuICBtb2RlID0gJ3ZpZXcnLFxuICB3b3Jrc3BhY2VzTGlzdCxcbn06IFRlYW1EZXRhaWxzTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCBbaXNFZGl0TW9kZSwgc2V0SXNFZGl0TW9kZV0gPSB1c2VTdGF0ZShtb2RlID09PSAnZWRpdCcgfHwgbW9kZSA9PT0gJ2NyZWF0ZScpXG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGU8Rm9ybURhdGE+KHtcbiAgICBuYW1lOiAnJyxcbiAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgbWVtYmVyczogW10sXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9KVxuICBjb25zdCBbc2hvd1NlbGVjdFdvcmtzcGFjZSwgc2V0U2hvd1NlbGVjdFdvcmtzcGFjZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2kgY2FtYmlhIGVsIG1vZG8sIGFqdXN0YXIgaXNFZGl0TW9kZVxuICAgIHNldElzRWRpdE1vZGUobW9kZSA9PT0gJ2VkaXQnIHx8IG1vZGUgPT09ICdjcmVhdGUnKVxuICB9LCBbbW9kZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgLy8gUmVzZXRlYXIgY3VhbmRvIGVsIG1vZGFsIHNlIGNpZXJyYVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChtb2RlID09PSAnY3JlYXRlJykge1xuICAgICAgLy8gUmVzZXRlYXIgZm9ybXVsYXJpbyBwYXJhIGNyZWFyXG4gICAgICBzZXRGb3JtRGF0YSh7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodGVhbSkge1xuICAgICAgLy8gQWN0dWFsaXphciBmb3JtdWxhcmlvIGN1YW5kbyBoYXkgdW4gZXF1aXBvIChtb2RvIHZpZXcgbyBlZGl0KVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiB0ZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIHdvcmtzcGFjZTogdGVhbS53b3Jrc3BhY2UgPyB7IGlkOiB0ZWFtLndvcmtzcGFjZS5pZCwgbmFtZTogdGVhbS53b3Jrc3BhY2UubmFtZSB9IDogbnVsbCxcbiAgICAgICAgbWVtYmVyczogdGVhbS51c2Vycy5tYXAodXNlciA9PiAoeyBpZDogdXNlci5pZCwgbmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gIH0pKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRlYW0uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3RlYW0sIG1vZGUsIGlzT3Blbl0pXG5cbiAgaWYgKCFpc09wZW4pIHJldHVybiBudWxsXG4gIGlmIChtb2RlID09PSAndmlldycgJiYgIWlzRWRpdE1vZGUgJiYgIXRlYW0pIHJldHVybiBudWxsXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKGZhbHNlKVxuICAgIHNldEZvcm1EYXRhKHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgbWVtYmVyczogW10sXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgfSlcbiAgICBvbkNsb3NlKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0ICYmICFpc0VkaXRNb2RlKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRVc2VycyA9ICgpID0+IHtcbiAgICBpZiAoIXRlYW0pIHJldHVybiAnJ1xuICAgIHJldHVybiB0ZWFtLnVzZXJzLm1hcCh1c2VyID0+IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YCkuam9pbignIC0gJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRDbGljayA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDYW5jZWxFZGl0ID0gKCkgPT4ge1xuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2F2ZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScgJiYgb25DcmVhdGUpIHtcbiAgICAgIG9uQ3JlYXRlKGZvcm1EYXRhKVxuICAgIH0gZWxzZSBpZiAob25FZGl0KSB7XG4gICAgICBvbkVkaXQoZm9ybURhdGEpXG4gICAgfVxuICAgIHNldElzRWRpdE1vZGUoZmFsc2UpXG4gICAgaWYgKG1vZGUgPT09ICdjcmVhdGUnKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgV29ya3NwYWNlIHwgbnVsbCB8IE1lbWJlclNlbGVjdGlvbltdKSA9PiB7XG4gICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWVsZF06IHZhbHVlLFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgZ2V0TW9kYWxUaXRsZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5jcmVhdGVUaXRsZScpXG4gICAgaWYgKGlzRWRpdE1vZGUpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5lZGl0VGl0bGUnKVxuICAgIHJldHVybiB0ZWFtPy5uYW1lIHx8ICcnXG4gIH1cblxuICBjb25zdCBpc0Zvcm1Db21wbGV0ZSA9IHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZVxuICAgID8gZm9ybURhdGEubmFtZS50cmltKCkubGVuZ3RoID4gMCAmJiBmb3JtRGF0YS53b3Jrc3BhY2UgIT09IG51bGxcbiAgICA6IGZvcm1EYXRhLm5hbWUudHJpbSgpLmxlbmd0aCA+IDBcblxuICBjb25zdCBpc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnICYmICFpc0VkaXRNb2RlXG5cbiAgcmV0dXJuIChcbiAgICA8U0NURE1PdmVybGF5IG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja30+XG4gICAgICA8U0NURE1Db250YWluZXI+XG4gICAgICAgIDxTQ1RETUhlYWRlcj5cbiAgICAgICAgICA8U0NURE1UaXRsZT57Z2V0TW9kYWxUaXRsZSgpfTwvU0NURE1UaXRsZT5cbiAgICAgICAgICA8U0NURE1DbG9zZUJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgIDxDcm9zcyB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPXtwYWxsZXRlLmdyZXlbMzAwXX0gLz5cbiAgICAgICAgICA8L1NDVERNQ2xvc2VCdXR0b24+XG4gICAgICAgIDwvU0NURE1IZWFkZXI+XG5cbiAgICAgICAge2lzVmlld01vZGUgJiYgdGVhbSA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDVERNQ29udGVudD5cbiAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLnVzZXJzTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb25WYWx1ZT5cbiAgICAgICAgICAgICAgICAgIDxTQ1RETVVzZXJzTGlzdD57Zm9ybWF0VXNlcnMoKX08L1NDVERNVXNlcnNMaXN0PlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHt3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLndvcmtzcGFjZXNMYWJlbCcpfTwvU0NURE1TZWN0aW9uTGFiZWw+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgICAgIHt0ZWFtLndvcmtzcGFjZSA/IDxTQ1RETVdvcmtzcGFjZVRhZz57dGVhbS53b3Jrc3BhY2UubmFtZX08L1NDVERNV29ya3NwYWNlVGFnPiA6ICctJ31cbiAgICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgPC9TQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgeyF3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLmRlc2NyaXB0aW9uTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvblZhbHVlPnt0ZWFtLmRlc2NyaXB0aW9uIHx8ICctJ308L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgICAgICB7dCgndGVhbXMuY2FuY2VsJyl9XG4gICAgICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVFZGl0Q2xpY2t9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RlYW1zLm1vZGFsLmVkaXRCdXR0b24nKX1cbiAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2B0ZWFtLW5hbWUtJHt0ZWFtPy5pZCB8fCAnbmV3J30tJHttb2RlfS0ke2lzT3Blbn1gfVxuICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0PXt0KCd0ZWFtcy5tb2RhbC5uYW1lTGFiZWwnKX1cbiAgICAgICAgICAgICAgICAgIHdpdGhDb3VudGVyXG4gICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9ezI1NX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5uYW1lIHx8ICh0ZWFtICYmIG1vZGUgPT09ICdlZGl0JyA/IHRlYW0ubmFtZSA6ICcnKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5uYW1lUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRleHQ9e3ZhbHVlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCduYW1lJywgdmFsdWUpfVxuICAgICAgICAgICAgICAgICAgaGFzRXJyb3I9e2Zvcm1EYXRhLm5hbWUubGVuZ3RoID4gMjU1fVxuICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlPXt0KCdtb2RhbC5uYW1lTWF4TGVuZ3RoRXJyb3InKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cblxuICAgICAgICAgICAgICB7Lyoge21vZGUgPT09ICdjcmVhdGUnICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPE1lbWJlcnNTZWxlY3QgdmFsdWU9e2Zvcm1EYXRhLm1lbWJlcnN9IG9uQ2hhbmdlPXtoYW5kbGVJbnB1dENoYW5nZX0gLz5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgKX0gKi99XG5cbiAgICAgICAgICAgICAge3dpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxDVVNlbGVjdFxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17dCgndGVhbXMubW9kYWwud29ya3NwYWNlVGl0bGUnKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ3RlYW1zLm1vZGFsLndvcmtzcGFjZVBsYWNlaG9sZGVyJyl9XG4gICAgICAgICAgICAgICAgICAgIGVuZEljb249e1xuICAgICAgICAgICAgICAgICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdFdvcmtzcGFjZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIGNvbG9yPXtwYWxsZXRlLmNvbG9ycy5kYXJrfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NXcmFwcGVyU2VsZWN0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEud29ya3NwYWNlPy5uYW1lIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICBvcGVuPXtzaG93U2VsZWN0V29ya3NwYWNlfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGlja0FjdGlvbj17KCkgPT4gc2V0U2hvd1NlbGVjdFdvcmtzcGFjZSghc2hvd1NlbGVjdFdvcmtzcGFjZSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0JhY2tkcm9wSW5wdXRTZWxlY3Qgb25DbGljaz17KCkgPT4gc2V0U2hvd1NlbGVjdFdvcmtzcGFjZShmYWxzZSl9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0NVSXRlbXNMaXN0PlxuICAgICAgICAgICAgICAgICAgICAgIHt3b3Jrc3BhY2VzTGlzdC5tYXAod29ya3NwYWNlID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbSBrZXk9e3dvcmtzcGFjZS5pZH0gb25DbGljaz17KCkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ3dvcmtzcGFjZScsIHdvcmtzcGFjZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7d29ya3NwYWNlLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQ1VTZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L1NDQ1VJdGVtc0xpc3Q+XG4gICAgICAgICAgICAgICAgICA8L0NVU2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDV3JhcHBlclRleHRBcmVhPlxuICAgICAgICAgICAgICAgICAgICA8U0NUZXh0QXJlYUxhYmVsIGh0bWxGb3I9XCJteVRleHRhcmVhXCI+e3QoJ3RlYW1zLm1vZGFsLmRlc2NyaXB0aW9uTGFiZWwnKX08L1NDVGV4dEFyZWFMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ2Rlc2NyaXB0aW9uJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvblBsYWNlaG9sZGVyJyl9XG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJteVRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9ezI1NX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFDb3VudGVyPntmb3JtRGF0YS5kZXNjcmlwdGlvbi5sZW5ndGh9IC8gMjU1PC9TQ1RleHRBcmVhQ291bnRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU0NXcmFwcGVyVGV4dEFyZWE+XG4gICAgICAgICAgICAgICAgPC9TQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDVERNQ29udGVudD5cblxuICAgICAgICAgICAgPFNDVERNQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPENVQnV0dG9uIHZhcmlhbnQ9XCJ0ZXh0XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2hhbmRsZUNhbmNlbEVkaXR9PlxuICAgICAgICAgICAgICAgIHt0KCd0ZWFtcy5jYW5jZWwnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgICAgPENVQnV0dG9uIGRpc2FibGVkPXshaXNGb3JtQ29tcGxldGV9IHZhcmlhbnQ9XCJjb250YWluZWRcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17aGFuZGxlU2F2ZX0+XG4gICAgICAgICAgICAgICAge21vZGUgPT09ICdjcmVhdGUnID8gdCgndGVhbXMuY3JlYXRlVGVhbScpIDogdCgndGVhbXMuc2F2ZUNoYW5nZXMnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgIDwvU0NURE1CdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9TQ1RETUNvbnRhaW5lcj5cbiAgICA8L1NDVERNT3ZlcmxheT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2xELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxtQ0FBbUM7QUFDdkQsU0FBU0MsUUFBUSxRQUFRLDRDQUE0QztBQUNyRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTQyxRQUFRLFFBQVEsOENBQThDO0FBR3ZFLFNBQ0VDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxXQUFXLEVBQ1hD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
|