@projectcor/maia-components 2.11.93-0 → 2.11.94-0
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/CHANGELOG.md +0 -62
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +2 -2
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +41 -28
- package/lib/components/atoms/Chip/Chip.js +5 -12
- package/lib/components/atoms/Chip/styles.js +6 -6
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +28 -160
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +2 -6
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +4 -23
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +7 -15
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +4 -10
- package/lib/components/atoms/MAIAInput/MAIAInput.js +261 -363
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -5
- package/lib/components/atoms/MAIAInput/styles.js +83 -99
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/index.js +2 -12
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +1 -4
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -14
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +3 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +30 -127
- package/lib/components/molecules/ChatAIHome/styles.js +52 -161
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +83 -22
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +2 -6
- package/lib/components/molecules/ChatAIMessages/newStyles.js +27 -11
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +213 -122
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +13 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +23 -6
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +55 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +46 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/constants.js +2 -6
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatFooter/ChatFooter.js +68 -40
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
- package/lib/components/molecules/Sidebar/Sidebar.js +111 -91
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +34 -29
- package/lib/components/organisms/ChatAI/ChatAI.js +10 -17
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +1 -8
- package/lib/constants/config.js +1 -4
- package/lib/constants/maiaTaskPanelAccess.js +4 -4
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +1 -4
- package/lib/context/cor-user.js +1 -9
- package/lib/context/global-context.js +1 -1
- package/lib/dev/DevChatAI.js +2 -2
- package/lib/hooks/useChatManager/useChatManager.js +560 -456
- package/lib/hooks/useChatMessages/useChatMessages.js +414 -236
- package/lib/hooks/useChats/useChats.js +21 -4
- package/lib/hooks/useContextMentions.js +9 -47
- package/lib/hooks/useContextPinPopover.js +8 -1
- package/lib/hooks/useEntitySearch.js +91 -277
- package/lib/hooks/useEvent.js +1 -2
- package/lib/hooks/useFrequentlyUsedActions.js +2 -4
- package/lib/hooks/useMentionAllowedTypes.js +8 -26
- package/lib/hooks/useMentionPopover.js +13 -42
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
- package/lib/hooks/useProjectSummaryConfig.js +30 -23
- package/lib/hooks/useSlashCommands.js +2 -3
- package/lib/hooks/useStreamingMessage/index.js +2 -3
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
- package/lib/lang/br/index.js +17 -78
- package/lib/lang/en/index.js +17 -78
- package/lib/lang/es/index.js +17 -78
- package/lib/lang/fr/index.js +18 -77
- package/lib/services/appcues.js +2 -3
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Agents/getAgents.js +2 -2
- package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
- package/lib/services/maia/Chats/index.js +3 -1
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +7 -1
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/maiaMinimizedPersistence.js +49 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +576 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +149 -12
- package/lib/styles/config.js +2 -2
- package/lib/types/Action.js +1 -1
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/lib/types/contextMention.js +1 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/actionCategoryMap.js +2 -6
- package/lib/utils/actionIconMap.js +2 -8
- package/lib/utils/contextMentionIcons.js +1 -29
- package/lib/utils/contextMentionTriggers.js +1 -3
- package/lib/utils/formatUnreadCount.js +6 -0
- package/lib/utils/renderContextMentions.js +4 -9
- package/lib/utils/streamActivityMessages.js +1 -2
- package/package.json +10 -15
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +0 -128
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -23
- package/lib/components/atoms/icons/ActionCalendarIcon.js +0 -112
- package/lib/components/atoms/icons/ActionChatIcon.js +0 -71
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +0 -112
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
- package/lib/components/atoms/icons/SkillIcon.js +0 -30
- package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
- package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
- package/lib/components/organisms/AbmSkillModal/index.js +0 -2
- package/lib/constants/maiaHourAgentAccess.js +0 -15
- package/lib/constants/plannerSyncEvents.js +0 -15
- package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
- package/lib/services/maia/Skills/createSkill.js +0 -39
- package/lib/services/maia/Skills/deleteSkill.js +0 -38
- package/lib/services/maia/Skills/generateSkill.js +0 -41
- package/lib/services/maia/Skills/getSkills.js +0 -90
- package/lib/services/maia/Skills/updateSkill.js +0 -39
- package/lib/types/skill.js +0 -2
- package/lib/utils/hoursPlannerQuickActionType.js +0 -65
- package/lib/utils/orchestratorSubagents.js +0 -11
|
@@ -8,6 +8,7 @@ import { useCallback } from 'react';
|
|
|
8
8
|
import { useUser } from '../../context/cor-user';
|
|
9
9
|
import { useGlobalContext } from '../../context/global-context';
|
|
10
10
|
import { useChatsStore } from '../../store/useChatsStore';
|
|
11
|
+
import { useSessionsStore } from '../../store/sessions/useSessionsStore';
|
|
11
12
|
import { useSnackBarManager } from '../useSnackBarManager/useSnackBarManager';
|
|
12
13
|
import { useT } from '../useT';
|
|
13
14
|
import { mapCORLang } from '../../lang/utils';
|
|
@@ -41,6 +42,9 @@ export var useChats = function useChats(_ref) {
|
|
|
41
42
|
var offset = useChatsStore(function (state) {
|
|
42
43
|
return state.offset;
|
|
43
44
|
});
|
|
45
|
+
var unreadCount = useChatsStore(function (state) {
|
|
46
|
+
return state.unreadCount;
|
|
47
|
+
});
|
|
44
48
|
var fetchChats = useChatsStore(function (state) {
|
|
45
49
|
return state.fetchChats;
|
|
46
50
|
});
|
|
@@ -53,17 +57,25 @@ export var useChats = function useChats(_ref) {
|
|
|
53
57
|
var updateChatStore = useChatsStore(function (state) {
|
|
54
58
|
return state.updateChat;
|
|
55
59
|
});
|
|
60
|
+
var setUnreadCount = useChatsStore(function (state) {
|
|
61
|
+
return state.setUnreadCount;
|
|
62
|
+
});
|
|
63
|
+
var setChatReadState = useChatsStore(function (state) {
|
|
64
|
+
return state.setChatReadState;
|
|
65
|
+
});
|
|
56
66
|
var fetchChatsWithContext = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
57
67
|
var _ref3,
|
|
58
68
|
_ref3$limit,
|
|
59
69
|
limitParam,
|
|
60
70
|
_ref3$offset,
|
|
61
71
|
offsetParam,
|
|
72
|
+
_ref3$background,
|
|
73
|
+
background,
|
|
62
74
|
_args = arguments;
|
|
63
75
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
64
76
|
while (1) switch (_context.prev = _context.next) {
|
|
65
77
|
case 0:
|
|
66
|
-
_ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref3$limit = _ref3.limit, limitParam = _ref3$limit === void 0 ? 20 : _ref3$limit, _ref3$offset = _ref3.offset, offsetParam = _ref3$offset === void 0 ? 0 : _ref3$offset;
|
|
78
|
+
_ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref3$limit = _ref3.limit, limitParam = _ref3$limit === void 0 ? 20 : _ref3$limit, _ref3$offset = _ref3.offset, offsetParam = _ref3$offset === void 0 ? 0 : _ref3$offset, _ref3$background = _ref3.background, background = _ref3$background === void 0 ? false : _ref3$background;
|
|
67
79
|
_context.next = 1;
|
|
68
80
|
return fetchChats({
|
|
69
81
|
agent: agent,
|
|
@@ -71,7 +83,8 @@ export var useChats = function useChats(_ref) {
|
|
|
71
83
|
limit: limitParam,
|
|
72
84
|
offset: offsetParam,
|
|
73
85
|
onError: onError,
|
|
74
|
-
lang: mapCORLang(i18n.language)
|
|
86
|
+
lang: mapCORLang(i18n.language),
|
|
87
|
+
background: background
|
|
75
88
|
});
|
|
76
89
|
case 1:
|
|
77
90
|
case "end":
|
|
@@ -93,6 +106,7 @@ export var useChats = function useChats(_ref) {
|
|
|
93
106
|
case 1:
|
|
94
107
|
success = _context2.sent;
|
|
95
108
|
if (success) {
|
|
109
|
+
useSessionsStore.getState().removeSession(chatId);
|
|
96
110
|
handleSnackbarSuccess(t('snackbar.deleteChat.success'));
|
|
97
111
|
} else {
|
|
98
112
|
handleSnackbarError(t('snackbar.deleteChat.error'));
|
|
@@ -164,7 +178,10 @@ export var useChats = function useChats(_ref) {
|
|
|
164
178
|
loadMoreChats: loadMoreChats,
|
|
165
179
|
isLoadingMoreChats: isLoadingMoreChats,
|
|
166
180
|
limit: limit,
|
|
167
|
-
offset: offset
|
|
181
|
+
offset: offset,
|
|
182
|
+
unreadCount: unreadCount,
|
|
183
|
+
setUnreadCount: setUnreadCount,
|
|
184
|
+
setChatReadState: setChatReadState
|
|
168
185
|
};
|
|
169
186
|
};
|
|
170
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVVzZXIiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlQ2hhdHNTdG9yZSIsInVzZVNuYWNrQmFyTWFuYWdlciIsInVzZVQiLCJtYXBDT1JMYW5nIiwidXNlQ2hhdHMiLCJfcmVmIiwib25FcnJvciIsInVzZXIiLCJfdXNlVCIsInQiLCJpMThuIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsInNlY3Rpb24iLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImNoYXRzIiwic3RhdGUiLCJsb2FkaW5nQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJuZXh0T2Zmc2V0IiwibGltaXQiLCJvZmZzZXQiLCJmZXRjaENoYXRzIiwibG9hZE1vcmVDaGF0c1N0b3JlIiwibG9hZE1vcmVDaGF0cyIsImRlbGV0ZUNoYXRTdG9yZSIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0U3RvcmUiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0c1dpdGhDb250ZXh0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmMyIsIl9yZWYzJGxpbWl0IiwibGltaXRQYXJhbSIsIl9yZWYzJG9mZnNldCIsIm9mZnNldFBhcmFtIiwiX2FyZ3MiLCJhcmd1bWVudHMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsInVuZGVmaW5lZCIsImxhbmciLCJsYW5ndWFnZSIsInN0b3AiLCJfcmVmNCIsIl9jYWxsZWUyIiwiY2hhdElkIiwic3VjY2VzcyIsIl9jb250ZXh0MiIsInVzZXJJZCIsImlkIiwidG9TdHJpbmciLCJzZW50IiwiX3giLCJhcHBseSIsIl9yZWY1IiwiX2NhbGxlZTMiLCJjaGF0IiwiX2NvbnRleHQzIiwiX29iamVjdFNwcmVhZCIsInNlc3Npb25FeHRlcm5hbElkIiwidGl0bGUiLCJfeDIiLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImhhc01vcmVDaGF0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDaGF0cy91c2VDaGF0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHsgVXNlQ2hhdHNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdHMuaW50ZXJmYWNlcydcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi9sYW5nL3V0aWxzJ1xuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHMgPSAoeyBvbkVycm9yIH06IFVzZUNoYXRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgY2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmNoYXRzKVxuICBjb25zdCBsb2FkaW5nQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmxvYWRpbmdDaGF0cylcbiAgY29uc3QgaXNMb2FkaW5nTW9yZUNoYXRzID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5pc0xvYWRpbmdNb3JlQ2hhdHMpXG4gIGNvbnN0IG5leHRPZmZzZXQgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLm5leHRPZmZzZXQpXG4gIGNvbnN0IGxpbWl0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5saW1pdClcbiAgY29uc3Qgb2Zmc2V0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5vZmZzZXQpXG4gIGNvbnN0IGZldGNoQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmZldGNoQ2hhdHMpXG4gIGNvbnN0IGxvYWRNb3JlQ2hhdHNTdG9yZSA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUubG9hZE1vcmVDaGF0cylcbiAgY29uc3QgZGVsZXRlQ2hhdFN0b3JlID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5kZWxldGVDaGF0KVxuICBjb25zdCB1cGRhdGVDaGF0U3RvcmUgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLnVwZGF0ZUNoYXQpXG5cbiAgY29uc3QgZmV0Y2hDaGF0c1dpdGhDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgbGltaXQ6IGxpbWl0UGFyYW0gPSAyMCwgb2Zmc2V0OiBvZmZzZXRQYXJhbSA9IDAgfTogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0gPSB7fSkgPT4ge1xuICAgICAgYXdhaXQgZmV0Y2hDaGF0cyh7XG4gICAgICAgIGFnZW50LFxuICAgICAgICBzZWN0aW9uLFxuICAgICAgICBsaW1pdDogbGltaXRQYXJhbSxcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXRQYXJhbSxcbiAgICAgICAgb25FcnJvcixcbiAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWdlbnQsIHNlY3Rpb24sIGZldGNoQ2hhdHMsIG9uRXJyb3IsIGkxOG4ubGFuZ3VhZ2VdXG4gIClcblxuICBjb25zdCBkZWxldGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZGVsZXRlQ2hhdFN0b3JlKHsgY2hhdElkLCB1c2VySWQ6IHVzZXIuaWQudG9TdHJpbmcoKSB9KVxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJTdWNjZXNzKHQoJ3NuYWNrYmFyLmRlbGV0ZUNoYXQuc3VjY2VzcycpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5kZWxldGVDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXNlci5pZCwgZGVsZXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCB1cGRhdGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHVwZGF0ZUNoYXRTdG9yZSh7XG4gICAgICAgIHNlc3Npb25FeHRlcm5hbElkOiBjaGF0LnNlc3Npb25FeHRlcm5hbElkLFxuICAgICAgICBpZDogY2hhdC5pZCxcbiAgICAgICAgLi4uKGNoYXQudGl0bGUgIT0gbnVsbCAmJiB7IHRpdGxlOiBjaGF0LnRpdGxlIH0pLFxuICAgICAgfSlcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdzbmFja2Jhci5yZW5hbWVkQ2hhdC5zdWNjZXNzJykpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLnJlbmFtZWRDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXBkYXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUNoYXRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGxvYWRNb3JlQ2hhdHNTdG9yZSh7IGFnZW50LCBzZWN0aW9uLCBvbkVycm9yLCBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpIH0pXG4gIH0sIFthZ2VudCwgc2VjdGlvbiwgbG9hZE1vcmVDaGF0c1N0b3JlLCBvbkVycm9yLCBpMThuLmxhbmd1YWdlXSlcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBmZXRjaENoYXRzOiBmZXRjaENoYXRzV2l0aENvbnRleHQsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICBjaGF0cyxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGhhc01vcmVDaGF0czogbmV4dE9mZnNldCAhPT0gbnVsbCxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFFekQsU0FBU0Msa0JBQWtCLFFBQVEsMENBQTBDO0FBQzdFLFNBQVNDLElBQUksUUFBUSxTQUFTO0FBQzlCLFNBQVNDLFVBQVUsUUFBUSxrQkFBa0I7QUFFN0MsT0FBTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQSxFQUFtQztFQUFBLElBQTdCQyxPQUFPLEdBQUFELElBQUEs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
|
|
187
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVVzZXIiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlQ2hhdHNTdG9yZSIsInVzZVNlc3Npb25zU3RvcmUiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJ1c2VUIiwibWFwQ09STGFuZyIsInVzZUNoYXRzIiwiX3JlZiIsIm9uRXJyb3IiLCJ1c2VyIiwiX3VzZVQiLCJ0IiwiaTE4biIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyU3VjY2VzcyIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJjaGF0cyIsInN0YXRlIiwibG9hZGluZ0NoYXRzIiwiaXNMb2FkaW5nTW9yZUNoYXRzIiwibmV4dE9mZnNldCIsImxpbWl0Iiwib2Zmc2V0IiwidW5yZWFkQ291bnQiLCJmZXRjaENoYXRzIiwibG9hZE1vcmVDaGF0c1N0b3JlIiwibG9hZE1vcmVDaGF0cyIsImRlbGV0ZUNoYXRTdG9yZSIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0U3RvcmUiLCJ1cGRhdGVDaGF0Iiwic2V0VW5yZWFkQ291bnQiLCJzZXRDaGF0UmVhZFN0YXRlIiwiZmV0Y2hDaGF0c1dpdGhDb250ZXh0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmMyIsIl9yZWYzJGxpbWl0IiwibGltaXRQYXJhbSIsIl9yZWYzJG9mZnNldCIsIm9mZnNldFBhcmFtIiwiX3JlZjMkYmFja2dyb3VuZCIsImJhY2tncm91bmQiLCJfYXJncyIsImFyZ3VtZW50cyIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwibGFuZyIsImxhbmd1YWdlIiwic3RvcCIsIl9yZWY0IiwiX2NhbGxlZTIiLCJjaGF0SWQiLCJzdWNjZXNzIiwiX2NvbnRleHQyIiwidXNlcklkIiwiaWQiLCJ0b1N0cmluZyIsInNlbnQiLCJnZXRTdGF0ZSIsInJlbW92ZVNlc3Npb24iLCJfeCIsImFwcGx5IiwiX3JlZjUiLCJfY2FsbGVlMyIsImNoYXQiLCJfY29udGV4dDMiLCJfb2JqZWN0U3ByZWFkIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJ0aXRsZSIsIl94MiIsIl9jYWxsZWU0IiwiX2NvbnRleHQ0IiwiaGFzTW9yZUNoYXRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRzL3VzZUNoYXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlQ2hhdHNTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3VzZUNoYXRzU3RvcmUnXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbnNTdG9yZSdcbmltcG9ydCB7IFVzZUNoYXRzUHJvcHMgfSBmcm9tICcuL3VzZUNoYXRzLmludGVyZmFjZXMnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vbGFuZy91dGlscydcblxuZXhwb3J0IGNvbnN0IHVzZUNoYXRzID0gKHsgb25FcnJvciB9OiBVc2VDaGF0c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgeyBhZ2VudCwgc2VjdGlvbiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJTdWNjZXNzLCBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuXG4gIGNvbnN0IGNoYXRzID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5jaGF0cylcbiAgY29uc3QgbG9hZGluZ0NoYXRzID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5sb2FkaW5nQ2hhdHMpXG4gIGNvbnN0IGlzTG9hZGluZ01vcmVDaGF0cyA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUuaXNMb2FkaW5nTW9yZUNoYXRzKVxuICBjb25zdCBuZXh0T2Zmc2V0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5uZXh0T2Zmc2V0KVxuICBjb25zdCBsaW1pdCA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUubGltaXQpXG4gIGNvbnN0IG9mZnNldCA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUub2Zmc2V0KVxuICBjb25zdCB1bnJlYWRDb3VudCA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUudW5yZWFkQ291bnQpXG4gIGNvbnN0IGZldGNoQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmZldGNoQ2hhdHMpXG4gIGNvbnN0IGxvYWRNb3JlQ2hhdHNTdG9yZSA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUubG9hZE1vcmVDaGF0cylcbiAgY29uc3QgZGVsZXRlQ2hhdFN0b3JlID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5kZWxldGVDaGF0KVxuICBjb25zdCB1cGRhdGVDaGF0U3RvcmUgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLnVwZGF0ZUNoYXQpXG4gIGNvbnN0IHNldFVucmVhZENvdW50ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5zZXRVbnJlYWRDb3VudClcbiAgY29uc3Qgc2V0Q2hhdFJlYWRTdGF0ZSA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUuc2V0Q2hhdFJlYWRTdGF0ZSlcblxuICBjb25zdCBmZXRjaENoYXRzV2l0aENvbnRleHQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgbGltaXQ6IGxpbWl0UGFyYW0gPSAyMCxcbiAgICAgIG9mZnNldDogb2Zmc2V0UGFyYW0gPSAwLFxuICAgICAgYmFja2dyb3VuZCA9IGZhbHNlLFxuICAgIH06IHsgbGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlcjsgYmFja2dyb3VuZD86IGJvb2xlYW4gfSA9IHt9KSA9PiB7XG4gICAgICBhd2FpdCBmZXRjaENoYXRzKHtcbiAgICAgICAgYWdlbnQsXG4gICAgICAgIHNlY3Rpb24sXG4gICAgICAgIGxpbWl0OiBsaW1pdFBhcmFtLFxuICAgICAgICBvZmZzZXQ6IG9mZnNldFBhcmFtLFxuICAgICAgICBvbkVycm9yLFxuICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgICBiYWNrZ3JvdW5kLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthZ2VudCwgc2VjdGlvbiwgZmV0Y2hDaGF0cywgb25FcnJvciwgaTE4bi5sYW5ndWFnZV1cbiAgKVxuXG4gIGNvbnN0IGRlbGV0ZUNoYXQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBkZWxldGVDaGF0U3RvcmUoeyBjaGF0SWQsIHVzZXJJZDogdXNlci5pZC50b1N0cmluZygpIH0pXG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkucmVtb3ZlU2Vzc2lvbihjaGF0SWQpXG4gICAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdzbmFja2Jhci5kZWxldGVDaGF0LnN1Y2Nlc3MnKSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIuZGVsZXRlQ2hhdC5lcnJvcicpKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3VzZXIuaWQsIGRlbGV0ZUNoYXRTdG9yZSwgaGFuZGxlU25hY2tiYXJTdWNjZXNzLCBoYW5kbGVTbmFja2JhckVycm9yLCB0XVxuICApXG5cbiAgY29uc3QgdXBkYXRlQ2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjaGF0OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB1cGRhdGVDaGF0U3RvcmUoe1xuICAgICAgICBzZXNzaW9uRXh0ZXJuYWxJZDogY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZCxcbiAgICAgICAgaWQ6IGNoYXQuaWQsXG4gICAgICAgIC4uLihjaGF0LnRpdGxlICE9IG51bGwgJiYgeyB0aXRsZTogY2hhdC50aXRsZSB9KSxcbiAgICAgIH0pXG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnc25hY2tiYXIucmVuYW1lZENoYXQuc3VjY2VzcycpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5yZW5hbWVkQ2hhdC5lcnJvcicpKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3VwZGF0ZUNoYXRTdG9yZSwgaGFuZGxlU25hY2tiYXJTdWNjZXNzLCBoYW5kbGVTbmFja2JhckVycm9yLCB0XVxuICApXG5cbiAgY29uc3QgbG9hZE1vcmVDaGF0cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBsb2FkTW9yZUNoYXRzU3RvcmUoeyBhZ2VudCwgc2VjdGlvbiwgb25FcnJvciwgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSB9KVxuICB9LCBbYWdlbnQsIHNlY3Rpb24sIGxvYWRNb3JlQ2hhdHNTdG9yZSwgb25FcnJvciwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgcmV0dXJuIHtcbiAgICBsb2FkaW5nQ2hhdHMsXG4gICAgZmV0Y2hDaGF0czogZmV0Y2hDaGF0c1dpdGhDb250ZXh0LFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgY2hhdHMsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBoYXNNb3JlQ2hhdHM6IG5leHRPZmZzZXQgIT09IG51bGwsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gICAgbGltaXQsXG4gICAgb2Zmc2V0LFxuICAgIHVucmVhZENvdW50LFxuICAgIHNldFVucmVhZENvdW50LFxuICAgIHNldENoYXRSZWFkU3RhdGUsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBRXhFLFNBQVNDLGtCQUFrQixRQUFRLDBDQUEwQztBQUM3RSxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUM5QixTQUFTQyxVQUFVLFFBQVEsa0JBQWtCO0FBRTdDLE9BQU8sSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUFDLElBQUEsRUFBbUM7RUFBQSxJQUE3QkMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87RUFDaEMsSUFBTUMsSUFBSSxHQUFHVixPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFBVyxLQUFBLEdBQW9CTixJQUFJLENBQUMsQ0FBQztJQUFsQk8sQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7SUFBRUMsSUFBSSxHQUFBRixLQUFBLENBQUpFLElBQUk7RUFDZixJQUFBQyxpQkFBQSxHQUEyQmIsZ0JBQWdCLENBQUMsQ0FBQztJQUFyQ2MsS0FBSyxHQUFBRCxpQkFBQSxDQUFMQyxLQUFLO0lBQUVDLE9BQU8sR0FB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Y0FDTE8sbUJBQW1CLENBQUNQLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3REO1VBQUM7VUFBQTtZQUFBLE9BQUFnRSxTQUFBLENBQUFqQixJQUFBO1FBQUE7TUFBQSxHQUFBZSxRQUFBO0lBQUEsQ0FDRjtJQUFBLGlCQUFBTSxHQUFBO01BQUEsT0FBQVAsS0FBQSxDQUFBRCxLQUFBLE9BQUF0QixTQUFBO0lBQUE7RUFBQSxLQUNELENBQUNqQixlQUFlLEVBQUVmLHFCQUFxQixFQUFFQyxtQkFBbUIsRUFBRVAsQ0FBQyxDQUNqRSxDQUFDO0VBRUQsSUFBTWtCLGFBQWEsR0FBRy9CLFdBQVcsY0FBQXVDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBQyxTQUFBeUMsU0FBQTtJQUFBLE9BQUExQyxtQkFBQSxDQUFBWSxJQUFBLFdBQUErQixTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQTdCLElBQUEsR0FBQTZCLFNBQUEsQ0FBQTVCLElBQUE7UUFBQTtVQUFBNEIsU0FBQSxDQUFBNUIsSUFBQTtVQUFBLE9BQzFCekIsa0JBQWtCLENBQUM7WUFBRWQsS0FBSyxFQUFMQSxLQUFLO1lBQUVDLE9BQU8sRUFBUEEsT0FBTztZQUFFUCxPQUFPLEVBQVBBLE9BQU87WUFBRWdELElBQUksRUFBRW5ELFVBQVUsQ0FBQ08sSUFBSSxDQUFDNkMsUUFBUTtVQUFFLENBQUMsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBd0IsU0FBQSxDQUFBdkIsSUFBQTtNQUFBO0lBQUEsR0FBQXNCLFFBQUE7RUFBQSxDQUN2RixJQUFFLENBQUNsRSxLQUFLLEVBQUVDLE9BQU8sRUFBRWEsa0JBQWtCLEVBQUVwQixPQUFPLEVBQUVJLElBQUksQ0FBQzZDLFFBQVEsQ0FBQyxDQUFDO0VBRWhFLE9BQU87SUFDTHBDLFlBQVksRUFBWkEsWUFBWTtJQUNaTSxVQUFVLEVBQUVTLHFCQUFxQjtJQUNqQ0wsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZaLEtBQUssRUFBTEEsS0FBSztJQUNMYyxVQUFVLEVBQVZBLFVBQVU7SUFDVmlELFlBQVksRUFBRTNELFVBQVUsS0FBSyxJQUFJO0lBQ2pDTSxhQUFhLEVBQWJBLGFBQWE7SUFDYlAsa0JBQWtCLEVBQWxCQSxrQkFBa0I7SUFDbEJFLEtBQUssRUFBTEEsS0FBSztJQUNMQyxNQUFNLEVBQU5BLE1BQU07SUFDTkMsV0FBVyxFQUFYQSxXQUFXO0lBQ1hRLGNBQWMsRUFBZEEsY0FBYztJQUNkQyxnQkFBZ0IsRUFBaEJBO0VBQ0YsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -248,51 +248,14 @@ export var useContextMentions = function useContextMentions() {
|
|
|
248
248
|
var before = full.slice(0, offset);
|
|
249
249
|
var after = full.slice(offset + queryLen);
|
|
250
250
|
var nextRun = nextHasSlash ? "".concat('@'.repeat(safeNext), "/") : '@'.repeat(safeNext);
|
|
251
|
-
|
|
252
|
-
var cleanQuery = current.query.startsWith('/') ? current.query.slice(1) : current.query;
|
|
253
|
-
var nextValue = "".concat(before).concat(nextRun).concat(cleanQuery).concat(after);
|
|
251
|
+
var nextValue = "".concat(before).concat(nextRun).concat(current.query).concat(after);
|
|
254
252
|
|
|
255
253
|
// eslint-disable-next-line no-param-reassign
|
|
256
254
|
textNode.data = nextValue;
|
|
257
255
|
var selection = window.getSelection();
|
|
258
256
|
if (selection) {
|
|
259
257
|
var range = document.createRange();
|
|
260
|
-
var caretOffset = before.length + nextRun.length +
|
|
261
|
-
range.setStart(textNode, Math.min(caretOffset, textNode.data.length));
|
|
262
|
-
range.collapse(true);
|
|
263
|
-
selection.removeAllRanges();
|
|
264
|
-
selection.addRange(range);
|
|
265
|
-
}
|
|
266
|
-
var updated = detectTrigger();
|
|
267
|
-
setTrigger(updated);
|
|
268
|
-
}, [detectTrigger]);
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* Convierte el trigger `@{n}query` activo en `@/query`.
|
|
272
|
-
* Se usa al cambiar a la tab de skills (cuyo trigger es `@/`).
|
|
273
|
-
*/
|
|
274
|
-
var syncSkillTrigger = useCallback(function () {
|
|
275
|
-
var current = detectTrigger();
|
|
276
|
-
if (!current.active || !current.anchor) return;
|
|
277
|
-
var _current$anchor2 = current.anchor,
|
|
278
|
-
node = _current$anchor2.node,
|
|
279
|
-
offset = _current$anchor2.offset;
|
|
280
|
-
if (node.nodeType !== Node.TEXT_NODE) return;
|
|
281
|
-
var textNode = node;
|
|
282
|
-
var full = textNode.data;
|
|
283
|
-
var queryLen = current.atRunLength + current.query.length;
|
|
284
|
-
var before = full.slice(0, offset);
|
|
285
|
-
var after = full.slice(offset + queryLen);
|
|
286
|
-
// Si ya tiene el prefijo @/ no modificar
|
|
287
|
-
var cleanQuery = current.query.startsWith('/') ? current.query.slice(1) : current.query;
|
|
288
|
-
var nextValue = "".concat(before, "@/").concat(cleanQuery).concat(after);
|
|
289
|
-
|
|
290
|
-
// eslint-disable-next-line no-param-reassign
|
|
291
|
-
textNode.data = nextValue;
|
|
292
|
-
var selection = window.getSelection();
|
|
293
|
-
if (selection) {
|
|
294
|
-
var range = document.createRange();
|
|
295
|
-
var caretOffset = before.length + 2 + cleanQuery.length;
|
|
258
|
+
var caretOffset = before.length + nextRun.length + current.query.length;
|
|
296
259
|
range.setStart(textNode, Math.min(caretOffset, textNode.data.length));
|
|
297
260
|
range.collapse(true);
|
|
298
261
|
selection.removeAllRanges();
|
|
@@ -309,9 +272,9 @@ export var useContextMentions = function useContextMentions() {
|
|
|
309
272
|
var replaceTriggerWithChip = useCallback(function (chipNode, mention) {
|
|
310
273
|
var current = detectTrigger();
|
|
311
274
|
if (!current.active || !current.anchor) return;
|
|
312
|
-
var _current$
|
|
313
|
-
node = _current$
|
|
314
|
-
offset = _current$
|
|
275
|
+
var _current$anchor2 = current.anchor,
|
|
276
|
+
node = _current$anchor2.node,
|
|
277
|
+
offset = _current$anchor2.offset;
|
|
315
278
|
var textNode = node;
|
|
316
279
|
var full = textNode.data;
|
|
317
280
|
var currentRunLen = Math.abs(current.atRunLength);
|
|
@@ -349,9 +312,9 @@ export var useContextMentions = function useContextMentions() {
|
|
|
349
312
|
var replaceTriggerWithSlashChip = useCallback(function (chipNode, slashCommand) {
|
|
350
313
|
var current = detectSlash();
|
|
351
314
|
if (!current.active || !current.anchor) return;
|
|
352
|
-
var _current$
|
|
353
|
-
node = _current$
|
|
354
|
-
offset = _current$
|
|
315
|
+
var _current$anchor3 = current.anchor,
|
|
316
|
+
node = _current$anchor3.node,
|
|
317
|
+
offset = _current$anchor3.offset;
|
|
355
318
|
var textNode = node;
|
|
356
319
|
var full = textNode.data;
|
|
357
320
|
var triggerLen = 1 + current.query.length;
|
|
@@ -445,7 +408,6 @@ export var useContextMentions = function useContextMentions() {
|
|
|
445
408
|
updateTrigger: updateTrigger,
|
|
446
409
|
closeTrigger: closeTrigger,
|
|
447
410
|
syncTriggerAtRunLength: syncTriggerAtRunLength,
|
|
448
|
-
syncSkillTrigger: syncSkillTrigger,
|
|
449
411
|
replaceTriggerWithChip: replaceTriggerWithChip,
|
|
450
412
|
slashTrigger: slashTrigger,
|
|
451
413
|
updateSlashTrigger: updateSlashTrigger,
|
|
@@ -456,4 +418,4 @@ export var useContextMentions = function useContextMentions() {
|
|
|
456
418
|
focus: focus
|
|
457
419
|
};
|
|
458
420
|
};
|
|
459
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVN0YXRlIiwic2VyaWFsaXplTWVudGlvbiIsInNlcmlhbGl6ZVNsYXNoQ29tbWFuZCIsImRldGVjdE1lbnRpb25UcmlnZ2VyIiwiZWRpdG9yRWwiLCJyYW5nZSIsImNvbnRhaW5zIiwic3RhcnRDb250YWluZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwiYW5jaG9yIiwibm9kZSIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJkYXRhIiwiY2FyZXQiLCJzdGFydE9mZnNldCIsImkiLCJydW5FbmQiLCJydW5TdGFydCIsInByZXYiLCJjaGFyQXQiLCJpc0JvdW5kYXJ5IiwidGVzdCIsImhhc1NsYXNoU3VmZml4IiwicXVlcnlTdGFydCIsInNsaWNlIiwiaW5jbHVkZXMiLCJvZmZzZXQiLCJkZXRlY3RTbGFzaFRyaWdnZXIiLCJzbGFzaEluZGV4IiwidXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidHJpZ2dlciIsInNldFRyaWdnZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNsYXNoVHJpZ2dlciIsInNldFNsYXNoVHJpZ2dlciIsImRldGVjdFRyaWdnZXIiLCJzZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJyYW5nZUNvdW50IiwiY3VycmVudCIsImdldFJhbmdlQXQiLCJkZXRlY3RTbGFzaCIsInVwZGF0ZVRyaWdnZXIiLCJuZXh0IiwiY2xvc2VUcmlnZ2VyIiwidXBkYXRlU2xhc2hUcmlnZ2VyIiwiY2xvc2VTbGFzaFRyaWdnZXIiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwibmV4dEF0UnVuTGVuZ3RoIiwibmV4dEhhc1NsYXNoIiwic2FmZU5leHQiLCJNYXRoIiwibWF4IiwiZmxvb3IiLCJhYnMiLCJfY3VycmVudCRhbmNob3IiLCJ0ZXh0Tm9kZSIsImZ1bGwiLCJjdXJyZW50UnVuTGVuIiwiY3VycmVudEhhc1NsYXNoIiwicXVlcnlMZW4iLCJsZW5ndGgiLCJiZWZvcmUiLCJhZnRlciIsIm5leHRSdW4iLCJjb25jYXQiLCJyZXBlYXQiLCJjbGVhblF1ZXJ5Iiwic3RhcnRzV2l0aCIsIm5leHRWYWx1ZSIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJjYXJldE9mZnNldCIsInNldFN0YXJ0IiwibWluIiwiY29sbGFwc2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInVwZGF0ZWQiLCJzeW5jU2tpbGxUcmlnZ2VyIiwiX2N1cnJlbnQkYW5jaG9yMiIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJjaGlwTm9kZSIsIm1lbnRpb24iLCJfY3VycmVudCRhbmNob3IzIiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwiaWQiLCJ0eXBlIiwibGFiZWwiLCJwYXJlbnQiLCJwYXJlbnROb2RlIiwic3BhY2VOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnRCZWZvcmUiLCJuZXh0U2libGluZyIsInJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCIsInNsYXNoQ29tbWFuZCIsIl9jdXJyZW50JGFuY2hvcjQiLCJ0cmlnZ2VyTGVuIiwic2VyaWFsaXplIiwiZWwiLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJ3YWxrIiwiRUxFTUVOVF9OT0RFIiwiX2VsTm9kZSRkYXRhc2V0IiwiX2VsTm9kZSRkYXRhc2V0MiIsImVsTm9kZSIsImRhdGFzZXQiLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkiLCJfcmVmIiwiX3JlZjIiLCJfZWxOb2RlJGRhdGFzZXQkbWVudGkyIiwibWVudGlvbklkIiwibWVudGlvblR5cGUiLCJtZW50aW9uTGFiZWwiLCJ0ZXh0Q29udGVudCIsInB1c2giLCJfZWxOb2RlJGRhdGFzZXQkc2xhc2giLCJfcmVmMyIsIl9lbE5vZGUkZGF0YXNldCRzbGFzaDIiLCJfZWxOb2RlJHRleHRDb250ZW50Iiwic2xhc2giLCJzbGFzaElkIiwic2xhc2hMYWJlbCIsInJlcGxhY2UiLCJ0YWdOYW1lIiwiY2hpbGROb2RlcyIsImZvckVhY2giLCJjbGVhciIsImlubmVySFRNTCIsImZvY3VzIiwiX2VkaXRvclJlZiRjdXJyZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUNvbnRleHRNZW50aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IHNlcmlhbGl6ZU1lbnRpb24gfSBmcm9tICcuLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBzZXJpYWxpemVTbGFzaENvbW1hbmQgfSBmcm9tICcuLi91dGlscy9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgdHlwZSB7IFNsYXNoQ29tbWFuZENoaXBEYXRhIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwL2J1aWxkU2xhc2hDaGlwRWxlbWVudCdcblxuZXhwb3J0IHR5cGUgTWVudGlvblRyaWdnZXJTdGF0ZSA9IHtcbiAgYWN0aXZlOiBib29sZWFuXG4gIHF1ZXJ5OiBzdHJpbmdcbiAgLyoqIENhbnRpZGFkIGRlIGBAYCBjb25zZWN1dGl2b3MgZGVsIHRyaWdnZXIgKGBAYCDihpIgMSwgYEBAYCDihpIgMikuIE1hcGVhIGEgbGEgdGFiIGVuIG9yZGVuLiAqL1xuICBhdFJ1bkxlbmd0aDogbnVtYmVyXG4gIC8qKiBQb3NpY2nDs24gZGVsIHByaW1lciBgQGAgZGVsIHJ1biAocmVlbXBsYXpvIGRlbCBjaGlwKS4gKi9cbiAgYW5jaG9yOiB7IG5vZGU6IE5vZGU7IG9mZnNldDogbnVtYmVyIH0gfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIFNsYXNoVHJpZ2dlclN0YXRlID0ge1xuICBhY3RpdmU6IGJvb2xlYW5cbiAgcXVlcnk6IHN0cmluZ1xuICBhbmNob3I6IHsgbm9kZTogTm9kZTsgb2Zmc2V0OiBudW1iZXIgfSB8IG51bGxcbn1cblxuLyoqXG4gKiBJbnNwZWNjaW9uYSBsYSBzZWxlY2Npw7NuIGFjdHVhbC4gRm9ybWF0bzogW2zDrW1pdGUgZGUgcGFsYWJyYV0gQCsgcXVlcnkgaGFzdGEgZWwgY2FyZXQuXG4gKiBQZXJtaXRlIGVzcGFjaW9zIHNpbXBsZXMgZGVudHJvIGRlbCBxdWVyeSAocC4gZWouIFwiQEp1YW4gUGVyZXpcIikgeSBjaWVycmFcbiAqIGVsIHRyaWdnZXIgY3VhbmRvIGRldGVjdGEgZG9zIGVzcGFjaW9zIGNvbnNlY3V0aXZvcy5cbiAqIExhIHRhYiBvYmpldGl2byBlcyBsYSBxdWUgY29ycmVzcG9uZGUgYWwgbsO6bWVybyBkZSBgQGAgKDEgPSBwcmltZXJhIHRhYiB2aXNpYmxlLCBldGMuKS5cbiAqL1xuY29uc3QgZGV0ZWN0TWVudGlvblRyaWdnZXIgPSAoZWRpdG9yRWw6IEhUTUxFbGVtZW50IHwgbnVsbCwgcmFuZ2U6IFJhbmdlKTogTWVudGlvblRyaWdnZXJTdGF0ZSA9PiB7XG4gIGlmICghZWRpdG9yRWwgfHwgIWVkaXRvckVsLmNvbnRhaW5zKHJhbmdlLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgY29uc3Qgbm9kZSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyXG4gIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgY29uc3QgdGV4dCA9IChub2RlIGFzIFRleHQpLmRhdGFcbiAgY29uc3QgY2FyZXQgPSByYW5nZS5zdGFydE9mZnNldFxuICBsZXQgaSA9IGNhcmV0IC0gMVxuICBpZiAoaSA8IDApIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgd2hpbGUgKGkgPj0gMCAmJiB0ZXh0W2ldICE9PSAnQCcpIGkgLT0gMVxuICBpZiAoaSA8IDAgfHwgdGV4dFtpXSAhPT0gJ0AnKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIGNvbnN0IHJ1bkVuZCA9IGlcbiAgd2hpbGUgKGkgPj0gMCAmJiB0ZXh0W2ldID09PSAnQCcpIHtcbiAgICBpIC09IDFcbiAgfVxuICBjb25zdCBydW5TdGFydCA9IGkgKyAxXG4gIGNvbnN0IGF0UnVuTGVuZ3RoID0gcnVuRW5kIC0gcnVuU3RhcnQgKyAxXG4gIGNvbnN0IHByZXYgPSBydW5TdGFydCA+IDAgPyB0ZXh0LmNoYXJBdChydW5TdGFydCAtIDEpIDogJydcbiAgY29uc3QgaXNCb3VuZGFyeSA9ICFwcmV2IHx8IC9bXFxzKFt7XS8udGVzdChwcmV2KVxuICBpZiAoIWlzQm91bmRhcnkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgaGFzU2xhc2hTdWZmaXggPSB0ZXh0W3J1bkVuZCArIDFdID09PSAnLydcbiAgY29uc3QgcXVlcnlTdGFydCA9IGhhc1NsYXNoU3VmZml4ID8gcnVuRW5kICsgMiA6IHJ1bkVuZCArIDFcbiAgY29uc3QgcXVlcnkgPSB0ZXh0LnNsaWNlKHF1ZXJ5U3RhcnQsIGNhcmV0KVxuICBpZiAoL1xcbnxcXHIvLnRlc3QocXVlcnkpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBpZiAocXVlcnkuaW5jbHVkZXMoJyAgJykpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY3RpdmU6IHRydWUsXG4gICAgcXVlcnksXG4gICAgYXRSdW5MZW5ndGg6IGhhc1NsYXNoU3VmZml4ID8gLWF0UnVuTGVuZ3RoIDogYXRSdW5MZW5ndGgsXG4gICAgYW5jaG9yOiB7IG5vZGUsIG9mZnNldDogcnVuU3RhcnQgfSxcbiAgfVxufVxuXG5jb25zdCBkZXRlY3RTbGFzaFRyaWdnZXIgPSAoZWRpdG9yRWw6IEhUTUxFbGVtZW50IHwgbnVsbCwgcmFuZ2U6IFJhbmdlKTogU2xhc2hUcmlnZ2VyU3RhdGUgPT4ge1xuICBpZiAoIWVkaXRvckVsIHx8ICFlZGl0b3JFbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cbiAgY29uc3Qgbm9kZSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyXG4gIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCB0ZXh0ID0gKG5vZGUgYXMgVGV4dCkuZGF0YVxuICBjb25zdCBjYXJldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0XG4gIGxldCBpID0gY2FyZXQgLSAxXG4gIGlmIChpIDwgMCkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIHdoaWxlIChpID49IDAgJiYgdGV4dFtpXSAhPT0gJy8nKSBpIC09IDFcbiAgaWYgKGkgPCAwIHx8IHRleHRbaV0gIT09ICcvJykge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIGNvbnN0IHNsYXNoSW5kZXggPSBpXG4gIGNvbnN0IHByZXYgPSBzbGFzaEluZGV4ID4gMCA/IHRleHQuY2hhckF0KHNsYXNoSW5kZXggLSAxKSA6ICcnXG4gIGNvbnN0IGlzQm91bmRhcnkgPSAhcHJldiB8fCAvW1xccyhbe10vLnRlc3QocHJldilcbiAgaWYgKCFpc0JvdW5kYXJ5KSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgcXVlcnkgPSB0ZXh0LnNsaWNlKHNsYXNoSW5kZXggKyAxLCBjYXJldClcbiAgaWYgKC9cXG58XFxyLy50ZXN0KHF1ZXJ5KSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBpZiAocXVlcnkuaW5jbHVkZXMoJyAgJykpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICByZXR1cm4geyBhY3RpdmU6IHRydWUsIHF1ZXJ5LCBhbmNob3I6IHsgbm9kZSwgb2Zmc2V0OiBzbGFzaEluZGV4IH0gfVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ29udGV4dE1lbnRpb25zID0gKCkgPT4ge1xuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbdHJpZ2dlciwgc2V0VHJpZ2dlcl0gPSB1c2VTdGF0ZTxNZW50aW9uVHJpZ2dlclN0YXRlPih7XG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICBxdWVyeTogJycsXG4gICAgYXRSdW5MZW5ndGg6IDAsXG4gICAgYW5jaG9yOiBudWxsLFxuICB9KVxuICBjb25zdCBbc2xhc2hUcmlnZ2VyLCBzZXRTbGFzaFRyaWdnZXJdID0gdXNlU3RhdGU8U2xhc2hUcmlnZ2VyU3RhdGU+KHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIHF1ZXJ5OiAnJyxcbiAgICBhbmNob3I6IG51bGwsXG4gIH0pXG5cbiAgY29uc3QgZGV0ZWN0VHJpZ2dlciA9IHVzZUNhbGxiYWNrKCgpOiBNZW50aW9uVHJpZ2dlclN0YXRlID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCB8fCAhZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gICAgfVxuICAgIHJldHVybiBkZXRlY3RNZW50aW9uVHJpZ2dlcihlZGl0b3JSZWYuY3VycmVudCwgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGRldGVjdFNsYXNoID0gdXNlQ2FsbGJhY2soKCk6IFNsYXNoVHJpZ2dlclN0YXRlID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCB8fCAhZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgICB9XG4gICAgcmV0dXJuIGRldGVjdFNsYXNoVHJpZ2dlcihlZGl0b3JSZWYuY3VycmVudCwgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZVRyaWdnZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IGRldGVjdFRyaWdnZXIoKVxuICAgIHNldFRyaWdnZXIobmV4dClcbiAgICByZXR1cm4gbmV4dFxuICB9LCBbZGV0ZWN0VHJpZ2dlcl0pXG5cbiAgY29uc3QgY2xvc2VUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRyaWdnZXIoeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlU2xhc2hUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG5leHQgPSBkZXRlY3RTbGFzaCgpXG4gICAgc2V0U2xhc2hUcmlnZ2VyKG5leHQpXG4gICAgcmV0dXJuIG5leHRcbiAgfSwgW2RldGVjdFNsYXNoXSlcblxuICBjb25zdCBjbG9zZVNsYXNoVHJpZ2dlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTbGFzaFRyaWdnZXIoeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9KVxuICB9LCBbXSlcblxuICAvKipcbiAgICogQWp1c3RhIGxhIGNhbnRpZGFkIGRlIGBAYCBkZWwgdHJpZ2dlciBhY3Rpdm8gc2luIHBlcmRlciBlbCBxdWVyeSBhY3R1YWwuXG4gICAqIEVqLjogYEBAYWJjYCAtPiBgQGFiY2AgYWwgY2FtYmlhciBkZSB0YWIuXG4gICAqL1xuICBjb25zdCBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoID0gdXNlQ2FsbGJhY2soXG4gICAgKG5leHRBdFJ1bkxlbmd0aDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBuZXh0SGFzU2xhc2ggPSBuZXh0QXRSdW5MZW5ndGggPCAwXG4gICAgICBjb25zdCBzYWZlTmV4dCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoTWF0aC5hYnMobmV4dEF0UnVuTGVuZ3RoKSkpXG4gICAgICBjb25zdCBjdXJyZW50ID0gZGV0ZWN0VHJpZ2dlcigpXG4gICAgICBpZiAoIWN1cnJlbnQuYWN0aXZlIHx8ICFjdXJyZW50LmFuY2hvcikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgbm9kZSwgb2Zmc2V0IH0gPSBjdXJyZW50LmFuY2hvclxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSByZXR1cm5cbiAgICAgIGNvbnN0IHRleHROb2RlID0gbm9kZSBhcyBUZXh0XG4gICAgICBjb25zdCBmdWxsID0gdGV4dE5vZGUuZGF0YVxuICAgICAgY29uc3QgY3VycmVudFJ1bkxlbiA9IE1hdGguYWJzKGN1cnJlbnQuYXRSdW5MZW5ndGgpXG4gICAgICBjb25zdCBjdXJyZW50SGFzU2xhc2ggPSBjdXJyZW50LmF0UnVuTGVuZ3RoIDwgMFxuICAgICAgY29uc3QgcXVlcnlMZW4gPSBjdXJyZW50UnVuTGVuICsgKGN1cnJlbnRIYXNTbGFzaCA/IDEgOiAwKSArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICBjb25zdCBiZWZvcmUgPSBmdWxsLnNsaWNlKDAsIG9mZnNldClcbiAgICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyBxdWVyeUxlbilcbiAgICAgIGNvbnN0IG5leHRSdW4gPSBuZXh0SGFzU2xhc2ggPyBgJHsnQCcucmVwZWF0KHNhZmVOZXh0KX0vYCA6ICdAJy5yZXBlYXQoc2FmZU5leHQpXG4gICAgICAvLyBTaSB2ZW5pbW9zIGRlbCB0YWIgc2tpbGwsIGVsIHF1ZXJ5IHRpZW5lICcvJyBjb21vIHByZWZpam8g4oCUIGxpbXBpYXJsbyBhbCBjYW1iaWFyIGRlIHRhYi5cbiAgICAgIGNvbnN0IGNsZWFuUXVlcnkgPSBjdXJyZW50LnF1ZXJ5LnN0YXJ0c1dpdGgoJy8nKSA/IGN1cnJlbnQucXVlcnkuc2xpY2UoMSkgOiBjdXJyZW50LnF1ZXJ5XG4gICAgICBjb25zdCBuZXh0VmFsdWUgPSBgJHtiZWZvcmV9JHtuZXh0UnVufSR7Y2xlYW5RdWVyeX0ke2FmdGVyfWBcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICB0ZXh0Tm9kZS5kYXRhID0gbmV4dFZhbHVlXG5cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3QgY2FyZXRPZmZzZXQgPSBiZWZvcmUubGVuZ3RoICsgbmV4dFJ1bi5sZW5ndGggKyBjbGVhblF1ZXJ5Lmxlbmd0aFxuICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgTWF0aC5taW4oY2FyZXRPZmZzZXQsIHRleHROb2RlLmRhdGEubGVuZ3RoKSlcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlZCA9IGRldGVjdFRyaWdnZXIoKVxuICAgICAgc2V0VHJpZ2dlcih1cGRhdGVkKVxuICAgIH0sXG4gICAgW2RldGVjdFRyaWdnZXJdXG4gIClcblxuICAvKipcbiAgICogQ29udmllcnRlIGVsIHRyaWdnZXIgYEB7bn1xdWVyeWAgYWN0aXZvIGVuIGBAL3F1ZXJ5YC5cbiAgICogU2UgdXNhIGFsIGNhbWJpYXIgYSBsYSB0YWIgZGUgc2tpbGxzIChjdXlvIHRyaWdnZXIgZXMgYEAvYCkuXG4gICAqL1xuICBjb25zdCBzeW5jU2tpbGxUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICBpZiAoIWN1cnJlbnQuYWN0aXZlIHx8ICFjdXJyZW50LmFuY2hvcikgcmV0dXJuXG5cbiAgICBjb25zdCB7IG5vZGUsIG9mZnNldCB9ID0gY3VycmVudC5hbmNob3JcbiAgICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5URVhUX05PREUpIHJldHVyblxuICAgIGNvbnN0IHRleHROb2RlID0gbm9kZSBhcyBUZXh0XG4gICAgY29uc3QgZnVsbCA9IHRleHROb2RlLmRhdGFcbiAgICBjb25zdCBxdWVyeUxlbiA9IGN1cnJlbnQuYXRSdW5MZW5ndGggKyBjdXJyZW50LnF1ZXJ5Lmxlbmd0aFxuICAgIGNvbnN0IGJlZm9yZSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyBxdWVyeUxlbilcbiAgICAvLyBTaSB5YSB0aWVuZSBlbCBwcmVmaWpvIEAvIG5vIG1vZGlmaWNhclxuICAgIGNvbnN0IGNsZWFuUXVlcnkgPSBjdXJyZW50LnF1ZXJ5LnN0YXJ0c1dpdGgoJy8nKSA/IGN1cnJlbnQucXVlcnkuc2xpY2UoMSkgOiBjdXJyZW50LnF1ZXJ5XG4gICAgY29uc3QgbmV4dFZhbHVlID0gYCR7YmVmb3JlfUAvJHtjbGVhblF1ZXJ5fSR7YWZ0ZXJ9YFxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdGV4dE5vZGUuZGF0YSA9IG5leHRWYWx1ZVxuXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICBjb25zdCBjYXJldE9mZnNldCA9IGJlZm9yZS5sZW5ndGggKyAyICsgY2xlYW5RdWVyeS5sZW5ndGhcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCBNYXRoLm1pbihjYXJldE9mZnNldCwgdGV4dE5vZGUuZGF0YS5sZW5ndGgpKVxuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICBzZXRUcmlnZ2VyKHVwZGF0ZWQpXG4gIH0sIFtkZXRlY3RUcmlnZ2VyXSlcblxuICAvKipcbiAgICogUmVlbXBsYXphIGVsIGBAcXVlcnlgIHBlbmRpZW50ZSBwb3IgdW4gY2hpcCBhdMOzbWljbyBjb24gbGEgbWVudGlvbi5cbiAgICogUmVxdWllcmUgcXVlIGVsIGNhbGxlciBwcm92ZWEgZWwgRE9NIGRlbCBjaGlwIChzZSBpbnNlcnRhIHRhbCBjdWFsKS5cbiAgICovXG4gIGNvbnN0IHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hpcE5vZGU6IEhUTUxFbGVtZW50LCBtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IGRldGVjdFRyaWdnZXIoKVxuICAgICAgaWYgKCFjdXJyZW50LmFjdGl2ZSB8fCAhY3VycmVudC5hbmNob3IpIHJldHVyblxuXG4gICAgICBjb25zdCB7IG5vZGUsIG9mZnNldCB9ID0gY3VycmVudC5hbmNob3JcbiAgICAgIGNvbnN0IHRleHROb2RlID0gbm9kZSBhcyBUZXh0XG4gICAgICBjb25zdCBmdWxsID0gdGV4dE5vZGUuZGF0YVxuICAgICAgY29uc3QgY3VycmVudFJ1bkxlbiA9IE1hdGguYWJzKGN1cnJlbnQuYXRSdW5MZW5ndGgpXG4gICAgICBjb25zdCBjdXJyZW50SGFzU2xhc2ggPSBjdXJyZW50LmF0UnVuTGVuZ3RoIDwgMFxuICAgICAgY29uc3QgcXVlcnlMZW4gPSBjdXJyZW50UnVuTGVuICsgKGN1cnJlbnRIYXNTbGFzaCA/IDEgOiAwKSArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICBjb25zdCBhZnRlciA9IGZ1bGwuc2xpY2Uob2Zmc2V0ICsgcXVlcnlMZW4pXG5cbiAgICAgIC8vIFRydW5jYXIgZWwgdGV4dG8gaGFzdGEgYW50ZXMgZGVsIHJ1biBkZSBgQOKApmBcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgdGV4dE5vZGUuZGF0YSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuXG4gICAgICAvLyBJbnNlcnRhciBlbCBjaGlwIGp1c3RvIGRlc3B1w6lzIGRlbCBub2RvIGRlIHRleHRvXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbicsICd0cnVlJylcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWlkJywgU3RyaW5nKG1lbnRpb24uaWQpKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tdHlwZScsIG1lbnRpb24udHlwZSlcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWxhYmVsJywgbWVudGlvbi5sYWJlbClcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ2ZhbHNlJylcblxuICAgICAgY29uc3QgcGFyZW50ID0gdGV4dE5vZGUucGFyZW50Tm9kZVxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVyblxuXG4gICAgICBjb25zdCBzcGFjZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgXFx1MDBhMCR7YWZ0ZXJ9YClcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpcE5vZGUsIHRleHROb2RlLm5leHRTaWJsaW5nKVxuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShzcGFjZU5vZGUsIGNoaXBOb2RlLm5leHRTaWJsaW5nKVxuXG4gICAgICAvLyBSZXBvc2ljaW9uYXIgY2FyZXQgZGVzcHXDqXMgZGVsIGNoaXAgKGFudGVzIGRlbCBlc3BhY2lvIG5vbi1icmVha2luZylcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoc3BhY2VOb2RlLCAxKVxuICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgfVxuXG4gICAgICBjbG9zZVRyaWdnZXIoKVxuICAgIH0sXG4gICAgW2RldGVjdFRyaWdnZXIsIGNsb3NlVHJpZ2dlcl1cbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCA9IHVzZUNhbGxiYWNrKFxuICAgIChjaGlwTm9kZTogSFRNTEVsZW1lbnQsIHNsYXNoQ29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBkZXRlY3RTbGFzaCgpXG4gICAgICBpZiAoIWN1cnJlbnQuYWN0aXZlIHx8ICFjdXJyZW50LmFuY2hvcikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgbm9kZSwgb2Zmc2V0IH0gPSBjdXJyZW50LmFuY2hvclxuICAgICAgY29uc3QgdGV4dE5vZGUgPSBub2RlIGFzIFRleHRcbiAgICAgIGNvbnN0IGZ1bGwgPSB0ZXh0Tm9kZS5kYXRhXG4gICAgICBjb25zdCB0cmlnZ2VyTGVuID0gMSArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICBjb25zdCBhZnRlciA9IGZ1bGwuc2xpY2Uob2Zmc2V0ICsgdHJpZ2dlckxlbilcblxuICAgICAgdGV4dE5vZGUuZGF0YSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhc2gtY29tbWFuZCcsICd0cnVlJylcbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1zbGFzaC1pZCcsIFN0cmluZyhzbGFzaENvbW1hbmQuaWQpKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLXNsYXNoLWxhYmVsJywgc2xhc2hDb21tYW5kLmxhYmVsKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuXG4gICAgICBjb25zdCBwYXJlbnQgPSB0ZXh0Tm9kZS5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHNwYWNlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGAgJHthZnRlcn1gKVxuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShjaGlwTm9kZSwgdGV4dE5vZGUubmV4dFNpYmxpbmcpXG4gICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHNwYWNlTm9kZSwgY2hpcE5vZGUubmV4dFNpYmxpbmcpXG5cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoc3BhY2VOb2RlLCAxKVxuICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgfVxuXG4gICAgICBjbG9zZVNsYXNoVHJpZ2dlcigpXG4gICAgfSxcbiAgICBbZGV0ZWN0U2xhc2gsIGNsb3NlU2xhc2hUcmlnZ2VyXVxuICApXG5cbiAgY29uc3Qgc2VyaWFsaXplID0gdXNlQ2FsbGJhY2soKCk6IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgICBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXVxuICAgIHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW11cbiAgfSA9PiB7XG4gICAgY29uc3QgZWwgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGlmICghZWwpIHJldHVybiB7IHRleHQ6ICcnLCBtZW50aW9uczogW10sIHNsYXNoQ29tbWFuZHM6IFtdIH1cbiAgICBjb25zdCBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSA9IFtdXG4gICAgY29uc3Qgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXSA9IFtdXG4gICAgbGV0IHRleHQgPSAnJ1xuXG4gICAgY29uc3Qgd2FsayA9IChub2RlOiBOb2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgdGV4dCArPSAobm9kZSBhcyBUZXh0KS5kYXRhXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIGNvbnN0IGVsTm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgaWYgKGVsTm9kZS5kYXRhc2V0Py5tZW50aW9uID09PSAndHJ1ZScpIHtcbiAgICAgICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgICAgIGlkOiBlbE5vZGUuZGF0YXNldC5tZW50aW9uSWQgPz8gJycsXG4gICAgICAgICAgICB0eXBlOiAoZWxOb2RlLmRhdGFzZXQubWVudGlvblR5cGUgYXMgQ29udGV4dE1lbnRpb25bJ3R5cGUnXSkgPz8gJ3VzZXInLFxuICAgICAgICAgICAgbGFiZWw6IGVsTm9kZS5kYXRhc2V0Lm1lbnRpb25MYWJlbCA/PyBlbE5vZGUudGV4dENvbnRlbnQgPz8gJycsXG4gICAgICAgICAgfVxuICAgICAgICAgIG1lbnRpb25zLnB1c2gobWVudGlvbilcbiAgICAgICAgICB0ZXh0ICs9IHNlcmlhbGl6ZU1lbnRpb24obWVudGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxOb2RlLmRhdGFzZXQ/LnNsYXNoQ29tbWFuZCA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgY29uc3Qgc2xhc2g6IFNsYXNoQ29tbWFuZENoaXBEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IGVsTm9kZS5kYXRhc2V0LnNsYXNoSWQgPz8gJycsXG4gICAgICAgICAgICBsYWJlbDogZWxOb2RlLmRhdGFzZXQuc2xhc2hMYWJlbCA/PyBlbE5vZGUudGV4dENvbnRlbnQ/LnJlcGxhY2UoL15cXC8vLCAnJykgPz8gJycsXG4gICAgICAgICAgfVxuICAgICAgICAgIHNsYXNoQ29tbWFuZHMucHVzaChzbGFzaClcbiAgICAgICAgICB0ZXh0ICs9IHNlcmlhbGl6ZVNsYXNoQ29tbWFuZChzbGFzaClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxOb2RlLnRhZ05hbWUgPT09ICdCUicpIHtcbiAgICAgICAgICB0ZXh0ICs9ICdcXG4nXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgZWxOb2RlLmNoaWxkTm9kZXMuZm9yRWFjaCh3YWxrKVxuICAgICAgICBpZiAoZWxOb2RlLnRhZ05hbWUgPT09ICdESVYnIHx8IGVsTm9kZS50YWdOYW1lID09PSAnUCcpIHRleHQgKz0gJ1xcbidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbC5jaGlsZE5vZGVzLmZvckVhY2god2FsaylcbiAgICByZXR1cm4geyB0ZXh0OiB0ZXh0LnJlcGxhY2UoL1xcbiskLywgJycpLCBtZW50aW9ucywgc2xhc2hDb21tYW5kcyB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsZWFyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkgZWRpdG9yUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJydcbiAgICBjbG9zZVRyaWdnZXIoKVxuICAgIGNsb3NlU2xhc2hUcmlnZ2VyKClcbiAgfSwgW2Nsb3NlVHJpZ2dlciwgY2xvc2VTbGFzaFRyaWdnZXJdKVxuXG4gIGNvbnN0IGZvY3VzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgZWRpdG9yUmVmLFxuICAgIHRyaWdnZXIsXG4gICAgdXBkYXRlVHJpZ2dlcixcbiAgICBjbG9zZVRyaWdnZXIsXG4gICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICBzeW5jU2tpbGxUcmlnZ2VyLFxuICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgc2xhc2hUcmlnZ2VyLFxuICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICBjbG9zZVNsYXNoVHJpZ2dlcixcbiAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAsXG4gICAgc2VyaWFsaXplLFxuICAgIGNsZWFyLFxuICAgIGZvY3VzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFckQsU0FBU0MsZ0JBQWdCLFFBQVEsZ0NBQWdDO0FBQ2pFLFNBQVNDLHFCQUFxQixRQUFRLDZCQUE2QjtBQWtCbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsUUFBNEIsRUFBRUMsS0FBWSxFQUEwQjtFQUNoRyxJQUFJLENBQUNELFFBQVEsSUFBSSxDQUFDQSxRQUFRLENBQUNFLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDRSxjQUFjLENBQUMsRUFBRTtJQUN6RCxPQUFPO01BQUVDLE1BQU0sRUFBRSxLQUFLO01BQUVDLEtBQUssRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRSxDQUFDO01BQUVDLE1BQU0sRUFBRTtJQUFLLENBQUM7RUFDbkU7RUFDQSxJQUFNQyxJQUFJLEdBQUdQLEtBQUssQ0FBQ0UsY0FBYztFQUNqQyxJQUFJSyxJQUFJLENBQUNDLFFBQVEsS0FBS0MsSUFBSSxDQUFDQyxTQUFTLEVBQUU7SUFDcEMsT0FBTztNQUFFUCxNQUFNLEVBQUUsS0FBSztNQUFFQyxLQUFLLEVBQUUsRUFBRTtNQUFFQyxXQUFXLEVBQUUsQ0FBQztNQUFFQyxNQUFNLEVBQUU7SUFBSyxDQUFDO0VBQ25FO0VBQ0EsSUFBTUssSUFBSSxHQUFJSixJQUFJLENBQVVLLElBQUk7RUFDaEMsSUFBTUMsS0FBSyxHQUFHYixLQUFLLENBQUNjLFdBQVc7RUFDL0IsSUFBSUMsQ0FBQyxHQUFHRixLQUFLLEdBQUcsQ0FBQztFQUNq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LFVBQVUsQ0FBQ0MsT0FBTyxDQUFDekIsS0FBSSxDQUFDO1FBQy9CLElBQUlJLE1BQU0sQ0FBQ21CLE9BQU8sS0FBSyxLQUFLLElBQUluQixNQUFNLENBQUNtQixPQUFPLEtBQUssR0FBRyxFQUFFMUgsSUFBSSxJQUFJLElBQUk7TUFDdEU7SUFDRixDQUFDO0lBRURnRyxFQUFFLENBQUMyQixVQUFVLENBQUNDLE9BQU8sQ0FBQ3pCLEtBQUksQ0FBQztJQUMzQixPQUFPO01BQUVuRyxJQUFJLEVBQUVBLElBQUksQ0FBQ3lILE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO01BQUV4QixRQUFRLEVBQVJBLFFBQVE7TUFBRUMsYUFBYSxFQUFiQTtJQUFjLENBQUM7RUFDcEUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU0yQixLQUFLLEdBQUcvSSxXQUFXLENBQUMsWUFBTTtJQUM5QixJQUFJcUMsU0FBUyxDQUFDZSxPQUFPLEVBQUVmLFNBQVMsQ0FBQ2UsT0FBTyxDQUFDNEYsU0FBUyxHQUFHLEVBQUU7SUFDdkR2RixZQUFZLENBQUMsQ0FBQztJQUNkRSxpQkFBaUIsQ0FBQyxDQUFDO0VBQ3JCLENBQUMsRUFBRSxDQUFDRixZQUFZLEVBQUVFLGlCQUFpQixDQUFDLENBQUM7RUFFckMsSUFBTXNGLEtBQUssR0FBR2pKLFdBQVcsQ0FBQyxZQUFNO0lBQUEsSUFBQWtKLGtCQUFBO0lBQzlCLENBQUFBLGtCQUFBLEdBQUE3RyxTQUFTLENBQUNlLE9BQU8sY0FBQThGLGtCQUFBLGVBQWpCQSxrQkFBQSxDQUFtQkQsS0FBSyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU87SUFDTDVHLFNBQVMsRUFBVEEsU0FBUztJQUNUSSxPQUFPLEVBQVBBLE9BQU87SUFDUGMsYUFBYSxFQUFiQSxhQUFhO0lBQ2JFLFlBQVksRUFBWkEsWUFBWTtJQUNaRyxzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QmdDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCRSxzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QmpELFlBQVksRUFBWkEsWUFBWTtJQUNaYSxrQkFBa0IsRUFBbEJBLGtCQUFrQjtJQUNsQkMsaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJrRCwyQkFBMkIsRUFBM0JBLDJCQUEyQjtJQUMzQkksU0FBUyxFQUFUQSxTQUFTO0lBQ1Q4QixLQUFLLEVBQUxBLEtBQUs7SUFDTEUsS0FBSyxFQUFMQTtFQUNGLENBQUM7QUFDSCxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
421
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZVN0YXRlIiwic2VyaWFsaXplTWVudGlvbiIsInNlcmlhbGl6ZVNsYXNoQ29tbWFuZCIsImRldGVjdE1lbnRpb25UcmlnZ2VyIiwiZWRpdG9yRWwiLCJyYW5nZSIsImNvbnRhaW5zIiwic3RhcnRDb250YWluZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwiYW5jaG9yIiwibm9kZSIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJkYXRhIiwiY2FyZXQiLCJzdGFydE9mZnNldCIsImkiLCJydW5FbmQiLCJydW5TdGFydCIsInByZXYiLCJjaGFyQXQiLCJpc0JvdW5kYXJ5IiwidGVzdCIsImhhc1NsYXNoU3VmZml4IiwicXVlcnlTdGFydCIsInNsaWNlIiwiaW5jbHVkZXMiLCJvZmZzZXQiLCJkZXRlY3RTbGFzaFRyaWdnZXIiLCJzbGFzaEluZGV4IiwidXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidHJpZ2dlciIsInNldFRyaWdnZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNsYXNoVHJpZ2dlciIsInNldFNsYXNoVHJpZ2dlciIsImRldGVjdFRyaWdnZXIiLCJzZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJyYW5nZUNvdW50IiwiY3VycmVudCIsImdldFJhbmdlQXQiLCJkZXRlY3RTbGFzaCIsInVwZGF0ZVRyaWdnZXIiLCJuZXh0IiwiY2xvc2VUcmlnZ2VyIiwidXBkYXRlU2xhc2hUcmlnZ2VyIiwiY2xvc2VTbGFzaFRyaWdnZXIiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwibmV4dEF0UnVuTGVuZ3RoIiwibmV4dEhhc1NsYXNoIiwic2FmZU5leHQiLCJNYXRoIiwibWF4IiwiZmxvb3IiLCJhYnMiLCJfY3VycmVudCRhbmNob3IiLCJ0ZXh0Tm9kZSIsImZ1bGwiLCJjdXJyZW50UnVuTGVuIiwiY3VycmVudEhhc1NsYXNoIiwicXVlcnlMZW4iLCJsZW5ndGgiLCJiZWZvcmUiLCJhZnRlciIsIm5leHRSdW4iLCJjb25jYXQiLCJyZXBlYXQiLCJuZXh0VmFsdWUiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwiY2FyZXRPZmZzZXQiLCJzZXRTdGFydCIsIm1pbiIsImNvbGxhcHNlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJ1cGRhdGVkIiwicmVwbGFjZVRyaWdnZXJXaXRoQ2hpcCIsImNoaXBOb2RlIiwibWVudGlvbiIsIl9jdXJyZW50JGFuY2hvcjIiLCJzZXRBdHRyaWJ1dGUiLCJTdHJpbmciLCJpZCIsInR5cGUiLCJsYWJlbCIsInBhcmVudCIsInBhcmVudE5vZGUiLCJzcGFjZU5vZGUiLCJjcmVhdGVUZXh0Tm9kZSIsImluc2VydEJlZm9yZSIsIm5leHRTaWJsaW5nIiwicmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwIiwic2xhc2hDb21tYW5kIiwiX2N1cnJlbnQkYW5jaG9yMyIsInRyaWdnZXJMZW4iLCJzZXJpYWxpemUiLCJlbCIsIm1lbnRpb25zIiwic2xhc2hDb21tYW5kcyIsIndhbGsiLCJFTEVNRU5UX05PREUiLCJfZWxOb2RlJGRhdGFzZXQiLCJfZWxOb2RlJGRhdGFzZXQyIiwiZWxOb2RlIiwiZGF0YXNldCIsIl9lbE5vZGUkZGF0YXNldCRtZW50aSIsIl9yZWYiLCJfcmVmMiIsIl9lbE5vZGUkZGF0YXNldCRtZW50aTIiLCJtZW50aW9uSWQiLCJtZW50aW9uVHlwZSIsIm1lbnRpb25MYWJlbCIsInRleHRDb250ZW50IiwicHVzaCIsIl9lbE5vZGUkZGF0YXNldCRzbGFzaCIsIl9yZWYzIiwiX2VsTm9kZSRkYXRhc2V0JHNsYXNoMiIsIl9lbE5vZGUkdGV4dENvbnRlbnQiLCJzbGFzaCIsInNsYXNoSWQiLCJzbGFzaExhYmVsIiwicmVwbGFjZSIsInRhZ05hbWUiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImNsZWFyIiwiaW5uZXJIVE1MIiwiZm9jdXMiLCJfZWRpdG9yUmVmJGN1cnJlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ29udGV4dE1lbnRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgc2VyaWFsaXplTWVudGlvbiB9IGZyb20gJy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IHNlcmlhbGl6ZVNsYXNoQ29tbWFuZCB9IGZyb20gJy4uL3V0aWxzL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB0eXBlIHsgU2xhc2hDb21tYW5kQ2hpcERhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL1NsYXNoQ29tbWFuZENoaXAvYnVpbGRTbGFzaENoaXBFbGVtZW50J1xuXG5leHBvcnQgdHlwZSBNZW50aW9uVHJpZ2dlclN0YXRlID0ge1xuICBhY3RpdmU6IGJvb2xlYW5cbiAgcXVlcnk6IHN0cmluZ1xuICAvKiogQ2FudGlkYWQgZGUgYEBgIGNvbnNlY3V0aXZvcyBkZWwgdHJpZ2dlciAoYEBgIOKGkiAxLCBgQEBgIOKGkiAyKS4gTWFwZWEgYSBsYSB0YWIgZW4gb3JkZW4uICovXG4gIGF0UnVuTGVuZ3RoOiBudW1iZXJcbiAgLyoqIFBvc2ljacOzbiBkZWwgcHJpbWVyIGBAYCBkZWwgcnVuIChyZWVtcGxhem8gZGVsIGNoaXApLiAqL1xuICBhbmNob3I6IHsgbm9kZTogTm9kZTsgb2Zmc2V0OiBudW1iZXIgfSB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgU2xhc2hUcmlnZ2VyU3RhdGUgPSB7XG4gIGFjdGl2ZTogYm9vbGVhblxuICBxdWVyeTogc3RyaW5nXG4gIGFuY2hvcjogeyBub2RlOiBOb2RlOyBvZmZzZXQ6IG51bWJlciB9IHwgbnVsbFxufVxuXG4vKipcbiAqIEluc3BlY2Npb25hIGxhIHNlbGVjY2nDs24gYWN0dWFsLiBGb3JtYXRvOiBbbMOtbWl0ZSBkZSBwYWxhYnJhXSBAKyBxdWVyeSBoYXN0YSBlbCBjYXJldC5cbiAqIFBlcm1pdGUgZXNwYWNpb3Mgc2ltcGxlcyBkZW50cm8gZGVsIHF1ZXJ5IChwLiBlai4gXCJASnVhbiBQZXJlelwiKSB5IGNpZXJyYVxuICogZWwgdHJpZ2dlciBjdWFuZG8gZGV0ZWN0YSBkb3MgZXNwYWNpb3MgY29uc2VjdXRpdm9zLlxuICogTGEgdGFiIG9iamV0aXZvIGVzIGxhIHF1ZSBjb3JyZXNwb25kZSBhbCBuw7ptZXJvIGRlIGBAYCAoMSA9IHByaW1lcmEgdGFiIHZpc2libGUsIGV0Yy4pLlxuICovXG5jb25zdCBkZXRlY3RNZW50aW9uVHJpZ2dlciA9IChlZGl0b3JFbDogSFRNTEVsZW1lbnQgfCBudWxsLCByYW5nZTogUmFuZ2UpOiBNZW50aW9uVHJpZ2dlclN0YXRlID0+IHtcbiAgaWYgKCFlZGl0b3JFbCB8fCAhZWRpdG9yRWwuY29udGFpbnMocmFuZ2Uuc3RhcnRDb250YWluZXIpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCBub2RlID0gcmFuZ2Uuc3RhcnRDb250YWluZXJcbiAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCB0ZXh0ID0gKG5vZGUgYXMgVGV4dCkuZGF0YVxuICBjb25zdCBjYXJldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0XG4gIGxldCBpID0gY2FyZXQgLSAxXG4gIGlmIChpIDwgMCkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICB3aGlsZSAoaSA+PSAwICYmIHRleHRbaV0gIT09ICdAJykgaSAtPSAxXG4gIGlmIChpIDwgMCB8fCB0ZXh0W2ldICE9PSAnQCcpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3QgcnVuRW5kID0gaVxuICB3aGlsZSAoaSA+PSAwICYmIHRleHRbaV0gPT09ICdAJykge1xuICAgIGkgLT0gMVxuICB9XG4gIGNvbnN0IHJ1blN0YXJ0ID0gaSArIDFcbiAgY29uc3QgYXRSdW5MZW5ndGggPSBydW5FbmQgLSBydW5TdGFydCArIDFcbiAgY29uc3QgcHJldiA9IHJ1blN0YXJ0ID4gMCA/IHRleHQuY2hhckF0KHJ1blN0YXJ0IC0gMSkgOiAnJ1xuICBjb25zdCBpc0JvdW5kYXJ5ID0gIXByZXYgfHwgL1tcXHMoW3tdLy50ZXN0KHByZXYpXG4gIGlmICghaXNCb3VuZGFyeSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICBjb25zdCBoYXNTbGFzaFN1ZmZpeCA9IHRleHRbcnVuRW5kICsgMV0gPT09ICcvJ1xuICBjb25zdCBxdWVyeVN0YXJ0ID0gaGFzU2xhc2hTdWZmaXggPyBydW5FbmQgKyAyIDogcnVuRW5kICsgMVxuICBjb25zdCBxdWVyeSA9IHRleHQuc2xpY2UocXVlcnlTdGFydCwgY2FyZXQpXG4gIGlmICgvXFxufFxcci8udGVzdChxdWVyeSkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGlmIChxdWVyeS5pbmNsdWRlcygnICAnKSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICBxdWVyeSxcbiAgICBhdFJ1bkxlbmd0aDogaGFzU2xhc2hTdWZmaXggPyAtYXRSdW5MZW5ndGggOiBhdFJ1bkxlbmd0aCxcbiAgICBhbmNob3I6IHsgbm9kZSwgb2Zmc2V0OiBydW5TdGFydCB9LFxuICB9XG59XG5cbmNvbnN0IGRldGVjdFNsYXNoVHJpZ2dlciA9IChlZGl0b3JFbDogSFRNTEVsZW1lbnQgfCBudWxsLCByYW5nZTogUmFuZ2UpOiBTbGFzaFRyaWdnZXJTdGF0ZSA9PiB7XG4gIGlmICghZWRpdG9yRWwgfHwgIWVkaXRvckVsLmNvbnRhaW5zKHJhbmdlLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuICBjb25zdCBub2RlID0gcmFuZ2Uuc3RhcnRDb250YWluZXJcbiAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGNvbnN0IHRleHQgPSAobm9kZSBhcyBUZXh0KS5kYXRhXG4gIGNvbnN0IGNhcmV0ID0gcmFuZ2Uuc3RhcnRPZmZzZXRcbiAgbGV0IGkgPSBjYXJldCAtIDFcbiAgaWYgKGkgPCAwKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgd2hpbGUgKGkgPj0gMCAmJiB0ZXh0W2ldICE9PSAnLycpIGkgLT0gMVxuICBpZiAoaSA8IDAgfHwgdGV4dFtpXSAhPT0gJy8nKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG5cbiAgY29uc3Qgc2xhc2hJbmRleCA9IGlcbiAgY29uc3QgcHJldiA9IHNsYXNoSW5kZXggPiAwID8gdGV4dC5jaGFyQXQoc2xhc2hJbmRleCAtIDEpIDogJydcbiAgY29uc3QgaXNCb3VuZGFyeSA9ICFwcmV2IHx8IC9bXFxzKFt7XS8udGVzdChwcmV2KVxuICBpZiAoIWlzQm91bmRhcnkpIHtcbiAgICByZXR1cm4geyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGFuY2hvcjogbnVsbCB9XG4gIH1cblxuICBjb25zdCBxdWVyeSA9IHRleHQuc2xpY2Uoc2xhc2hJbmRleCArIDEsIGNhcmV0KVxuICBpZiAoL1xcbnxcXHIvLnRlc3QocXVlcnkpKSB7XG4gICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICB9XG4gIGlmIChxdWVyeS5pbmNsdWRlcygnICAnKSkge1xuICAgIHJldHVybiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH1cbiAgfVxuXG4gIHJldHVybiB7IGFjdGl2ZTogdHJ1ZSwgcXVlcnksIGFuY2hvcjogeyBub2RlLCBvZmZzZXQ6IHNsYXNoSW5kZXggfSB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDb250ZXh0TWVudGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFt0cmlnZ2VyLCBzZXRUcmlnZ2VyXSA9IHVzZVN0YXRlPE1lbnRpb25UcmlnZ2VyU3RhdGU+KHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIHF1ZXJ5OiAnJyxcbiAgICBhdFJ1bkxlbmd0aDogMCxcbiAgICBhbmNob3I6IG51bGwsXG4gIH0pXG4gIGNvbnN0IFtzbGFzaFRyaWdnZXIsIHNldFNsYXNoVHJpZ2dlcl0gPSB1c2VTdGF0ZTxTbGFzaFRyaWdnZXJTdGF0ZT4oe1xuICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgcXVlcnk6ICcnLFxuICAgIGFuY2hvcjogbnVsbCxcbiAgfSlcblxuICBjb25zdCBkZXRlY3RUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCk6IE1lbnRpb25UcmlnZ2VyU3RhdGUgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwIHx8ICFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCwgYW5jaG9yOiBudWxsIH1cbiAgICB9XG4gICAgcmV0dXJuIGRldGVjdE1lbnRpb25UcmlnZ2VyKGVkaXRvclJlZi5jdXJyZW50LCBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSlcbiAgfSwgW10pXG5cbiAgY29uc3QgZGV0ZWN0U2xhc2ggPSB1c2VDYWxsYmFjaygoKTogU2xhc2hUcmlnZ2VyU3RhdGUgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwIHx8ICFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuIHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhbmNob3I6IG51bGwgfVxuICAgIH1cbiAgICByZXR1cm4gZGV0ZWN0U2xhc2hUcmlnZ2VyKGVkaXRvclJlZi5jdXJyZW50LCBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlVHJpZ2dlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gZGV0ZWN0VHJpZ2dlcigpXG4gICAgc2V0VHJpZ2dlcihuZXh0KVxuICAgIHJldHVybiBuZXh0XG4gIH0sIFtkZXRlY3RUcmlnZ2VyXSlcblxuICBjb25zdCBjbG9zZVRyaWdnZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VHJpZ2dlcih7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAsIGFuY2hvcjogbnVsbCB9KVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVTbGFzaFRyaWdnZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IGRldGVjdFNsYXNoKClcbiAgICBzZXRTbGFzaFRyaWdnZXIobmV4dClcbiAgICByZXR1cm4gbmV4dFxuICB9LCBbZGV0ZWN0U2xhc2hdKVxuXG4gIGNvbnN0IGNsb3NlU2xhc2hUcmlnZ2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNsYXNoVHJpZ2dlcih7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYW5jaG9yOiBudWxsIH0pXG4gIH0sIFtdKVxuXG4gIC8qKlxuICAgKiBBanVzdGEgbGEgY2FudGlkYWQgZGUgYEBgIGRlbCB0cmlnZ2VyIGFjdGl2byBzaW4gcGVyZGVyIGVsIHF1ZXJ5IGFjdHVhbC5cbiAgICogRWouOiBgQEBhYmNgIC0+IGBAYWJjYCBhbCBjYW1iaWFyIGRlIHRhYi5cbiAgICovXG4gIGNvbnN0IHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGggPSB1c2VDYWxsYmFjayhcbiAgICAobmV4dEF0UnVuTGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IG5leHRIYXNTbGFzaCA9IG5leHRBdFJ1bkxlbmd0aCA8IDBcbiAgICAgIGNvbnN0IHNhZmVOZXh0ID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcihNYXRoLmFicyhuZXh0QXRSdW5MZW5ndGgpKSlcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBkZXRlY3RUcmlnZ2VyKClcbiAgICAgIGlmICghY3VycmVudC5hY3RpdmUgfHwgIWN1cnJlbnQuYW5jaG9yKSByZXR1cm5cblxuICAgICAgY29uc3QgeyBub2RlLCBvZmZzZXQgfSA9IGN1cnJlbnQuYW5jaG9yXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5URVhUX05PREUpIHJldHVyblxuICAgICAgY29uc3QgdGV4dE5vZGUgPSBub2RlIGFzIFRleHRcbiAgICAgIGNvbnN0IGZ1bGwgPSB0ZXh0Tm9kZS5kYXRhXG4gICAgICBjb25zdCBjdXJyZW50UnVuTGVuID0gTWF0aC5hYnMoY3VycmVudC5hdFJ1bkxlbmd0aClcbiAgICAgIGNvbnN0IGN1cnJlbnRIYXNTbGFzaCA9IGN1cnJlbnQuYXRSdW5MZW5ndGggPCAwXG4gICAgICBjb25zdCBxdWVyeUxlbiA9IGN1cnJlbnRSdW5MZW4gKyAoY3VycmVudEhhc1NsYXNoID8gMSA6IDApICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgIGNvbnN0IGJlZm9yZSA9IGZ1bGwuc2xpY2UoMCwgb2Zmc2V0KVxuICAgICAgY29uc3QgYWZ0ZXIgPSBmdWxsLnNsaWNlKG9mZnNldCArIHF1ZXJ5TGVuKVxuICAgICAgY29uc3QgbmV4dFJ1biA9IG5leHRIYXNTbGFzaCA/IGAkeydAJy5yZXBlYXQoc2FmZU5leHQpfS9gIDogJ0AnLnJlcGVhdChzYWZlTmV4dClcbiAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGAke2JlZm9yZX0ke25leHRSdW59JHtjdXJyZW50LnF1ZXJ5fSR7YWZ0ZXJ9YFxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIHRleHROb2RlLmRhdGEgPSBuZXh0VmFsdWVcblxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICBjb25zdCBjYXJldE9mZnNldCA9IGJlZm9yZS5sZW5ndGggKyBuZXh0UnVuLmxlbmd0aCArIGN1cnJlbnQucXVlcnkubGVuZ3RoXG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCBNYXRoLm1pbihjYXJldE9mZnNldCwgdGV4dE5vZGUuZGF0YS5sZW5ndGgpKVxuICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB1cGRhdGVkID0gZGV0ZWN0VHJpZ2dlcigpXG4gICAgICBzZXRUcmlnZ2VyKHVwZGF0ZWQpXG4gICAgfSxcbiAgICBbZGV0ZWN0VHJpZ2dlcl1cbiAgKVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhemEgZWwgYEBxdWVyeWAgcGVuZGllbnRlIHBvciB1biBjaGlwIGF0w7NtaWNvIGNvbiBsYSBtZW50aW9uLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgY2FsbGVyIHByb3ZlYSBlbCBET00gZGVsIGNoaXAgKHNlIGluc2VydGEgdGFsIGN1YWwpLlxuICAgKi9cbiAgY29uc3QgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcCA9IHVzZUNhbGxiYWNrKFxuICAgIChjaGlwTm9kZTogSFRNTEVsZW1lbnQsIG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gZGV0ZWN0VHJpZ2dlcigpXG4gICAgICBpZiAoIWN1cnJlbnQuYWN0aXZlIHx8ICFjdXJyZW50LmFuY2hvcikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgbm9kZSwgb2Zmc2V0IH0gPSBjdXJyZW50LmFuY2hvclxuICAgICAgY29uc3QgdGV4dE5vZGUgPSBub2RlIGFzIFRleHRcbiAgICAgIGNvbnN0IGZ1bGwgPSB0ZXh0Tm9kZS5kYXRhXG4gICAgICBjb25zdCBjdXJyZW50UnVuTGVuID0gTWF0aC5hYnMoY3VycmVudC5hdFJ1bkxlbmd0aClcbiAgICAgIGNvbnN0IGN1cnJlbnRIYXNTbGFzaCA9IGN1cnJlbnQuYXRSdW5MZW5ndGggPCAwXG4gICAgICBjb25zdCBxdWVyeUxlbiA9IGN1cnJlbnRSdW5MZW4gKyAoY3VycmVudEhhc1NsYXNoID8gMSA6IDApICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyBxdWVyeUxlbilcblxuICAgICAgLy8gVHJ1bmNhciBlbCB0ZXh0byBoYXN0YSBhbnRlcyBkZWwgcnVuIGRlIGBA4oCmYFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICB0ZXh0Tm9kZS5kYXRhID0gZnVsbC5zbGljZSgwLCBvZmZzZXQpXG5cbiAgICAgIC8vIEluc2VydGFyIGVsIGNoaXAganVzdG8gZGVzcHXDqXMgZGVsIG5vZG8gZGUgdGV4dG9cbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uJywgJ3RydWUnKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24taWQnLCBTdHJpbmcobWVudGlvbi5pZCkpXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgbWVudGlvbi50eXBlKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tbGFiZWwnLCBtZW50aW9uLmxhYmVsKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuXG4gICAgICBjb25zdCBwYXJlbnQgPSB0ZXh0Tm9kZS5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHNwYWNlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcXHUwMGEwJHthZnRlcn1gKVxuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShjaGlwTm9kZSwgdGV4dE5vZGUubmV4dFNpYmxpbmcpXG4gICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHNwYWNlTm9kZSwgY2hpcE5vZGUubmV4dFNpYmxpbmcpXG5cbiAgICAgIC8vIFJlcG9zaWNpb25hciBjYXJldCBkZXNwdcOpcyBkZWwgY2hpcCAoYW50ZXMgZGVsIGVzcGFjaW8gbm9uLWJyZWFraW5nKVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICByYW5nZS5zZXRTdGFydChzcGFjZU5vZGUsIDEpXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICB9XG5cbiAgICAgIGNsb3NlVHJpZ2dlcigpXG4gICAgfSxcbiAgICBbZGV0ZWN0VHJpZ2dlciwgY2xvc2VUcmlnZ2VyXVxuICApXG5cbiAgY29uc3QgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwID0gdXNlQ2FsbGJhY2soXG4gICAgKGNoaXBOb2RlOiBIVE1MRWxlbWVudCwgc2xhc2hDb21tYW5kOiBTbGFzaENvbW1hbmRDaGlwRGF0YSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IGRldGVjdFNsYXNoKClcbiAgICAgIGlmICghY3VycmVudC5hY3RpdmUgfHwgIWN1cnJlbnQuYW5jaG9yKSByZXR1cm5cblxuICAgICAgY29uc3QgeyBub2RlLCBvZmZzZXQgfSA9IGN1cnJlbnQuYW5jaG9yXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IG5vZGUgYXMgVGV4dFxuICAgICAgY29uc3QgZnVsbCA9IHRleHROb2RlLmRhdGFcbiAgICAgIGNvbnN0IHRyaWdnZXJMZW4gPSAxICsgY3VycmVudC5xdWVyeS5sZW5ndGhcbiAgICAgIGNvbnN0IGFmdGVyID0gZnVsbC5zbGljZShvZmZzZXQgKyB0cmlnZ2VyTGVuKVxuXG4gICAgICB0ZXh0Tm9kZS5kYXRhID0gZnVsbC5zbGljZSgwLCBvZmZzZXQpXG5cbiAgICAgIGNoaXBOb2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1zbGFzaC1jb21tYW5kJywgJ3RydWUnKVxuICAgICAgY2hpcE5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLXNsYXNoLWlkJywgU3RyaW5nKHNsYXNoQ29tbWFuZC5pZCkpXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhc2gtbGFiZWwnLCBzbGFzaENvbW1hbmQubGFiZWwpXG4gICAgICBjaGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdmYWxzZScpXG5cbiAgICAgIGNvbnN0IHBhcmVudCA9IHRleHROb2RlLnBhcmVudE5vZGVcbiAgICAgIGlmICghcGFyZW50KSByZXR1cm5cblxuICAgICAgY29uc3Qgc3BhY2VOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYCAke2FmdGVyfWApXG4gICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGNoaXBOb2RlLCB0ZXh0Tm9kZS5uZXh0U2libGluZylcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoc3BhY2VOb2RlLCBjaGlwTm9kZS5uZXh0U2libGluZylcblxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICByYW5nZS5zZXRTdGFydChzcGFjZU5vZGUsIDEpXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICB9XG5cbiAgICAgIGNsb3NlU2xhc2hUcmlnZ2VyKClcbiAgICB9LFxuICAgIFtkZXRlY3RTbGFzaCwgY2xvc2VTbGFzaFRyaWdnZXJdXG4gIClcblxuICBjb25zdCBzZXJpYWxpemUgPSB1c2VDYWxsYmFjaygoKToge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICB9ID0+IHtcbiAgICBjb25zdCBlbCA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkgcmV0dXJuIHsgdGV4dDogJycsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfVxuICAgIGNvbnN0IG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdID0gW11cbiAgICBjb25zdCBzbGFzaENvbW1hbmRzOiBTbGFzaENvbW1hbmRDaGlwRGF0YVtdID0gW11cbiAgICBsZXQgdGV4dCA9ICcnXG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGU6IE5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICB0ZXh0ICs9IChub2RlIGFzIFRleHQpLmRhdGFcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgY29uc3QgZWxOb2RlID0gbm9kZSBhcyBIVE1MRWxlbWVudFxuICAgICAgICBpZiAoZWxOb2RlLmRhdGFzZXQ/Lm1lbnRpb24gPT09ICd0cnVlJykge1xuICAgICAgICAgIGNvbnN0IG1lbnRpb246IENvbnRleHRNZW50aW9uID0ge1xuICAgICAgICAgICAgaWQ6IGVsTm9kZS5kYXRhc2V0Lm1lbnRpb25JZCA/PyAnJyxcbiAgICAgICAgICAgIHR5cGU6IChlbE5vZGUuZGF0YXNldC5tZW50aW9uVHlwZSBhcyBDb250ZXh0TWVudGlvblsndHlwZSddKSA/PyAndXNlcicsXG4gICAgICAgICAgICBsYWJlbDogZWxOb2RlLmRhdGFzZXQubWVudGlvbkxhYmVsID8/IGVsTm9kZS50ZXh0Q29udGVudCA/PyAnJyxcbiAgICAgICAgICB9XG4gICAgICAgICAgbWVudGlvbnMucHVzaChtZW50aW9uKVxuICAgICAgICAgIHRleHQgKz0gc2VyaWFsaXplTWVudGlvbihtZW50aW9uKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmIChlbE5vZGUuZGF0YXNldD8uc2xhc2hDb21tYW5kID09PSAndHJ1ZScpIHtcbiAgICAgICAgICBjb25zdCBzbGFzaDogU2xhc2hDb21tYW5kQ2hpcERhdGEgPSB7XG4gICAgICAgICAgICBpZDogZWxOb2RlLmRhdGFzZXQuc2xhc2hJZCA/PyAnJyxcbiAgICAgICAgICAgIGxhYmVsOiBlbE5vZGUuZGF0YXNldC5zbGFzaExhYmVsID8/IGVsTm9kZS50ZXh0Q29udGVudD8ucmVwbGFjZSgvXlxcLy8sICcnKSA/PyAnJyxcbiAgICAgICAgICB9XG4gICAgICAgICAgc2xhc2hDb21tYW5kcy5wdXNoKHNsYXNoKVxuICAgICAgICAgIHRleHQgKz0gc2VyaWFsaXplU2xhc2hDb21tYW5kKHNsYXNoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmIChlbE5vZGUudGFnTmFtZSA9PT0gJ0JSJykge1xuICAgICAgICAgIHRleHQgKz0gJ1xcbidcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBlbE5vZGUuY2hpbGROb2Rlcy5mb3JFYWNoKHdhbGspXG4gICAgICAgIGlmIChlbE5vZGUudGFnTmFtZSA9PT0gJ0RJVicgfHwgZWxOb2RlLnRhZ05hbWUgPT09ICdQJykgdGV4dCArPSAnXFxuJ1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsLmNoaWxkTm9kZXMuZm9yRWFjaCh3YWxrKVxuICAgIHJldHVybiB7IHRleHQ6IHRleHQucmVwbGFjZSgvXFxuKyQvLCAnJyksIG1lbnRpb25zLCBzbGFzaENvbW1hbmRzIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgY2xlYXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSBlZGl0b3JSZWYuY3VycmVudC5pbm5lckhUTUwgPSAnJ1xuICAgIGNsb3NlVHJpZ2dlcigpXG4gICAgY2xvc2VTbGFzaFRyaWdnZXIoKVxuICB9LCBbY2xvc2VUcmlnZ2VyLCBjbG9zZVNsYXNoVHJpZ2dlcl0pXG5cbiAgY29uc3QgZm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgfSwgW10pXG5cbiAgcmV0dXJuIHtcbiAgICBlZGl0b3JSZWYsXG4gICAgdHJpZ2dlcixcbiAgICB1cGRhdGVUcmlnZ2VyLFxuICAgIGNsb3NlVHJpZ2dlcixcbiAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgc2xhc2hUcmlnZ2VyLFxuICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICBjbG9zZVNsYXNoVHJpZ2dlcixcbiAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAsXG4gICAgc2VyaWFsaXplLFxuICAgIGNsZWFyLFxuICAgIGZvY3VzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFckQsU0FBU0MsZ0JBQWdCLFFBQVEsZ0NBQWdDO0FBQ2pFLFNBQVNDLHFCQUFxQixRQUFRLDZCQUE2QjtBQWtCbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsUUFBNEIsRUFBRUMsS0FBWSxFQUEwQjtFQUNoRyxJQUFJLENBQUNELFFBQVEsSUFBSSxDQUFDQSxRQUFRLENBQUNFLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDRSxjQUFjLENBQUMsRUFBRTtJQUN6RCxPQUFPO01BQUVDLE1BQU0sRUFBRSxLQUFLO01BQUVDLEtBQUssRUFBRSxFQUFFO01BQUVDLFdBQVcsRUFBRSxDQUFDO01BQUVDLE1BQU0sRUFBRTtJQUFLLENBQUM7RUFDbkU7RUFDQSxJQUFNQyxJQUFJLEdBQUdQLEtBQUssQ0FBQ0UsY0FBYztFQUNqQyxJQUFJSyxJQUFJLENBQUNDLFFBQVEsS0FBS0MsSUFBSSxDQUFDQyxTQUFTLEVBQUU7SUFDcEMsT0FBTztNQUFFUCxNQUFNLEVBQUUsS0FBSztN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
|
|
@@ -100,6 +100,13 @@ export var useContextPinPopover = function useContextPinPopover(_ref) {
|
|
|
100
100
|
var raw = item.raw;
|
|
101
101
|
var clientId = raw.clientId != null ? Number(raw.clientId) : undefined;
|
|
102
102
|
var clientName = (_raw$clientName = raw.clientName) !== null && _raw$clientName !== void 0 ? _raw$clientName : undefined;
|
|
103
|
+
console.info('[useContextPinPopover] commitPin — ASIGNANDO contexto:', {
|
|
104
|
+
type: item.type,
|
|
105
|
+
rawId: raw.id,
|
|
106
|
+
rawName: raw.name,
|
|
107
|
+
projectName: raw.projectName,
|
|
108
|
+
clientId: clientId
|
|
109
|
+
});
|
|
103
110
|
if (item.type === 'client') {
|
|
104
111
|
var _raw$totalProyectos;
|
|
105
112
|
setProject(null);
|
|
@@ -225,4 +232,4 @@ export var useContextPinPopover = function useContextPinPopover(_ref) {
|
|
|
225
232
|
popoverNode: popoverNode
|
|
226
233
|
};
|
|
227
234
|
};
|
|
228
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwianN4IiwiX2pzeCIsIlBJTl9BTExPV0VEX1RZUEVTIiwiUElOX0RFRkFVTFRfVFlQRSIsInVzZUNvbnRleHRQaW5Qb3BvdmVyIiwiX3JlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJ0b3BBbmNob3JSZWYiLCJ0cmlnZ2VyUmVmIiwiZW5hYmxlZFR5cGVzIiwib25QaW5uZWQiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwic2V0Q2hpcHNQcm9qZWN0IiwiekluZGV4IiwiYWxsb3dlZFR5cGVzIiwibGVuZ3RoIiwiX3VzZVN0YXRlIiwiaW5jbHVkZXMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGU1IiwiYm90dG9tIiwibGVmdCIsIndpZHRoIiwiX3VzZVN0YXRlNiIsInBvcyIsInNldFBvcyIsIl91c2VFbnRpdHlTZWFyY2giLCJpdGVtcyIsImxvYWRpbmciLCJlcnJvciIsImhpZGVSZWNlbnRzTGFiZWwiLCJoYXNNb3JlIiwiaXNMb2FkaW5nTW9yZSIsImxvYWRNb3JlIiwic2VhcmNoVmFsdWUiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsInBvc2l0aW9uUG9wb3ZlciIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1ciIsIl90b3BBbmNob3JSZWYkY3VycmVudCIsIl90b3BSZWN0JHRvcCIsImlucHV0UmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BSZWN0IiwiYW5jaG9yVG9wIiwidG9wIiwidmlld3BvcnRXIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInZpZXdwb3J0SCIsImlubmVySGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImNsb3NlIiwidG9nZ2xlIiwicHJldiIsImNvbW1pdFBpbiIsIml0ZW0iLCJfcmF3JGNsaWVudE5hbWUiLCJyYXciLCJjbGllbnRJZCIsIk51bWJlciIsInVuZGVmaW5lZCIsImNsaWVudE5hbWUiLCJ0eXBlIiwiX3JhdyR0b3RhbFByb3llY3RvcyIsImlkIiwibmFtZSIsInRvdGFsUHJveWVjdG9zIiwiX29iamVjdFNwcmVhZCIsImZlZUlkIiwiY2xpZW50IiwicHJvamVjdElkIiwiU3RyaW5nIiwicHJvamVjdE5hbWUiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVQb2ludGVyRG93bk91dHNpZGUiLCJtb3VzZUV2ZW50IiwiX3BvcG92ZXJBbmNob3JSZWYkY3VyMiIsIl90cmlnZ2VyUmVmJGN1cnJlbnQiLCJfY2xvc2VzdCIsIl9yZWYyIiwidGFyZ2V0IiwiY29udGFpbnMiLCJvdmVybGF5IiwiY2xvc2VzdCIsImNhbGwiLCJjb25jYXQiLCJkb2N1bWVudCIsInBvcG92ZXJOb2RlIiwiX2RlZmluZVByb3BlcnR5IiwiJGJvdHRvbSIsIiRsZWZ0IiwiJHdpZHRoIiwiJHpJbmRleCIsIm9uTW91c2VEb3duIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImNoaWxkcmVuIiwib25UeXBlQ2hhbmdlIiwib25SZWFjaExpc3RFbmQiLCJvbkl0ZW1TZWxlY3RlZCIsInNob3dTZWFyY2hJbnB1dCIsImhpZGVUYWJQcmVmaXgiLCJzZWFyY2hQbGFjZWhvbGRlciIsImRlZmF1bHRWYWx1ZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25SZXF1ZXN0Q2xvc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlQ29udGV4dFBpblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ29udGV4dE1lbnRpb25Qb3BvdmVyLFxuICBNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSLFxuICBTQ01QQW5jaG9yLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyB1c2VFbnRpdHlTZWFyY2ggfSBmcm9tICcuL3VzZUVudGl0eVNlYXJjaCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuLyoqIFRpcG9zIHBpbmVhYmxlcyBjb21vIGNvbnRleHRvIHBlcnNpc3RlbnRlIChSRkMgwqc2OiBubyBpbmNsdXllIGB1c2VyYCwgcXVlIGVzIHNvbG8gbWVuY2nDs24pLiAqL1xuY29uc3QgUElOX0FMTE9XRURfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snXVxuY29uc3QgUElOX0RFRkFVTFRfVFlQRTogQ29udGV4dEVudGl0eVR5cGUgPSAncHJvamVjdCdcblxuZXhwb3J0IHR5cGUgVXNlQ29udGV4dFBpblBvcG92ZXJPcHRpb25zID0ge1xuICAvKiogV3JhcHBlciBkZWwgTUFJQUlucHV0OiBkZWZpbmUgYW5jaG8geSBhbGluZWFjacOzbiBob3Jpem9udGFsIChpZ3VhbCBxdWUgQC1tZW50aW9ucykuICovXG4gIHBvcG92ZXJBbmNob3JSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+XG4gIC8qKiBGaWxhIGRlbCBjaGlwIC8gYmFycmEgZGUgY29udGV4dG86IGRlZmluZSBlbCBib3JkZSBzdXBlcmlvciB2ZXJ0aWNhbCBkZWwgcG9wb3Zlci4gKi9cbiAgdG9wQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIEJvdMOzbiBcIisgQ29udGV4dG9cIjsgbm8gY2VycmFyIGFsIGhhY2VyIGNsaWNrIGVuIGVsIHRyaWdnZXIuICovXG4gIHRyaWdnZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAvKiogT3ZlcnJpZGUgZGVsIHNldCBkZSB0YWJzIHBpbmVhYmxlczsgcG9yIGRlZmVjdG8gY2xpZW50ZS9wcm95ZWN0by90YXJlYS4gKi9cbiAgZW5hYmxlZFR5cGVzPzogQ29udGV4dEVudGl0eVR5cGVbXVxuICAvKiogQ2FsbGJhY2sgdHJhcyBmaWphciB1biBjb250ZXh0byAoYW5hbHl0aWNzIC8gY2llcnJlIGV4dGVybm8pLiAqL1xuICBvblBpbm5lZD86IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW0pID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgVXNlQ29udGV4dFBpblBvcG92ZXJSZXR1cm4gPSB7XG4gIG9wZW46IGJvb2xlYW5cbiAgLyoqIEFicmUvY2llcnJhIGVsIHBvcG92ZXIgKGhhbmRsZXIgZGVsIGJvdMOzbiBcIisgQ29udGV4dG9cIikuICovXG4gIHRvZ2dsZTogKCkgPT4gdm9pZFxuICBjbG9zZTogKCkgPT4gdm9pZFxuICAvKiogTm9kbyBkZWwgcG9wb3ZlcjsgZWwgY29uc3VtZXIgZGViZSBwb3J0YXJsbyBjb24gYGNyZWF0ZVBvcnRhbGAuICovXG4gIHBvcG92ZXJOb2RlOiBSZWFjdE5vZGUgfCBudWxsXG59XG5cbi8qKlxuICogU2VndW5kbyBwdW50byBkZSBlbnRyYWRhIGRlbCBidXNjYWRvciBkZSBjb250ZXh0byAoUkZDIMKnNik6IGVsIG1pc21vIG1vdG9yXG4gKiAoYHVzZUVudGl0eVNlYXJjaGAgKyBgQ29udGV4dE1lbnRpb25Qb3BvdmVyYCkgcGVybyBlbCBjb21taXQgZmlqYSB1biAqKnBpbioqXG4gKiBwZXJzaXN0ZW50ZSBlbiBlbCBjb250ZXh0byBnbG9iYWwgZW4gdmV6IGRlIGluc2VydGFyIHVuYSBtZW5jacOzbi5cbiAqXG4gKiBKZXJhcnF1w61hIG1vbm8tY29udGV4dG8gKFJGQyDCpzUuMSk6IHVuIHBpbiBhIGxhIHZlejsgZmlqYXIgdW5vIHJlZW1wbGF6YSBhbFxuICogYW50ZXJpb3IgeSBhcnJhc3RyYSBzdSBzY29wZSBoYWNpYSBhcnJpYmEgKHRhcmVhIOKHkiBwcm95ZWN0bytjbGllbnRlLCBldGMuKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUNvbnRleHRQaW5Qb3BvdmVyID0gKHtcbiAgcG9wb3ZlckFuY2hvclJlZixcbiAgdG9wQW5jaG9yUmVmLFxuICB0cmlnZ2VyUmVmLFxuICBlbmFibGVkVHlwZXMsXG4gIG9uUGlubmVkLFxufTogVXNlQ29udGV4dFBpblBvcG92ZXJPcHRpb25zKTogVXNlQ29udGV4dFBpblBvcG92ZXJSZXR1cm4gPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IHNldFByb2plY3QsIHNldENsaWVudCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgekluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMjAwLCAnb3ZlcmxheScpXG5cbiAgY29uc3QgYWxsb3dlZFR5cGVzID0gZW5hYmxlZFR5cGVzICYmIGVuYWJsZWRUeXBlcy5sZW5ndGggPiAwID8gZW5hYmxlZFR5cGVzIDogUElOX0FMTE9XRURfVFlQRVNcbiAgY29uc3QgW2FjdGl2ZVR5cGUsIHNldEFjdGl2ZVR5cGVdID0gdXNlU3RhdGU8Q29udGV4dEVudGl0eVR5cGU+KFxuICAgIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhQSU5fREVGQVVMVF9UWVBFKSA/IFBJTl9ERUZBVUxUX1RZUEUgOiBhbGxvd2VkVHlwZXNbMF1cbiAgKVxuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Bvcywgc2V0UG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7IGJvdHRvbTogMCwgbGVmdDogMCwgd2lkdGg6IDAgfSlcblxuICAvLyBTY29wZSBzaW4gcmVzdHJpY2Npw7NuOiBkZXNkZSBlbCBib3TDs24gc2UgYnVzY2EgbGlicmVtZW50ZSBjdWFscXVpZXIgZW50aWRhZCAobW9kbyBnbG9iYWwpLlxuICBjb25zdCB7IGl0ZW1zLCBsb2FkaW5nLCBlcnJvciwgaGlkZVJlY2VudHNMYWJlbCwgaGFzTW9yZSwgaXNMb2FkaW5nTW9yZSwgbG9hZE1vcmUsIHNlYXJjaFZhbHVlLCB1cGRhdGVTZWFyY2hWYWx1ZSB9ID1cbiAgICB1c2VFbnRpdHlTZWFyY2goYWN0aXZlVHlwZSlcblxuICBjb25zdCBwb3NpdGlvblBvcG92ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRSZWN0ID0gcG9wb3ZlckFuY2hvclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGlmICghaW5wdXRSZWN0IHx8IGlucHV0UmVjdC53aWR0aCA8PSAwKSByZXR1cm5cbiAgICBjb25zdCB0b3BSZWN0ID0gdG9wQW5jaG9yUmVmPy5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGFuY2hvclRvcCA9IHRvcFJlY3Q/LnRvcCA/PyBpbnB1dFJlY3QudG9wXG4gICAgY29uc3Qgdmlld3BvcnRXID0gd2luZG93LmlubmVyV2lkdGhcbiAgICBjb25zdCB2aWV3cG9ydEggPSB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICBjb25zdCB7IHdpZHRoIH0gPSBpbnB1dFJlY3RcbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoOCwgTWF0aC5taW4odmlld3BvcnRXIC0gd2lkdGggLSA4LCBpbnB1dFJlY3QubGVmdCkpXG4gICAgLyoqIH40cHggc29icmUgZWwgYm9yZGUgc3VwZXJpb3IgZGUgbGEgYmFycmEgZGUgY29udGV4dG8gKGNoaXApLCBubyBkZWwgaW5wdXQuICovXG4gICAgc2V0UG9zKHsgd2lkdGgsIGxlZnQsIGJvdHRvbTogdmlld3BvcnRIIC0gYW5jaG9yVG9wICsgNCB9KVxuICB9LCBbcG9wb3ZlckFuY2hvclJlZiwgdG9wQW5jaG9yUmVmXSlcblxuICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKVxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlKCcnKVxuICB9LCBbdXBkYXRlU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRPcGVuKHByZXYgPT4ge1xuICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSlcbiAgfSwgW3Bvc2l0aW9uUG9wb3ZlciwgdXBkYXRlU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IGNvbW1pdFBpbiA9IHVzZUNhbGxiYWNrKFxuICAgIChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHsgcmF3IH0gPSBpdGVtXG4gICAgICBjb25zdCBjbGllbnRJZCA9IHJhdy5jbGllbnRJZCAhPSBudWxsID8gTnVtYmVyKHJhdy5jbGllbnRJZCkgOiB1bmRlZmluZWRcbiAgICAgIGNvbnN0IGNsaWVudE5hbWUgPSByYXcuY2xpZW50TmFtZSA/PyB1bmRlZmluZWRcblxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICBzZXRUYXNrKG51bGwpXG4gICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKHJhdy5pZCksIG5hbWU6IHJhdy5uYW1lLCB0b3RhbFByb3llY3RvczogcmF3LnRvdGFsUHJveWVjdG9zID8/IHVuZGVmaW5lZCB9KVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgICAgICBzZXRUYXNrKG51bGwpXG4gICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgIGlkOiBOdW1iZXIocmF3LmlkKSxcbiAgICAgICAgICBuYW1lOiByYXcubmFtZSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocmF3LmZlZUlkICE9IG51bGwgPyB7IGZlZUlkOiByYXcuZmVlSWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50OiB7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSA/PyAnJyB9IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICAgIC8vIGNoaXBzUHJvamVjdCBoYWNlIHZpc2libGUgZWwgcGluIGVuIGVsIGNoaXAgZGVsIG9ycXVlc3RhZG9yIChSRkMgwqc3KS5cbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHsgcHJvamVjdElkOiBTdHJpbmcocmF3LmlkKSwgcHJvamVjdE5hbWU6IHJhdy5uYW1lLCBjbGllbnROYW1lOiBjbGllbnROYW1lID8/ICcnIH0pXG4gICAgICAgIHNldENsaWVudChjbGllbnRJZCAhPSBudWxsID8geyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgPz8gJycgfSA6IG51bGwpXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIC8vIEVsIGl0ZW0gZGUgdGFyZWEgbm8gdHJhZSBwcm9qZWN0SWQgZmlhYmxlOyBzdWJpbW9zIGxvIGRpc3BvbmlibGUgKHByb3llY3RvIHBvciBub21icmUsIGNsaWVudGUgcG9yIGlkKS5cbiAgICAgICAgc2V0VGFzayh7IGlkOiByYXcuaWQsIG5hbWU6IHJhdy5uYW1lLCAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QoXG4gICAgICAgICAgcmF3LnByb2plY3ROYW1lID8geyBwcm9qZWN0SWQ6ICcnLCBwcm9qZWN0TmFtZTogcmF3LnByb2plY3ROYW1lLCBjbGllbnROYW1lOiBjbGllbnROYW1lID8/ICcnIH0gOiBudWxsXG4gICAgICAgIClcbiAgICAgICAgaWYgKGNsaWVudElkICE9IG51bGwpIHNldENsaWVudCh7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSA/PyAnJyB9KVxuICAgICAgfVxuXG4gICAgICBvblBpbm5lZD8uKGl0ZW0pXG4gICAgICBjbG9zZSgpXG4gICAgfSxcbiAgICBbc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QsIG9uUGlubmVkLCBjbG9zZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvcGVuKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHBvc2l0aW9uUG9wb3ZlcigpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZXIsIHRydWUpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZXIpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZXIpXG4gICAgfVxuICB9LCBbb3BlbiwgcG9zaXRpb25Qb3BvdmVyXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9IChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBtb3VzZUV2ZW50LnRhcmdldCBhcyBOb2RlIHwgbnVsbFxuICAgICAgaWYgKCF0YXJnZXQpIHJldHVyblxuICAgICAgaWYgKHBvcG92ZXJBbmNob3JSZWYuY3VycmVudD8uY29udGFpbnModGFyZ2V0KSkgcmV0dXJuXG4gICAgICBpZiAodHJpZ2dlclJlZj8uY3VycmVudD8uY29udGFpbnModGFyZ2V0KSkgcmV0dXJuXG4gICAgICBjb25zdCBvdmVybGF5ID0gKHRhcmdldCBhcyBFbGVtZW50KT8uY2xvc2VzdD8uKGBbJHtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSfV1gKVxuICAgICAgaWYgKG92ZXJsYXkpIHJldHVyblxuICAgICAgY2xvc2UoKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgfSwgW29wZW4sIGNsb3NlLCBwb3BvdmVyQW5jaG9yUmVmLCB0cmlnZ2VyUmVmXSlcblxuICBjb25zdCBwb3BvdmVyTm9kZSA9IHVzZU1lbW88UmVhY3ROb2RlIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICghb3BlbikgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBBbmNob3JcbiAgICAgICAgey4uLnsgW01BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFJdOiAnJyB9fVxuICAgICAgICAkYm90dG9tPXtwb3MuYm90dG9tfVxuICAgICAgICAkbGVmdD17cG9zLmxlZnR9XG4gICAgICAgICR3aWR0aD17cG9zLndpZHRofVxuICAgICAgICAkekluZGV4PXt6SW5kZXh9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIDxDb250ZXh0TWVudGlvblBvcG92ZXJcbiAgICAgICAgICBhbGxvd2VkVHlwZXM9e2FsbG93ZWRUeXBlc31cbiAgICAgICAgICBhY3RpdmVUeXBlPXthY3RpdmVUeXBlfVxuICAgICAgICAgIG9uVHlwZUNoYW5nZT17c2V0QWN0aXZlVHlwZX1cbiAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaGlkZVJlY2VudHNMYWJlbD17aGlkZVJlY2VudHNMYWJlbH1cbiAgICAgICAgICBoYXNNb3JlPXtoYXNNb3JlfVxuICAgICAgICAgIGlzTG9hZGluZ01vcmU9e2lzTG9hZGluZ01vcmV9XG4gICAgICAgICAgb25SZWFjaExpc3RFbmQ9e2xvYWRNb3JlfVxuICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICBvbkl0ZW1TZWxlY3RlZD17Y29tbWl0UGlufVxuICAgICAgICAgIHNob3dTZWFyY2hJbnB1dFxuICAgICAgICAgIGhpZGVUYWJQcmVmaXhcbiAgICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcj17dCgnY29udGV4dFBpbi5zZWFyY2hQbGFjZWhvbGRlcicsIHsgZGVmYXVsdFZhbHVlOiAnQnVzY2FyIGNvbnRleHRv4oCmJyB9KX1cbiAgICAgICAgICBvblNlYXJjaENoYW5nZT17dXBkYXRlU2VhcmNoVmFsdWV9XG4gICAgICAgICAgb25SZXF1ZXN0Q2xvc2U9e2Nsb3NlfVxuICAgICAgICAvPlxuICAgICAgPC9TQ01QQW5jaG9yPlxuICAgIClcbiAgfSwgW1xuICAgIG9wZW4sXG4gICAgcG9zLFxuICAgIHpJbmRleCxcbiAgICBhbGxvd2VkVHlwZXMsXG4gICAgYWN0aXZlVHlwZSxcbiAgICBpdGVtcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhpZGVSZWNlbnRzTGFiZWwsXG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIGxvYWRNb3JlLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIGNvbW1pdFBpbixcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgICBjbG9zZSxcbiAgICB0LFxuICBdKVxuXG4gIHJldHVybiB7IG9wZW4sIHRvZ2dsZSwgY2xvc2UsIHBvcG92ZXJOb2RlIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQStCQSxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN2RixTQUNFQyxxQkFBcUIsRUFDckJDLDRCQUE0QixFQUM1QkMsVUFBVSxRQUNMLDJDQUEyQztBQUNsRCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTJCO0FBQzVELFNBQVNDLElBQUksUUFBUSxRQUFRO0FBQzdCO0FBQ0EsU0FBU0MsZUFBZSxRQUFRLG1CQUFtQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUduRDtBQUNBLElBQU1DLGlCQUFzQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7QUFDNUUsSUFBTUMsZ0JBQW1DLEdBQUcsU0FBUztBQXdCckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQUMsSUFBQSxFQU04QjtFQUFBLElBTDdEQyxnQkFBZ0IsR0FBQUQsSUFBQSxDQUFoQkMsZ0JBQWdCO0lBQ2hCQyxZQUFZLEdBQUFGLElBQUEsQ0FBWkUsWUFBWTtJQUNaQyxVQUFVLEdBQUFILElBQUEsQ0FBVkcsVUFBVTtJQUNWQyxZQUFZLEdBQUFKLElBQUEsQ0FBWkksWUFBWTtJQUNaQyxRQUFRLEdBQUFMLElBQUEsQ0FBUkssUUFBUTtFQUVSLElBQUFDLEtBQUEsR0FBY2IsSUFBSSxDQUFDLENBQUM7SUFBWmMsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7RUFDVCxJQUFBQyxpQkFBQSxHQUE0RGhCLGdCQUFnQixDQUFDLENBQUM7SUFBdEVpQixVQUFVLEdBQUFELGlCQUFBLENBQVZDLFVBQVU7SUFBRUMsU0FBUyxHQUFBRixpQkFBQSxDQUFURSxTQUFTO0lBQUVDLE9BQU8sR0FBQUgsaUJBQUEsQ0FBUEcsT0FBTztJQUFFQyxlQUFlLEdBQUFKLGlCQUFBLENBQWZJLGVBQWU7RUFDdkQsSUFBTUMsTUFBTSxHQUFHdEIsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztFQUV0RCxJQUFNdUIsWUFBWSxHQUFHVixZQUFZLElBQUlBLFlBQVksQ0FBQ1csTUFBTSxHQUFHLENBQUMsR0FBR1gsWUFBWSxHQUFHUCxpQkFBaUI7RUFDL0YsSUFBQW1CLFNBQUEsR0FBb0M3QixRQUFRLENBQzFDMkIsWUFBWSxDQUFDRyxRQUFRLENBQUNuQixnQkFBZ0IsQ0FBQyxHQUFHQSxnQkFBZ0IsR0FBR2dCLFlBQVksQ0FBQyxDQUFDLENBQzdFLENBQUM7SUFBQUksVUFBQSxHQUFBQyxjQUFBLENBQUFILFNBQUE7SUFGTUksVUFBVSxHQUFBRixVQUFBO0lBQUVHLGFBQWEsR0FBQUgsVUFBQTtFQUdoQyxJQUFBSSxVQUFBLEdBQXdCbkMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBb0MsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBaENFLElBQUksR0FBQUQsVUFBQTtJQUFFRSxPQUFPLEdBQUFGLFVBQUE7RUFDcEIsSUFBQUcsVUFBQSxHQUFzQnZDLFFBQVEsQ0FBa0Q7TUFBRXdDLE1BQU0sRUFBRSxDQUFDO01BQUVDLElBQUksRUFBRSxDQUFDO01BQUVDLEtBQUssRUFBRTtJQUFFLENBQUMsQ0FBQztJQUFBQyxVQUFBLEdBQUFYLGNBQUEsQ0FBQU8sVUFBQTtJQUExR0ssR0FBRyxHQUFBRCxVQUFBO0lBQUVFLE1BQU0sR0FBQUYsVUFBQTs7RUFFbEI7RUFDQSxJQUFBRyxnQkFBQSxHQUNFdkMsZUFBZSxDQUFDMEIsVUFBVSxDQUFDO0lBRHJCYyxLQUFLLEdBQUFELGdCQUFBLENBQUxDLEtBQUs7SUFBRUMsT0FBTyxHQUFBRixnQkFBQSxDQUFQRSxPQUFPO0lBQUVDLEtBQUssR0FBQUgsZ0JBQUEsQ0FBTEcsS0FBSztJQUFFQyxnQkFBZ0IsR0FBQUosZ0JBQUEsQ0FBaEJJLGdCQUFnQjtJQUFFQyxPQUFPLEdBQUFMLGdCQUFBLENBQVBLLE9BQU87SUFBRUMsYUFBYSxHQUFBTixnQkFBQSxDQUFiTSxhQUFhO0lBQUVDLFFBQVEsR0FBQVAsZ0JBQUEsQ0FBUk8sUUFBUTtJQUFFQyxXQUFXLEdBQUFSLGdCQUFBLENBQVhRLFdBQVc7SUFBRUMsaUJBQWlCLEdBQUFULGdCQUFBLENBQWpCUyxpQkFBaUI7RUFHakgsSUFBTUMsZUFBZSxHQUFHM0QsV0FBVyxDQUFDLFlBQU07SUFBQSxJQUFBNEQscUJBQUEsRUFBQUMscUJBQUEsRUFBQUMsWUFBQTtJQUN4QyxJQUFNQyxTQUFTLElBQUFILHFCQUFBLEdBQUczQyxnQkFBZ0IsQ0FBQytDLE9BQU8sY0FBQUoscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQksscUJBQXFCLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUNGLFNBQVMsSUFBSUEsU0FBUyxDQUFDbEIsS0FBSyxJQUFJLENBQUMsRUFBRTtJQUN4QyxJQUFNcUIsT0FBTyxHQUFHaEQsWUFBWSxhQUFaQSxZQUFZLGdCQUFBMkMscUJBQUEsR0FBWjNDLFlBQVksQ0FBRThDLE9BQU8sY0FBQUgscUJBQUEsdUJBQXJCQSxxQkFBQSxDQUF1QkkscUJBQXFCLENBQUMsQ0FBQztJQUM5RCxJQUFNRSxTQUFTLElBQUFMLFlBQUEsR0FBR0ksT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVFLEdBQUcsY0FBQU4sWUFBQSxjQUFBQSxZQUFBLEdBQUlDLFNBQVMsQ0FBQ0ssR0FBRztJQUMvQyxJQUFNQyxTQUFTLEdBQUdDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNuQyxJQUFNQyxTQUFTLEdBQUdGLE1BQU0sQ0FBQ0csV0FBVztJQUNwQyxJQUFRNUIsS0FBSyxHQUFLa0IsU0FBUyxDQUFuQmxCLEtBQUs7SUFDYixJQUFNRCxJQUFJLEdBQUc4QixJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVELElBQUksQ0FBQ0UsR0FBRyxDQUFDUCxTQUFTLEdBQUd4QixLQUFLLEdBQUcsQ0FBQyxFQUFFa0IsU0FBUyxDQUFDbkIsSUFBSSxDQUFDLENBQUM7SUFDekU7SUFDQUksTUFBTSxDQUFDO01BQUVILEtBQUssRUFBTEEsS0FBSztNQUFFRCxJQUFJLEVBQUpBLElBQUk7TUFBRUQsTUFBTSxFQUFFNkIsU0FBUyxHQUFHTCxTQUFTLEdBQUc7SUFBRSxDQUFDLENBQUM7RUFDNUQsQ0FBQyxFQUFFLENBQUNsRCxnQkFBZ0IsRUFBRUMsWUFBWSxDQUFDLENBQUM7RUFFcEMsSUFBTTJELEtBQUssR0FBRzdFLFdBQVcsQ0FBQyxZQUFNO0lBQzlCeUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNkaUIsaUJBQWlCLENBQUMsRUFBRSxDQUFDO0VBQ3ZCLENBQUMsRUFBRSxDQUFDQSxpQkFBaUIsQ0FBQyxDQUFDO0VBRXZCLElBQU1vQixNQUFNLEdBQUc5RSxXQUFXLENBQUMsWUFBTTtJQUMvQnlDLE9BQU8sQ0FBQyxVQUFBc0MsSUFBSSxFQUFJO01BQ2QsSUFBSUEsSUFBSSxFQUFFO1FBQ1JyQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxLQUFLO01BQ2Q7TUFDQUMsZUFBZSxDQUFDLENBQUM7TUFDakIsT0FBTyxJQUFJO0lBQ2IsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUNBLGVBQWUsRUFBRUQsaUJBQWlCLENBQUMsQ0FBQztFQUV4QyxJQUFNc0IsU0FBUyxHQUFHaEYsV0FBVyxDQUMzQixVQUFDaUYsSUFBd0IsRUFBSztJQUFBLElBQUFDLGVBQUE7SUFDNUIsSUFBUUMsR0FBRyxHQUFLRixJQUFJLENBQVpFLEdBQUc7SUFDWCxJQUFNQyxRQUFRLEdBQUdELEdBQUcsQ0FBQ0MsUUFBUSxJQUFJLElBQUksR0FBR0MsTUFBTSxDQUFDRixHQUFHLENBQUNDLFFBQVEsQ0FBQyxHQUFHRSxTQUFTO0lBQ3hFLElBQU1DLFVBQVUsSUFBQUwsZUFBQSxHQUFHQyxHQUFHLENBQUNJLFVBQVUsY0FBQUwsZUFBQSxjQUFBQSxlQUFBLEdBQUlJLFNBQVM7SUFFOUMsSUFBSUwsSUFBSSxDQUFDTyxJQUFJLEtBQUssUUFBUSxFQUFFO01BQUEsSUFBQUMsbUJBQUE7TUFDMUJoRSxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ2hCRSxPQUFPLENBQUMsSUFBSSxDQUFDO01BQ2JDLGVBQWUsQ0FBQyxJQUFJLENBQUM7TUFDckJGLFNBQVMsQ0FBQztRQUFFZ0UsRUFBRSxFQUFFTCxNQUFNLENBQUNGLEdBQUcsQ0FBQ08sRUFBRSxDQUFDO1FBQUVDLElBQUksRUFBRVIsR0FBRyxDQUFDUSxJQUFJO1FBQUVDLGNBQWMsR0FBQUgsbUJBQUEsR0FBRU4sR0FBRyxDQUFDUyxjQUFjLGNBQUFILG1CQUFBLGNBQUFBLG1CQUFBLEdBQUlIO01BQVUsQ0FBQyxDQUFDO0lBQ3BHLENBQUMsTUFBTSxJQUFJTCxJQUFJLENBQUNPLElBQUksS0FBSyxTQUFTLEVBQUU7TUFDbEM3RCxPQUFPLENBQUMsSUFBSSxDQUFDO01BQ2JGLFVBQVUsQ0FBQW9FLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBO1FBQ1JILEVBQUUsRUFBRUwsTUFBTSxDQUFDRixHQUFHLENBQUNPLEVBQUUsQ0FBQztRQUNsQkMsSUFBSSxFQUFFUixHQUFHLENBQUNRO01BQUksR0FDVlAsUUFBUSxJQUFJLElBQUksR0FBRztRQUFFQSxRQUFRLEVBQVJBO01BQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNwQ0QsR0FBRyxDQUFDVyxLQUFLLElBQUksSUFBSSxHQUFHO1FBQUVBLEtBQUssRUFBRVgsR0FBRyxDQUFDVztNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDN0NWLFFBQVEsSUFBSSxJQUFJLEdBQUc7UUFBRVcsTUFBTSxFQUFFO1VBQUVMLEVBQUUsRUFBRU4sUUFBUTtVQUFFTyxJQUFJLEVBQUVKLFVBQVUsYUFBVkEsVUFBVSxjQUFWQSxVQUFVLEdBQUk7UUFBRztNQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDakYsQ0FBQztNQUNGO01BQ0EzRCxlQUFlLENBQUM7UUFBRW9FLFNBQVMsRUFBRUMsTUFBTSxDQUFDZCxHQUFHLENBQUNPLEVBQUUsQ0FBQztRQUFFUSxXQUFXLEVBQUVmLEdBQUcsQ0FBQ1EsSUFBSTtRQUFFSixVQUFVLEVBQUVBLFVBQVUsYUFBVkEsVUFBVSxjQUFWQSxVQUFVLEdBQUk7TUFBRyxDQUFDLENBQUM7TUFDbkc3RCxTQUFTLENBQUMwRCxRQUFRLElBQUksSUFBSSxHQUFHO1FBQUVNLEVBQUUsRUFBRU4sUUFBUTtRQUFFTyxJQUFJLEVBQUVKLFVBQVUsYUFBVkEsVUFBVSxjQUFWQSxVQUFVLEdBQUk7TUFBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQy9FLENBQUMsTUFBTSxJQUFJTixJQUFJLENBQUNPLElBQUksS0FBSyxNQUFNLEVBQUU7TUFDL0I7TUFDQTdELE9BQU8sQ0FBQWtFLGFBQUE7UUFBR0gsRUFBRSxFQUFFUCxHQUFHLENBQUNPLEVBQUU7UUFBRUMsSUFBSSxFQUFFUixHQUFHLENBQUNRO01BQUksR0FBTVAsUUFBUSxJQUFJLElBQUksR0FBRztRQUFFQSxRQUFRLEVBQVJBO01BQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFHLENBQUM7TUFDbEZ4RCxlQUFlLENBQ2J1RCxHQUFHLENBQUNlLFdBQVcsR0FBRztRQUFFRixTQUFTLEVBQUUsRUFBRTtRQUFFRSxXQUFXLEVBQUVmLEdBQUcsQ0FBQ2UsV0FBVztRQUFFWCxVQUFVLEVBQUVBLFVBQVUsYUFBVkEsVUFBVSxjQUFWQSxVQUFVLEdBQUk7TUFBRyxDQUFDLEdBQUcsSUFDcEcsQ0FBQztNQUNELElBQUlILFFBQVEsSUFBSSxJQUFJLEVBQUUxRCxTQUFTLENBQUM7UUFBRWdFLEVBQUUsRUFBRU4sUUFBUTtRQUFFTyxJQUFJLEVBQUVKLFVBQVUsYUFBVkEsVUFBVSxjQUFWQSxVQUFVLEdBQUk7TUFBRyxDQUFDLENBQUM7SUFDM0U7SUFFQWxFLFFBQVEsYUFBUkEsUUFBUSxlQUFSQSxRQUFRLENBQUc0RCxJQUFJLENBQUM7SUFDaEJKLEtBQUssQ0FBQyxDQUFDO0VBQ1QsQ0FBQyxFQUNELENBQUNwRCxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxlQUFlLEVBQUVQLFFBQVEsRUFBRXdELEtBQUssQ0FDbkUsQ0FBQztFQUVENUUsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUN1QyxJQUFJLEVBQUUsT0FBTzhDLFNBQVM7SUFDM0IsSUFBTWEsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUE7TUFBQSxPQUFTeEMsZUFBZSxDQUFDLENBQUM7SUFBQTtJQUN2Q1csTUFBTSxDQUFDOEIsZ0JBQWdCLENBQUMsUUFBUSxFQUFFRCxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ2hEN0IsTUFBTSxDQUFDOEIsZ0JBQWdCLENBQUMsUUFBUSxFQUFFRCxPQUFPLENBQUM7SUFDMUMsT0FBTyxZQUFNO01BQ1g3QixNQUFNLENBQUMrQixtQkFBbUIsQ0FBQyxRQUFRLEVBQUVGLE9BQU8sRUFBRSxJQUFJLENBQUM7TUFDbkQ3QixNQUFNLENBQUMrQixtQkFBbUIsQ0FBQyxRQUFRLEVBQUVGLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUMzRCxJQUFJLEVBQUVtQixlQUFlLENBQUMsQ0FBQztFQUUzQjFELFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDdUMsSUFBSSxFQUFFLE9BQU84QyxTQUFTO0lBQzNCLElBQU1nQix3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJQyxVQUFzQixFQUFLO01BQUEsSUFBQUMsc0JBQUEsRUFBQUMsbUJBQUEsRUFBQUMsUUFBQSxFQUFBQyxLQUFBO01BQzNELElBQU1DLE1BQU0sR0FBR0wsVUFBVSxDQUFDSyxNQUFxQjtNQUMvQyxJQUFJLENBQUNBLE1BQU0sRUFBRTtNQUNiLEtBQUFKLHNCQUFBLEdBQUl2RixnQkFBZ0IsQ0FBQytDLE9BQU8sY0FBQXdDLHNCQUFBLGVBQXhCQSxzQkFBQSxDQUEwQkssUUFBUSxDQUFDRCxNQUFNLENBQUMsRUFBRTtNQUNoRCxJQUFJekYsVUFBVSxhQUFWQSxVQUFVLGdCQUFBc0YsbUJBQUEsR0FBVnRGLFVBQVUsQ0FBRTZDLE9BQU8sY0FBQXlDLG1CQUFBLGVBQW5CQSxtQkFBQSxDQUFxQkksUUFBUSxDQUFDRCxNQUFNLENBQUMsRUFBRTtNQUMzQyxJQUFNRSxPQUFPLEdBQUlGLE1BQU0sYUFBTkEsTUFBTSxnQkFBQUYsUUFBQSxHQUFQLENBQUFDLEtBQUEsR0FBQ0MsTUFBTSxFQUFjRyxPQUFPLGNBQUFMLFFBQUEsdUJBQTVCQSxRQUFBLENBQUFNLElBQUEsQ0FBQUwsS0FBQSxNQUFBTSxNQUFBLENBQW1DNUcsNEJBQTRCLE1BQUcsQ0FBQztNQUNuRixJQUFJeUcsT0FBTyxFQUFFO01BQ2JqQyxLQUFLLENBQUMsQ0FBQztJQUNULENBQUM7SUFDRHFDLFFBQVEsQ0FBQ2QsZ0JBQWdCLENBQUMsV0FBVyxFQUFFRSx3QkFBd0IsQ0FBQztJQUNoRSxPQUFPO01BQUEsT0FBTVksUUFBUSxDQUFDYixtQkFBbUIsQ0FBQyxXQUFXLEVBQUVDLHdCQUF3QixDQUFDO0lBQUE7RUFDbEYsQ0FBQyxFQUFFLENBQUM5RCxJQUFJLEVBQUVxQyxLQUFLLEVBQUU1RCxnQkFBZ0IsRUFBRUUsVUFBVSxDQUFDLENBQUM7RUFFL0MsSUFBTWdHLFdBQVcsR0FBR2pILE9BQU8sQ0FBbUIsWUFBTTtJQUNsRCxJQUFJLENBQUNzQyxJQUFJLEVBQUUsT0FBTyxJQUFJO0lBQ3RCLG9CQUNFNUIsSUFBQSxDQUFDTixVQUFVLEVBQUF1RixhQUFBLENBQUFBLGFBQUEsS0FBQXVCLGVBQUEsS0FDRi9HLDRCQUE0QixFQUFHLEVBQUU7TUFDeENnSCxPQUFPLEVBQUV0RSxHQUFHLENBQUNKLE1BQU87TUFDcEIyRSxLQUFLLEVBQUV2RSxHQUFHLENBQUNILElBQUs7TUFDaEIyRSxNQUFNLEVBQUV4RSxHQUFHLENBQUNGLEtBQU07TUFDbEIyRSxPQUFPLEVBQUUzRixNQUFPO01BQ2hCNEYsV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUVDLENBQUM7UUFBQSxPQUFJQSxDQUFDLENBQUNDLGVBQWUsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFBQyxRQUFBLGVBRXRDaEgsSUFBQSxDQUFDUixxQkFBcUI7UUFDcEIwQixZQUFZLEVBQUVBLFlBQWE7UUFDM0JNLFVBQVUsRUFBRUEsVUFBVztRQUN2QnlGLFlBQVksRUFBRXhGLGFBQWM7UUFDNUJhLEtBQUssRUFBRUEsS0FBTTtRQUNiQyxPQUFPLEVBQUVBLE9BQVE7UUFDakJDLEtBQUssRUFBRUEsS0FBTTtRQUNiQyxnQkFBZ0IsRUFBRUEsZ0JBQWlCO1FBQ25DQyxPQUFPLEVBQUVBLE9BQVE7UUFDakJDLGFBQWEsRUFBRUEsYUFBYztRQUM3QnVFLGNBQWMsRUFBRXRFLFFBQVM7UUFDekJDLFdBQVcsRUFBRUEsV0FBWTtRQUN6QnNFLGNBQWMsRUFBRS9DLFNBQVU7UUFDMUJnRCxlQUFlO1FBQ2ZDLGFBQWE7UUFDYkMsaUJBQWlCLEVBQUUzRyxDQUFDLENBQUMsOEJBQThCLEVBQUU7VUFBRTRHLFlBQVksRUFBRTtRQUFtQixDQUFDLENBQUU7UUFDM0ZDLGNBQWMsRUFBRTFFLGlCQUFrQjtRQUNsQzJFLGNBQWMsRUFBRXhEO01BQU0sQ0FDdkI7SUFBQyxFQUNRLENBQUM7RUFFakIsQ0FBQyxFQUFFLENBQ0RyQyxJQUFJLEVBQ0pPLEdBQUcsRUFDSGxCLE1BQU0sRUFDTkMsWUFBWSxFQUNaTSxVQUFVLEVBQ1ZjLEtBQUssRUFDTEMsT0FBTyxFQUNQQyxLQUFLLEVBQ0xDLGdCQUFnQixFQUNoQkMsT0FBTyxFQUNQQyxhQUFhLEVBQ2JDLFFBQVEsRUFDUkMsV0FBVyxFQUNYdUIsU0FBUyxFQUNUdEIsaUJBQWlCLEVBQ2pCbUIsS0FBSyxFQUNMdEQsQ0FBQyxDQUNGLENBQUM7RUFFRixPQUFPO0lBQUVpQixJQUFJLEVBQUpBLElBQUk7SUFBRXNDLE1BQU0sRUFBTkEsTUFBTTtJQUFFRCxLQUFLLEVBQUxBLEtBQUs7SUFBRXNDLFdBQVcsRUFBWEE7RUFBWSxDQUFDO0FBQzdDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwianN4IiwiX2pzeCIsIlBJTl9BTExPV0VEX1RZUEVTIiwiUElOX0RFRkFVTFRfVFlQRSIsInVzZUNvbnRleHRQaW5Qb3BvdmVyIiwiX3JlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJ0b3BBbmNob3JSZWYiLCJ0cmlnZ2VyUmVmIiwiZW5hYmxlZFR5cGVzIiwib25QaW5uZWQiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwic2V0Q2hpcHNQcm9qZWN0IiwiekluZGV4IiwiYWxsb3dlZFR5cGVzIiwibGVuZ3RoIiwiX3VzZVN0YXRlIiwiaW5jbHVkZXMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGU1IiwiYm90dG9tIiwibGVmdCIsIndpZHRoIiwiX3VzZVN0YXRlNiIsInBvcyIsInNldFBvcyIsIl91c2VFbnRpdHlTZWFyY2giLCJpdGVtcyIsImxvYWRpbmciLCJlcnJvciIsImhpZGVSZWNlbnRzTGFiZWwiLCJoYXNNb3JlIiwiaXNMb2FkaW5nTW9yZSIsImxvYWRNb3JlIiwic2VhcmNoVmFsdWUiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsInBvc2l0aW9uUG9wb3ZlciIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1ciIsIl90b3BBbmNob3JSZWYkY3VycmVudCIsIl90b3BSZWN0JHRvcCIsImlucHV0UmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BSZWN0IiwiYW5jaG9yVG9wIiwidG9wIiwidmlld3BvcnRXIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInZpZXdwb3J0SCIsImlubmVySGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImNsb3NlIiwidG9nZ2xlIiwicHJldiIsImNvbW1pdFBpbiIsIml0ZW0iLCJfcmF3JGNsaWVudE5hbWUiLCJyYXciLCJjbGllbnRJZCIsIk51bWJlciIsInVuZGVmaW5lZCIsImNsaWVudE5hbWUiLCJjb25zb2xlIiwiaW5mbyIsInR5cGUiLCJyYXdJZCIsImlkIiwicmF3TmFtZSIsIm5hbWUiLCJwcm9qZWN0TmFtZSIsIl9yYXckdG90YWxQcm95ZWN0b3MiLCJ0b3RhbFByb3llY3RvcyIsIl9vYmplY3RTcHJlYWQiLCJmZWVJZCIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSIsIm1vdXNlRXZlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwiX3RyaWdnZXJSZWYkY3VycmVudCIsIl9jbG9zZXN0IiwiX3JlZjIiLCJ0YXJnZXQiLCJjb250YWlucyIsIm92ZXJsYXkiLCJjbG9zZXN0IiwiY2FsbCIsImNvbmNhdCIsImRvY3VtZW50IiwicG9wb3Zlck5vZGUiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2hpbGRyZW4iLCJvblR5cGVDaGFuZ2UiLCJvblJlYWNoTGlzdEVuZCIsIm9uSXRlbVNlbGVjdGVkIiwic2hvd1NlYXJjaElucHV0IiwiaGlkZVRhYlByZWZpeCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiZGVmYXVsdFZhbHVlIiwib25TZWFyY2hDaGFuZ2UiLCJvblJlcXVlc3RDbG9zZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VDb250ZXh0UGluUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWZPYmplY3QsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDb250ZXh0TWVudGlvblBvcG92ZXIsXG4gIE1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIsXG4gIFNDTVBBbmNob3IsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4vdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZUVudGl0eVNlYXJjaCB9IGZyb20gJy4vdXNlRW50aXR5U2VhcmNoJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uSXRlbSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG4vKiogVGlwb3MgcGluZWFibGVzIGNvbW8gY29udGV4dG8gcGVyc2lzdGVudGUgKFJGQyDCpzY6IG5vIGluY2x1eWUgYHVzZXJgLCBxdWUgZXMgc29sbyBtZW5jacOzbikuICovXG5jb25zdCBQSU5fQUxMT1dFRF9UWVBFUzogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzayddXG5jb25zdCBQSU5fREVGQVVMVF9UWVBFOiBDb250ZXh0RW50aXR5VHlwZSA9ICdwcm9qZWN0J1xuXG5leHBvcnQgdHlwZSBVc2VDb250ZXh0UGluUG9wb3Zlck9wdGlvbnMgPSB7XG4gIC8qKiBXcmFwcGVyIGRlbCBNQUlBSW5wdXQ6IGRlZmluZSBhbmNobyB5IGFsaW5lYWNpw7NuIGhvcml6b250YWwgKGlndWFsIHF1ZSBALW1lbnRpb25zKS4gKi9cbiAgcG9wb3ZlckFuY2hvclJlZjogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIEZpbGEgZGVsIGNoaXAgLyBiYXJyYSBkZSBjb250ZXh0bzogZGVmaW5lIGVsIGJvcmRlIHN1cGVyaW9yIHZlcnRpY2FsIGRlbCBwb3BvdmVyLiAqL1xuICB0b3BBbmNob3JSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAvKiogQm90w7NuIFwiKyBDb250ZXh0b1wiOyBubyBjZXJyYXIgYWwgaGFjZXIgY2xpY2sgZW4gZWwgdHJpZ2dlci4gKi9cbiAgdHJpZ2dlclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+XG4gIC8qKiBPdmVycmlkZSBkZWwgc2V0IGRlIHRhYnMgcGluZWFibGVzOyBwb3IgZGVmZWN0byBjbGllbnRlL3Byb3llY3RvL3RhcmVhLiAqL1xuICBlbmFibGVkVHlwZXM/OiBDb250ZXh0RW50aXR5VHlwZVtdXG4gIC8qKiBDYWxsYmFjayB0cmFzIGZpamFyIHVuIGNvbnRleHRvIChhbmFseXRpY3MgLyBjaWVycmUgZXh0ZXJubykuICovXG4gIG9uUGlubmVkPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VDb250ZXh0UGluUG9wb3ZlclJldHVybiA9IHtcbiAgb3BlbjogYm9vbGVhblxuICAvKiogQWJyZS9jaWVycmEgZWwgcG9wb3ZlciAoaGFuZGxlciBkZWwgYm90w7NuIFwiKyBDb250ZXh0b1wiKS4gKi9cbiAgdG9nZ2xlOiAoKSA9PiB2b2lkXG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIC8qKiBOb2RvIGRlbCBwb3BvdmVyOyBlbCBjb25zdW1lciBkZWJlIHBvcnRhcmxvIGNvbiBgY3JlYXRlUG9ydGFsYC4gKi9cbiAgcG9wb3Zlck5vZGU6IFJlYWN0Tm9kZSB8IG51bGxcbn1cblxuLyoqXG4gKiBTZWd1bmRvIHB1bnRvIGRlIGVudHJhZGEgZGVsIGJ1c2NhZG9yIGRlIGNvbnRleHRvIChSRkMgwqc2KTogZWwgbWlzbW8gbW90b3JcbiAqIChgdXNlRW50aXR5U2VhcmNoYCArIGBDb250ZXh0TWVudGlvblBvcG92ZXJgKSBwZXJvIGVsIGNvbW1pdCBmaWphIHVuICoqcGluKipcbiAqIHBlcnNpc3RlbnRlIGVuIGVsIGNvbnRleHRvIGdsb2JhbCBlbiB2ZXogZGUgaW5zZXJ0YXIgdW5hIG1lbmNpw7NuLlxuICpcbiAqIEplcmFycXXDrWEgbW9uby1jb250ZXh0byAoUkZDIMKnNS4xKTogdW4gcGluIGEgbGEgdmV6OyBmaWphciB1bm8gcmVlbXBsYXphIGFsXG4gKiBhbnRlcmlvciB5IGFycmFzdHJhIHN1IHNjb3BlIGhhY2lhIGFycmliYSAodGFyZWEg4oeSIHByb3llY3RvK2NsaWVudGUsIGV0Yy4pLlxuICovXG5leHBvcnQgY29uc3QgdXNlQ29udGV4dFBpblBvcG92ZXIgPSAoe1xuICBwb3BvdmVyQW5jaG9yUmVmLFxuICB0b3BBbmNob3JSZWYsXG4gIHRyaWdnZXJSZWYsXG4gIGVuYWJsZWRUeXBlcyxcbiAgb25QaW5uZWQsXG59OiBVc2VDb250ZXh0UGluUG9wb3Zlck9wdGlvbnMpOiBVc2VDb250ZXh0UGluUG9wb3ZlclJldHVybiA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB6SW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcblxuICBjb25zdCBhbGxvd2VkVHlwZXMgPSBlbmFibGVkVHlwZXMgJiYgZW5hYmxlZFR5cGVzLmxlbmd0aCA+IDAgPyBlbmFibGVkVHlwZXMgOiBQSU5fQUxMT1dFRF9UWVBFU1xuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oXG4gICAgYWxsb3dlZFR5cGVzLmluY2x1ZGVzKFBJTl9ERUZBVUxUX1RZUEUpID8gUElOX0RFRkFVTFRfVFlQRSA6IGFsbG93ZWRUeXBlc1swXVxuICApXG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcG9zLCBzZXRQb3NdID0gdXNlU3RhdGU8eyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0+KHsgYm90dG9tOiAwLCBsZWZ0OiAwLCB3aWR0aDogMCB9KVxuXG4gIC8vIFNjb3BlIHNpbiByZXN0cmljY2nDs246IGRlc2RlIGVsIGJvdMOzbiBzZSBidXNjYSBsaWJyZW1lbnRlIGN1YWxxdWllciBlbnRpZGFkIChtb2RvIGdsb2JhbCkuXG4gIGNvbnN0IHsgaXRlbXMsIGxvYWRpbmcsIGVycm9yLCBoaWRlUmVjZW50c0xhYmVsLCBoYXNNb3JlLCBpc0xvYWRpbmdNb3JlLCBsb2FkTW9yZSwgc2VhcmNoVmFsdWUsIHVwZGF0ZVNlYXJjaFZhbHVlIH0gPVxuICAgIHVzZUVudGl0eVNlYXJjaChhY3RpdmVUeXBlKVxuXG4gIGNvbnN0IHBvc2l0aW9uUG9wb3ZlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dFJlY3QgPSBwb3BvdmVyQW5jaG9yUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgaWYgKCFpbnB1dFJlY3QgfHwgaW5wdXRSZWN0LndpZHRoIDw9IDApIHJldHVyblxuICAgIGNvbnN0IHRvcFJlY3QgPSB0b3BBbmNob3JSZWY/LmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYW5jaG9yVG9wID0gdG9wUmVjdD8udG9wID8/IGlucHV0UmVjdC50b3BcbiAgICBjb25zdCB2aWV3cG9ydFcgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIGNvbnN0IHZpZXdwb3J0SCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgIGNvbnN0IHsgd2lkdGggfSA9IGlucHV0UmVjdFxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1heCg4LCBNYXRoLm1pbih2aWV3cG9ydFcgLSB3aWR0aCAtIDgsIGlucHV0UmVjdC5sZWZ0KSlcbiAgICAvKiogfjRweCBzb2JyZSBlbCBib3JkZSBzdXBlcmlvciBkZSBsYSBiYXJyYSBkZSBjb250ZXh0byAoY2hpcCksIG5vIGRlbCBpbnB1dC4gKi9cbiAgICBzZXRQb3MoeyB3aWR0aCwgbGVmdCwgYm90dG9tOiB2aWV3cG9ydEggLSBhbmNob3JUb3AgKyA0IH0pXG4gIH0sIFtwb3BvdmVyQW5jaG9yUmVmLCB0b3BBbmNob3JSZWZdKVxuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gIH0sIFt1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgdG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE9wZW4ocHJldiA9PiB7XG4gICAgICBpZiAocHJldikge1xuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZSgnJylcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9KVxuICB9LCBbcG9zaXRpb25Qb3BvdmVyLCB1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgY29tbWl0UGluID0gdXNlQ2FsbGJhY2soXG4gICAgKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbSkgPT4ge1xuICAgICAgY29uc3QgeyByYXcgfSA9IGl0ZW1cbiAgICAgIGNvbnN0IGNsaWVudElkID0gcmF3LmNsaWVudElkICE9IG51bGwgPyBOdW1iZXIocmF3LmNsaWVudElkKSA6IHVuZGVmaW5lZFxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IHJhdy5jbGllbnROYW1lID8/IHVuZGVmaW5lZFxuXG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VDb250ZXh0UGluUG9wb3Zlcl0gY29tbWl0UGluIOKAlCBBU0lHTkFORE8gY29udGV4dG86Jywge1xuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXG4gICAgICAgIHJhd0lkOiByYXcuaWQsXG4gICAgICAgIHJhd05hbWU6IHJhdy5uYW1lLFxuICAgICAgICBwcm9qZWN0TmFtZTogcmF3LnByb2plY3ROYW1lLFxuICAgICAgICBjbGllbnRJZCxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50KHsgaWQ6IE51bWJlcihyYXcuaWQpLCBuYW1lOiByYXcubmFtZSwgdG90YWxQcm95ZWN0b3M6IHJhdy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQgfSlcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICBpZDogTnVtYmVyKHJhdy5pZCksXG4gICAgICAgICAgbmFtZTogcmF3Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHJhdy5mZWVJZCAhPSBudWxsID8geyBmZWVJZDogcmF3LmZlZUlkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgPz8gJycgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICAvLyBjaGlwc1Byb2plY3QgaGFjZSB2aXNpYmxlIGVsIHBpbiBlbiBlbCBjaGlwIGRlbCBvcnF1ZXN0YWRvciAoUkZDIMKnNykuXG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7IHByb2plY3RJZDogU3RyaW5nKHJhdy5pZCksIHByb2plY3ROYW1lOiByYXcubmFtZSwgY2xpZW50TmFtZTogY2xpZW50TmFtZSA/PyAnJyB9KVxuICAgICAgICBzZXRDbGllbnQoY2xpZW50SWQgIT0gbnVsbCA/IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lID8/ICcnIH0gOiBudWxsKVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICAvLyBFbCBpdGVtIGRlIHRhcmVhIG5vIHRyYWUgcHJvamVjdElkIGZpYWJsZTsgc3ViaW1vcyBsbyBkaXNwb25pYmxlIChwcm95ZWN0byBwb3Igbm9tYnJlLCBjbGllbnRlIHBvciBpZCkuXG4gICAgICAgIHNldFRhc2soeyBpZDogcmF3LmlkLCBuYW1lOiByYXcubmFtZSwgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSkgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KFxuICAgICAgICAgIHJhdy5wcm9qZWN0TmFtZSA/IHsgcHJvamVjdElkOiAnJywgcHJvamVjdE5hbWU6IHJhdy5wcm9qZWN0TmFtZSwgY2xpZW50TmFtZTogY2xpZW50TmFtZSA/PyAnJyB9IDogbnVsbFxuICAgICAgICApXG4gICAgICAgIGlmIChjbGllbnRJZCAhPSBudWxsKSBzZXRDbGllbnQoeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgPz8gJycgfSlcbiAgICAgIH1cblxuICAgICAgb25QaW5uZWQ/LihpdGVtKVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW3NldFByb2plY3QsIHNldENsaWVudCwgc2V0VGFzaywgc2V0Q2hpcHNQcm9qZWN0LCBvblBpbm5lZCwgY2xvc2VdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW29wZW4sIHBvc2l0aW9uUG9wb3Zlcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUgPSAobW91c2VFdmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbW91c2VFdmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGxcbiAgICAgIGlmICghdGFyZ2V0KSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgaWYgKHRyaWdnZXJSZWY/LmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHJldHVyblxuICAgICAgY29uc3Qgb3ZlcmxheSA9ICh0YXJnZXQgYXMgRWxlbWVudCk/LmNsb3Nlc3Q/LihgWyR7TUFJQV9UQVNLX1BBTkVMX09WRVJMQVlfQVRUUn1dYClcbiAgICAgIGlmIChvdmVybGF5KSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gIH0sIFtvcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZiwgdHJpZ2dlclJlZl0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01QQW5jaG9yXG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9zLmJvdHRvbX1cbiAgICAgICAgJGxlZnQ9e3Bvcy5sZWZ0fVxuICAgICAgICAkd2lkdGg9e3Bvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17ekluZGV4fVxuICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgPlxuICAgICAgICA8Q29udGV4dE1lbnRpb25Qb3BvdmVyXG4gICAgICAgICAgYWxsb3dlZFR5cGVzPXthbGxvd2VkVHlwZXN9XG4gICAgICAgICAgYWN0aXZlVHlwZT17YWN0aXZlVHlwZX1cbiAgICAgICAgICBvblR5cGVDaGFuZ2U9e3NldEFjdGl2ZVR5cGV9XG4gICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIGhpZGVSZWNlbnRzTGFiZWw9e2hpZGVSZWNlbnRzTGFiZWx9XG4gICAgICAgICAgaGFzTW9yZT17aGFzTW9yZX1cbiAgICAgICAgICBpc0xvYWRpbmdNb3JlPXtpc0xvYWRpbmdNb3JlfVxuICAgICAgICAgIG9uUmVhY2hMaXN0RW5kPXtsb2FkTW9yZX1cbiAgICAgICAgICBzZWFyY2hWYWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2NvbW1pdFBpbn1cbiAgICAgICAgICBzaG93U2VhcmNoSW5wdXRcbiAgICAgICAgICBoaWRlVGFiUHJlZml4XG4gICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e3QoJ2NvbnRleHRQaW4uc2VhcmNoUGxhY2Vob2xkZXInLCB7IGRlZmF1bHRWYWx1ZTogJ0J1c2NhciBjb250ZXh0b+KApicgfSl9XG4gICAgICAgICAgb25TZWFyY2hDaGFuZ2U9e3VwZGF0ZVNlYXJjaFZhbHVlfVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtjbG9zZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NNUEFuY2hvcj5cbiAgICApXG4gIH0sIFtcbiAgICBvcGVuLFxuICAgIHBvcyxcbiAgICB6SW5kZXgsXG4gICAgYWxsb3dlZFR5cGVzLFxuICAgIGFjdGl2ZVR5cGUsXG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIGhhc01vcmUsXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBsb2FkTW9yZSxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBjb21taXRQaW4sXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgY2xvc2UsXG4gICAgdCxcbiAgXSlcblxuICByZXR1cm4geyBvcGVuLCB0b2dnbGUsIGNsb3NlLCBwb3BvdmVyTm9kZSB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUErQkEsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdkYsU0FDRUMscUJBQXFCLEVBQ3JCQyw0QkFBNEIsRUFDNUJDLFVBQVUsUUFDTCwyQ0FBMkM7QUFDbEQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLDJCQUEyQjtBQUM1RCxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUM3QjtBQUNBLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUI7QUFBQSxTQUFB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
|