@projectcor/maia-components 2.11.94-0 → 2.11.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +2 -2
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +28 -41
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +41 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +23 -4
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +15 -7
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +10 -4
- package/lib/components/atoms/MAIAInput/MAIAInput.js +47 -26
- package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
- package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
- package/lib/components/atoms/icons/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
- package/lib/components/atoms/icons/index.js +3 -2
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -1
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +3 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +117 -30
- package/lib/components/molecules/ChatAIHome/styles.js +142 -49
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +12 -48
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +6 -2
- package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -2
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +122 -212
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +18 -28
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -10
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +7 -17
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +1 -5
- package/lib/components/molecules/ChatAIModal/constants.js +6 -2
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +19 -8
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
- package/lib/components/molecules/Sidebar/Sidebar.js +92 -111
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +1 -16
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +29 -34
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +451 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/ChatAI/ChatAI.js +17 -10
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
- package/lib/constants/config.js +4 -1
- package/lib/constants/maiaHourAgentAccess.js +15 -0
- package/lib/constants/maiaTaskPanelAccess.js +4 -4
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +4 -1
- package/lib/constants/plannerSyncEvents.js +15 -0
- package/lib/context/cor-user.js +9 -1
- package/lib/context/global-context.js +1 -1
- package/lib/dev/DevChatAI.js +2 -2
- package/lib/hooks/useChatManager/useChatManager.js +456 -560
- package/lib/hooks/useChatMessages/useChatMessages.js +236 -414
- package/lib/hooks/useChats/useChats.js +4 -21
- package/lib/hooks/useContextMentions.js +51 -9
- package/lib/hooks/useContextPinPopover.js +1 -8
- package/lib/hooks/useEntitySearch.js +277 -91
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useFrequentlyUsedActions.js +4 -2
- package/lib/hooks/useMentionAllowedTypes.js +26 -8
- package/lib/hooks/useMentionPopover.js +43 -13
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +521 -139
- package/lib/hooks/useProjectSummaryConfig.js +23 -30
- package/lib/hooks/useSlashCommands.js +3 -2
- package/lib/hooks/useStreamingMessage/index.js +3 -2
- package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +17 -13
- package/lib/lang/br/index.js +73 -15
- package/lib/lang/en/index.js +73 -15
- package/lib/lang/es/index.js +73 -15
- package/lib/lang/fr/index.js +70 -17
- package/lib/services/appcues.js +3 -2
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Agents/getAgents.js +2 -2
- package/lib/services/maia/Chats/getChatsByUserId.js +4 -6
- package/lib/services/maia/Chats/index.js +1 -3
- package/lib/services/maia/Orchestrator/orchestrator.js +1 -7
- package/lib/services/maia/Skills/createSkill.js +39 -0
- package/lib/services/maia/Skills/deleteSkill.js +38 -0
- package/lib/services/maia/Skills/generateSkill.js +41 -0
- package/lib/services/maia/Skills/getSkills.js +90 -0
- package/lib/services/maia/Skills/updateSkill.js +39 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/useChatsStore.js +12 -149
- package/lib/types/Action.js +1 -1
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/lib/types/contextMention.js +1 -1
- package/lib/types/global.d.js +1 -1
- package/lib/types/skill.js +2 -0
- package/lib/utils/actionCategoryMap.js +6 -2
- package/lib/utils/actionIconMap.js +8 -2
- package/lib/utils/contextMentionIcons.js +29 -1
- package/lib/utils/contextMentionTriggers.js +6 -3
- package/lib/utils/hoursPlannerQuickActionType.js +64 -0
- package/lib/utils/orchestratorSubagents.js +11 -0
- package/lib/utils/renderContextMentions.js +9 -4
- package/lib/utils/streamActivityMessages.js +2 -1
- package/package.json +15 -10
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -17
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -15
- package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -55
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -46
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
- package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
- package/lib/store/chatsSidebarOptimistic.js +0 -92
- package/lib/store/maiaMinimizedPersistence.js +0 -49
- package/lib/store/sessions/activeView.js +0 -22
- package/lib/store/sessions/index.js +0 -9
- package/lib/store/sessions/sessionHitlContext.js +0 -15
- package/lib/store/sessions/sessionNotificationSound.js +0 -57
- package/lib/store/sessions/sessionNotifications.js +0 -110
- package/lib/store/sessions/sessionNotifications.types.js +0 -2
- package/lib/store/sessions/sessionStreamManager.js +0 -576
- package/lib/store/sessions/sessionStreamingText.js +0 -80
- package/lib/store/sessions/sessions.types.js +0 -35
- package/lib/store/sessions/useSessionMeta.js +0 -39
- package/lib/store/sessions/useSessionStreamingText.js +0 -18
- package/lib/store/sessions/useSessionsStore.js +0 -197
- package/lib/utils/formatUnreadCount.js +0 -6
|
@@ -28,11 +28,11 @@ import { openTaskInCorPanel } from './openTaskInCorPanel';
|
|
|
28
28
|
* se captura de forma lazy hasta el cierre real `]]`.
|
|
29
29
|
*/
|
|
30
30
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
31
|
-
export var MENTION_MARKER_REGEX = /\[\[mention:(client|project|task|user|mcp):([^|\]]+)\|([\s\S]*?)\]\]/g;
|
|
31
|
+
export var MENTION_MARKER_REGEX = /\[\[mention:(client|project|task|user|mcp|skill):([^|\]]+)\|([\s\S]*?)\]\]/g;
|
|
32
32
|
export var MAIA_MENTION_PROTOCOL = 'maia-mention://';
|
|
33
33
|
var INCOMPLETE_MENTION_MARKER_REGEX = /\[\[mention:[\s\S]*$/;
|
|
34
34
|
var INCOMPLETE_SLASH_MARKER_REGEX = /\[\[slash_command:[^|\]]+\|([\s\S]*)$/;
|
|
35
|
-
var ALLOWED_TYPES = ['client', 'project', 'task', 'user', 'mcp'];
|
|
35
|
+
var ALLOWED_TYPES = ['client', 'project', 'task', 'user', 'mcp', 'skill'];
|
|
36
36
|
var parseMentionProtocolHref = function parseMentionProtocolHref(href) {
|
|
37
37
|
var rest = href.slice(MAIA_MENTION_PROTOCOL.length);
|
|
38
38
|
var slashIdx = rest.indexOf('/');
|
|
@@ -93,8 +93,13 @@ var splitLabelFirstWord = function splitLabelFirstWord(label) {
|
|
|
93
93
|
rest: normalized.slice(firstWhitespaceIdx)
|
|
94
94
|
};
|
|
95
95
|
};
|
|
96
|
+
var INLINE_MENTION_HOVER_BG = {
|
|
97
|
+
project: VIOLET_IA_COLORS[100]
|
|
98
|
+
};
|
|
96
99
|
var inlineMentionHoverCss = function inlineMentionHoverCss(type, isClickable) {
|
|
97
|
-
var
|
|
100
|
+
var _INLINE_MENTION_HOVER;
|
|
101
|
+
if (type === 'skill') return css([""]);
|
|
102
|
+
var bg = (_INLINE_MENTION_HOVER = INLINE_MENTION_HOVER_BG[type]) !== null && _INLINE_MENTION_HOVER !== void 0 ? _INLINE_MENTION_HOVER : MENTION_CHIP_NON_TASK_HOVER_BG;
|
|
98
103
|
return css(["background:", ";opacity:", ";"], bg, isClickable ? 0.95 : 1);
|
|
99
104
|
};
|
|
100
105
|
|
|
@@ -391,4 +396,4 @@ export var renderTextWithMentions = function renderTextWithMentions(text) {
|
|
|
391
396
|
if (lastIdx < text.length) out.push(text.slice(lastIdx));
|
|
392
397
|
return out;
|
|
393
398
|
};
|
|
394
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJTQ0lubGluZU1lbnRpb25SZXN0IiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0TWVudGlvbnMiLCJzbGFzaFJlZ2V4IiwiUmVnRXhwIiwic291cmNlIiwid2l0aG91dFNsYXNoIiwid2l0aG91dEluY29tcGxldGVTbGFzaCIsImdldE1lbnRpb25VcmwiLCJNZW50aW9uQ2hpcCIsIl9yZWY3Iiwibm9ybWFsaXplZExhYmVsIiwidXJsIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQyIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiaGFzSW5saW5lTWFya2VycyIsImNvbGxlY3RJbmxpbmVNYXJrZXJzIiwibWFya2VycyIsImxhc3RJbmRleCIsIm0iLCJleGVjIiwiX20yIiwiX20zIiwiX3NsaWNlZFRvQXJyYXkiLCJwdXNoIiwia2luZCIsImluZGV4IiwicyIsInNvcnQiLCJhIiwiYiIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJvdXQiLCJsYXN0SWR4IiwiZm9yRWFjaCIsIm1hcmtlciIsImlubGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kQ2hpcCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYIH0gZnJvbSAnLi9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFNDVGFza0xpbmsgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi9vcGVuVGFza0luQ29yUGFuZWwnXG5cbi8qKlxuICogRm9ybWF0byBkZWwgbWFyY2Fkb3IgcXVlIHZpYWphIGVuIGVsIHRleHRvIGRlbCBtZW5zYWplOlxuICogICBbW21lbnRpb246PHR5cGU+OjxpZD58PGxhYmVsPl1dXG4gKlxuICogRWwgZWRpdG9yIGxvIGVtaXRlIGN1YW5kbyBzZXJpYWxpemEgZWwgY29udGVudGVkaXRhYmxlLCBlbCBiYWNrZW5kIGxvXG4gKiBwZXJzaXN0ZSB0YWwgY3VhbCB5IGFsIHJlbmRlcml6YXIgc2UgdHJhbnNmb3JtYSBlbiB1biBsaW5rIG1hcmtkb3duIGNvblxuICogdW4gcHJvdG9jb2xvIHByb3BpbyBxdWUgYEN1c3RvbUxpbmtgIGludGVyY2VwdGEgeSBkaWJ1amEgY29tbyBzcGFuXG4gKiBlc3RpbGFkby5cbiAqXG4gKiBQb3Igc2VwYXJhZG8sIGxhIG1ldGFkYXRhIGBjb250ZXh0X21lc3NhZ2VgIGxsZXZhIGxvcyB2YWxvcmVzIGxpbXBpb3NcbiAqIChpZCArIG5hbWUpIHBhcmEgcXVlIGVsIGJhY2tlbmQgcHVlZGEgaW50ZXJwcmV0YXIgbGFzIGVudGlkYWRlcyBzaW5cbiAqIHRlbmVyIHF1ZSBwYXJzZWFyIGVsIHRleHRvLlxuICovXG4vKipcbiAqIExhYmVsIHB1ZWRlIGNvbnRlbmVyIGBdYCAoZWo6IFwiW0VkdWNhdGVdQmxvZyBQb3N0IC4uLlwiKSwgcG9yIGVzb1xuICogc2UgY2FwdHVyYSBkZSBmb3JtYSBsYXp5IGhhc3RhIGVsIGNpZXJyZSByZWFsIGBdXWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOihjbGllbnR8cHJvamVjdHx0YXNrfHVzZXJ8bWNwKTooW158XFxdXSspXFx8KFtcXHNcXFNdKj8pXFxdXFxdL2dcbmV4cG9ydCBjb25zdCBNQUlBX01FTlRJT05fUFJPVE9DT0wgPSAnbWFpYS1tZW50aW9uOi8vJ1xuY29uc3QgSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOltcXHNcXFNdKiQvXG5jb25zdCBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOltefFxcXV0rXFx8KFtcXHNcXFNdKikkL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IGlubGluZU1lbnRpb25Ib3ZlckNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaXNDbGlja2FibGU/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGJnID0gdHlwZSA9PT0gJ3Byb2plY3QnID8gVklPTEVUX0lBX0NPTE9SU1sxMDBdIDogTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvblJlc3QgPSBzdHlsZWQuc3BhbmBcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtY29yLWxpbms9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRhc2tDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVUYXNrS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBwcm9qZWN0VXJsID0gaXNQcm9qZWN0ID8gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgIDogbnVsbFxuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlUHJvamVjdENsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghcHJvamVjdFVybCkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHdpbmRvdy5vcGVuKHByb2plY3RVcmwsICdfYmxhbmsnKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNQcm9qZWN0fVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzUHJvamVjdCA/IGhhbmRsZVByb2plY3RDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzUHJvamVjdCA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzUHJvamVjdCA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxTQ0lubGluZU1lbnRpb25SZXN0PntyZXN0fTwvU0NJbmxpbmVNZW50aW9uUmVzdD4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IGxhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG4vKiogUXVpdGEgbG9zIG1hcmtlcnMgZGVsIHRleHRvLCBkZWphbmRvIHNvbG8gYGxhYmVsYC4gw5p0aWwgcGFyYSBmYWxsYmFjayBwbGFuby4gKi9cbmV4cG9ydCBjb25zdCBzdHJpcE1lbnRpb25NYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKSkpXG5cbi8qKlxuICogVMOtdHVsb3MgZGUgY29udmVyc2FjacOzbiAocC4gZWouIGBsYXN0X3F1ZXN0aW9uYCBkZXJpdmFkbyBkZWwgcHJpbWVyIG1lbnNhamUpIHB1ZWRlblxuICogaW5jbHVpciBlbCB0ZXh0byBzZXJpYWxpemFkbyBgW1ttZW50aW9uOnR5cGU6aWR8bGFiZWxdXWAuIFBhcmEgc2lkZWJhciB5IGxpc3RhZG9zLFxuICogcmVlbXBsYXphIGNhZGEgYmxvcXVlIHBvciBgbGFiZWxgIGVuIHRleHRvIHBsYW5vLCBzaW4gZWwgbWFyY2Fkb3IgY3J1ZG8uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgPSAodGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG4gIGlmICh0ZXh0ID09IG51bGwgfHwgdGV4dCA9PT0gJycpIHJldHVybiB0ZXh0ID8/ICcnXG4gIGNvbnN0IHdpdGhvdXRNZW50aW9ucyA9IHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT5cbiAgICBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkudHJpbSgpKVxuICApXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBjb25zdCB3aXRob3V0U2xhc2ggPSB3aXRob3V0TWVudGlvbnMucmVwbGFjZShzbGFzaFJlZ2V4LCAoX20sIF9pZCwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gKVxuICBjb25zdCB3aXRob3V0SW5jb21wbGV0ZVNsYXNoID0gd2l0aG91dFNsYXNoLnJlcGxhY2UoXG4gICAgSU5DT01QTEVURV9TTEFTSF9NQVJLRVJfUkVHRVgsXG4gICAgKF9tLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWBcbiAgKVxuICByZXR1cm4gd2l0aG91dEluY29tcGxldGVTbGFzaC5yZXBsYWNlKElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgsICcnKS50cmltKClcbn1cblxuLyoqIEdlbmVyYSBsYSBVUkwgZGUgbmF2ZWdhY2nDs24gcGFyYSB1biBtZW50aW9uIHNlZ8O6biBzdSB0aXBvLiAqL1xuY29uc3QgZ2V0TWVudGlvblVybCA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaWQ6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdjbGllbnQnOlxuICAgICAgcmV0dXJuIGAvY2xpZW50cy8ke2lkfWBcbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGBcbiAgICBjYXNlICd0YXNrJzpcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcbiAgICBjYXNlICd1c2VyJzpcbiAgICAgIHJldHVybiBudWxsIC8vIExvcyB1c2VycyBubyBzb24gY2xpY2tlYWJsZXNcbiAgICBjYXNlICdtY3AnOlxuICAgICAgcmV0dXJuIG51bGxcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5jb25zdCBNZW50aW9uQ2hpcCA9ICh7IHR5cGUsIGlkLCBsYWJlbCB9OiB7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChsYWJlbClcbiAgY29uc3QgdXJsID0gZ2V0TWVudGlvblVybCh0eXBlLCBpZClcbiAgY29uc3QgaXNDbGlja2FibGUgPSAhIXVybFxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobm9ybWFsaXplZExhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCAhdXJsKSByZXR1cm5cbiAgICBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8IHR5cGUgIT09ICd0YXNrJykgcmV0dXJuXG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3VybCA/PyAnIyd9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtY29yLWxpbms9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxTQ0lubGluZU1lbnRpb25SZXN0PntyZXN0fTwvU0NJbmxpbmVNZW50aW9uUmVzdD4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0lubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKCdbW21lbnRpb246JykgfHwgdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbnR5cGUgSW5saW5lTWFya2VyID1cbiAgfCB7IGtpbmQ6ICdtZW50aW9uJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdzbGFzaCc7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cblxuY29uc3QgY29sbGVjdElubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogSW5saW5lTWFya2VyW10gPT4ge1xuICBjb25zdCBtYXJrZXJzOiBJbmxpbmVNYXJrZXJbXSA9IFtdXG5cbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgd2hpbGUgKG0pIHtcbiAgICBjb25zdCBbLCByYXdUeXBlLCBpZCwgbGFiZWxdID0gbVxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ21lbnRpb24nLCBpbmRleDogbS5pbmRleCwgbGVuZ3RoOiBtWzBdLmxlbmd0aCwgdHlwZSwgaWQsIGxhYmVsIH0pXG4gICAgbSA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgfVxuXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBsZXQgczogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB3aGlsZSAocykge1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdzbGFzaCcsIGluZGV4OiBzLmluZGV4LCBsZW5ndGg6IHNbMF0ubGVuZ3RoLCBpZDogc1sxXSwgbGFiZWw6IHNbMl0gfSlcbiAgICBzID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIH1cblxuICByZXR1cm4gbWFya2Vycy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBtYXJrZXJzID0gY29sbGVjdElubGluZU1hcmtlcnModGV4dClcbiAgaWYgKG1hcmtlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gW3RleHRdXG5cbiAgY29uc3Qgb3V0OiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0gW11cbiAgbGV0IGxhc3RJZHggPSAwXG4gIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgIGlmIChtYXJrZXIuaW5kZXggPiBsYXN0SWR4KSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgsIG1hcmtlci5pbmRleCkpXG4gICAgaWYgKG1hcmtlci5raW5kID09PSAnbWVudGlvbicpIHtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICA8TWVudGlvbkNoaXBcbiAgICAgICAgICBrZXk9e2BtZW50aW9uLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci50eXBlfS0ke21hcmtlci5pZH1gfVxuICAgICAgICAgIHR5cGU9e21hcmtlci50eXBlfVxuICAgICAgICAgIGlkPXttYXJrZXIuaWR9XG4gICAgICAgICAgbGFiZWw9e21hcmtlci5sYWJlbH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnB1c2goPFNsYXNoQ29tbWFuZENoaXAga2V5PXtgc2xhc2gtJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLmlkfWB9IGxhYmVsPXttYXJrZXIubGFiZWx9IGlubGluZT17ZmFsc2V9IC8+KVxuICAgIH1cbiAgICBsYXN0SWR4ID0gbWFya2VyLmluZGV4ICsgbWFya2VyLmxlbmd0aFxuICB9KVxuICBpZiAobGFzdElkeCA8IHRleHQubGVuZ3RoKSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgpKVxuICByZXR1cm4gb3V0XG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBNENDLDBCQUEwQixRQUFRLHlCQUF5QjtBQUN2RyxTQUNFQyxtQkFBbUIsRUFDbkJDLDhCQUE4QixRQUN6QixrRUFBa0U7QUFDekUsU0FBU0MsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBQ3ZFLFNBQVNDLDBCQUEwQixRQUFRLHNCQUFzQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIs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
|
|
399
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiSU5MSU5FX01FTlRJT05fSE9WRVJfQkciLCJwcm9qZWN0IiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJfSU5MSU5FX01FTlRJT05fSE9WRVIiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJTQ0lubGluZU1lbnRpb25SZXN0IiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0TWVudGlvbnMiLCJzbGFzaFJlZ2V4IiwiUmVnRXhwIiwic291cmNlIiwid2l0aG91dFNsYXNoIiwid2l0aG91dEluY29tcGxldGVTbGFzaCIsImdldE1lbnRpb25VcmwiLCJNZW50aW9uQ2hpcCIsIl9yZWY3Iiwibm9ybWFsaXplZExhYmVsIiwidXJsIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQyIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiaGFzSW5saW5lTWFya2VycyIsImNvbGxlY3RJbmxpbmVNYXJrZXJzIiwibWFya2VycyIsImxhc3RJbmRleCIsIm0iLCJleGVjIiwiX20yIiwiX20zIiwiX3NsaWNlZFRvQXJyYXkiLCJwdXNoIiwia2luZCIsImluZGV4IiwicyIsInNvcnQiLCJhIiwiYiIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJvdXQiLCJsYXN0SWR4IiwiZm9yRWFjaCIsIm1hcmtlciIsImlubGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kQ2hpcCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYIH0gZnJvbSAnLi9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFNDVGFza0xpbmsgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi9vcGVuVGFza0luQ29yUGFuZWwnXG5cbi8qKlxuICogRm9ybWF0byBkZWwgbWFyY2Fkb3IgcXVlIHZpYWphIGVuIGVsIHRleHRvIGRlbCBtZW5zYWplOlxuICogICBbW21lbnRpb246PHR5cGU+OjxpZD58PGxhYmVsPl1dXG4gKlxuICogRWwgZWRpdG9yIGxvIGVtaXRlIGN1YW5kbyBzZXJpYWxpemEgZWwgY29udGVudGVkaXRhYmxlLCBlbCBiYWNrZW5kIGxvXG4gKiBwZXJzaXN0ZSB0YWwgY3VhbCB5IGFsIHJlbmRlcml6YXIgc2UgdHJhbnNmb3JtYSBlbiB1biBsaW5rIG1hcmtkb3duIGNvblxuICogdW4gcHJvdG9jb2xvIHByb3BpbyBxdWUgYEN1c3RvbUxpbmtgIGludGVyY2VwdGEgeSBkaWJ1amEgY29tbyBzcGFuXG4gKiBlc3RpbGFkby5cbiAqXG4gKiBQb3Igc2VwYXJhZG8sIGxhIG1ldGFkYXRhIGBjb250ZXh0X21lc3NhZ2VgIGxsZXZhIGxvcyB2YWxvcmVzIGxpbXBpb3NcbiAqIChpZCArIG5hbWUpIHBhcmEgcXVlIGVsIGJhY2tlbmQgcHVlZGEgaW50ZXJwcmV0YXIgbGFzIGVudGlkYWRlcyBzaW5cbiAqIHRlbmVyIHF1ZSBwYXJzZWFyIGVsIHRleHRvLlxuICovXG4vKipcbiAqIExhYmVsIHB1ZWRlIGNvbnRlbmVyIGBdYCAoZWo6IFwiW0VkdWNhdGVdQmxvZyBQb3N0IC4uLlwiKSwgcG9yIGVzb1xuICogc2UgY2FwdHVyYSBkZSBmb3JtYSBsYXp5IGhhc3RhIGVsIGNpZXJyZSByZWFsIGBdXWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOihjbGllbnR8cHJvamVjdHx0YXNrfHVzZXJ8bWNwfHNraWxsKTooW158XFxdXSspXFx8KFtcXHNcXFNdKj8pXFxdXFxdL2dcbmV4cG9ydCBjb25zdCBNQUlBX01FTlRJT05fUFJPVE9DT0wgPSAnbWFpYS1tZW50aW9uOi8vJ1xuY29uc3QgSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOltcXHNcXFNdKiQvXG5jb25zdCBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOltefFxcXV0rXFx8KFtcXHNcXFNdKikkL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJywgJ3NraWxsJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IElOTElORV9NRU5USU9OX0hPVkVSX0JHOiBQYXJ0aWFsPFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPj4gPSB7XG4gIHByb2plY3Q6IFZJT0xFVF9JQV9DT0xPUlNbMTAwXSxcbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiBjc3NgYFxuICBjb25zdCBiZyA9IElOTElORV9NRU5USU9OX0hPVkVSX0JHW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CR1xuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Ymd9O1xuICAgIG9wYWNpdHk6ICR7aXNDbGlja2FibGUgPyAwLjk1IDogMX07XG4gIGBcbn1cblxuLyoqIFNwYW4gaW5saW5lIGVzdGlsYWRvIChtZW5jaW9uZXMgbm8tdGFzayBlbiBjaGF0KS4gKi9cbmNvbnN0IFNDSW5saW5lTWVudGlvbiA9IHN0eWxlZC5zcGFuPHsgJHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyAkaXNDbGlja2FibGU/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuYmd9O1xuICBjb2xvcjogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5mZ307XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGN1cnNvcjogJHsoeyAkaXNDbGlja2FibGUgfSkgPT4gKCRpc0NsaWNrYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0Jyl9O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkdHlwZSwgJGlzQ2xpY2thYmxlIH0pID0+IGlubGluZU1lbnRpb25Ib3ZlckNzcygkdHlwZSwgJGlzQ2xpY2thYmxlKX1cbiAgfVxuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uID0gc3R5bGVkLnNwYW48eyAkdGFzaz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIHdpZHRoOiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBoZWlnaHQ6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb25Sb3cgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uV29yZCA9IHN0eWxlZC5zcGFuYFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25SZXN0ID0gc3R5bGVkLnNwYW5gXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLWNvci1saW5rPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUYXNrQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlVGFza0tleURvd259XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgcHJvamVjdFVybCA9IGlzUHJvamVjdCA/IGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYCA6IG51bGxcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKGxhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZVByb2plY3RDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIXByb2plY3RVcmwpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbihwcm9qZWN0VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzUHJvamVjdH1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc1Byb2plY3QgPyBoYW5kbGVQcm9qZWN0Q2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc1Byb2plY3QgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc1Byb2plY3QgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBsYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqIFF1aXRhIGxvcyBtYXJrZXJzIGRlbCB0ZXh0bywgZGVqYW5kbyBzb2xvIGBsYWJlbGAuIMOadGlsIHBhcmEgZmFsbGJhY2sgcGxhbm8uICovXG5leHBvcnQgY29uc3Qgc3RyaXBNZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkpKVxuXG4vKipcbiAqIFTDrXR1bG9zIGRlIGNvbnZlcnNhY2nDs24gKHAuIGVqLiBgbGFzdF9xdWVzdGlvbmAgZGVyaXZhZG8gZGVsIHByaW1lciBtZW5zYWplKSBwdWVkZW5cbiAqIGluY2x1aXIgZWwgdGV4dG8gc2VyaWFsaXphZG8gYFtbbWVudGlvbjp0eXBlOmlkfGxhYmVsXV1gLiBQYXJhIHNpZGViYXIgeSBsaXN0YWRvcyxcbiAqIHJlZW1wbGF6YSBjYWRhIGJsb3F1ZSBwb3IgYGxhYmVsYCBlbiB0ZXh0byBwbGFubywgc2luIGVsIG1hcmNhZG9yIGNydWRvLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zID0gKHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQgPT09ICcnKSByZXR1cm4gdGV4dCA/PyAnJ1xuICBjb25zdCB3aXRob3V0TWVudGlvbnMgPSB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+XG4gICAgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpLnRyaW0oKSlcbiAgKVxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgY29uc3Qgd2l0aG91dFNsYXNoID0gd2l0aG91dE1lbnRpb25zLnJlcGxhY2Uoc2xhc2hSZWdleCwgKF9tLCBfaWQsIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YClcbiAgY29uc3Qgd2l0aG91dEluY29tcGxldGVTbGFzaCA9IHdpdGhvdXRTbGFzaC5yZXBsYWNlKFxuICAgIElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYLFxuICAgIChfbSwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gXG4gIClcbiAgcmV0dXJuIHdpdGhvdXRJbmNvbXBsZXRlU2xhc2gucmVwbGFjZShJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYLCAnJykudHJpbSgpXG59XG5cbi8qKiBHZW5lcmEgbGEgVVJMIGRlIG5hdmVnYWNpw7NuIHBhcmEgdW4gbWVudGlvbiBzZWfDum4gc3UgdGlwby4gKi9cbmNvbnN0IGdldE1lbnRpb25VcmwgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiBgL2NsaWVudHMvJHtpZH1gXG4gICAgY2FzZSAncHJvamVjdCc6XG4gICAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgXG4gICAgY2FzZSAndGFzayc6XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS9kZXRhaWxgXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gbnVsbCAvLyBMb3MgdXNlcnMgbm8gc29uIGNsaWNrZWFibGVzXG4gICAgY2FzZSAnbWNwJzpcbiAgICAgIHJldHVybiBudWxsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgTWVudGlvbkNoaXAgPSAoeyB0eXBlLCBpZCwgbGFiZWwgfTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpXG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLWNvci1saW5rPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICA+XG4gICAgICAgIHtub3JtYWxpemVkTGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNDbGlja2FibGV9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNDbGlja2FibGUgPyBoYW5kbGVDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzQ2xpY2thYmxlID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNDbGlja2FibGUgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBub3JtYWxpemVkTGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBoYXNJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdGV4dC5pbmNsdWRlcygnW1ttZW50aW9uOicpIHx8IHRleHQuaW5jbHVkZXMoJ1tbc2xhc2hfY29tbWFuZDonKVxufVxuXG50eXBlIElubGluZU1hcmtlciA9XG4gIHwgeyBraW5kOiAnbWVudGlvbic7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAnc2xhc2gnOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG5cbmNvbnN0IGNvbGxlY3RJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IElubGluZU1hcmtlcltdID0+IHtcbiAgY29uc3QgbWFya2VyczogSW5saW5lTWFya2VyW10gPSBbXVxuXG4gIE1FTlRJT05fTUFSS0VSX1JFR0VYLmxhc3RJbmRleCA9IDBcbiAgbGV0IG06IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIHdoaWxlIChtKSB7XG4gICAgY29uc3QgWywgcmF3VHlwZSwgaWQsIGxhYmVsXSA9IG1cbiAgICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdtZW50aW9uJywgaW5kZXg6IG0uaW5kZXgsIGxlbmd0aDogbVswXS5sZW5ndGgsIHR5cGUsIGlkLCBsYWJlbCB9KVxuICAgIG0gPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIH1cblxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgbGV0IHM6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgd2hpbGUgKHMpIHtcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnc2xhc2gnLCBpbmRleDogcy5pbmRleCwgbGVuZ3RoOiBzWzBdLmxlbmd0aCwgaWQ6IHNbMV0sIGxhYmVsOiBzWzJdIH0pXG4gICAgcyA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlcnMuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpXG59XG5cbmV4cG9ydCBjb25zdCByZW5kZXJUZXh0V2l0aE1lbnRpb25zID0gKHRleHQ6IHN0cmluZyk6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBbdGV4dF1cbiAgY29uc3QgbWFya2VycyA9IGNvbGxlY3RJbmxpbmVNYXJrZXJzKHRleHQpXG4gIGlmIChtYXJrZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFt0ZXh0XVxuXG4gIGNvbnN0IG91dDogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9IFtdXG4gIGxldCBsYXN0SWR4ID0gMFxuICBtYXJrZXJzLmZvckVhY2gobWFya2VyID0+IHtcbiAgICBpZiAobWFya2VyLmluZGV4ID4gbGFzdElkeCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4LCBtYXJrZXIuaW5kZXgpKVxuICAgIGlmIChtYXJrZXIua2luZCA9PT0gJ21lbnRpb24nKSB7XG4gICAgICBvdXQucHVzaChcbiAgICAgICAgPE1lbnRpb25DaGlwXG4gICAgICAgICAga2V5PXtgbWVudGlvbi0ke21hcmtlci5pbmRleH0tJHttYXJrZXIudHlwZX0tJHttYXJrZXIuaWR9YH1cbiAgICAgICAgICB0eXBlPXttYXJrZXIudHlwZX1cbiAgICAgICAgICBpZD17bWFya2VyLmlkfVxuICAgICAgICAgIGxhYmVsPXttYXJrZXIubGFiZWx9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5wdXNoKDxTbGFzaENvbW1hbmRDaGlwIGtleT17YHNsYXNoLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci5pZH1gfSBsYWJlbD17bWFya2VyLmxhYmVsfSBpbmxpbmU9e2ZhbHNlfSAvPilcbiAgICB9XG4gICAgbGFzdElkeCA9IG1hcmtlci5pbmRleCArIG1hcmtlci5sZW5ndGhcbiAgfSlcbiAgaWYgKGxhc3RJZHggPCB0ZXh0Lmxlbmd0aCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4KSlcbiAgcmV0dXJuIG91dFxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1C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
|
|
@@ -32,6 +32,7 @@ var HITL_TOOL_ACTIVITY_KEYS = {
|
|
|
32
32
|
update_estimated_hours: 'chat.activity.updatingEstimatedHours',
|
|
33
33
|
update_deliverable: 'chat.activity.updatingDeliverable',
|
|
34
34
|
create_hour: 'chat.activity.loggingHours',
|
|
35
|
+
create_hours: 'chat.activity.loggingHours',
|
|
35
36
|
create_checklist: 'chat.activity.creatingChecklist',
|
|
36
37
|
get_task_date_hours: 'chat.activity.queryingHours',
|
|
37
38
|
configure_agent_access: 'chat.activity.configuringAgentAccess',
|
|
@@ -355,4 +356,4 @@ export var resolveStreamLoadingDisplay = function resolveStreamLoadingDisplay(pa
|
|
|
355
356
|
export var isStreamingPlaceholderMessageId = function isStreamingPlaceholderMessageId(messageId) {
|
|
356
357
|
return typeof messageId === 'string' && messageId.includes('-streaming');
|
|
357
358
|
};
|
|
358
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJUSElOS0lOR19NRVNTQUdFX0tFWVMiLCJHRU5FUkFUSU5HX01FU1NBR0VfS0VZUyIsIlNFQVJDSF9NRVNTQUdFX0tFWVMiLCJERUVQX1NFQVJDSF9NRVNTQUdFX0tFWVMiLCJBVFRBQ0hNRU5UX01FU1NBR0VfS0VZUyIsIkFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTX1BMVVJBTCIsIldSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkiLCJISVRMX1RPT0xfQUNUSVZJVFlfS0VZUyIsImNyZWF0ZV90YXNrIiwiY2xvbmVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsImNyZWF0ZV9sYWJlbHMiLCJlZGl0X3Byb2plY3QiLCJjcmVhdGVfY2hlY2tsaXN0X2l0ZW0iLCJ1cGRhdGVfdGFza190eXBlIiwidXBkYXRlX2VzdGltYXRlZF9ob3VycyIsInVwZGF0ZV9kZWxpdmVyYWJsZSIsImNyZWF0ZV9ob3VyIiwiY3JlYXRlX2NoZWNrbGlzdCIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiSElUTF9UT09MX05BTUVTX0JZX1NQRUNJRklDSVRZIiwiT2JqZWN0Iiwia2V5cyIsInNvcnQiLCJhIiwiYiIsImxlbmd0aCIsImxvb2tzTGlrZVJhd1Rvb2xOYW1lIiwibWVzc2FnZSIsInRlc3QiLCJ0cmltIiwiaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UiLCJub3JtYWxpemVkIiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwibWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eSIsInRvb2xOYW1lIiwidCIsIm9wdGlvbnMiLCJrZXkiLCJwaGFzZSIsInVzZVJlc3VtaW5nRmFsbGJhY2siLCJyZXNvbHZlSGl0bFRvb2xGcm9tTm9kZU1lc3NhZ2UiLCJub2RlTWVzc2FnZSIsImFzVG9vbE5hbWUiLCJyZXBsYWNlIiwibWF0Y2hlZFRvb2wiLCJmaW5kIiwiaW5jbHVkZXMiLCJtYXBOb2RlTWVzc2FnZVRvU3RyZWFtQWN0aXZpdHkiLCJoaXRsVG9vbCIsInRyaW1tZWRNZXNzYWdlIiwicmVzb2x2ZVBlbmRpbmdBY3Rpb25zRm9yVGhyZWFkIiwiY29udGV4dCIsInRocmVhZElkIiwiX3JlZiIsIl9jb250ZXh0JHBlbmRpbmdBY3RpbyIsIl9jb250ZXh0JGFwcHJvdmFsIiwiX2NvbnRleHQkdGhyZWFkSWRzIiwicGVuZGluZyIsInBlbmRpbmdBY3Rpb25zIiwiYXBwcm92YWwiLCJwZW5kaW5nX2FjdGlvbnMiLCJmb3JUaHJlYWQiLCJmaWx0ZXIiLCJhY3Rpb24iLCJ0aHJlYWRfaWQiLCJ0aHJlYWRJZHMiLCJfY29udGV4dCR0aHJlYWRJZHMyIiwiZGV0ZWN0VG9vbHNGcm9tUGVuZGluZ0FjdGlvbnMiLCJhY3Rpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiU2V0IiwibWFwIiwidG9vbF9uYW1lIiwiQm9vbGVhbiIsInJlc29sdmVIaXRsTm9kZVN0cmVhbUFjdGl2aXR5IiwicGVuZGluZ0ZvclRocmVhZCIsImRldGVjdGVkVG9vbHMiLCJ0cmltbWVkTm9kZU1lc3NhZ2UiLCJpc1JhdyIsImlzR2VuZXJpYyIsIm5vZGVNZXNzYWdlQ29udGFpbnNUb29sIiwic29tZSIsInRvb2wiLCJhY3Rpdml0eUZyb21Ob2RlTWVzc2FnZSIsInJlc29sdmVJbml0aWFsSGl0bFN0cmVhbUFjdGl2aXR5IiwiQUNUSVZJVFlfTUVTU0FHRV9ST1RBVEVfTVMiLCJST1RBVEFCTEVfUEhBU0VTIiwiZ2V0TWVzc2FnZUtleXNGb3JQaGFzZSIsImF0dGFjaG1lbnRzQ291bnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4IiwiaW5kZXgiLCJjbGFtcGVkSW5kZXgiLCJNYXRoIiwibWluIiwibWF4IiwiZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSIsImdldEdlbmVyYXRpbmdMb2FkaW5nTWVzc2FnZSIsImNhbkFkdmFuY2VTdHJlYW1BY3Rpdml0eU1lc3NhZ2UiLCJjdXJyZW50SW5kZXgiLCJhZHZhbmNlU3RyZWFtQWN0aXZpdHlNZXNzYWdlIiwiYWN0aXZpdHkiLCJuZXh0SW5kZXgiLCJfb2JqZWN0U3ByZWFkIiwiY2FuUm90YXRlU3RyZWFtQWN0aXZpdHlQaGFzZSIsImdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSIsImdldEluaXRpYWxTdHJlYW1BY3Rpdml0eSIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiaGFzQXR0YWNobWVudHMiLCJfb3B0aW9ucyRhdHRhY2htZW50c0MiLCJyZXNvbHZlU3RyZWFtTG9hZGluZ0Rpc3BsYXkiLCJwYXJhbXMiLCJzdHJlYW1BY3Rpdml0eSIsImFjdGl2ZUtleXMiLCJhY3RpdmVMb2FkaW5ncyIsImZpcnN0S2V5IiwicmF3IiwidHJpbW1lZCIsImxvYWRpbmdNZXNzYWdlIiwid2FpdGluZ1Jlc3BvbnNlIiwiaXNTdHJlYW1pbmdQbGFjZWhvbGRlck1lc3NhZ2VJZCIsIm1lc3NhZ2VJZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RyZWFtQWN0aXZpdHksIFN0cmVhbUFjdGl2aXR5UGhhc2UgfSBmcm9tICcuLi90eXBlcy9zdHJlYW1BY3Rpdml0eSdcbmltcG9ydCB0eXBlIHsgQXBwcm92YWxSZXF1ZXN0LCBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSB9IGZyb20gJy4vaGl0bEFuYWx5dGljcydcblxudHlwZSBUcmFuc2xhdGVGbiA9IChrZXk6IHN0cmluZykgPT4gc3RyaW5nXG5cbmNvbnN0IFRISU5LSU5HX01FU1NBR0VfS0VZUyA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcuYW5hbHl6aW5nJyxcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcucmV2aWV3aW5nJyxcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcucGxhbm5pbmcnLFxuXSBhcyBjb25zdFxuXG5jb25zdCBHRU5FUkFUSU5HX01FU1NBR0VfS0VZUyA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkuZ2VuZXJhdGluZy5jb25zaWRlcmluZycsXG4gICdjaGF0LmFjdGl2aXR5LmdlbmVyYXRpbmcuYWxtb3N0UmVhZHknLFxuICAnY2hhdC5hY3Rpdml0eS5nZW5lcmF0aW5nLnByZXBhcmluZycsXG5dIGFzIGNvbnN0XG5cbmNvbnN0IFNFQVJDSF9NRVNTQUdFX0tFWVMgPSBbJ2NoYXQuYWN0aXZpdHkuc2VhcmNoLnNjYW5uaW5nJywgJ2NoYXQuYWN0aXZpdHkuc2VhcmNoLnN1bW1hcml6aW5nJ10gYXMgY29uc3RcblxuY29uc3QgREVFUF9TRUFSQ0hfTUVTU0FHRV9LRVlTID0gW1xuICAnY2hhdC5hY3Rpdml0eS5kZWVwU2VhcmNoLmV4cGxvcmluZycsXG4gICdjaGF0LmFjdGl2aXR5LmRlZXBTZWFyY2guY3Jvc3NDaGVja2luZycsXG5dIGFzIGNvbnN0XG5cbmNvbnN0IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTID0gWydjaGF0LmFjdGl2aXR5LmF0dGFjaG1lbnQucmVhZGluZycsICdjaGF0LmFjdGl2aXR5LmF0dGFjaG1lbnQuZXh0cmFjdGluZyddIGFzIGNvbnN0XG5cbmNvbnN0IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTX1BMVVJBTCA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkuYXR0YWNobWVudC5yZWFkaW5nUGx1cmFsJyxcbiAgJ2NoYXQuYWN0aXZpdHkuYXR0YWNobWVudC5leHRyYWN0aW5nUGx1cmFsJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFdSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkgPSAnY2hhdC5hY3Rpdml0eS53cml0aW5nLmNvbXBvc2luZycgYXMgY29uc3RcblxuLyoqIFRvb2xzIEhJVEwgLyBub2RlIFNTRSDihpIga2V5IGkxOG4gZGVsIGluZGljYWRvciBkZSBhY3RpdmlkYWQgKHRpZW1wbyBwcmVzZW50ZSBjb250aW51bykuICovXG5jb25zdCBISVRMX1RPT0xfQUNUSVZJVFlfS0VZUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY3JlYXRlX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmNyZWF0aW5nVGFzaycsXG4gIGNsb25lX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmNyZWF0aW5nVGFzaycsXG4gIGNyZWF0ZV90YXNrc19iYXRjaDogJ2NoYXQuYWN0aXZpdHkuY3JlYXRpbmdUYXNrc0JhdGNoJyxcbiAgY3JlYXRlX2FnZW50OiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ0FnZW50JyxcbiAgZWRpdF9hZ2VudDogJ2NoYXQuYWN0aXZpdHkuZWRpdGluZ0FnZW50JyxcbiAgZWRpdF90YXNrOiAnY2hhdC5hY3Rpdml0eS5lZGl0aW5nVGFzaycsXG4gIGVkaXRfdGFza3NfYmF0Y2g6ICdjaGF0LmFjdGl2aXR5LmVkaXRpbmdUYXNrc0JhdGNoJyxcbiAgZGVsZXRlX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmRlbGV0aW5nVGFzaycsXG4gIGRlbGV0ZV90YXNrc19iYXRjaDogJ2NoYXQuYWN0aXZpdHkuZGVsZXRpbmdUYXNrc0JhdGNoJyxcbiAgdGFza19hc3NpZ246ICdjaGF0LmFjdGl2aXR5LmFzc2lnbmluZ1VzZXInLFxuICB0YXNrX3VuYXNzaWduOiAnY2hhdC5hY3Rpdml0eS51bmFzc2lnbmluZ1VzZXInLFxuICBhc3NpZ25fdGFza19sYWJlbDogJ2NoYXQuYWN0aXZpdHkuYXNzaWduaW5nTGFiZWwnLFxuICBjcmVhdGVfbGFiZWxzOiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ0xhYmVsJyxcbiAgZWRpdF9wcm9qZWN0OiAnY2hhdC5hY3Rpdml0eS5lZGl0aW5nUHJvamVjdCcsXG4gIGNyZWF0ZV9jaGVja2xpc3RfaXRlbTogJ2NoYXQuYWN0aXZpdHkuY3JlYXRpbmdDaGVja2xpc3RJdGVtJyxcbiAgdXBkYXRlX3Rhc2tfdHlwZTogJ2NoYXQuYWN0aXZpdHkudXBkYXRpbmdUYXNrVHlwZScsXG4gIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nRXN0aW1hdGVkSG91cnMnLFxuICB1cGRhdGVfZGVsaXZlcmFibGU6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nRGVsaXZlcmFibGUnLFxuICBjcmVhdGVfaG91cjogJ2NoYXQuYWN0aXZpdHkubG9nZ2luZ0hvdXJzJyxcbiAgY3JlYXRlX2NoZWNrbGlzdDogJ2NoYXQuYWN0aXZpdHkuY3JlYXRpbmdDaGVja2xpc3QnLFxuICBnZXRfdGFza19kYXRlX2hvdXJzOiAnY2hhdC5hY3Rpdml0eS5xdWVyeWluZ0hvdXJzJyxcbiAgY29uZmlndXJlX2FnZW50X2FjY2VzczogJ2NoYXQuYWN0aXZpdHkuY29uZmlndXJpbmdBZ2VudEFjY2VzcycsXG4gIHNlbmRfdGFza19tZXNzYWdlOiAnY2hhdC5hY3Rpdml0eS5zZW5kaW5nVGFza01lc3NhZ2UnLFxuICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdjaGF0LmFjdGl2aXR5LmRlbGV0aW5nQ2hlY2tsaXN0SXRlbScsXG4gIHJlbW92ZV90YXNrX3R5cGU6ICdjaGF0LmFjdGl2aXR5LnJlbW92aW5nVGFza1R5cGUnLFxuICByZW1vdmVfdGFza19sYWJlbDogJ2NoYXQuYWN0aXZpdHkucmVtb3ZpbmdMYWJlbCcsXG4gIGNvdW50X2RlbGl2ZXJhYmxlOiAnY2hhdC5hY3Rpdml0eS51cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQnLFxuICBjcmVhdGVfcmV3b3JrOiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ1Jld29yaycsXG4gIHVwZGF0ZV9yZXdvcms6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nUmV3b3JrJyxcbn1cblxuY29uc3QgSElUTF9UT09MX05BTUVTX0JZX1NQRUNJRklDSVRZID0gT2JqZWN0LmtleXMoSElUTF9UT09MX0FDVElWSVRZX0tFWVMpLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpXG5cbi8qKlxuICogRGV0ZWN0YSBpZGVudGlmaWNhZG9yZXMgY3J1ZG9zIGRlIHRvb2wgKHNuYWtlX2Nhc2UgLyBrZWJhYi1jYXNlIHNpbiBlc3BhY2lvcykgcXVlIGVsIGJhY2tlbmRcbiAqIHB1ZWRlIGVudmlhciBjdWFuZG8gYcO6biBubyBoYXkgdHJhZHVjY2nDs24uIE5vIGRlYmVuIG1vc3RyYXJzZSBhbCB1c3VhcmlvOiBzZSB1c2EgdW4gZmFsbGJhY2tcbiAqIGdlbsOpcmljbyBoYXN0YSBxdWUgZWwgbm9tYnJlIHNlIGFncmVndWUgYWwgZGljY2lvbmFyaW8uXG4gKi9cbmNvbnN0IGxvb2tzTGlrZVJhd1Rvb2xOYW1lID0gKG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4gPT4gL15bYS16MC05XSsoPzpbXy1dW2EtejAtOV0rKSskL2kudGVzdChtZXNzYWdlLnRyaW0oKSlcblxuLyoqIE1lbnNhamVzIGdlbsOpcmljb3MgZGVsIGJhY2tlbmQgY3VhbmRvIG5vIGhheSBkZXRhbGxlIGRlIHRvb2wgKGNvbnRpbnVlLXRocmVhZCkuICovXG5jb25zdCBpc0dlbmVyaWNSZXN1bWVOb2RlTWVzc2FnZSA9IChtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG1lc3NhZ2UudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgcmV0dXJuIChcbiAgICBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJ2VqZWN1dGFuZG8gYWNjacOzbiBhcHJvYmFkYScpIHx8XG4gICAgbm9ybWFsaXplZC5zdGFydHNXaXRoKCdleGVjdXRpbmcgYXBwcm92ZWQgYWN0aW9uJykgfHxcbiAgICBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJ2V4ZWN1dGFuZG8gYcOnw6NvIGFwcm92YWRhJylcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgbWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eSA9IChcbiAgdG9vbE5hbWU6IHN0cmluZyxcbiAgdDogVHJhbnNsYXRlRm4sXG4gIG9wdGlvbnM/OiB7IHVzZVJlc3VtaW5nRmFsbGJhY2s/OiBib29sZWFuIH1cbik6IFN0cmVhbUFjdGl2aXR5ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSlcbiAgY29uc3Qga2V5ID0gSElUTF9UT09MX0FDVElWSVRZX0tFWVNbbm9ybWFsaXplZF1cbiAgaWYgKGtleSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0KGtleSlcbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2UgfVxuICB9XG4gIGlmIChvcHRpb25zPy51c2VSZXN1bWluZ0ZhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHsgcGhhc2U6ICdhY3Rpb24nLCBtZXNzYWdlOiB0KCdjaGF0LmFjdGl2aXR5LnJlc3VtaW5nQWN0aW9uJykgfVxuICB9XG4gIHJldHVybiB7IHBoYXNlOiAnYWN0aW9uJywgbWVzc2FnZTogdCgnY2hhdC5leGVjdXRpbmdBY3Rpb24nKSB9XG59XG5cbmNvbnN0IHJlc29sdmVIaXRsVG9vbEZyb21Ob2RlTWVzc2FnZSA9IChub2RlTWVzc2FnZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub2RlTWVzc2FnZS50b0xvd2VyQ2FzZSgpLnRyaW0oKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiBudWxsXG5cbiAgaWYgKEhJVExfVE9PTF9BQ1RJVklUWV9LRVlTW25vcm1hbGl6ZWRdKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRcbiAgfVxuXG4gIGNvbnN0IGFzVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUobm9ybWFsaXplZC5yZXBsYWNlKC9cXHMrL2csICdfJykpXG4gIGlmIChISVRMX1RPT0xfQUNUSVZJVFlfS0VZU1thc1Rvb2xOYW1lXSkge1xuICAgIHJldHVybiBhc1Rvb2xOYW1lXG4gIH1cblxuICBjb25zdCBtYXRjaGVkVG9vbCA9IEhJVExfVE9PTF9OQU1FU19CWV9TUEVDSUZJQ0lUWS5maW5kKHRvb2xOYW1lID0+IG5vcm1hbGl6ZWQuaW5jbHVkZXModG9vbE5hbWUpKVxuICByZXR1cm4gbWF0Y2hlZFRvb2wgPz8gbnVsbFxufVxuXG5leHBvcnQgY29uc3QgbWFwTm9kZU1lc3NhZ2VUb1N0cmVhbUFjdGl2aXR5ID0gKFxuICBub2RlTWVzc2FnZTogc3RyaW5nLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgb3B0aW9ucz86IHsgdXNlUmVzdW1pbmdGYWxsYmFjaz86IGJvb2xlYW4gfVxuKTogU3RyZWFtQWN0aXZpdHkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9kZU1lc3NhZ2UudG9Mb3dlckNhc2UoKVxuXG4gIGNvbnN0IGhpdGxUb29sID0gcmVzb2x2ZUhpdGxUb29sRnJvbU5vZGVNZXNzYWdlKG5vZGVNZXNzYWdlKVxuICBpZiAoaGl0bFRvb2wpIHtcbiAgICByZXR1cm4gbWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eShoaXRsVG9vbCwgdCwgb3B0aW9ucylcbiAgfVxuXG4gIGlmIChcbiAgICBub3JtYWxpemVkLmluY2x1ZGVzKCdyZXNwb25zZV9maWxlX2dlbmVyYXRpb24nKSB8fFxuICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ2dlbmVyYW5kbyBhcmNoaXZvJykgfHxcbiAgICBub3JtYWxpemVkLmluY2x1ZGVzKCdnZW5lcmF0aW5nIGZpbGUnKVxuICApIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHQoJ2NoYXQuYWN0aXZpdHkuZ2VuZXJhdGluZ0ZpbGUnKSB9XG4gIH1cbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ3RhdmlseScpIHx8XG4gICAgbm9ybWFsaXplZC5pbmNsdWRlcygnc2VhcmNoX3dlYicpIHx8XG4gICAgbm9ybWFsaXplZC5pbmNsdWRlcygnYnVzY2FuZG8gZW4gbGEgd2ViJykgfHxcbiAgICBub3JtYWxpemVkLmluY2x1ZGVzKCdzZWFyY2hpbmcgdGhlIHdlYicpXG4gICkge1xuICAgIHJldHVybiB7IHBoYXNlOiAnc2VhcmNoJywgbWVzc2FnZTogdChTRUFSQ0hfTUVTU0FHRV9LRVlTWzBdKSB9XG4gIH1cblxuICBjb25zdCB0cmltbWVkTWVzc2FnZSA9IG5vZGVNZXNzYWdlLnRyaW0oKVxuICBpZiAodHJpbW1lZE1lc3NhZ2UgJiYgIWlzR2VuZXJpY1Jlc3VtZU5vZGVNZXNzYWdlKHRyaW1tZWRNZXNzYWdlKSAmJiAhbG9va3NMaWtlUmF3VG9vbE5hbWUodHJpbW1lZE1lc3NhZ2UpKSB7XG4gICAgcmV0dXJuIHsgcGhhc2U6ICdhY3Rpb24nLCBtZXNzYWdlOiB0cmltbWVkTWVzc2FnZSB9XG4gIH1cblxuICBpZiAoaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UodHJpbW1lZE1lc3NhZ2UpIHx8IG9wdGlvbnM/LnVzZVJlc3VtaW5nRmFsbGJhY2spIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHQoJ2NoYXQuYWN0aXZpdHkucmVzdW1pbmdBY3Rpb24nKSB9XG4gIH1cbiAgcmV0dXJuIHsgcGhhc2U6ICdhY3Rpb24nLCBtZXNzYWdlOiB0KCdjaGF0LmV4ZWN1dGluZ0FjdGlvbicpIH1cbn1cblxuZXhwb3J0IHR5cGUgSGl0bEV4ZWN1dGlvbkNvbnRleHQgPSB7XG4gIG1lc3NhZ2VJZD86IHN0cmluZ1xuICBtZXNzYWdlVGV4dD86IHN0cmluZ1xuICBhcHByb3ZhbD86IEFwcHJvdmFsUmVxdWVzdFxuICBwZW5kaW5nQWN0aW9ucz86IFBlbmRpbmdBY3Rpb25bXVxuICB0aHJlYWRJZHM/OiBzdHJpbmdbXVxufVxuXG5jb25zdCByZXNvbHZlUGVuZGluZ0FjdGlvbnNGb3JUaHJlYWQgPSAoXG4gIGNvbnRleHQ6IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdGhyZWFkSWQ/OiBzdHJpbmdcbik6IFBlbmRpbmdBY3Rpb25bXSA9PiB7XG4gIGNvbnN0IHBlbmRpbmcgPSBjb250ZXh0Py5wZW5kaW5nQWN0aW9ucyA/PyBjb250ZXh0Py5hcHByb3ZhbD8ucGVuZGluZ19hY3Rpb25zID8/IFtdXG4gIGlmICghcGVuZGluZy5sZW5ndGgpIHJldHVybiBbXVxuXG4gIGlmICh0aHJlYWRJZCkge1xuICAgIGNvbnN0IGZvclRocmVhZCA9IHBlbmRpbmcuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24udGhyZWFkX2lkID09PSB0aHJlYWRJZClcbiAgICBpZiAoZm9yVGhyZWFkLmxlbmd0aCkgcmV0dXJuIGZvclRocmVhZFxuICB9XG5cbiAgaWYgKGNvbnRleHQ/LnRocmVhZElkcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHBlbmRpbmcuZmlsdGVyKGFjdGlvbiA9PiBjb250ZXh0LnRocmVhZElkcz8uaW5jbHVkZXMoYWN0aW9uLnRocmVhZF9pZCkpXG4gIH1cblxuICByZXR1cm4gcGVuZGluZ1xufVxuXG5jb25zdCBkZXRlY3RUb29sc0Zyb21QZW5kaW5nQWN0aW9ucyA9IChhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10pOiBzdHJpbmdbXSA9PiBbXG4gIC4uLm5ldyBTZXQoYWN0aW9ucy5tYXAoYWN0aW9uID0+IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShhY3Rpb24udG9vbF9uYW1lKSkuZmlsdGVyKEJvb2xlYW4pKSxcbl1cblxuLyoqIFJlc3VlbHZlIGluZGljYWRvciBISVRMIHByaW9yaXphbmRvIHBlbmRpbmdfYWN0aW9ucyBkZWwgbWVuc2FqZSBkZSBhcHJvYmFjacOzbiBhbnRlcmlvci4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlSGl0bE5vZGVTdHJlYW1BY3Rpdml0eSA9IChcbiAgbm9kZU1lc3NhZ2U6IHN0cmluZyxcbiAgdDogVHJhbnNsYXRlRm4sXG4gIGNvbnRleHQ/OiBIaXRsRXhlY3V0aW9uQ29udGV4dCB8IG51bGwsXG4gIHRocmVhZElkPzogc3RyaW5nLFxuICBvcHRpb25zPzogeyB1c2VSZXN1bWluZ0ZhbGxiYWNrPzogYm9vbGVhbiB9XG4pOiBTdHJlYW1BY3Rpdml0eSA9PiB7XG4gIGNvbnN0IHBlbmRpbmdGb3JUaHJlYWQgPSByZXNvbHZlUGVuZGluZ0FjdGlvbnNGb3JUaHJlYWQoY29udGV4dCwgdGhyZWFkSWQpXG4gIGNvbnN0IGRldGVjdGVkVG9vbHMgPSBkZXRlY3RUb29sc0Zyb21QZW5kaW5nQWN0aW9ucyhwZW5kaW5nRm9yVGhyZWFkKVxuXG4gIGNvbnN0IHRyaW1tZWROb2RlTWVzc2FnZSA9IG5vZGVNZXNzYWdlLnRyaW0oKVxuICBjb25zdCBpc1JhdyA9IGxvb2tzTGlrZVJhd1Rvb2xOYW1lKHRyaW1tZWROb2RlTWVzc2FnZSlcbiAgY29uc3QgaXNHZW5lcmljID0gaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UodHJpbW1lZE5vZGVNZXNzYWdlKVxuICAvLyBFbCBiYWNrZW5kIGVudsOtYSBmcmFzZXMgY29tbyBcIkVqZWN1dGFuZG8gYXNzaWduX3Rhc2tfbGFiZWwuLi5cIiBxdWUgY29udGllbmVuIGVsIG5vbWJyZVxuICAvLyBjcnVkbyBkZSBsYSB0b29sIOKAlCBubyBzb24gbWVuc2FqZXMgbGVnaWJsZXMuIFNpIGVsIG1lbnNhamUgY29udGllbmUgYWxndW5vIGRlIGxvcyB0b29sc1xuICAvLyBkZXRlY3RhZG9zLCBwcmVmZXJpbW9zIGVsIG1hcGVvIGRlbCBkaWNjaW9uYXJpby5cbiAgY29uc3Qgbm9kZU1lc3NhZ2VDb250YWluc1Rvb2wgPVxuICAgIGRldGVjdGVkVG9vbHMubGVuZ3RoID49IDEgJiYgZGV0ZWN0ZWRUb29scy5zb21lKHRvb2wgPT4gdHJpbW1lZE5vZGVNZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModG9vbCkpXG4gIGNvbnN0IGFjdGl2aXR5RnJvbU5vZGVNZXNzYWdlID1cbiAgICB0cmltbWVkTm9kZU1lc3NhZ2UgJiYgIWlzR2VuZXJpYyAmJiAhaXNSYXcgJiYgIW5vZGVNZXNzYWdlQ29udGFpbnNUb29sXG4gICAgICA/IHsgcGhhc2U6ICdhY3Rpb24nIGFzIGNvbnN0LCBtZXNzYWdlOiB0cmltbWVkTm9kZU1lc3NhZ2UgfVxuICAgICAgOiBudWxsXG5cbiAgaWYgKGRldGVjdGVkVG9vbHMubGVuZ3RoID49IDEpIHtcbiAgICBpZiAoYWN0aXZpdHlGcm9tTm9kZU1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBhY3Rpdml0eUZyb21Ob2RlTWVzc2FnZVxuICAgIH1cbiAgICByZXR1cm4gbWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eShkZXRlY3RlZFRvb2xzWzBdLCB0LCBvcHRpb25zKVxuICB9XG5cbiAgcmV0dXJuIG1hcE5vZGVNZXNzYWdlVG9TdHJlYW1BY3Rpdml0eShub2RlTWVzc2FnZSwgdCwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVJbml0aWFsSGl0bFN0cmVhbUFjdGl2aXR5ID0gKFxuICB0OiBUcmFuc2xhdGVGbixcbiAgY29udGV4dD86IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbFxuKTogU3RyZWFtQWN0aXZpdHkgPT4ge1xuICBjb25zdCBwZW5kaW5nQWN0aW9ucyA9IHJlc29sdmVQZW5kaW5nQWN0aW9uc0ZvclRocmVhZChjb250ZXh0KVxuICBjb25zdCBkZXRlY3RlZFRvb2xzID0gZGV0ZWN0VG9vbHNGcm9tUGVuZGluZ0FjdGlvbnMocGVuZGluZ0FjdGlvbnMpXG5cbiAgaWYgKGRldGVjdGVkVG9vbHMubGVuZ3RoID49IDEpIHtcbiAgICByZXR1cm4gbWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eShkZXRlY3RlZFRvb2xzWzBdLCB0LCB7IHVzZVJlc3VtaW5nRmFsbGJhY2s6IHRydWUgfSlcbiAgfVxuXG4gIHJldHVybiB7IHBoYXNlOiAncHJvY2Vzc2luZycsIG1lc3NhZ2U6IHQoJ2NoYXQucHJvY2Vzc2luZycpIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFDVElWSVRZX01FU1NBR0VfUk9UQVRFX01TID0gMzIwMFxuXG5jb25zdCBST1RBVEFCTEVfUEhBU0VTOiBTdHJlYW1BY3Rpdml0eVBoYXNlW10gPSBbJ2dlbmVyYXRpbmcnLCAndGhpbmtpbmcnLCAnc2VhcmNoJywgJ2RlZXBfc2VhcmNoJywgJ2F0dGFjaG1lbnQnXVxuXG5jb25zdCBnZXRNZXNzYWdlS2V5c0ZvclBoYXNlID0gKHBoYXNlOiBTdHJlYW1BY3Rpdml0eVBoYXNlLCBhdHRhY2htZW50c0NvdW50ID0gMCk6IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAocGhhc2UpIHtcbiAgICBjYXNlICdnZW5lcmF0aW5nJzpcbiAgICAgIHJldHVybiBHRU5FUkFUSU5HX01FU1NBR0VfS0VZU1xuICAgIGNhc2UgJ3RoaW5raW5nJzpcbiAgICAgIHJldHVybiBUSElOS0lOR19NRVNTQUdFX0tFWVNcbiAgICBjYXNlICdzZWFyY2gnOlxuICAgICAgcmV0dXJuIFNFQVJDSF9NRVNTQUdFX0tFWVNcbiAgICBjYXNlICdkZWVwX3NlYXJjaCc6XG4gICAgICByZXR1cm4gREVFUF9TRUFSQ0hfTUVTU0FHRV9LRVlTXG4gICAgY2FzZSAnYXR0YWNobWVudCc6XG4gICAgICByZXR1cm4gYXR0YWNobWVudHNDb3VudCA+IDEgPyBBVFRBQ0hNRU5UX01FU1NBR0VfS0VZU19QTFVSQUwgOiBBVFRBQ0hNRU5UX01FU1NBR0VfS0VZU1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4ID0gKFxuICBwaGFzZTogU3RyZWFtQWN0aXZpdHlQaGFzZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgdDogVHJhbnNsYXRlRm4sXG4gIGF0dGFjaG1lbnRzQ291bnQgPSAwXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAocGhhc2UgPT09ICd3cml0aW5nJykge1xuICAgIHJldHVybiB0KFdSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkpXG4gIH1cblxuICBjb25zdCBrZXlzID0gZ2V0TWVzc2FnZUtleXNGb3JQaGFzZShwaGFzZSwgYXR0YWNobWVudHNDb3VudClcbiAgaWYgKCFrZXlzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGNvbnN0IGNsYW1wZWRJbmRleCA9IE1hdGgubWluKE1hdGgubWF4KDAsIGluZGV4KSwga2V5cy5sZW5ndGggLSAxKVxuICByZXR1cm4gdChrZXlzW2NsYW1wZWRJbmRleF0pXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUaGlua2luZ0xvYWRpbmdNZXNzYWdlID0gKGluZGV4OiBudW1iZXIsIHQ6IFRyYW5zbGF0ZUZuKTogc3RyaW5nID0+XG4gIGdldFN0cmVhbUFjdGl2aXR5TWVzc2FnZUF0SW5kZXgoJ3RoaW5raW5nJywgaW5kZXgsIHQpXG5cbmV4cG9ydCBjb25zdCBnZXRHZW5lcmF0aW5nTG9hZGluZ01lc3NhZ2UgPSAoaW5kZXg6IG51bWJlciwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT5cbiAgZ2V0U3RyZWFtQWN0aXZpdHlNZXNzYWdlQXRJbmRleCgnZ2VuZXJhdGluZycsIGluZGV4LCB0KVxuXG5leHBvcnQgY29uc3QgY2FuQWR2YW5jZVN0cmVhbUFjdGl2aXR5TWVzc2FnZSA9IChwaGFzZTogU3RyZWFtQWN0aXZpdHlQaGFzZSwgY3VycmVudEluZGV4OiBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgY29uc3Qga2V5cyA9IGdldE1lc3NhZ2VLZXlzRm9yUGhhc2UocGhhc2UpXG4gIGlmICgha2V5cykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBjdXJyZW50SW5kZXggPCBrZXlzLmxlbmd0aCAtIDFcbn1cblxuZXhwb3J0IGNvbnN0IGFkdmFuY2VTdHJlYW1BY3Rpdml0eU1lc3NhZ2UgPSAoXG4gIGFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSxcbiAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gIHQ6IFRyYW5zbGF0ZUZuXG4pOiB7IGFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eTsgbmV4dEluZGV4OiBudW1iZXIgfSB8IG51bGwgPT4ge1xuICBpZiAoIWNhbkFkdmFuY2VTdHJlYW1BY3Rpdml0eU1lc3NhZ2UoYWN0aXZpdHkucGhhc2UsIGN1cnJlbnRJbmRleCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgbmV4dEluZGV4ID0gY3VycmVudEluZGV4ICsgMVxuICByZXR1cm4ge1xuICAgIGFjdGl2aXR5OiB7XG4gICAgICBwaGFzZTogYWN0aXZpdHkucGhhc2UsXG4gICAgICBtZXNzYWdlOiBnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4KGFjdGl2aXR5LnBoYXNlLCBuZXh0SW5kZXgsIHQsIGFjdGl2aXR5LmF0dGFjaG1lbnRzQ291bnQpLFxuICAgICAgLi4uKGFjdGl2aXR5LmF0dGFjaG1lbnRzQ291bnQgIT0gbnVsbCAmJiB7IGF0dGFjaG1lbnRzQ291bnQ6IGFjdGl2aXR5LmF0dGFjaG1lbnRzQ291bnQgfSksXG4gICAgfSxcbiAgICBuZXh0SW5kZXgsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNhblJvdGF0ZVN0cmVhbUFjdGl2aXR5UGhhc2UgPSAocGhhc2U6IFN0cmVhbUFjdGl2aXR5UGhhc2UpOiBib29sZWFuID0+IFJPVEFUQUJMRV9QSEFTRVMuaW5jbHVkZXMocGhhc2UpXG5cbmV4cG9ydCBjb25zdCBnZXRXcml0aW5nU3RyZWFtQWN0aXZpdHkgPSAodDogVHJhbnNsYXRlRm4pOiBTdHJlYW1BY3Rpdml0eSA9PiAoe1xuICBwaGFzZTogJ3dyaXRpbmcnLFxuICBtZXNzYWdlOiB0KFdSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkpLFxufSlcblxuZXhwb3J0IGNvbnN0IGdldEluaXRpYWxTdHJlYW1BY3Rpdml0eSA9IChcbiAgdDogVHJhbnNsYXRlRm4sXG4gIG9wdGlvbnM6IHtcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgaGFzQXR0YWNobWVudHM/OiBib29sZWFuXG4gICAgYXR0YWNobWVudHNDb3VudD86IG51bWJlclxuICB9XG4pOiBTdHJlYW1BY3Rpdml0eSA9PiB7XG4gIGlmIChvcHRpb25zLmlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgcmV0dXJuIHsgcGhhc2U6ICdzZWFyY2gnLCBtZXNzYWdlOiB0KFNFQVJDSF9NRVNTQUdFX0tFWVNbMF0pIH1cbiAgfVxuICBpZiAob3B0aW9ucy5pc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ2RlZXBfc2VhcmNoJywgbWVzc2FnZTogdChERUVQX1NFQVJDSF9NRVNTQUdFX0tFWVNbMF0pIH1cbiAgfVxuICBpZiAob3B0aW9ucy5oYXNBdHRhY2htZW50cykge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRzQ291bnQgPSBvcHRpb25zLmF0dGFjaG1lbnRzQ291bnQgPz8gMFxuICAgIHJldHVybiB7XG4gICAgICBwaGFzZTogJ2F0dGFjaG1lbnQnLFxuICAgICAgbWVzc2FnZTogZ2V0U3RyZWFtQWN0aXZpdHlNZXNzYWdlQXRJbmRleCgnYXR0YWNobWVudCcsIDAsIHQsIGF0dGFjaG1lbnRzQ291bnQpLFxuICAgICAgYXR0YWNobWVudHNDb3VudCxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcGhhc2U6ICdnZW5lcmF0aW5nJywgbWVzc2FnZTogdChHRU5FUkFUSU5HX01FU1NBR0VfS0VZU1swXSkgfVxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVN0cmVhbUxvYWRpbmdEaXNwbGF5ID0gKHBhcmFtczoge1xuICBzdHJlYW1BY3Rpdml0eTogU3RyZWFtQWN0aXZpdHkgfCBudWxsXG4gIGxvYWRpbmdNZXNzYWdlOiBzdHJpbmcgfCBudWxsXG4gIGFjdGl2ZUxvYWRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHdhaXRpbmdSZXNwb25zZTogYm9vbGVhblxuICBpc1dlYlNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICBpc0RlZXBTZWFyY2hBY3RpdmU6IGJvb2xlYW5cbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbiAgYXR0YWNobWVudHNDb3VudD86IG51bWJlclxuICB0OiBUcmFuc2xhdGVGblxufSk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCA9PiB7XG4gIGlmIChwYXJhbXMuc3RyZWFtQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gcGFyYW1zLnN0cmVhbUFjdGl2aXR5XG4gIH1cblxuICBjb25zdCBhY3RpdmVLZXlzID0gT2JqZWN0LmtleXMocGFyYW1zLmFjdGl2ZUxvYWRpbmdzKVxuICBpZiAoYWN0aXZlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZmlyc3RLZXkgPSBhY3RpdmVLZXlzWzBdXG4gICAgY29uc3QgcmF3ID0gcGFyYW1zLmFjdGl2ZUxvYWRpbmdzW2ZpcnN0S2V5XVxuICAgIGlmIChyYXcgJiYgcmF3ICE9PSBwYXJhbXMudCgnY2hhdC5wcm9jZXNzaW5nJykpIHtcbiAgICAgIGNvbnN0IGhpdGxUb29sID0gcmVzb2x2ZUhpdGxUb29sRnJvbU5vZGVNZXNzYWdlKHJhdylcbiAgICAgIGlmIChoaXRsVG9vbCkge1xuICAgICAgICByZXR1cm4gbWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eShoaXRsVG9vbCwgcGFyYW1zLnQpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpXG4gICAgICBpZiAodHJpbW1lZCAmJiAhaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UodHJpbW1lZCkpIHtcbiAgICAgICAgcmV0dXJuIHsgcGhhc2U6ICdhY3Rpb24nLCBtZXNzYWdlOiB0cmltbWVkIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1hcE5vZGVNZXNzYWdlVG9TdHJlYW1BY3Rpdml0eShyYXcsIHBhcmFtcy50LCB7IHVzZVJlc3VtaW5nRmFsbGJhY2s6IHRydWUgfSlcbiAgICB9XG4gICAgcmV0dXJuIHsgcGhhc2U6ICdwcm9jZXNzaW5nJywgbWVzc2FnZTogcGFyYW1zLnQoJ2NoYXQucHJvY2Vzc2luZycpIH1cbiAgfVxuXG4gIGlmIChwYXJhbXMubG9hZGluZ01lc3NhZ2UpIHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMubG9hZGluZ01lc3NhZ2UgPT09IHBhcmFtcy50KCdjaGF0LndyaXRpbmcnKSB8fFxuICAgICAgcGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudChXUklUSU5HX0FDVElWSVRZX01FU1NBR0VfS0VZKVxuICAgICkge1xuICAgICAgcmV0dXJuIGdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eShwYXJhbXMudClcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZycpKSB7XG4gICAgICByZXR1cm4geyBwaGFzZTogJ2dlbmVyYXRpbmcnLCBtZXNzYWdlOiBwYXJhbXMubG9hZGluZ01lc3NhZ2UgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBwYXJhbXMubG9hZGluZ01lc3NhZ2UgPT09IHBhcmFtcy50KCdjaGF0LmdlbmVyYXRpbmdXZWJTZWFyY2gnKSB8fFxuICAgICAgcGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudCgnY2hhdC5nZW5lcmF0aW5nRGVlcFNlYXJjaCcpIHx8XG4gICAgICBwYXJhbXMubG9hZGluZ01lc3NhZ2UgPT09IHBhcmFtcy50KCdjaGF0LmdlbmVyYXRpbmdBdHRhY2htZW50JylcbiAgICApIHtcbiAgICAgIHJldHVybiBnZXRJbml0aWFsU3RyZWFtQWN0aXZpdHkocGFyYW1zLnQsIHtcbiAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZ1dlYlNlYXJjaCcpLFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZ0RlZXBTZWFyY2gnKSxcbiAgICAgICAgaGFzQXR0YWNobWVudHM6IHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZ0F0dGFjaG1lbnQnKSxcbiAgICAgICAgYXR0YWNobWVudHNDb3VudDogcGFyYW1zLmF0dGFjaG1lbnRzQ291bnQsXG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHBhcmFtcy5sb2FkaW5nTWVzc2FnZSB9XG4gIH1cblxuICBpZiAocGFyYW1zLndhaXRpbmdSZXNwb25zZSkge1xuICAgIHJldHVybiBnZXRJbml0aWFsU3RyZWFtQWN0aXZpdHkocGFyYW1zLnQsIHtcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBwYXJhbXMuaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IHBhcmFtcy5pc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICBoYXNBdHRhY2htZW50czogcGFyYW1zLmhhc0F0dGFjaG1lbnRzLFxuICAgICAgYXR0YWNobWVudHNDb3VudDogcGFyYW1zLmF0dGFjaG1lbnRzQ291bnQsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBpc1N0cmVhbWluZ1BsYWNlaG9sZGVyTWVzc2FnZUlkID0gKG1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PlxuICB0eXBlb2YgbWVzc2FnZUlkID09PSAnc3RyaW5nJyAmJiBtZXNzYWdlSWQuaW5jbHVkZXMoJy1zdHJlYW1pbmcnKVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsU0FBU0EscUJBQXFCLFFBQVEsaUJBQWlCO0FBSXZELElBQU1DLHFCQUFxQixHQUFHLENBQzVCLGtDQUFrQyxFQUNsQyxrQ0FBa0MsRUFDbEMsaUNBQWlD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TyxFQUFFdUYsTUFBTSxDQUFDTztNQUFlLENBQUM7SUFDaEU7SUFDQSxJQUNFUCxNQUFNLENBQUNPLGNBQWMsS0FBS1AsTUFBTSxDQUFDOUUsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLElBQzlEOEUsTUFBTSxDQUFDTyxjQUFjLEtBQUtQLE1BQU0sQ0FBQzlFLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxJQUMvRDhFLE1BQU0sQ0FBQ08sY0FBYyxLQUFLUCxNQUFNLENBQUM5RSxDQUFDLENBQUMsMkJBQTJCLENBQUMsRUFDL0Q7TUFDQSxPQUFPd0Usd0JBQXdCLENBQUNNLE1BQU0sQ0FBQzlFLENBQUMsRUFBRTtRQUN4Q3lFLGlCQUFpQixFQUFFSyxNQUFNLENBQUNPLGNBQWMsS0FBS1AsTUFBTSxDQUFDOUUsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1FBQ2pGMEUsa0JBQWtCLEVBQUVJLE1BQU0sQ0FBQ08sY0FBYyxLQUFLUCxNQUFNLENBQUM5RSxDQUFDLENBQUMsMkJBQTJCLENBQUM7UUFDbkYyRSxjQUFjLEVBQUVHLE1BQU0sQ0FBQ08sY0FBYyxLQUFLUCxNQUFNLENBQUM5RSxDQUFDLENBQUMsMkJBQTJCLENBQUM7UUFDL0VxRCxnQkFBZ0IsRUFBRXlCLE1BQU0sQ0FBQ3pCO01BQzNCLENBQUMsQ0FBQztJQUNKO0lBQ0EsT0FBTztNQUFFbEQsS0FBSyxFQUFFLFFBQVE7TUFBRVosT0FBTyxFQUFFdUYsTUFBTSxDQUFDTztJQUFlLENBQUM7RUFDNUQ7RUFFQSxJQUFJUCxNQUFNLENBQUNRLGVBQWUsRUFBRTtJQUMxQixPQUFPZCx3QkFBd0IsQ0FBQ00sTUFBTSxDQUFDOUUsQ0FBQyxFQUFFO01BQ3hDeUUsaUJBQWlCLEVBQUVLLE1BQU0sQ0FBQ0wsaUJBQWlCO01BQzNDQyxrQkFBa0IsRUFBRUksTUFBTSxDQUFDSixrQkFBa0I7TUFDN0NDLGNBQWMsRUFBRUcsTUFBTSxDQUFDSCxjQUFjO01BQ3JDdEIsZ0JBQWdCLEVBQUV5QixNQUFNLENBQUN6QjtJQUMzQixDQUFDLENBQUM7RUFDSjtFQUVBLE9BQU8sSUFBSTtBQUNiLENBQUM7QUFFRCxPQUFPLElBQU1rQywrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUFJQyxTQUE2QjtFQUFBLE9BQzNFLE9BQU9BLFNBQVMsS0FBSyxRQUFRLElBQUlBLFNBQVMsQ0FBQzdFLFFBQVEsQ0FBQyxZQUFZLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
359
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJUSElOS0lOR19NRVNTQUdFX0tFWVMiLCJHRU5FUkFUSU5HX01FU1NBR0VfS0VZUyIsIlNFQVJDSF9NRVNTQUdFX0tFWVMiLCJERUVQX1NFQVJDSF9NRVNTQUdFX0tFWVMiLCJBVFRBQ0hNRU5UX01FU1NBR0VfS0VZUyIsIkFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTX1BMVVJBTCIsIldSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkiLCJISVRMX1RPT0xfQUNUSVZJVFlfS0VZUyIsImNyZWF0ZV90YXNrIiwiY2xvbmVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsImNyZWF0ZV9sYWJlbHMiLCJlZGl0X3Byb2plY3QiLCJjcmVhdGVfY2hlY2tsaXN0X2l0ZW0iLCJ1cGRhdGVfdGFza190eXBlIiwidXBkYXRlX2VzdGltYXRlZF9ob3VycyIsInVwZGF0ZV9kZWxpdmVyYWJsZSIsImNyZWF0ZV9ob3VyIiwiY3JlYXRlX2hvdXJzIiwiY3JlYXRlX2NoZWNrbGlzdCIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiSElUTF9UT09MX05BTUVTX0JZX1NQRUNJRklDSVRZIiwiT2JqZWN0Iiwia2V5cyIsInNvcnQiLCJhIiwiYiIsImxlbmd0aCIsImxvb2tzTGlrZVJhd1Rvb2xOYW1lIiwibWVzc2FnZSIsInRlc3QiLCJ0cmltIiwiaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UiLCJub3JtYWxpemVkIiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwibWFwSGl0bFRvb2xOYW1lVG9TdHJlYW1BY3Rpdml0eSIsInRvb2xOYW1lIiwidCIsIm9wdGlvbnMiLCJrZXkiLCJwaGFzZSIsInVzZVJlc3VtaW5nRmFsbGJhY2siLCJyZXNvbHZlSGl0bFRvb2xGcm9tTm9kZU1lc3NhZ2UiLCJub2RlTWVzc2FnZSIsImFzVG9vbE5hbWUiLCJyZXBsYWNlIiwibWF0Y2hlZFRvb2wiLCJmaW5kIiwiaW5jbHVkZXMiLCJtYXBOb2RlTWVzc2FnZVRvU3RyZWFtQWN0aXZpdHkiLCJoaXRsVG9vbCIsInRyaW1tZWRNZXNzYWdlIiwicmVzb2x2ZVBlbmRpbmdBY3Rpb25zRm9yVGhyZWFkIiwiY29udGV4dCIsInRocmVhZElkIiwiX3JlZiIsIl9jb250ZXh0JHBlbmRpbmdBY3RpbyIsIl9jb250ZXh0JGFwcHJvdmFsIiwiX2NvbnRleHQkdGhyZWFkSWRzIiwicGVuZGluZyIsInBlbmRpbmdBY3Rpb25zIiwiYXBwcm92YWwiLCJwZW5kaW5nX2FjdGlvbnMiLCJmb3JUaHJlYWQiLCJmaWx0ZXIiLCJhY3Rpb24iLCJ0aHJlYWRfaWQiLCJ0aHJlYWRJZHMiLCJfY29udGV4dCR0aHJlYWRJZHMyIiwiZGV0ZWN0VG9vbHNGcm9tUGVuZGluZ0FjdGlvbnMiLCJhY3Rpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiU2V0IiwibWFwIiwidG9vbF9uYW1lIiwiQm9vbGVhbiIsInJlc29sdmVIaXRsTm9kZVN0cmVhbUFjdGl2aXR5IiwicGVuZGluZ0ZvclRocmVhZCIsImRldGVjdGVkVG9vbHMiLCJ0cmltbWVkTm9kZU1lc3NhZ2UiLCJpc1JhdyIsImlzR2VuZXJpYyIsIm5vZGVNZXNzYWdlQ29udGFpbnNUb29sIiwic29tZSIsInRvb2wiLCJhY3Rpdml0eUZyb21Ob2RlTWVzc2FnZSIsInJlc29sdmVJbml0aWFsSGl0bFN0cmVhbUFjdGl2aXR5IiwiQUNUSVZJVFlfTUVTU0FHRV9ST1RBVEVfTVMiLCJST1RBVEFCTEVfUEhBU0VTIiwiZ2V0TWVzc2FnZUtleXNGb3JQaGFzZSIsImF0dGFjaG1lbnRzQ291bnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4IiwiaW5kZXgiLCJjbGFtcGVkSW5kZXgiLCJNYXRoIiwibWluIiwibWF4IiwiZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSIsImdldEdlbmVyYXRpbmdMb2FkaW5nTWVzc2FnZSIsImNhbkFkdmFuY2VTdHJlYW1BY3Rpdml0eU1lc3NhZ2UiLCJjdXJyZW50SW5kZXgiLCJhZHZhbmNlU3RyZWFtQWN0aXZpdHlNZXNzYWdlIiwiYWN0aXZpdHkiLCJuZXh0SW5kZXgiLCJfb2JqZWN0U3ByZWFkIiwiY2FuUm90YXRlU3RyZWFtQWN0aXZpdHlQaGFzZSIsImdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSIsImdldEluaXRpYWxTdHJlYW1BY3Rpdml0eSIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiaGFzQXR0YWNobWVudHMiLCJfb3B0aW9ucyRhdHRhY2htZW50c0MiLCJyZXNvbHZlU3RyZWFtTG9hZGluZ0Rpc3BsYXkiLCJwYXJhbXMiLCJzdHJlYW1BY3Rpdml0eSIsImFjdGl2ZUtleXMiLCJhY3RpdmVMb2FkaW5ncyIsImZpcnN0S2V5IiwicmF3IiwidHJpbW1lZCIsImxvYWRpbmdNZXNzYWdlIiwid2FpdGluZ1Jlc3BvbnNlIiwiaXNTdHJlYW1pbmdQbGFjZWhvbGRlck1lc3NhZ2VJZCIsIm1lc3NhZ2VJZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RyZWFtQWN0aXZpdHksIFN0cmVhbUFjdGl2aXR5UGhhc2UgfSBmcm9tICcuLi90eXBlcy9zdHJlYW1BY3Rpdml0eSdcbmltcG9ydCB0eXBlIHsgQXBwcm92YWxSZXF1ZXN0LCBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSB9IGZyb20gJy4vaGl0bEFuYWx5dGljcydcblxudHlwZSBUcmFuc2xhdGVGbiA9IChrZXk6IHN0cmluZykgPT4gc3RyaW5nXG5cbmNvbnN0IFRISU5LSU5HX01FU1NBR0VfS0VZUyA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcuYW5hbHl6aW5nJyxcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcucmV2aWV3aW5nJyxcbiAgJ2NoYXQuYWN0aXZpdHkudGhpbmtpbmcucGxhbm5pbmcnLFxuXSBhcyBjb25zdFxuXG5jb25zdCBHRU5FUkFUSU5HX01FU1NBR0VfS0VZUyA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkuZ2VuZXJhdGluZy5jb25zaWRlcmluZycsXG4gICdjaGF0LmFjdGl2aXR5LmdlbmVyYXRpbmcuYWxtb3N0UmVhZHknLFxuICAnY2hhdC5hY3Rpdml0eS5nZW5lcmF0aW5nLnByZXBhcmluZycsXG5dIGFzIGNvbnN0XG5cbmNvbnN0IFNFQVJDSF9NRVNTQUdFX0tFWVMgPSBbJ2NoYXQuYWN0aXZpdHkuc2VhcmNoLnNjYW5uaW5nJywgJ2NoYXQuYWN0aXZpdHkuc2VhcmNoLnN1bW1hcml6aW5nJ10gYXMgY29uc3RcblxuY29uc3QgREVFUF9TRUFSQ0hfTUVTU0FHRV9LRVlTID0gW1xuICAnY2hhdC5hY3Rpdml0eS5kZWVwU2VhcmNoLmV4cGxvcmluZycsXG4gICdjaGF0LmFjdGl2aXR5LmRlZXBTZWFyY2guY3Jvc3NDaGVja2luZycsXG5dIGFzIGNvbnN0XG5cbmNvbnN0IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTID0gWydjaGF0LmFjdGl2aXR5LmF0dGFjaG1lbnQucmVhZGluZycsICdjaGF0LmFjdGl2aXR5LmF0dGFjaG1lbnQuZXh0cmFjdGluZyddIGFzIGNvbnN0XG5cbmNvbnN0IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTX1BMVVJBTCA9IFtcbiAgJ2NoYXQuYWN0aXZpdHkuYXR0YWNobWVudC5yZWFkaW5nUGx1cmFsJyxcbiAgJ2NoYXQuYWN0aXZpdHkuYXR0YWNobWVudC5leHRyYWN0aW5nUGx1cmFsJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFdSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkgPSAnY2hhdC5hY3Rpdml0eS53cml0aW5nLmNvbXBvc2luZycgYXMgY29uc3RcblxuLyoqIFRvb2xzIEhJVEwgLyBub2RlIFNTRSDihpIga2V5IGkxOG4gZGVsIGluZGljYWRvciBkZSBhY3RpdmlkYWQgKHRpZW1wbyBwcmVzZW50ZSBjb250aW51bykuICovXG5jb25zdCBISVRMX1RPT0xfQUNUSVZJVFlfS0VZUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY3JlYXRlX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmNyZWF0aW5nVGFzaycsXG4gIGNsb25lX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmNyZWF0aW5nVGFzaycsXG4gIGNyZWF0ZV90YXNrc19iYXRjaDogJ2NoYXQuYWN0aXZpdHkuY3JlYXRpbmdUYXNrc0JhdGNoJyxcbiAgY3JlYXRlX2FnZW50OiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ0FnZW50JyxcbiAgZWRpdF9hZ2VudDogJ2NoYXQuYWN0aXZpdHkuZWRpdGluZ0FnZW50JyxcbiAgZWRpdF90YXNrOiAnY2hhdC5hY3Rpdml0eS5lZGl0aW5nVGFzaycsXG4gIGVkaXRfdGFza3NfYmF0Y2g6ICdjaGF0LmFjdGl2aXR5LmVkaXRpbmdUYXNrc0JhdGNoJyxcbiAgZGVsZXRlX3Rhc2s6ICdjaGF0LmFjdGl2aXR5LmRlbGV0aW5nVGFzaycsXG4gIGRlbGV0ZV90YXNrc19iYXRjaDogJ2NoYXQuYWN0aXZpdHkuZGVsZXRpbmdUYXNrc0JhdGNoJyxcbiAgdGFza19hc3NpZ246ICdjaGF0LmFjdGl2aXR5LmFzc2lnbmluZ1VzZXInLFxuICB0YXNrX3VuYXNzaWduOiAnY2hhdC5hY3Rpdml0eS51bmFzc2lnbmluZ1VzZXInLFxuICBhc3NpZ25fdGFza19sYWJlbDogJ2NoYXQuYWN0aXZpdHkuYXNzaWduaW5nTGFiZWwnLFxuICBjcmVhdGVfbGFiZWxzOiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ0xhYmVsJyxcbiAgZWRpdF9wcm9qZWN0OiAnY2hhdC5hY3Rpdml0eS5lZGl0aW5nUHJvamVjdCcsXG4gIGNyZWF0ZV9jaGVja2xpc3RfaXRlbTogJ2NoYXQuYWN0aXZpdHkuY3JlYXRpbmdDaGVja2xpc3RJdGVtJyxcbiAgdXBkYXRlX3Rhc2tfdHlwZTogJ2NoYXQuYWN0aXZpdHkudXBkYXRpbmdUYXNrVHlwZScsXG4gIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nRXN0aW1hdGVkSG91cnMnLFxuICB1cGRhdGVfZGVsaXZlcmFibGU6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nRGVsaXZlcmFibGUnLFxuICBjcmVhdGVfaG91cjogJ2NoYXQuYWN0aXZpdHkubG9nZ2luZ0hvdXJzJyxcbiAgY3JlYXRlX2hvdXJzOiAnY2hhdC5hY3Rpdml0eS5sb2dnaW5nSG91cnMnLFxuICBjcmVhdGVfY2hlY2tsaXN0OiAnY2hhdC5hY3Rpdml0eS5jcmVhdGluZ0NoZWNrbGlzdCcsXG4gIGdldF90YXNrX2RhdGVfaG91cnM6ICdjaGF0LmFjdGl2aXR5LnF1ZXJ5aW5nSG91cnMnLFxuICBjb25maWd1cmVfYWdlbnRfYWNjZXNzOiAnY2hhdC5hY3Rpdml0eS5jb25maWd1cmluZ0FnZW50QWNjZXNzJyxcbiAgc2VuZF90YXNrX21lc3NhZ2U6ICdjaGF0LmFjdGl2aXR5LnNlbmRpbmdUYXNrTWVzc2FnZScsXG4gIGRlbGV0ZV9jaGVja2xpc3RfaXRlbTogJ2NoYXQuYWN0aXZpdHkuZGVsZXRpbmdDaGVja2xpc3RJdGVtJyxcbiAgcmVtb3ZlX3Rhc2tfdHlwZTogJ2NoYXQuYWN0aXZpdHkucmVtb3ZpbmdUYXNrVHlwZScsXG4gIHJlbW92ZV90YXNrX2xhYmVsOiAnY2hhdC5hY3Rpdml0eS5yZW1vdmluZ0xhYmVsJyxcbiAgY291bnRfZGVsaXZlcmFibGU6ICdjaGF0LmFjdGl2aXR5LnVwZGF0aW5nRGVsaXZlcmFibGVDb3VudCcsXG4gIGNyZWF0ZV9yZXdvcms6ICdjaGF0LmFjdGl2aXR5LmNyZWF0aW5nUmV3b3JrJyxcbiAgdXBkYXRlX3Jld29yazogJ2NoYXQuYWN0aXZpdHkudXBkYXRpbmdSZXdvcmsnLFxufVxuXG5jb25zdCBISVRMX1RPT0xfTkFNRVNfQllfU1BFQ0lGSUNJVFkgPSBPYmplY3Qua2V5cyhISVRMX1RPT0xfQUNUSVZJVFlfS0VZUykuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aClcblxuLyoqXG4gKiBEZXRlY3RhIGlkZW50aWZpY2Fkb3JlcyBjcnVkb3MgZGUgdG9vbCAoc25ha2VfY2FzZSAvIGtlYmFiLWNhc2Ugc2luIGVzcGFjaW9zKSBxdWUgZWwgYmFja2VuZFxuICogcHVlZGUgZW52aWFyIGN1YW5kbyBhw7puIG5vIGhheSB0cmFkdWNjacOzbi4gTm8gZGViZW4gbW9zdHJhcnNlIGFsIHVzdWFyaW86IHNlIHVzYSB1biBmYWxsYmFja1xuICogZ2Vuw6lyaWNvIGhhc3RhIHF1ZSBlbCBub21icmUgc2UgYWdyZWd1ZSBhbCBkaWNjaW9uYXJpby5cbiAqL1xuY29uc3QgbG9va3NMaWtlUmF3VG9vbE5hbWUgPSAobWVzc2FnZTogc3RyaW5nKTogYm9vbGVhbiA9PiAvXlthLXowLTldKyg/OltfLV1bYS16MC05XSspKyQvaS50ZXN0KG1lc3NhZ2UudHJpbSgpKVxuXG4vKiogTWVuc2FqZXMgZ2Vuw6lyaWNvcyBkZWwgYmFja2VuZCBjdWFuZG8gbm8gaGF5IGRldGFsbGUgZGUgdG9vbCAoY29udGludWUtdGhyZWFkKS4gKi9cbmNvbnN0IGlzR2VuZXJpY1Jlc3VtZU5vZGVNZXNzYWdlID0gKG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbWVzc2FnZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICByZXR1cm4gKFxuICAgIG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnZWplY3V0YW5kbyBhY2Npw7NuIGFwcm9iYWRhJykgfHxcbiAgICBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJ2V4ZWN1dGluZyBhcHByb3ZlZCBhY3Rpb24nKSB8fFxuICAgIG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnZXhlY3V0YW5kbyBhw6fDo28gYXByb3ZhZGEnKVxuICApXG59XG5cbmV4cG9ydCBjb25zdCBtYXBIaXRsVG9vbE5hbWVUb1N0cmVhbUFjdGl2aXR5ID0gKFxuICB0b29sTmFtZTogc3RyaW5nLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgb3B0aW9ucz86IHsgdXNlUmVzdW1pbmdGYWxsYmFjaz86IGJvb2xlYW4gfVxuKTogU3RyZWFtQWN0aXZpdHkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lKVxuICBjb25zdCBrZXkgPSBISVRMX1RPT0xfQUNUSVZJVFlfS0VZU1tub3JtYWxpemVkXVxuICBpZiAoa2V5KSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHQoa2V5KVxuICAgIHJldHVybiB7IHBoYXNlOiAnYWN0aW9uJywgbWVzc2FnZSB9XG4gIH1cbiAgaWYgKG9wdGlvbnM/LnVzZVJlc3VtaW5nRmFsbGJhY2spIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHQoJ2NoYXQuYWN0aXZpdHkucmVzdW1pbmdBY3Rpb24nKSB9XG4gIH1cbiAgcmV0dXJuIHsgcGhhc2U6ICdhY3Rpb24nLCBtZXNzYWdlOiB0KCdjaGF0LmV4ZWN1dGluZ0FjdGlvbicpIH1cbn1cblxuY29uc3QgcmVzb2x2ZUhpdGxUb29sRnJvbU5vZGVNZXNzYWdlID0gKG5vZGVNZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vZGVNZXNzYWdlLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuIG51bGxcblxuICBpZiAoSElUTF9UT09MX0FDVElWSVRZX0tFWVNbbm9ybWFsaXplZF0pIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZFxuICB9XG5cbiAgY29uc3QgYXNUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShub3JtYWxpemVkLnJlcGxhY2UoL1xccysvZywgJ18nKSlcbiAgaWYgKEhJVExfVE9PTF9BQ1RJVklUWV9LRVlTW2FzVG9vbE5hbWVdKSB7XG4gICAgcmV0dXJuIGFzVG9vbE5hbWVcbiAgfVxuXG4gIGNvbnN0IG1hdGNoZWRUb29sID0gSElUTF9UT09MX05BTUVTX0JZX1NQRUNJRklDSVRZLmZpbmQodG9vbE5hbWUgPT4gbm9ybWFsaXplZC5pbmNsdWRlcyh0b29sTmFtZSkpXG4gIHJldHVybiBtYXRjaGVkVG9vbCA/PyBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBtYXBOb2RlTWVzc2FnZVRvU3RyZWFtQWN0aXZpdHkgPSAoXG4gIG5vZGVNZXNzYWdlOiBzdHJpbmcsXG4gIHQ6IFRyYW5zbGF0ZUZuLFxuICBvcHRpb25zPzogeyB1c2VSZXN1bWluZ0ZhbGxiYWNrPzogYm9vbGVhbiB9XG4pOiBTdHJlYW1BY3Rpdml0eSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub2RlTWVzc2FnZS50b0xvd2VyQ2FzZSgpXG5cbiAgY29uc3QgaGl0bFRvb2wgPSByZXNvbHZlSGl0bFRvb2xGcm9tTm9kZU1lc3NhZ2Uobm9kZU1lc3NhZ2UpXG4gIGlmIChoaXRsVG9vbCkge1xuICAgIHJldHVybiBtYXBIaXRsVG9vbE5hbWVUb1N0cmVhbUFjdGl2aXR5KGhpdGxUb29sLCB0LCBvcHRpb25zKVxuICB9XG5cbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ3Jlc3BvbnNlX2ZpbGVfZ2VuZXJhdGlvbicpIHx8XG4gICAgbm9ybWFsaXplZC5pbmNsdWRlcygnZ2VuZXJhbmRvIGFyY2hpdm8nKSB8fFxuICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ2dlbmVyYXRpbmcgZmlsZScpXG4gICkge1xuICAgIHJldHVybiB7IHBoYXNlOiAnYWN0aW9uJywgbWVzc2FnZTogdCgnY2hhdC5hY3Rpdml0eS5nZW5lcmF0aW5nRmlsZScpIH1cbiAgfVxuICBpZiAoXG4gICAgbm9ybWFsaXplZC5pbmNsdWRlcygndGF2aWx5JykgfHxcbiAgICBub3JtYWxpemVkLmluY2x1ZGVzKCdzZWFyY2hfd2ViJykgfHxcbiAgICBub3JtYWxpemVkLmluY2x1ZGVzKCdidXNjYW5kbyBlbiBsYSB3ZWInKSB8fFxuICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMoJ3NlYXJjaGluZyB0aGUgd2ViJylcbiAgKSB7XG4gICAgcmV0dXJuIHsgcGhhc2U6ICdzZWFyY2gnLCBtZXNzYWdlOiB0KFNFQVJDSF9NRVNTQUdFX0tFWVNbMF0pIH1cbiAgfVxuXG4gIGNvbnN0IHRyaW1tZWRNZXNzYWdlID0gbm9kZU1lc3NhZ2UudHJpbSgpXG4gIGlmICh0cmltbWVkTWVzc2FnZSAmJiAhaXNHZW5lcmljUmVzdW1lTm9kZU1lc3NhZ2UodHJpbW1lZE1lc3NhZ2UpICYmICFsb29rc0xpa2VSYXdUb29sTmFtZSh0cmltbWVkTWVzc2FnZSkpIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHRyaW1tZWRNZXNzYWdlIH1cbiAgfVxuXG4gIGlmIChpc0dlbmVyaWNSZXN1bWVOb2RlTWVzc2FnZSh0cmltbWVkTWVzc2FnZSkgfHwgb3B0aW9ucz8udXNlUmVzdW1pbmdGYWxsYmFjaykge1xuICAgIHJldHVybiB7IHBoYXNlOiAnYWN0aW9uJywgbWVzc2FnZTogdCgnY2hhdC5hY3Rpdml0eS5yZXN1bWluZ0FjdGlvbicpIH1cbiAgfVxuICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHQoJ2NoYXQuZXhlY3V0aW5nQWN0aW9uJykgfVxufVxuXG5leHBvcnQgdHlwZSBIaXRsRXhlY3V0aW9uQ29udGV4dCA9IHtcbiAgbWVzc2FnZUlkPzogc3RyaW5nXG4gIG1lc3NhZ2VUZXh0Pzogc3RyaW5nXG4gIGFwcHJvdmFsPzogQXBwcm92YWxSZXF1ZXN0XG4gIHBlbmRpbmdBY3Rpb25zPzogUGVuZGluZ0FjdGlvbltdXG4gIHRocmVhZElkcz86IHN0cmluZ1tdXG59XG5cbmNvbnN0IHJlc29sdmVQZW5kaW5nQWN0aW9uc0ZvclRocmVhZCA9IChcbiAgY29udGV4dDogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICB0aHJlYWRJZD86IHN0cmluZ1xuKTogUGVuZGluZ0FjdGlvbltdID0+IHtcbiAgY29uc3QgcGVuZGluZyA9IGNvbnRleHQ/LnBlbmRpbmdBY3Rpb25zID8/IGNvbnRleHQ/LmFwcHJvdmFsPy5wZW5kaW5nX2FjdGlvbnMgPz8gW11cbiAgaWYgKCFwZW5kaW5nLmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgaWYgKHRocmVhZElkKSB7XG4gICAgY29uc3QgZm9yVGhyZWFkID0gcGVuZGluZy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbi50aHJlYWRfaWQgPT09IHRocmVhZElkKVxuICAgIGlmIChmb3JUaHJlYWQubGVuZ3RoKSByZXR1cm4gZm9yVGhyZWFkXG4gIH1cblxuICBpZiAoY29udGV4dD8udGhyZWFkSWRzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gcGVuZGluZy5maWx0ZXIoYWN0aW9uID0+IGNvbnRleHQudGhyZWFkSWRzPy5pbmNsdWRlcyhhY3Rpb24udGhyZWFkX2lkKSlcbiAgfVxuXG4gIHJldHVybiBwZW5kaW5nXG59XG5cbmNvbnN0IGRldGVjdFRvb2xzRnJvbVBlbmRpbmdBY3Rpb25zID0gKGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXSk6IHN0cmluZ1tdID0+IFtcbiAgLi4ubmV3IFNldChhY3Rpb25zLm1hcChhY3Rpb24gPT4gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGFjdGlvbi50b29sX25hbWUpKS5maWx0ZXIoQm9vbGVhbikpLFxuXVxuXG4vKiogUmVzdWVsdmUgaW5kaWNhZG9yIEhJVEwgcHJpb3JpemFuZG8gcGVuZGluZ19hY3Rpb25zIGRlbCBtZW5zYWplIGRlIGFwcm9iYWNpw7NuIGFudGVyaW9yLiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIaXRsTm9kZVN0cmVhbUFjdGl2aXR5ID0gKFxuICBub2RlTWVzc2FnZTogc3RyaW5nLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgY29udGV4dD86IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbCxcbiAgdGhyZWFkSWQ/OiBzdHJpbmcsXG4gIG9wdGlvbnM/OiB7IHVzZVJlc3VtaW5nRmFsbGJhY2s/OiBib29sZWFuIH1cbik6IFN0cmVhbUFjdGl2aXR5ID0+IHtcbiAgY29uc3QgcGVuZGluZ0ZvclRocmVhZCA9IHJlc29sdmVQZW5kaW5nQWN0aW9uc0ZvclRocmVhZChjb250ZXh0LCB0aHJlYWRJZClcbiAgY29uc3QgZGV0ZWN0ZWRUb29scyA9IGRldGVjdFRvb2xzRnJvbVBlbmRpbmdBY3Rpb25zKHBlbmRpbmdGb3JUaHJlYWQpXG5cbiAgY29uc3QgdHJpbW1lZE5vZGVNZXNzYWdlID0gbm9kZU1lc3NhZ2UudHJpbSgpXG4gIGNvbnN0IGlzUmF3ID0gbG9va3NMaWtlUmF3VG9vbE5hbWUodHJpbW1lZE5vZGVNZXNzYWdlKVxuICBjb25zdCBpc0dlbmVyaWMgPSBpc0dlbmVyaWNSZXN1bWVOb2RlTWVzc2FnZSh0cmltbWVkTm9kZU1lc3NhZ2UpXG4gIC8vIEVsIGJhY2tlbmQgZW52w61hIGZyYXNlcyBjb21vIFwiRWplY3V0YW5kbyBhc3NpZ25fdGFza19sYWJlbC4uLlwiIHF1ZSBjb250aWVuZW4gZWwgbm9tYnJlXG4gIC8vIGNydWRvIGRlIGxhIHRvb2wg4oCUIG5vIHNvbiBtZW5zYWplcyBsZWdpYmxlcy4gU2kgZWwgbWVuc2FqZSBjb250aWVuZSBhbGd1bm8gZGUgbG9zIHRvb2xzXG4gIC8vIGRldGVjdGFkb3MsIHByZWZlcmltb3MgZWwgbWFwZW8gZGVsIGRpY2Npb25hcmlvLlxuICBjb25zdCBub2RlTWVzc2FnZUNvbnRhaW5zVG9vbCA9XG4gICAgZGV0ZWN0ZWRUb29scy5sZW5ndGggPj0gMSAmJiBkZXRlY3RlZFRvb2xzLnNvbWUodG9vbCA9PiB0cmltbWVkTm9kZU1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0b29sKSlcbiAgY29uc3QgYWN0aXZpdHlGcm9tTm9kZU1lc3NhZ2UgPVxuICAgIHRyaW1tZWROb2RlTWVzc2FnZSAmJiAhaXNHZW5lcmljICYmICFpc1JhdyAmJiAhbm9kZU1lc3NhZ2VDb250YWluc1Rvb2xcbiAgICAgID8geyBwaGFzZTogJ2FjdGlvbicgYXMgY29uc3QsIG1lc3NhZ2U6IHRyaW1tZWROb2RlTWVzc2FnZSB9XG4gICAgICA6IG51bGxcblxuICBpZiAoZGV0ZWN0ZWRUb29scy5sZW5ndGggPj0gMSkge1xuICAgIGlmIChhY3Rpdml0eUZyb21Ob2RlTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIGFjdGl2aXR5RnJvbU5vZGVNZXNzYWdlXG4gICAgfVxuICAgIHJldHVybiBtYXBIaXRsVG9vbE5hbWVUb1N0cmVhbUFjdGl2aXR5KGRldGVjdGVkVG9vbHNbMF0sIHQsIG9wdGlvbnMpXG4gIH1cblxuICByZXR1cm4gbWFwTm9kZU1lc3NhZ2VUb1N0cmVhbUFjdGl2aXR5KG5vZGVNZXNzYWdlLCB0LCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHkgPSAoXG4gIHQ6IFRyYW5zbGF0ZUZuLFxuICBjb250ZXh0PzogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsXG4pOiBTdHJlYW1BY3Rpdml0eSA9PiB7XG4gIGNvbnN0IHBlbmRpbmdBY3Rpb25zID0gcmVzb2x2ZVBlbmRpbmdBY3Rpb25zRm9yVGhyZWFkKGNvbnRleHQpXG4gIGNvbnN0IGRldGVjdGVkVG9vbHMgPSBkZXRlY3RUb29sc0Zyb21QZW5kaW5nQWN0aW9ucyhwZW5kaW5nQWN0aW9ucylcblxuICBpZiAoZGV0ZWN0ZWRUb29scy5sZW5ndGggPj0gMSkge1xuICAgIHJldHVybiBtYXBIaXRsVG9vbE5hbWVUb1N0cmVhbUFjdGl2aXR5KGRldGVjdGVkVG9vbHNbMF0sIHQsIHsgdXNlUmVzdW1pbmdGYWxsYmFjazogdHJ1ZSB9KVxuICB9XG5cbiAgcmV0dXJuIHsgcGhhc2U6ICdwcm9jZXNzaW5nJywgbWVzc2FnZTogdCgnY2hhdC5wcm9jZXNzaW5nJykgfVxufVxuXG5leHBvcnQgY29uc3QgQUNUSVZJVFlfTUVTU0FHRV9ST1RBVEVfTVMgPSAzMjAwXG5cbmNvbnN0IFJPVEFUQUJMRV9QSEFTRVM6IFN0cmVhbUFjdGl2aXR5UGhhc2VbXSA9IFsnZ2VuZXJhdGluZycsICd0aGlua2luZycsICdzZWFyY2gnLCAnZGVlcF9zZWFyY2gnLCAnYXR0YWNobWVudCddXG5cbmNvbnN0IGdldE1lc3NhZ2VLZXlzRm9yUGhhc2UgPSAocGhhc2U6IFN0cmVhbUFjdGl2aXR5UGhhc2UsIGF0dGFjaG1lbnRzQ291bnQgPSAwKTogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsID0+IHtcbiAgc3dpdGNoIChwaGFzZSkge1xuICAgIGNhc2UgJ2dlbmVyYXRpbmcnOlxuICAgICAgcmV0dXJuIEdFTkVSQVRJTkdfTUVTU0FHRV9LRVlTXG4gICAgY2FzZSAndGhpbmtpbmcnOlxuICAgICAgcmV0dXJuIFRISU5LSU5HX01FU1NBR0VfS0VZU1xuICAgIGNhc2UgJ3NlYXJjaCc6XG4gICAgICByZXR1cm4gU0VBUkNIX01FU1NBR0VfS0VZU1xuICAgIGNhc2UgJ2RlZXBfc2VhcmNoJzpcbiAgICAgIHJldHVybiBERUVQX1NFQVJDSF9NRVNTQUdFX0tFWVNcbiAgICBjYXNlICdhdHRhY2htZW50JzpcbiAgICAgIHJldHVybiBhdHRhY2htZW50c0NvdW50ID4gMSA/IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTX1BMVVJBTCA6IEFUVEFDSE1FTlRfTUVTU0FHRV9LRVlTXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFN0cmVhbUFjdGl2aXR5TWVzc2FnZUF0SW5kZXggPSAoXG4gIHBoYXNlOiBTdHJlYW1BY3Rpdml0eVBoYXNlLFxuICBpbmRleDogbnVtYmVyLFxuICB0OiBUcmFuc2xhdGVGbixcbiAgYXR0YWNobWVudHNDb3VudCA9IDBcbik6IHN0cmluZyA9PiB7XG4gIGlmIChwaGFzZSA9PT0gJ3dyaXRpbmcnKSB7XG4gICAgcmV0dXJuIHQoV1JJVElOR19BQ1RJVklUWV9NRVNTQUdFX0tFWSlcbiAgfVxuXG4gIGNvbnN0IGtleXMgPSBnZXRNZXNzYWdlS2V5c0ZvclBoYXNlKHBoYXNlLCBhdHRhY2htZW50c0NvdW50KVxuICBpZiAoIWtleXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgY2xhbXBlZEluZGV4ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgaW5kZXgpLCBrZXlzLmxlbmd0aCAtIDEpXG4gIHJldHVybiB0KGtleXNbY2xhbXBlZEluZGV4XSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRoaW5raW5nTG9hZGluZ01lc3NhZ2UgPSAoaW5kZXg6IG51bWJlciwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT5cbiAgZ2V0U3RyZWFtQWN0aXZpdHlNZXNzYWdlQXRJbmRleCgndGhpbmtpbmcnLCBpbmRleCwgdClcblxuZXhwb3J0IGNvbnN0IGdldEdlbmVyYXRpbmdMb2FkaW5nTWVzc2FnZSA9IChpbmRleDogbnVtYmVyLCB0OiBUcmFuc2xhdGVGbik6IHN0cmluZyA9PlxuICBnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4KCdnZW5lcmF0aW5nJywgaW5kZXgsIHQpXG5cbmV4cG9ydCBjb25zdCBjYW5BZHZhbmNlU3RyZWFtQWN0aXZpdHlNZXNzYWdlID0gKHBoYXNlOiBTdHJlYW1BY3Rpdml0eVBoYXNlLCBjdXJyZW50SW5kZXg6IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBrZXlzID0gZ2V0TWVzc2FnZUtleXNGb3JQaGFzZShwaGFzZSlcbiAgaWYgKCFrZXlzKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGN1cnJlbnRJbmRleCA8IGtleXMubGVuZ3RoIC0gMVxufVxuXG5leHBvcnQgY29uc3QgYWR2YW5jZVN0cmVhbUFjdGl2aXR5TWVzc2FnZSA9IChcbiAgYWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5LFxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgdDogVHJhbnNsYXRlRm5cbik6IHsgYWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5OyBuZXh0SW5kZXg6IG51bWJlciB9IHwgbnVsbCA9PiB7XG4gIGlmICghY2FuQWR2YW5jZVN0cmVhbUFjdGl2aXR5TWVzc2FnZShhY3Rpdml0eS5waGFzZSwgY3VycmVudEluZGV4KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyAxXG4gIHJldHVybiB7XG4gICAgYWN0aXZpdHk6IHtcbiAgICAgIHBoYXNlOiBhY3Rpdml0eS5waGFzZSxcbiAgICAgIG1lc3NhZ2U6IGdldFN0cmVhbUFjdGl2aXR5TWVzc2FnZUF0SW5kZXgoYWN0aXZpdHkucGhhc2UsIG5leHRJbmRleCwgdCwgYWN0aXZpdHkuYXR0YWNobWVudHNDb3VudCksXG4gICAgICAuLi4oYWN0aXZpdHkuYXR0YWNobWVudHNDb3VudCAhPSBudWxsICYmIHsgYXR0YWNobWVudHNDb3VudDogYWN0aXZpdHkuYXR0YWNobWVudHNDb3VudCB9KSxcbiAgICB9LFxuICAgIG5leHRJbmRleCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2FuUm90YXRlU3RyZWFtQWN0aXZpdHlQaGFzZSA9IChwaGFzZTogU3RyZWFtQWN0aXZpdHlQaGFzZSk6IGJvb2xlYW4gPT4gUk9UQVRBQkxFX1BIQVNFUy5pbmNsdWRlcyhwaGFzZSlcblxuZXhwb3J0IGNvbnN0IGdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSA9ICh0OiBUcmFuc2xhdGVGbik6IFN0cmVhbUFjdGl2aXR5ID0+ICh7XG4gIHBoYXNlOiAnd3JpdGluZycsXG4gIG1lc3NhZ2U6IHQoV1JJVElOR19BQ1RJVklUWV9NRVNTQUdFX0tFWSksXG59KVxuXG5leHBvcnQgY29uc3QgZ2V0SW5pdGlhbFN0cmVhbUFjdGl2aXR5ID0gKFxuICB0OiBUcmFuc2xhdGVGbixcbiAgb3B0aW9uczoge1xuICAgIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBoYXNBdHRhY2htZW50cz86IGJvb2xlYW5cbiAgICBhdHRhY2htZW50c0NvdW50PzogbnVtYmVyXG4gIH1cbik6IFN0cmVhbUFjdGl2aXR5ID0+IHtcbiAgaWYgKG9wdGlvbnMuaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICByZXR1cm4geyBwaGFzZTogJ3NlYXJjaCcsIG1lc3NhZ2U6IHQoU0VBUkNIX01FU1NBR0VfS0VZU1swXSkgfVxuICB9XG4gIGlmIChvcHRpb25zLmlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgIHJldHVybiB7IHBoYXNlOiAnZGVlcF9zZWFyY2gnLCBtZXNzYWdlOiB0KERFRVBfU0VBUkNIX01FU1NBR0VfS0VZU1swXSkgfVxuICB9XG4gIGlmIChvcHRpb25zLmhhc0F0dGFjaG1lbnRzKSB7XG4gICAgY29uc3QgYXR0YWNobWVudHNDb3VudCA9IG9wdGlvbnMuYXR0YWNobWVudHNDb3VudCA/PyAwXG4gICAgcmV0dXJuIHtcbiAgICAgIHBoYXNlOiAnYXR0YWNobWVudCcsXG4gICAgICBtZXNzYWdlOiBnZXRTdHJlYW1BY3Rpdml0eU1lc3NhZ2VBdEluZGV4KCdhdHRhY2htZW50JywgMCwgdCwgYXR0YWNobWVudHNDb3VudCksXG4gICAgICBhdHRhY2htZW50c0NvdW50LFxuICAgIH1cbiAgfVxuICByZXR1cm4geyBwaGFzZTogJ2dlbmVyYXRpbmcnLCBtZXNzYWdlOiB0KEdFTkVSQVRJTkdfTUVTU0FHRV9LRVlTWzBdKSB9XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlU3RyZWFtTG9hZGluZ0Rpc3BsYXkgPSAocGFyYW1zOiB7XG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGxcbiAgbG9hZGluZ01lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgYWN0aXZlTG9hZGluZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgd2FpdGluZ1Jlc3BvbnNlOiBib29sZWFuXG4gIGlzV2ViU2VhcmNoQWN0aXZlOiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZTogYm9vbGVhblxuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICBhdHRhY2htZW50c0NvdW50PzogbnVtYmVyXG4gIHQ6IFRyYW5zbGF0ZUZuXG59KTogU3RyZWFtQWN0aXZpdHkgfCBudWxsID0+IHtcbiAgaWYgKHBhcmFtcy5zdHJlYW1BY3Rpdml0eSkge1xuICAgIHJldHVybiBwYXJhbXMuc3RyZWFtQWN0aXZpdHlcbiAgfVxuXG4gIGNvbnN0IGFjdGl2ZUtleXMgPSBPYmplY3Qua2V5cyhwYXJhbXMuYWN0aXZlTG9hZGluZ3MpXG4gIGlmIChhY3RpdmVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBmaXJzdEtleSA9IGFjdGl2ZUtleXNbMF1cbiAgICBjb25zdCByYXcgPSBwYXJhbXMuYWN0aXZlTG9hZGluZ3NbZmlyc3RLZXldXG4gICAgaWYgKHJhdyAmJiByYXcgIT09IHBhcmFtcy50KCdjaGF0LnByb2Nlc3NpbmcnKSkge1xuICAgICAgY29uc3QgaGl0bFRvb2wgPSByZXNvbHZlSGl0bFRvb2xGcm9tTm9kZU1lc3NhZ2UocmF3KVxuICAgICAgaWYgKGhpdGxUb29sKSB7XG4gICAgICAgIHJldHVybiBtYXBIaXRsVG9vbE5hbWVUb1N0cmVhbUFjdGl2aXR5KGhpdGxUb29sLCBwYXJhbXMudClcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJpbW1lZCA9IHJhdy50cmltKClcbiAgICAgIGlmICh0cmltbWVkICYmICFpc0dlbmVyaWNSZXN1bWVOb2RlTWVzc2FnZSh0cmltbWVkKSkge1xuICAgICAgICByZXR1cm4geyBwaGFzZTogJ2FjdGlvbicsIG1lc3NhZ2U6IHRyaW1tZWQgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWFwTm9kZU1lc3NhZ2VUb1N0cmVhbUFjdGl2aXR5KHJhdywgcGFyYW1zLnQsIHsgdXNlUmVzdW1pbmdGYWxsYmFjazogdHJ1ZSB9KVxuICAgIH1cbiAgICByZXR1cm4geyBwaGFzZTogJ3Byb2Nlc3NpbmcnLCBtZXNzYWdlOiBwYXJhbXMudCgnY2hhdC5wcm9jZXNzaW5nJykgfVxuICB9XG5cbiAgaWYgKHBhcmFtcy5sb2FkaW5nTWVzc2FnZSkge1xuICAgIGlmIChcbiAgICAgIHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQud3JpdGluZycpIHx8XG4gICAgICBwYXJhbXMubG9hZGluZ01lc3NhZ2UgPT09IHBhcmFtcy50KFdSSVRJTkdfQUNUSVZJVFlfTUVTU0FHRV9LRVkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZ2V0V3JpdGluZ1N0cmVhbUFjdGl2aXR5KHBhcmFtcy50KVxuICAgIH1cbiAgICBpZiAocGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudCgnY2hhdC5nZW5lcmF0aW5nJykpIHtcbiAgICAgIHJldHVybiB7IHBoYXNlOiAnZ2VuZXJhdGluZycsIG1lc3NhZ2U6IHBhcmFtcy5sb2FkaW5nTWVzc2FnZSB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZ1dlYlNlYXJjaCcpIHx8XG4gICAgICBwYXJhbXMubG9hZGluZ01lc3NhZ2UgPT09IHBhcmFtcy50KCdjaGF0LmdlbmVyYXRpbmdEZWVwU2VhcmNoJykgfHxcbiAgICAgIHBhcmFtcy5sb2FkaW5nTWVzc2FnZSA9PT0gcGFyYW1zLnQoJ2NoYXQuZ2VuZXJhdGluZ0F0dGFjaG1lbnQnKVxuICAgICkge1xuICAgICAgcmV0dXJuIGdldEluaXRpYWxTdHJlYW1BY3Rpdml0eShwYXJhbXMudCwge1xuICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogcGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudCgnY2hhdC5nZW5lcmF0aW5nV2ViU2VhcmNoJyksXG4gICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogcGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudCgnY2hhdC5nZW5lcmF0aW5nRGVlcFNlYXJjaCcpLFxuICAgICAgICBoYXNBdHRhY2htZW50czogcGFyYW1zLmxvYWRpbmdNZXNzYWdlID09PSBwYXJhbXMudCgnY2hhdC5nZW5lcmF0aW5nQXR0YWNobWVudCcpLFxuICAgICAgICBhdHRhY2htZW50c0NvdW50OiBwYXJhbXMuYXR0YWNobWVudHNDb3VudCxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB7IHBoYXNlOiAnYWN0aW9uJywgbWVzc2FnZTogcGFyYW1zLmxvYWRpbmdNZXNzYWdlIH1cbiAgfVxuXG4gIGlmIChwYXJhbXMud2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGdldEluaXRpYWxTdHJlYW1BY3Rpdml0eShwYXJhbXMudCwge1xuICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IHBhcmFtcy5pc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogcGFyYW1zLmlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICAgIGhhc0F0dGFjaG1lbnRzOiBwYXJhbXMuaGFzQXR0YWNobWVudHMsXG4gICAgICBhdHRhY2htZW50c0NvdW50OiBwYXJhbXMuYXR0YWNobWVudHNDb3VudCxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGlzU3RyZWFtaW5nUGxhY2Vob2xkZXJNZXNzYWdlSWQgPSAobWVzc2FnZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+XG4gIHR5cGVvZiBtZXNzYWdlSWQgPT09ICdzdHJpbmcnICYmIG1lc3NhZ2VJZC5pbmNsdWRlcygnLXN0cmVhbWluZycpXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxTQUFTQSxxQkFBcUIsUUFBUSxpQkFBaUI7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S0FBS1AsTUFBTSxDQUFDOUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7TUFDekQsT0FBTztRQUFFRyxLQUFLLEVBQUUsWUFBWTtRQUFFWixPQUFPLEVBQUV1RixNQUFNLENBQUNPO01BQWUsQ0FBQztJQUNoRTtJQUNBLElBQ0VQLE1BQU0sQ0FBQ08sY0FBYyxLQUFLUCxNQUFNLENBQUM5RSxDQUFDLENBQUMsMEJBQTBCLENBQUMsSUFDOUQ4RSxNQUFNLENBQUNPLGNBQWMsS0FBS1AsTUFBTSxDQUFDOUUsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLElBQy9EOEUsTUFBTSxDQUFDTyxjQUFjLEtBQUtQLE1BQU0sQ0FBQzlFLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxFQUMvRDtNQUNBLE9BQU93RSx3QkFBd0IsQ0FBQ00sTUFBTSxDQUFDOUUsQ0FBQyxFQUFFO1FBQ3hDeUUsaUJBQWlCLEVBQUVLLE1BQU0sQ0FBQ08sY0FBYyxLQUFLUCxNQUFNLENBQUM5RSxDQUFDLENBQUMsMEJBQTBCLENBQUM7UUFDakYwRSxrQkFBa0IsRUFBRUksTUFBTSxDQUFDTyxjQUFjLEtBQUtQLE1BQU0sQ0FBQzlFLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztRQUNuRjJFLGNBQWMsRUFBRUcsTUFBTSxDQUFDTyxjQUFjLEtBQUtQLE1BQU0sQ0FBQzlFLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztRQUMvRXFELGdCQUFnQixFQUFFeUIsTUFBTSxDQUFDekI7TUFDM0IsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxPQUFPO01BQUVsRCxLQUFLLEVBQUUsUUFBUTtNQUFFWixPQUFPLEVBQUV1RixNQUFNLENBQUNPO0lBQWUsQ0FBQztFQUM1RDtFQUVBLElBQUlQLE1BQU0sQ0FBQ1EsZUFBZSxFQUFFO0lBQzFCLE9BQU9kLHdCQUF3QixDQUFDTSxNQUFNLENBQUM5RSxDQUFDLEVBQUU7TUFDeEN5RSxpQkFBaUIsRUFBRUssTUFBTSxDQUFDTCxpQkFBaUI7TUFDM0NDLGtCQUFrQixFQUFFSSxNQUFNLENBQUNKLGtCQUFrQjtNQUM3Q0MsY0FBYyxFQUFFRyxNQUFNLENBQUNILGNBQWM7TUFDckN0QixnQkFBZ0IsRUFBRXlCLE1BQU0sQ0FBQ3pCO0lBQzNCLENBQUMsQ0FBQztFQUNKO0VBRUEsT0FBTyxJQUFJO0FBQ2IsQ0FBQztBQUVELE9BQU8sSUFBTWtDLCtCQUErQixHQUFHLFNBQWxDQSwrQkFBK0JBLENBQUlDLFNBQTZCO0VBQUEsT0FDM0UsT0FBT0EsU0FBUyxLQUFLLFFBQVEsSUFBSUEsU0FBUyxDQUFDN0UsUUFBUSxDQUFDLFlBQVksQ0FBQztBQUFBIiwiaWdub3JlTGlzdCI6W119
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectcor/maia-components",
|
|
3
|
-
"version": "2.11.94
|
|
3
|
+
"version": "2.11.94",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"build:local": "npm run build:babel && npm run clean:web && npm run copy:web",
|
|
19
19
|
"build:webpack": "NODE_ENV=production webpack --mode production",
|
|
20
20
|
"clean": "rm -rf lib",
|
|
21
|
-
"clean:web": "rm -Rf ~/cor/dockerEnviroment/web/node_modules/@projectcor/
|
|
22
|
-
"copy:web": "cp -R ./lib ~/cor/dockerEnviroment/web/node_modules/@projectcor/
|
|
21
|
+
"clean:web": "rm -Rf ~/cor/dockerEnviroment/web/node_modules/@projectcor/[REPLACE_WITH_YOUR_LIBRARY_NAME]/lib",
|
|
22
|
+
"copy:web": "cp -R ./lib ~/cor/dockerEnviroment/web/node_modules/@projectcor/[REPLACE_WITH_YOUR_LIBRARY_NAME]/lib",
|
|
23
23
|
"eslint": "eslint \"src/**/*.{ts,tsx,js}\"",
|
|
24
24
|
"prepare": "husky install || true",
|
|
25
25
|
"start": "node scripts/auth-and-start.js",
|
|
@@ -37,32 +37,37 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@streamdown/code": "^1.0.1",
|
|
40
|
-
"
|
|
40
|
+
"dompurify": "3.4.13",
|
|
41
|
+
"mammoth": "1.12.0",
|
|
42
|
+
"mermaid": "11.16.1",
|
|
41
43
|
"rehype-sanitize": "^6.0.0",
|
|
42
44
|
"streamdown": "^2.1.0",
|
|
43
45
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
44
46
|
"zustand": "^4.* || ^5.*"
|
|
45
47
|
},
|
|
46
48
|
"overrides": {
|
|
47
|
-
"brace-expansion@1": "1.1.
|
|
48
|
-
"brace-expansion@2": "2.1.
|
|
49
|
+
"brace-expansion@1": "1.1.18",
|
|
50
|
+
"brace-expansion@2": "2.1.4",
|
|
49
51
|
"brace-expansion@5": "5.0.8",
|
|
50
52
|
"body-parser": "^1.20.6",
|
|
51
53
|
"@babel/plugin-transform-modules-systemjs": "^7.29.7",
|
|
52
54
|
"@tootallnate/once": "^3.0.1",
|
|
53
|
-
"
|
|
55
|
+
"dompurify": "3.4.13",
|
|
56
|
+
"fast-uri": "3.1.5",
|
|
54
57
|
"flatted": "^3.4.2",
|
|
55
58
|
"follow-redirects": "^1.16.0",
|
|
56
59
|
"form-data": "^4.0.6",
|
|
57
60
|
"got": "^11.8.6",
|
|
58
61
|
"handlebars": "^4.7.9",
|
|
59
62
|
"http-proxy-middleware": "^2.0.10",
|
|
60
|
-
"js-yaml@3": "3.15.
|
|
61
|
-
"js-yaml@4": "4.3.
|
|
63
|
+
"js-yaml@3": "3.15.1",
|
|
64
|
+
"js-yaml@4": "4.3.1",
|
|
62
65
|
"jszip": "^3.10.1",
|
|
63
66
|
"lodash": "^4.18.1",
|
|
64
67
|
"lodash@3": "4.18.1",
|
|
65
|
-
"
|
|
68
|
+
"mermaid": "11.16.1",
|
|
69
|
+
"minimatch@9": "9.0.7",
|
|
70
|
+
"nanoid": "3.3.18",
|
|
66
71
|
"node-forge": "^1.4.0",
|
|
67
72
|
"path-to-regexp@0.1": "0.1.13",
|
|
68
73
|
"pdfjs-dist": "4.10.38",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { SCSessionGeneratingDot } from './SessionGeneratingDot.styles';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
/** Indicador compacto de sesión generando respuesta (sidebar). */
|
|
4
|
-
export var SessionGeneratingDot = function SessionGeneratingDot(_ref) {
|
|
5
|
-
var ariaLabel = _ref.ariaLabel,
|
|
6
|
-
_ref$isWriting = _ref.isWriting,
|
|
7
|
-
isWriting = _ref$isWriting === void 0 ? false : _ref$isWriting,
|
|
8
|
-
className = _ref.className;
|
|
9
|
-
return /*#__PURE__*/_jsx(SCSessionGeneratingDot, {
|
|
10
|
-
$writing: isWriting,
|
|
11
|
-
className: className,
|
|
12
|
-
role: "status",
|
|
13
|
-
"aria-live": "polite",
|
|
14
|
-
"aria-label": ariaLabel
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQ1Nlc3Npb25HZW5lcmF0aW5nRG90IiwianN4IiwiX2pzeCIsIlNlc3Npb25HZW5lcmF0aW5nRG90IiwiX3JlZiIsImFyaWFMYWJlbCIsIl9yZWYkaXNXcml0aW5nIiwiaXNXcml0aW5nIiwiY2xhc3NOYW1lIiwiJHdyaXRpbmciLCJyb2xlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvU2Vzc2lvbkdlbmVyYXRpbmdEb3QvU2Vzc2lvbkdlbmVyYXRpbmdEb3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNDU2Vzc2lvbkdlbmVyYXRpbmdEb3QgfSBmcm9tICcuL1Nlc3Npb25HZW5lcmF0aW5nRG90LnN0eWxlcydcblxuZXhwb3J0IHR5cGUgU2Vzc2lvbkdlbmVyYXRpbmdEb3RQcm9wcyA9IHtcbiAgLyoqIEV0aXF1ZXRhIGFjY2VzaWJsZSAoaTE4bikuICovXG4gIGFyaWFMYWJlbDogc3RyaW5nXG4gIC8qKiBSaXRtbyBtw6FzIHLDoXBpZG8gY3VhbmRvIHlhIGhheSB0b2tlbnMgZW4gdnVlbG8uICovXG4gIGlzV3JpdGluZz86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbi8qKiBJbmRpY2Fkb3IgY29tcGFjdG8gZGUgc2VzacOzbiBnZW5lcmFuZG8gcmVzcHVlc3RhIChzaWRlYmFyKS4gKi9cbmV4cG9ydCBjb25zdCBTZXNzaW9uR2VuZXJhdGluZ0RvdCA9ICh7IGFyaWFMYWJlbCwgaXNXcml0aW5nID0gZmFsc2UsIGNsYXNzTmFtZSB9OiBTZXNzaW9uR2VuZXJhdGluZ0RvdFByb3BzKSA9PiAoXG4gIDxTQ1Nlc3Npb25HZW5lcmF0aW5nRG90XG4gICAgJHdyaXRpbmc9e2lzV3JpdGluZ31cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICByb2xlPVwic3RhdHVzXCJcbiAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgLz5cbilcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esc0JBQXNCLFFBQVEsK0JBQStCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBVXRFO0FBQ0EsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBQyxJQUFBO0VBQUEsSUFBTUMsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7SUFBQUMsY0FBQSxHQUFBRixJQUFBLENBQUVHLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0lBQUVFLFNBQVMsR0FBQUosSUFBQSxDQUFUSSxTQUFTO0VBQUEsb0JBQzVFTixJQUFBLENBQUNGLHNCQUFzQjtJQUNyQlMsUUFBUSxFQUFFRixTQUFVO0lBQ3BCQyxTQUFTLEVBQUVBLFNBQVU7SUFDckJFLElBQUksRUFBQyxRQUFRO0lBQ2IsYUFBVSxRQUFRO0lBQ2xCLGNBQVlMO0VBQVUsQ0FDdkIsQ0FBQztBQUFBLENBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import styled, { css, keyframes } from 'styled-components';
|
|
2
|
-
var dotPulse = keyframes(["0%,100%{opacity:0.35;transform:scale(0.82);}50%{opacity:1;transform:scale(1);}"]);
|
|
3
|
-
|
|
4
|
-
/** Punto animado para sesiones que están generando respuesta en el sidebar. */
|
|
5
|
-
export var SCSessionGeneratingDot = styled.span.withConfig({
|
|
6
|
-
displayName: "SessionGeneratingDotstyles__SCSessionGeneratingDot",
|
|
7
|
-
componentId: "sc-nwmemt-0"
|
|
8
|
-
})(["flex-shrink:0;width:6px;height:6px;border-radius:50%;background-color:rgba(13,13,13,0.72);animation:", " ", " ease-in-out infinite;", ""], dotPulse, function (_ref) {
|
|
9
|
-
var $writing = _ref.$writing;
|
|
10
|
-
return $writing ? '0.85s' : '1.25s';
|
|
11
|
-
}, function (_ref2) {
|
|
12
|
-
var $writing = _ref2.$writing;
|
|
13
|
-
return $writing && css(["background-color:rgba(13,13,13,0.88);"]);
|
|
14
|
-
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJkb3RQdWxzZSIsIlNDU2Vzc2lvbkdlbmVyYXRpbmdEb3QiLCJzcGFuIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJHdyaXRpbmciLCJfcmVmMiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1Nlc3Npb25HZW5lcmF0aW5nRG90L1Nlc3Npb25HZW5lcmF0aW5nRG90LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmNvbnN0IGRvdFB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSxcbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC4zNTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODIpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbi8qKiBQdW50byBhbmltYWRvIHBhcmEgc2VzaW9uZXMgcXVlIGVzdMOhbiBnZW5lcmFuZG8gcmVzcHVlc3RhIGVuIGVsIHNpZGViYXIuICovXG5leHBvcnQgY29uc3QgU0NTZXNzaW9uR2VuZXJhdGluZ0RvdCA9IHN0eWxlZC5zcGFuPHsgJHdyaXRpbmc/OiBib29sZWFuIH0+YFxuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMywgMTMsIDEzLCAwLjcyKTtcbiAgYW5pbWF0aW9uOiAke2RvdFB1bHNlfSAkeyh7ICR3cml0aW5nIH0pID0+ICgkd3JpdGluZyA/ICcwLjg1cycgOiAnMS4yNXMnKX0gZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgJHsoeyAkd3JpdGluZyB9KSA9PlxuICAgICR3cml0aW5nICYmXG4gICAgY3NzYFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMywgMTMsIDEzLCAwLjg4KTtcbiAgICBgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUUxRCxJQUFNQyxRQUFRLEdBQUdELFNBQVMsb0ZBVXpCOztBQUVEO0FBQ0EsT0FBTyxJQUFNRSxzQkFBc0IsR0FBR0osTUFBTSxDQUFDSyxJQUFJLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0pBTWxDTCxRQUFRLEVBQUksVUFBQU0sSUFBQTtFQUFBLElBQUdDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0VBQUEsT0FBUUEsUUFBUSxHQUFHLE9BQU8sR0FBRyxPQUFPO0FBQUEsQ0FBQyxFQUV2RSxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsUUFBUSxHQUFBQyxLQUFBLENBQVJELFFBQVE7RUFBQSxPQUNYQSxRQUFRLElBQ1JULEdBQUcsMkNBRUY7QUFBQSxFQUNKIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { SessionGeneratingDot } from './SessionGeneratingDot';
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXNzaW9uR2VuZXJhdGluZ0RvdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1Nlc3Npb25HZW5lcmF0aW5nRG90L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNlc3Npb25HZW5lcmF0aW5nRG90IH0gZnJvbSAnLi9TZXNzaW9uR2VuZXJhdGluZ0RvdCdcbmV4cG9ydCB0eXBlIHsgU2Vzc2lvbkdlbmVyYXRpbmdEb3RQcm9wcyB9IGZyb20gJy4vU2Vzc2lvbkdlbmVyYXRpbmdEb3QnXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG9CQUFvQixRQUFRLHdCQUF3QiIsImlnbm9yZUxpc3QiOltdfQ==
|