@projectcor/maia-components 2.42.0 → 2.42.1-2.42.1-1.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/lib/App.js +44 -19
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
- package/lib/components/atoms/Chip/Chip.spec.js +82 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
- package/lib/components/atoms/Fade/Fade.spec.js +31 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +303 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +10 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +1 -1
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +57 -37
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +58 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +18 -12
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +68 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
- package/lib/components/atoms/Switch/Switch.spec.js +41 -0
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
- package/lib/components/molecules/AgentInputBlock/index.js +5 -0
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
- package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +21 -6
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -3
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +148 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +65 -61
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -3
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +112 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +234 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +405 -0
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +267 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +261 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +194 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +105 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +73 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +4 -1
- package/lib/constants/permissions/utils.spec.js +34 -0
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/dev/DevReasoningTimeline.js +11 -17
- package/lib/dev/Providers.js +5 -3
- package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
- package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
- package/lib/hooks/useCaretPosition.spec.js +58 -0
- package/lib/hooks/useChatManager/useChatManager.js +7 -7
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +279 -0
- package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
- package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
- package/lib/hooks/useDebounce.spec.js +42 -0
- package/lib/hooks/useEvent.spec.js +40 -0
- package/lib/hooks/useFrequentlyUsedActions.js +63 -20
- package/lib/hooks/useIsMaiaPageRoute.js +26 -0
- package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
- package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
- package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
- package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
- package/lib/hooks/useModal/useModal.spec.js +73 -0
- package/lib/hooks/useResize.spec.js +37 -0
- package/lib/hooks/useSkillsCatalog.spec.js +88 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
- package/lib/hooks/useT.spec.js +20 -0
- package/lib/hooks/useToggle.spec.js +33 -0
- package/lib/index.js +5 -2
- package/lib/lang/br/index.js +26 -1
- package/lib/lang/en/index.js +26 -1
- package/lib/lang/es/index.js +26 -1
- package/lib/lang/fr/index.js +26 -1
- package/lib/services/maia/Access/updateAccess.spec.js +108 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +56 -0
- package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
- package/lib/services/maia/Agents/createAgent.spec.js +55 -0
- package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
- package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
- package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
- package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
- package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
- package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
- package/lib/services/maia/Chats/patchChat.spec.js +41 -0
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
- package/lib/services/maia/Knowledge/delete.spec.js +45 -0
- package/lib/services/maia/Knowledge/download.spec.js +78 -0
- package/lib/services/maia/Knowledge/save.spec.js +58 -0
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
- package/lib/services/maia/Skills/createSkill.spec.js +68 -0
- package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
- package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
- package/lib/services/maia/Skills/getSkills.spec.js +152 -0
- package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
- package/lib/services/maia/client.spec.js +56 -0
- package/lib/services/utils/fetchCOR.spec.js +211 -0
- package/lib/services/utils/getCookie.spec.js +20 -0
- package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
- package/lib/store/maiaLastChatPersistence.spec.js +22 -0
- package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
- package/lib/store/sessions/sessionStreamManager.js +40 -52
- package/lib/store/sessions/sessions.types.spec.js +16 -0
- package/lib/store/sessions/useSessionsStore.spec.js +135 -0
- package/lib/store/useChatsStore.spec.js +619 -0
- package/lib/store/useFaqsStore.spec.js +57 -0
- package/lib/styles/cascade.js +29 -3
- package/lib/styles/transitions.js +3 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/agentDisplayName.spec.js +44 -0
- package/lib/utils/autoApproveStorage.spec.js +25 -0
- package/lib/utils/chatInputFiles.spec.js +39 -0
- package/lib/utils/contextMentionLabel.spec.js +13 -0
- package/lib/utils/contextMentionTriggers.spec.js +38 -0
- package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
- package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
- package/lib/utils/fileDownloadHelper.spec.js +67 -0
- package/lib/utils/formatQuickActionMessage.spec.js +27 -0
- package/lib/utils/formatUnreadCount.spec.js +12 -0
- package/lib/utils/getUnitFileSize.spec.js +18 -0
- package/lib/utils/hitlAnalytics.spec.js +100 -0
- package/lib/utils/hoursPlannerQuickActionType.js +74 -1
- package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
- package/lib/utils/maiaPageRoute.js +24 -0
- package/lib/utils/maiaPageRoute.spec.js +23 -0
- package/lib/utils/mapBackendLang.spec.js +19 -0
- package/lib/utils/navigateContextEntity.spec.js +50 -0
- package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
- package/lib/utils/orchestratorSubagents.spec.js +32 -0
- package/lib/utils/reasoningMappers.spec.js +103 -0
- package/lib/utils/retryCompletion.spec.js +99 -0
- package/lib/utils/skillContentSize.spec.js +13 -0
- package/lib/utils/slashCommandMarker.spec.js +43 -0
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
- package/lib/utils/sseStreamContent.spec.js +31 -0
- package/lib/utils/streamActivityMessages.js +32 -19
- package/lib/utils/streamActivityMessages.spec.js +131 -0
- package/lib/utils/validateTrimmedFields.spec.js +26 -0
- package/package.json +18 -14
- package/README.md +0 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import styled, { css, keyframes } from 'styled-components';
|
|
2
2
|
import colors from '@projectcor/theme/lib/base/colors';
|
|
3
|
+
import { REASONING_COLLAPSE_EASE, REASONING_COLLAPSE_MS } from './useCollapsibleHeight';
|
|
3
4
|
export var LIVE_VIEWPORT_MAX_HEIGHT = 72;
|
|
4
5
|
var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
|
|
5
6
|
var fadeIn = keyframes(["from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:none;}"]);
|
|
@@ -159,29 +160,24 @@ export var SCParallelDetail = styled.div.withConfig({
|
|
|
159
160
|
export var SCSummaryToggle = styled.button.withConfig({
|
|
160
161
|
displayName: "ReasoningBlockstyles__SCSummaryToggle",
|
|
161
162
|
componentId: "sc-y2psdb-12"
|
|
162
|
-
})(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform
|
|
163
|
-
|
|
164
|
-
/* height: auto <-> 0 sin medir el contenido: el track de grid interpola entre 0fr y 1fr. */
|
|
163
|
+
})(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform ", "ms ", ";}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
|
|
165
164
|
export var SCTraceCollapse = styled.div.withConfig({
|
|
166
165
|
displayName: "ReasoningBlockstyles__SCTraceCollapse",
|
|
167
166
|
componentId: "sc-y2psdb-13"
|
|
168
|
-
})(["
|
|
169
|
-
var $
|
|
170
|
-
return $
|
|
171
|
-
});
|
|
167
|
+
})(["overflow:hidden;height:", ";transition:height ", "ms ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref13) {
|
|
168
|
+
var $height = _ref13.$height;
|
|
169
|
+
return $height === 'auto' ? 'auto' : "".concat($height, "px");
|
|
170
|
+
}, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
|
|
172
171
|
export var SCExpandedTrace = styled.div.withConfig({
|
|
173
172
|
displayName: "ReasoningBlockstyles__SCExpandedTrace",
|
|
174
173
|
componentId: "sc-y2psdb-14"
|
|
175
|
-
})(["display:flex;flex-direction:column;
|
|
174
|
+
})(["display:flex;flex-direction:column;padding-bottom:24px;opacity:", ";transition:opacity ", " ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref14) {
|
|
176
175
|
var $isOpen = _ref14.$isOpen;
|
|
177
176
|
return $isOpen ? 1 : 0;
|
|
178
177
|
}, function (_ref15) {
|
|
179
178
|
var $isOpen = _ref15.$isOpen;
|
|
180
|
-
return $isOpen ? '
|
|
181
|
-
},
|
|
182
|
-
var $isOpen = _ref16.$isOpen;
|
|
183
|
-
return $isOpen ? '0' : '-4px';
|
|
184
|
-
});
|
|
179
|
+
return $isOpen ? '280ms' : "280ms ".concat(REASONING_COLLAPSE_MS - 280, "ms");
|
|
180
|
+
}, REASONING_COLLAPSE_EASE);
|
|
185
181
|
export var SCTraceNote = styled.p.withConfig({
|
|
186
182
|
displayName: "ReasoningBlockstyles__SCTraceNote",
|
|
187
183
|
componentId: "sc-y2psdb-15"
|
|
@@ -194,4 +190,4 @@ export var SCErrorRow = styled.div.withConfig({
|
|
|
194
190
|
displayName: "ReasoningBlockstyles__SCErrorRow",
|
|
195
191
|
componentId: "sc-y2psdb-17"
|
|
196
192
|
})(["display:flex;align-items:center;gap:8px;font-size:12px;color:", ";button{border:none;background:none;padding:0;cursor:pointer;font-size:12px;text-decoration:underline;color:", ";}"], colors.text.mediumGray, colors.text.primary);
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaXNPcGVuIiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiX3JlZjE1IiwiX3JlZjE2IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAxNlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnOHB4JyA6ICcwJ1xufVxuXG5jb25zdCByYWlsQmVmb3JlRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIChyYWlsVGhyb3VnaCB8fCByYWlsVG9wKSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbEFmdGVyRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbEJvdHRvbT86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiByYWlsQm90dG9tID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsU2VnbWVudFN0eWxlID0gYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6ICR7TUFSS0VSX1JBSUxfTEVGVH1weDtcbiAgd2lkdGg6IDFweDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC4yNTtcbmBcblxuLyoqIEVsIHBhc28gYWN0aXZvIHZhIGEgY29sb3IgcGxlbm87IGxvcyBjZXJyYWRvcyBxdWVkYW4gYXRlbnVhZG9zLiAqL1xuY29uc3QgbWFya2VyQ29sb3IgPSAoc3RhdHVzPzogc3RyaW5nLCBpc0FjdGl2ZT86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gY29sb3JzLmVycm9yLm1haW5cbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gY29sb3JzLnRleHQucHJpbWFyeVxuICByZXR1cm4gY29sb3JzLnRleHQubWVkaXVtR3JheVxufVxuXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdCbG9jayA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBTaW4gZ2FwOiBlbCBlc3BhY2lvIGhhY2lhIGVsIGRldGFsbGUgdml2ZSBlbiBzdSBwYWRkaW5nLXRvcCwgYXPDrSBjb2xhcHNhIGp1bnRvIGNvbiDDqWwuICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xpdmVTdGVwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6ICR7TElWRV9WSUVXUE9SVF9NQVhfSEVJR0hUfXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjJzIGVhc2Utb3V0O1xuYFxuXG4vKiBUaW1lbGluZSBlbiB2aXZvOiBsb3MgcGFzb3Mgc2UgYXBpbGFuIGVuIHZleiBkZSByZWVtcGxhemFyc2UuICovXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdUaW1lbGluZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYFxuXG5jb25zdCBzdGVwUmVwbGFjZUFuaW0gPSBjc3NgXG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcbmBcblxuLyogQ2FkYSBmaWxhIGVudHJhIHNvbGEgY3VhbmRvIGxsZWdhIHN1IHBhc286IHNpbiBkZWxheSBlc2NhbG9uYWRvIChubyBlcyB1biBsaXN0YWRvIHF1ZSBtb250YSBqdW50bykuICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZVJvdyA9IHN0eWxlZC5kaXY8eyAkc2VhbWxlc3M/OiBib29sZWFuIH0+YFxuICAkeyh7ICRzZWFtbGVzcyB9KSA9PiAoJHNlYW1sZXNzID8gY3NzYGAgOiBzdGVwUmVwbGFjZUFuaW0pfVxuYFxuXG4vKiBWYSBkZWJham8gZGVsIGN1ZXJwbyBkZWwgbWVuc2FqZTogc2VwYXJhIGRlbCB0ZXh0byB5IG5vIGRlamEgYWlyZSBzb2JyYW50ZSBhYmFqby4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lSW5kaWNhdG9yID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuXG4gID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbmBcblxuLyoqIFJlc3B1ZXN0YSBmaW5hbCBlbiBzdHJlYW06IHNpbiBndXR0ZXIgZGUgbGEgdHJhemEsIGRlYmFqbyBkZWwgcmF6b25hbWllbnRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDRmluYWxBbnN3ZXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG5gXG5cbi8qIEVsIG1hcmtkb3duIGxvIHJlc3VlbHZlIE1haWFTdHJlYW1kb3duIChtaXNtbyB2YXJpYW50IHF1ZSBlbCBjdWVycG8gZGVsIG1lbnNhamUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGhpbmtpbmdUZXh0ID0gc3R5bGVkLmRpdjx7ICRtdXRlZD86IGJvb2xlYW4gfT5gXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAvKiBFbCB0aGlua2luZyAocmF6b25hbWllbnRvIGNydWRvKSB2YSBhdGVudWFkbyBwYXJhIGRpc3Rpbmd1aXJsbyBkZSBsYSBuYXJyYWNpw7NuLiAqL1xuICBvcGFjaXR5OiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gMC42IDogMSl9O1xuICBmb250LXN0eWxlOiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gJ2l0YWxpYycgOiAnbm9ybWFsJyl9O1xuYFxuXG4vKipcbiAqIEZpbGEgZGUgbGEgdHJhemEuIFNvbG8gbG9zIHBhc29zIGRlIGFjY2nDs24gKHRvb2wvaGFuZG9mZikgbGxldmFuIGPDrXJjdWxvOyBsYXNcbiAqIG5hcnJhY2lvbmVzICh0YW1iacOpbiBsYSBpbmljaWFsKSBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXNcbiAqIGF0cmF2aWVzZSBzaW4gcHVudG8uIEVsIHJhaWwgZGVqYSA0cHggZGUgc2VwYXJhY2nDs24gYW50ZXMgZGUgY2FkYSBjw61yY3Vsby5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDU3RlcFJvdyA9IHN0eWxlZC5kaXY8e1xuICAkc3RhdHVzPzogc3RyaW5nXG4gICRoYXNNYXJrZXI/OiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gICRpc0FjdGl2ZT86IGJvb2xlYW5cbiAgJHNob3dDaHJvbWU/OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaD86IGJvb2xlYW5cbiAgJHJhaWxUb3A/OiBib29sZWFuXG4gICRyYWlsQm90dG9tPzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/IGAke0dVVFRFUl9XSURUSH1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy10b3A6ICR7KHsgJGhhc01hcmtlciB9KSA9PiAoJGhhc01hcmtlciA/IGAke01BUktFUl9QQURESU5HX1l9cHhgIDogJzAnKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRoYXNNYXJrZXIsICRjb25uZWN0QmVsb3cgfSkgPT4gc3RlcFJvd1BhZGRpbmdCb3R0b20oJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyl9O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAkeyh7ICRyYWlsVGhyb3VnaCwgJHJhaWxUb3AgfSkgPT4gcmFpbEJlZm9yZUJvdHRvbSgkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20gfSkgPT4gcmFpbEFmdGVyRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20pfTtcbiAgICAke3JhaWxTZWdtZW50U3R5bGV9XG4gICAgdG9wOiAke01BUktFUl9SQUlMX0JPVFRPTV9TVEFSVH1weDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stbWFya2VyIHtcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICR7TUFSS0VSX1RPUH1weDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAke01BUktFUl9TSVpFfXB4O1xuICAgIGhlaWdodDogJHtNQVJLRVJfU0laRX1weDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHsoeyAkc3RhdHVzLCAkaXNBY3RpdmUgfSkgPT4gbWFya2VyQ29sb3IoJHN0YXR1cywgJGlzQWN0aXZlKX07XG4gICAgb3BhY2l0eTogJHsoeyAkaXNBY3RpdmUgfSkgPT4gKCRpc0FjdGl2ZSA/IDEgOiAwLjQ1KX07XG4gICAgYW5pbWF0aW9uOiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gbWFya2VyUHVsc2UgOiAnbm9uZScpfSAxLjZzIGVhc2Utb3V0IGluZmluaXRlO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbFN0ZXAgPSBzdHlsZWQuZGl2PHsgJHN0YXR1cz86IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICMyMDIwMjA7XG5cbiAgLlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJHsoeyAkc3RhdHVzIH0pID0+ICgkc3RhdHVzID09PSAnZXJyb3InID8gY29sb3JzLmVycm9yLm1haW4gOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stdG9vbFByZXZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ291bnQgPSBzdHlsZWQuc3BhbmBcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjODA4MDgwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NQYXJhbGxlbERldGFpbCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdW1tYXJ5VG9nZ2xlID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2U7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuMjRzIGVhc2Utb3V0O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gICY6ZGlzYWJsZWQgLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2NvbG9ycy5wcmltYXJ5Lm1haW59O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7XG4gIH1cblxuICAvKiBDb2xhcHNhZG8gYXB1bnRhIGEgbGEgZGVyZWNoYSAob3JpZW50YWNpw7NuIG5hdGl2YSBkZWwgaWNvbm8pOyBleHBhbmRpZG8sIGFycmliYS4gKi9cbiAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cblxuICAvKiBFbCBndWlvbiBlcyBwYXJ0ZSBkZWwgdGV4dG8gZW4gZWwgbWFxdWV0YWRvLCBubyB1biBzZXBhcmFkb3IgYXRlbnVhZG8uICovXG5gXG5cbi8qIGhlaWdodDogYXV0byA8LT4gMCBzaW4gbWVkaXIgZWwgY29udGVuaWRvOiBlbCB0cmFjayBkZSBncmlkIGludGVycG9sYSBlbnRyZSAwZnIgeSAxZnIuICovXG5leHBvcnQgY29uc3QgU0NUcmFjZUNvbGxhcHNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzFmcicgOiAnMGZyJyl9O1xuICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMjQwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG5cbiAgPiAqIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRXhwYW5kZWRUcmFjZSA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAxIDogMCl9O1xuICBwYWRkaW5nLWJvdHRvbTogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzI0cHgnIDogJzAnKX07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMCcgOiAnLTRweCcpfSk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAxNDBtcyBlYXNlLW91dCxcbiAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZS1vdXQsXG4gICAgcGFkZGluZyAyNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVHJhY2VOb3RlID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogOHB4IDAgMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICBvcGFjaXR5OiAwLjc1O1xuYFxuXG5leHBvcnQgY29uc3QgU0NMb2FkaW5nTGluZSA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wOCkgNTAlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke3NoaW1tZXJ9IDEuOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Vycm9yUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG5cbiAgYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLEVBQUU7QUFFMUMsSUFBTUMsT0FBTyxHQUFHSCxTQUFTLHVFQUd4QjtBQUVELElBQU1JLE1BQU0sR0FBR0osU0FBUyw4RUFHdkI7QUFFRCxJQUFNSyxXQUFXLEdBQUdMLFNBQVMsNkVBRzVCOztBQUVEO0FBQ0EsSUFBTU0sV0FBVyxHQUFHTixTQUFTLHNJQUk1Qjs7QUFFRDtBQUNBLElBQU1PLFdBQVcsR0FBRyxDQUFDO0FBQ3JCLElBQU1DLFlBQVksR0FBRyxFQUFFO0FBQ3ZCLElBQU1DLGdCQUFnQixHQUFHLENBQUM7QUFDMUI7QUFDQSxJQUFNQyxVQUFVLEdBQUdELGdCQUFnQixHQUFHLENBQUMsRUFBRSxHQUFHRixXQUFXLElBQUksQ0FBQztBQUM1RDtBQUNBLElBQU1JLGdCQUFnQixHQUFHLENBQUNKLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM5QztBQUNBLElBQU1LLFFBQVEsR0FBRyxDQUFDO0FBQ2xCLElBQU1DLG1CQUFtQixHQUFHSCxVQUFVLEdBQUdFLFFBQVE7QUFDakQsSUFBTUUsd0JBQXdCLEdBQUdKLFVBQVUsR0FBR0gsV0FBVyxHQUFHSyxRQUFRO0FBRXBFLElBQU1HLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLFdBQXFCLEVBQUVDLE9BQWlCLEVBQWE7RUFDN0UsSUFBSUQsV0FBVyxFQUFFLE9BQU8sR0FBRztFQUMzQixJQUFJQyxPQUFPLEVBQUUsc0JBQUFDLE1BQUEsQ0FBc0JMLG1CQUFtQjtFQUN0RCxPQUFPLEdBQUc7QUFDWixDQUFDO0FBRUQsSUFBTU0sb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsU0FBbUIsRUFBRUMsWUFBc0IsRUFBYTtFQUNwRixJQUFJRCxTQUFTLEVBQUUsVUFBQUYsTUFBQSxDQUFVVCxnQkFBZ0I7RUFDekMsT0FBT1ksWUFBWSxHQUFHLEtBQUssR0FBRyxHQUFHO0FBQ25DLENBQUM7QUFFRCxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxVQUFvQixFQUFFUCxXQUFxQixFQUFFQyxPQUFpQjtFQUFBLE9BQ3ZGTSxVQUFVLEtBQUtQLFdBQVcsSUFBSUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLE1BQU07QUFBQTtBQUUzRCxJQUFNTyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJRCxVQUFvQixFQUFFRSxVQUFvQjtFQUFBLE9BQ2xFRixVQUFVLElBQUlFLFVBQVUsR0FBRyxPQUFPLEdBQUcsTUFBTTtBQUFBO0FBRTdDLElBQU1DLGdCQUFnQix1Q0FBQVIsTUFBQSxDQUVaUCxnQkFBZ0IsdURBQUFPLE1BQUEsQ0FHVmpCLE1BQU0sQ0FBQzBCLElBQUksQ0FBQ0MsVUFBVSwwQkFFckM7O0FBRUQ7QUFDQSxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsTUFBZSxFQUFFQyxRQUFrQixFQUFhO0VBQ25FLElBQUlELE1BQU0sS0FBSyxPQUFPLEVBQUUsT0FBTzdCLE1BQU0sQ0FBQytCLEtBQUssQ0FBQ0MsSUFBSTtFQUNoRCxJQUFJRixRQUFRLEVBQUUsT0FBTzlCLE1BQU0sQ0FBQzBCLElBQUksQ0FBQ08sT0FBTztFQUN4QyxPQUFPakMsTUFBTSxDQUFDMEIsSUFBSSxDQUFDQyxVQUFVO0FBQy9CLENBQUM7QUFFRCxPQUFPLElBQU1PLGdCQUFnQixHQUFHckMsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNFQU16QztBQUVELE9BQU8sSUFBTUMsVUFBVSxHQUFHMUMsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9GQUVwQnJDLHdCQUF3QixFQUV6QkcsV0FBVyxDQUN6Qjs7QUFFRDtBQUNBLE9BQU8sSUFBTW9DLG1CQUFtQixHQUFHM0MsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNFQUs1QztBQUVELElBQU1HLGVBQWUsR0FBRzNDLEdBQUcsMENBQ1pNLFdBQVcsQ0FDekI7O0FBRUQ7QUFDQSxPQUFPLElBQU1zQyxhQUFhLEdBQUc3QyxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsYUFDbkMsVUFBQUssSUFBQTtFQUFBLElBQUdDLFNBQVMsR0FBQUQsSUFBQSxDQUFUQyxTQUFTO0VBQUEsT0FBUUEsU0FBUyxHQUFHOUMsR0FBRyxTQUFLMkMsZUFBZTtBQUFBLENBQUMsQ0FDM0Q7O0FBRUQ7QUFDQSxPQUFPLElBQU1JLG1CQUFtQixHQUFHaEQsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGtGQUU5QmxDLFdBQVcsQ0FLekI7O0FBRUQ7QUFDQSxPQUFPLElBQU0wQyxpQkFBaUIsR0FBR2pELE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtQ0FHMUM7O0FBRUQ7QUFDQSxPQUFPLElBQU1TLGNBQWMsR0FBR2xELE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2REFHM0IsVUFBQVUsS0FBQTtFQUFBLElBQUdDLE1BQU0sR0FBQUQsS0FBQSxDQUFOQyxNQUFNO0VBQUEsT0FBUUEsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsQ0FBQyxFQUMvQixVQUFBQyxLQUFBO0VBQUEsSUFBR0QsTUFBTSxHQUFBQyxLQUFBLENBQU5ELE1BQU07RUFBQSxPQUFRQSxNQUFNLEdBQUcsUUFBUSxHQUFHLFFBQVE7QUFBQSxDQUFDLENBQzdEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1FLFNBQVMsR0FBR3RELE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwWUFZakIsVUFBQWMsS0FBQTtFQUFBLElBQUdDLFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0VBQUEsT0FBUUEsV0FBVyxNQUFBcEMsTUFBQSxDQUFNVixZQUFZLFVBQU8sR0FBRztBQUFBLENBQUMsRUFDL0QsVUFBQStDLEtBQUE7RUFBQSxJQUFHQyxVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtFQUFBLE9BQVFBLFVBQVUsTUFBQXRDLE1BQUEsQ0FBTVQsZ0JBQWdCLFVBQU8sR0FBRztBQUFBLENBQUMsRUFDN0QsVUFBQWdELEtBQUE7RUFBQSxJQUFHRCxVQUFVLEdBQUFDLEtBQUEsQ0FBVkQsVUFBVTtJQUFFRSxhQUFhLEdBQUFELEtBQUEsQ0FBYkMsYUFBYTtFQUFBLE9BQU92QyxvQkFBb0IsQ0FBQ3FDLFVBQVUsRUFBRUUsYUFBYSxDQUFDO0FBQUEsR0FJdkYsVUFBQUMsS0FBQTtFQUFBLElBQUdMLFdBQVcsR0FBQUssS0FBQSxDQUFYTCxXQUFXO0lBQUVNLFlBQVksR0FBQUQsS0FBQSxDQUFaQyxZQUFZO0lBQUVDLFFBQVEsR0FBQUYsS0FBQSxDQUFSRSxRQUFRO0VBQUEsT0FBT3ZDLGlCQUFpQixDQUFDZ0MsV0FBVyxFQUFFTSxZQUFZLEVBQUVDLFFBQVEsQ0FBQztBQUFBLEdBQzVHbkMsZ0JBQWdCLEVBRVIsVUFBQW9DLEtBQUE7RUFBQSxJQUFHRixZQUFZLEdBQUFFLEtBQUEsQ0FBWkYsWUFBWTtJQUFFQyxRQUFRLEdBQUFDLEtBQUEsQ0FBUkQsUUFBUTtFQUFBLE9BQU85QyxnQkFBZ0IsQ0FBQzZDLFlBQVksRUFBRUMsUUFBUSxDQUFDO0FBQUEsR0FLdkUsVUFBQUUsS0FBQTtFQUFBLElBQUdULFdBQVcsR0FBQVMsS0FBQSxDQUFYVCxXQUFXO0lBQUVVLFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0VBQUEsT0FBT3hDLGdCQUFnQixDQUFDOEIsV0FBVyxFQUFFVSxXQUFXLENBQUM7QUFBQSxHQUNyRnRDLGdCQUFnQixFQUNYWix3QkFBd0IsRUFLcEIsVUFBQW1ELEtBQUE7RUFBQSxJQUFHWCxXQUFXLEdBQUFXLEtBQUEsQ0FBWFgsV0FBVztFQUFBLE9BQVFBLFdBQVcsR0FBRyxPQUFPLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFHekQ1QyxVQUFVLEVBRVJILFdBQVcsRUFDVkEsV0FBVyxFQUVQLFVBQUEyRCxLQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87SUFBRUMsU0FBUyxHQUFBRixLQUFBLENBQVRFLFNBQVM7RUFBQSxPQUFPdkMsV0FBVyxDQUFDc0MsT0FBTyxFQUFFQyxTQUFTLENBQUM7QUFBQSxHQUM5RCxVQUFBQyxNQUFBO0VBQUEsSUFBR0QsU0FBUyxHQUFBQyxNQUFBLENBQVRELFNBQVM7RUFBQSxPQUFRQSxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUk7QUFBQSxDQUFDLEVBQ3ZDLFVBQUFFLE1BQUE7RUFBQSxJQUFHRixTQUFTLEdBQUFFLE1BQUEsQ0FBVEYsU0FBUztFQUFBLE9BQVFBLFNBQVMsR0FBRzlELFdBQVcsR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQUVyRTtBQUVELE9BQU8sSUFBTWlFLGlCQUFpQixHQUFHekUsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVEQUkxQztBQUVELE9BQU8sSUFBTWlDLFVBQVUsR0FBRzFFLE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrUkFXdkIsVUFBQWtDLE1BQUE7RUFBQSxJQUFHTixPQUFPLEdBQUFNLE1BQUEsQ0FBUE4sT0FBTztFQUFBLE9BQVFBLE9BQU8sS0FBSyxPQUFPLEdBQUdsRSxNQUFNLENBQUMrQixLQUFLLENBQUNDLElBQUksR0FBR2hDLE1BQU0sQ0FBQzBCLElBQUksQ0FBQ08sT0FBTztBQUFBLENBQUMsQ0FXNUY7QUFFRCxPQUFPLElBQU13QyxlQUFlLEdBQUc1RSxNQUFNLENBQUM2RSxJQUFJLENBQUF0QyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9FQUt6QztBQUVELE9BQU8sSUFBTXFDLGdCQUFnQixHQUFHOUUsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRGQU16QztBQUVELE9BQU8sSUFBTXNDLGVBQWUsR0FBRy9FLE1BQU0sQ0FBQ2dGLE1BQU0sQ0FBQXpDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ29CQWU3Qm5DLE1BQU0sRUFHUkgsTUFBTSxDQUFDMEIsSUFBSSxDQUFDTyxPQUFPLEVBYVBqQyxNQUFNLENBQUNpQyxPQUFPLENBQUNELElBQUksQ0FnQjNDOztBQUVEO0FBQ0EsT0FBTyxJQUFNOEMsZUFBZSxHQUFHakYsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRJQUVqQixVQUFBeUMsTUFBQTtFQUFBLElBQUdDLE9BQU8sR0FBQUQsTUFBQSxDQUFQQyxPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLEtBQUssR0FBRyxLQUFLO0FBQUEsQ0FBQyxDQU9qRTtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHcEYsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlNQUc1QixVQUFBNEMsTUFBQTtFQUFBLElBQUdGLE9BQU8sR0FBQUUsTUFBQSxDQUFQRixPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQUEsQ0FBQyxFQUMzQixVQUFBRyxNQUFBO0VBQUEsSUFBR0gsT0FBTyxHQUFBRyxNQUFBLENBQVBILE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsTUFBTSxHQUFHLEdBQUc7QUFBQSxDQUFDLEVBQ25DLFVBQUFJLE1BQUE7RUFBQSxJQUFHSixPQUFPLEdBQUFJLE1BQUEsQ0FBUEosT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTTtBQUFBLENBQUMsQ0FLbEU7QUFFRCxPQUFPLElBQU1LLFdBQVcsR0FBR3hGLE1BQU0sQ0FBQ3lGLENBQUMsQ0FBQWxELFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUZBSXhCdEMsTUFBTSxDQUFDMEIsSUFBSSxDQUFDQyxVQUFVLENBRWhDO0FBRUQsT0FBTyxJQUFNNEQsYUFBYSxHQUFHMUYsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFOQU14QnBDLE9BQU8sQ0FDckI7QUFFRCxPQUFPLElBQU1zRixVQUFVLEdBQUczRixNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNExBS3pCdEMsTUFBTSxDQUFDMEIsSUFBSSxDQUFDQyxVQUFVLEVBU3BCM0IsTUFBTSxDQUFDMEIsSUFBSSxDQUFDTyxPQUFPLENBRS9CIiwiaWdub3JlTGlzdCI6W119
|
|
193
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJSRUFTT05JTkdfQ09MTEFQU0VfRUFTRSIsIlJFQVNPTklOR19DT0xMQVBTRV9NUyIsIkxJVkVfVklFV1BPUlRfTUFYX0hFSUdIVCIsInNoaW1tZXIiLCJmYWRlSW4iLCJzdGVwUmVwbGFjZSIsIm1hcmtlclB1bHNlIiwiTUFSS0VSX1NJWkUiLCJHVVRURVJfV0lEVEgiLCJNQVJLRVJfUEFERElOR19ZIiwiTUFSS0VSX1RPUCIsIk1BUktFUl9SQUlMX0xFRlQiLCJSQUlMX0dBUCIsIk1BUktFUl9SQUlMX1RPUF9FTkQiLCJNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQiLCJyYWlsQmVmb3JlQm90dG9tIiwicmFpbFRocm91Z2giLCJyYWlsVG9wIiwiY29uY2F0Iiwic3RlcFJvd1BhZGRpbmdCb3R0b20iLCJoYXNNYXJrZXIiLCJjb25uZWN0QmVsb3ciLCJyYWlsQmVmb3JlRGlzcGxheSIsInNob3dDaHJvbWUiLCJyYWlsQWZ0ZXJEaXNwbGF5IiwicmFpbEJvdHRvbSIsInJhaWxTZWdtZW50U3R5bGUiLCJ0ZXh0IiwibWVkaXVtR3JheSIsIm1hcmtlckNvbG9yIiwic3RhdHVzIiwiaXNBY3RpdmUiLCJlcnJvciIsIm1haW4iLCJwcmltYXJ5IiwiU0NSZWFzb25pbmdCbG9jayIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NMaXZlU3RlcCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJzdGVwUmVwbGFjZUFuaW0iLCJTQ1RpbWVsaW5lUm93IiwiX3JlZiIsIiRzZWFtbGVzcyIsIlNDVGltZWxpbmVJbmRpY2F0b3IiLCJTQ0ZpbmFsQW5zd2VyQm9keSIsIlNDVGhpbmtpbmdUZXh0IiwiX3JlZjIiLCIkbXV0ZWQiLCJfcmVmMyIsIlNDU3RlcFJvdyIsIl9yZWY0IiwiJHNob3dDaHJvbWUiLCJfcmVmNSIsIiRoYXNNYXJrZXIiLCJfcmVmNiIsIiRjb25uZWN0QmVsb3ciLCJfcmVmNyIsIiRyYWlsVGhyb3VnaCIsIiRyYWlsVG9wIiwiX3JlZjgiLCJfcmVmOSIsIiRyYWlsQm90dG9tIiwiX3JlZjAiLCJfcmVmMSIsIiRzdGF0dXMiLCIkaXNBY3RpdmUiLCJfcmVmMTAiLCJfcmVmMTEiLCJTQ1BhcmFsbGVsQ29udGVudCIsIlNDVG9vbFN0ZXAiLCJfcmVmMTIiLCJTQ1BhcmFsbGVsQ291bnQiLCJzcGFuIiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3VtbWFyeVRvZ2dsZSIsImJ1dHRvbiIsIlNDVHJhY2VDb2xsYXBzZSIsIl9yZWYxMyIsIiRoZWlnaHQiLCJTQ0V4cGFuZGVkVHJhY2UiLCJfcmVmMTQiLCIkaXNPcGVuIiwiX3JlZjE1IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBSRUFTT05JTkdfQ09MTEFQU0VfRUFTRSwgUkVBU09OSU5HX0NPTExBUFNFX01TIH0gZnJvbSAnLi91c2VDb2xsYXBzaWJsZUhlaWdodCdcblxuZXhwb3J0IGNvbnN0IExJVkVfVklFV1BPUlRfTUFYX0hFSUdIVCA9IDcyXG5cbmNvbnN0IHNoaW1tZXIgPSBrZXlmcmFtZXNgXG4gIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwOyB9XG4gIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwOyB9XG5gXG5cbmNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG5jb25zdCBzdGVwUmVwbGFjZSA9IGtleWZyYW1lc2BcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG5gXG5cbi8qIEhhbG8gZGVsIHBhc28gZW4gY3Vyc286IGxvIGRpc3Rpbmd1ZSBkZSBsb3MgeWEgY2VycmFkb3Mgc2luIGNhbWJpYXIgc3UgdGFtYcOxby4gKi9cbmNvbnN0IG1hcmtlclB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwLjI4KTsgfVxuICA3MCUgeyBib3gtc2hhZG93OiAwIDAgMCA1cHggcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDMyLCAzMiwgMzIsIDApOyB9XG5gXG5cbi8qKiBHdXR0ZXIgZG9uZGUgdml2ZW4gZWwgbWFyY2Fkb3IgeSBsYSBsw61uZWEgcXVlIHVuZSBsb3MgcGFzb3MuICovXG5jb25zdCBNQVJLRVJfU0laRSA9IDdcbmNvbnN0IEdVVFRFUl9XSURUSCA9IDE2XG5jb25zdCBNQVJLRVJfUEFERElOR19ZID0gNFxuLyogQ2VudHJhIGVsIG1hcmNhZG9yIGNvbiBsYSBwcmltZXJhIGzDrW5lYSBkZSB0ZXh0byAoMTZweCAqIDEuNSA9IDI0cHgpICsgcGFkZGluZyB2ZXJ0aWNhbC4gKi9cbmNvbnN0IE1BUktFUl9UT1AgPSBNQVJLRVJfUEFERElOR19ZICsgKDI0IC0gTUFSS0VSX1NJWkUpIC8gMlxuLyoqIENlbnRyYSBlbCByYWlsIGRlIDFweCBjb24gZWwgY8OtcmN1bG8gZGUgN3B4LiAqL1xuY29uc3QgTUFSS0VSX1JBSUxfTEVGVCA9IChNQVJLRVJfU0laRSAtIDEpIC8gMlxuLyoqIFNlcGFyYWNpw7NuIGVudHJlIGVsIHJhaWwgeSBlbCBib3JkZSBkZWwgY8OtcmN1bG8uICovXG5jb25zdCBSQUlMX0dBUCA9IDRcbmNvbnN0IE1BUktFUl9SQUlMX1RPUF9FTkQgPSBNQVJLRVJfVE9QIC0gUkFJTF9HQVBcbmNvbnN0IE1BUktFUl9SQUlMX0JPVFRPTV9TVEFSVCA9IE1BUktFUl9UT1AgKyBNQVJLRVJfU0laRSArIFJBSUxfR0FQXG5cbmNvbnN0IHJhaWxCZWZvcmVCb3R0b20gPSAocmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmIChyYWlsVGhyb3VnaCkgcmV0dXJuICcwJ1xuICBpZiAocmFpbFRvcCkgcmV0dXJuIGBjYWxjKDEwMCUgLSAke01BUktFUl9SQUlMX1RPUF9FTkR9cHgpYFxuICByZXR1cm4gJzAnXG59XG5cbmNvbnN0IHN0ZXBSb3dQYWRkaW5nQm90dG9tID0gKGhhc01hcmtlcj86IGJvb2xlYW4sIGNvbm5lY3RCZWxvdz86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoaGFzTWFya2VyKSByZXR1cm4gYCR7TUFSS0VSX1BBRERJTkdfWX1weGBcbiAgcmV0dXJuIGNvbm5lY3RCZWxvdyA/ICc4cHgnIDogJzAnXG59XG5cbmNvbnN0IHJhaWxCZWZvcmVEaXNwbGF5ID0gKHNob3dDaHJvbWU/OiBib29sZWFuLCByYWlsVGhyb3VnaD86IGJvb2xlYW4sIHJhaWxUb3A/OiBib29sZWFuKTogc3RyaW5nID0+XG4gIHNob3dDaHJvbWUgJiYgKHJhaWxUaHJvdWdoIHx8IHJhaWxUb3ApID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsQWZ0ZXJEaXNwbGF5ID0gKHNob3dDaHJvbWU/OiBib29sZWFuLCByYWlsQm90dG9tPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIHJhaWxCb3R0b20gPyAnYmxvY2snIDogJ25vbmUnXG5cbmNvbnN0IHJhaWxTZWdtZW50U3R5bGUgPSBgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogJHtNQVJLRVJfUkFJTF9MRUZUfXB4O1xuICB3aWR0aDogMXB4O1xuICB6LWluZGV4OiAwO1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICBvcGFjaXR5OiAwLjI1O1xuYFxuXG4vKiogRWwgcGFzbyBhY3Rpdm8gdmEgYSBjb2xvciBwbGVubzsgbG9zIGNlcnJhZG9zIHF1ZWRhbiBhdGVudWFkb3MuICovXG5jb25zdCBtYXJrZXJDb2xvciA9IChzdGF0dXM/OiBzdHJpbmcsIGlzQWN0aXZlPzogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmIChzdGF0dXMgPT09ICdlcnJvcicpIHJldHVybiBjb2xvcnMuZXJyb3IubWFpblxuICBpZiAoaXNBY3RpdmUpIHJldHVybiBjb2xvcnMudGV4dC5wcmltYXJ5XG4gIHJldHVybiBjb2xvcnMudGV4dC5tZWRpdW1HcmF5XG59XG5cbmV4cG9ydCBjb25zdCBTQ1JlYXNvbmluZ0Jsb2NrID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIFNpbiBnYXA6IGVsIGVzcGFjaW8gaGFjaWEgZWwgZGV0YWxsZSB2aXZlIGVuIHN1IHBhZGRpbmctdG9wLCBhc8OtIGNvbGFwc2EganVudG8gY29uIMOpbC4gKi9cbmBcblxuZXhwb3J0IGNvbnN0IFNDTGl2ZVN0ZXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogJHtMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFR9cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yMnMgZWFzZS1vdXQ7XG5gXG5cbi8qIFRpbWVsaW5lIGVuIHZpdm86IGxvcyBwYXNvcyBzZSBhcGlsYW4gZW4gdmV6IGRlIHJlZW1wbGF6YXJzZS4gKi9cbmV4cG9ydCBjb25zdCBTQ1JlYXNvbmluZ1RpbWVsaW5lID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gXG5cbmNvbnN0IHN0ZXBSZXBsYWNlQW5pbSA9IGNzc2BcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuYFxuXG4vKiBDYWRhIGZpbGEgZW50cmEgc29sYSBjdWFuZG8gbGxlZ2Egc3UgcGFzbzogc2luIGRlbGF5IGVzY2Fsb25hZG8gKG5vIGVzIHVuIGxpc3RhZG8gcXVlIG1vbnRhIGp1bnRvKS4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lUm93ID0gc3R5bGVkLmRpdjx7ICRzZWFtbGVzcz86IGJvb2xlYW4gfT5gXG4gICR7KHsgJHNlYW1sZXNzIH0pID0+ICgkc2VhbWxlc3MgPyBjc3NgYCA6IHN0ZXBSZXBsYWNlQW5pbSl9XG5gXG5cbi8qIFZhIGRlYmFqbyBkZWwgY3VlcnBvIGRlbCBtZW5zYWplOiBzZXBhcmEgZGVsIHRleHRvIHkgbm8gZGVqYSBhaXJlIHNvYnJhbnRlIGFiYWpvLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGltZWxpbmVJbmRpY2F0b3IgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nLXRvcDogNnB4O1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjRzIGVhc2Utb3V0IGJvdGg7XG5cbiAgPiAqIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuYFxuXG4vKiogUmVzcHVlc3RhIGZpbmFsIGVuIHN0cmVhbTogc2luIGd1dHRlciBkZSBsYSB0cmF6YSwgZGViYWpvIGRlbCByYXpvbmFtaWVudG8uICovXG5leHBvcnQgY29uc3QgU0NGaW5hbEFuc3dlckJvZHkgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbmBcblxuLyogRWwgbWFya2Rvd24gbG8gcmVzdWVsdmUgTWFpYVN0cmVhbWRvd24gKG1pc21vIHZhcmlhbnQgcXVlIGVsIGN1ZXJwbyBkZWwgbWVuc2FqZSkuICovXG5leHBvcnQgY29uc3QgU0NUaGlua2luZ1RleHQgPSBzdHlsZWQuZGl2PHsgJG11dGVkPzogYm9vbGVhbiB9PmBcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIC8qIEVsIHRoaW5raW5nIChyYXpvbmFtaWVudG8gY3J1ZG8pIHZhIGF0ZW51YWRvIHBhcmEgZGlzdGluZ3VpcmxvIGRlIGxhIG5hcnJhY2nDs24uICovXG4gIG9wYWNpdHk6ICR7KHsgJG11dGVkIH0pID0+ICgkbXV0ZWQgPyAwLjYgOiAxKX07XG4gIGZvbnQtc3R5bGU6ICR7KHsgJG11dGVkIH0pID0+ICgkbXV0ZWQgPyAnaXRhbGljJyA6ICdub3JtYWwnKX07XG5gXG5cbi8qKlxuICogRmlsYSBkZSBsYSB0cmF6YS4gU29sbyBsb3MgcGFzb3MgZGUgYWNjacOzbiAodG9vbC9oYW5kb2ZmKSBsbGV2YW4gY8OtcmN1bG87IGxhc1xuICogbmFycmFjaW9uZXMgKHRhbWJpw6luIGxhIGluaWNpYWwpIGNvbXBhcnRlbiBlbCBndXR0ZXIgcGFyYSBxdWUgbGEgbMOtbmVhIGxhc1xuICogYXRyYXZpZXNlIHNpbiBwdW50by4gRWwgcmFpbCBkZWphIDRweCBkZSBzZXBhcmFjacOzbiBhbnRlcyBkZSBjYWRhIGPDrXJjdWxvLlxuICovXG5leHBvcnQgY29uc3QgU0NTdGVwUm93ID0gc3R5bGVkLmRpdjx7XG4gICRzdGF0dXM/OiBzdHJpbmdcbiAgJGhhc01hcmtlcj86IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgJGlzQWN0aXZlPzogYm9vbGVhblxuICAkc2hvd0Nocm9tZT86IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoPzogYm9vbGVhblxuICAkcmFpbFRvcD86IGJvb2xlYW5cbiAgJHJhaWxCb3R0b20/OiBib29sZWFuXG59PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gYCR7R1VUVEVSX1dJRFRIfXB4YCA6ICcwJyl9O1xuICBwYWRkaW5nLXRvcDogJHsoeyAkaGFzTWFya2VyIH0pID0+ICgkaGFzTWFya2VyID8gYCR7TUFSS0VSX1BBRERJTkdfWX1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyB9KSA9PiBzdGVwUm93UGFkZGluZ0JvdHRvbSgkaGFzTWFya2VyLCAkY29ubmVjdEJlbG93KX07XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wIH0pID0+IHJhaWxCZWZvcmVEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gICAgJHtyYWlsU2VnbWVudFN0eWxlfVxuICAgIHRvcDogMDtcbiAgICBib3R0b206ICR7KHsgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlQm90dG9tKCRyYWlsVGhyb3VnaCwgJHJhaWxUb3ApfTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSB9KSA9PiByYWlsQWZ0ZXJEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6ICR7TUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUfXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1tYXJrZXIge1xuICAgIGRpc3BsYXk6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJHtNQVJLRVJfVE9QfXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6ICR7TUFSS0VSX1NJWkV9cHg7XG4gICAgaGVpZ2h0OiAke01BUktFUl9TSVpFfXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7ICRzdGF0dXMsICRpc0FjdGl2ZSB9KSA9PiBtYXJrZXJDb2xvcigkc3RhdHVzLCAkaXNBY3RpdmUpfTtcbiAgICBvcGFjaXR5OiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gMSA6IDAuNDUpfTtcbiAgICBhbmltYXRpb246ICR7KHsgJGlzQWN0aXZlIH0pID0+ICgkaXNBY3RpdmUgPyBtYXJrZXJQdWxzZSA6ICdub25lJyl9IDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sU3RlcCA9IHN0eWxlZC5kaXY8eyAkc3RhdHVzPzogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzIwMjAyMDtcblxuICAuUmVhc29uaW5nQmxvY2stdG9vbExhYmVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAkeyh7ICRzdGF0dXMgfSkgPT4gKCRzdGF0dXMgPT09ICdlcnJvcicgPyBjb2xvcnMuZXJyb3IubWFpbiA6IGNvbG9ycy50ZXh0LnByaW1hcnkpfTtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay10b29sUHJldmlldyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb3VudCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsRGV0YWlsID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzgwODA4MDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1bW1hcnlUb2dnbGUgPSBzdHlsZWQuYnV0dG9uYFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzgwODA4MDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC4yNHMgZWFzZS1vdXQ7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgJjpkaXNhYmxlZCAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7Y29sb3JzLnByaW1hcnkubWFpbn07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1jaGV2cm9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHtSRUFTT05JTkdfQ09MTEFQU0VfTVN9bXMgJHtSRUFTT05JTkdfQ09MTEFQU0VfRUFTRX07XG4gIH1cblxuICAvKiBDb2xhcHNhZG8gYXB1bnRhIGEgbGEgZGVyZWNoYSAob3JpZW50YWNpw7NuIG5hdGl2YSBkZWwgaWNvbm8pOyBleHBhbmRpZG8sIGFycmliYS4gKi9cbiAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cblxuICAvKiBFbCBndWlvbiBlcyBwYXJ0ZSBkZWwgdGV4dG8gZW4gZWwgbWFxdWV0YWRvLCBubyB1biBzZXBhcmFkb3IgYXRlbnVhZG8uICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RyYWNlQ29sbGFwc2UgPSBzdHlsZWQuZGl2PHsgJGhlaWdodDogbnVtYmVyIHwgJ2F1dG8nIH0+YFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6ICR7KHsgJGhlaWdodCB9KSA9PiAoJGhlaWdodCA9PT0gJ2F1dG8nID8gJ2F1dG8nIDogYCR7JGhlaWdodH1weGApfTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0ICR7UkVBU09OSU5HX0NPTExBUFNFX01TfW1zICR7UkVBU09OSU5HX0NPTExBUFNFX0VBU0V9O1xuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFeHBhbmRlZFRyYWNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICBvcGFjaXR5OiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAxIDogMCl9O1xuICAvKiBFbCBmYWRlIHZhIGFsIGZpbmFsOiBzaSBzZSBhcGFnYSBhbnRlcywgbm8gc2UgdmUgZWwgY2llcnJlIGRlIGxhIGFsdHVyYS4gKi9cbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMjgwbXMnIDogYDI4MG1zICR7UkVBU09OSU5HX0NPTExBUFNFX01TIC0gMjgwfW1zYCl9XG4gICAgJHtSRUFTT05JTkdfQ09MTEFQU0VfRUFTRX07XG5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RyYWNlTm90ZSA9IHN0eWxlZC5wYFxuICBtYXJnaW46IDhweCAwIDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC43NTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTG9hZGluZ0xpbmUgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA2MCU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDgpIDUwJSwgcmdiYSgwLCAwLCAwLCAwLjA0KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogJHtzaGltbWVyfSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NFcnJvclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuXG4gIGJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsdUJBQXVCLEVBQUVDLHFCQUFxQixRQUFRLHdCQUF3QjtBQUV2RixPQUFPLElBQU1DLHdCQUF3QixHQUFHLEVBQUU7QUFFMUMsSUFBTUMsT0FBTyxHQUFHTCxTQUFTLHVFQUd4QjtBQUVELElBQU1NLE1BQU0sR0FBR04sU0FBUyw4RUFHdkI7QUFFRCxJQUFNTyxXQUFXLEdBQUdQLFNBQVMsNkVBRzVCOztBQUVEO0FBQ0EsSUFBTVEsV0FBVyxHQUFHUixTQUFTLHNJQUk1Qjs7QUFFRDtBQUNBLElBQU1TLFdBQVcsR0FBRyxDQUFDO0FBQ3JCLElBQU1DLFlBQVksR0FBRyxFQUFFO0FBQ3ZC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
|
|
@@ -181,4 +181,4 @@ export var StepList = function StepList(_ref4) {
|
|
|
181
181
|
})
|
|
182
182
|
});
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsIlNDUGFyYWxsZWxDb250ZW50IiwiU0NQYXJhbGxlbENvdW50IiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3RlcFJvdyIsIlNDVGhpbmtpbmdUZXh0IiwiU0NUb29sU3RlcCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsInN0ZXBMYWJlbCIsInN0ZXAiLCJ0IiwidHlwZSIsInRvIiwiYWdlbnQiLCJ0b29sIiwiaXNWaXNpYmxlU3RlcCIsImlzQWN0aW9uU3RlcCIsImlzVGV4dFN0ZXBSb3ciLCJyb3ciLCJraW5kIiwicmVzb2x2ZVJvd0Nvbm5lY3Rpb25zIiwicm93cyIsImluZGV4IiwiY29ubmVjdEFib3ZlIiwibGVuZ3RoIiwiY29ubmVjdEJlbG93IiwiaXNMYXN0UGFpciIsIm5leHRJc1Rlcm1pbmFsVGV4dCIsInN0ZXBSb3dSYWlsUHJvcHMiLCJoYXNNYXJrZXIiLCJzaG93Q2hyb21lIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiJHNob3dDaHJvbWUiLCIkaGFzTWFya2VyIiwiJGNvbm5lY3RBYm92ZSIsIiRjb25uZWN0QmVsb3ciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIiRyYWlsQm90dG9tIiwiUmVhc29uaW5nU3RlcFJvdyIsIl9yZWYiLCJpc0FjdGl2ZSIsIl9yZWYkc2hvd0Nocm9tZSIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsIlBhcmFsbGVsU3RlcFJvdyIsIl9yZWYyIiwic2hvd0RldGFpbCIsIl9yZWYyJHNob3dDaHJvbWUiLCJkZXRhaWwiLCJzdGVwcyIsImNvdW50TGFiZWwiLCJjb3VudCIsImxhYmVsIiwiRGlzcGxheVN0ZXBSb3ciLCJfcmVmMyIsIl9yZWYzJHNob3dDaHJvbWUiLCJTdGVwTGlzdCIsIl9yZWY0IiwiX3JlZjQkc2hvd0RldGFpbCIsIm1hcCIsIl9yZXNvbHZlUm93Q29ubmVjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1N0ZXBzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3RyZWFtQWN0aXZpdHlNZXNzYWdlcydcbmltcG9ydCB7IE1haWFTdHJlYW1kb3duIH0gZnJvbSAnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgcGFyYWxsZWxTdGVwRGV0YWlsIH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQge1xuICBTQ1BhcmFsbGVsQ29udGVudCxcbiAgU0NQYXJhbGxlbENvdW50LFxuICBTQ1BhcmFsbGVsRGV0YWlsLFxuICBTQ1N0ZXBSb3csXG4gIFNDVGhpbmtpbmdUZXh0LFxuICBTQ1Rvb2xTdGVwLFxufSBmcm9tICcuL1JlYXNvbmluZ0Jsb2NrLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgVHJhbnNsYXRlRm4gPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VUPlsndCddXG5cbmV4cG9ydCBjb25zdCBzdGVwTGFiZWwgPSAoc3RlcDogUmVhc29uaW5nU3RlcCwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RlcC50eXBlID09PSAnaGFuZG9mZicpIHtcbiAgICByZXR1cm4gc3RlcC50byA/IHQoJ2NoYXQucmVhc29uaW5nLmNhbGxlZEFnZW50JywgeyBhZ2VudDogc3RlcC50byB9KSA6IHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICB9XG4gIGlmICghc3RlcC50b29sKSByZXR1cm4gdCgnY2hhdC5hY3Rpdml0eS5leGVjdXRlZEFjdGlvbicpXG4gIHJldHVybiByZXNvbHZlVG9vbFN0ZXBQYXN0TGFiZWwoc3RlcC50b29sLCB0KVxufVxuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG4vKiogU29sbyB0b29sL2hhbmRvZmYgbGxldmFuIGPDrXJjdWxvIGVuIGxhIHRyYXphOyBuYXJyYWNpb25lcyB5IHRoaW5raW5nIG5vLiAqL1xuZXhwb3J0IGNvbnN0IGlzQWN0aW9uU3RlcCA9IChzdGVwOiBSZWFzb25pbmdTdGVwKTogYm9vbGVhbiA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJ1xuXG4vKiogTmFycmFjacOzbi90aGlua2luZyBhbCBjaWVycmUgZGUgbGEgdHJhemE6IG5vIGxsZXZhbiByYWlsIGNvbGdhbnRlLiAqL1xuZXhwb3J0IGNvbnN0IGlzVGV4dFN0ZXBSb3cgPSAocm93OiBSZWFzb25pbmdEaXNwbGF5Um93KTogYm9vbGVhbiA9PlxuICByb3cua2luZCA9PT0gJ3NpbmdsZScgJiYgKHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nIHx8IHJvdy5zdGVwLnR5cGUgPT09ICd0aGlua2luZycpXG5cbi8qKiBDb25lY3RvcmVzIGRlIHJhaWw6IHNpbiBsw61uZWEgaGFjaWEgYWJham8gc2kgbG8gc2lndWllbnRlIGVzIG5hcnJhY2nDs24gZmluYWwuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zID0gKFxuICByb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10sXG4gIGluZGV4OiBudW1iZXJcbik6IHsgY29ubmVjdEFib3ZlOiBib29sZWFuOyBjb25uZWN0QmVsb3c6IGJvb2xlYW4gfSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RBYm92ZSA9IGluZGV4ID4gMFxuICBpZiAoaW5kZXggPj0gcm93cy5sZW5ndGggLSAxKSB7XG4gICAgcmV0dXJuIHsgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH1cbiAgfVxuXG4gIGNvbnN0IGlzTGFzdFBhaXIgPSBpbmRleCA9PT0gcm93cy5sZW5ndGggLSAyXG4gIGNvbnN0IG5leHRJc1Rlcm1pbmFsVGV4dCA9IGlzTGFzdFBhaXIgJiYgaXNUZXh0U3RlcFJvdyhyb3dzW2luZGV4ICsgMV0pXG5cbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0QWJvdmUsXG4gICAgY29ubmVjdEJlbG93OiAhbmV4dElzVGVybWluYWxUZXh0LFxuICB9XG59XG5cbmNvbnN0IHN0ZXBSb3dSYWlsUHJvcHMgPSAoXG4gIGhhc01hcmtlcjogYm9vbGVhbixcbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhbixcbiAgY29ubmVjdEJlbG93PzogYm9vbGVhbixcbiAgc2hvd0Nocm9tZSA9IHRydWVcbik6IHtcbiAgJHNob3dDaHJvbWU6IGJvb2xlYW5cbiAgJGhhc01hcmtlcjogYm9vbGVhblxuICAkY29ubmVjdEFib3ZlOiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c6IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoOiBib29sZWFuXG4gICRyYWlsVG9wOiBib29sZWFuXG4gICRyYWlsQm90dG9tOiBib29sZWFuXG59ID0+ICh7XG4gICRzaG93Q2hyb21lOiBzaG93Q2hyb21lLFxuICAkaGFzTWFya2VyOiBoYXNNYXJrZXIsXG4gICRjb25uZWN0QWJvdmU6ICEhY29ubmVjdEFib3ZlLFxuICAkY29ubmVjdEJlbG93OiAhIWNvbm5lY3RCZWxvdyxcbiAgLy8gTmFycmFjacOzbiBpbmljaWFsIChzaW4gY8OtcmN1bG8pOiBsYSBsw61uZWEgYmFqYSBoYWNpYSBlbCBwcmltZXIgc3RlcC5cbiAgLy8gTmFycmFjacOzbiBmaW5hbDogY29ubmVjdEJlbG93IGVzIGZhbHNlIOKGkiBzaW4gbMOtbmVhIGNvbGdhbnRlLlxuICAkcmFpbFRocm91Z2g6IHNob3dDaHJvbWUgJiYgIWhhc01hcmtlciAmJiAhIWNvbm5lY3RCZWxvdyxcbiAgJHJhaWxUb3A6IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEFib3ZlLFxuICAkcmFpbEJvdHRvbTogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG59KVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICAvKiogQ8OtcmN1bG9zIHkgcmFpbDogc29sbyBlbiBlbCBibG9xdWUgZXhwYW5kaWRvLCBubyBlbiB0aW1lbGluZSBlbiB2aXZvLiAqL1xuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJcIiBhcmlhLWhpZGRlbiAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCI+e3N0ZXAudGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93IH0gPSByZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgaW5kZXgpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgICAgICBzaG93RGV0YWlsPXtzaG93RGV0YWlsfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsVUFBVSxRQUNMLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSWhDLE9BQU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLElBQW1CLEVBQUVDLENBQWMsRUFBYTtFQUN4RSxJQUFJRCxJQUFJLENBQUNFLElBQUksS0FBSyxTQUFTLEVBQUU7SUFDM0IsT0FBT0YsSUFBSSxDQUFDRyxFQUFFLEdBQUdGLENBQUMsQ0FBQyw0QkFBNEIsRUFBRTtNQUFFRyxLQUFLLEVBQUVKLElBQUksQ0FBQ0c7SUFBRyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQzFHO0VBQ0EsSUFBSSxDQUFDRCxJQUFJLENBQUNLLElBQUksRUFBRSxPQUFPSixDQUFDLENBQUMsOEJBQThCLENBQUM7RUFDeEQsT0FBT25CLHdCQUF3QixDQUFDa0IsSUFBSSxDQUFDSyxJQUFJLEVBQUVKLENBQUMsQ0FBQztBQUMvQyxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlOLElBQW1CO0VBQUEsT0FBY0EsSUFBSSxDQUFDRSxJQUFJLEtBQUssVUFBVTtBQUFBOztBQUV2RjtBQUNBLE9BQU8sSUFB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
|
|
184
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsIlNDUGFyYWxsZWxDb250ZW50IiwiU0NQYXJhbGxlbENvdW50IiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3RlcFJvdyIsIlNDVGhpbmtpbmdUZXh0IiwiU0NUb29sU3RlcCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsInN0ZXBMYWJlbCIsInN0ZXAiLCJ0IiwidHlwZSIsInRvIiwiYWdlbnQiLCJ0b29sIiwiaXNWaXNpYmxlU3RlcCIsImlzQWN0aW9uU3RlcCIsImlzVGV4dFN0ZXBSb3ciLCJyb3ciLCJraW5kIiwicmVzb2x2ZVJvd0Nvbm5lY3Rpb25zIiwicm93cyIsImluZGV4IiwiY29ubmVjdEFib3ZlIiwibGVuZ3RoIiwiY29ubmVjdEJlbG93IiwiaXNMYXN0UGFpciIsIm5leHRJc1Rlcm1pbmFsVGV4dCIsInN0ZXBSb3dSYWlsUHJvcHMiLCJoYXNNYXJrZXIiLCJzaG93Q2hyb21lIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiJHNob3dDaHJvbWUiLCIkaGFzTWFya2VyIiwiJGNvbm5lY3RBYm92ZSIsIiRjb25uZWN0QmVsb3ciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIiRyYWlsQm90dG9tIiwiUmVhc29uaW5nU3RlcFJvdyIsIl9yZWYiLCJpc0FjdGl2ZSIsIl9yZWYkc2hvd0Nocm9tZSIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsIlBhcmFsbGVsU3RlcFJvdyIsIl9yZWYyIiwic2hvd0RldGFpbCIsIl9yZWYyJHNob3dDaHJvbWUiLCJkZXRhaWwiLCJzdGVwcyIsImNvdW50TGFiZWwiLCJjb3VudCIsImxhYmVsIiwiRGlzcGxheVN0ZXBSb3ciLCJfcmVmMyIsIl9yZWYzJHNob3dDaHJvbWUiLCJTdGVwTGlzdCIsIl9yZWY0IiwiX3JlZjQkc2hvd0RldGFpbCIsIm1hcCIsIl9yZXNvbHZlUm93Q29ubmVjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1N0ZXBzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3RyZWFtQWN0aXZpdHlNZXNzYWdlcydcbmltcG9ydCB7IE1haWFTdHJlYW1kb3duIH0gZnJvbSAnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgcGFyYWxsZWxTdGVwRGV0YWlsIH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQge1xuICBTQ1BhcmFsbGVsQ29udGVudCxcbiAgU0NQYXJhbGxlbENvdW50LFxuICBTQ1BhcmFsbGVsRGV0YWlsLFxuICBTQ1N0ZXBSb3csXG4gIFNDVGhpbmtpbmdUZXh0LFxuICBTQ1Rvb2xTdGVwLFxufSBmcm9tICcuL1JlYXNvbmluZ0Jsb2NrLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgVHJhbnNsYXRlRm4gPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VUPlsndCddXG5cbmV4cG9ydCBjb25zdCBzdGVwTGFiZWwgPSAoc3RlcDogUmVhc29uaW5nU3RlcCwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RlcC50eXBlID09PSAnaGFuZG9mZicpIHtcbiAgICByZXR1cm4gc3RlcC50byA/IHQoJ2NoYXQucmVhc29uaW5nLmNhbGxlZEFnZW50JywgeyBhZ2VudDogc3RlcC50byB9KSA6IHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICB9XG4gIGlmICghc3RlcC50b29sKSByZXR1cm4gdCgnY2hhdC5hY3Rpdml0eS5leGVjdXRlZEFjdGlvbicpXG4gIHJldHVybiByZXNvbHZlVG9vbFN0ZXBQYXN0TGFiZWwoc3RlcC50b29sLCB0KVxufVxuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG4vKiogU29sbyB0b29sL2hhbmRvZmYgbGxldmFuIGPDrXJjdWxvIGVuIGxhIHRyYXphOyBuYXJyYWNpb25lcyB5IHRoaW5raW5nIG5vLiAqL1xuZXhwb3J0IGNvbnN0IGlzQWN0aW9uU3RlcCA9IChzdGVwOiBSZWFzb25pbmdTdGVwKTogYm9vbGVhbiA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJ1xuXG4vKiogTmFycmFjacOzbi90aGlua2luZyBhbCBjaWVycmUgZGUgbGEgdHJhemE6IG5vIGxsZXZhbiByYWlsIGNvbGdhbnRlLiAqL1xuZXhwb3J0IGNvbnN0IGlzVGV4dFN0ZXBSb3cgPSAocm93OiBSZWFzb25pbmdEaXNwbGF5Um93KTogYm9vbGVhbiA9PlxuICByb3cua2luZCA9PT0gJ3NpbmdsZScgJiYgKHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nIHx8IHJvdy5zdGVwLnR5cGUgPT09ICd0aGlua2luZycpXG5cbi8qKiBDb25lY3RvcmVzIGRlIHJhaWw6IHNpbiBsw61uZWEgaGFjaWEgYWJham8gc2kgbG8gc2lndWllbnRlIGVzIG5hcnJhY2nDs24gZmluYWwuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zID0gKFxuICByb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10sXG4gIGluZGV4OiBudW1iZXJcbik6IHsgY29ubmVjdEFib3ZlOiBib29sZWFuOyBjb25uZWN0QmVsb3c6IGJvb2xlYW4gfSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RBYm92ZSA9IGluZGV4ID4gMFxuICBpZiAoaW5kZXggPj0gcm93cy5sZW5ndGggLSAxKSB7XG4gICAgcmV0dXJuIHsgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH1cbiAgfVxuXG4gIGNvbnN0IGlzTGFzdFBhaXIgPSBpbmRleCA9PT0gcm93cy5sZW5ndGggLSAyXG4gIGNvbnN0IG5leHRJc1Rlcm1pbmFsVGV4dCA9IGlzTGFzdFBhaXIgJiYgaXNUZXh0U3RlcFJvdyhyb3dzW2luZGV4ICsgMV0pXG5cbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0QWJvdmUsXG4gICAgY29ubmVjdEJlbG93OiAhbmV4dElzVGVybWluYWxUZXh0LFxuICB9XG59XG5cbmNvbnN0IHN0ZXBSb3dSYWlsUHJvcHMgPSAoXG4gIGhhc01hcmtlcjogYm9vbGVhbixcbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhbixcbiAgY29ubmVjdEJlbG93PzogYm9vbGVhbixcbiAgc2hvd0Nocm9tZSA9IHRydWVcbik6IHtcbiAgJHNob3dDaHJvbWU6IGJvb2xlYW5cbiAgJGhhc01hcmtlcjogYm9vbGVhblxuICAkY29ubmVjdEFib3ZlOiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c6IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoOiBib29sZWFuXG4gICRyYWlsVG9wOiBib29sZWFuXG4gICRyYWlsQm90dG9tOiBib29sZWFuXG59ID0+ICh7XG4gICRzaG93Q2hyb21lOiBzaG93Q2hyb21lLFxuICAkaGFzTWFya2VyOiBoYXNNYXJrZXIsXG4gICRjb25uZWN0QWJvdmU6ICEhY29ubmVjdEFib3ZlLFxuICAkY29ubmVjdEJlbG93OiAhIWNvbm5lY3RCZWxvdyxcbiAgLy8gTmFycmFjacOzbiBpbmljaWFsIChzaW4gY8OtcmN1bG8pOiBsYSBsw61uZWEgYmFqYSBoYWNpYSBlbCBwcmltZXIgc3RlcC5cbiAgLy8gTmFycmFjacOzbiBmaW5hbDogY29ubmVjdEJlbG93IGVzIGZhbHNlIOKGkiBzaW4gbMOtbmVhIGNvbGdhbnRlLlxuICAkcmFpbFRocm91Z2g6IHNob3dDaHJvbWUgJiYgIWhhc01hcmtlciAmJiAhIWNvbm5lY3RCZWxvdyxcbiAgJHJhaWxUb3A6IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEFib3ZlLFxuICAkcmFpbEJvdHRvbTogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG59KVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICAvKiogQ8OtcmN1bG9zIHkgcmFpbCBkZSBsYSB0cmF6YS4gRGVmYXVsdCBlbmNlbmRpZG8gKGJsb3F1ZSB5IHRpbWVsaW5lIGVuIHZpdm8pLiAqL1xuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJcIiBhcmlhLWhpZGRlbiAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCI+e3N0ZXAudGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93IH0gPSByZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgaW5kZXgpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgICAgICBzaG93RGV0YWlsPXtzaG93RGV0YWlsfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsVUFBVSxRQUNMLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSWhDLE9BQU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLElBQW1CLEVBQUVDLENBQWMsRUFBYTtFQUN4RSxJQUFJRCxJQUFJLENBQUNFLElBQUksS0FBSyxTQUFTLEVBQUU7SUFDM0IsT0FBT0YsSUFBSSxDQUFDRyxFQUFFLEdBQUdGLENBQUMsQ0FBQyw0QkFBNEIsRUFBRTtNQUFFRyxLQUFLLEVBQUVKLElBQUksQ0FBQ0c7SUFBRyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQzFHO0VBQ0EsSUFBSSxDQUFDRCxJQUFJLENBQUNLLElBQUksRUFBRSxPQUFPSixDQUFDLENBQUMsOEJBQThCLENBQUM7RUFDeEQsT0FBT25CLHdCQUF3QixDQUFDa0IsSUFBSSxDQUFDSyxJQUFJLEVBQUVKLENBQUMsQ0FBQztBQUMvQyxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlOLElBQW1CO0VBQUEsT0FBY0EsSUFBSSxDQUFDRSxJQUFJLEtBQUssVUFBVTtBQUFBOztBQUV2RjtBQUNBLE9B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
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { resolveRowConnections } from './ReasoningSteps';
|
|
2
|
+
jest.mock('../MaiaStreamdown/MaiaStreamdown', function () {
|
|
3
|
+
return {
|
|
4
|
+
MaiaStreamdown: function MaiaStreamdown(_ref) {
|
|
5
|
+
var children = _ref.children;
|
|
6
|
+
return children;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
});
|
|
10
|
+
var narration = function narration(i, text) {
|
|
11
|
+
return {
|
|
12
|
+
kind: 'single',
|
|
13
|
+
step: {
|
|
14
|
+
i: i,
|
|
15
|
+
type: 'narration',
|
|
16
|
+
text: text
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
var tool = function tool(i) {
|
|
21
|
+
return {
|
|
22
|
+
kind: 'single',
|
|
23
|
+
step: {
|
|
24
|
+
i: i,
|
|
25
|
+
type: 'tool',
|
|
26
|
+
tool: 'edit_task',
|
|
27
|
+
status: 'ok'
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
describe('resolveRowConnections', function () {
|
|
32
|
+
it('does not hang a rail from the last action onto the final narration', function () {
|
|
33
|
+
var rows = [narration(-1, 'Revisando'), tool(1), narration(2, 'Listo')];
|
|
34
|
+
expect(resolveRowConnections(rows, 0)).toEqual({
|
|
35
|
+
connectAbove: false,
|
|
36
|
+
connectBelow: true
|
|
37
|
+
});
|
|
38
|
+
expect(resolveRowConnections(rows, 1)).toEqual({
|
|
39
|
+
connectAbove: true,
|
|
40
|
+
connectBelow: false
|
|
41
|
+
});
|
|
42
|
+
expect(resolveRowConnections(rows, 2)).toEqual({
|
|
43
|
+
connectAbove: true,
|
|
44
|
+
connectBelow: false
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
it('keeps the rail through an intermediate narration', function () {
|
|
48
|
+
var rows = [narration(-1, 'Revisando'), tool(1), narration(2, 'Sigo'), tool(3)];
|
|
49
|
+
expect(resolveRowConnections(rows, 2)).toEqual({
|
|
50
|
+
connectAbove: true,
|
|
51
|
+
connectBelow: true
|
|
52
|
+
});
|
|
53
|
+
expect(resolveRowConnections(rows, 3)).toEqual({
|
|
54
|
+
connectAbove: true,
|
|
55
|
+
connectBelow: false
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvbHZlUm93Q29ubmVjdGlvbnMiLCJqZXN0IiwibW9jayIsIk1haWFTdHJlYW1kb3duIiwiX3JlZiIsImNoaWxkcmVuIiwibmFycmF0aW9uIiwiaSIsInRleHQiLCJraW5kIiwic3RlcCIsInR5cGUiLCJ0b29sIiwic3RhdHVzIiwiZGVzY3JpYmUiLCJpdCIsInJvd3MiLCJleHBlY3QiLCJ0b0VxdWFsIiwiY29ubmVjdEFib3ZlIiwiY29ubmVjdEJlbG93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nU3RlcHMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IHJlc29sdmVSb3dDb25uZWN0aW9ucyB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5cbmplc3QubW9jaygnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nLCAoKSA9PiAoe1xuICBNYWlhU3RyZWFtZG93bjogKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbj86IHN0cmluZyB9KSA9PiBjaGlsZHJlbixcbn0pKVxuXG5jb25zdCBuYXJyYXRpb24gPSAoaTogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiBSZWFzb25pbmdEaXNwbGF5Um93ID0+ICh7XG4gIGtpbmQ6ICdzaW5nbGUnLFxuICBzdGVwOiB7IGksIHR5cGU6ICduYXJyYXRpb24nLCB0ZXh0IH0sXG59KVxuXG5jb25zdCB0b29sID0gKGk6IG51bWJlcik6IFJlYXNvbmluZ0Rpc3BsYXlSb3cgPT4gKHtcbiAga2luZDogJ3NpbmdsZScsXG4gIHN0ZXA6IHsgaSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZWRpdF90YXNrJywgc3RhdHVzOiAnb2snIH0sXG59KVxuXG5kZXNjcmliZSgncmVzb2x2ZVJvd0Nvbm5lY3Rpb25zJywgKCkgPT4ge1xuICBpdCgnZG9lcyBub3QgaGFuZyBhIHJhaWwgZnJvbSB0aGUgbGFzdCBhY3Rpb24gb250byB0aGUgZmluYWwgbmFycmF0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IHJvd3MgPSBbbmFycmF0aW9uKC0xLCAnUmV2aXNhbmRvJyksIHRvb2woMSksIG5hcnJhdGlvbigyLCAnTGlzdG8nKV1cblxuICAgIGV4cGVjdChyZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgMCkpLnRvRXF1YWwoeyBjb25uZWN0QWJvdmU6IGZhbHNlLCBjb25uZWN0QmVsb3c6IHRydWUgfSlcbiAgICBleHBlY3QocmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIDEpKS50b0VxdWFsKHsgY29ubmVjdEFib3ZlOiB0cnVlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH0pXG4gICAgZXhwZWN0KHJlc29sdmVSb3dDb25uZWN0aW9ucyhyb3dzLCAyKSkudG9FcXVhbCh7IGNvbm5lY3RBYm92ZTogdHJ1ZSwgY29ubmVjdEJlbG93OiBmYWxzZSB9KVxuICB9KVxuXG4gIGl0KCdrZWVwcyB0aGUgcmFpbCB0aHJvdWdoIGFuIGludGVybWVkaWF0ZSBuYXJyYXRpb24nLCAoKSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IFtuYXJyYXRpb24oLTEsICdSZXZpc2FuZG8nKSwgdG9vbCgxKSwgbmFycmF0aW9uKDIsICdTaWdvJyksIHRvb2woMyldXG5cbiAgICBleHBlY3QocmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIDIpKS50b0VxdWFsKHsgY29ubmVjdEFib3ZlOiB0cnVlLCBjb25uZWN0QmVsb3c6IHRydWUgfSlcbiAgICBleHBlY3QocmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIDMpKS50b0VxdWFsKHsgY29ubmVjdEFib3ZlOiB0cnVlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxxQkFBcUIsUUFBUSxrQkFBa0I7QUFFeERDLElBQUksQ0FBQ0MsSUFB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
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import React, { useEffect, useMemo, useRef } from 'react';
|
|
2
3
|
import { useSmoothStreamText } from '../../../hooks/useSmoothStreamText';
|
|
3
4
|
import { useT } from '../../../hooks/useT';
|
|
4
5
|
import { useReasoningTrace } from '../../../hooks/useReasoningTrace';
|
|
5
|
-
import { MaiaStreamdown } from '../MaiaStreamdown/MaiaStreamdown';
|
|
6
6
|
import { displayRowKey, groupParallelSteps } from './groupParallelSteps';
|
|
7
|
-
import {
|
|
8
|
-
import { isSeamlessNarrationCommit, PENDING_NARRATION_KEY, resolvePendingNarrationText } from './reasoningLiveNarration';
|
|
9
|
-
import { DisplayStepRow, isVisibleStep, stepLabel } from './ReasoningSteps';
|
|
10
|
-
import { SCReasoningTimeline,
|
|
7
|
+
import { isLeadingNarrationStep, LEADING_NARRATION_INDEX } from './reasoningLeading';
|
|
8
|
+
import { isSeamlessNarrationCommit, PENDING_NARRATION_KEY, resolvePendingNarrationText, shouldHideOrphanLeadingNarration } from './reasoningLiveNarration';
|
|
9
|
+
import { DisplayStepRow, isVisibleStep, resolveRowConnections, ReasoningStepRow, stepLabel } from './ReasoningSteps';
|
|
10
|
+
import { SCReasoningTimeline, SCTimelineRow } from './ReasoningBlock.styles';
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
var readThinkingFlag = function readThinkingFlag() {
|
|
13
13
|
if (typeof window === 'undefined') return false;
|
|
@@ -17,22 +17,24 @@ var readThinkingFlag = function readThinkingFlag() {
|
|
|
17
17
|
var TimelineNarrationRow = function TimelineNarrationRow(_ref) {
|
|
18
18
|
var text = _ref.text,
|
|
19
19
|
live = _ref.live,
|
|
20
|
-
connectAbove = _ref.connectAbove
|
|
20
|
+
connectAbove = _ref.connectAbove,
|
|
21
|
+
connectBelow = _ref.connectBelow;
|
|
22
|
+
var _useT = useT(),
|
|
23
|
+
t = _useT.t;
|
|
21
24
|
var displayText = useSmoothStreamText(text, {
|
|
22
25
|
enabled: live,
|
|
23
26
|
maxCharsPerFrame: 24,
|
|
24
27
|
snapToWordBoundary: true
|
|
25
28
|
});
|
|
26
|
-
return /*#__PURE__*/_jsx(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})
|
|
29
|
+
return /*#__PURE__*/_jsx(ReasoningStepRow, {
|
|
30
|
+
step: {
|
|
31
|
+
i: LEADING_NARRATION_INDEX,
|
|
32
|
+
type: 'narration',
|
|
33
|
+
text: displayText
|
|
34
|
+
},
|
|
35
|
+
t: t,
|
|
36
|
+
connectAbove: connectAbove,
|
|
37
|
+
connectBelow: connectBelow
|
|
36
38
|
});
|
|
37
39
|
};
|
|
38
40
|
var hideTailNarrationRow = function hideTailNarrationRow(rows) {
|
|
@@ -40,39 +42,55 @@ var hideTailNarrationRow = function hideTailNarrationRow(rows) {
|
|
|
40
42
|
if ((last === null || last === void 0 ? void 0 : last.kind) === 'single' && last.step.type === 'narration') return rows.slice(0, -1);
|
|
41
43
|
return rows;
|
|
42
44
|
};
|
|
45
|
+
var PENDING_NARRATION_ROW = {
|
|
46
|
+
kind: 'single',
|
|
47
|
+
step: {
|
|
48
|
+
i: Number.MAX_SAFE_INTEGER,
|
|
49
|
+
type: 'narration',
|
|
50
|
+
text: ' '
|
|
51
|
+
}
|
|
52
|
+
};
|
|
43
53
|
|
|
44
54
|
/**
|
|
45
|
-
* Traza en vivo:
|
|
46
|
-
*
|
|
55
|
+
* Traza en vivo: mismo chrome que el bloque expandido (círculos + rail).
|
|
56
|
+
* La respuesta final no entra acá: vive en el cuerpo del mensaje, sin gutter.
|
|
47
57
|
*/
|
|
48
58
|
export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
49
|
-
var _displayRows$;
|
|
50
59
|
var messageId = _ref2.messageId,
|
|
51
60
|
showThinking = _ref2.showThinking,
|
|
52
61
|
streamActivity = _ref2.streamActivity,
|
|
53
62
|
_ref2$streamingText = _ref2.streamingText,
|
|
54
63
|
streamingText = _ref2$streamingText === void 0 ? '' : _ref2$streamingText;
|
|
55
|
-
var
|
|
56
|
-
t =
|
|
64
|
+
var _useT2 = useT(),
|
|
65
|
+
t = _useT2.t;
|
|
57
66
|
var _useReasoningTrace = useReasoningTrace(messageId),
|
|
58
67
|
steps = _useReasoningTrace.steps;
|
|
59
68
|
var withThinking = showThinking !== null && showThinking !== void 0 ? showThinking : readThinkingFlag();
|
|
69
|
+
var hideOrphanLeading = shouldHideOrphanLeadingNarration(steps);
|
|
60
70
|
var lastStreamedNarrationRef = useRef(null);
|
|
61
71
|
var pendingNarration = useMemo(function () {
|
|
62
|
-
return resolvePendingNarrationText(steps, streamActivity, streamingText,
|
|
72
|
+
return resolvePendingNarrationText(steps, streamActivity, streamingText, {
|
|
73
|
+
messageId: messageId,
|
|
74
|
+
showThinking: withThinking
|
|
75
|
+
});
|
|
63
76
|
}, [steps, streamActivity, streamingText, withThinking, messageId]);
|
|
64
77
|
if (pendingNarration) {
|
|
65
78
|
lastStreamedNarrationRef.current = pendingNarration;
|
|
66
79
|
}
|
|
67
80
|
var allRows = useMemo(function () {
|
|
68
|
-
var visible = withThinking ? steps : steps.filter(isVisibleStep)
|
|
81
|
+
var visible = (withThinking ? steps : steps.filter(isVisibleStep)).filter(function (step) {
|
|
82
|
+
return !(hideOrphanLeading && isLeadingNarrationStep(step));
|
|
83
|
+
});
|
|
69
84
|
return groupParallelSteps(visible, function (step) {
|
|
70
85
|
return stepLabel(step, t);
|
|
71
86
|
});
|
|
72
|
-
}, [steps, withThinking, t]);
|
|
87
|
+
}, [steps, withThinking, t, hideOrphanLeading]);
|
|
73
88
|
var displayRows = useMemo(function () {
|
|
74
89
|
return pendingNarration ? hideTailNarrationRow(allRows) : allRows;
|
|
75
90
|
}, [allRows, pendingNarration]);
|
|
91
|
+
var rowsForConnections = useMemo(function () {
|
|
92
|
+
return pendingNarration ? [].concat(_toConsumableArray(displayRows), [PENDING_NARRATION_ROW]) : displayRows;
|
|
93
|
+
}, [displayRows, pendingNarration]);
|
|
76
94
|
var seamlessRowKey = useMemo(function () {
|
|
77
95
|
if (pendingNarration || !allRows.length) return null;
|
|
78
96
|
var last = allRows[allRows.length - 1];
|
|
@@ -84,18 +102,19 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
|
84
102
|
if (seamlessRowKey) lastStreamedNarrationRef.current = null;
|
|
85
103
|
}, [seamlessRowKey]);
|
|
86
104
|
if (!displayRows.length && !pendingNarration) return null;
|
|
87
|
-
var rowCount = displayRows.length + (pendingNarration ? 1 : 0);
|
|
88
|
-
var leadingLive = (streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) === 'writing' && !hasActionStep(steps) && ((_displayRows$ = displayRows[0]) === null || _displayRows$ === void 0 ? void 0 : _displayRows$.kind) === 'single' && displayRows[0].step.i === LEADING_NARRATION_INDEX;
|
|
89
105
|
var renderRow = function renderRow(row, index, seamless) {
|
|
106
|
+
var _resolveRowConnection = resolveRowConnections(rowsForConnections, index),
|
|
107
|
+
connectAbove = _resolveRowConnection.connectAbove,
|
|
108
|
+
connectBelow = _resolveRowConnection.connectBelow;
|
|
90
109
|
if (row.kind === 'single' && row.step.type === 'narration') {
|
|
91
110
|
var _row$step$text;
|
|
92
|
-
var isLeadingLive = leadingLive && index === 0 && row.step.i === LEADING_NARRATION_INDEX;
|
|
93
111
|
return /*#__PURE__*/_jsx(SCTimelineRow, {
|
|
94
|
-
$seamless: seamless
|
|
112
|
+
$seamless: seamless,
|
|
95
113
|
children: /*#__PURE__*/_jsx(TimelineNarrationRow, {
|
|
96
|
-
text:
|
|
97
|
-
live:
|
|
98
|
-
connectAbove:
|
|
114
|
+
text: (_row$step$text = row.step.text) !== null && _row$step$text !== void 0 ? _row$step$text : '',
|
|
115
|
+
live: false,
|
|
116
|
+
connectAbove: connectAbove,
|
|
117
|
+
connectBelow: connectBelow
|
|
99
118
|
})
|
|
100
119
|
}, displayRowKey(row));
|
|
101
120
|
}
|
|
@@ -104,13 +123,13 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
|
104
123
|
children: /*#__PURE__*/_jsx(DisplayStepRow, {
|
|
105
124
|
row: row,
|
|
106
125
|
t: t,
|
|
107
|
-
connectAbove:
|
|
108
|
-
connectBelow:
|
|
109
|
-
showDetail: false
|
|
110
|
-
showChrome: false
|
|
126
|
+
connectAbove: connectAbove,
|
|
127
|
+
connectBelow: connectBelow,
|
|
128
|
+
showDetail: false
|
|
111
129
|
})
|
|
112
130
|
}, displayRowKey(row));
|
|
113
131
|
};
|
|
132
|
+
var pendingConnections = resolveRowConnections(rowsForConnections, displayRows.length);
|
|
114
133
|
return /*#__PURE__*/_jsxs(SCReasoningTimeline, {
|
|
115
134
|
children: [displayRows.map(function (row, index) {
|
|
116
135
|
return renderRow(row, index, displayRowKey(row) === seamlessRowKey);
|
|
@@ -119,9 +138,10 @@ export var ReasoningTimeline = function ReasoningTimeline(_ref2) {
|
|
|
119
138
|
children: /*#__PURE__*/_jsx(TimelineNarrationRow, {
|
|
120
139
|
text: pendingNarration,
|
|
121
140
|
live: true,
|
|
122
|
-
connectAbove:
|
|
141
|
+
connectAbove: pendingConnections.connectAbove,
|
|
142
|
+
connectBelow: pendingConnections.connectBelow
|
|
123
143
|
})
|
|
124
144
|
}, PENDING_NARRATION_KEY)]
|
|
125
145
|
});
|
|
126
146
|
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTbW9vdGhTdHJlYW1UZXh0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiTWFpYVN0cmVhbWRvd24iLCJkaXNwbGF5Um93S2V5IiwiZ3JvdXBQYXJhbGxlbFN0ZXBzIiwiaGFzQWN0aW9uU3RlcCIsIkxFQURJTkdfTkFSUkFUSU9OX0lOREVYIiwiaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCIsIlBFTkRJTkdfTkFSUkFUSU9OX0tFWSIsInJlc29sdmVQZW5kaW5nTmFycmF0aW9uVGV4dCIsIkRpc3BsYXlTdGVwUm93IiwiaXNWaXNpYmxlU3RlcCIsInN0ZXBMYWJlbCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJTQ1N0ZXBSb3ciLCJTQ1RoaW5raW5nVGV4dCIsIlNDVGltZWxpbmVSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwicmVhZFRoaW5raW5nRmxhZyIsIndpbmRvdyIsInJlYXNvbmluZ1RoaW5raW5nIiwiVGltZWxpbmVOYXJyYXRpb25Sb3ciLCJfcmVmIiwidGV4dCIsImxpdmUiLCJjb25uZWN0QWJvdmUiLCJkaXNwbGF5VGV4dCIsImVuYWJsZWQiLCJtYXhDaGFyc1BlckZyYW1lIiwic25hcFRvV29yZEJvdW5kYXJ5IiwiJHNob3dDaHJvbWUiLCIkY29ubmVjdEFib3ZlIiwiJGNvbm5lY3RCZWxvdyIsImNoaWxkcmVuIiwidmFyaWFudCIsImhpZGVUYWlsTmFycmF0aW9uUm93Iiwicm93cyIsImxhc3QiLCJhdCIsImtpbmQiLCJzdGVwIiwidHlwZSIsInNsaWNlIiwiUmVhc29uaW5nVGltZWxpbmUiLCJfcmVmMiIsIl9kaXNwbGF5Um93cyQiLCJtZXNzYWdlSWQiLCJzaG93VGhpbmtpbmciLCJzdHJlYW1BY3Rpdml0eSIsIl9yZWYyJHN0cmVhbWluZ1RleHQiLCJzdHJlYW1pbmdUZXh0IiwiX3VzZVQiLCJ0IiwiX3VzZVJlYXNvbmluZ1RyYWNlIiwic3RlcHMiLCJ3aXRoVGhpbmtpbmciLCJsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYiLCJwZW5kaW5nTmFycmF0aW9uIiwiY3VycmVudCIsImFsbFJvd3MiLCJ2aXNpYmxlIiwiZmlsdGVyIiwiZGlzcGxheVJvd3MiLCJzZWFtbGVzc1Jvd0tleSIsImxlbmd0aCIsInJvd0NvdW50IiwibGVhZGluZ0xpdmUiLCJwaGFzZSIsImkiLCJyZW5kZXJSb3ciLCJyb3ciLCJpbmRleCIsInNlYW1sZXNzIiwiX3JvdyRzdGVwJHRleHQiLCJpc0xlYWRpbmdMaXZlIiwiJHNlYW1sZXNzIiwiY29ubmVjdEJlbG93Iiwic2hvd0RldGFpbCIsInNob3dDaHJvbWUiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdUaW1lbGluZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVNtb290aFN0cmVhbVRleHQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbW9vdGhTdHJlYW1UZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VSZWFzb25pbmdUcmFjZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgTWFpYVN0cmVhbWRvd24gfSBmcm9tICcuLi9NYWlhU3RyZWFtZG93bi9NYWlhU3RyZWFtZG93bidcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgdHlwZSBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBoYXNBY3Rpb25TdGVwLCBMRUFESU5HX05BUlJBVElPTl9JTkRFWCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzU2VhbWxlc3NOYXJyYXRpb25Db21taXQsIFBFTkRJTkdfTkFSUkFUSU9OX0tFWSwgcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0IH0gZnJvbSAnLi9yZWFzb25pbmdMaXZlTmFycmF0aW9uJ1xuaW1wb3J0IHsgRGlzcGxheVN0ZXBSb3csIGlzVmlzaWJsZVN0ZXAsIHN0ZXBMYWJlbCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQgeyBTQ1JlYXNvbmluZ1RpbWVsaW5lLCBTQ1N0ZXBSb3csIFNDVGhpbmtpbmdUZXh0LCBTQ1RpbWVsaW5lUm93IH0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ1RpbWVsaW5lUHJvcHMgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIC8qKiBNdWVzdHJhIHRhbWJpw6luIGVsIHJhem9uYW1pZW50byBjcnVkbyAoYHRoaW5raW5nYCkuIERlZmF1bHQ6IGB3aW5kb3cucmVhc29uaW5nVGhpbmtpbmdgLiAqL1xuICBzaG93VGhpbmtpbmc/OiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5PzogU3RyZWFtQWN0aXZpdHkgfCBudWxsXG4gIC8qKiBUZXh0byBlbiBzdHJlYW1pbmcgZGVsIHBsYWNlaG9sZGVyOyBsYXMgbmFycmFjaW9uZXMgZGUgdHVybm8gc2UgcGludGFuIGFjw6EuICovXG4gIHN0cmVhbWluZ1RleHQ/OiBzdHJpbmdcbn1cblxuY29uc3QgcmVhZFRoaW5raW5nRmxhZyA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuICEhKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgcmVhc29uaW5nVGhpbmtpbmc/OiBib29sZWFuIH0pLnJlYXNvbmluZ1RoaW5raW5nXG59XG5cbnR5cGUgVGltZWxpbmVOYXJyYXRpb25Sb3dQcm9wcyA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIGxpdmU6IGJvb2xlYW5cbiAgY29ubmVjdEFib3ZlOiBib29sZWFuXG59XG5cbi8qKiBNaXNtYSBmaWxhIHBhcmEgc3RyZWFtIGxpdmUgeSBuYXJyYWNpw7NuIGNvbW1pdGVhZGEgKGV2aXRhIHJlbW91bnQgYWwgaGFjZXIgaGFuZG9mZikuICovXG5jb25zdCBUaW1lbGluZU5hcnJhdGlvblJvdyA9ICh7IHRleHQsIGxpdmUsIGNvbm5lY3RBYm92ZSB9OiBUaW1lbGluZU5hcnJhdGlvblJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGRpc3BsYXlUZXh0ID0gdXNlU21vb3RoU3RyZWFtVGV4dCh0ZXh0LCB7XG4gICAgZW5hYmxlZDogbGl2ZSxcbiAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICBzbmFwVG9Xb3JkQm91bmRhcnk6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93ICRzaG93Q2hyb21lPXtmYWxzZX0gJGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfSAkY29ubmVjdEJlbG93PXtmYWxzZX0+XG4gICAgICA8U0NUaGlua2luZ1RleHQ+XG4gICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntkaXNwbGF5VGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG5jb25zdCBoaWRlVGFpbE5hcnJhdGlvblJvdyA9IChyb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10pOiBSZWFzb25pbmdEaXNwbGF5Um93W10gPT4ge1xuICBjb25zdCBsYXN0ID0gcm93cy5hdCgtMSlcbiAgaWYgKGxhc3Q/LmtpbmQgPT09ICdzaW5nbGUnICYmIGxhc3Quc3RlcC50eXBlID09PSAnbmFycmF0aW9uJykgcmV0dXJuIHJvd3Muc2xpY2UoMCwgLTEpXG4gIHJldHVybiByb3dzXG59XG5cbi8qKlxuICogVHJhemEgZW4gdml2bzogdGV4dG8gcGxhbm8gY29uIGVzcGFjaWFkbywgc2luIGPDrXJjdWxvcyBuaSByYWlsLiBFbCBjaHJvbWUgZGVcbiAqIHRpbWVsaW5lIChtYXJjYWRvcmVzICsgbMOtbmVhcykgYXBhcmVjZSBhbCBleHBhbmRpciBlbCBSZWFzb25pbmdCbG9jay5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1RpbWVsaW5lID0gKHtcbiAgbWVzc2FnZUlkLFxuICBzaG93VGhpbmtpbmcsXG4gIHN0cmVhbUFjdGl2aXR5LFxuICBzdHJlYW1pbmdUZXh0ID0gJycsXG59OiBSZWFzb25pbmdUaW1lbGluZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc3RlcHMgfSA9IHVzZVJlYXNvbmluZ1RyYWNlKG1lc3NhZ2VJZClcbiAgY29uc3Qgd2l0aFRoaW5raW5nID0gc2hvd1RoaW5raW5nID8/IHJlYWRUaGlua2luZ0ZsYWcoKVxuICBjb25zdCBsYXN0U3RyZWFtZWROYXJyYXRpb25SZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBwZW5kaW5nTmFycmF0aW9uID0gdXNlTWVtbyhcbiAgICAoKSA9PiByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHdpdGhUaGlua2luZyksXG4gICAgW3N0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgd2l0aFRoaW5raW5nLCBtZXNzYWdlSWRdXG4gIClcblxuICBpZiAocGVuZGluZ05hcnJhdGlvbikge1xuICAgIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gcGVuZGluZ05hcnJhdGlvblxuICB9XG5cbiAgY29uc3QgYWxsUm93cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHZpc2libGUgPSB3aXRoVGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuICAgIHJldHVybiBncm91cFBhcmFsbGVsU3RlcHModmlzaWJsZSwgc3RlcCA9PiBzdGVwTGFiZWwoc3RlcCwgdCkpXG4gIH0sIFtzdGVwcywgd2l0aFRoaW5raW5nLCB0XSlcblxuICBjb25zdCBkaXNwbGF5Um93cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBlbmRpbmdOYXJyYXRpb24gPyBoaWRlVGFpbE5hcnJhdGlvblJvdyhhbGxSb3dzKSA6IGFsbFJvd3MpLFxuICAgIFthbGxSb3dzLCBwZW5kaW5nTmFycmF0aW9uXVxuICApXG5cbiAgY29uc3Qgc2VhbWxlc3NSb3dLZXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocGVuZGluZ05hcnJhdGlvbiB8fCAhYWxsUm93cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgY29uc3QgbGFzdCA9IGFsbFJvd3NbYWxsUm93cy5sZW5ndGggLSAxXVxuICAgIGlmIChsYXN0LmtpbmQgIT09ICdzaW5nbGUnKSByZXR1cm4gbnVsbFxuICAgIGlmICghaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdChsYXN0LnN0ZXAsIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50KSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gZGlzcGxheVJvd0tleShsYXN0KVxuICB9LCBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VhbWxlc3NSb3dLZXkpIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbc2VhbWxlc3NSb3dLZXldKVxuXG4gIGlmICghZGlzcGxheVJvd3MubGVuZ3RoICYmICFwZW5kaW5nTmFycmF0aW9uKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHJvd0NvdW50ID0gZGlzcGxheVJvd3MubGVuZ3RoICsgKHBlbmRpbmdOYXJyYXRpb24gPyAxIDogMClcblxuICBjb25zdCBsZWFkaW5nTGl2ZSA9XG4gICAgc3RyZWFtQWN0aXZpdHk/LnBoYXNlID09PSAnd3JpdGluZycgJiZcbiAgICAhaGFzQWN0aW9uU3RlcChzdGVwcykgJiZcbiAgICBkaXNwbGF5Um93c1swXT8ua2luZCA9PT0gJ3NpbmdsZScgJiZcbiAgICBkaXNwbGF5Um93c1swXS5zdGVwLmkgPT09IExFQURJTkdfTkFSUkFUSU9OX0lOREVYXG5cbiAgY29uc3QgcmVuZGVyUm93ID0gKHJvdzogUmVhc29uaW5nRGlzcGxheVJvdywgaW5kZXg6IG51bWJlciwgc2VhbWxlc3M6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAocm93LmtpbmQgPT09ICdzaW5nbGUnICYmIHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgICBjb25zdCBpc0xlYWRpbmdMaXZlID0gbGVhZGluZ0xpdmUgJiYgaW5kZXggPT09IDAgJiYgcm93LnN0ZXAuaSA9PT0gTEVBRElOR19OQVJSQVRJT05fSU5ERVhcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzIHx8IGlzTGVhZGluZ0xpdmV9PlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvd1xuICAgICAgICAgICAgdGV4dD17aXNMZWFkaW5nTGl2ZSA/IHN0cmVhbWluZ1RleHQgfHwgcm93LnN0ZXAudGV4dCB8fCAnJyA6IChyb3cuc3RlcC50ZXh0ID8/ICcnKX1cbiAgICAgICAgICAgIGxpdmU9e2lzTGVhZGluZ0xpdmV9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2luZGV4ID4gMH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDVGltZWxpbmVSb3c+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1RpbWVsaW5lUm93IGtleT17ZGlzcGxheVJvd0tleShyb3cpfSAkc2VhbWxlc3M9e3NlYW1sZXNzfT5cbiAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgcm93PXtyb3d9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBjb25uZWN0QWJvdmU9e2luZGV4ID4gMH1cbiAgICAgICAgICBjb25uZWN0QmVsb3c9e2luZGV4IDwgcm93Q291bnQgLSAxfVxuICAgICAgICAgIHNob3dEZXRhaWw9e2ZhbHNlfVxuICAgICAgICAgIHNob3dDaHJvbWU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDUmVhc29uaW5nVGltZWxpbmU+XG4gICAgICB7ZGlzcGxheVJvd3MubWFwKChyb3csIGluZGV4KSA9PiByZW5kZXJSb3cocm93LCBpbmRleCwgZGlzcGxheVJvd0tleShyb3cpID09PSBzZWFtbGVzc1Jvd0tleSkpfVxuICAgICAge3BlbmRpbmdOYXJyYXRpb24gJiYgKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e1BFTkRJTkdfTkFSUkFUSU9OX0tFWX0gJHNlYW1sZXNzPlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvdyB0ZXh0PXtwZW5kaW5nTmFycmF0aW9ufSBsaXZlIGNvbm5lY3RBYm92ZT17ZGlzcGxheVJvd3MubGVuZ3RoID4gMH0gLz5cbiAgICAgICAgPC9TQ1RpbWVsaW5lUm93PlxuICAgICAgKX1cbiAgICA8L1NDUmVhc29uaW5nVGltZWxpbmU+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFekQsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBRXBFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFDakUsU0FBU0MsYUFBYSxFQUFFQyxrQkFBa0IsUUFBa0Msc0JBQXNCO0FBQ2xHLFNBQVNDLGFBQWEsRUFB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
|
|
147
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTbW9vdGhTdHJlYW1UZXh0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzU2VhbWxlc3NOYXJyYXRpb25Db21taXQiLCJQRU5ESU5HX05BUlJBVElPTl9LRVkiLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJzaG91bGRIaWRlT3JwaGFuTGVhZGluZ05hcnJhdGlvbiIsIkRpc3BsYXlTdGVwUm93IiwiaXNWaXNpYmxlU3RlcCIsInJlc29sdmVSb3dDb25uZWN0aW9ucyIsIlJlYXNvbmluZ1N0ZXBSb3ciLCJzdGVwTGFiZWwiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwiU0NUaW1lbGluZVJvdyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJyZWFkVGhpbmtpbmdGbGFnIiwid2luZG93IiwicmVhc29uaW5nVGhpbmtpbmciLCJUaW1lbGluZU5hcnJhdGlvblJvdyIsIl9yZWYiLCJ0ZXh0IiwibGl2ZSIsImNvbm5lY3RBYm92ZSIsImNvbm5lY3RCZWxvdyIsIl91c2VUIiwidCIsImRpc3BsYXlUZXh0IiwiZW5hYmxlZCIsIm1heENoYXJzUGVyRnJhbWUiLCJzbmFwVG9Xb3JkQm91bmRhcnkiLCJzdGVwIiwiaSIsInR5cGUiLCJoaWRlVGFpbE5hcnJhdGlvblJvdyIsInJvd3MiLCJsYXN0IiwiYXQiLCJraW5kIiwic2xpY2UiLCJQRU5ESU5HX05BUlJBVElPTl9ST1ciLCJOdW1iZXIiLCJNQVhfU0FGRV9JTlRFR0VSIiwiUmVhc29uaW5nVGltZWxpbmUiLCJfcmVmMiIsIm1lc3NhZ2VJZCIsInNob3dUaGlua2luZyIsInN0cmVhbUFjdGl2aXR5IiwiX3JlZjIkc3RyZWFtaW5nVGV4dCIsInN0cmVhbWluZ1RleHQiLCJfdXNlVDIiLCJfdXNlUmVhc29uaW5nVHJhY2UiLCJzdGVwcyIsIndpdGhUaGlua2luZyIsImhpZGVPcnBoYW5MZWFkaW5nIiwibGFzdFN0cmVhbWVkTmFycmF0aW9uUmVmIiwicGVuZGluZ05hcnJhdGlvbiIsImN1cnJlbnQiLCJhbGxSb3dzIiwidmlzaWJsZSIsImZpbHRlciIsImRpc3BsYXlSb3dzIiwicm93c0ZvckNvbm5lY3Rpb25zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2VhbWxlc3NSb3dLZXkiLCJsZW5ndGgiLCJyZW5kZXJSb3ciLCJyb3ciLCJpbmRleCIsInNlYW1sZXNzIiwiX3Jlc29sdmVSb3dDb25uZWN0aW9uIiwiX3JvdyRzdGVwJHRleHQiLCIkc2VhbWxlc3MiLCJjaGlsZHJlbiIsInNob3dEZXRhaWwiLCJwZW5kaW5nQ29ubmVjdGlvbnMiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdUaW1lbGluZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVNtb290aFN0cmVhbVRleHQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbW9vdGhTdHJlYW1UZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VSZWFzb25pbmdUcmFjZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlYXNvbmluZ1RyYWNlJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgZGlzcGxheVJvd0tleSwgZ3JvdXBQYXJhbGxlbFN0ZXBzLCB0eXBlIFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGlzTGVhZGluZ05hcnJhdGlvblN0ZXAsIExFQURJTkdfTkFSUkFUSU9OX0lOREVYIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuaW1wb3J0IHtcbiAgaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCxcbiAgUEVORElOR19OQVJSQVRJT05fS0VZLFxuICByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQsXG4gIHNob3VsZEhpZGVPcnBoYW5MZWFkaW5nTmFycmF0aW9uLFxufSBmcm9tICcuL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24nXG5pbXBvcnQgeyBEaXNwbGF5U3RlcFJvdywgaXNWaXNpYmxlU3RlcCwgcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zLCBSZWFzb25pbmdTdGVwUm93LCBzdGVwTGFiZWwgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuaW1wb3J0IHsgU0NSZWFzb25pbmdUaW1lbGluZSwgU0NUaW1lbGluZVJvdyB9IGZyb20gJy4vUmVhc29uaW5nQmxvY2suc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdUaW1lbGluZVByb3BzID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICAvKiogTXVlc3RyYSB0YW1iacOpbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gKGB0aGlua2luZ2ApLiBEZWZhdWx0OiBgd2luZG93LnJlYXNvbmluZ1RoaW5raW5nYC4gKi9cbiAgc2hvd1RoaW5raW5nPzogYm9vbGVhblxuICBzdHJlYW1BY3Rpdml0eT86IFN0cmVhbUFjdGl2aXR5IHwgbnVsbFxuICAvKiogVGV4dG8gZW4gc3RyZWFtaW5nIGRlbCBwbGFjZWhvbGRlcjsgbGFzIG5hcnJhY2lvbmVzIGRlIHR1cm5vIHNlIHBpbnRhbiBhY8OhLiAqL1xuICBzdHJlYW1pbmdUZXh0Pzogc3RyaW5nXG59XG5cbmNvbnN0IHJlYWRUaGlua2luZ0ZsYWcgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAhISh3aW5kb3cgYXMgdW5rbm93biBhcyB7IHJlYXNvbmluZ1RoaW5raW5nPzogYm9vbGVhbiB9KS5yZWFzb25pbmdUaGlua2luZ1xufVxuXG50eXBlIFRpbWVsaW5lTmFycmF0aW9uUm93UHJvcHMgPSB7XG4gIHRleHQ6IHN0cmluZ1xuICBsaXZlOiBib29sZWFuXG4gIGNvbm5lY3RBYm92ZTogYm9vbGVhblxuICBjb25uZWN0QmVsb3c6IGJvb2xlYW5cbn1cblxuLyoqIE1pc21hIGZpbGEgcGFyYSBzdHJlYW0gbGl2ZSB5IG5hcnJhY2nDs24gY29tbWl0ZWFkYSAoZXZpdGEgcmVtb3VudCBhbCBoYWNlciBoYW5kb2ZmKS4gKi9cbmNvbnN0IFRpbWVsaW5lTmFycmF0aW9uUm93ID0gKHsgdGV4dCwgbGl2ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3cgfTogVGltZWxpbmVOYXJyYXRpb25Sb3dQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBkaXNwbGF5VGV4dCA9IHVzZVNtb290aFN0cmVhbVRleHQodGV4dCwge1xuICAgIGVuYWJsZWQ6IGxpdmUsXG4gICAgbWF4Q2hhcnNQZXJGcmFtZTogMjQsXG4gICAgc25hcFRvV29yZEJvdW5kYXJ5OiB0cnVlLFxuICB9KVxuXG4gIHJldHVybiAoXG4gICAgPFJlYXNvbmluZ1N0ZXBSb3dcbiAgICAgIHN0ZXA9e3sgaTogTEVBRElOR19OQVJSQVRJT05fSU5ERVgsIHR5cGU6ICduYXJyYXRpb24nLCB0ZXh0OiBkaXNwbGF5VGV4dCB9fVxuICAgICAgdD17dH1cbiAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgLz5cbiAgKVxufVxuXG5jb25zdCBoaWRlVGFpbE5hcnJhdGlvblJvdyA9IChyb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10pOiBSZWFzb25pbmdEaXNwbGF5Um93W10gPT4ge1xuICBjb25zdCBsYXN0ID0gcm93cy5hdCgtMSlcbiAgaWYgKGxhc3Q/LmtpbmQgPT09ICdzaW5nbGUnICYmIGxhc3Quc3RlcC50eXBlID09PSAnbmFycmF0aW9uJykgcmV0dXJuIHJvd3Muc2xpY2UoMCwgLTEpXG4gIHJldHVybiByb3dzXG59XG5cbmNvbnN0IFBFTkRJTkdfTkFSUkFUSU9OX1JPVzogUmVhc29uaW5nRGlzcGxheVJvdyA9IHtcbiAga2luZDogJ3NpbmdsZScsXG4gIHN0ZXA6IHsgaTogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIHR5cGU6ICduYXJyYXRpb24nLCB0ZXh0OiAnICcgfSxcbn1cblxuLyoqXG4gKiBUcmF6YSBlbiB2aXZvOiBtaXNtbyBjaHJvbWUgcXVlIGVsIGJsb3F1ZSBleHBhbmRpZG8gKGPDrXJjdWxvcyArIHJhaWwpLlxuICogTGEgcmVzcHVlc3RhIGZpbmFsIG5vIGVudHJhIGFjw6E6IHZpdmUgZW4gZWwgY3VlcnBvIGRlbCBtZW5zYWplLCBzaW4gZ3V0dGVyLlxuICovXG5leHBvcnQgY29uc3QgUmVhc29uaW5nVGltZWxpbmUgPSAoe1xuICBtZXNzYWdlSWQsXG4gIHNob3dUaGlua2luZyxcbiAgc3RyZWFtQWN0aXZpdHksXG4gIHN0cmVhbWluZ1RleHQgPSAnJyxcbn06IFJlYXNvbmluZ1RpbWVsaW5lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBzdGVwcyB9ID0gdXNlUmVhc29uaW5nVHJhY2UobWVzc2FnZUlkKVxuICBjb25zdCB3aXRoVGhpbmtpbmcgPSBzaG93VGhpbmtpbmcgPz8gcmVhZFRoaW5raW5nRmxhZygpXG4gIGNvbnN0IGhpZGVPcnBoYW5MZWFkaW5nID0gc2hvdWxkSGlkZU9ycGhhbkxlYWRpbmdOYXJyYXRpb24oc3RlcHMpXG4gIGNvbnN0IGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHBlbmRpbmdOYXJyYXRpb24gPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCB7XG4gICAgICAgIG1lc3NhZ2VJZCxcbiAgICAgICAgc2hvd1RoaW5raW5nOiB3aXRoVGhpbmtpbmcsXG4gICAgICB9KSxcbiAgICBbc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCB3aXRoVGhpbmtpbmcsIG1lc3NhZ2VJZF1cbiAgKVxuXG4gIGlmIChwZW5kaW5nTmFycmF0aW9uKSB7XG4gICAgbGFzdFN0cmVhbWVkTmFycmF0aW9uUmVmLmN1cnJlbnQgPSBwZW5kaW5nTmFycmF0aW9uXG4gIH1cblxuICBjb25zdCBhbGxSb3dzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZSA9ICh3aXRoVGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKSkuZmlsdGVyKFxuICAgICAgc3RlcCA9PiAhKGhpZGVPcnBoYW5MZWFkaW5nICYmIGlzTGVhZGluZ05hcnJhdGlvblN0ZXAoc3RlcCkpXG4gICAgKVxuICAgIHJldHVybiBncm91cFBhcmFsbGVsU3RlcHModmlzaWJsZSwgc3RlcCA9PiBzdGVwTGFiZWwoc3RlcCwgdCkpXG4gIH0sIFtzdGVwcywgd2l0aFRoaW5raW5nLCB0LCBoaWRlT3JwaGFuTGVhZGluZ10pXG5cbiAgY29uc3QgZGlzcGxheVJvd3MgPSB1c2VNZW1vKFxuICAgICgpID0+IChwZW5kaW5nTmFycmF0aW9uID8gaGlkZVRhaWxOYXJyYXRpb25Sb3coYWxsUm93cykgOiBhbGxSb3dzKSxcbiAgICBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl1cbiAgKVxuXG4gIGNvbnN0IHJvd3NGb3JDb25uZWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBlbmRpbmdOYXJyYXRpb24gPyBbLi4uZGlzcGxheVJvd3MsIFBFTkRJTkdfTkFSUkFUSU9OX1JPV10gOiBkaXNwbGF5Um93cyksXG4gICAgW2Rpc3BsYXlSb3dzLCBwZW5kaW5nTmFycmF0aW9uXVxuICApXG5cbiAgY29uc3Qgc2VhbWxlc3NSb3dLZXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocGVuZGluZ05hcnJhdGlvbiB8fCAhYWxsUm93cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgY29uc3QgbGFzdCA9IGFsbFJvd3NbYWxsUm93cy5sZW5ndGggLSAxXVxuICAgIGlmIChsYXN0LmtpbmQgIT09ICdzaW5nbGUnKSByZXR1cm4gbnVsbFxuICAgIGlmICghaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdChsYXN0LnN0ZXAsIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50KSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gZGlzcGxheVJvd0tleShsYXN0KVxuICB9LCBbYWxsUm93cywgcGVuZGluZ05hcnJhdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VhbWxlc3NSb3dLZXkpIGxhc3RTdHJlYW1lZE5hcnJhdGlvblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbc2VhbWxlc3NSb3dLZXldKVxuXG4gIGlmICghZGlzcGxheVJvd3MubGVuZ3RoICYmICFwZW5kaW5nTmFycmF0aW9uKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHJlbmRlclJvdyA9IChyb3c6IFJlYXNvbmluZ0Rpc3BsYXlSb3csIGluZGV4OiBudW1iZXIsIHNlYW1sZXNzOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgeyBjb25uZWN0QWJvdmUsIGNvbm5lY3RCZWxvdyB9ID0gcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3NGb3JDb25uZWN0aW9ucywgaW5kZXgpXG5cbiAgICBpZiAocm93LmtpbmQgPT09ICdzaW5nbGUnICYmIHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX0gJHNlYW1sZXNzPXtzZWFtbGVzc30+XG4gICAgICAgICAgPFRpbWVsaW5lTmFycmF0aW9uUm93XG4gICAgICAgICAgICB0ZXh0PXtyb3cuc3RlcC50ZXh0ID8/ICcnfVxuICAgICAgICAgICAgbGl2ZT17ZmFsc2V9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgICAgIGNvbm5lY3RCZWxvdz17Y29ubmVjdEJlbG93fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NUaW1lbGluZVJvdz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDVGltZWxpbmVSb3cga2V5PXtkaXNwbGF5Um93S2V5KHJvdyl9ICRzZWFtbGVzcz17c2VhbWxlc3N9PlxuICAgICAgICA8RGlzcGxheVN0ZXBSb3cgcm93PXtyb3d9IHQ9e3R9IGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfSBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd30gc2hvd0RldGFpbD17ZmFsc2V9IC8+XG4gICAgICA8L1NDVGltZWxpbmVSb3c+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcGVuZGluZ0Nvbm5lY3Rpb25zID0gcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3NGb3JDb25uZWN0aW9ucywgZGlzcGxheVJvd3MubGVuZ3RoKVxuXG4gIHJldHVybiAoXG4gICAgPFNDUmVhc29uaW5nVGltZWxpbmU+XG4gICAgICB7ZGlzcGxheVJvd3MubWFwKChyb3csIGluZGV4KSA9PiByZW5kZXJSb3cocm93LCBpbmRleCwgZGlzcGxheVJvd0tleShyb3cpID09PSBzZWFtbGVzc1Jvd0tleSkpfVxuICAgICAge3BlbmRpbmdOYXJyYXRpb24gJiYgKFxuICAgICAgICA8U0NUaW1lbGluZVJvdyBrZXk9e1BFTkRJTkdfTkFSUkFUSU9OX0tFWX0gJHNlYW1sZXNzPlxuICAgICAgICAgIDxUaW1lbGluZU5hcnJhdGlvblJvd1xuICAgICAgICAgICAgdGV4dD17cGVuZGluZ05hcnJhdGlvbn1cbiAgICAgICAgICAgIGxpdmVcbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17cGVuZGluZ0Nvbm5lY3Rpb25zLmNvbm5lY3RBYm92ZX1cbiAgICAgICAgICAgIGNvbm5lY3RCZWxvdz17cGVuZGluZ0Nvbm5lY3Rpb25zLmNvbm5lY3RCZWxvd31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDVGltZWxpbmVSb3c+XG4gICAgICApfVxuICAgIDwvU0NSZWFzb25pbmdUaW1lbGluZT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFekQsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBRXBFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLFFBQWtDLHNCQUFzQjtBQUNsRyxTQUFTQyxzQkFBc0IsRUFBRUMsdUJBQXVCLFFBQVEsb0JBQW9CO0FBQ3BGLFNBQ0VDLHlCQUF5QixFQUN6QkMscUJBQXFCLEVBQ3JCQywyQkFBMkIsRUFDM0JDLGdDQUFnQyxRQUMzQiwwQkFBMEI7QUFDakMsU0FBU0MsY0FBYyxFQUFFQyxhQUFhLEVBQUVDLHFCQUFxQixFQUFFQyxnQkFBZ0IsRUFBRUMsU0FBUyxRQUFRLGtCQUFrQjtBQUNwSCxTQUFTQyxtQkFBbUIsRUFBRUMsYUFBYSxRQUFRLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFXNUUsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQSxFQUFrQjtFQUN0QyxJQUFJLE9BQU9DLE1BQU0sS0FBSyxXQUFXLEVBQUUsT0FBTyxLQUFLO0VBQy9DLE9BQU8sQ0FBQyxDQUFFQSxNQUFNLENBQWdEQyxpQkFBaUI7QUFDbkYsQ0FBQztBQVNEO0FBQ0EsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEs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
|