@projectcor/maia-components 2.49.1-1 → 2.50.0-beta.1
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/README.md +2 -0
- package/lib/App.js +19 -44
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +1 -3
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +1 -3
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +14 -24
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +10 -28
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +15 -19
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +4 -8
- package/lib/components/atoms/ClientSelector/ClientSelector.js +13 -15
- package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.js +53 -0
- package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.styles.js +8 -0
- package/lib/components/atoms/ContextCompactedNotice/index.js +2 -0
- package/lib/components/atoms/Fade/Fade.js +6 -10
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +2 -3
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +2 -3
- package/lib/components/atoms/MAIAInput/MAIAInput.js +7 -14
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +4 -9
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +5 -4
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +24 -41
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +10 -25
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +43 -78
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +11 -9
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -37
- package/lib/components/index.js +1 -2
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +2 -3
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +4 -6
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +16 -25
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +72 -93
- package/lib/components/molecules/ChatAIHome/styles.js +78 -85
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +35 -42
- package/lib/components/molecules/ChatAIMessages/newStyles.js +35 -32
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +1 -8
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +8 -25
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +367 -63
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -10
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +2 -5
- package/lib/components/molecules/Sidebar/Sidebar.js +23 -41
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
- package/lib/components/organisms/ProjectSummary/ProjectSummary.js +7 -11
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +1 -4
- package/lib/constants/formatExtensions.js +8 -7
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +1 -4
- package/lib/dev/DevReasoningTimeline.js +86 -75
- package/lib/dev/Providers.js +3 -5
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -7
- package/lib/hooks/useChatManager/useChatManager.helpers.js +20 -9
- package/lib/hooks/useChatManager/useChatManager.js +21 -15
- package/lib/hooks/useEntitySearch.js +1 -3
- package/lib/hooks/useFrequentlyUsedActions.js +22 -60
- package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
- package/lib/hooks/useKnowledge/useKnowledgeOperations.js +15 -16
- package/lib/hooks/useProjectSummaryConfig.js +5 -10
- package/lib/hooks/useReasoningTrace/reasoningStore.js +39 -8
- package/lib/index.js +2 -5
- package/lib/lang/br/index.js +7 -26
- package/lib/lang/en/index.js +7 -26
- package/lib/lang/es/index.js +7 -26
- package/lib/lang/fr/index.js +7 -26
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Agents/connectors.js +1 -3
- package/lib/services/utils/mapChatMessages.helpers.js +12 -7
- package/lib/store/sessions/sessionStreamManager.js +101 -94
- package/lib/store/useChatsStore.js +3 -4
- package/lib/styles/cascade.js +3 -29
- package/lib/styles/transitions.js +1 -3
- package/lib/types/Chat.js +1 -1
- package/lib/types/contextCompaction.js +48 -0
- package/lib/types/global.d.js +1 -1
- package/lib/types/jest-dom.d.js +2 -0
- package/lib/types/reasoning.js +1 -1
- package/lib/utils/hoursPlannerQuickActionType.js +1 -74
- package/lib/utils/imagePreprocessor.js +3 -14
- package/lib/utils/navigateContextEntity.js +2 -2
- package/lib/utils/openTaskInCorPanel.js +2 -2
- package/lib/utils/streamActivityMessages.helpers.js +4 -5
- package/lib/utils/streamActivityMessages.js +20 -32
- package/package.json +2 -2
- package/lib/components/atoms/ActionableButton.spec.js +0 -111
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
- package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.spec.js +0 -63
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -183
- package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -139
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -385
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -94
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -396
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -526
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -169
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
- package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
- package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
- package/lib/components/atoms/Chip/Chip.spec.js +0 -82
- package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
- package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +0 -45
- package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -133
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -109
- package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -92
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -319
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
- package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
- package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
- package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
- package/lib/components/atoms/Expand/Expand.spec.js +0 -57
- package/lib/components/atoms/Fade/Fade.spec.js +0 -66
- package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
- package/lib/components/atoms/HelpButton.spec.js +0 -87
- package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
- package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
- package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
- package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
- package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +0 -113
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -381
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -641
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -92
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -193
- package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -32
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
- package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
- package/lib/components/atoms/NextPageLoader.spec.js +0 -37
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -146
- package/lib/components/atoms/PrimaryButton.spec.js +0 -42
- package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -170
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -199
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
- package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -8
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +0 -29
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +0 -38
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +0 -71
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -120
- package/lib/components/atoms/Switch/Switch.spec.js +0 -41
- package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
- package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +0 -25
- package/lib/components/atoms/TextArea/TextArea.spec.js +0 -126
- package/lib/components/atoms/ThirdButton.spec.js +0 -29
- package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
- package/lib/components/atoms/WithAppCfg.spec.js +0 -82
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -742
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -107
- package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -256
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -175
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -318
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
- package/lib/components/molecules/AgentInputBlock/index.js +0 -5
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
- package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
- package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
- package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +0 -622
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -264
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -742
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -541
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -1394
- package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -1401
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -142
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +0 -69
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +0 -144
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +0 -95
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +0 -174
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +0 -99
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +0 -65
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
- package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
- package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +0 -93
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -297
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +0 -62
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -221
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -369
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -104
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
- package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +0 -119
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -464
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -1067
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1236
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +0 -77
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -503
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -246
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -284
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -275
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -196
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -94
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -69
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
- package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
- package/lib/components/organisms/ChatAIPage/index.js +0 -3
- package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
- package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
- package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
- package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
- package/lib/constants/formatExtensions.spec.js +0 -14
- package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
- package/lib/constants/maiaFeatureAccess.spec.js +0 -30
- package/lib/constants/maiaHourAgentAccess.spec.js +0 -30
- package/lib/constants/maiaTaskPanelAccess.spec.js +0 -41
- package/lib/constants/permissions/clientRoleAccess.spec.js +0 -65
- package/lib/constants/permissions/utils.spec.js +0 -128
- package/lib/constants/plannerSyncEvents.spec.js +0 -31
- package/lib/constants/taskUrls.spec.js +0 -9
- package/lib/dev/DevMaiaPage.js +0 -30
- package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
- package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
- package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
- package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
- package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +0 -268
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -314
- package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -374
- package/lib/hooks/useAgentSuggestions.spec.js +0 -89
- package/lib/hooks/useCaretPosition.spec.js +0 -58
- package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -2027
- package/lib/hooks/useChatManager/useChatManager.spec.js +0 -2409
- package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -491
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -729
- package/lib/hooks/useChats/useChats.spec.js +0 -208
- package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
- package/lib/hooks/useClientSearch.spec.js +0 -86
- package/lib/hooks/useContextMentions.helpers.spec.js +0 -267
- package/lib/hooks/useContextMentions.spec.js +0 -338
- package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -183
- package/lib/hooks/useContextPinPopover.spec.js +0 -159
- package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
- package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
- package/lib/hooks/useDebounce.spec.js +0 -42
- package/lib/hooks/useEntitySearch.helpers.spec.js +0 -723
- package/lib/hooks/useEntitySearch.spec.js +0 -718
- package/lib/hooks/useEvent.spec.js +0 -45
- package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
- package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -135
- package/lib/hooks/useIsMaiaPageRoute.js +0 -26
- package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
- package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
- package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
- package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
- package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
- package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
- package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
- package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
- package/lib/hooks/useMentionPopover.helpers.spec.js +0 -100
- package/lib/hooks/useMentionPopover.spec.js +0 -392
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -176
- package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
- package/lib/hooks/useModal/useModal.spec.js +0 -73
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +0 -138
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -417
- package/lib/hooks/useProjectSearch.helpers.spec.js +0 -89
- package/lib/hooks/useProjectSearch.spec.js +0 -91
- package/lib/hooks/useProjectSummary.spec.js +0 -193
- package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -151
- package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
- package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
- package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
- package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
- package/lib/hooks/useRecentContexts.spec.js +0 -139
- package/lib/hooks/useResize.spec.js +0 -37
- package/lib/hooks/useSkillsCatalog.spec.js +0 -88
- package/lib/hooks/useSlashCommands.spec.js +0 -139
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
- package/lib/hooks/useStreamResponse.spec.js +0 -199
- package/lib/hooks/useT.spec.js +0 -20
- package/lib/hooks/useToggle.spec.js +0 -33
- package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
- package/lib/services/appcues.spec.js +0 -37
- package/lib/services/maia/Access/updateAccess.spec.js +0 -137
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -56
- package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
- package/lib/services/maia/Agents/connectors.spec.js +0 -496
- package/lib/services/maia/Agents/createAgent.spec.js +0 -55
- package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
- package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
- package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -325
- package/lib/services/maia/Agents/getAgents.spec.js +0 -1135
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
- package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
- package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
- package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
- package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
- package/lib/services/maia/Chats/patchChat.spec.js +0 -41
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
- package/lib/services/maia/Knowledge/delete.spec.js +0 -45
- package/lib/services/maia/Knowledge/download.spec.js +0 -78
- package/lib/services/maia/Knowledge/save.spec.js +0 -58
- package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -225
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
- package/lib/services/maia/Skills/createSkill.spec.js +0 -68
- package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
- package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
- package/lib/services/maia/Skills/getSkills.spec.js +0 -152
- package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
- package/lib/services/maia/client.spec.js +0 -56
- package/lib/services/utils/fetchCOR.spec.js +0 -211
- package/lib/services/utils/getCookie.spec.js +0 -20
- package/lib/services/utils/mapChatMessages.helpers.spec.js +0 -336
- package/lib/services/utils/mapChatMessages.spec.js +0 -254
- package/lib/store/chatsSidebarOptimistic.spec.js +0 -145
- package/lib/store/maiaLastChatPersistence.spec.js +0 -22
- package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
- package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
- package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
- package/lib/store/sessions/sessionNotifications.spec.js +0 -106
- package/lib/store/sessions/sessionStreamManager.helpers.spec.js +0 -177
- package/lib/store/sessions/sessionStreamManager.spec.js +0 -939
- package/lib/store/sessions/sessions.types.spec.js +0 -16
- package/lib/store/sessions/useSessionsStore.spec.js +0 -135
- package/lib/store/useChatsStore.spec.js +0 -619
- package/lib/store/useFaqsStore.spec.js +0 -57
- package/lib/utils/actionCategoryMap.spec.js +0 -18
- package/lib/utils/agentDisplayName.spec.js +0 -48
- package/lib/utils/autoApproveStorage.spec.js +0 -25
- package/lib/utils/chatInputFiles.spec.js +0 -39
- package/lib/utils/contextMentionIcons.spec.js +0 -41
- package/lib/utils/contextMentionLabel.spec.js +0 -13
- package/lib/utils/contextMentionTriggers.spec.js +0 -44
- package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
- package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
- package/lib/utils/entityLinkRender.spec.js +0 -72
- package/lib/utils/fileDownloadHelper.spec.js +0 -67
- package/lib/utils/formatQuickActionMessage.spec.js +0 -27
- package/lib/utils/formatUnreadCount.spec.js +0 -12
- package/lib/utils/getUnitFileSize.spec.js +0 -18
- package/lib/utils/hitlAnalytics.spec.js +0 -136
- package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
- package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
- package/lib/utils/imagePreprocessor.spec.js +0 -112
- package/lib/utils/maiaPageRoute.js +0 -24
- package/lib/utils/maiaPageRoute.spec.js +0 -23
- package/lib/utils/mapBackendLang.spec.js +0 -19
- package/lib/utils/navigateContextEntity.spec.js +0 -50
- package/lib/utils/normalizeAgentConnectors.spec.js +0 -98
- package/lib/utils/openTaskInCorPanel.spec.js +0 -43
- package/lib/utils/orchestratorSubagents.spec.js +0 -32
- package/lib/utils/reasoningMappers.spec.js +0 -103
- package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
- package/lib/utils/renderContextMentions.helpers.spec.js +0 -87
- package/lib/utils/renderContextMentions.spec.js +0 -268
- package/lib/utils/retryCompletion.spec.js +0 -181
- package/lib/utils/skillContentSize.spec.js +0 -13
- package/lib/utils/slashCommandMarker.spec.js +0 -43
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
- package/lib/utils/sseStreamContent.spec.js +0 -31
- package/lib/utils/streamActivityMessages.helpers.spec.js +0 -84
- package/lib/utils/streamActivityMessages.spec.js +0 -336
- package/lib/utils/validateTrimmedFields.spec.js +0 -26
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { reasoningStore } from '../../../hooks/useReasoningTrace/reasoningStore';
|
|
2
|
-
import { findLeadingNarration, hasActionStep, narrationTextsMatch } from './reasoningLeading';
|
|
3
|
-
import { isVisibleStep } from './ReasoningSteps';
|
|
2
|
+
import { findLeadingNarration, hasActionStep, isVisibleStep, looksLikeIntermediateNarrationStream, narrationTextsMatch } from './reasoningLeading';
|
|
4
3
|
export var PENDING_NARRATION_KEY = 'pending-narration';
|
|
5
4
|
export { narrationTextsMatch } from './reasoningLeading';
|
|
6
5
|
export var visibleReasoningSteps = function visibleReasoningSteps(steps) {
|
|
@@ -11,42 +10,21 @@ export var isSeamlessNarrationCommit = function isSeamlessNarrationCommit(step,
|
|
|
11
10
|
return step.type === 'narration' && narrationTextsMatch(step.text, streamedText);
|
|
12
11
|
};
|
|
13
12
|
|
|
14
|
-
/** Narración inicial sin tools: vive en el cuerpo, no en la traza. */
|
|
15
|
-
export var shouldHideOrphanLeadingNarration = function shouldHideOrphanLeadingNarration(steps) {
|
|
16
|
-
return !hasActionStep(steps);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Oculta la narración commiteada al final de la traza mientras el mismo texto
|
|
21
|
-
* sigue streameando en el cuerpo del mensaje (evita duplicado body + bloque).
|
|
22
|
-
*/
|
|
23
|
-
export var shouldHideTailNarrationInTimeline = function shouldHideTailNarrationInTimeline(steps, streamActivity, streamingText) {
|
|
24
|
-
var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
25
|
-
var _context$showThinking = context.showThinking,
|
|
26
|
-
showThinking = _context$showThinking === void 0 ? false : _context$showThinking;
|
|
27
|
-
if ((streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) !== 'writing') return false;
|
|
28
|
-
if (!streamingText.trim()) return false;
|
|
29
|
-
var last = visibleReasoningSteps(steps, showThinking).at(-1);
|
|
30
|
-
if ((last === null || last === void 0 ? void 0 : last.type) !== 'narration') return false;
|
|
31
|
-
return narrationTextsMatch(last.text, streamingText);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
13
|
/**
|
|
35
14
|
* Narración de turno: tokens sin step van anclados al inicio. Una narración
|
|
36
15
|
* commiteada (pre answer_reset) se pinta en su fila, no se recuelga al último tool.
|
|
37
16
|
*/
|
|
38
|
-
export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTimeline(steps, streamActivity, streamingText) {
|
|
39
|
-
var
|
|
40
|
-
var messageId = context.messageId,
|
|
41
|
-
_context$showThinking2 = context.showThinking,
|
|
42
|
-
showThinking = _context$showThinking2 === void 0 ? false : _context$showThinking2;
|
|
17
|
+
export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId) {
|
|
18
|
+
var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
43
19
|
if ((streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) !== 'writing') return false;
|
|
44
20
|
if (!streamingText.trim()) return false;
|
|
45
21
|
var visible = visibleReasoningSteps(steps, showThinking);
|
|
46
22
|
var leading = findLeadingNarration(steps);
|
|
47
23
|
|
|
48
|
-
//
|
|
49
|
-
if (leading && !hasActionStep(visible))
|
|
24
|
+
// Tokens antes de cualquier acción: la narración es el primer paso.
|
|
25
|
+
if (leading && !hasActionStep(visible) && looksLikeIntermediateNarrationStream(streamingText)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
50
28
|
|
|
51
29
|
// Leading ya anclada: el body todavía es esa misma narración (sin respuesta final).
|
|
52
30
|
if (leading && narrationTextsMatch(leading.text, streamingText)) {
|
|
@@ -55,28 +33,28 @@ export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTim
|
|
|
55
33
|
var last = visible[visible.length - 1];
|
|
56
34
|
if (!last || last.type === 'thinking') return false;
|
|
57
35
|
if (last.type === 'narration') {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
36
|
+
if (messageId && !reasoningStore.isNarrationHandoffPending(messageId)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
61
39
|
return narrationTextsMatch(last.text, streamingText);
|
|
62
40
|
}
|
|
63
41
|
return false;
|
|
64
42
|
};
|
|
65
43
|
|
|
66
44
|
/** Texto de la fila live al final de la traza; null si ya está anclada o va al cuerpo. */
|
|
67
|
-
export var resolvePendingNarrationText = function resolvePendingNarrationText(steps, streamActivity, streamingText) {
|
|
68
|
-
var
|
|
69
|
-
if (!shouldStreamNarrationInTimeline(steps, streamActivity, streamingText,
|
|
45
|
+
export var resolvePendingNarrationText = function resolvePendingNarrationText(steps, streamActivity, streamingText, messageId) {
|
|
46
|
+
var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
47
|
+
if (!shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId, showThinking)) return null;
|
|
70
48
|
var leading = findLeadingNarration(steps);
|
|
71
49
|
// Ya está anclada al inicio: no recuelgues el mismo texto detrás de cada tool.
|
|
72
50
|
if (leading && narrationTextsMatch(leading.text, streamingText)) {
|
|
73
51
|
return null;
|
|
74
52
|
}
|
|
75
|
-
var last = visibleReasoningSteps(steps,
|
|
53
|
+
var last = visibleReasoningSteps(steps, showThinking).at(-1);
|
|
76
54
|
if ((last === null || last === void 0 ? void 0 : last.type) === 'narration' && narrationTextsMatch(last.text, streamingText)) {
|
|
77
55
|
return streamingText;
|
|
78
56
|
}
|
|
79
57
|
if (!last || last.type === 'thinking') return streamingText;
|
|
80
58
|
return null;
|
|
81
59
|
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJpc1Zpc2libGVTdGVwIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkSGlkZU9ycGhhbkxlYWRpbmdOYXJyYXRpb24iLCJzaG91bGRIaWRlVGFpbE5hcnJhdGlvbkluVGltZWxpbmUiLCJzdHJlYW1BY3Rpdml0eSIsInN0cmVhbWluZ1RleHQiLCJjb250ZXh0IiwiX2NvbnRleHQkc2hvd1RoaW5raW5nIiwicGhhc2UiLCJ0cmltIiwibGFzdCIsImF0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsIm1lc3NhZ2VJZCIsIl9jb250ZXh0JHNob3dUaGlua2luZzIiLCJ2aXNpYmxlIiwibGVhZGluZyIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9yZWFzb25pbmdMaXZlTmFycmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcbmltcG9ydCB0eXBlIHsgU3RyZWFtQWN0aXZpdHkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9zdHJlYW1BY3Rpdml0eSdcbmltcG9ydCB7IHJlYXNvbmluZ1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UvcmVhc29uaW5nU3RvcmUnXG5pbXBvcnQgeyBmaW5kTGVhZGluZ05hcnJhdGlvbiwgaGFzQWN0aW9uU3RlcCwgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuXG5leHBvcnQgY29uc3QgUEVORElOR19OQVJSQVRJT05fS0VZID0gJ3BlbmRpbmctbmFycmF0aW9uJ1xuXG5leHBvcnQgdHlwZSBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge1xuICBtZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsXG4gIHNob3dUaGlua2luZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHsgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IHZpc2libGVSZWFzb25pbmdTdGVwcyA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdLCBzaG93VGhpbmtpbmcgPSBmYWxzZSk6IFJlYXNvbmluZ1N0ZXBbXSA9PlxuICBzaG93VGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuXG5leHBvcnQgY29uc3QgaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCA9IChzdGVwOiBSZWFzb25pbmdTdGVwLCBzdHJlYW1lZFRleHQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChzdGVwLnRleHQsIHN0cmVhbWVkVGV4dClcblxuLyoqIE5hcnJhY2nDs24gaW5pY2lhbCBzaW4gdG9vbHM6IHZpdmUgZW4gZWwgY3VlcnBvLCBubyBlbiBsYSB0cmF6YS4gKi9cbmV4cG9ydCBjb25zdCBzaG91bGRIaWRlT3JwaGFuTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogYm9vbGVhbiA9PiAhaGFzQWN0aW9uU3RlcChzdGVwcylcblxuLyoqXG4gKiBPY3VsdGEgbGEgbmFycmFjacOzbiBjb21taXRlYWRhIGFsIGZpbmFsIGRlIGxhIHRyYXphIG1pZW50cmFzIGVsIG1pc21vIHRleHRvXG4gKiBzaWd1ZSBzdHJlYW1lYW5kbyBlbiBlbCBjdWVycG8gZGVsIG1lbnNhamUgKGV2aXRhIGR1cGxpY2FkbyBib2R5ICsgYmxvcXVlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZEhpZGVUYWlsTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBjb250ZXh0OiBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge31cbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IHNob3dUaGlua2luZyA9IGZhbHNlIH0gPSBjb250ZXh0XG4gIGlmIChzdHJlYW1BY3Rpdml0eT8ucGhhc2UgIT09ICd3cml0aW5nJykgcmV0dXJuIGZhbHNlXG4gIGlmICghc3RyZWFtaW5nVGV4dC50cmltKCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZykuYXQoLTEpXG4gIGlmIChsYXN0Py50eXBlICE9PSAnbmFycmF0aW9uJykgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxufVxuXG4vKipcbiAqIE5hcnJhY2nDs24gZGUgdHVybm86IHRva2VucyBzaW4gc3RlcCB2YW4gYW5jbGFkb3MgYWwgaW5pY2lvLiBVbmEgbmFycmFjacOzblxuICogY29tbWl0ZWFkYSAocHJlIGFuc3dlcl9yZXNldCkgc2UgcGludGEgZW4gc3UgZmlsYSwgbm8gc2UgcmVjdWVsZ2EgYWwgw7psdGltbyB0b29sLlxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBjb250ZXh0OiBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge31cbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IG1lc3NhZ2VJZCwgc2hvd1RoaW5raW5nID0gZmFsc2UgfSA9IGNvbnRleHRcbiAgaWYgKHN0cmVhbUFjdGl2aXR5Py5waGFzZSAhPT0gJ3dyaXRpbmcnKSByZXR1cm4gZmFsc2VcbiAgaWYgKCFzdHJlYW1pbmdUZXh0LnRyaW0oKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdmlzaWJsZSA9IHZpc2libGVSZWFzb25pbmdTdGVwcyhzdGVwcywgc2hvd1RoaW5raW5nKVxuICBjb25zdCBsZWFkaW5nID0gZmluZExlYWRpbmdOYXJyYXRpb24oc3RlcHMpXG5cbiAgLy8gQW50ZXMgZGUgY3VhbHF1aWVyIGFjY2nDs24gZWwgdGV4dG8gdmEgYWwgY3VlcnBvLCBubyBhIGxhIHRyYXphLlxuICBpZiAobGVhZGluZyAmJiAhaGFzQWN0aW9uU3RlcCh2aXNpYmxlKSkgcmV0dXJuIGZhbHNlXG5cbiAgLy8gTGVhZGluZyB5YSBhbmNsYWRhOiBlbCBib2R5IHRvZGF2w61hIGVzIGVzYSBtaXNtYSBuYXJyYWNpw7NuIChzaW4gcmVzcHVlc3RhIGZpbmFsKS5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlW3Zpc2libGUubGVuZ3RoIC0gMV1cbiAgaWYgKCFsYXN0IHx8IGxhc3QudHlwZSA9PT0gJ3RoaW5raW5nJykgcmV0dXJuIGZhbHNlXG5cbiAgaWYgKGxhc3QudHlwZSA9PT0gJ25hcnJhdGlvbicpIHtcbiAgICAvLyBNaWVudHJhcyBlbCBtaXNtbyB0ZXh0byB2aXZlIGVuIGVsIGJvZHksIG5vIGR1cGxpY2FyIGVuIHRpbWVsaW5lLlxuICAgIGlmIChuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHJldHVybiBmYWxzZVxuICAgIGlmIChtZXNzYWdlSWQgJiYgIXJlYXNvbmluZ1N0b3JlLmlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmcobWVzc2FnZUlkKSkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBUZXh0byBkZSBsYSBmaWxhIGxpdmUgYWwgZmluYWwgZGUgbGEgdHJhemE7IG51bGwgc2kgeWEgZXN0w6EgYW5jbGFkYSBvIHZhIGFsIGN1ZXJwby4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgY29udGV4dDogU3RyZWFtTmFycmF0aW9uQ29udGV4dCA9IHt9XG4pOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKCFzaG91bGRTdHJlYW1OYXJyYXRpb25JblRpbWVsaW5lKHN0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgY29udGV4dCkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICAvLyBZYSBlc3TDoSBhbmNsYWRhIGFsIGluaWNpbzogbm8gcmVjdWVsZ3VlcyBlbCBtaXNtbyB0ZXh0byBkZXRyw6FzIGRlIGNhZGEgdG9vbC5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIGNvbnRleHQuc2hvd1RoaW5raW5nKS5hdCgtMSlcbiAgaWYgKGxhc3Q/LnR5cGUgPT09ICduYXJyYXRpb24nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiBzdHJlYW1pbmdUZXh0XG4gIH1cblxuICBpZiAoIWxhc3QgfHwgbGFzdC50eXBlID09PSAndGhpbmtpbmcnKSByZXR1cm4gc3RyZWFtaW5nVGV4dFxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGNBQWMsUUFBUSxpREFBaUQ7QUFDaEYsU0FBU0Msb0JBQW9CLEVBQUVDLGFBQWEsRUFBRUMsbUJBQW1CLFFBQVEsb0JBQW9CO0FBQzdGLFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFFaEQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxtQkFBbUI7QUFPeEQsU0FBU0YsbUJBQW1CLFFBQVEsb0JBQW9CO0FBRXhELE9BQU8sSUFBTUcscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsS0FBc0I7RUFBQSxJQUFFQyxZQUFZLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFBQSxPQUNoRkQsWUFBWSxHQUFHRCxLQUFLLEdBQUdBLEtBQUssQ0FBQ0ssTUFBTSxDQUFDUixhQUFhLENBQUM7QUFBQTtBQUVwRCxPQUFPLElBQU1TLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUlDLElBQW1CLEVBQUVDLFlBQTJCO0VBQUEsT0FDeEZELElBQUksQ0FBQ0UsSUFBSSxLQUFLLFdBQVcsSUFBSWIsbUJBQW1CLENBQUNX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
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsImlzVmlzaWJsZVN0ZXAiLCJsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0iLCJuYXJyYXRpb25UZXh0c01hdGNoIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsInN0cmVhbUFjdGl2aXR5Iiwic3RyZWFtaW5nVGV4dCIsIm1lc3NhZ2VJZCIsInBoYXNlIiwidHJpbSIsInZpc2libGUiLCJsZWFkaW5nIiwibGFzdCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgcmVhc29uaW5nU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZS9yZWFzb25pbmdTdG9yZSdcbmltcG9ydCB7XG4gIGZpbmRMZWFkaW5nTmFycmF0aW9uLFxuICBoYXNBY3Rpb25TdGVwLFxuICBpc1Zpc2libGVTdGVwLFxuICBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0sXG4gIG5hcnJhdGlvblRleHRzTWF0Y2gsXG59IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IFBFTkRJTkdfTkFSUkFUSU9OX0tFWSA9ICdwZW5kaW5nLW5hcnJhdGlvbidcblxuZXhwb3J0IHsgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IHZpc2libGVSZWFzb25pbmdTdGVwcyA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdLCBzaG93VGhpbmtpbmcgPSBmYWxzZSk6IFJlYXNvbmluZ1N0ZXBbXSA9PlxuICBzaG93VGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuXG5leHBvcnQgY29uc3QgaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCA9IChzdGVwOiBSZWFzb25pbmdTdGVwLCBzdHJlYW1lZFRleHQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChzdGVwLnRleHQsIHN0cmVhbWVkVGV4dClcblxuLyoqXG4gKiBOYXJyYWNpw7NuIGRlIHR1cm5vOiB0b2tlbnMgc2luIHN0ZXAgdmFuIGFuY2xhZG9zIGFsIGluaWNpby4gVW5hIG5hcnJhY2nDs25cbiAqIGNvbW1pdGVhZGEgKHByZSBhbnN3ZXJfcmVzZXQpIHNlIHBpbnRhIGVuIHN1IGZpbGEsIG5vIHNlIHJlY3VlbGdhIGFsIMO6bHRpbW8gdG9vbC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZFN0cmVhbU5hcnJhdGlvbkluVGltZWxpbmUgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgbWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgc2hvd1RoaW5raW5nID0gZmFsc2Vcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoc3RyZWFtQWN0aXZpdHk/LnBoYXNlICE9PSAnd3JpdGluZycpIHJldHVybiBmYWxzZVxuICBpZiAoIXN0cmVhbWluZ1RleHQudHJpbSgpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB2aXNpYmxlID0gdmlzaWJsZVJlYXNvbmluZ1N0ZXBzKHN0ZXBzLCBzaG93VGhpbmtpbmcpXG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihzdGVwcylcblxuICAvLyBUb2tlbnMgYW50ZXMgZGUgY3VhbHF1aWVyIGFjY2nDs246IGxhIG5hcnJhY2nDs24gZXMgZWwgcHJpbWVyIHBhc28uXG4gIGlmIChsZWFkaW5nICYmICFoYXNBY3Rpb25TdGVwKHZpc2libGUpICYmIGxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbShzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBMZWFkaW5nIHlhIGFuY2xhZGE6IGVsIGJvZHkgdG9kYXbDrWEgZXMgZXNhIG1pc21hIG5hcnJhY2nDs24gKHNpbiByZXNwdWVzdGEgZmluYWwpLlxuICBpZiAobGVhZGluZyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKGxlYWRpbmcudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbGFzdCA9IHZpc2libGVbdmlzaWJsZS5sZW5ndGggLSAxXVxuICBpZiAoIWxhc3QgfHwgbGFzdC50eXBlID09PSAndGhpbmtpbmcnKSByZXR1cm4gZmFsc2VcblxuICBpZiAobGFzdC50eXBlID09PSAnbmFycmF0aW9uJykge1xuICAgIGlmIChtZXNzYWdlSWQgJiYgIXJlYXNvbmluZ1N0b3JlLmlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmcobWVzc2FnZUlkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiBuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dClcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKiogVGV4dG8gZGUgbGEgZmlsYSBsaXZlIGFsIGZpbmFsIGRlIGxhIHRyYXphOyBudWxsIHNpIHlhIGVzdMOhIGFuY2xhZGEgbyB2YSBhbCBjdWVycG8uICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVBlbmRpbmdOYXJyYXRpb25UZXh0ID0gKFxuICBzdGVwczogUmVhc29uaW5nU3RlcFtdLFxuICBzdHJlYW1BY3Rpdml0eTogU3RyZWFtQWN0aXZpdHkgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBzdHJlYW1pbmdUZXh0OiBzdHJpbmcsXG4gIG1lc3NhZ2VJZD86IHN0cmluZyB8IG51bGwsXG4gIHNob3dUaGlua2luZyA9IGZhbHNlXG4pOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKCFzaG91bGRTdHJlYW1OYXJyYXRpb25JblRpbWVsaW5lKHN0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgbWVzc2FnZUlkLCBzaG93VGhpbmtpbmcpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihzdGVwcylcbiAgLy8gWWEgZXN0w6EgYW5jbGFkYSBhbCBpbmljaW86IG5vIHJlY3VlbGd1ZXMgZWwgbWlzbW8gdGV4dG8gZGV0csOhcyBkZSBjYWRhIHRvb2wuXG4gIGlmIChsZWFkaW5nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGVhZGluZy50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBsYXN0ID0gdmlzaWJsZVJlYXNvbmluZ1N0ZXBzKHN0ZXBzLCBzaG93VGhpbmtpbmcpLmF0KC0xKVxuICBpZiAobGFzdD8udHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsYXN0LnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHN0cmVhbWluZ1RleHRcbiAgfVxuXG4gIGlmICghbGFzdCB8fCBsYXN0LnR5cGUgPT09ICd0aGlua2luZycpIHJldHVybiBzdHJlYW1pbmdUZXh0XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsY0FBYyxRQUFRLGlEQUFpRDtBQUNoRixTQUNFQyxvQkFBb0IsRUFDcEJDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxvQ0FBb0MsRUFDcENDLG1CQUFtQixRQUNkLG9CQUFvQjtBQUUzQixPQUFPLElBQU1DLHFCQUFxQixHQUFHLG1CQUFtQjtBQUV4RCxTQUFTRCxtQkFBbUIsUUFBUSxvQkFBb0I7QUFFeEQsT0FBTyxJQUFNRSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxLQUFzQjtFQUFBLElBQUVDLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUFBLE9BQ2hGRCxZQUFZLEdBQUdELEtBQUssR0FBR0EsS0FBSyxDQUFDSyxNQUFNLENBQUNWLGFBQWEsQ0FBQztBQUFBO0FBRXBELE9BQU8sSUFBTVcseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBbUIsRUFBRUMsWUFBMkI7RUFBQSxPQUN4RkQsSUFBSSxDQUFDRSxJQUFJLEtBQUssV0FBVyxJQUFJWixtQkFBbUIsQ0FBQ1UsSUFBSSxDQUFDRyxJQUFJLEVBQUVGLFlBQVksQ0FBQztBQUFBOztBQUUzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUcsK0JBQStCLEdBQUcsU0FBbENBLCtCQUErQkEsQ0FDMUNYLEtBQXNCLEVBQ3RCWSxjQUFpRCxFQUNqREMsYUFBcUIsRUFDckJDLFNBQXlCLEVBRWI7RUFBQSxJQURaYixZQUFZLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFF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
|
package/lib/components/index.js
CHANGED
|
@@ -6,7 +6,6 @@ export { ProjectSummaryModal } from './molecules/ProjectSummaryModal';
|
|
|
6
6
|
export { ContextMentionInput } from './molecules/ContextMentionInput';
|
|
7
7
|
export { ProjectSummary } from './organisms/ProjectSummary';
|
|
8
8
|
export { ChatAI } from './organisms/ChatAI';
|
|
9
|
-
export { ChatAIPage } from './organisms/ChatAIPage';
|
|
10
9
|
export { ProjectAIButton } from './organisms/ProjectAIButton';
|
|
11
10
|
export { ClientAIButton } from './organisms/ClientAIButton';
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiQ29udGV4dE1lbnRpb25JbnB1dCIsIlByb2plY3RTdW1tYXJ5IiwiQ2hhdEFJIiwiUHJvamVjdEFJQnV0dG9uIiwiQ2xpZW50QUlCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNQUlBQnV0dG9uIH0gZnJvbSAnLi9hdG9tcy9NQUlBQnV0dG9uJ1xuZXhwb3J0IHsgTWFpYVdyYXBwZXIgfSBmcm9tICcuL2F0b21zL01haWFXcmFwcGVyJ1xuZXhwb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi9hdG9tcy9NQUlBRXJyb3InXG5cbmV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vYXRvbXMvaWNvbnMnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5TW9kYWwgfSBmcm9tICcuL21vbGVjdWxlcy9Qcm9qZWN0U3VtbWFyeU1vZGFsJ1xuZXhwb3J0IHsgQ29udGV4dE1lbnRpb25JbnB1dCB9IGZyb20gJy4vbW9sZWN1bGVzL0NvbnRleHRNZW50aW9uSW5wdXQnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9vcmdhbmlzbXMvUHJvamVjdFN1bW1hcnknXG5leHBvcnQgeyBDaGF0QUkgfSBmcm9tICcuL29yZ2FuaXNtcy9DaGF0QUknXG5leHBvcnQgeyBQcm9qZWN0QUlCdXR0b24gfSBmcm9tICcuL29yZ2FuaXNtcy9Qcm9qZWN0QUlCdXR0b24nXG5leHBvcnQgeyBDbGllbnRBSUJ1dHRvbiB9IGZyb20gJy4vb3JnYW5pc21zL0NsaWVudEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsbUJBQW1CLFFBQVEsaUNBQWlDO0FBRXJFLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEI7QUFDM0QsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxlQUFlLFFBQVEsNkJBQTZCO0FBQzdELFNBQVNDLGNBQWMsUUFBUSw0QkFBNEIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js
CHANGED
|
@@ -239,7 +239,6 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
239
239
|
cancelled = true;
|
|
240
240
|
};
|
|
241
241
|
}, [externalConnectorsEnabled]);
|
|
242
|
-
var selectedConnectorSet = new Set(formValues.selectedConnectors);
|
|
243
242
|
return /*#__PURE__*/_jsxs(SCAASWrapper, {
|
|
244
243
|
children: [/*#__PURE__*/_jsxs(SCAASHeader, {
|
|
245
244
|
$index: 0,
|
|
@@ -284,7 +283,7 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
284
283
|
description: connector.description || t('accessibilitySection.connectorAccessDescription', {
|
|
285
284
|
name: connector.name
|
|
286
285
|
}),
|
|
287
|
-
checked:
|
|
286
|
+
checked: formValues.selectedConnectors.includes(connector.slug),
|
|
288
287
|
onChange: function onChange(checked) {
|
|
289
288
|
return handleConnectorAccessChange(connector.slug, checked);
|
|
290
289
|
},
|
|
@@ -345,4 +344,4 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
345
344
|
})]
|
|
346
345
|
});
|
|
347
346
|
};
|
|
348
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImF1dGhvcml6ZUNvbm5lY3RvciIsImdldEFnZW50Q29ubmVjdG9ycyIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRFRkFVTFRfQ09SX0FDQ0VTUyIsImhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MiLCJTQ0FBU1dyYXBwZXIiLCJTQ0FBU0hlYWRlciIsIlNDQUFTVGl0bGUiLCJTQ0FBU1N1YnRpdGxlIiwiU0NBQVNDb250ZW50IiwiU0NBQVNTZWN0aW9uIiwiU0NBQVNTZWN0aW9uSGVhZGVyIiwiU0NBQVNTZWN0aW9uVGl0bGUiLCJTQ0FBU1NlY3Rpb25TdWJ0aXRsZSIsIlNDQUFTT3B0aW9uc0NvbnRhaW5lciIsIlNDQUFTRGl2aWRlciIsImJ1aWxkQWNjZXNzaWJpbGl0eVNlbGVjdGlvbiIsIm1hcEFjY2Vzc2liaWxpdHlBbmFseXRpY3NPcHRpb24iLCJzaG91bGRUcmFja0FjY2Vzc2liaWxpdHlDbGllbnRTZWxlY3Rpb24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDT1JfUEVSTUlTU0lPTl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkyIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTQiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk1IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTgiLCJfZm9ybVZhbHVlcyRjbGllbnRzIiwidmFsdWVzIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsImNvckFjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsImNvbm5lY3RvclN0YXR1c2VzIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZm9ybVZhbHVlcyIsInNldEZvcm1WYWx1ZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImNhdGFsb2dDb25uZWN0b3JzIiwic2V0Q2F0YWxvZ0Nvbm5lY3RvcnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImF1dGhvcml6aW5nU2x1ZyIsInNldEF1dGhvcml6aW5nU2x1ZyIsImV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQiLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJvcHRpb24iLCJhY2Nlc3NpYmlsaXR5VHlwZSIsImFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQiLCJfb2JqZWN0U3ByZWFkIiwiaGFuZGxlQ29yQWNjZXNzQ2hhbmdlIiwiY2hlY2tlZCIsImNvbm5lY3RvckNvciIsInByZXYiLCJfZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVDb25uZWN0b3JBY2Nlc3NDaGFuZ2UiLCJjb25uZWN0b3JNY3AiLCJuZXh0IiwiU2V0IiwiYWRkIiwiQXJyYXkiLCJmcm9tIiwiY29ubmVjdG9yQWN0aW9uTGFiZWwiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsImhhbmRsZUNvbm5lY3RvckF1dGhvcml6YXRpb24iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3ZhbHVlcyRnZW5lcmFsIiwiYWdlbnRJZCIsInBvcHVwIiwiX3lpZWxkJHdhaXRGb3JDb25uZWN0IiwiYXV0aG9yaXplZCIsImVycm9yIiwiY29ubmVjdG9ycyIsInVwZGF0ZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsImdlbmVyYWwiLCJpZCIsImFicnVwdCIsIndpbmRvdyIsIm9wZW4iLCJsb2NhdGlvbiIsImhyZWYiLCJzZW50IiwidG9TdHJpbmciLCJzbHVncyIsImNsb3NlZCIsImNsb3NlIiwiZmluZCIsImNvbm5lY3RvciIsImNvbm5lY3Rpb25fc3RhdHVzIiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk3IiwibmV4dENvbm5lY3RvcnMiLCJjdXJyZW50IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic29ydCIsImpvaW4iLCJpbmNvbWluZyIsImtleSIsInZhbHVlIiwiY2FuY2VsbGVkIiwidGhlbiIsImZpbHRlciIsImlzX2FjdGl2ZSIsImNvbnNvbGUiLCJzZWxlY3RlZENvbm5lY3RvclNldCIsImNoaWxkcmVuIiwiJGluZGV4IiwibWFwIiwiX3JlZjMiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJuYW1lIiwiaGFzIiwiYWN0aW9uTGFiZWwiLCJhY3Rpb25Ub25lIiwib25BY3Rpb24iLCJhY3Rpb25CdXN5Iiwib3B0aW9uU2VsZWN0ZWQiLCJpc0NsaWVudCIsInByb3BzIiwic2VsZWN0ZWRDbGllbnRzIiwiY2xpZW50IiwiX2NsaWVudCRuYW1lIiwiaXNfZGVsZXRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBPcHRpb25BY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQWNjZXNzaWJpbGl0eSdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHtcbiAgYXV0aG9yaXplQ29ubmVjdG9yLFxuICBnZXRBZ2VudENvbm5lY3RvcnMsXG4gIGdldEF2YWlsYWJsZUNvbm5lY3RvcnMsXG4gIHdhaXRGb3JDb25uZWN0b3JBdXRob3JpemF0aW9uLFxuICB0eXBlIENhdGFsb2dDb25uZWN0b3IsXG4gIHR5cGUgQ29ubmVjdG9yQ29ubmVjdGlvblN0YXR1cyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvY29ubmVjdG9ycydcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBDb3JBY2Nlc3MsIENvclRvb2xHcm91cFNsdWcsIERFRkFVTFRfQ09SX0FDQ0VTUyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycydcbmltcG9ydCB7IGhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdGFudHMvbWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcydcbmltcG9ydCB7XG4gIFNDQUFTV3JhcHBlcixcbiAgU0NBQVNIZWFkZXIsXG4gIFNDQUFTVGl0bGUsXG4gIFNDQUFTU3VidGl0bGUsXG4gIFNDQUFTQ29udGVudCxcbiAgU0NBQVNTZWN0aW9uLFxuICBTQ0FBU1NlY3Rpb25IZWFkZXIsXG4gIFNDQUFTU2VjdGlvblRpdGxlLFxuICBTQ0FBU1NlY3Rpb25TdWJ0aXRsZSxcbiAgU0NBQVNPcHRpb25zQ29udGFpbmVyLFxuICBTQ0FBU0RpdmlkZXIsXG59IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uc3R5bGVzJ1xuaW1wb3J0IHsgQ2xpZW50Rm9ybURhdGEgfSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLmludGVyZmFjZSdcbmltcG9ydCB7XG4gIGJ1aWxkQWNjZXNzaWJpbGl0eVNlbGVjdGlvbixcbiAgbWFwQWNjZXNzaWJpbGl0eUFuYWx5dGljc09wdGlvbixcbiAgc2hvdWxkVHJhY2tBY2Nlc3NpYmlsaXR5Q2xpZW50U2VsZWN0aW9uLFxufSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLmhlbHBlcnMnXG5cbmludGVyZmFjZSBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzIHtcbiAgdmFsdWVzPzoge1xuICAgIGdlbmVyYWw/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgY29yQWNjZXNzPzogQ29yQWNjZXNzXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM/OiBzdHJpbmdbXVxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM/OiBSZWNvcmQ8c3RyaW5nLCBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzPlxuICAgIH1cbiAgfVxuICBoYW5kbGVTZXRBZ2VudFZhbHVlcz86ICh7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSkgPT4gdm9pZFxufVxuXG4vLyBPcmRlbiA9IGplcmFycXXDrWEgZGUgQ09SIChjbGllbnRlID4gcHJveWVjdG8gPiB0YXJlYSksIGRlIG3DoXMgYW1wbGlvIGEgbcOhcyBlc3BlY8OtZmljby5cbmNvbnN0IENPUl9QRVJNSVNTSU9OX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IFJlY29yZDxzdHJpbmcsIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXM+XG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY29ubmVjdG9yU3RhdHVzZXMgfHwge30sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgW2F1dGhvcml6aW5nU2x1Zywgc2V0QXV0aG9yaXppbmdTbHVnXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgPSBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzKClcblxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSAob3B0aW9uOiBzdHJpbmcsIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG1hcEFjY2Vzc2liaWxpdHlBbmFseXRpY3NPcHRpb24ob3B0aW9uKSB9KVxuXG4gICAgaWYgKHNob3VsZFRyYWNrQWNjZXNzaWJpbGl0eUNsaWVudFNlbGVjdGlvbihjbGllbnRzKSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7XG4gICAgICAuLi5idWlsZEFjY2Vzc2liaWxpdHlTZWxlY3Rpb24ob3B0aW9uLCBjbGllbnRzLCBmb3JtVmFsdWVzLmNvckFjY2VzcywgZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMpLFxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM6IGZvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXMsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBDb3JUb29sR3JvdXBTbHVnLCBjaGVja2VkOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmNvbm5lY3RvckNvciwgeyBvcHRpb246IGNoZWNrZWQgPyAnb24nIDogJ29mZicsIHNsdWcgfSlcblxuICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGNvckFjY2VzczogeyAuLi5wcmV2LmNvckFjY2VzcywgW3NsdWddOiBjaGVja2VkIH0sXG4gICAgfSkpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25uZWN0b3JBY2Nlc3NDaGFuZ2UgPSAoc2x1Zzogc3RyaW5nLCBjaGVja2VkOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmNvbm5lY3Rvck1jcCwgeyBvcHRpb246IGNoZWNrZWQgPyAnb24nIDogJ29mZicsIHNsdWcgfSlcblxuICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gbmV3IFNldChwcmV2LnNlbGVjdGVkQ29ubmVjdG9ycylcbiAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgIG5leHQuYWRkKHNsdWcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0LmRlbGV0ZShzbHVnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBBcnJheS5mcm9tKG5leHQpLFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjb25uZWN0b3JBY3Rpb25MYWJlbCA9IChzbHVnOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmICghZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoc2x1ZykpIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoZm9ybVZhbHVlcy5jb25uZWN0b3JTdGF0dXNlc1tzbHVnXSA9PT0gJ25lZWRzX2F0dGVudGlvbicpXG4gICAgICByZXR1cm4gdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQXV0aGVudGljYXRlQWN0aW9uJylcbiAgICBpZiAoZm9ybVZhbHVlcy5jb25uZWN0b3JTdGF0dXNlc1tzbHVnXSA9PT0gJ2Vycm9yJykgcmV0dXJuIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvclJlb3BlbkFjdGlvbicpXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29ubmVjdG9yQXV0aG9yaXphdGlvbiA9IGFzeW5jIChzbHVnOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBhZ2VudElkID0gdmFsdWVzPy5nZW5lcmFsPy5pZFxuICAgIGlmICghYWdlbnRJZCB8fCBhdXRob3JpemluZ1NsdWcpIHJldHVyblxuXG4gICAgLy8gT3BlbiBzeW5jaHJvbm91c2x5IGZyb20gdGhlIGNsaWNrIHNvIHRoZSBicm93c2VyIGRvZXMgbm90IGJsb2NrIE9BdXRoLlxuICAgIGNvbnN0IHBvcHVwID0gd2luZG93Lm9wZW4oJycsICdfYmxhbmsnLCAncG9wdXA9eWVzLHdpZHRoPTU2MCxoZWlnaHQ9NzYwJylcbiAgICBpZiAoIXBvcHVwKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvclBvcHVwQmxvY2tlZCcpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc2V0QXV0aG9yaXppbmdTbHVnKHNsdWcpXG4gICAgdHJ5IHtcbiAgICAgIHBvcHVwLmxvY2F0aW9uLmhyZWYgPSBhd2FpdCBhdXRob3JpemVDb25uZWN0b3Ioc2x1ZylcbiAgICAgIGNvbnN0IHsgYXV0aG9yaXplZCwgZXJyb3IgfSA9IGF3YWl0IHdhaXRGb3JDb25uZWN0b3JBdXRob3JpemF0aW9uKHtcbiAgICAgICAgYWdlbnRJZDogYWdlbnRJZC50b1N0cmluZygpLFxuICAgICAgICBzbHVnczogW3NsdWddLFxuICAgICAgICBwb3B1cCxcbiAgICAgIH0pXG4gICAgICBpZiAoIWF1dGhvcml6ZWQuaW5jbHVkZXMoc2x1ZykpIHtcbiAgICAgICAgaWYgKCFwb3B1cC5jbG9zZWQpIHBvcHVwLmNsb3NlKClcbiAgICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7IC4uLnByZXYsIGNvbm5lY3RvclN0YXR1c2VzOiB7IC4uLnByZXYuY29ubmVjdG9yU3RhdHVzZXMsIFtzbHVnXTogJ2Vycm9yJyB9IH0pKVxuICAgICAgICBoYW5kbGVTbmFja2JhckVycm9yKGVycm9yICYmIGVycm9yICE9PSAndGltZW91dCcgPyBlcnJvciA6IHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckF1dGhJbmNvbXBsZXRlJykpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgY29ubmVjdG9ycyA9IGF3YWl0IGdldEFnZW50Q29ubmVjdG9ycyhhZ2VudElkLnRvU3RyaW5nKCkpXG4gICAgICBjb25zdCB1cGRhdGVkID0gY29ubmVjdG9ycy5maW5kKGNvbm5lY3RvciA9PiBjb25uZWN0b3Iuc2x1ZyA9PT0gc2x1ZylcbiAgICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBjb25uZWN0b3JTdGF0dXNlczogeyAuLi5wcmV2LmNvbm5lY3RvclN0YXR1c2VzLCBbc2x1Z106IHVwZGF0ZWQ/LmNvbm5lY3Rpb25fc3RhdHVzIHx8ICdvaycgfSxcbiAgICAgIH0pKVxuICAgIH0gY2F0Y2gge1xuICAgICAgaWYgKCFwb3B1cC5jbG9zZWQpIHBvcHVwLmNsb3NlKClcbiAgICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiAoeyAuLi5wcmV2LCBjb25uZWN0b3JTdGF0dXNlczogeyAuLi5wcmV2LmNvbm5lY3RvclN0YXR1c2VzLCBbc2x1Z106ICdlcnJvcicgfSB9KSlcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQXV0aEZhaWxlZCcpKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRBdXRob3JpemluZ1NsdWcobnVsbClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5leHRDb25uZWN0b3JzID0gdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNcbiAgICBpZiAoIW5leHRDb25uZWN0b3JzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBbLi4ucHJldi5zZWxlY3RlZENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGNvbnN0IGluY29taW5nID0gWy4uLm5leHRDb25uZWN0b3JzXS5zb3J0KCkuam9pbignfCcpXG4gICAgICBpZiAoY3VycmVudCA9PT0gaW5jb21pbmcpIHtcbiAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIHNlbGVjdGVkQ29ubmVjdG9yczogbmV4dENvbm5lY3RvcnMsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW3ZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uc2VsZWN0ZWRDb25uZWN0b3JzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmb3JtVmFsdWVzKSB7XG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcz8uKHtcbiAgICAgICAga2V5OiAnYWNjZXNzaWJpbGl0eScsXG4gICAgICAgIHZhbHVlOiBmb3JtVmFsdWVzLFxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtmb3JtVmFsdWVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycygpXG4gICAgICAudGhlbihjb25uZWN0b3JzID0+IHtcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhjb25uZWN0b3JzLmZpbHRlcihjb25uZWN0b3IgPT4gY29ubmVjdG9yLmlzX2FjdGl2ZSkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjb25uZWN0b3JzIGNhdGFsb2c6JywgZXJyb3IpXG4gICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnMoW10pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbGxlZCA9IHRydWVcbiAgICB9XG4gIH0sIFtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkXSlcblxuICBjb25zdCBzZWxlY3RlZENvbm5lY3RvclNldCA9IG5ldyBTZXQoZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBQVNXcmFwcGVyPlxuICAgICAgPFNDQUFTSGVhZGVyICRpbmRleD17MH0+XG4gICAgICAgIDxTQ0FBU1RpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi50aXRsZVNlY3Rpb24nKX08L1NDQUFTVGl0bGU+XG4gICAgICAgIDxTQ0FBU1N1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdWJ0aXRsZVNlY3Rpb24nKX08L1NDQUFTU3VidGl0bGU+XG4gICAgICA8L1NDQUFTSGVhZGVyPlxuICAgICAgPFNDQUFTQ29udGVudCAkaW5kZXg9ezF9PlxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvclBlcm1pc3Npb25zVGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICB7Q09SX1BFUk1JU1NJT05fUk9XUy5tYXAoKHsgc2x1ZywgdGl0bGVLZXksIGRlc2NyaXB0aW9uS2V5IH0pID0+IChcbiAgICAgICAgICAgIDxPcHRpb25Db3JQZXJtaXNzaW9uXG4gICAgICAgICAgICAgIGtleT17c2x1Z31cbiAgICAgICAgICAgICAgdGl0bGU9e3QoYGFjY2Vzc2liaWxpdHlTZWN0aW9uLiR7dGl0bGVLZXl9YCl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke2Rlc2NyaXB0aW9uS2V5fWApfVxuICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtVmFsdWVzLmNvckFjY2Vzc1tzbHVnXX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29yQWNjZXNzQ2hhbmdlKHNsdWcsIGNoZWNrZWQpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0FBU1NlY3Rpb24+XG5cbiAgICAgICAge2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8U0NBQVNEaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb24+XG4gICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm1jcFBlcm1pc3Npb25zU3VidGl0bGUnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgICAge2NhdGFsb2dDb25uZWN0b3JzLm1hcChjb25uZWN0b3IgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25Db3JQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2Nvbm5lY3Rvci5zbHVnfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2Nvbm5lY3Rvci5uYW1lfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3IuZGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQWNjZXNzRGVzY3JpcHRpb24nLCB7IG5hbWU6IGNvbm5lY3Rvci5uYW1lIH0pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtzZWxlY3RlZENvbm5lY3RvclNldC5oYXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkxhYmVsPXtjb25uZWN0b3JBY3Rpb25MYWJlbChjb25uZWN0b3Iuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25Ub25lPXtmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW2Nvbm5lY3Rvci5zbHVnXSA9PT0gJ2Vycm9yJyA/ICdlcnJvcicgOiAnYXR0ZW50aW9uJ31cbiAgICAgICAgICAgICAgICAgIG9uQWN0aW9uPXsoKSA9PiBoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uKGNvbm5lY3Rvci5zbHVnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1c3k9e2F1dGhvcml6aW5nU2x1ZyA9PT0gY29ubmVjdG9yLnNsdWd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cblxuICAgICAgICA8U0NBQVNEaXZpZGVyIC8+XG5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi52aXNpYmlsaXR5VGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi53aG9DYW5BY2Nlc3MnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgIDxTQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uYWxsQ29tcGFueVRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uPXsoKSA9PiBoYW5kbGVTZWxlY3RPcHRpb24oJ2NvbXBhbnknKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNvbXBhbnlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnRUaXRsZScpfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY2xpZW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaXNDbGllbnQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZSA9PT0gJ2NsaWVudHMnfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eyhwcm9wcz86IENsaWVudEZvcm1EYXRhW10pID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY2xpZW50cycsIHByb3BzKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNsaWVudHNcIlxuICAgICAgICAgICAgICBzZWxlY3RlZENsaWVudHM9e2Zvcm1WYWx1ZXMuY2xpZW50cz8ubWFwKGNsaWVudCA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiBjbGllbnQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogY2xpZW50Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICAgICAgaXNfYWN0aXZlOiBjbGllbnQuaXNfYWN0aXZlLFxuICAgICAgICAgICAgICAgIGlzX2RlbGV0ZWQ6IGNsaWVudC5pc19kZWxldGVkLFxuICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93blRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5vd25EZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignb25seV9tZScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwib25seV9tZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBQVNPcHRpb25zQ29udGFpbmVyPlxuICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgIDwvU0NBQVNDb250ZW50PlxuICAgIDwvU0NBQVNXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsNEJBQTRCO0FBQzdELFNBQ0VDLGtCQUFrQixFQUNsQkMsa0JBQWtCLEVBQ2xCQyxzQkFBc0IsRUFDdEJDLDZCQUE2QixRQUd4Qiw2Q0FBNkM7QUFDcEQsU0FBU0Msa0JBQWtCLFFBQVEseURBQXlEO0FBQzVGLFNBQXNDQyxrQkFBa0IsUUFBUSw0Q0FBNEM7QUFD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
|
|
347
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImF1dGhvcml6ZUNvbm5lY3RvciIsImdldEFnZW50Q29ubmVjdG9ycyIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRFRkFVTFRfQ09SX0FDQ0VTUyIsImhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MiLCJTQ0FBU1dyYXBwZXIiLCJTQ0FBU0hlYWRlciIsIlNDQUFTVGl0bGUiLCJTQ0FBU1N1YnRpdGxlIiwiU0NBQVNDb250ZW50IiwiU0NBQVNTZWN0aW9uIiwiU0NBQVNTZWN0aW9uSGVhZGVyIiwiU0NBQVNTZWN0aW9uVGl0bGUiLCJTQ0FBU1NlY3Rpb25TdWJ0aXRsZSIsIlNDQUFTT3B0aW9uc0NvbnRhaW5lciIsIlNDQUFTRGl2aWRlciIsImJ1aWxkQWNjZXNzaWJpbGl0eVNlbGVjdGlvbiIsIm1hcEFjY2Vzc2liaWxpdHlBbmFseXRpY3NPcHRpb24iLCJzaG91bGRUcmFja0FjY2Vzc2liaWxpdHlDbGllbnRTZWxlY3Rpb24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDT1JfUEVSTUlTU0lPTl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkyIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTQiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk1IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTgiLCJfZm9ybVZhbHVlcyRjbGllbnRzIiwidmFsdWVzIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsImNvckFjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsImNvbm5lY3RvclN0YXR1c2VzIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZm9ybVZhbHVlcyIsInNldEZvcm1WYWx1ZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImNhdGFsb2dDb25uZWN0b3JzIiwic2V0Q2F0YWxvZ0Nvbm5lY3RvcnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImF1dGhvcml6aW5nU2x1ZyIsInNldEF1dGhvcml6aW5nU2x1ZyIsImV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQiLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJvcHRpb24iLCJhY2Nlc3NpYmlsaXR5VHlwZSIsImFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQiLCJfb2JqZWN0U3ByZWFkIiwiaGFuZGxlQ29yQWNjZXNzQ2hhbmdlIiwiY2hlY2tlZCIsImNvbm5lY3RvckNvciIsInByZXYiLCJfZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVDb25uZWN0b3JBY2Nlc3NDaGFuZ2UiLCJjb25uZWN0b3JNY3AiLCJuZXh0IiwiU2V0IiwiYWRkIiwiQXJyYXkiLCJmcm9tIiwiY29ubmVjdG9yQWN0aW9uTGFiZWwiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsImhhbmRsZUNvbm5lY3RvckF1dGhvcml6YXRpb24iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3ZhbHVlcyRnZW5lcmFsIiwiYWdlbnRJZCIsInBvcHVwIiwiX3lpZWxkJHdhaXRGb3JDb25uZWN0IiwiYXV0aG9yaXplZCIsImVycm9yIiwiY29ubmVjdG9ycyIsInVwZGF0ZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsImdlbmVyYWwiLCJpZCIsImFicnVwdCIsIndpbmRvdyIsIm9wZW4iLCJsb2NhdGlvbiIsImhyZWYiLCJzZW50IiwidG9TdHJpbmciLCJzbHVncyIsImNsb3NlZCIsImNsb3NlIiwiZmluZCIsImNvbm5lY3RvciIsImNvbm5lY3Rpb25fc3RhdHVzIiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk3IiwibmV4dENvbm5lY3RvcnMiLCJjdXJyZW50IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic29ydCIsImpvaW4iLCJpbmNvbWluZyIsImtleSIsInZhbHVlIiwiY2FuY2VsbGVkIiwidGhlbiIsImZpbHRlciIsImlzX2FjdGl2ZSIsImNvbnNvbGUiLCJjaGlsZHJlbiIsIiRpbmRleCIsIm1hcCIsIl9yZWYzIiwidGl0bGUiLCJjb25jYXQiLCJkZXNjcmlwdGlvbiIsIm9uQ2hhbmdlIiwibmFtZSIsImFjdGlvbkxhYmVsIiwiYWN0aW9uVG9uZSIsIm9uQWN0aW9uIiwiYWN0aW9uQnVzeSIsIm9wdGlvblNlbGVjdGVkIiwiaXNDbGllbnQiLCJwcm9wcyIsInNlbGVjdGVkQ2xpZW50cyIsImNsaWVudCIsIl9jbGllbnQkbmFtZSIsImlzX2RlbGV0ZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgT3B0aW9uQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL2F0b21zL09wdGlvbkFjY2Vzc2liaWxpdHknXG5pbXBvcnQgeyBPcHRpb25Db3JQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGF1dGhvcml6ZUNvbm5lY3RvcixcbiAgZ2V0QWdlbnRDb25uZWN0b3JzLFxuICBnZXRBdmFpbGFibGVDb25uZWN0b3JzLFxuICB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbixcbiAgdHlwZSBDYXRhbG9nQ29ubmVjdG9yLFxuICB0eXBlIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgQ29yQWNjZXNzLCBDb3JUb29sR3JvdXBTbHVnLCBERUZBVUxUX0NPUl9BQ0NFU1MgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQgeyBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MnXG5pbXBvcnQge1xuICBTQ0FBU1dyYXBwZXIsXG4gIFNDQUFTSGVhZGVyLFxuICBTQ0FBU1RpdGxlLFxuICBTQ0FBU1N1YnRpdGxlLFxuICBTQ0FBU0NvbnRlbnQsXG4gIFNDQUFTU2VjdGlvbixcbiAgU0NBQVNTZWN0aW9uSGVhZGVyLFxuICBTQ0FBU1NlY3Rpb25UaXRsZSxcbiAgU0NBQVNTZWN0aW9uU3VidGl0bGUsXG4gIFNDQUFTT3B0aW9uc0NvbnRhaW5lcixcbiAgU0NBQVNEaXZpZGVyLFxufSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IENsaWVudEZvcm1EYXRhIH0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5pbnRlcmZhY2UnXG5pbXBvcnQge1xuICBidWlsZEFjY2Vzc2liaWxpdHlTZWxlY3Rpb24sXG4gIG1hcEFjY2Vzc2liaWxpdHlBbmFseXRpY3NPcHRpb24sXG4gIHNob3VsZFRyYWNrQWNjZXNzaWJpbGl0eUNsaWVudFNlbGVjdGlvbixcbn0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5oZWxwZXJzJ1xuXG5pbnRlcmZhY2UgQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcyB7XG4gIHZhbHVlcz86IHtcbiAgICBnZW5lcmFsPzogeyBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfVxuICAgIGFjY2Vzc2liaWxpdHk/OiB7XG4gICAgICBhY2Nlc3NUeXBlPzogc3RyaW5nXG4gICAgICBjbGllbnRzPzogQ2xpZW50Rm9ybURhdGFbXSB8IG51bGxcbiAgICAgIGNvckFjY2Vzcz86IENvckFjY2Vzc1xuICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzPzogc3RyaW5nW11cbiAgICAgIGNvbm5lY3RvclN0YXR1c2VzPzogUmVjb3JkPHN0cmluZywgQ29ubmVjdG9yQ29ubmVjdGlvblN0YXR1cz5cbiAgICB9XG4gIH1cbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/OiAoeyBrZXksIHZhbHVlIH06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0pID0+IHZvaWRcbn1cblxuLy8gT3JkZW4gPSBqZXJhcnF1w61hIGRlIENPUiAoY2xpZW50ZSA+IHByb3llY3RvID4gdGFyZWEpLCBkZSBtw6FzIGFtcGxpbyBhIG3DoXMgZXNwZWPDrWZpY28uXG5jb25zdCBDT1JfUEVSTUlTU0lPTl9ST1dTOiB7IHNsdWc6IENvclRvb2xHcm91cFNsdWc7IHRpdGxlS2V5OiBzdHJpbmc7IGRlc2NyaXB0aW9uS2V5OiBzdHJpbmcgfVtdID0gW1xuICB7IHNsdWc6ICdjbGllbnRlcycsIHRpdGxlS2V5OiAnY2xpZW50QWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ2NsaWVudEFjY2Vzc0Rlc2NyaXB0aW9uJyB9LFxuICB7IHNsdWc6ICdwcm95ZWN0b3MnLCB0aXRsZUtleTogJ3Byb2plY3RBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAncHJvamVjdEFjY2Vzc0Rlc2NyaXB0aW9uJyB9LFxuICB7IHNsdWc6ICd0YXJlYXMnLCB0aXRsZUtleTogJ3Rhc2tBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAndGFza0FjY2Vzc0Rlc2NyaXB0aW9uJyB9LFxuXVxuXG5leHBvcnQgY29uc3QgQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24gPSAoeyB2YWx1ZXMsIGhhbmRsZVNldEFnZW50VmFsdWVzIH06IEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuXG4gIGNvbnN0IFtmb3JtVmFsdWVzLCBzZXRGb3JtVmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBhY2Nlc3NUeXBlOiBzdHJpbmdcbiAgICBjbGllbnRzOiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgIGNvckFjY2VzczogQ29yQWNjZXNzXG4gICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBzdHJpbmdbXVxuICAgIGNvbm5lY3RvclN0YXR1c2VzOiBSZWNvcmQ8c3RyaW5nLCBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzPlxuICB9Pih7XG4gICAgYWNjZXNzVHlwZTogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5hY2Nlc3NUeXBlIHx8ICdjb21wYW55JyxcbiAgICBjbGllbnRzOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmNsaWVudHMgfHwgbnVsbCxcbiAgICBjb3JBY2Nlc3M6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY29yQWNjZXNzID8/IERFRkFVTFRfQ09SX0FDQ0VTUyxcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uc2VsZWN0ZWRDb25uZWN0b3JzIHx8IFtdLFxuICAgIGNvbm5lY3RvclN0YXR1c2VzOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmNvbm5lY3RvclN0YXR1c2VzIHx8IHt9LFxuICB9KVxuICAvLyBFbCBjYXTDoWxvZ28gbG8gZGVmaW5lIGVsIGJhY2sgKGBHRVQgL3YxL2Nvbm5lY3RvcnNgKTsgZWwgQUJNIHJlbmRlcml6YSB1bmEgZmlsYSBwb3IgY29uZWN0b3IgYWN0aXZvLlxuICBjb25zdCBbY2F0YWxvZ0Nvbm5lY3RvcnMsIHNldENhdGFsb2dDb25uZWN0b3JzXSA9IHVzZVN0YXRlPENhdGFsb2dDb25uZWN0b3JbXT4oW10pXG4gIGNvbnN0IFthdXRob3JpemluZ1NsdWcsIHNldEF1dGhvcml6aW5nU2x1Z10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkID0gaGFzTWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcygpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gKG9wdGlvbjogc3RyaW5nLCBjbGllbnRzPzogQ2xpZW50Rm9ybURhdGFbXSB8IG51bGwpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVR5cGUsIHsgb3B0aW9uOiBtYXBBY2Nlc3NpYmlsaXR5QW5hbHl0aWNzT3B0aW9uKG9wdGlvbikgfSlcblxuICAgIGlmIChzaG91bGRUcmFja0FjY2Vzc2liaWxpdHlDbGllbnRTZWxlY3Rpb24oY2xpZW50cykpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50KVxuICAgIH1cblxuICAgIHNldEZvcm1WYWx1ZXMoe1xuICAgICAgLi4uYnVpbGRBY2Nlc3NpYmlsaXR5U2VsZWN0aW9uKG9wdGlvbiwgY2xpZW50cywgZm9ybVZhbHVlcy5jb3JBY2Nlc3MsIGZvcm1WYWx1ZXMuc2VsZWN0ZWRDb25uZWN0b3JzKSxcbiAgICAgIGNvbm5lY3RvclN0YXR1c2VzOiBmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb3JBY2Nlc3NDaGFuZ2UgPSAoc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZywgY2hlY2tlZDogYm9vbGVhbikgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5jb25uZWN0b3JDb3IsIHsgb3B0aW9uOiBjaGVja2VkID8gJ29uJyA6ICdvZmYnLCBzbHVnIH0pXG5cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBjb3JBY2Nlc3M6IHsgLi4ucHJldi5jb3JBY2Nlc3MsIFtzbHVnXTogY2hlY2tlZCB9LFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5jb25uZWN0b3JNY3AsIHsgb3B0aW9uOiBjaGVja2VkID8gJ29uJyA6ICdvZmYnLCBzbHVnIH0pXG5cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IG5ldyBTZXQocHJldi5zZWxlY3RlZENvbm5lY3RvcnMpXG4gICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICBuZXh0LmFkZChzbHVnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dC5kZWxldGUoc2x1ZylcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIHNlbGVjdGVkQ29ubmVjdG9yczogQXJyYXkuZnJvbShuZXh0KSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY29ubmVjdG9yQWN0aW9uTGFiZWwgPSAoc2x1Zzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoIWZvcm1WYWx1ZXMuc2VsZWN0ZWRDb25uZWN0b3JzLmluY2x1ZGVzKHNsdWcpKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGZvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXNbc2x1Z10gPT09ICduZWVkc19hdHRlbnRpb24nKVxuICAgICAgcmV0dXJuIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckF1dGhlbnRpY2F0ZUFjdGlvbicpXG4gICAgaWYgKGZvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXNbc2x1Z10gPT09ICdlcnJvcicpIHJldHVybiB0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JSZW9wZW5BY3Rpb24nKVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckF1dGhvcml6YXRpb24gPSBhc3luYyAoc2x1Zzogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgYWdlbnRJZCA9IHZhbHVlcz8uZ2VuZXJhbD8uaWRcbiAgICBpZiAoIWFnZW50SWQgfHwgYXV0aG9yaXppbmdTbHVnKSByZXR1cm5cblxuICAgIC8vIE9wZW4gc3luY2hyb25vdXNseSBmcm9tIHRoZSBjbGljayBzbyB0aGUgYnJvd3NlciBkb2VzIG5vdCBibG9jayBPQXV0aC5cbiAgICBjb25zdCBwb3B1cCA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJywgJ3BvcHVwPXllcyx3aWR0aD01NjAsaGVpZ2h0PTc2MCcpXG4gICAgaWYgKCFwb3B1cCkge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JQb3B1cEJsb2NrZWQnKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldEF1dGhvcml6aW5nU2x1ZyhzbHVnKVxuICAgIHRyeSB7XG4gICAgICBwb3B1cC5sb2NhdGlvbi5ocmVmID0gYXdhaXQgYXV0aG9yaXplQ29ubmVjdG9yKHNsdWcpXG4gICAgICBjb25zdCB7IGF1dGhvcml6ZWQsIGVycm9yIH0gPSBhd2FpdCB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbih7XG4gICAgICAgIGFnZW50SWQ6IGFnZW50SWQudG9TdHJpbmcoKSxcbiAgICAgICAgc2x1Z3M6IFtzbHVnXSxcbiAgICAgICAgcG9wdXAsXG4gICAgICB9KVxuICAgICAgaWYgKCFhdXRob3JpemVkLmluY2x1ZGVzKHNsdWcpKSB7XG4gICAgICAgIGlmICghcG9wdXAuY2xvc2VkKSBwb3B1cC5jbG9zZSgpXG4gICAgICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiAoeyAuLi5wcmV2LCBjb25uZWN0b3JTdGF0dXNlczogeyAuLi5wcmV2LmNvbm5lY3RvclN0YXR1c2VzLCBbc2x1Z106ICdlcnJvcicgfSB9KSlcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcihlcnJvciAmJiBlcnJvciAhPT0gJ3RpbWVvdXQnID8gZXJyb3IgOiB0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JBdXRoSW5jb21wbGV0ZScpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbm5lY3RvcnMgPSBhd2FpdCBnZXRBZ2VudENvbm5lY3RvcnMoYWdlbnRJZC50b1N0cmluZygpKVxuICAgICAgY29uc3QgdXBkYXRlZCA9IGNvbm5lY3RvcnMuZmluZChjb25uZWN0b3IgPT4gY29ubmVjdG9yLnNsdWcgPT09IHNsdWcpXG4gICAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgY29ubmVjdG9yU3RhdHVzZXM6IHsgLi4ucHJldi5jb25uZWN0b3JTdGF0dXNlcywgW3NsdWddOiB1cGRhdGVkPy5jb25uZWN0aW9uX3N0YXR1cyB8fCAnb2snIH0sXG4gICAgICB9KSlcbiAgICB9IGNhdGNoIHtcbiAgICAgIGlmICghcG9wdXAuY2xvc2VkKSBwb3B1cC5jbG9zZSgpXG4gICAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4gKHsgLi4ucHJldiwgY29ubmVjdG9yU3RhdHVzZXM6IHsgLi4ucHJldi5jb25uZWN0b3JTdGF0dXNlcywgW3NsdWddOiAnZXJyb3InIH0gfSkpXG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckF1dGhGYWlsZWQnKSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0QXV0aG9yaXppbmdTbHVnKG51bGwpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBuZXh0Q29ubmVjdG9ycyA9IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uc2VsZWN0ZWRDb25uZWN0b3JzXG4gICAgaWYgKCFuZXh0Q29ubmVjdG9ycykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldEZvcm1WYWx1ZXMocHJldiA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gWy4uLnByZXYuc2VsZWN0ZWRDb25uZWN0b3JzXS5zb3J0KCkuam9pbignfCcpXG4gICAgICBjb25zdCBpbmNvbWluZyA9IFsuLi5uZXh0Q29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgaWYgKGN1cnJlbnQgPT09IGluY29taW5nKSB7XG4gICAgICAgIHJldHVybiBwcmV2XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IG5leHRDb25uZWN0b3JzLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFt2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9ybVZhbHVlcykge1xuICAgICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/Lih7XG4gICAgICAgIGtleTogJ2FjY2Vzc2liaWxpdHknLFxuICAgICAgICB2YWx1ZTogZm9ybVZhbHVlcyxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbZm9ybVZhbHVlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZVxuICAgIGdldEF2YWlsYWJsZUNvbm5lY3RvcnMoKVxuICAgICAgLnRoZW4oY29ubmVjdG9ycyA9PiB7XG4gICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnMoY29ubmVjdG9ycy5maWx0ZXIoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5pc19hY3RpdmUpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgY29ubmVjdG9ycyBjYXRhbG9nOicsIGVycm9yKVxuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKFtdKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICB9LCBbZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBQVNXcmFwcGVyPlxuICAgICAgPFNDQUFTSGVhZGVyICRpbmRleD17MH0+XG4gICAgICAgIDxTQ0FBU1RpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi50aXRsZVNlY3Rpb24nKX08L1NDQUFTVGl0bGU+XG4gICAgICAgIDxTQ0FBU1N1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdWJ0aXRsZVNlY3Rpb24nKX08L1NDQUFTU3VidGl0bGU+XG4gICAgICA8L1NDQUFTSGVhZGVyPlxuICAgICAgPFNDQUFTQ29udGVudCAkaW5kZXg9ezF9PlxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvclBlcm1pc3Npb25zVGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICB7Q09SX1BFUk1JU1NJT05fUk9XUy5tYXAoKHsgc2x1ZywgdGl0bGVLZXksIGRlc2NyaXB0aW9uS2V5IH0pID0+IChcbiAgICAgICAgICAgIDxPcHRpb25Db3JQZXJtaXNzaW9uXG4gICAgICAgICAgICAgIGtleT17c2x1Z31cbiAgICAgICAgICAgICAgdGl0bGU9e3QoYGFjY2Vzc2liaWxpdHlTZWN0aW9uLiR7dGl0bGVLZXl9YCl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke2Rlc2NyaXB0aW9uS2V5fWApfVxuICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtVmFsdWVzLmNvckFjY2Vzc1tzbHVnXX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29yQWNjZXNzQ2hhbmdlKHNsdWcsIGNoZWNrZWQpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0FBU1NlY3Rpb24+XG5cbiAgICAgICAge2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8U0NBQVNEaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb24+XG4gICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm1jcFBlcm1pc3Npb25zU3VidGl0bGUnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgICAge2NhdGFsb2dDb25uZWN0b3JzLm1hcChjb25uZWN0b3IgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25Db3JQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2Nvbm5lY3Rvci5zbHVnfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e2Nvbm5lY3Rvci5uYW1lfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3IuZGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQWNjZXNzRGVzY3JpcHRpb24nLCB7IG5hbWU6IGNvbm5lY3Rvci5uYW1lIH0pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtVmFsdWVzLnNlbGVjdGVkQ29ubmVjdG9ycy5pbmNsdWRlcyhjb25uZWN0b3Iuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17Y2hlY2tlZCA9PiBoYW5kbGVDb25uZWN0b3JBY2Nlc3NDaGFuZ2UoY29ubmVjdG9yLnNsdWcsIGNoZWNrZWQpfVxuICAgICAgICAgICAgICAgICAgYWN0aW9uTGFiZWw9e2Nvbm5lY3RvckFjdGlvbkxhYmVsKGNvbm5lY3Rvci5zbHVnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvblRvbmU9e2Zvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXNbY29ubmVjdG9yLnNsdWddID09PSAnZXJyb3InID8gJ2Vycm9yJyA6ICdhdHRlbnRpb24nfVxuICAgICAgICAgICAgICAgICAgb25BY3Rpb249eygpID0+IGhhbmRsZUNvbm5lY3RvckF1dGhvcml6YXRpb24oY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgYWN0aW9uQnVzeT17YXV0aG9yaXppbmdTbHVnID09PSBjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDM0MsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSw0QkFBNEI7QUFDN0QsU0FDRUMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLHNCQUFzQixFQUN0QkMsNkJBQTZCLFFBR3hCLDZDQUE2QztBQUNwRCxTQUFTQyxrQkFBa0IsUUFBUSx5REFBeUQ7QUFDNUYsU0FBc0NDLGtCQUFrQixRQUFRLDRDQUE0QztBQUM1RyxTQUFTQywrQkFBK0IsUUFBUSxvREFBb0Q7QUFDcEcsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsYUFBYSxFQUNiQyxZQUFZ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
|
|
@@ -8,13 +8,12 @@ export var getUniqueString = function getUniqueString(prevStrings, stringToChang
|
|
|
8
8
|
_stringToChange$split3 = _stringToChange$split2[1],
|
|
9
9
|
extension = _stringToChange$split3 === void 0 ? '' : _stringToChange$split3;
|
|
10
10
|
var ext = extension ? ".".concat(extension) : '';
|
|
11
|
-
|
|
12
|
-
if (!prevStringsSet.has(stringToChange)) {
|
|
11
|
+
if (!(prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(stringToChange))) {
|
|
13
12
|
return stringToChange;
|
|
14
13
|
}
|
|
15
14
|
var counter = 1;
|
|
16
15
|
var newFilename = stringToChange;
|
|
17
|
-
while (
|
|
16
|
+
while (prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(newFilename)) {
|
|
18
17
|
newFilename = "".concat(filename, "(").concat(counter, ")").concat(ext);
|
|
19
18
|
counter += 1;
|
|
20
19
|
}
|
|
@@ -44,12 +43,11 @@ export var processKnowledgeFiles = function processKnowledgeFiles(_ref) {
|
|
|
44
43
|
return attachment.name;
|
|
45
44
|
});
|
|
46
45
|
var runningTotalSize = computeAttachmentsTotalSize(existingAttachments);
|
|
47
|
-
var allowedExtensionSet = new Set(allowedExtensions);
|
|
48
46
|
files.forEach(function (file) {
|
|
49
47
|
var _fileNameParts$pop;
|
|
50
48
|
var fileNameParts = file.name.split('.');
|
|
51
49
|
var fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
|
|
52
|
-
if (!
|
|
50
|
+
if (!allowedExtensions.includes(fileExtension)) {
|
|
53
51
|
invalidExtensionFiles.push(file.name);
|
|
54
52
|
return;
|
|
55
53
|
}
|
|
@@ -132,4 +130,4 @@ export var createClosedKnowledgeFileErrorModalState = function createClosedKnowl
|
|
|
132
130
|
invalidExtensionFiles: []
|
|
133
131
|
};
|
|
134
132
|
};
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJwcmV2U3RyaW5nc1NldCIsIlNldCIsImhhcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsImNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSIsImF0dGFjaG1lbnRzIiwicmVkdWNlIiwidG90YWwiLCJhdHRhY2htZW50Iiwic2l6ZSIsIk51bWJlciIsImlzTmFOIiwicHJvY2Vzc0tub3dsZWRnZUZpbGVzIiwiX3JlZiIsImZpbGVzIiwiZXhpc3RpbmdBdHRhY2htZW50cyIsImFsbG93ZWRFeHRlbnNpb25zIiwiZmlsZVR5cGVzIiwiX3JlZiRtYXhUb3RhbFNpemUiLCJtYXhUb3RhbFNpemUiLCJfcmVmJGNyZWF0ZUlkIiwiY3JlYXRlSWQiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJydW5uaW5nVG90YWxTaXplIiwiYWxsb3dlZEV4dGVuc2lvblNldCIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJsZW5ndGgiLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInB1c2giLCJuZXdUb3RhbFNpemUiLCJ0eXBlRmlsZSIsInR5cGUiLCJ1bmlxdWVOYW1lIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJhdHRhY2htZW50RmlsZSIsImlkIiwic3RhdHVzIiwiaGFzRXJyb3JzIiwiY2FuUHJldmlld0tub3dsZWRnZUF0dGFjaG1lbnQiLCJvcmlnaW5hbEZpbGUiLCJCb29sZWFuIiwidXJsX3RodW1ibmFpbCIsInVybF9vcmlnaW5hbCIsInVybF9maWxlIiwic2hvdWxkQmxvY2tLbm93bGVkZ2VVcGxvYWQiLCJpc0F0U2l6ZUxpbWl0Iiwic2hvdWxkRW5hYmxlS25vd2xlZGdlRHJhZ1N0YXRlIiwic2hvdWxkUHJvY2Vzc0tub3dsZWRnZUZpbGVJbnB1dCIsImFwcGVuZEtub3dsZWRnZUF0dGFjaG1lbnRzIiwiY3VycmVudCIsImluc2VydGVkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwicmVtb3ZlS25vd2xlZGdlQXR0YWNobWVudEJ5SW5kZXgiLCJpbmRleCIsImZpbHRlciIsIl8iLCJhdHRhY2htZW50SW5kZXgiLCJyZXNvbHZlS25vd2xlZGdlQXR0YWNobWVudEF0SW5kZXgiLCJfYXR0YWNobWVudHMkaW5kZXgiLCJzaG91bGRSdW5Lbm93bGVkZ2VEb3dubG9hZEVmZmVjdCIsInN1Y2Nlc3MiLCJlcnJvciIsImlzTG9hZGluZyIsInNob3VsZEhhbmRsZUtub3dsZWRnZUF0dGFjaG1lbnRBY3Rpb24iLCJpc0Rvd25sb2FkaW5nIiwicmVzb2x2ZUtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUiLCJpbnB1dCIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJjcmVhdGVDbG9zZWRLbm93bGVkZ2VGaWxlRXJyb3JNb2RhbFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtS25vd2xlZGdlU2VjdGlvbi5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5cbmV4cG9ydCBjb25zdCBNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUgPSA1ICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGNvbnN0IGdldFVuaXF1ZVN0cmluZyA9IChwcmV2U3RyaW5nczogc3RyaW5nW10sIHN0cmluZ1RvQ2hhbmdlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBbZmlsZW5hbWUsIGV4dGVuc2lvbiA9ICcnXSA9IHN0cmluZ1RvQ2hhbmdlLnNwbGl0KCcuJylcbiAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uID8gYC4ke2V4dGVuc2lvbn1gIDogJydcblxuICBjb25zdCBwcmV2U3RyaW5nc1NldCA9IG5ldyBTZXQocHJldlN0cmluZ3MpXG5cbiAgaWYgKCFwcmV2U3RyaW5nc1NldC5oYXMoc3RyaW5nVG9DaGFuZ2UpKSB7XG4gICAgcmV0dXJuIHN0cmluZ1RvQ2hhbmdlXG4gIH1cblxuICBsZXQgY291bnRlciA9IDFcbiAgbGV0IG5ld0ZpbGVuYW1lID0gc3RyaW5nVG9DaGFuZ2VcbiAgd2hpbGUgKHByZXZTdHJpbmdzU2V0LmhhcyhuZXdGaWxlbmFtZSkpIHtcbiAgICBuZXdGaWxlbmFtZSA9IGAke2ZpbGVuYW1lfSgke2NvdW50ZXJ9KSR7ZXh0fWBcbiAgICBjb3VudGVyICs9IDFcbiAgfVxuXG4gIHJldHVybiBuZXdGaWxlbmFtZVxufVxuXG5leHBvcnQgY29uc3QgY29tcHV0ZUF0dGFjaG1lbnRzVG90YWxTaXplID0gKGF0dGFjaG1lbnRzOiBQaWNrPEF0dGFjaG1lbnRGaWxlLCAnc2l6ZSc+W10pOiBudW1iZXIgPT5cbiAgYXR0YWNobWVudHMucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgIGNvbnN0IHNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgcmV0dXJuIHRvdGFsICsgKE51bWJlci5pc05hTihzaXplKSA/IDAgOiBzaXplKVxuICB9LCAwKVxuXG5leHBvcnQgdHlwZSBQcm9jZXNzS25vd2xlZGdlRmlsZXNSZXN1bHQgPSB7XG4gIGluc2VydGVkRmlsZXM6IEF0dGFjaG1lbnRGaWxlW11cbiAgZXhjZWVkZWRGaWxlczogc3RyaW5nW11cbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXVxuICBoYXNFcnJvcnM6IGJvb2xlYW5cbn1cblxudHlwZSBQcm9jZXNzS25vd2xlZGdlRmlsZXNPcHRpb25zID0ge1xuICBmaWxlczogRmlsZVtdXG4gIGV4aXN0aW5nQXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZ1tdXG4gIGZpbGVUeXBlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBtYXhUb3RhbFNpemU/OiBudW1iZXJcbiAgY3JlYXRlSWQ/OiAoKSA9PiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHByb2Nlc3NLbm93bGVkZ2VGaWxlcyA9ICh7XG4gIGZpbGVzLFxuICBleGlzdGluZ0F0dGFjaG1lbnRzLFxuICBhbGxvd2VkRXh0ZW5zaW9ucyxcbiAgZmlsZVR5cGVzLFxuICBtYXhUb3RhbFNpemUgPSBNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUsXG4gIGNyZWF0ZUlkID0gKCkgPT4gYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsXG59OiBQcm9jZXNzS25vd2xlZGdlRmlsZXNPcHRpb25zKTogUHJvY2Vzc0tub3dsZWRnZUZpbGVzUmVzdWx0ID0+IHtcbiAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICBjb25zdCBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgaW5zZXJ0ZWRGaWxlczogQXR0YWNobWVudEZpbGVbXSA9IFtdXG4gIGNvbnN0IGF0dGFjaG1lbnRzTmFtZXMgPSBleGlzdGluZ0F0dGFjaG1lbnRzLm1hcChhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQubmFtZSlcbiAgbGV0IHJ1bm5pbmdUb3RhbFNpemUgPSBjb21wdXRlQXR0YWNobWVudHNUb3RhbFNpemUoZXhpc3RpbmdBdHRhY2htZW50cylcblxuICBjb25zdCBhbGxvd2VkRXh0ZW5zaW9uU2V0ID0gbmV3IFNldChhbGxvd2VkRXh0ZW5zaW9ucylcblxuICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgIGlmICghYWxsb3dlZEV4dGVuc2lvblNldC5oYXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIGludmFsaWRFeHRlbnNpb25GaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG5ld1RvdGFsU2l6ZSA9IHJ1bm5pbmdUb3RhbFNpemUgKyBmaWxlLnNpemVcbiAgICBpZiAobmV3VG90YWxTaXplID4gbWF4VG90YWxTaXplKSB7XG4gICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgY29uc3QgdW5pcXVlTmFtZSA9IGdldFVuaXF1ZVN0cmluZyhhdHRhY2htZW50c05hbWVzLCBmaWxlLm5hbWUpXG4gICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgdW5pcXVlTmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuXG4gICAgY29uc3QgYXR0YWNobWVudEZpbGU6IEF0dGFjaG1lbnRGaWxlID0ge1xuICAgICAgZmlsZTogcGFyc2VkRmlsZSxcbiAgICAgIGlkOiBjcmVhdGVJZCgpLFxuICAgICAgbmFtZTogdW5pcXVlTmFtZSxcbiAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHR5cGVGaWxlLFxuICAgICAgc3RhdHVzOiAnc3RhcnRlZCcsXG4gICAgfVxuXG4gICAgaW5zZXJ0ZWRGaWxlcy5wdXNoKGF0dGFjaG1lbnRGaWxlKVxuICAgIGF0dGFjaG1lbnRzTmFtZXMucHVzaCh1bmlxdWVOYW1lKVxuICAgIHJ1bm5pbmdUb3RhbFNpemUgKz0gZmlsZS5zaXplXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBpbnNlcnRlZEZpbGVzLFxuICAgIGV4Y2VlZGVkRmlsZXMsXG4gICAgaW52YWxpZEV4dGVuc2lvbkZpbGVzLFxuICAgIGhhc0Vycm9yczogaW52YWxpZEV4dGVuc2lvbkZpbGVzLmxlbmd0aCA+IDAgfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGggPiAwLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjYW5QcmV2aWV3S25vd2xlZGdlQXR0YWNobWVudCA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSk6IGJvb2xlYW4gPT4ge1xuICBpZiAoYXR0YWNobWVudC5zdGF0dXMgPT09ICdmYWlsZWQnKSByZXR1cm4gZmFsc2VcblxuICByZXR1cm4gKFxuICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICBhdHRhY2htZW50Lm9yaWdpbmFsRmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICBCb29sZWFuKGF0dGFjaG1lbnQudXJsX3RodW1ibmFpbCB8fCBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fCBhdHRhY2htZW50LnVybF9maWxlKVxuICApXG59XG5cbmV4cG9ydCBjb25zdCBzaG91bGRCbG9ja0tub3dsZWRnZVVwbG9hZCA9IChpc0F0U2l6ZUxpbWl0OiBib29sZWFuKTogYm9vbGVhbiA9PiBpc0F0U2l6ZUxpbWl0XG5cbmV4cG9ydCBjb25zdCBzaG91bGRFbmFibGVLbm93bGVkZ2VEcmFnU3RhdGUgPSAoaXNBdFNpemVMaW1pdDogYm9vbGVhbik6IGJvb2xlYW4gPT4gIWlzQXRTaXplTGltaXRcblxuZXhwb3J0IGNvbnN0IHNob3VsZFByb2Nlc3NLbm93bGVkZ2VGaWxlSW5wdXQgPSAoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGZpbGVzIGlzIEZpbGVMaXN0ID0+XG4gIEJvb2xlYW4oZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMClcblxuZXhwb3J0IGNvbnN0IGFwcGVuZEtub3dsZWRnZUF0dGFjaG1lbnRzID0gKGN1cnJlbnQ6IEF0dGFjaG1lbnRGaWxlW10sIGluc2VydGVkOiBBdHRhY2htZW50RmlsZVtdKTogQXR0YWNobWVudEZpbGVbXSA9PiBbXG4gIC4uLihjdXJyZW50IHx8IFtdKSxcbiAgLi4uaW5zZXJ0ZWQsXG5dXG5cbmV4cG9ydCBjb25zdCByZW1vdmVLbm93bGVkZ2VBdHRhY2htZW50QnlJbmRleCA9IChcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW10sXG4gIGluZGV4OiBudW1iZXJcbik6IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsID0+IHtcbiAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBhdHRhY2htZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiBhdHRhY2htZW50cy5maWx0ZXIoKF8sIGF0dGFjaG1lbnRJbmRleCkgPT4gYXR0YWNobWVudEluZGV4ICE9PSBpbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVLbm93bGVkZ2VBdHRhY2htZW50QXRJbmRleCA9IChcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW10sXG4gIGluZGV4OiBudW1iZXJcbik6IEF0dGFjaG1lbnRGaWxlIHwgbnVsbCA9PiBhdHRhY2htZW50c1tpbmRleF0gPz8gbnVsbFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkUnVuS25vd2xlZGdlRG93bmxvYWRFZmZlY3QgPSAoXG4gIHN1Y2Nlc3M6IHVua25vd24sXG4gIGVycm9yOiB1bmtub3duLFxuICBpc0xvYWRpbmc6IGJvb2xlYW5cbik6IHN1Y2Nlc3MgaXMgeyBibG9iOiBCbG9iOyBmaWxlbmFtZTogc3RyaW5nIH0gPT4gQm9vbGVhbihzdWNjZXNzICYmICFlcnJvciAmJiAhaXNMb2FkaW5nKVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkSGFuZGxlS25vd2xlZGdlQXR0YWNobWVudEFjdGlvbiA9IChpc0Rvd25sb2FkaW5nOiBib29sZWFuKTogYm9vbGVhbiA9PiAhaXNEb3dubG9hZGluZ1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUgPSAoaW5wdXQ6IHtcbiAgZXhjZWVkZWRGaWxlczogc3RyaW5nW11cbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXVxufSk6IHtcbiAgaXNPcGVuOiBib29sZWFuXG4gIGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbn0gPT4gKHtcbiAgaXNPcGVuOiB0cnVlLFxuICBleGNsdWRlZEZpbGVzOiBbXSxcbiAgZXhjZWVkZWRGaWxlczogaW5wdXQuZXhjZWVkZWRGaWxlcyxcbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBpbnB1dC5pbnZhbGlkRXh0ZW5zaW9uRmlsZXMsXG59KVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ2xvc2VkS25vd2xlZGdlRmlsZUVycm9yTW9kYWxTdGF0ZSA9ICgpOiB7XG4gIGlzT3BlbjogYm9vbGVhblxuICBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXVxuICBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXVxuICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdXG59ID0+ICh7XG4gIGlzT3BlbjogZmFsc2UsXG4gIGV4Y2x1ZGVkRmlsZXM6IFtdLFxuICBleGNlZWRlZEZpbGVzOiBbXSxcbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBbXSxcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBTyxJQUFNQSx3QkFBd0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFFdkQsT0FBTyxJQUFNQyxlQUFlLEdBQUcsU0FBbEJB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
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsImNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSIsImF0dGFjaG1lbnRzIiwicmVkdWNlIiwidG90YWwiLCJhdHRhY2htZW50Iiwic2l6ZSIsIk51bWJlciIsImlzTmFOIiwicHJvY2Vzc0tub3dsZWRnZUZpbGVzIiwiX3JlZiIsImZpbGVzIiwiZXhpc3RpbmdBdHRhY2htZW50cyIsImFsbG93ZWRFeHRlbnNpb25zIiwiZmlsZVR5cGVzIiwiX3JlZiRtYXhUb3RhbFNpemUiLCJtYXhUb3RhbFNpemUiLCJfcmVmJGNyZWF0ZUlkIiwiY3JlYXRlSWQiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJydW5uaW5nVG90YWxTaXplIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImxlbmd0aCIsInBvcCIsInRvTG93ZXJDYXNlIiwicHVzaCIsIm5ld1RvdGFsU2l6ZSIsInR5cGVGaWxlIiwidHlwZSIsInVuaXF1ZU5hbWUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsImF0dGFjaG1lbnRGaWxlIiwiaWQiLCJzdGF0dXMiLCJoYXNFcnJvcnMiLCJjYW5QcmV2aWV3S25vd2xlZGdlQXR0YWNobWVudCIsIm9yaWdpbmFsRmlsZSIsIkJvb2xlYW4iLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJzaG91bGRCbG9ja0tub3dsZWRnZVVwbG9hZCIsImlzQXRTaXplTGltaXQiLCJzaG91bGRFbmFibGVLbm93bGVkZ2VEcmFnU3RhdGUiLCJzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0IiwiYXBwZW5kS25vd2xlZGdlQXR0YWNobWVudHMiLCJjdXJyZW50IiwiaW5zZXJ0ZWQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyZW1vdmVLbm93bGVkZ2VBdHRhY2htZW50QnlJbmRleCIsImluZGV4IiwiZmlsdGVyIiwiXyIsImF0dGFjaG1lbnRJbmRleCIsInJlc29sdmVLbm93bGVkZ2VBdHRhY2htZW50QXRJbmRleCIsIl9hdHRhY2htZW50cyRpbmRleCIsInNob3VsZFJ1bktub3dsZWRnZURvd25sb2FkRWZmZWN0Iiwic3VjY2VzcyIsImVycm9yIiwiaXNMb2FkaW5nIiwic2hvdWxkSGFuZGxlS25vd2xlZGdlQXR0YWNobWVudEFjdGlvbiIsImlzRG93bmxvYWRpbmciLCJyZXNvbHZlS25vd2xlZGdlRmlsZUVycm9yTW9kYWxTdGF0ZSIsImlucHV0IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1Lbm93bGVkZ2VTZWN0aW9uLmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcblxuZXhwb3J0IGNvbnN0IE1BWF9LTk9XTEVER0VfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNFxuXG5leHBvcnQgY29uc3QgZ2V0VW5pcXVlU3RyaW5nID0gKHByZXZTdHJpbmdzOiBzdHJpbmdbXSwgc3RyaW5nVG9DaGFuZ2U6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFtmaWxlbmFtZSwgZXh0ZW5zaW9uID0gJyddID0gc3RyaW5nVG9DaGFuZ2Uuc3BsaXQoJy4nKVxuICBjb25zdCBleHQgPSBleHRlbnNpb24gPyBgLiR7ZXh0ZW5zaW9ufWAgOiAnJ1xuXG4gIGlmICghcHJldlN0cmluZ3M/LmluY2x1ZGVzKHN0cmluZ1RvQ2hhbmdlKSkge1xuICAgIHJldHVybiBzdHJpbmdUb0NoYW5nZVxuICB9XG5cbiAgbGV0IGNvdW50ZXIgPSAxXG4gIGxldCBuZXdGaWxlbmFtZSA9IHN0cmluZ1RvQ2hhbmdlXG4gIHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKSB7XG4gICAgbmV3RmlsZW5hbWUgPSBgJHtmaWxlbmFtZX0oJHtjb3VudGVyfSkke2V4dH1gXG4gICAgY291bnRlciArPSAxXG4gIH1cblxuICByZXR1cm4gbmV3RmlsZW5hbWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSA9IChhdHRhY2htZW50czogUGljazxBdHRhY2htZW50RmlsZSwgJ3NpemUnPltdKTogbnVtYmVyID0+XG4gIGF0dGFjaG1lbnRzLnJlZHVjZSgodG90YWwsIGF0dGFjaG1lbnQpID0+IHtcbiAgICBjb25zdCBzaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgfSwgMClcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzUmVzdWx0ID0ge1xuICBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdXG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbiAgaGFzRXJyb3JzOiBib29sZWFuXG59XG5cbnR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyA9IHtcbiAgZmlsZXM6IEZpbGVbXVxuICBleGlzdGluZ0F0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmdbXVxuICBmaWxlVHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgbWF4VG90YWxTaXplPzogbnVtYmVyXG4gIGNyZWF0ZUlkPzogKCkgPT4gc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBwcm9jZXNzS25vd2xlZGdlRmlsZXMgPSAoe1xuICBmaWxlcyxcbiAgZXhpc3RpbmdBdHRhY2htZW50cyxcbiAgYWxsb3dlZEV4dGVuc2lvbnMsXG4gIGZpbGVUeXBlcyxcbiAgbWF4VG90YWxTaXplID0gTUFYX0tOT1dMRURHRV9UT1RBTF9TSVpFLFxuICBjcmVhdGVJZCA9ICgpID0+IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxufTogUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyk6IFByb2Nlc3NLbm93bGVkZ2VGaWxlc1Jlc3VsdCA9PiB7XG4gIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IGluc2VydGVkRmlsZXM6IEF0dGFjaG1lbnRGaWxlW10gPSBbXVxuICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gZXhpc3RpbmdBdHRhY2htZW50cy5tYXAoYXR0YWNobWVudCA9PiBhdHRhY2htZW50Lm5hbWUpXG4gIGxldCBydW5uaW5nVG90YWxTaXplID0gY29tcHV0ZUF0dGFjaG1lbnRzVG90YWxTaXplKGV4aXN0aW5nQXR0YWNobWVudHMpXG5cbiAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICBpZiAoIWFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBuZXdUb3RhbFNpemUgPSBydW5uaW5nVG90YWxTaXplICsgZmlsZS5zaXplXG4gICAgaWYgKG5ld1RvdGFsU2l6ZSA+IG1heFRvdGFsU2l6ZSkge1xuICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIHVuaXF1ZU5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcblxuICAgIGNvbnN0IGF0dGFjaG1lbnRGaWxlOiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICBpZDogY3JlYXRlSWQoKSxcbiAgICAgIG5hbWU6IHVuaXF1ZU5hbWUsXG4gICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgIHN0YXR1czogJ3N0YXJ0ZWQnLFxuICAgIH1cblxuICAgIGluc2VydGVkRmlsZXMucHVzaChhdHRhY2htZW50RmlsZSlcbiAgICBhdHRhY2htZW50c05hbWVzLnB1c2godW5pcXVlTmFtZSlcbiAgICBydW5uaW5nVG90YWxTaXplICs9IGZpbGUuc2l6ZVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaW5zZXJ0ZWRGaWxlcyxcbiAgICBleGNlZWRlZEZpbGVzLFxuICAgIGludmFsaWRFeHRlbnNpb25GaWxlcyxcbiAgICBoYXNFcnJvcnM6IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2FuUHJldmlld0tub3dsZWRnZUF0dGFjaG1lbnQgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpOiBib29sZWFuID0+IHtcbiAgaWYgKGF0dGFjaG1lbnQuc3RhdHVzID09PSAnZmFpbGVkJykgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIChcbiAgICBhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgQm9vbGVhbihhdHRhY2htZW50LnVybF90aHVtYm5haWwgfHwgYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfHwgYXR0YWNobWVudC51cmxfZmlsZSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkQmxvY2tLbm93bGVkZ2VVcGxvYWQgPSAoaXNBdFNpemVMaW1pdDogYm9vbGVhbik6IGJvb2xlYW4gPT4gaXNBdFNpemVMaW1pdFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkRW5hYmxlS25vd2xlZGdlRHJhZ1N0YXRlID0gKGlzQXRTaXplTGltaXQ6IGJvb2xlYW4pOiBib29sZWFuID0+ICFpc0F0U2l6ZUxpbWl0XG5cbmV4cG9ydCBjb25zdCBzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0ID0gKGZpbGVzOiBGaWxlTGlzdCB8IG51bGwgfCB1bmRlZmluZWQpOiBmaWxlcyBpcyBGaWxlTGlzdCA9PlxuICBCb29sZWFuKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApXG5cbmV4cG9ydCBjb25zdCBhcHBlbmRLbm93bGVkZ2VBdHRhY2htZW50cyA9IChjdXJyZW50OiBBdHRhY2htZW50RmlsZVtdLCBpbnNlcnRlZDogQXR0YWNobWVudEZpbGVbXSk6IEF0dGFjaG1lbnRGaWxlW10gPT4gW1xuICAuLi4oY3VycmVudCB8fCBbXSksXG4gIC4uLmluc2VydGVkLFxuXVxuXG5leHBvcnQgY29uc3QgcmVtb3ZlS25vd2xlZGdlQXR0YWNobWVudEJ5SW5kZXggPSAoXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdLFxuICBpbmRleDogbnVtYmVyXG4pOiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCA9PiB7XG4gIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gYXR0YWNobWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKChfLCBhdHRhY2htZW50SW5kZXgpID0+IGF0dGFjaG1lbnRJbmRleCAhPT0gaW5kZXgpXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlS25vd2xlZGdlQXR0YWNobWVudEF0SW5kZXggPSAoXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdLFxuICBpbmRleDogbnVtYmVyXG4pOiBBdHRhY2htZW50RmlsZSB8IG51bGwgPT4gYXR0YWNobWVudHNbaW5kZXhdID8/IG51bGxcblxuZXhwb3J0IGNvbnN0IHNob3VsZFJ1bktub3dsZWRnZURvd25sb2FkRWZmZWN0ID0gKFxuICBzdWNjZXNzOiB1bmtub3duLFxuICBlcnJvcjogdW5rbm93bixcbiAgaXNMb2FkaW5nOiBib29sZWFuXG4pOiBzdWNjZXNzIGlzIHsgYmxvYjogQmxvYjsgZmlsZW5hbWU6IHN0cmluZyB9ID0+IEJvb2xlYW4oc3VjY2VzcyAmJiAhZXJyb3IgJiYgIWlzTG9hZGluZylcblxuZXhwb3J0IGNvbnN0IHNob3VsZEhhbmRsZUtub3dsZWRnZUF0dGFjaG1lbnRBY3Rpb24gPSAoaXNEb3dubG9hZGluZzogYm9vbGVhbik6IGJvb2xlYW4gPT4gIWlzRG93bmxvYWRpbmdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVLbm93bGVkZ2VGaWxlRXJyb3JNb2RhbFN0YXRlID0gKGlucHV0OiB7XG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbn0pOiB7XG4gIGlzT3BlbjogYm9vbGVhblxuICBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXVxuICBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXVxuICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdXG59ID0+ICh7XG4gIGlzT3BlbjogdHJ1ZSxcbiAgZXhjbHVkZWRGaWxlczogW10sXG4gIGV4Y2VlZGVkRmlsZXM6IGlucHV0LmV4Y2VlZGVkRmlsZXMsXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogaW5wdXQuaW52YWxpZEV4dGVuc2lvbkZpbGVzLFxufSlcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUgPSAoKToge1xuICBpc09wZW46IGJvb2xlYW5cbiAgZXhjbHVkZWRGaWxlczogc3RyaW5nW11cbiAgZXhjZWVkZWRGaWxlczogc3RyaW5nW11cbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXVxufSA9PiAoe1xuICBpc09wZW46IGZhbHNlLFxuICBleGNsdWRlZEZpbGVzOiBbXSxcbiAgZXhjZWVkZWRGaWxlczogW10sXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogW10sXG59KVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sSUFBTUEsd0JBQXdCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0FBRXZELE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxXQUFxQixFQUFFQyxjQUFzQixFQUFhO0VBQ3hGLElBQUFDLHFCQUFBLEdBQW1DRCxjQUFjLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFBQUMsc0JBQUEsR0FBQUMsY0FBQSxDQUFBSCxxQkFBQTtJQUFyREksUUFBUSxH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
|