@projectcor/maia-components 2.29.0 → 2.30.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +656 -0
- package/lib/App.js +55 -0
- package/lib/components/atoms/ActionableButton.js +60 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
- package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
- package/lib/components/atoms/ApprovalBox/index.js +2 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
- package/lib/components/atoms/AttachmentCard/index.js +4 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
- package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
- package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
- package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
- package/lib/components/atoms/Backdrop/index.js +2 -0
- package/lib/components/atoms/CardItem.js +7 -0
- package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
- package/lib/components/atoms/CardMenu/index.js +2 -0
- package/lib/components/atoms/CardMenu/styles.js +21 -0
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
- package/lib/components/atoms/ChatClientSelector/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
- package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
- package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
- package/lib/components/atoms/Checkbox/index.js +2 -0
- package/lib/components/atoms/Checkbox/styles.js +39 -0
- package/lib/components/atoms/Chip/Chip.js +150 -0
- package/lib/components/atoms/Chip/index.js +2 -0
- package/lib/components/atoms/Chip/styles.js +43 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
- package/lib/components/atoms/ChipLlm/index.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
- package/lib/components/atoms/ChipStatus/index.js +2 -0
- package/lib/components/atoms/ClearButton.js +6 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
- package/lib/components/atoms/ClientSelector/index.js +2 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +445 -0
- package/lib/components/atoms/ContextMentionChip/index.js +4 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +533 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
- package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +282 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +148 -0
- package/lib/components/atoms/ContextMentionItem/index.js +2 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +290 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
- package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
- package/lib/components/atoms/CopyToClipboard.js +70 -0
- package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
- package/lib/components/atoms/EditableLabel/index.js +2 -0
- package/lib/components/atoms/EditableLabel/styles.js +7 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
- package/lib/components/atoms/EmptySearchClients/index.js +2 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
- package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
- package/lib/components/atoms/EntitySelector/index.js +2 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
- package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
- package/lib/components/atoms/Expand/Expand.js +32 -0
- package/lib/components/atoms/Expand/index.js +2 -0
- package/lib/components/atoms/Fade/Fade.js +56 -0
- package/lib/components/atoms/Fade/index.js +2 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
- package/lib/components/atoms/FeedbackButton/index.js +2 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
- package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
- package/lib/components/atoms/GoBackButton.js +24 -0
- package/lib/components/atoms/HelpButton.js +44 -0
- package/lib/components/atoms/IconButton.js +56 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
- package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
- package/lib/components/atoms/Input/CustomInput.js +91 -0
- package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
- package/lib/components/atoms/Input/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
- package/lib/components/atoms/ListMenuOption/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/styles.js +9 -0
- package/lib/components/atoms/Loader.js +41 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
- package/lib/components/atoms/LoadingFaqs/index.js +2 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
- package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
- package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
- package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
- package/lib/components/atoms/LoadingText/index.js +2 -0
- package/lib/components/atoms/LoadingText/styles.js +7 -0
- package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
- package/lib/components/atoms/MAIAButton/index.js +2 -0
- package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
- package/lib/components/atoms/MAIAError/index.js +2 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +1233 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
- package/lib/components/atoms/MAIAInput/index.js +2 -0
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
- package/lib/components/atoms/MAIAInput/styles.js +186 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
- package/lib/components/atoms/MAIAMessage/index.js +2 -0
- package/lib/components/atoms/MAIAMessage/styles.js +7 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
- package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
- package/lib/components/atoms/MaiaWrapper/index.js +3 -0
- package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
- package/lib/components/atoms/ModalClientAccess/index.js +2 -0
- package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
- package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
- package/lib/components/atoms/ModalInfo/index.js +3 -0
- package/lib/components/atoms/ModalInfo/styles.js +7 -0
- package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
- package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
- package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
- package/lib/components/atoms/ModalProject/index.js +2 -0
- package/lib/components/atoms/NextPageLoader.js +33 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
- package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
- package/lib/components/atoms/OptionAccessibility/index.js +2 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
- package/lib/components/atoms/OptionCorPermission/index.js +2 -0
- package/lib/components/atoms/PrimaryButton.js +31 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
- package/lib/components/atoms/ProjectSelector/index.js +2 -0
- package/lib/components/atoms/SecondaryButton.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
- package/lib/components/atoms/Skeleton/index.js +2 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
- package/lib/components/atoms/SkillsDropdown/index.js +2 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
- package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
- package/lib/components/atoms/SlashCommandChip/index.js +4 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
- package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
- package/lib/components/atoms/Switch/Switch.js +27 -0
- package/lib/components/atoms/Switch/Switch.styles.js +22 -0
- package/lib/components/atoms/Switch/index.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
- package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
- package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
- package/lib/components/atoms/TextArea/TextArea.js +172 -0
- package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
- package/lib/components/atoms/TextArea/index.js +2 -0
- package/lib/components/atoms/ThirdButton.js +19 -0
- package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
- package/lib/components/atoms/VideoModal/index.js +2 -0
- package/lib/components/atoms/WithAppCfg.js +26 -0
- package/lib/components/atoms/WithFeatureValidation.js +23 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
- package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
- package/lib/components/atoms/icons/AIIcon.js +23 -0
- package/lib/components/atoms/icons/AacFile.js +39 -0
- package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
- package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
- package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
- package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
- package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
- package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
- package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
- package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
- package/lib/components/atoms/icons/Brain.js +77 -0
- package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
- package/lib/components/atoms/icons/CorLogo.js +76 -0
- package/lib/components/atoms/icons/CsvFile.js +41 -0
- package/lib/components/atoms/icons/DocFile.js +41 -0
- package/lib/components/atoms/icons/DocxFile.js +41 -0
- package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
- package/lib/components/atoms/icons/EmptyHistory.js +46 -0
- package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
- package/lib/components/atoms/icons/EmptyState.js +84 -0
- package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
- package/lib/components/atoms/icons/ErrorIcon.js +14 -0
- package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
- package/lib/components/atoms/icons/ErrorState.js +51 -0
- package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
- package/lib/components/atoms/icons/FaqsIcon.js +51 -0
- package/lib/components/atoms/icons/FlacIcon.js +39 -0
- package/lib/components/atoms/icons/FolderIcon.js +29 -0
- package/lib/components/atoms/icons/HomeIcon.js +30 -0
- package/lib/components/atoms/icons/ImageFile.js +46 -0
- package/lib/components/atoms/icons/M4aFile.js +39 -0
- package/lib/components/atoms/icons/MAIAIcon.js +20 -0
- package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
- package/lib/components/atoms/icons/MDFile.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
- package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
- package/lib/components/atoms/icons/Mp3File.js +39 -0
- package/lib/components/atoms/icons/Mp4File.js +39 -0
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
- package/lib/components/atoms/icons/NewChat.js +29 -0
- package/lib/components/atoms/icons/NotionIcon.js +36 -0
- package/lib/components/atoms/icons/OgaFile.js +39 -0
- package/lib/components/atoms/icons/OggFile.js +39 -0
- package/lib/components/atoms/icons/PdfFile.js +39 -0
- package/lib/components/atoms/icons/PlusIcon.js +29 -0
- package/lib/components/atoms/icons/PptFile.js +47 -0
- package/lib/components/atoms/icons/PptxFile.js +49 -0
- package/lib/components/atoms/icons/RetryIcon.js +34 -0
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
- package/lib/components/atoms/icons/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +24 -0
- package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
- package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
- package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
- package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
- package/lib/components/atoms/icons/TextFile.js +41 -0
- package/lib/components/atoms/icons/WavFile.js +39 -0
- package/lib/components/atoms/icons/WebmFile.js +50 -0
- package/lib/components/atoms/icons/XlsFile.js +42 -0
- package/lib/components/atoms/icons/XlsxFile.js +42 -0
- package/lib/components/atoms/icons/index.js +54 -0
- package/lib/components/atoms/index.js +42 -0
- package/lib/components/index.js +11 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +236 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
- package/lib/components/molecules/AbmSection/index.js +4 -0
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
- package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +119 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
- package/lib/components/molecules/ChatAIContent/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
- package/lib/components/molecules/ChatAIHistory/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
- package/lib/components/molecules/ChatAIHome/index.js +2 -0
- package/lib/components/molecules/ChatAIHome/styles.js +335 -0
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
- package/lib/components/molecules/ChatAIMessages/README.md +101 -0
- package/lib/components/molecules/ChatAIMessages/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
- package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1254 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +453 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/constants.js +40 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
- package/lib/components/molecules/ChatAIModal/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/layout.js +74 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +430 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +169 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
- package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
- package/lib/components/molecules/ChatFooter/index.js +2 -0
- package/lib/components/molecules/ChatFooter/styles.js +23 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +60 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
- package/lib/components/molecules/ContextMentionInput/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
- package/lib/components/molecules/MessageFeedback/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/styles.js +14 -0
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
- package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
- package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
- package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
- package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +716 -0
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
- package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
- package/lib/components/molecules/Sidebar/index.js +2 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1449 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
- package/lib/components/organisms/AbmAgentModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +182 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +585 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +154 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
- package/lib/components/organisms/ChatAI/index.js +2 -0
- package/lib/components/organisms/ChatAI/styles.js +7 -0
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
- package/lib/components/organisms/ClientAIButton/index.js +2 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
- package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
- package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
- package/lib/components/organisms/EditQuestionModal/index.js +2 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
- package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
- package/lib/components/organisms/ProjectAIButton/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
- package/lib/components/organisms/ProjectSummary/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/styles.js +7 -0
- package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
- package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
- package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
- package/lib/components/organisms/SnackBar/index.js +2 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
- package/lib/components/organisms/SourcesInformation/index.js +2 -0
- package/lib/constants/config.js +10 -0
- package/lib/constants/formatExtensions.js +55 -0
- package/lib/constants/gqlClient.js +4 -0
- package/lib/constants/maiaHourAgentAccess.js +15 -0
- package/lib/constants/maiaTaskPanelAccess.js +24 -0
- package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
- package/lib/constants/maiaTaskPanelZIndex.js +19 -0
- package/lib/constants/permissions/config.js +72 -0
- package/lib/constants/permissions/index.js +3 -0
- package/lib/constants/permissions/types.js +2 -0
- package/lib/constants/permissions/utils.js +18 -0
- package/lib/constants/plannerSyncEvents.js +15 -0
- package/lib/constants/taskLinkIcon.js +15 -0
- package/lib/constants/taskUrls.js +11 -0
- package/lib/context/cor-user.js +31 -0
- package/lib/context/global-context.js +39 -0
- package/lib/dev/DevChatAI.js +101 -0
- package/lib/dev/DevContextMentionInput.js +67 -0
- package/lib/dev/ProjectSummary.js +9 -0
- package/lib/dev/Providers.js +27 -0
- package/lib/exports.js +2 -0
- package/lib/hooks/README.md +192 -0
- package/lib/hooks/index.js +30 -0
- package/lib/hooks/useAccessClient/index.js +2 -0
- package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
- package/lib/hooks/useAgentModel/index.js +2 -0
- package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +175 -0
- package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.js +176 -0
- package/lib/hooks/useAgentSuggestions.js +60 -0
- package/lib/hooks/useCaretPosition.js +65 -0
- package/lib/hooks/useChatManager/index.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.js +1782 -0
- package/lib/hooks/useChatMessages/index.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
- package/lib/hooks/useChats/index.js +2 -0
- package/lib/hooks/useChats/useChats.interfaces.js +2 -0
- package/lib/hooks/useChats/useChats.js +187 -0
- package/lib/hooks/useClientSearch.js +163 -0
- package/lib/hooks/useContextMentions.js +500 -0
- package/lib/hooks/useContextPinPopover.js +228 -0
- package/lib/hooks/useDebounce.js +18 -0
- package/lib/hooks/useEntitySearch.js +1053 -0
- package/lib/hooks/useEvent.js +94 -0
- package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
- package/lib/hooks/useFrequentlyUsedActions.js +94 -0
- package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
- package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
- package/lib/hooks/useKnowledge/index.js +4 -0
- package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
- package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
- package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
- package/lib/hooks/useMentionAllowedTypes.js +120 -0
- package/lib/hooks/useMentionPopover.js +342 -0
- package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
- package/lib/hooks/useModal/index.js +2 -0
- package/lib/hooks/useModal/useModal.interfaces.js +2 -0
- package/lib/hooks/useModal/useModal.js +47 -0
- package/lib/hooks/useOnboardingNavigation.js +20 -0
- package/lib/hooks/useOrchestratorStream/index.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
- package/lib/hooks/useProjectSearch.js +183 -0
- package/lib/hooks/useProjectSummary.js +101 -0
- package/lib/hooks/useProjectSummaryConfig.js +211 -0
- package/lib/hooks/useProjects.js +46 -0
- package/lib/hooks/useRecentClientsSearch.js +150 -0
- package/lib/hooks/useRecentContexts.js +86 -0
- package/lib/hooks/useResize.js +29 -0
- package/lib/hooks/useSkillsCatalog.js +66 -0
- package/lib/hooks/useSlashCommands.js +84 -0
- package/lib/hooks/useSmoothStreamText/index.js +2 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
- package/lib/hooks/useStreamResponse.js +112 -0
- package/lib/hooks/useStreamdownStyles.js +13 -0
- package/lib/hooks/useStreamingMessage/index.js +2 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
- package/lib/hooks/useT.js +17 -0
- package/lib/hooks/useTabTaskDefault.js +33 -0
- package/lib/hooks/useTaskPanel.js +22 -0
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
- package/lib/hooks/useToggle.js +19 -0
- package/lib/hooks/useToggleFavorite/index.js +2 -0
- package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
- package/lib/index.css +76 -0
- package/lib/index.js +30 -0
- package/lib/lang/br/index.js +793 -0
- package/lib/lang/en/index.js +793 -0
- package/lib/lang/es/index.js +794 -0
- package/lib/lang/fr/index.js +614 -0
- package/lib/lang/index.js +24 -0
- package/lib/lang/utils.js +33 -0
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockOrchestrator.js +5 -0
- package/lib/mocks/mockProject.js +11 -0
- package/lib/mocks/mockProjectSummary.js +6 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/apolloClient.js +3 -0
- package/lib/services/appcues.js +19 -0
- package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
- package/lib/services/corpilot/ProjectSummary/index.js +5 -0
- package/lib/services/corpilot/client.js +27 -0
- package/lib/services/corpilot/index.js +5 -0
- package/lib/services/maia/Access/updateAccess.js +59 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
- package/lib/services/maia/Actions/getSlashCommands.js +39 -0
- package/lib/services/maia/Actions/index.js +7 -0
- package/lib/services/maia/Agents/connectors.js +250 -0
- package/lib/services/maia/Agents/createAgent.js +39 -0
- package/lib/services/maia/Agents/deleteAgent.js +38 -0
- package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
- package/lib/services/maia/Agents/getAgentById.js +162 -0
- package/lib/services/maia/Agents/getAgentModels.js +112 -0
- package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
- package/lib/services/maia/Agents/getAgents.js +718 -0
- package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
- package/lib/services/maia/Agents/toggleFavorite.js +34 -0
- package/lib/services/maia/Agents/updateAgent.js +39 -0
- package/lib/services/maia/Chats/deleteChat.js +32 -0
- package/lib/services/maia/Chats/getChatMessages.js +144 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
- package/lib/services/maia/Chats/index.js +15 -0
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/services/maia/Chats/patchChat.js +43 -0
- package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
- package/lib/services/maia/Faqs/index.js +5 -0
- package/lib/services/maia/Knowledge/delete.js +41 -0
- package/lib/services/maia/Knowledge/download.js +48 -0
- package/lib/services/maia/Knowledge/index.js +3 -0
- package/lib/services/maia/Knowledge/save.js +43 -0
- package/lib/services/maia/Orchestrator/index.js +7 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
- package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
- package/lib/services/maia/RecentClients/index.js +6 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
- package/lib/services/maia/RecentContexts/index.js +6 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
- package/lib/services/maia/RecentProjects/index.js +6 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
- package/lib/services/maia/RecentTasks/index.js +6 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
- package/lib/services/maia/RecentUsers/index.js +6 -0
- package/lib/services/maia/Skills/createSkill.js +39 -0
- package/lib/services/maia/Skills/deleteSkill.js +38 -0
- package/lib/services/maia/Skills/generateSkill.js +41 -0
- package/lib/services/maia/Skills/getSkills.js +120 -0
- package/lib/services/maia/Skills/updateSkill.js +39 -0
- package/lib/services/maia/client.js +27 -0
- package/lib/services/maia/index.js +17 -0
- package/lib/services/query/ClientSearchQuery.js +5 -0
- package/lib/services/query/entitySearchQuery.js +18 -0
- package/lib/services/query/index.js +2 -0
- package/lib/services/query/projectSearchByValueQuery.js +5 -0
- package/lib/services/query/taskUserTabQuery.js +8 -0
- package/lib/services/query/usersDirectoryQuery.js +19 -0
- package/lib/services/types.js +6 -0
- package/lib/services/utils/fetchCOR.js +117 -0
- package/lib/services/utils/getCookie.js +10 -0
- package/lib/services/utils/index.js +3 -0
- package/lib/services/utils/mapChatMessages.js +287 -0
- package/lib/services/utils/validateIsMaia.js +4 -0
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +2 -0
- package/lib/store/chatsStoreLifecycle.js +8 -0
- package/lib/store/faqsStore.types.js +2 -0
- package/lib/store/index.js +4 -0
- package/lib/store/maiaLastChatPersistence.js +35 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +715 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +387 -0
- package/lib/store/useFaqsStore.js +27 -0
- package/lib/streamdownStyles.js +9 -0
- package/lib/styles/StyledCleanContainer.js +7 -0
- package/lib/styles/cascade.js +14 -0
- package/lib/styles/config.js +47 -0
- package/lib/styles/shared/scrollable.js +3 -0
- package/lib/styles/transitions.js +21 -0
- package/lib/types/Action.js +2 -0
- package/lib/types/AgentSuggestion.js +2 -0
- package/lib/types/Chat.js +10 -0
- package/lib/types/Client.js +2 -0
- package/lib/types/FrequentlyAskedQuestion.js +2 -0
- package/lib/types/Project.js +2 -0
- package/lib/types/ProjectSummaryConfigKeys.js +9 -0
- package/lib/types/Task.js +2 -0
- package/lib/types/agent.js +2 -0
- package/lib/types/agentModal.js +2 -0
- package/lib/types/contextMention.js +37 -0
- package/lib/types/global.d.js +2 -0
- package/lib/types/skill.js +2 -0
- package/lib/types/streamActivity.js +2 -0
- package/lib/types/userType.d.js +2 -0
- package/lib/utils/actionCategoryMap.js +37 -0
- package/lib/utils/actionIconMap.js +61 -0
- package/lib/utils/agentDisplayName.js +42 -0
- package/lib/utils/chatInputFiles.js +52 -0
- package/lib/utils/contextMentionIcons.js +134 -0
- package/lib/utils/contextMentionLabel.js +4 -0
- package/lib/utils/contextMentionTriggers.js +51 -0
- package/lib/utils/contextMentionTypeLabel.js +17 -0
- package/lib/utils/corConnectorMentionTypes.js +41 -0
- package/lib/utils/ensureStreamdownStyles.js +21 -0
- package/lib/utils/entityLinkRender.js +135 -0
- package/lib/utils/fileDownloadHelper.js +40 -0
- package/lib/utils/formatQuickActionMessage.js +16 -0
- package/lib/utils/formatUnreadCount.js +6 -0
- package/lib/utils/getUnitFileSize.js +13 -0
- package/lib/utils/hitlAnalytics.js +65 -0
- package/lib/utils/hoursPlannerQuickActionType.js +64 -0
- package/lib/utils/imagePreprocessor.js +108 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/maiaHostOpen.js +19 -0
- package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
- package/lib/utils/mapBackendLang.js +8 -0
- package/lib/utils/normalizeAgentConnectors.js +95 -0
- package/lib/utils/openTaskInCorPanel.js +22 -0
- package/lib/utils/orchestratorSubagents.js +11 -0
- package/lib/utils/renderContextMentions.js +420 -0
- package/lib/utils/retryCompletion.js +85 -0
- package/lib/utils/slashCommandMarker.js +30 -0
- package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
- package/lib/utils/sseStreamContent.js +17 -0
- package/lib/utils/streamActivityMessages.js +359 -0
- package/lib/utils/validateTrimmedFields.js +8 -0
- package/package.json +1 -1
- package/README.md +0 -2
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { cascadeItem } from '../../../styles/cascade';
|
|
3
|
+
import { dropdownIn } from '../../../styles/transitions';
|
|
4
|
+
export var SCAGSWrapper = styled.div.withConfig({
|
|
5
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapper",
|
|
6
|
+
componentId: "sc-tesimq-0"
|
|
7
|
+
})(["display:flex;flex-direction:column;gap:18px;width:100%;overflow-y:", ";padding:12px 12px 12px 0px;flex-grow:1;"], function (_ref) {
|
|
8
|
+
var openModalAiModel = _ref.openModalAiModel;
|
|
9
|
+
return openModalAiModel ? 'hidden' : 'auto';
|
|
10
|
+
});
|
|
11
|
+
export var SCAGSGeneralCard = styled.div.withConfig({
|
|
12
|
+
displayName: "AbmGeneralSectionstyles__SCAGSGeneralCard",
|
|
13
|
+
componentId: "sc-tesimq-1"
|
|
14
|
+
})(["display:flex;flex-direction:column;gap:18px;width:100%;background-color:#f9f9f9;padding:16px;border-radius:4px;", ""], function (_ref2) {
|
|
15
|
+
var $index = _ref2.$index;
|
|
16
|
+
return cascadeItem($index);
|
|
17
|
+
});
|
|
18
|
+
export var SCAGSFieldSurface = styled.div.withConfig({
|
|
19
|
+
displayName: "AbmGeneralSectionstyles__SCAGSFieldSurface",
|
|
20
|
+
componentId: "sc-tesimq-2"
|
|
21
|
+
})(["width:100%;background-color:#fff;"]);
|
|
22
|
+
export var SCAGSOptionalFields = styled.div.withConfig({
|
|
23
|
+
displayName: "AbmGeneralSectionstyles__SCAGSOptionalFields",
|
|
24
|
+
componentId: "sc-tesimq-3"
|
|
25
|
+
})(["display:flex;flex-direction:column;gap:8px;width:100%;", ""], function (_ref3) {
|
|
26
|
+
var $index = _ref3.$index;
|
|
27
|
+
return cascadeItem($index);
|
|
28
|
+
});
|
|
29
|
+
export var SCAGSOptionalLabel = styled.span.withConfig({
|
|
30
|
+
displayName: "AbmGeneralSectionstyles__SCAGSOptionalLabel",
|
|
31
|
+
componentId: "sc-tesimq-4"
|
|
32
|
+
})(["color:rgba(32,32,31,1);font-family:'Work Sans';font-size:16px;font-style:normal;font-weight:500;line-height:122%;"]);
|
|
33
|
+
export var SCAGSNoModelsAvailable = styled.div.withConfig({
|
|
34
|
+
displayName: "AbmGeneralSectionstyles__SCAGSNoModelsAvailable",
|
|
35
|
+
componentId: "sc-tesimq-5"
|
|
36
|
+
})(["padding:12px;text-align:center;color:#999;"]);
|
|
37
|
+
export var SCAGSWrapperHeader = styled.div.withConfig({
|
|
38
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeader",
|
|
39
|
+
componentId: "sc-tesimq-6"
|
|
40
|
+
})(["display:flex;flex-direction:column;", ""], function (_ref4) {
|
|
41
|
+
var $index = _ref4.$index;
|
|
42
|
+
return cascadeItem($index);
|
|
43
|
+
});
|
|
44
|
+
export var SCAGSWrapperHeaderTitle = styled.span.withConfig({
|
|
45
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderTitle",
|
|
46
|
+
componentId: "sc-tesimq-7"
|
|
47
|
+
})(["display:flex;justify-content:space-between;align-items:center;font-size:20px;font-family:'Work Sans';color:rgba(32,32,31,1);font-weight:500;line-height:122%;"]);
|
|
48
|
+
export var SCAGSWrapperHeaderTitleRequired = styled.span.withConfig({
|
|
49
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderTitleRequired",
|
|
50
|
+
componentId: "sc-tesimq-8"
|
|
51
|
+
})(["color:#999;font-family:'Work Sans';font-size:12px;font-weight:400;line-height:130%;"]);
|
|
52
|
+
export var SCAGSWrapperHeaderInfo = styled.span.withConfig({
|
|
53
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderInfo",
|
|
54
|
+
componentId: "sc-tesimq-9"
|
|
55
|
+
})(["font-size:14px;font-family:'Work Sans';color:rgba(102,102,102,1);line-height:140%;"]);
|
|
56
|
+
export var SCAGSWrapperSelector = styled.div.withConfig({
|
|
57
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperSelector",
|
|
58
|
+
componentId: "sc-tesimq-10"
|
|
59
|
+
})(["display:flex;width:365px;[class*='SCSUTitle']{font-size:10px;line-height:120%;color:rgba(32,32,31,1);}[class*='SCSUPlaceholder']{font-size:14px;line-height:140%;font-family:'Work Sans';color:rgba(32,32,31,1);}[class*='SCSUWrapperChildren']{display:none;}"]);
|
|
60
|
+
export var SCAGSSelectorModal = styled.div.withConfig({
|
|
61
|
+
displayName: "AbmGeneralSectionstyles__SCAGSSelectorModal",
|
|
62
|
+
componentId: "sc-tesimq-11"
|
|
63
|
+
})(["position:fixed;left:", "px;width:", "px;top:", ";bottom:", ";z-index:", ";padding:4px;box-shadow:0px 4px 16px 0px rgba(18,18,18,0.24);border-radius:8px;font-size:14px;font-family:'Work Sans';line-height:140%;color:rgba(153,153,153,1);background-color:#ffffff;", " transform-origin:", ";"], function (_ref5) {
|
|
64
|
+
var $left = _ref5.$left;
|
|
65
|
+
return $left;
|
|
66
|
+
}, function (_ref6) {
|
|
67
|
+
var $width = _ref6.$width;
|
|
68
|
+
return $width;
|
|
69
|
+
}, function (_ref7) {
|
|
70
|
+
var $top = _ref7.$top;
|
|
71
|
+
return $top !== undefined ? "".concat($top, "px") : 'auto';
|
|
72
|
+
}, function (_ref8) {
|
|
73
|
+
var $bottom = _ref8.$bottom;
|
|
74
|
+
return $bottom !== undefined ? "".concat($bottom, "px") : 'auto';
|
|
75
|
+
}, function (_ref9) {
|
|
76
|
+
var $zIndex = _ref9.$zIndex;
|
|
77
|
+
return $zIndex;
|
|
78
|
+
}, dropdownIn, function (_ref0) {
|
|
79
|
+
var $placement = _ref0.$placement;
|
|
80
|
+
return $placement === 'top' ? 'bottom center' : 'top center';
|
|
81
|
+
});
|
|
82
|
+
export var SCAGSSelectorModalContent = styled.div.withConfig({
|
|
83
|
+
displayName: "AbmGeneralSectionstyles__SCAGSSelectorModalContent",
|
|
84
|
+
componentId: "sc-tesimq-12"
|
|
85
|
+
})(["max-height:232px;overflow-y:auto;display:flex;flex-direction:column;"]);
|
|
86
|
+
export var SCAGSOption = styled.li.withConfig({
|
|
87
|
+
displayName: "AbmGeneralSectionstyles__SCAGSOption",
|
|
88
|
+
componentId: "sc-tesimq-13"
|
|
89
|
+
})(["list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:10px 8px;border-radius:4px;", " &:hover{background-color:rgba(240,240,240,1);}"], function (_ref1) {
|
|
90
|
+
var isSelected = _ref1.isSelected;
|
|
91
|
+
return isSelected && css(["background-color:rgba(225,244,255,1);&:hover{background-color:rgba(225,244,255,1) !important;cursor:default;}"]);
|
|
92
|
+
});
|
|
93
|
+
export var SCAGSOptionLabel = styled.span.withConfig({
|
|
94
|
+
displayName: "AbmGeneralSectionstyles__SCAGSOptionLabel",
|
|
95
|
+
componentId: "sc-tesimq-14"
|
|
96
|
+
})(["color:", ";font-family:'Work Sans';font-size:14px;font-weight:400;line-height:20px;"], function (_ref10) {
|
|
97
|
+
var isSelected = _ref10.isSelected;
|
|
98
|
+
return isSelected ? 'rgba(0, 87, 140, 1)' : 'rgba(32, 32, 32, 1)';
|
|
99
|
+
});
|
|
100
|
+
export var SCAGSOptionDescription = styled.span.withConfig({
|
|
101
|
+
displayName: "AbmGeneralSectionstyles__SCAGSOptionDescription",
|
|
102
|
+
componentId: "sc-tesimq-15"
|
|
103
|
+
})(["color:rgba(77,77,77,1);font-family:'Work Sans';font-size:12px;font-weight:400;line-height:16px;"]);
|
|
104
|
+
export var SCAGSWrapperContent = styled.div.withConfig({
|
|
105
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperContent",
|
|
106
|
+
componentId: "sc-tesimq-16"
|
|
107
|
+
})(["display:flex;flex-direction:row;gap:30px;"]);
|
|
108
|
+
export var SCAGSWrapperEmoji = styled.div.withConfig({
|
|
109
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmoji",
|
|
110
|
+
componentId: "sc-tesimq-17"
|
|
111
|
+
})(["display:flex;flex-direction:column;gap:8px;"]);
|
|
112
|
+
export var SCAGSWrapperAddIcon = styled.div.withConfig({
|
|
113
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperAddIcon",
|
|
114
|
+
componentId: "sc-tesimq-18"
|
|
115
|
+
})(["background-color:rgba(247,247,247,1);width:26px;height:26px;border-radius:50%;display:flex;justify-content:center;align-items:center;position:absolute;transition:all 0.3s ease-in-out;right:-8px;top:-5px;box-shadow:-1px 1px 1px 0px rgba(92,92,92,0.05);"]);
|
|
116
|
+
export var SCAGSButtonEmoji = styled.button.withConfig({
|
|
117
|
+
displayName: "AbmGeneralSectionstyles__SCAGSButtonEmoji",
|
|
118
|
+
componentId: "sc-tesimq-19"
|
|
119
|
+
})(["background-color:transparent;width:fit-content;border:none;cursor:pointer;z-index:1;:hover{", "{background-color:rgba(235,219,248,1);}}"], SCAGSWrapperAddIcon);
|
|
120
|
+
export var SCAGSWrapperEmojiContent = styled.div.withConfig({
|
|
121
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmojiContent",
|
|
122
|
+
componentId: "sc-tesimq-20"
|
|
123
|
+
})(["display:flex;align-items:center;position:relative;width:48px;height:48px;cursor:pointer;"]);
|
|
124
|
+
export var SCAGSWrapperEmojiIcon = styled.div.withConfig({
|
|
125
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperEmojiIcon",
|
|
126
|
+
componentId: "sc-tesimq-21"
|
|
127
|
+
})(["width:48px;height:48px;display:flex;background-color:rgba(247,247,247,1);justify-content:center;align-items:center;border-radius:50%;"]);
|
|
128
|
+
export var SCAGSWrapperOnboardingContent = styled.div.withConfig({
|
|
129
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboardingContent",
|
|
130
|
+
componentId: "sc-tesimq-22"
|
|
131
|
+
})(["display:flex;align-items:center;gap:4px;color:#006faf;font-size:10px;font-family:'Work Sans';line-height:120%;width:fit-content;&:hover{cursor:pointer !important;color:#4dbdff;svg *:not(.no-fill){fill:#4dbdff !important;}}"]);
|
|
132
|
+
export var SCAGSWrapperOnboarding = styled.div.withConfig({
|
|
133
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboarding",
|
|
134
|
+
componentId: "sc-tesimq-23"
|
|
135
|
+
})(["display:flex;flex-direction:column;gap:6px;"]);
|
|
136
|
+
export var SCAGSWrapperOnboardingText = styled.span.withConfig({
|
|
137
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperOnboardingText",
|
|
138
|
+
componentId: "sc-tesimq-24"
|
|
139
|
+
})(["color:#006faf;font-family:'Work Sans';font-size:10px;font-style:italic;font-weight:400;line-height:120%;letter-spacing:-0.1px;&:hover{cursor:pointer !important;color:#4dbdff;}"]);
|
|
140
|
+
export var SCAGSWrapperHeaderCreatedByText = styled.span.withConfig({
|
|
141
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderCreatedByText",
|
|
142
|
+
componentId: "sc-tesimq-25"
|
|
143
|
+
})(["display:none;font-size:12px;color:rgba(150,150,150,0.8);width:fit-content;cursor:pointer;"]);
|
|
144
|
+
export var SCAGSWrapperHeaderCreatedByTextName = styled.span.withConfig({
|
|
145
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperHeaderCreatedByTextName",
|
|
146
|
+
componentId: "sc-tesimq-26"
|
|
147
|
+
})(["font-style:italic;"]);
|
|
148
|
+
export var SCAGSWrapperSpanTitle = styled.span.withConfig({
|
|
149
|
+
displayName: "AbmGeneralSectionstyles__SCAGSWrapperSpanTitle",
|
|
150
|
+
componentId: "sc-tesimq-27"
|
|
151
|
+
})(["font-size:14px;color:rgba(32,32,31,1);line-height:140%;font-family:'Work Sans';"]);
|
|
152
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjYXNjYWRlSXRlbSIsImRyb3Bkb3duSW4iLCJTQ0FHU1dyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJvcGVuTW9kYWxBaU1vZGVsIiwiU0NBR1NHZW5lcmFsQ2FyZCIsIl9yZWYyIiwiJGluZGV4IiwiU0NBR1NGaWVsZFN1cmZhY2UiLCJTQ0FHU09wdGlvbmFsRmllbGRzIiwiX3JlZjMiLCJTQ0FHU09wdGlvbmFsTGFiZWwiLCJzcGFuIiwiU0NBR1NOb01vZGVsc0F2YWlsYWJsZSIsIlNDQUdTV3JhcHBlckhlYWRlciIsIl9yZWY0IiwiU0NBR1NXcmFwcGVySGVhZGVyVGl0bGUiLCJTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkIiwiU0NBR1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUdTV3JhcHBlclNlbGVjdG9yIiwiU0NBR1NTZWxlY3Rvck1vZGFsIiwiX3JlZjUiLCIkbGVmdCIsIl9yZWY2IiwiJHdpZHRoIiwiX3JlZjciLCIkdG9wIiwidW5kZWZpbmVkIiwiY29uY2F0IiwiX3JlZjgiLCIkYm90dG9tIiwiX3JlZjkiLCIkekluZGV4IiwiX3JlZjAiLCIkcGxhY2VtZW50IiwiU0NBR1NTZWxlY3Rvck1vZGFsQ29udGVudCIsIlNDQUdTT3B0aW9uIiwibGkiLCJfcmVmMSIsImlzU2VsZWN0ZWQiLCJTQ0FHU09wdGlvbkxhYmVsIiwiX3JlZjEwIiwiU0NBR1NPcHRpb25EZXNjcmlwdGlvbiIsIlNDQUdTV3JhcHBlckNvbnRlbnQiLCJTQ0FHU1dyYXBwZXJFbW9qaSIsIlNDQUdTV3JhcHBlckFkZEljb24iLCJTQ0FHU0J1dHRvbkVtb2ppIiwiYnV0dG9uIiwiU0NBR1NXcmFwcGVyRW1vamlDb250ZW50IiwiU0NBR1NXcmFwcGVyRW1vamlJY29uIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQiLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQiLCJTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0IiwiU0NBR1NXcmFwcGVySGVhZGVyQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0FHU1dyYXBwZXJTcGFuVGl0bGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1HZW5lcmFsU2VjdGlvbi5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBjYXNjYWRlSXRlbSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jYXNjYWRlJ1xuaW1wb3J0IHsgZHJvcGRvd25JbiB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy90cmFuc2l0aW9ucydcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlciA9IHN0eWxlZC5kaXY8eyBvcGVuTW9kYWxBaU1vZGVsOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiAkeyh7IG9wZW5Nb2RhbEFpTW9kZWwgfSkgPT4gKG9wZW5Nb2RhbEFpTW9kZWwgPyAnaGlkZGVuJyA6ICdhdXRvJyl9O1xuICBwYWRkaW5nOiAxMnB4IDEycHggMTJweCAwcHg7XG4gIGZsZXgtZ3JvdzogMTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTR2VuZXJhbENhcmQgPSBzdHlsZWQuZGl2PHsgJGluZGV4PzogbnVtYmVyIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICR7KHsgJGluZGV4IH0pID0+IGNhc2NhZGVJdGVtKCRpbmRleCl9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU0ZpZWxkU3VyZmFjZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NPcHRpb25hbEZpZWxkcyA9IHN0eWxlZC5kaXY8eyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgJHsoeyAkaW5kZXggfSkgPT4gY2FzY2FkZUl0ZW0oJGluZGV4KX1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTT3B0aW9uYWxMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU05vTW9kZWxzQXZhaWxhYmxlID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzk5OTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlciA9IHN0eWxlZC5kaXY8eyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICR7KHsgJGluZGV4IH0pID0+IGNhc2NhZGVJdGVtKCRpbmRleCl9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjOTk5O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKTtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJTZWxlY3RvciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzNjVweDtcbiAgW2NsYXNzKj0nU0NTVVRpdGxlJ10ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgfVxuICBbY2xhc3MqPSdTQ1NVUGxhY2Vob2xkZXInXSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgfVxuICAvKiBFbCBtZW7DuiByZWFsIHNlIHBvcnRhIGEgYm9keTsgb2N1bHRhbW9zIGVsIHBhbmVsIGludGVybm8gZGUgQ1VTZWxlY3QuICovXG4gIFtjbGFzcyo9J1NDU1VXcmFwcGVyQ2hpbGRyZW4nXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NTZWxlY3Rvck1vZGFsID0gc3R5bGVkLmRpdjx7XG4gICRsZWZ0OiBudW1iZXJcbiAgJHdpZHRoOiBudW1iZXJcbiAgJHRvcD86IG51bWJlclxuICAkYm90dG9tPzogbnVtYmVyXG4gICR6SW5kZXg6IG51bWJlclxuICAkcGxhY2VtZW50OiAndG9wJyB8ICdib3R0b20nXG59PmBcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAkeyh7ICRsZWZ0IH0pID0+ICRsZWZ0fXB4O1xuICB3aWR0aDogJHsoeyAkd2lkdGggfSkgPT4gJHdpZHRofXB4O1xuICB0b3A6ICR7KHsgJHRvcCB9KSA9PiAoJHRvcCAhPT0gdW5kZWZpbmVkID8gYCR7JHRvcH1weGAgOiAnYXV0bycpfTtcbiAgYm90dG9tOiAkeyh7ICRib3R0b20gfSkgPT4gKCRib3R0b20gIT09IHVuZGVmaW5lZCA/IGAkeyRib3R0b219cHhgIDogJ2F1dG8nKX07XG4gIHotaW5kZXg6ICR7KHsgJHpJbmRleCB9KSA9PiAkekluZGV4fTtcbiAgcGFkZGluZzogNHB4O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDE2cHggMHB4IHJnYmEoMTgsIDE4LCAxOCwgMC4yNCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBjb2xvcjogcmdiYSgxNTMsIDE1MywgMTUzLCAxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgJHtkcm9wZG93bklufVxuICB0cmFuc2Zvcm0tb3JpZ2luOiAkeyh7ICRwbGFjZW1lbnQgfSkgPT4gKCRwbGFjZW1lbnQgPT09ICd0b3AnID8gJ2JvdHRvbSBjZW50ZXInIDogJ3RvcCBjZW50ZXInKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgbWF4LWhlaWdodDogMjMycHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU09wdGlvbiA9IHN0eWxlZC5saTx7IGlzU2VsZWN0ZWQ6IGJvb2xlYW4gfT5gXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogMTBweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgJHsoeyBpc1NlbGVjdGVkIH0pID0+XG4gICAgaXNTZWxlY3RlZCAmJlxuICAgIGNzc2BcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCAyNDQsIDI1NSwgMSk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjUsIDI0NCwgMjU1LCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgYH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAxKTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NPcHRpb25MYWJlbCA9IHN0eWxlZC5zcGFuPHsgaXNTZWxlY3RlZDogYm9vbGVhbiB9PmBcbiAgY29sb3I6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICdyZ2JhKDAsIDg3LCAxNDAsIDEpJyA6ICdyZ2JhKDMyLCAzMiwgMzIsIDEpJyl9O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU09wdGlvbkRlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiByZ2JhKDc3LCA3NywgNzcsIDEpO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiAzMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyRW1vamkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckFkZEljb24gPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQ3LCAyNDcsIDEpO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICByaWdodDogLThweDtcbiAgdG9wOiAtNXB4O1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAxcHggMHB4IHJnYmEoOTIsIDkyLCA5MiwgMC4wNSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU0J1dHRvbkVtb2ppID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIDpob3ZlciB7XG4gICAgJHtTQ0FHU1dyYXBwZXJBZGRJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNSwgMjE5LCAyNDgsIDEpO1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyRW1vamlDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FHU1dyYXBwZXJFbW9qaUljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQ3LCAyNDcsIDEpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgY29sb3I6ICMwMDZmYWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzRkYmRmZjtcbiAgICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6ICM0ZGJkZmYgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlck9uYm9hcmRpbmcgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjMDA2ZmFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjFweDtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM0ZGJkZmY7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjgpO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUdTV3JhcHBlclNwYW5UaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNh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
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
4
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
/* eslint-disable no-plusplus */
|
|
7
|
+
/* eslint-disable react/no-array-index-key */
|
|
8
|
+
/* eslint-disable import/no-cycle */
|
|
9
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
10
|
+
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
11
|
+
/* eslint-disable no-unused-vars */
|
|
12
|
+
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
13
|
+
import { FileUpload } from '@projectcor/icons/lib/components/FileUpload';
|
|
14
|
+
import { Open } from '@projectcor/icons/lib/components/Open';
|
|
15
|
+
import { useEffect, useRef, useState } from 'react';
|
|
16
|
+
import { useTranslation } from 'react-i18next';
|
|
17
|
+
import { AttachmentCard } from '../../atoms/AttachmentCard/AttachmentCard';
|
|
18
|
+
import { AttachmentPreviewModal } from '../../atoms/AttachmentPreviewModal';
|
|
19
|
+
import { SCAKSWrapper, SCAKSWrapperHeader, SCAKSWrapperContent, SCAKSWrapperHeaderTitle, SCAKSWrapperHeaderInfo, SCAKSFileUploadWrapperContent, SCAKSAttachmentsWrapper, SCAKSMoreInfoSpan, SCAKSMoreInfoIconWrapper, SCAKSDropZone, SCAKSDropZoneIcon, SCAKSDropZoneText, SCAKSDropZoneInfo, SCAKSDropZoneTextSpan } from './AbmKnowledgeSection.styles';
|
|
20
|
+
import { useDownloadKnowledge } from '../../../hooks/useKnowledge/downloadKnowledge';
|
|
21
|
+
import { useOnboardingNavigation } from '../../../hooks/useOnboardingNavigation';
|
|
22
|
+
import { ModalFileExceeds } from '../../organisms/ModalFileExceeds/ModalFileExceeds';
|
|
23
|
+
import { allowedFileTypesForKnowledge, fileTypes } from '../../../constants/formatExtensions';
|
|
24
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
|
+
function getUniqueString(prevStrings, stringToChange) {
|
|
26
|
+
var _stringToChange$split = stringToChange.split('.'),
|
|
27
|
+
_stringToChange$split2 = _slicedToArray(_stringToChange$split, 2),
|
|
28
|
+
filename = _stringToChange$split2[0],
|
|
29
|
+
_stringToChange$split3 = _stringToChange$split2[1],
|
|
30
|
+
extension = _stringToChange$split3 === void 0 ? '' : _stringToChange$split3;
|
|
31
|
+
var ext = extension ? ".".concat(extension) : '';
|
|
32
|
+
if (!(prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(stringToChange))) {
|
|
33
|
+
return stringToChange;
|
|
34
|
+
}
|
|
35
|
+
var counter = 1;
|
|
36
|
+
var newFilename;
|
|
37
|
+
do {
|
|
38
|
+
newFilename = "".concat(filename, "(").concat(counter, ")").concat(ext);
|
|
39
|
+
counter++;
|
|
40
|
+
} while (prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(newFilename));
|
|
41
|
+
return newFilename;
|
|
42
|
+
}
|
|
43
|
+
var MAX_TOTAL_SIZE = 5 * 1024 * 1024; // 5MB total
|
|
44
|
+
|
|
45
|
+
export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
46
|
+
var handleSetAgentValues = _ref.handleSetAgentValues,
|
|
47
|
+
values = _ref.values,
|
|
48
|
+
onFileErrorChange = _ref.onFileErrorChange,
|
|
49
|
+
tooltipZIndex = _ref.tooltipZIndex;
|
|
50
|
+
var _useState = useState(values.knowledge || []),
|
|
51
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
52
|
+
localAttachments = _useState2[0],
|
|
53
|
+
setLocalAttachments = _useState2[1];
|
|
54
|
+
var _useState3 = useState(null),
|
|
55
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
56
|
+
previewAttachment = _useState4[0],
|
|
57
|
+
setPreviewAttachment = _useState4[1];
|
|
58
|
+
var _useTranslation = useTranslation('abm_agent_section'),
|
|
59
|
+
t = _useTranslation.t;
|
|
60
|
+
var _useState5 = useState({
|
|
61
|
+
isOpen: false,
|
|
62
|
+
excludedFiles: [],
|
|
63
|
+
exceededFiles: [],
|
|
64
|
+
invalidExtensionFiles: []
|
|
65
|
+
}),
|
|
66
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
67
|
+
modalProps = _useState6[0],
|
|
68
|
+
setModalProps = _useState6[1];
|
|
69
|
+
var _useDownloadKnowledge = useDownloadKnowledge(),
|
|
70
|
+
handleDownloadKnowledge = _useDownloadKnowledge.handleDownloadKnowledge,
|
|
71
|
+
isDownloadingSuccess = _useDownloadKnowledge.success,
|
|
72
|
+
isDownloadingError = _useDownloadKnowledge.error,
|
|
73
|
+
isDownloading = _useDownloadKnowledge.isLoading,
|
|
74
|
+
handleResetStates = _useDownloadKnowledge.handleResetStates;
|
|
75
|
+
var _useOnboardingNavigat = useOnboardingNavigation(),
|
|
76
|
+
handleOnboardingNavigation = _useOnboardingNavigat.handleOnboardingNavigation;
|
|
77
|
+
var fileInputRef = useRef(null);
|
|
78
|
+
var _useState7 = useState(false),
|
|
79
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
80
|
+
isDragging = _useState8[0],
|
|
81
|
+
setIsDragging = _useState8[1];
|
|
82
|
+
|
|
83
|
+
// Calcular el tamaño total actual de archivos
|
|
84
|
+
var currentTotalSize = (localAttachments || []).reduce(function (total, attachment) {
|
|
85
|
+
var size = typeof attachment.size === 'number' ? attachment.size : Number(attachment.size);
|
|
86
|
+
return total + (Number.isNaN(size) ? 0 : size);
|
|
87
|
+
}, 0);
|
|
88
|
+
var isAtSizeLimit = currentTotalSize >= MAX_TOTAL_SIZE;
|
|
89
|
+
var handleAttachClick = function handleAttachClick() {
|
|
90
|
+
var _fileInputRef$current;
|
|
91
|
+
if (isAtSizeLimit) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
(_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
|
|
95
|
+
};
|
|
96
|
+
var handleFileSelect = function handleFileSelect(e) {
|
|
97
|
+
var files = e.target.files;
|
|
98
|
+
if (!files) return;
|
|
99
|
+
var exceededFiles = [];
|
|
100
|
+
var excludedFiles = [];
|
|
101
|
+
var invalidExtensionFiles = [];
|
|
102
|
+
var insertedFiles = [];
|
|
103
|
+
var attachmentsNames = (localAttachments || []).map(function (attachment) {
|
|
104
|
+
return attachment.name;
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Calcular el tamaño total actual de archivos ya adjuntos
|
|
108
|
+
var existingTotalSize = (localAttachments || []).reduce(function (total, attachment) {
|
|
109
|
+
var size = typeof attachment.size === 'number' ? attachment.size : Number(attachment.size);
|
|
110
|
+
return total + (Number.isNaN(size) ? 0 : size);
|
|
111
|
+
}, 0);
|
|
112
|
+
var runningTotalSize = existingTotalSize;
|
|
113
|
+
Array.from(files).forEach(function (file) {
|
|
114
|
+
var _fileNameParts$pop;
|
|
115
|
+
var fileNameParts = file.name.split('.');
|
|
116
|
+
var fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
|
|
117
|
+
if (!allowedFileTypesForKnowledge.includes(fileExtension)) {
|
|
118
|
+
invalidExtensionFiles.push(file.name);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Verificar si agregar este archivo excedería el límite total de 5MB
|
|
123
|
+
var newTotalSize = runningTotalSize + file.size;
|
|
124
|
+
if (newTotalSize > MAX_TOTAL_SIZE) {
|
|
125
|
+
exceededFiles.push(file.name);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
var typeFile = file.type || fileTypes[fileExtension];
|
|
129
|
+
var uniqueName = getUniqueString(attachmentsNames, file.name);
|
|
130
|
+
var parsedFile = new File([file], uniqueName, {
|
|
131
|
+
type: typeFile
|
|
132
|
+
});
|
|
133
|
+
var attachmentFile = {
|
|
134
|
+
file: parsedFile,
|
|
135
|
+
id: "".concat(Date.now(), "-").concat(Math.random()),
|
|
136
|
+
name: uniqueName,
|
|
137
|
+
size: file.size,
|
|
138
|
+
type: typeFile,
|
|
139
|
+
status: 'started'
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// Solo agregar el archivo si no está en la lista de archivos excedidos
|
|
143
|
+
if (!exceededFiles.includes(file.name)) {
|
|
144
|
+
insertedFiles.push(attachmentFile);
|
|
145
|
+
// Actualizar el tamaño total para la siguiente validación
|
|
146
|
+
runningTotalSize += file.size;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
// Mostrar modal si hay archivos con extensión inválida o que exceden el límite
|
|
151
|
+
var hasErrors = invalidExtensionFiles.length > 0 || exceededFiles.length > 0;
|
|
152
|
+
if (hasErrors) {
|
|
153
|
+
setModalProps({
|
|
154
|
+
isOpen: true,
|
|
155
|
+
excludedFiles: excludedFiles,
|
|
156
|
+
exceededFiles: exceededFiles,
|
|
157
|
+
invalidExtensionFiles: invalidExtensionFiles
|
|
158
|
+
});
|
|
159
|
+
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(true);
|
|
160
|
+
} else {
|
|
161
|
+
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Solo agregar archivos válidos que no excedan el límite
|
|
165
|
+
if (insertedFiles.length) {
|
|
166
|
+
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
167
|
+
key: 'knowledge',
|
|
168
|
+
value: insertedFiles
|
|
169
|
+
});
|
|
170
|
+
setLocalAttachments(function (prev) {
|
|
171
|
+
return [].concat(_toConsumableArray(prev || []), insertedFiles);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
var handleDragEnter = function handleDragEnter(e) {
|
|
176
|
+
e.preventDefault();
|
|
177
|
+
e.stopPropagation();
|
|
178
|
+
if (!isAtSizeLimit) {
|
|
179
|
+
setIsDragging(true);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
var handleDragLeave = function handleDragLeave(e) {
|
|
183
|
+
e.preventDefault();
|
|
184
|
+
e.stopPropagation();
|
|
185
|
+
setIsDragging(false);
|
|
186
|
+
};
|
|
187
|
+
var handleDragOver = function handleDragOver(e) {
|
|
188
|
+
e.preventDefault();
|
|
189
|
+
e.stopPropagation();
|
|
190
|
+
};
|
|
191
|
+
var handleDrop = function handleDrop(e) {
|
|
192
|
+
e.preventDefault();
|
|
193
|
+
e.stopPropagation();
|
|
194
|
+
setIsDragging(false);
|
|
195
|
+
if (isAtSizeLimit) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
var files = e.dataTransfer.files;
|
|
199
|
+
if (!files || files.length === 0) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Crear un evento sintético para reutilizar la lógica de handleFileSelect
|
|
204
|
+
var syntheticEvent = {
|
|
205
|
+
target: {
|
|
206
|
+
files: files
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
handleFileSelect(syntheticEvent);
|
|
210
|
+
};
|
|
211
|
+
var handleDeleteAttachment = function handleDeleteAttachment(id) {
|
|
212
|
+
var fileToDelete = localAttachments[id];
|
|
213
|
+
if (!fileToDelete) return;
|
|
214
|
+
var newAttachments = (localAttachments || []).filter(function (_, index) {
|
|
215
|
+
return index !== id;
|
|
216
|
+
});
|
|
217
|
+
setLocalAttachments(newAttachments);
|
|
218
|
+
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
219
|
+
key: 'knowledge',
|
|
220
|
+
value: newAttachments,
|
|
221
|
+
deleteKnowledge: true
|
|
222
|
+
});
|
|
223
|
+
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
224
|
+
};
|
|
225
|
+
var handleDownloadAttachment = function handleDownloadAttachment(id) {
|
|
226
|
+
var file = (localAttachments || [])[id];
|
|
227
|
+
if (!file) return;
|
|
228
|
+
handleDownloadKnowledge({
|
|
229
|
+
agentId: values.general.id.toString(),
|
|
230
|
+
knowledgeId: file.id
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
useEffect(function () {
|
|
234
|
+
if (isDownloadingSuccess && !isDownloadingError && !isDownloading) {
|
|
235
|
+
var url = URL.createObjectURL(isDownloadingSuccess.blob);
|
|
236
|
+
var link = document.createElement('a');
|
|
237
|
+
link.href = url;
|
|
238
|
+
link.download = isDownloadingSuccess.filename;
|
|
239
|
+
link.style.display = 'none';
|
|
240
|
+
document.body.appendChild(link);
|
|
241
|
+
link.click();
|
|
242
|
+
setTimeout(function () {
|
|
243
|
+
document.body.removeChild(link);
|
|
244
|
+
URL.revokeObjectURL(url);
|
|
245
|
+
handleResetStates();
|
|
246
|
+
}, 100);
|
|
247
|
+
}
|
|
248
|
+
}, [isDownloadingSuccess, isDownloadingError, isDownloading, handleResetStates]);
|
|
249
|
+
var handleAction = function handleAction(_ref2) {
|
|
250
|
+
var id = _ref2.id,
|
|
251
|
+
action = _ref2.action;
|
|
252
|
+
if (isDownloading) return;
|
|
253
|
+
if (action === 'delete') {
|
|
254
|
+
handleDeleteAttachment(id);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (action === 'download') {
|
|
258
|
+
handleDownloadAttachment(id);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
var handleAttachmentClick = function handleAttachmentClick(attachment) {
|
|
262
|
+
// Permitir previsualización si tiene archivo local o URLs del backend
|
|
263
|
+
// Solo si no tiene errores (status !== 'failed')
|
|
264
|
+
if (attachment.status === 'failed') {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (attachment.file instanceof File || attachment.originalFile instanceof File || attachment.url_thumbnail || attachment.url_original || attachment.url_file) {
|
|
268
|
+
setPreviewAttachment(attachment);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
var handleClosePreview = function handleClosePreview() {
|
|
272
|
+
setPreviewAttachment(null);
|
|
273
|
+
};
|
|
274
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
275
|
+
children: [/*#__PURE__*/_jsxs(SCAKSWrapper, {
|
|
276
|
+
children: [/*#__PURE__*/_jsxs(SCAKSWrapperHeader, {
|
|
277
|
+
$index: 0,
|
|
278
|
+
children: [/*#__PURE__*/_jsx(SCAKSWrapperHeaderTitle, {
|
|
279
|
+
children: t('knowledgeSection.knowledgeTab')
|
|
280
|
+
}), /*#__PURE__*/_jsx(SCAKSWrapperHeaderInfo, {
|
|
281
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
282
|
+
children: [t('knowledgeSection.infoLabel'), /*#__PURE__*/_jsxs(SCAKSMoreInfoSpan, {
|
|
283
|
+
onClick: function onClick() {
|
|
284
|
+
return handleOnboardingNavigation('moreInfo');
|
|
285
|
+
},
|
|
286
|
+
children: [t('knowledgeSection.moreInfo'), /*#__PURE__*/_jsx(SCAKSMoreInfoIconWrapper, {
|
|
287
|
+
children: /*#__PURE__*/_jsx(Open, {
|
|
288
|
+
width: 18,
|
|
289
|
+
height: 18,
|
|
290
|
+
color: "#006FAF"
|
|
291
|
+
})
|
|
292
|
+
})]
|
|
293
|
+
})]
|
|
294
|
+
})
|
|
295
|
+
})]
|
|
296
|
+
}), /*#__PURE__*/_jsxs(SCAKSWrapperContent, {
|
|
297
|
+
$index: 1,
|
|
298
|
+
children: [/*#__PURE__*/_jsx(SCAKSFileUploadWrapperContent, {
|
|
299
|
+
children: /*#__PURE__*/_jsx(Tooltip, {
|
|
300
|
+
title: isAtSizeLimit ? t('knowledgeSection.error.maxSizeTitle') : '',
|
|
301
|
+
zIndex: tooltipZIndex,
|
|
302
|
+
children: /*#__PURE__*/_jsxs(SCAKSDropZone, {
|
|
303
|
+
isAtSizeLimit: isAtSizeLimit,
|
|
304
|
+
isDragging: isDragging,
|
|
305
|
+
onDragEnter: handleDragEnter,
|
|
306
|
+
onDragLeave: handleDragLeave,
|
|
307
|
+
onDragOver: handleDragOver,
|
|
308
|
+
onDrop: handleDrop,
|
|
309
|
+
children: [/*#__PURE__*/_jsx(SCAKSDropZoneIcon, {
|
|
310
|
+
children: /*#__PURE__*/_jsx(FileUpload, {
|
|
311
|
+
width: 30,
|
|
312
|
+
height: 30,
|
|
313
|
+
color: isAtSizeLimit ? '#999' : '#006FAF'
|
|
314
|
+
})
|
|
315
|
+
}), /*#__PURE__*/_jsxs(SCAKSDropZoneText, {
|
|
316
|
+
children: [/*#__PURE__*/_jsx(SCAKSDropZoneTextSpan, {
|
|
317
|
+
isAtSizeLimit: isAtSizeLimit,
|
|
318
|
+
"data-dropzone-link": true,
|
|
319
|
+
onClick: handleAttachClick,
|
|
320
|
+
children: t('knowledgeSection.dropZoneText.1')
|
|
321
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
322
|
+
children: t('knowledgeSection.dropZoneText.2')
|
|
323
|
+
})]
|
|
324
|
+
}), /*#__PURE__*/_jsx(SCAKSDropZoneInfo, {
|
|
325
|
+
children: t('knowledgeSection.infoFileTypes')
|
|
326
|
+
})]
|
|
327
|
+
})
|
|
328
|
+
})
|
|
329
|
+
}), /*#__PURE__*/_jsx(SCAKSAttachmentsWrapper, {
|
|
330
|
+
children: (localAttachments || []).map(function (attachment, index) {
|
|
331
|
+
return /*#__PURE__*/_jsx(AttachmentCard, {
|
|
332
|
+
positionIndex: index,
|
|
333
|
+
attachment: attachment,
|
|
334
|
+
handleAction: handleAction,
|
|
335
|
+
abmKnowledgeSection: true,
|
|
336
|
+
fullWidth: true,
|
|
337
|
+
onClick: function onClick() {
|
|
338
|
+
return handleAttachmentClick(attachment);
|
|
339
|
+
}
|
|
340
|
+
}, "attachment-".concat(attachment === null || attachment === void 0 ? void 0 : attachment.name, "-").concat(attachment === null || attachment === void 0 ? void 0 : attachment.id, "-").concat(index));
|
|
341
|
+
})
|
|
342
|
+
})]
|
|
343
|
+
}), /*#__PURE__*/_jsx("input", {
|
|
344
|
+
ref: fileInputRef,
|
|
345
|
+
type: "file",
|
|
346
|
+
multiple: true,
|
|
347
|
+
accept: ".txt,.md,.csv,.doc,.docx,.ppt,.pptx,.pdf,.png,.jpg,.jpeg,.xlsx,.xls",
|
|
348
|
+
onChange: handleFileSelect,
|
|
349
|
+
style: {
|
|
350
|
+
display: 'none'
|
|
351
|
+
}
|
|
352
|
+
})]
|
|
353
|
+
}), modalProps.isOpen && /*#__PURE__*/_jsx(ModalFileExceeds, {
|
|
354
|
+
onClose: function onClose() {
|
|
355
|
+
setModalProps({
|
|
356
|
+
isOpen: false,
|
|
357
|
+
excludedFiles: [],
|
|
358
|
+
exceededFiles: [],
|
|
359
|
+
invalidExtensionFiles: []
|
|
360
|
+
});
|
|
361
|
+
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
362
|
+
},
|
|
363
|
+
excludedFiles: modalProps.excludedFiles,
|
|
364
|
+
exceededFiles: modalProps.exceededFiles,
|
|
365
|
+
invalidExtensionFiles: modalProps.invalidExtensionFiles,
|
|
366
|
+
section: "abm_agent"
|
|
367
|
+
}), /*#__PURE__*/_jsx(AttachmentPreviewModal, {
|
|
368
|
+
isOpen: !!previewAttachment,
|
|
369
|
+
onClose: handleClosePreview,
|
|
370
|
+
attachment: previewAttachment
|
|
371
|
+
})]
|
|
372
|
+
});
|
|
373
|
+
};
|
|
374
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwIiwiRmlsZVVwbG9hZCIsIk9wZW4iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVRyYW5zbGF0aW9uIiwiQXR0YWNobWVudENhcmQiLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiU0NBS1NXcmFwcGVyIiwiU0NBS1NXcmFwcGVySGVhZGVyIiwiU0NBS1NXcmFwcGVyQ29udGVudCIsIlNDQUtTV3JhcHBlckhlYWRlclRpdGxlIiwiU0NBS1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50IiwiU0NBS1NBdHRhY2htZW50c1dyYXBwZXIiLCJTQ0FLU01vcmVJbmZvU3BhbiIsIlNDQUtTTW9yZUluZm9JY29uV3JhcHBlciIsIlNDQUtTRHJvcFpvbmUiLCJTQ0FLU0Ryb3Bab25lSWNvbiIsIlNDQUtTRHJvcFpvbmVUZXh0IiwiU0NBS1NEcm9wWm9uZUluZm8iLCJTQ0FLU0Ryb3Bab25lVGV4dFNwYW4iLCJ1c2VEb3dubG9hZEtub3dsZWRnZSIsInVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIiwiTW9kYWxGaWxlRXhjZWVkcyIsImFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UiLCJmaWxlVHlwZXMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsIk1BWF9UT1RBTF9TSVpFIiwiQWJtS25vd2xlZGdlU2VjdGlvbiIsIl9yZWYiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsInZhbHVlcyIsIm9uRmlsZUVycm9yQ2hhbmdlIiwidG9vbHRpcFpJbmRleCIsIl91c2VTdGF0ZSIsImtub3dsZWRnZSIsIl91c2VTdGF0ZTIiLCJsb2NhbEF0dGFjaG1lbnRzIiwic2V0TG9jYWxBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGU1IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJfdXNlU3RhdGU2IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJfdXNlRG93bmxvYWRLbm93bGVkZ2UiLCJoYW5kbGVEb3dubG9hZEtub3dsZWRnZSIsImlzRG93bmxvYWRpbmdTdWNjZXNzIiwic3VjY2VzcyIsImlzRG93bmxvYWRpbmdFcnJvciIsImVycm9yIiwiaXNEb3dubG9hZGluZyIsImlzTG9hZGluZyIsImhhbmRsZVJlc2V0U3RhdGVzIiwiX3VzZU9uYm9hcmRpbmdOYXZpZ2F0IiwiaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24iLCJmaWxlSW5wdXRSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiY3VycmVudFRvdGFsU2l6ZSIsInJlZHVjZSIsInRvdGFsIiwiYXR0YWNobWVudCIsInNpemUiLCJOdW1iZXIiLCJpc05hTiIsImlzQXRTaXplTGltaXQiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjbGljayIsImhhbmRsZUZpbGVTZWxlY3QiLCJlIiwiZmlsZXMiLCJ0YXJnZXQiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJleGlzdGluZ1RvdGFsU2l6ZSIsInJ1bm5pbmdUb3RhbFNpemUiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImZpbGVOYW1lUGFydHMiLCJmaWxlRXh0ZW5zaW9uIiwibGVuZ3RoIiwicG9wIiwidG9Mb3dlckNhc2UiLCJwdXNoIiwibmV3VG90YWxTaXplIiwidHlwZUZpbGUiLCJ0eXBlIiwidW5pcXVlTmFtZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwiYXR0YWNobWVudEZpbGUiLCJpZCIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic3RhdHVzIiwiaGFzRXJyb3JzIiwia2V5IiwidmFsdWUiLCJwcmV2IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiaGFuZGxlRHJhZ0VudGVyIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVEcmFnTGVhdmUiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyb3AiLCJkYXRhVHJhbnNmZXIiLCJzeW50aGV0aWNFdmVudCIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlVG9EZWxldGUiLCJuZXdBdHRhY2htZW50cyIsImZpbHRlciIsIl8iLCJpbmRleCIsImRlbGV0ZUtub3dsZWRnZSIsImhhbmRsZURvd25sb2FkQXR0YWNobWVudCIsImFnZW50SWQiLCJnZW5lcmFsIiwidG9TdHJpbmciLCJrbm93bGVkZ2VJZCIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJsb2IiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwic3R5bGUiLCJkaXNwbGF5IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2V0VGltZW91dCIsInJlbW92ZUNoaWxkIiwicmV2b2tlT2JqZWN0VVJMIiwiaGFuZGxlQWN0aW9uIiwiX3JlZjIiLCJhY3Rpb24iLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJjaGlsZHJlbiIsIiRpbmRleCIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwidGl0bGUiLCJ6SW5kZXgiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsInBvc2l0aW9uSW5kZXgiLCJhYm1Lbm93bGVkZ2VTZWN0aW9uIiwiZnVsbFdpZHRoIiwicmVmIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJzZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtS25vd2xlZGdlU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wbHVzcGx1cyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tY3ljbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2FuY2hvci1pcy12YWxpZCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9GaWxlVXBsb2FkJ1xuaW1wb3J0IHsgT3BlbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL09wZW4nXG5pbXBvcnQgeyBDaGFuZ2VFdmVudCwgRHJhZ0V2ZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBdHRhY2htZW50UHJldmlld01vZGFsIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudFByZXZpZXdNb2RhbCdcbmltcG9ydCB7IE1vZGFsVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnRNb2RhbCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHtcbiAgU0NBS1NXcmFwcGVyLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXIsXG4gIFNDQUtTV3JhcHBlckNvbnRlbnQsXG4gIFNDQUtTV3JhcHBlckhlYWRlclRpdGxlLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXJJbmZvLFxuICBTQ0FLU0ZpbGVVcGxvYWRXcmFwcGVyQ29udGVudCxcbiAgU0NBS1NBdHRhY2htZW50c1dyYXBwZXIsXG4gIFNDQUtTTW9yZUluZm9TcGFuLFxuICBTQ0FLU01vcmVJbmZvSWNvbldyYXBwZXIsXG4gIFNDQUtTRHJvcFpvbmUsXG4gIFNDQUtTRHJvcFpvbmVJY29uLFxuICBTQ0FLU0Ryb3Bab25lVGV4dCxcbiAgU0NBS1NEcm9wWm9uZUluZm8sXG4gIFNDQUtTRHJvcFpvbmVUZXh0U3Bhbixcbn0gZnJvbSAnLi9BYm1Lbm93bGVkZ2VTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IHVzZURvd25sb2FkS25vd2xlZGdlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlS25vd2xlZGdlL2Rvd25sb2FkS25vd2xlZGdlJ1xuaW1wb3J0IHsgdXNlT25ib2FyZGluZ05hdmlnYXRpb24gfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VPbmJvYXJkaW5nTmF2aWdhdGlvbidcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcy9Nb2RhbEZpbGVFeGNlZWRzJ1xuaW1wb3J0IHsgYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZSwgZmlsZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5cbmZ1bmN0aW9uIGdldFVuaXF1ZVN0cmluZyhwcmV2U3RyaW5nczogc3RyaW5nW10sIHN0cmluZ1RvQ2hhbmdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBbZmlsZW5hbWUsIGV4dGVuc2lvbiA9ICcnXSA9IHN0cmluZ1RvQ2hhbmdlLnNwbGl0KCcuJylcbiAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uID8gYC4ke2V4dGVuc2lvbn1gIDogJydcblxuICBpZiAoIXByZXZTdHJpbmdzPy5pbmNsdWRlcyhzdHJpbmdUb0NoYW5nZSkpIHtcbiAgICByZXR1cm4gc3RyaW5nVG9DaGFuZ2VcbiAgfVxuXG4gIGxldCBjb3VudGVyID0gMVxuICBsZXQgbmV3RmlsZW5hbWVcbiAgZG8ge1xuICAgIG5ld0ZpbGVuYW1lID0gYCR7ZmlsZW5hbWV9KCR7Y291bnRlcn0pJHtleHR9YFxuICAgIGNvdW50ZXIrK1xuICB9IHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKVxuXG4gIHJldHVybiBuZXdGaWxlbmFtZVxufVxuXG5jb25zdCBNQVhfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNCAvLyA1TUIgdG90YWxcblxuZXhwb3J0IGNvbnN0IEFibUtub3dsZWRnZVNlY3Rpb24gPSAoe1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlcyxcbiAgdmFsdWVzLFxuICBvbkZpbGVFcnJvckNoYW5nZSxcbiAgdG9vbHRpcFpJbmRleCxcbn06IHtcbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM6ICh7XG4gICAga2V5LFxuICAgIHZhbHVlLFxuICAgIGRlbGV0ZUtub3dsZWRnZSxcbiAgfToge1xuICAgIGtleTogc3RyaW5nXG4gICAgdmFsdWU6IHVua25vd25cbiAgICBkZWxldGVLbm93bGVkZ2U/OiBib29sZWFuXG4gIH0pID0+IHZvaWRcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBvbkZpbGVFcnJvckNoYW5nZT86IChoYXNFcnJvcnM6IGJvb2xlYW4pID0+IHZvaWRcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCBbbG9jYWxBdHRhY2htZW50cywgc2V0TG9jYWxBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPih2YWx1ZXMua25vd2xlZGdlIHx8IFtdKVxuICBjb25zdCBbcHJldmlld0F0dGFjaG1lbnQsIHNldFByZXZpZXdBdHRhY2htZW50XSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICB9KVxuICBjb25zdCB7XG4gICAgaGFuZGxlRG93bmxvYWRLbm93bGVkZ2UsXG4gICAgc3VjY2VzczogaXNEb3dubG9hZGluZ1N1Y2Nlc3MsXG4gICAgZXJyb3I6IGlzRG93bmxvYWRpbmdFcnJvcixcbiAgICBpc0xvYWRpbmc6IGlzRG93bmxvYWRpbmcsXG4gICAgaGFuZGxlUmVzZXRTdGF0ZXMsXG4gIH0gPSB1c2VEb3dubG9hZEtub3dsZWRnZSgpXG4gIGNvbnN0IHsgaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24gfSA9IHVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtpc0RyYWdnaW5nLCBzZXRJc0RyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zXG4gIGNvbnN0IGN1cnJlbnRUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgIGNvbnN0IHNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgcmV0dXJuIHRvdGFsICsgKE51bWJlci5pc05hTihzaXplKSA/IDAgOiBzaXplKVxuICB9LCAwKVxuICBjb25zdCBpc0F0U2l6ZUxpbWl0ID0gY3VycmVudFRvdGFsU2l6ZSA+PSBNQVhfVE9UQUxfU0laRVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaENsaWNrID0gKCkgPT4ge1xuICAgIGlmIChpc0F0U2l6ZUxpbWl0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB7IGZpbGVzIH0gPSBlLnRhcmdldFxuICAgIGlmICghZmlsZXMpIHJldHVyblxuXG4gICAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdID0gW11cbiAgICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLm1hcChhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQubmFtZSlcblxuICAgIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zIHlhIGFkanVudG9zXG4gICAgY29uc3QgZXhpc3RpbmdUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IHR5cGVvZiBhdHRhY2htZW50LnNpemUgPT09ICdudW1iZXInID8gYXR0YWNobWVudC5zaXplIDogTnVtYmVyKGF0dGFjaG1lbnQuc2l6ZSlcbiAgICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgICB9LCAwKVxuICAgIGxldCBydW5uaW5nVG90YWxTaXplID0gZXhpc3RpbmdUb3RhbFNpemVcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZmljYXIgc2kgYWdyZWdhciBlc3RlIGFyY2hpdm8gZXhjZWRlcsOtYSBlbCBsw61taXRlIHRvdGFsIGRlIDVNQlxuICAgICAgY29uc3QgbmV3VG90YWxTaXplID0gcnVubmluZ1RvdGFsU2l6ZSArIGZpbGUuc2l6ZVxuICAgICAgaWYgKG5ld1RvdGFsU2l6ZSA+IE1BWF9UT1RBTF9TSVpFKSB7XG4gICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgdW5pcXVlTmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuXG4gICAgICBjb25zdCBhdHRhY2htZW50RmlsZTogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgICAgbmFtZTogdW5pcXVlTmFtZSxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgICAgc3RhdHVzOiAnc3RhcnRlZCcsXG4gICAgICB9XG5cbiAgICAgIC8vIFNvbG8gYWdyZWdhciBlbCBhcmNoaXZvIHNpIG5vIGVzdMOhIGVuIGxhIGxpc3RhIGRlIGFyY2hpdm9zIGV4Y2VkaWRvc1xuICAgICAgaWYgKCFleGNlZWRlZEZpbGVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgaW5zZXJ0ZWRGaWxlcy5wdXNoKGF0dGFjaG1lbnRGaWxlKVxuICAgICAgICAvLyBBY3R1YWxpemFyIGVsIHRhbWHDsW8gdG90YWwgcGFyYSBsYSBzaWd1aWVudGUgdmFsaWRhY2nDs25cbiAgICAgICAgcnVubmluZ1RvdGFsU2l6ZSArPSBmaWxlLnNpemVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gTW9zdHJhciBtb2RhbCBzaSBoYXkgYXJjaGl2b3MgY29uIGV4dGVuc2nDs24gaW52w6FsaWRhIG8gcXVlIGV4Y2VkZW4gZWwgbMOtbWl0ZVxuICAgIGNvbnN0IGhhc0Vycm9ycyA9IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMFxuICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGludmFsaWRFeHRlbnNpb25GaWxlcyB9KVxuICAgICAgb25GaWxlRXJyb3JDaGFuZ2U/Lih0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICAgIH1cblxuICAgIC8vIFNvbG8gYWdyZWdhciBhcmNoaXZvcyB2w6FsaWRvcyBxdWUgbm8gZXhjZWRhbiBlbCBsw61taXRlXG4gICAgaWYgKGluc2VydGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcz8uKHsga2V5OiAna25vd2xlZGdlJywgdmFsdWU6IGluc2VydGVkRmlsZXMgfSlcbiAgICAgIHNldExvY2FsQXR0YWNobWVudHMocHJldiA9PiBbLi4uKHByZXYgfHwgW10pLCAuLi5pbnNlcnRlZEZpbGVzXSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnRW50ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIWlzQXRTaXplTGltaXQpIHtcbiAgICAgIHNldElzRHJhZ2dpbmcodHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnTGVhdmUgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuXG4gICAgaWYgKGlzQXRTaXplTGltaXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGUuZGF0YVRyYW5zZmVyXG4gICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENyZWFyIHVuIGV2ZW50byBzaW50w6l0aWNvIHBhcmEgcmV1dGlsaXphciBsYSBsw7NnaWNhIGRlIGhhbmRsZUZpbGVTZWxlY3RcbiAgICBjb25zdCBzeW50aGV0aWNFdmVudCA9IHtcbiAgICAgIHRhcmdldDogeyBmaWxlcyB9LFxuICAgIH0gYXMgQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD5cblxuICAgIGhhbmRsZUZpbGVTZWxlY3Qoc3ludGhldGljRXZlbnQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBsb2NhbEF0dGFjaG1lbnRzW2lkXVxuICAgIGlmICghZmlsZVRvRGVsZXRlKSByZXR1cm5cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLmZpbHRlcigoXywgaW5kZXgpID0+IGluZGV4ICE9PSBpZClcbiAgICBzZXRMb2NhbEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuXG4gICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/Lih7IGtleTogJ2tub3dsZWRnZScsIHZhbHVlOiBuZXdBdHRhY2htZW50cywgZGVsZXRlS25vd2xlZGdlOiB0cnVlIH0pXG5cbiAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pW2lkXVxuICAgIGlmICghZmlsZSkgcmV0dXJuXG5cbiAgICBoYW5kbGVEb3dubG9hZEtub3dsZWRnZSh7IGFnZW50SWQ6IHZhbHVlcy5nZW5lcmFsLmlkIS50b1N0cmluZygpLCBrbm93bGVkZ2VJZDogZmlsZS5pZCB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZ1N1Y2Nlc3MgJiYgIWlzRG93bmxvYWRpbmdFcnJvciAmJiAhaXNEb3dubG9hZGluZykge1xuICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpc0Rvd25sb2FkaW5nU3VjY2Vzcy5ibG9iKVxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLmRvd25sb2FkID0gaXNEb3dubG9hZGluZ1N1Y2Nlc3MuZmlsZW5hbWVcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaylcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpXG4gICAgICAgIGhhbmRsZVJlc2V0U3RhdGVzKClcbiAgICAgIH0sIDEwMClcbiAgICB9XG4gIH0sIFtpc0Rvd25sb2FkaW5nU3VjY2VzcywgaXNEb3dubG9hZGluZ0Vycm9yLCBpc0Rvd25sb2FkaW5nLCBoYW5kbGVSZXNldFN0YXRlc10pXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKHsgaWQsIGFjdGlvbiB9OiB7IGlkOiBudW1iZXI7IGFjdGlvbjogJ2RlbGV0ZScgfCAnZG93bmxvYWQnIH0pID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZykgcmV0dXJuXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgIGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoaWQpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50KGlkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRDbGljayA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgIC8vIFBlcm1pdGlyIHByZXZpc3VhbGl6YWNpw7NuIHNpIHRpZW5lIGFyY2hpdm8gbG9jYWwgbyBVUkxzIGRlbCBiYWNrZW5kXG4gICAgLy8gU29sbyBzaSBubyB0aWVuZSBlcnJvcmVzIChzdGF0dXMgIT09ICdmYWlsZWQnKVxuICAgIGlmIChhdHRhY2htZW50LnN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0FLU1dyYXBwZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJIZWFkZXIgJGluZGV4PXswfT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVyVGl0bGU+e3QoJ2tub3dsZWRnZVNlY3Rpb24ua25vd2xlZGdlVGFiJyl9PC9TQ0FLU1dyYXBwZXJIZWFkZXJUaXRsZT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLmluZm9MYWJlbCcpfVxuICAgICAgICAgICAgICA8U0NBS1NNb3JlSW5mb1NwYW4gb25DbGljaz17KCkgPT4gaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24oJ21vcmVJbmZvJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLm1vcmVJbmZvJyl9XG4gICAgICAgICAgICAgICAgPFNDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIDxPcGVuIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gY29sb3I9XCIjMDA2RkFGXCIgLz5cbiAgICAgICAgICAgICAgICA8L1NDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9TQ0FLU01vcmVJbmZvU3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvU0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgPC9TQ0FLU1dyYXBwZXJIZWFkZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJDb250ZW50ICRpbmRleD17MX0+XG4gICAgICAgICAgPFNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50PlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzQXRTaXplTGltaXQgPyB0KCdrbm93bGVkZ2VTZWN0aW9uLmVycm9yLm1heFNpemVUaXRsZScpIDogJyd9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgaXNBdFNpemVMaW1pdD17aXNBdFNpemVMaW1pdH1cbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nPXtpc0RyYWdnaW5nfVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VudGVyPXtoYW5kbGVEcmFnRW50ZXJ9XG4gICAgICAgICAgICAgICAgb25EcmFnTGVhdmU9e2hhbmRsZURyYWdMZWF2ZX1cbiAgICAgICAgICAgICAgICBvbkRyYWdPdmVyPXtoYW5kbGVEcmFnT3Zlcn1cbiAgICAgICAgICAgICAgICBvbkRyb3A9e2hhbmRsZURyb3B9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgICA8RmlsZVVwbG9hZCB3aWR0aD17MzB9IGhlaWdodD17MzB9IGNvbG9yPXtpc0F0U2l6ZUxpbWl0ID8gJyM5OTknIDogJyMwMDZGQUYnfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0U3BhbiBpc0F0U2l6ZUxpbWl0PXtpc0F0U2l6ZUxpbWl0fSBkYXRhLWRyb3B6b25lLWxpbmsgb25DbGljaz17aGFuZGxlQXR0YWNoQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICB7dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lVGV4dFNwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMicpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L1NDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lSW5mbz57dCgna25vd2xlZGdlU2VjdGlvbi5pbmZvRmlsZVR5cGVzJyl9PC9TQ0FLU0Ryb3Bab25lSW5mbz5cbiAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDwvU0NBS1NGaWxlVXBsb2FkV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgICAgPFNDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICAgICAgeyhsb2NhbEF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbkluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGtleT17YGF0dGFjaG1lbnQtJHthdHRhY2htZW50Py5uYW1lfS0ke2F0dGFjaG1lbnQ/LmlkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgaGFuZGxlQWN0aW9uPXtoYW5kbGVBY3Rpb259XG4gICAgICAgICAgICAgICAgICBhYm1Lbm93bGVkZ2VTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRDbGljayhhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICA8L1NDQUtTV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucHB0LC5wcHR4LC5wZGYsLnBuZywuanBnLC5qcGVnLC54bHN4LC54bHNcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TQ0FLU1dyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGludmFsaWRFeHRlbnNpb25GaWxlczogW10gfSlcbiAgICAgICAgICAgIG9uRmlsZUVycm9yQ2hhbmdlPy4oZmFsc2UpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGludmFsaWRFeHRlbnNpb25GaWxlcz17bW9kYWxQcm9wcy5pbnZhbGlkRXh0ZW5zaW9uRmlsZXN9XG4gICAgICAgICAgc2VjdGlvbj1cImFibV9hZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3TW9kYWxcbiAgICAgICAgaXNPcGVuPXshIXByZXZpZXdBdHRhY2htZW50fVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVByZXZpZXd9XG4gICAgICAgIGF0dGFjaG1lbnQ9e3ByZXZpZXdBdHRhY2htZW50fVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQWlDQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0UsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsY0FBYyxRQUFRLDJDQUEyQztBQUMxRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFHM0UsU0FDRUMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsdUJBQXVCLEVBQ3ZCQyxzQkFBc0IsRUFDdEJDLDZCQUE2QixFQUM3QkMsdUJBQXVCLEVBQ3ZCQyxpQkFBaUIsRUFDakJDLHdCQUF3QixFQUN4QkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGlCQUFpQixFQUNqQkMsaUJBQWlCLEVBQ2pCQyxxQkFBcUIsUUFDaEIsOEJBQThCO0FBQ3JDLFNBQVNDLG9CQUFvQixRQUFRLCtDQUErQztBQUNwRixTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFDaEYsU0FBU0MsZ0JBQWdCLFFBQVEsbURBQW1EO0FBQ3BGLFNBQVNDLDRCQUE0QixFQUFFQyxTQUFTLFFBQVEscUNBQXFDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFFN0YsU0FBU0MsZUFBZUEsQ0FBQ0MsV0FBcUIsRUFBRUMsY0FBc0IsRUFBVTtFQUM5RSxJQUFBQyxxQkFBQSxHQUFtQ0QsY0FBYyxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQUFDLHNCQUFBLEdBQUFDLGNBQUEsQ0FBQUgscUJBQUE7SUFBckRJLFFBQVEsR0FBQUYsc0JBQUE7SUFBQUcsc0JBQUEsR0FBQUgsc0JBQUE7SUFBRUksU0FBUyxHQUFBRCxzQkFBQSxjQUFHLEVBQUUsR0FBQUEsc0JBQUE7RUFDL0IsSUFBTUUsR0FBRyxHQUFHRCxTQUFTLE9BQUFFLE1BQUEsQ0FBT0YsU0FBUyxJQUFLLEVBQUU7RUFFNUMsSUFBSSxFQUFDUixXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFVyxRQUFRLENBQUNWLGNBQWMsQ0FBQyxHQUFFO0lBQzFDLE9BQU9BLGNBQWM7RUFDdkI7RUFFQSxJQUFJVyxPQUFPLEdBQUcsQ0FBQztFQUNmLElBQUlDLFdBQVc7RUFDZixHQUFHO0lBQ0RBLFdBQVcsTUFBQUgsTUFBQSxDQUFNSixRQUFRLE9BQUFJLE1BQUEsQ0FBSUUsT0FBTyxPQUFBRixNQUFBLENBQUlELEdBQUcsQ0FBRTtJQUM3Q0csT0FBTyxFQUFFO0VBQ1gsQ0FBQyxRQUFRWixXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFVyxRQUFRLENBQUNFLFdBQVcsQ0FBQztFQUUzQyxPQUFPQSxXQUFXO0FBQ3BCO0FBRUEsSUFBTUMsY0FBYyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFDOztBQUV2QyxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUFDLElBQUEsRUFrQjFCO0VBQUEsSUFqQkpDLG9CQUFvQixHQUFBRCxJQUFBLENBQXBCQyxvQkFBb0I7SUFDcEJDLE1BQU0sR0FBQUYsSUFBQSxDQUFORSxNQUFNO0lBQ05DLGlCQUFpQixHQUFBSCxJQUFBLENBQWpCRyxpQkFBaUI7SUFDakJDLGFBQWEsR0FBQUosSUFBQSxDQUFiSSxhQUFhO0VBZWIsSUFBQUMsU0FBQSxHQUFnRG5ELFFBQVEsQ0FBbUJnRCxNQUFNLENBQUNJLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFBQUMsVUFBQSxHQUFBbEIsY0FBQSxDQUFBZ0IsU0FBQTtJQUEzRkcsZ0JBQWdCLEdBQUFELFVBQUE7SUFBRUUsbUJBQW1CLEdBQUFGLFVBQUE7RUFDNUMsSUFBQUcsVUFBQSxHQUFrRHhELFFBQVEsQ0FBd0IsSUFBSSxDQUFDO0lBQUF5RCxVQUFBLEdBQUF0QixjQUFBLENBQUFxQixVQUFBO0lBQWhGRSxpQkFBaUIsR0FBQUQsVUFBQTtJQUFFRSxvQkFBb0IsR0FBQUYsVUFBQTtFQUM5QyxJQUFBRyxlQUFBLEdBQWMzRCxjQUFjLENBQUMsbUJBQW1CLENBQUM7SUFBekM0RCxDQUFDLEdBQUFELGVBQUEsQ0FBREMsQ0FBQztFQUNULElBQUFDLFVBQUEsR0FBb0M5RCxRQUFRLENBQUM7TUFDM0MrRCxNQUFNLEVBQUUsS0FBSztNQUNiQyxhQUFhLEVBQUUsRUFBYztNQUM3QkMsYUFBYSxFQUFFLEVBQWM7TUFDN0JDLHFCQUFxQixFQUFFO0lBQ3pCLENBQUMsQ0FBQztJQUFBQyxVQUFBLEdBQUFoQyxjQUFBLENBQUEyQixVQUFBO0lBTEtNLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFNaEMsSUFBQUcscUJBQUEsR0FNSXBELG9CQUFvQixDQUFDLENBQUM7SUFMeEJxRCx1QkFBdUIsR0FBQUQscUJBQUEsQ0FBdkJDLHVCQUF1QjtJQUNkQyxvQkFBb0IsR0FBQUYscUJBQUEsQ0FBN0JHLE9BQU87SUFDQUMsa0JBQWtCLEdBQUFKLHFCQUFBLENBQXpCSyxLQUFLO0lBQ01DLGFBQWEsR0FBQU4scUJBQUEsQ0FBeEJPLFNBQVM7SUFDVEMsaUJBQWlCLEdBQUFSLHFCQUFBLENBQWpCUSxpQkFBaUI7RUFFbkIsSUFBQUMscUJBQUEsR0FBdUM1RCx1QkFBdUIsQ0FBQyxDQUFDO0lBQXhENkQsMEJBQTBCLEdBQUFELHFCQUFBLENBQTFCQywwQkFBMEI7RUFDbEMsSUFBTUMsWUFBWSxHQUFHbEYsTUFBTSxDQUFtQixJQUFJLENBQUM7RUFDbkQsSUFBQW1GLFVBQUEsR0FBb0NsRixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFtRixVQUFBLEdBQUFoRCxjQUFBLENBQUErQyxVQUFBO0lBQTVDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBOztFQUVoQztFQUNBLElBQU1HLGdCQUFnQixHQUFHLENBQUNoQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUVpQyxNQUFNLENBQUMsVUFBQ0MsS0FBSyxFQUFFQyxVQUFVLEVBQUs7SUFDOUUsSUFBTUMsSUFBSSxHQUFHLE9BQU9ELFVBQVUsQ0FBQ0MsSUFBSSxLQUFLLFFBQVEsR0FBR0QsVUFBVSxDQUFDQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0YsVUFBVSxDQUFDQyxJQUFJLENBQUM7SUFDNUYsT0FBT0YsS0FBSyxJQUFJRyxNQUFNLENBQUNDLEtBQUssQ0FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHQSxJQUFJLENBQUM7RUFDaEQsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUNMLElBQU1HLGFBQWEsR0FBR1AsZ0JBQWdCLElBQUkxQyxjQUFjO0VBRXhELElBQU1rRCxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQVM7SUFBQSxJQUFBQyxxQkFBQTtJQUM5QixJQUFJRixhQUFhLEVBQUU7TUFDakI7SUFDRjtJQUNBLENBQUFFLHFCQUFBLEdBQUFkLFlBQVksQ0FBQ2UsT0FBTyxjQUFBRCxxQkFBQSxlQUFwQkEscUJBQUEsQ0FBc0JFLEtBQUssQ0FBQyxDQUFDO0VBQy9CLENBQUM7RUFFRCxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJQyxDQUFnQyxFQUFLO0lBQzdELElBQVFDLEtBQUssR0FBS0QsQ0FBQyxDQUFDRSxNQUFNLENBQWxCRCxLQUFLO0lBQ2IsSUFBSSxDQUFDQSxLQUFLLEVBQUU7SUFFWixJQUFNbkMsYUFBdUIsR0FBRyxFQUFFO0lBQ2xDLElBQU1ELGFBQXVCLEdBQUcsRUFBRTtJQUNsQyxJQUFNRSxxQkFBK0IsR0FBRyxFQUFFO0lBQzFDLElBQU1vQyxhQUErQixHQUFHLEVBQUU7SUFDMUMsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQ2pELGdCQUFnQixJQUFJLEVBQUUsRUFBRWtELEdBQUcsQ0FBQyxVQUFBZixVQUFVO01BQUEsT0FBSUEsVUFBVSxDQUFDZ0IsSUFBSTtJQUFBLEVBQUM7O0lBRXBGO0lBQ0EsSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQ3BELGdCQUFnQixJQUFJLEVBQUUsRUFBRWlDLE1BQU0sQ0FBQyxVQUFDQyxLQUFLLEVBQUVDLFVBQVUsRUFBSztNQUMvRSxJQUFNQyxJQUFJLEdBQUcsT0FBT0QsVUFBVSxDQUFDQyxJQUFJLEtBQUssUUFBUSxHQUFHRCxVQUFVLENBQUNDLElBQUksR0FBR0MsTUFBTSxDQUFDRixVQUFVLENBQUNDLElBQUksQ0FBQztNQUM1RixPQUFPRixLQUFLLElBQUlHLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUdBLElBQUksQ0FBQztJQUNoRCxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ0wsSUFBSWlCLGdCQUFnQixHQUFHRCxpQkFBaUI7SUFDeENFLEtBQUssQ0FBQ0MsSUFBSSxDQUFDVCxLQUFLLENBQUMsQ0FBQ1UsT0FBTyxDQUFDLFVBQUFDLElBQUksRUFBSTtNQUFBLElBQUFDLGtCQUFBO01BQ2hDLElBQU1DLGFBQWEsR0FBR0YsSUFBSSxDQUFDTixJQUFJLENBQUN4RSxLQUFLLENBQUMsR0FBRyxDQUFDO01BQzFDLElBQU1pRixhQUFhLEdBQUdELGFBQWEsQ0FBQ0UsTUFBTSxHQUFHLENBQUMsT0FBQTNFLE1BQUEsRUFBQXdFLGtCQUFBLEdBQU9DLGFBQWEsQ0FBQ0csR0FBRyxDQUFDLENBQUMsY0FBQUosa0JBQUEsdUJBQW5CQSxrQkFBQSxDQUFxQkssV0FBVyxDQUFDLENBQUMsSUFBSyxFQUFFO01BRTlGLElBQUksQ0FBQ2hHLDRCQUE0QixDQUFDb0IsUUFBUSxDQUFDeUUsYUFBYSxDQUFDLEVBQUU7UUFDekRoRCxxQkFBcUIsQ0FBQ29ELElBQUksQ0FBQ1AsSUFBSSxDQUFDTixJQUFJLENBQUM7UUFDckM7TUFDRjs7TUFFQTtNQUNBLElBQU1jLFlBQVksR0FBR1osZ0JBQWdCLEdBQUdJLElBQUksQ0FBQ3JCLElBQUk7TUFDakQsSUFBSTZCLFlBQVksR0FBRzNFLGNBQWMsRUFBRTtRQUNqQ3FCLGFBQWEsQ0FBQ3FELElBQUksQ0FBQ1AsSUFBSSxDQUFDTixJQUFJLENBQUM7UUFDN0I7TUFDRjtNQUVBLElBQU1lLFFBQVEsR0FBR1QsSUFBSSxDQUFDVSxJQUFJLElBQUluRyxTQUFTLENBQUM0RixhQUFhLENBQUM7TUFDdEQsSUFBTVEsVUFBVSxHQUFHN0YsZUFBZSxDQUFDMEUsZ0JBQWdCLEVBQUVRLElBQUksQ0FBQ04sSUFBSSxDQUFDO01BQy9ELElBQU1rQixVQUFVLEdBQUcsSUFBSUMsSUFBSSxDQUFDLENBQUNiLElBQUksQ0FBQyxFQUFFVyxVQUFVLEVBQUU7UUFBRUQsSUFBSSxFQUFFRDtNQUFTLENBQUMsQ0FBQztNQUVuRSxJQUFNSyxjQUE4QixHQUFHO1FBQ3JDZCxJQUFJLEVBQUVZLFVBQVU7UUFDaEJHLEVBQUUsS0FBQXRGLE1BQUEsQ0FBS3VGLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsT0FBQXhGLE1BQUEsQ0FBSXlGLElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBRTtRQUNwQ3pCLElBQUksRUFBRWlCLFVBQVU7UUFDaEJoQyxJQUFJLEVBQUVxQixJQUFJLENBQUNyQixJQUFJO1FBQ2YrQixJQUFJLEVBQUVELFFBQVE7UUFDZFcsTUFBTSxFQUFFO01BQ1YsQ0FBQzs7TUFFRDtNQUNBLElBQUksQ0FBQ2xFLGFBQWEsQ0FBQ3hCLFFBQVEsQ0FBQ3NFLElBQUksQ0FBQ04sSUFBSSxDQUFDLEVBQUU7UUFDdENILGFBQWEsQ0FBQ2dCLElBQUksQ0FBQ08sY0FBYyxDQUFDO1FBQ2xDO1FBQ0FsQixnQkFBZ0IsSUFBSUksSUFBSSxDQUFDckIsSUFBSTtNQUMvQjtJQUNGLENBQUMsQ0FBQzs7SUFFRjtJQUNBLElBQU0wQyxTQUFTLEdBQUdsRSxxQkFBcUIsQ0FBQ2lELE1BQU0sR0FBRyxDQUFDLElBQUlsRCxhQUFhLENBQUNrRCxNQUFNLEdBQUcsQ0FBQztJQUM5RSxJQUFJaUIsU0FBUyxFQUFFO01BQ2IvRCxhQUFhLENBQUM7UUFBRU4sTUFBTSxFQUFFLElBQUk7UUFBRUMsYUFBYSxFQUFiQSxhQUFhO1FBQUVDLGFBQWEsRUFBYkEsYUFBYTtRQUFFQyxxQkFBcUIsRUFBckJBO01BQXNCLENBQUMsQ0FBQztNQUNwRmpCLGlCQUFpQixhQUFqQkEsaUJBQWlCLGVBQWpCQSxpQkFBaUIsQ0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQyxNQUFNO01BQ0xBLGlCQUFpQixhQUFqQkEsaUJBQWlCLGVBQWpCQSxpQkFBaUIsQ0FBRyxLQUFLLENBQUM7SUFDNUI7O0lBRUE7SUFDQSxJQUFJcUQsYUFBYSxDQUFDYSxNQUFNLEVBQUU7TUFDeEJwRSxvQkFBb0IsYUFBcEJBLG9CQUFvQixlQUFwQkEsb0JBQW9CLENBQUc7UUFBRXNGLEdBQUcsRUFBRSxXQUFXO1FBQUVDLEtBQUssRUFBRWhDO01BQWMsQ0FBQyxDQUFDO01BQ2xFL0MsbUJBQW1CLENBQUMsVUFBQWdGLElBQUk7UUFBQSxVQUFBL0YsTUFBQSxDQUFBZ0csa0JBQUEsQ0FBU0QsSUFBSSxJQUFJLEVBQUUsR0FBTWpDLGFBQWE7TUFBQSxDQUFDLENBQUM7SUFDbEU7RUFDRixDQUFDO0VBRUQsSUFBTW1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSXRDLENBQTRCLEVBQUs7SUFDeERBLENBQUMsQ0FBQ3VDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCdkMsQ0FBQyxDQUFDd0MsZUFBZSxDQUFDLENBQUM7SUFDbkIsSUFBSSxDQUFDOUMsYUFBYSxFQUFFO01BQ2xCUixhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ3JCO0VBQ0YsQ0FBQztFQUVELElBQU11RCxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUl6QyxDQUE0QixFQUFLO0lBQ3hEQSxDQUFDLENBQUN1QyxjQUFjLENBQUMsQ0FBQztJQUNsQnZDLENBQUMsQ0FBQ3dDLGVBQWUsQ0FBQyxDQUFDO0lBQ25CdEQsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUN0QixDQUFDO0VBRUQsSUFBTXdELGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSTFDLENBQTRCLEVBQUs7SUFDdkRBLENBQUMsQ0FBQ3VDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCdkMsQ0FBQyxDQUFDd0MsZUFBZSxDQUFDLENBQUM7RUFDckIsQ0FBQztFQUVELElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJM0MsQ0FBNEIsRUFBSztJQUNuREEsQ0FBQyxDQUFDdUMsY0FBYyxDQUFDLENBQUM7SUFDbEJ2QyxDQUFDLENBQUN3QyxlQUFlLENBQUMsQ0FBQztJQUNuQnRELGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFFcEIsSUFBSVEsYUFBYSxFQUFFO01BQ2pCO0lBQ0Y7SUFFQSxJQUFRTyxLQUFLLEdBQUtELENBQUMsQ0FBQzRDLFlBQVksQ0FBeEIzQyxLQUFLO0lBQ2IsSUFBSSxDQUFDQSxLQUFLLElBQUlBLEtBQUssQ0FBQ2UsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUNoQztJQUNGOztJQUVBO0lBQ0EsSUFBTTZCLGNBQWMsR0FBRztNQUNyQjNDLE1BQU0sRUFBRTtRQUFFRCxLQUFLLEVBQUxBO01BQU07SUFDbEIsQ0FBa0M7SUFFbENGLGdCQUFnQixDQUFDOEMsY0FBYyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFJbkIsRUFBVSxFQUFLO0lBQzdDLElBQU1vQixZQUFZLEdBQUc1RixnQkFBZ0IsQ0FBQ3dFLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQUNvQixZQUFZLEVBQUU7SUFFbkIsSUFBTUMsY0FBYyxHQUFHLENBQUM3RixnQkFBZ0IsSUFBSSxFQUFFLEVBQUU4RixNQUFNLENBQUMsVUFBQ0MsQ0FBQyxFQUFFQyxLQUFLO01BQUEsT0FBS0EsS0FBSyxLQUFLeEIsRUFBRTtJQUFBLEVBQUM7SUFDbEZ2RSxtQkFBbUIsQ0FBQzRGLGNBQWMsQ0FBQztJQUVuQ3BHLG9CQUFvQixhQUFwQkEsb0JBQW9CLGVBQXBCQSxvQkFBb0IsQ0FBRztNQUFFc0YsR0FBRyxFQUFFLFdBQVc7TUFBRUMsS0FBSyxFQUFFYSxjQUFjO01BQUVJLGVBQWUsRUFBRTtJQUFLLENBQUMsQ0FBQztJQUUxRnRHLGlCQUFpQixhQUFqQkEsaUJBQWlCLGVBQWpCQSxpQkFBaUIsQ0FBRyxLQUFLLENBQUM7RUFDNUIsQ0FBQztFQUVELElBQU11Ryx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJMUIsRUFBVSxFQUFLO0lBQy9DLElBQU1mLElBQUksR0FBRyxDQUFDekQsZ0JBQWdCLElBQUksRUFBRSxFQUFFd0UsRUFBRSxDQUFDO0lBQ3pDLElBQUksQ0FBQ2YsSUFBSSxFQUFFO0lBRVh4Qyx1QkFBdUIsQ0FBQztNQUFFa0YsT0FBTyxFQUFFekcsTUFBTSxDQUFDMEcsT0FBTyxDQUFDNUIsRUFBRSxDQUFFNkIsUUFBUSxDQUFDLENBQUM7TUFBRUMsV0FBVyxFQUFFN0MsSUFBSSxDQUFDZTtJQUFHLENBQUMsQ0FBQztFQUMzRixDQUFDO0VBRURoSSxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUkwRSxvQkFBb0IsSUFBSSxDQUFDRSxrQkFBa0IsSUFBSSxDQUFDRSxhQUFhLEVBQUU7TUFDakUsSUFBTWlGLEdBQUcsR0FBR0MsR0FBRyxDQUFDQyxlQUFlLENBQUN2RixvQkFBb0IsQ0FBQ3dGLElBQUksQ0FBQztNQUMxRCxJQUFNQyxJQUFJLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLEdBQUcsQ0FBQztNQUN4Q0YsSUFBSSxDQUFDRyxJQUFJLEdBQUdQLEdBQUc7TUFDZkksSUFBSSxDQUFDSSxRQUFRLEdBQUc3RixvQkFBb0IsQ0FBQ3BDLFFBQVE7TUFDN0M2SCxJQUFJLENBQUNLLEtBQUssQ0FBQ0MsT0FBTyxHQUFHLE1BQU07TUFFM0JMLFFBQVEsQ0FBQ00sSUFBSSxDQUFDQyxXQUFXLENBQUNSLElBQUksQ0FBQztNQUMvQkEsSUFBSSxDQUFDaEUsS0FBSyxDQUFDLENBQUM7TUFFWnlFLFVBQVUsQ0FBQyxZQUFNO1FBQ2ZSLFFBQVEsQ0FBQ00sSUFBSSxDQUFDRyxXQUFXLENBQUNWLElBQUksQ0FBQztRQUMvQkgsR0FBRyxDQUFDYyxlQUFlLENBQUNmLEdBQUcsQ0FBQztRQUN4Qi9FLGlCQUFpQixDQUFDLENBQUM7TUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNUO0VBQ0YsQ0FBQyxFQUFFLENBQUNOLG9CQUFvQixFQUFFRSxrQkFBa0IsRUFBRUUsYUFBYSxFQUFFRSxpQkFBaUIsQ0FBQyxDQUFDO0VBRWhGLElBQU0rRixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQUMsS0FBQSxFQUFzRTtJQUFBLElBQWhFaEQsRUFBRSxHQUFBZ0QsS0FBQSxDQUFGaEQsRUFBRTtNQUFFaUQsTUFBTSxHQUFBRCxLQUFBLENBQU5DLE1BQU07SUFDaEMsSUFBSW5HLGFBQWEsRUFBRTtJQUNuQixJQUFJbUcsTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUN2QjlCLHNCQUFzQixDQUFDbkIsRUFBRSxDQUFDO01BQzFCO0lBQ0Y7SUFDQSxJQUFJaUQsTUFBTSxLQUFLLFVBQVUsRUFBRTtNQUN6QnZCLHdCQUF3QixDQUFDMUIsRUFBRSxDQUFDO0lBQzlCO0VBQ0YsQ0FBQztFQUVELElBQU1rRCxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJdkYsVUFBMEIsRUFBSztJQUM1RDtJQUNBO0lBQ0EsSUFBSUEsVUFBVSxDQUFDMEMsTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUNsQztJQUNGO0lBRUEsSUFDRTFDLFVBQVUsQ0FBQ3NCLElBQUksWUFBWWEsSUFBSSxJQUMvQm5DLFVBQVUsQ0FBQ3dGLFlBQVksWUFBWXJELElBQUksSUFDdkNuQyxVQUFVLENBQUN5RixhQUFhLElBQ3hCekYsVUFBVSxDQUFDMEYsWUFBWSxJQUN2QjFGLFVBQVUsQ0FBQzJGLFFBQVEsRUFDbkI7TUFDQXpILG9CQUFvQixDQUFDOEIsVUFBVSxDQUFDO0lBQ2xDO0VBQ0YsQ0FBQztFQUVELElBQU00RixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7SUFDL0IxSCxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7RUFDNUIsQ0FBQztFQUVELG9CQUNFakMsS0FBQSxDQUFBRSxTQUFBO0lBQUEwSixRQUFBLGdCQUNFNUosS0FBQSxDQUFDdEIsWUFBWTtNQUFBa0wsUUFBQSxnQkFDWDVKLEtBQUEsQ0FBQ3JCLGtCQUFrQjtRQUFDa0wsTUFBTSxFQUFFLENBQUU7UUFBQUQsUUFBQSxnQkFDNUI5SixJQUFBLENBQUNqQix1QkFBdUI7VUFBQStLLFFBQUEsRUFBRXpILENBQUMsQ0FBQywrQkFBK0I7UUFBQyxDQUEwQixDQUFDLGVBQ3ZGckMsSUFBQSxDQUFDaEIsc0JBQXNCO1VBQUE4SyxRQUFBLGVBQ3JCNUosS0FBQTtZQUFBNEosUUFBQSxHQUNHekgsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLGVBQ2hDbkMsS0FBQSxDQUFDZixpQkFBaUI7Y0FBQzZLLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2dCQUFBLE9BQVF4RywwQkFBMEIsQ0FBQyxVQUFVLENBQUM7Y0FBQSxDQUFDO2NBQUFzRyxRQUFBLEdBQ3RFekgsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLGVBQy9CckMsSUFBQSxDQUFDWix3QkFBd0I7Z0JBQUEwSyxRQUFBLGVBQ3ZCOUosSUFBQSxDQUFDM0IsSUFBSTtrQkFBQzRMLEtBQUssRUFBRSxFQUFHO2tCQUFDQyxNQUFNLEVBQUUsRUFBRztrQkFBQ0MsS0FBSyxFQUFDO2dCQUFTLENBQUU7Y0FBQyxDQUN2QixDQUFDO1lBQUEsQ0FDVixDQUFDO1VBQUEsQ0FDakI7UUFBQyxDQUNnQixDQUFDO01BQUEsQ0FDUCxDQUFDLGVBQ3JCakssS0FBQSxDQUFDcEIsbUJBQW1CO1FBQUNpTCxNQUFNLEVBQUUsQ0FBRTtRQUFBRCxRQUFBLGdCQUM3QjlKLElBQUEsQ0FBQ2YsNkJBQTZCO1VBQUE2SyxRQUFBLGVBQzVCOUosSUFBQSxDQUFDN0IsT0FBTztZQUFDaU0sS0FBSyxFQUFFL0YsYUFBYSxHQUFHaEMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLEdBQUcsRUFBRztZQUFDZ0ksTUFBTSxFQUFFM0ksYUFBYztZQUFBb0ksUUFBQSxlQUNuRzVKLEtBQUEsQ0FBQ2IsYUFBYTtjQUNaZ0YsYUFBYSxFQUFFQSxhQUFjO2NBQzdCVCxVQUFVLEVBQUVBLFVBQVc7Y0FDdkIwRyxXQUFXLEVBQUVyRCxlQUFnQjtjQUM3QnNELFdBQVcsRUFBRW5ELGVBQWdCO2NBQzdCb0QsVUFBVSxFQUFFbkQsY0FBZTtjQUMzQm9ELE1BQU0sRUFBRW5ELFVBQVc7Y0FBQXdDLFFBQUEsZ0JBRW5COUosSUFBQSxDQUFDVixpQkFBaUI7Z0JBQUF3SyxRQUFBLGVBQ2hCOUosSUFBQSxDQUFDNUIsVUFBVTtrQkFBQzZMLEtBQUssRUFBRSxFQUFHO2tCQUFDQyxNQUFNLEVBQUUsRUFBRztrQkFBQ0MsS0FBSyxFQUFFOUYsYUFBYSxHQUFHLE1BQU0sR0FBRztnQkFBVSxDQUFFO2NBQUMsQ0FDL0QsQ0FBQyxlQUNwQm5FLEtBQUEsQ0FBQ1gsaUJBQWlCO2dCQUFBdUssUUFBQSxnQkFDaEI5SixJQUFBLENBQUNQLHFCQUFxQjtrQkFBQzRFLGFBQWEsRUFBRUEsYUFBYztrQkFBQywwQkFBa0I7a0JBQUMyRixPQUFPLEVBQUUxRixpQkFBa0I7a0JBQUF3RixRQUFBLEVBQ2hHekgsQ0FBQyxDQUFDLGlDQUFpQztnQkFBQyxDQUNoQixDQUFDLGVBQ3hCckMsSUFBQTtrQkFBQThKLFFBQUEsRUFBT3pILENBQUMsQ0FBQyxpQ0FBaUM7Z0JBQUMsQ0FBTyxDQUFDO2NBQUEsQ0FDbEMsQ0FBQyxlQUNwQnJDLElBQUEsQ0FBQ1IsaUJBQWlCO2dCQUFBc0ssUUFBQSxFQUFFekgsQ0FBQyxDQUFDLGdDQUFnQztjQUFDLENBQW9CLENBQUM7WUFBQSxDQUMvRDtVQUFDLENBQ1Q7UUFBQyxDQUNtQixDQUFDLGVBQ2hDckMsSUFBQSxDQUFDZCx1QkFBdUI7VUFBQTRLLFFBQUEsRUFDckIsQ0FBQ2hJLGdCQUFnQixJQUFJLEVBQUUsRUFBRWtELEdBQUcsQ0FBQyxVQUFDZixVQUFVLEVBQUU2RCxLQUFLLEVBQUs7WUFDbkQsb0JBQ0U5SCxJQUFBLENBQUN0QixjQUFjO2NBQ2JnTSxhQUFhLEVBQUU1QyxLQUFNO2NBRXJCN0QsVUFBVSxFQUFFQSxVQUFXO2NBQ3ZCb0YsWUFBWSxFQUFFQSxZQUFhO2NBQzNCc0IsbUJBQW1CO2NBQ25CQyxTQUFTO2NBQ1RaLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2dCQUFBLE9BQVFSLHFCQUFxQixDQUFDdkYsVUFBVSxDQUFDO2NBQUE7WUFBQyxpQkFBQWpELE1BQUEsQ0FMOUJpRCxVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRWdCLElBQUksT0FBQWpFLE1BQUEsQ0FBSWlELFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFcUMsRUFBRSxPQUFBdEYsTUFBQSxDQUFJOEcsS0FBSyxDQU0vRCxDQUFDO1VBRU4sQ0FBQztRQUFDLENBQ3FCLENBQUM7TUFBQSxDQUNQLENBQUMsZUFDdEI5SCxJQUFBO1FBQ0U2SyxHQUFHLEVBQUVwSCxZQUFhO1FBQ2xCd0MsSUFBSSxFQUFDLE1BQU07UUFDWDZFLFFBQVE7UUFDUkMsTUFBTSxFQUFDLHFFQUFxRTtRQUM1RUMsUUFBUSxFQUFFdEcsZ0JBQWlCO1FBQzNCb0UsS0FBSyxFQUFFO1VBQUVDLE9BQU8sRUFBRTtRQUFPO01BQUUsQ0FDNUIsQ0FBQztJQUFBLENBQ1UsQ0FBQyxFQUNkbkcsVUFBVSxDQUFDTCxNQUFNLGlCQUNoQnZDLElBQUEsQ0FBQ0osZ0JBQWdCO01BQ2ZxTCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQ2JwSSxhQUFhLENBQUM7VUFBRU4sTUFBTSxFQUFFLEtBQUs7VUFBRUMsYUFBYSxFQUFFLEVBQUU7VUFBRUMsYUFBYSxFQUFFLEVBQUU7VUFBRUMscUJBQXFCLEVBQUU7UUFBRyxDQUFDLENBQUM7UUFDakdqQixpQkFBaUIsYUFBakJBLGlCQUFpQixlQUFqQkEsaUJBQWlCLENBQUcsS0FBSyxDQUFDO01BQzVCLENBQUU7TUFDRmUsYUFBYSxFQUFFSSxVQUFVLENBQUNKLGFBQWM7TUFDeENDLGFBQWEsRUFBRUcsVUFBVSxDQUFDSCxhQUFjO01BQ3hDQyxxQkFBcUIsRUFBRUUsVUFBVSxDQUFDRixxQkFBc0I7TUFDeER3SSxPQUFPLEVBQUM7SUFBVyxDQUNwQixDQUNGLGVBQ0RsTCxJQUFBLENBQUNyQixzQkFBc0I7TUFDckI0RCxNQUFNLEVBQUUsQ0FBQyxDQUFDTCxpQkFBa0I7TUFDNUIrSSxPQUFPLEVBQUVwQixrQkFBbUI7TUFDNUI1RixVQUFVLEVBQUUvQjtJQUFrQixDQUMvQixDQUFDO0VBQUEsQ0FDRixDQUFDO0FBRVAsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|