@projectcor/maia-components 2.29.0 → 2.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +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 +434 -0
- package/lib/components/atoms/ContextMentionChip/index.js +4 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -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 +309 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
- package/lib/components/atoms/ContextMentionItem/index.js +2 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -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 +1058 -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 +182 -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/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/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/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +27 -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 +50 -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 +149 -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 +117 -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 +1217 -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 +448 -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 +357 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/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 +62 -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 +715 -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 +1420 -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 +175 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/ChatAI/ChatAI.js +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 +13 -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 +128 -0
- package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -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 +463 -0
- package/lib/hooks/useContextPinPopover.js +228 -0
- package/lib/hooks/useDebounce.js +18 -0
- package/lib/hooks/useEntitySearch.js +1239 -0
- package/lib/hooks/useEvent.js +93 -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 +136 -0
- package/lib/hooks/useMentionPopover.js +366 -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/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 +761 -0
- package/lib/lang/en/index.js +761 -0
- package/lib/lang/es/index.js +762 -0
- package/lib/lang/fr/index.js +582 -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/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 +90 -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 +54 -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 +70 -0
- package/lib/utils/openTaskInCorPanel.js +22 -0
- package/lib/utils/orchestratorSubagents.js +11 -0
- package/lib/utils/renderContextMentions.js +399 -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
|
@@ -0,0 +1,761 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { SECTIONS } from '../../constants/config';
|
|
5
|
+
import { ProjectSummaryConfigKeys } from '../../types/ProjectSummaryConfigKeys';
|
|
6
|
+
var globals = {
|
|
7
|
+
close: 'Close',
|
|
8
|
+
minimize: 'Minimize',
|
|
9
|
+
howWorks: 'How does it work?',
|
|
10
|
+
brandName: 'MAIA',
|
|
11
|
+
expand: 'Expand',
|
|
12
|
+
collapse: 'Collapse',
|
|
13
|
+
goBack: 'Go back to the start',
|
|
14
|
+
copy: 'Copy',
|
|
15
|
+
copied: 'Copied',
|
|
16
|
+
saved: 'Saved',
|
|
17
|
+
selectProject: 'Select project',
|
|
18
|
+
save: 'Save',
|
|
19
|
+
cancel: 'Cancel'
|
|
20
|
+
};
|
|
21
|
+
var error = {
|
|
22
|
+
title: 'A problem has occurred',
|
|
23
|
+
description: 'We are currently experiencing some issues, please try again in a few minutes.',
|
|
24
|
+
tryAgain: 'Try again'
|
|
25
|
+
};
|
|
26
|
+
var genericSection = {
|
|
27
|
+
error: error,
|
|
28
|
+
globals: globals
|
|
29
|
+
};
|
|
30
|
+
var projectSummarySection = {
|
|
31
|
+
resume: 'Resume',
|
|
32
|
+
hello: 'Hi, {{name}}!',
|
|
33
|
+
welcome: "I'm MAIA, your assistant at COR",
|
|
34
|
+
feedback: {
|
|
35
|
+
thumbsUp: 'It was helpful',
|
|
36
|
+
thumbsDown: "It wasn't helpful",
|
|
37
|
+
sources: 'Sources'
|
|
38
|
+
},
|
|
39
|
+
config: {
|
|
40
|
+
projectSummary: 'Summarize project',
|
|
41
|
+
projectSummaryTitle: 'Project summary',
|
|
42
|
+
goBack: 'Go back',
|
|
43
|
+
selectedProject: 'Selected project',
|
|
44
|
+
selectProject: 'Select project',
|
|
45
|
+
configureResume: 'Advanced settings',
|
|
46
|
+
generatingResume: 'Generating summary',
|
|
47
|
+
generateResume: 'Generate',
|
|
48
|
+
hideConfig: 'Hide settings'
|
|
49
|
+
},
|
|
50
|
+
configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Dates and deadlines'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Profitability'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimated hours and usage'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tasks and progress'), ProjectSummaryConfigKeys.REWORKS, 'Rework')
|
|
51
|
+
};
|
|
52
|
+
var homeMenu = {
|
|
53
|
+
projectSummary: {
|
|
54
|
+
title: 'Project Summary',
|
|
55
|
+
description: 'Generate reports with AI based on your project'
|
|
56
|
+
},
|
|
57
|
+
faq: {
|
|
58
|
+
title: 'Frequently Asked Questions',
|
|
59
|
+
startTitle: 'You can start with...',
|
|
60
|
+
empty: 'No frequently asked questions',
|
|
61
|
+
error: 'Oops! We had a problem loading the frequently asked questions. Please try again in a few minutes.',
|
|
62
|
+
categories: {
|
|
63
|
+
projects: 'Project',
|
|
64
|
+
tasks: 'Tasks',
|
|
65
|
+
hours: 'Hours',
|
|
66
|
+
reworks: 'Rework',
|
|
67
|
+
undefined: 'No category'
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
fua: {
|
|
71
|
+
title: 'Frequently used actions',
|
|
72
|
+
newBadge: 'New',
|
|
73
|
+
error: 'Oops! We had a problem loading the frequently used actions. Please try again in a few minutes.'
|
|
74
|
+
},
|
|
75
|
+
recentContexts: {
|
|
76
|
+
title: 'Choose a recent context for a more accurate answer:',
|
|
77
|
+
types: {
|
|
78
|
+
client: 'Client',
|
|
79
|
+
project: 'Project',
|
|
80
|
+
task: 'Task'
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
contextHome: {
|
|
84
|
+
greeting: 'Hi, {{name}} 👋',
|
|
85
|
+
subtitle: "I'm MAIA, your assistant for tasks, projects, and clients.\nShall we continue with something recent?",
|
|
86
|
+
subtitleCollaborator: "I'm MAIA, your assistant for tasks. Shall we continue with something recent?",
|
|
87
|
+
subtitleCollaboratorWithHours: 'Log your hours or start a chat about a task.',
|
|
88
|
+
subtitleManagerWithHours: 'Where would you like to start?',
|
|
89
|
+
hoursSection: {
|
|
90
|
+
title: 'Log hours'
|
|
91
|
+
},
|
|
92
|
+
recentTasksSection: {
|
|
93
|
+
title: 'Ask about a task',
|
|
94
|
+
subtitle: 'Pick a recent task to use as context.'
|
|
95
|
+
},
|
|
96
|
+
recentContextsSectionManager: {
|
|
97
|
+
title: 'Or resume something recent',
|
|
98
|
+
subtitle: 'Pick a task, project, or client to use as context'
|
|
99
|
+
},
|
|
100
|
+
contextGreeting: {
|
|
101
|
+
project: 'What do you want us to analyze? Hours, estimates, rework? You choose!',
|
|
102
|
+
task: "I'm here to help you with this task. Use one of the actions to get started.",
|
|
103
|
+
client: 'What do you want us to analyze? Profitability, progress, deadlines? You choose!'
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
plannerHome: {
|
|
107
|
+
title: "Let's start tracking your hours",
|
|
108
|
+
subtitle: 'Where should we begin?'
|
|
109
|
+
},
|
|
110
|
+
action: {
|
|
111
|
+
categories: {
|
|
112
|
+
tasks: 'Task actions',
|
|
113
|
+
collaborators: 'Collaborators and assignees',
|
|
114
|
+
labels: 'Labels and types',
|
|
115
|
+
checklists: 'Checklists',
|
|
116
|
+
deliverables: 'Deliverables',
|
|
117
|
+
reworks: 'Reworks',
|
|
118
|
+
hours: 'Time logging'
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
createdBy: 'by',
|
|
122
|
+
createdByTooltip: 'Agent creator user',
|
|
123
|
+
createdByTooltipDeleted: 'User deleted. Their name is kept for reference.',
|
|
124
|
+
taskGreeting: "I'm here to help you with this task. Use one of the actions to get started.",
|
|
125
|
+
hello: {
|
|
126
|
+
title: 'Done! I’m now using the project',
|
|
127
|
+
title_1: 'Anticipate deviations. Let’s analyze this project.',
|
|
128
|
+
title_2: 'What do you want us to analyze? Hours, estimates, rework? You choose!',
|
|
129
|
+
title_3: 'Let’s review this project’s progress.',
|
|
130
|
+
subtitle: 'To get started, I can help you with these options. Or feel free to type your question directly!',
|
|
131
|
+
titlePm: 'Hi, {{name}}! I’m {{agent}}, your assistant.',
|
|
132
|
+
subtitlePm: 'To give you accurate answers, I need to know which project we’re talking about. Which one do you choose?'
|
|
133
|
+
},
|
|
134
|
+
maiaker: {
|
|
135
|
+
title: 'Turn repetitive processes into smart agents',
|
|
136
|
+
description: 'Create agents that analyze and generate content tailored to your needs.',
|
|
137
|
+
createManualAgent: 'Create agent manually',
|
|
138
|
+
badgeNew: 'New',
|
|
139
|
+
briefCard: {
|
|
140
|
+
title: 'Brief specialist agent',
|
|
141
|
+
description: 'Create and improve briefs so they are ready to use in tasks.',
|
|
142
|
+
prompt: 'I want to create a brief specialist agent.'
|
|
143
|
+
},
|
|
144
|
+
comingSoonCard: {
|
|
145
|
+
title: 'More coming soon',
|
|
146
|
+
description: "We're working to bring you more agents"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
|
|
151
|
+
homeMenu: homeMenu,
|
|
152
|
+
contextMention: {
|
|
153
|
+
keyboardHint: 'Tab navigation: @, @@… in order. Also Alt/Cmd + ←/→',
|
|
154
|
+
recentsTitle: 'Recents',
|
|
155
|
+
userNoPosition: 'No position',
|
|
156
|
+
me: 'Yo',
|
|
157
|
+
tabs: {
|
|
158
|
+
client: 'Client',
|
|
159
|
+
project: 'Project',
|
|
160
|
+
task: 'Task',
|
|
161
|
+
user: 'User',
|
|
162
|
+
mcp: 'Connectors',
|
|
163
|
+
skill: 'Skills'
|
|
164
|
+
},
|
|
165
|
+
loading: 'Searching...',
|
|
166
|
+
error: 'Something went wrong. Please try again.',
|
|
167
|
+
skillQueryTooShort: 'Type at least 3 characters to search',
|
|
168
|
+
empty: {
|
|
169
|
+
recents: 'Start typing to search',
|
|
170
|
+
withQuery: 'No results for "{{query}}"',
|
|
171
|
+
skillNoItems: 'No skills yet',
|
|
172
|
+
skillWithQuery: 'No skills matching "{{query}}"'
|
|
173
|
+
},
|
|
174
|
+
counters: {
|
|
175
|
+
projects: 'projects',
|
|
176
|
+
tasks: 'tasks'
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
contextPin: {
|
|
180
|
+
addContext: 'Global context',
|
|
181
|
+
searchPlaceholder: 'Search context…',
|
|
182
|
+
remove: 'Remove context'
|
|
183
|
+
},
|
|
184
|
+
button: 'AI',
|
|
185
|
+
title: 'Hi, {{name}}!',
|
|
186
|
+
description: "I'm MAIA, your assistant, and I'm here to help you with your questions.",
|
|
187
|
+
newChat: 'New chat',
|
|
188
|
+
openAgentCreator: 'Create agent',
|
|
189
|
+
openMarketplace: 'Agent marketplace',
|
|
190
|
+
history: {
|
|
191
|
+
tooltip: 'History',
|
|
192
|
+
title: 'Empty history',
|
|
193
|
+
description: 'No conversations found',
|
|
194
|
+
item: {
|
|
195
|
+
date: 'Last update {{date}}'
|
|
196
|
+
},
|
|
197
|
+
menu: {
|
|
198
|
+
rename: 'Rename',
|
|
199
|
+
"delete": 'Delete'
|
|
200
|
+
},
|
|
201
|
+
loadingMore: 'Loading more conversations'
|
|
202
|
+
},
|
|
203
|
+
onboarding: {
|
|
204
|
+
maia: 'MAIA',
|
|
205
|
+
agentCustom: 'Custom agents',
|
|
206
|
+
howCreateAgent: 'How to create an agent?',
|
|
207
|
+
tooltip: 'How does it work?',
|
|
208
|
+
howItWorks: 'How does it work?'
|
|
209
|
+
},
|
|
210
|
+
qa: {
|
|
211
|
+
title: 'Frequently Asked Questions',
|
|
212
|
+
items: {
|
|
213
|
+
rentabilidad_proyecto: 'What is the profitability of this project?',
|
|
214
|
+
avance_proyecto: 'What is the progress of this project?',
|
|
215
|
+
tareas_proyecto: 'What are the upcoming tasks due?'
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
chat: {
|
|
219
|
+
generating: 'Thinking',
|
|
220
|
+
generatingAttachment: 'Analyzing attachment',
|
|
221
|
+
generatingDeepSearch: 'Starting research',
|
|
222
|
+
generatingWebSearch: 'Searching the web',
|
|
223
|
+
suggestionsTitle: 'Suggested responses',
|
|
224
|
+
createAgentActionsTitle: 'Next step',
|
|
225
|
+
createAgentActionStartChat: 'Start a chat with the new agent',
|
|
226
|
+
createAgentActionKnowledge: 'Upload files to the knowledge base',
|
|
227
|
+
createAgentActionLoadError: 'Could not load the agent. Please try again.',
|
|
228
|
+
writing: 'Writing the response',
|
|
229
|
+
executingAction: 'Executing action',
|
|
230
|
+
processing: 'Processing',
|
|
231
|
+
activity: {
|
|
232
|
+
generating: {
|
|
233
|
+
preparing: 'Preparing your response',
|
|
234
|
+
considering: 'Reviewing your question',
|
|
235
|
+
almostReady: 'Shaping the approach'
|
|
236
|
+
},
|
|
237
|
+
thinking: {
|
|
238
|
+
analyzing: 'Analyzing your question',
|
|
239
|
+
reviewing: 'Reviewing context',
|
|
240
|
+
planning: 'Structuring the response'
|
|
241
|
+
},
|
|
242
|
+
search: {
|
|
243
|
+
scanning: 'Searching the web',
|
|
244
|
+
summarizing: 'Reviewing results'
|
|
245
|
+
},
|
|
246
|
+
deepSearch: {
|
|
247
|
+
exploring: 'Exploring sources',
|
|
248
|
+
crossChecking: 'Verifying information'
|
|
249
|
+
},
|
|
250
|
+
attachment: {
|
|
251
|
+
reading: 'Reading your attachment',
|
|
252
|
+
extracting: 'Extracting what matters',
|
|
253
|
+
readingPlural: 'Reading your attachments',
|
|
254
|
+
extractingPlural: 'Extracting what matters'
|
|
255
|
+
},
|
|
256
|
+
writing: {
|
|
257
|
+
composing: 'Writing the response'
|
|
258
|
+
},
|
|
259
|
+
dynamicContextTooltip: 'This context was dynamically generated and may change throughout the conversation.',
|
|
260
|
+
creatingTask: 'Creating task',
|
|
261
|
+
creatingTasksBatch: 'Creating tasks',
|
|
262
|
+
creatingAgent: 'Creating agent',
|
|
263
|
+
editingAgent: 'Editing agent',
|
|
264
|
+
editingTask: 'Editing task',
|
|
265
|
+
editingTasksBatch: 'Editing tasks',
|
|
266
|
+
deletingTask: 'Deleting task',
|
|
267
|
+
deletingTasksBatch: 'Deleting tasks',
|
|
268
|
+
assigningUser: 'Assigning user',
|
|
269
|
+
unassigningUser: 'Unassigning user',
|
|
270
|
+
assigningLabel: 'Assigning label',
|
|
271
|
+
updatingTaskType: 'Updating task type',
|
|
272
|
+
updatingEstimatedHours: 'Updating estimated hours',
|
|
273
|
+
updatingDeliverable: 'Updating deliverable',
|
|
274
|
+
loggingHours: 'Logging hours',
|
|
275
|
+
creatingChecklist: 'Creating checklist',
|
|
276
|
+
creatingLabel: 'Creating label',
|
|
277
|
+
editingProject: 'Editing project',
|
|
278
|
+
creatingChecklistItem: 'Adding checklist item',
|
|
279
|
+
queryingHours: 'Querying hours',
|
|
280
|
+
configuringAgentAccess: 'Changing agent visibility',
|
|
281
|
+
sendingTaskMessage: 'Sending task message',
|
|
282
|
+
deletingChecklistItem: 'Deleting checklist item',
|
|
283
|
+
removingTaskType: 'Removing task type',
|
|
284
|
+
removingLabel: 'Removing label',
|
|
285
|
+
updatingDeliverableCount: 'Updating deliverable count',
|
|
286
|
+
creatingRework: 'Creating rework',
|
|
287
|
+
updatingRework: 'Updating rework',
|
|
288
|
+
generatingFile: 'Generating file',
|
|
289
|
+
resumingAction: 'Running approved action'
|
|
290
|
+
},
|
|
291
|
+
loadingMore: 'Loading more messages',
|
|
292
|
+
footer: {
|
|
293
|
+
placeholder: 'Type your question here…',
|
|
294
|
+
orchestratorPlaceholder: 'Ask Maia, @ to mention or / for quick actions',
|
|
295
|
+
agentLabel: 'The Agent',
|
|
296
|
+
disclaimer: '{{agentName}} may make mistakes. Please verify important information.',
|
|
297
|
+
disclaimerAgent: 'AI models may make mistakes. Verify important information.',
|
|
298
|
+
corAccessLabel: 'COR access',
|
|
299
|
+
corAccessTooltip: 'COR data access'
|
|
300
|
+
},
|
|
301
|
+
error: 'An error occurred while generating your response, please try again.',
|
|
302
|
+
retry: 'Retry',
|
|
303
|
+
errorAccessDenied: "You don't have access to interact with this agent. It is possible that your accessibility settings have changed. Please contact the person in your organization who manages agents for more information.",
|
|
304
|
+
errorPromptTooLong: 'You have exceeded the context limit {{used}} tokens. Please retry or continue in another chat',
|
|
305
|
+
changeProject: 'I detected that you want to change Project.\n\n**Select the project to continue:**',
|
|
306
|
+
searchWeb: 'Search the web',
|
|
307
|
+
deepSearch: 'Advanced internet search (access to more sources)',
|
|
308
|
+
attachFile: 'Attach file',
|
|
309
|
+
plusMenuAttach: 'Attach files',
|
|
310
|
+
dropFilesHere: 'Drop files here',
|
|
311
|
+
plusMenuDeepInvestigation: 'Research in depth',
|
|
312
|
+
plusMenuQuickActions: 'Quick actions',
|
|
313
|
+
openPlusMenuAria: 'Attachments and search options',
|
|
314
|
+
openMentionAria: 'Mention',
|
|
315
|
+
removeAttachmentAria: 'Remove file',
|
|
316
|
+
removeActiveToolAria: 'Remove search mode',
|
|
317
|
+
send: 'Send',
|
|
318
|
+
limitFiles: 'You have exceeded the attachment limit',
|
|
319
|
+
stop: 'Stop generating',
|
|
320
|
+
cancelled: 'The search has been cancelled.',
|
|
321
|
+
tooManyActiveSessions: 'Too many conversations are generating at once. Wait for one to finish before starting another.',
|
|
322
|
+
attachmentPreviewModal: {
|
|
323
|
+
loading: 'Loading...',
|
|
324
|
+
unsupportedFileMessage: 'We had a problem loading the preview. Please try again in a few minutes.',
|
|
325
|
+
typeLabel: 'Type:',
|
|
326
|
+
unknown: 'Unknown',
|
|
327
|
+
sizeLabel: 'Size:',
|
|
328
|
+
excel: {
|
|
329
|
+
sheetSelectorLabel: 'Sheet:',
|
|
330
|
+
loadError: 'Could not load Excel file content.',
|
|
331
|
+
fileReadError: 'Error reading file.',
|
|
332
|
+
sheetLoadError: 'Error loading selected sheet.'
|
|
333
|
+
},
|
|
334
|
+
word: {
|
|
335
|
+
loadError: 'Could not load Word document content.',
|
|
336
|
+
legacyDocUnsupported: 'Preview for .doc files is not available. Please use .docx format.'
|
|
337
|
+
},
|
|
338
|
+
ppt: {
|
|
339
|
+
loadError: 'Could not load presentation content.',
|
|
340
|
+
legacyPptUnsupported: 'Preview for .ppt files is not available. Please use .pptx format.',
|
|
341
|
+
slideLabel: 'Slide {{number}}',
|
|
342
|
+
emptySlide: 'This slide has no text or images to preview.'
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
deleteQuestionModal: {
|
|
347
|
+
title: 'Do you want to delete this conversation?',
|
|
348
|
+
firstPart: 'You are about to delete',
|
|
349
|
+
secondPart: 'This action is irreversible.',
|
|
350
|
+
cancel: 'Cancel',
|
|
351
|
+
"delete": 'Delete'
|
|
352
|
+
},
|
|
353
|
+
deleteSkillModal: {
|
|
354
|
+
title: 'Do you want to delete this skill?',
|
|
355
|
+
firstPart: 'You are about to delete',
|
|
356
|
+
secondPart: 'This action is irreversible.',
|
|
357
|
+
cancel: 'Cancel',
|
|
358
|
+
"delete": 'Delete'
|
|
359
|
+
},
|
|
360
|
+
editQuestionModal: {
|
|
361
|
+
newName: 'New name',
|
|
362
|
+
title: 'Rename conversation',
|
|
363
|
+
rename: 'Rename',
|
|
364
|
+
cancel: 'Cancel',
|
|
365
|
+
maxLength: 'You’ve reached the 140-character limit.'
|
|
366
|
+
},
|
|
367
|
+
modalFileExceeds: {
|
|
368
|
+
limitFilesTitle: 'Maximum attachments exceeded.',
|
|
369
|
+
limitSizeTitle: "You've exceeded the allowed file size limit",
|
|
370
|
+
limitFilesDescription: 'You can attach a maximum of 5 files per message. The following files could not be attached:',
|
|
371
|
+
limitSizeDescription: 'One or more files exceed the maximum allowed size by type. The following files could not be attached:',
|
|
372
|
+
accept: 'Accept',
|
|
373
|
+
limit: 'limit'
|
|
374
|
+
},
|
|
375
|
+
sourcesInformationModal: {
|
|
376
|
+
title: 'Sources:'
|
|
377
|
+
},
|
|
378
|
+
agents: {
|
|
379
|
+
title: 'Agents',
|
|
380
|
+
newAgent: 'New agent',
|
|
381
|
+
createAgent: 'Create Agent',
|
|
382
|
+
edit: 'Edit',
|
|
383
|
+
maia: '(Project specialist)',
|
|
384
|
+
addFavorite: 'Add to favorites',
|
|
385
|
+
removeFavorite: 'Remove from favorites',
|
|
386
|
+
favoriteToggledAddedSuccess: 'Agent added to favorites',
|
|
387
|
+
favoriteToggledRemovedSuccess: 'Agent removed from favorites',
|
|
388
|
+
favoriteToggledError: 'Your favorite couldn’t be saved. Please try again.',
|
|
389
|
+
favoriteToggledRemovedError: 'The favorite couldn’t be removed. Please try again.',
|
|
390
|
+
maiaIntroduction: 'Welcome to MAIA, your assistant to make your day-to-day better.'
|
|
391
|
+
},
|
|
392
|
+
conversations: {
|
|
393
|
+
title: 'My conversations',
|
|
394
|
+
agentsSectionTitle: 'Agents',
|
|
395
|
+
maiakerNav: 'Agent builder',
|
|
396
|
+
myAgentsNav: 'My agents',
|
|
397
|
+
mySkillsNav: 'My skills',
|
|
398
|
+
error: 'An error occurred while loading the conversation history',
|
|
399
|
+
empty: 'All your conversations with the agents will be displayed here',
|
|
400
|
+
emptyLabel: 'Message with attachments',
|
|
401
|
+
unreadLabel: 'Unread',
|
|
402
|
+
minimizedOpen: 'Open MAIA',
|
|
403
|
+
minimizedSeeAnswer: 'See answer',
|
|
404
|
+
collapse: 'Collapse',
|
|
405
|
+
expand: 'Expand',
|
|
406
|
+
newChat: 'New chat',
|
|
407
|
+
generating: 'Generating response',
|
|
408
|
+
sessionFinished: '{{title}} finished responding',
|
|
409
|
+
sessionFinishedApproval: '{{title}} requires your approval',
|
|
410
|
+
sessionFinishedError: '{{title}} encountered an error',
|
|
411
|
+
openAgentCreator: 'Create agent',
|
|
412
|
+
openMarketplace: 'Agent marketplace'
|
|
413
|
+
},
|
|
414
|
+
marketplace: {
|
|
415
|
+
back: 'Back',
|
|
416
|
+
title: 'Ideas for building agents',
|
|
417
|
+
description: 'Choose a strong starting point and open the editor with the agent already prefilled so you can adapt it to your use case.',
|
|
418
|
+
myAgentsTitle: 'My agents',
|
|
419
|
+
myAgentsReadyTitle: 'Your agents are ready to help you with tasks',
|
|
420
|
+
myAgentsDescription: 'These are your custom agents. Select one to start chatting with that profile.',
|
|
421
|
+
myAgentsEmptyStateTitle: "You don't have any agents yet",
|
|
422
|
+
myAgentsEmptyStateDescription: 'Click the button below to start creating agents tailored to your needs.',
|
|
423
|
+
myAgentsEmptyStateDescriptionNoPerm: 'When someone with permission sets them up, you will be able to access them from here.',
|
|
424
|
+
myAgentsEmptyStateButton: 'Create agent',
|
|
425
|
+
myAgentsFallbackIntro: 'Custom agent ready to help in your workflow.',
|
|
426
|
+
myAgentsFallbackDescription: 'Click use agent to start a conversation with this agent.',
|
|
427
|
+
myAgentsFallbackDate: 'A few days ago',
|
|
428
|
+
myAgentsToday: 'Today',
|
|
429
|
+
myAgentsOneDayAgo: '1 day ago',
|
|
430
|
+
myAgentsDaysAgo: '{{days}} days ago',
|
|
431
|
+
cardMenuAriaLabel: 'Agent actions menu',
|
|
432
|
+
use: 'Use',
|
|
433
|
+
createAgent: 'Create agent manually',
|
|
434
|
+
searchAgentPlaceholder: 'Search agent...',
|
|
435
|
+
searchMinLength: 'min. 3 characters',
|
|
436
|
+
searchNoResults: 'No results found.',
|
|
437
|
+
searchNoResultsSubtitle: 'Create an AI agent that can think, act, and automate work for you',
|
|
438
|
+
useTemplate: 'Create from this idea',
|
|
439
|
+
useMyAgent: 'Use agent',
|
|
440
|
+
badges: {
|
|
441
|
+
branding: 'Branding',
|
|
442
|
+
linkedin: 'LinkedIn',
|
|
443
|
+
marketing: 'Marketing'
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
mySkills: {
|
|
447
|
+
title: 'Your skills ready to power up your agents',
|
|
448
|
+
subtitle: 'Skills are global: they are available to all of your agents.',
|
|
449
|
+
createSkill: 'Create skill',
|
|
450
|
+
preview: 'Preview',
|
|
451
|
+
previewEmpty: 'Nothing to preview yet.',
|
|
452
|
+
uploadMd: 'Upload .md',
|
|
453
|
+
uploadError: 'Only .md files are allowed',
|
|
454
|
+
createWithMaia: 'Create with Maia',
|
|
455
|
+
writeInstructions: 'Write skill instructions',
|
|
456
|
+
uploadSkill: 'Upload a skill',
|
|
457
|
+
generatePlaceholder: 'I want a Skill to create my projects',
|
|
458
|
+
generateWithMaia: 'Create the Skill with Maia',
|
|
459
|
+
generateNeedsName: 'Enter a name first to describe the skill',
|
|
460
|
+
generateSuccess: 'Skill generated with Maia',
|
|
461
|
+
generateError: 'The skill could not be generated. Please try again.',
|
|
462
|
+
cardMenuAriaLabel: 'Skill actions menu',
|
|
463
|
+
edit: 'Edit',
|
|
464
|
+
"delete": 'Delete',
|
|
465
|
+
cancel: 'Cancel',
|
|
466
|
+
save: 'Save',
|
|
467
|
+
close: 'Close',
|
|
468
|
+
createTitle: 'New skill',
|
|
469
|
+
editTitle: 'Edit skill',
|
|
470
|
+
nameLabel: 'Name',
|
|
471
|
+
namePlaceholder: 'Skill name',
|
|
472
|
+
contentLabel: 'Skill',
|
|
473
|
+
contentPlaceholder: 'Write the skill...',
|
|
474
|
+
emptyStateTitle: "You don't have any skills yet",
|
|
475
|
+
emptyStateDescription: 'Click the button below to start creating your skills.',
|
|
476
|
+
emptyStateDescriptionNoPerm: 'When someone with permission sets them up, you will be able to access them from here.',
|
|
477
|
+
emptyStateButton: 'Create skill',
|
|
478
|
+
createSuccess: 'Skill created successfully',
|
|
479
|
+
createError: 'The skill could not be created. Please try again.',
|
|
480
|
+
updateSuccess: 'Skill updated successfully',
|
|
481
|
+
updateError: 'The skill could not be updated. Please try again.',
|
|
482
|
+
deleteSuccess: 'Skill deleted successfully',
|
|
483
|
+
deleteError: 'The skill could not be deleted. Please try again.'
|
|
484
|
+
},
|
|
485
|
+
snackbar: {
|
|
486
|
+
deleteChat: {
|
|
487
|
+
success: 'Chat deleted successfully',
|
|
488
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
489
|
+
},
|
|
490
|
+
renamedChat: {
|
|
491
|
+
success: 'Conversation renamed successfully',
|
|
492
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
493
|
+
},
|
|
494
|
+
loadMoreAgents: {
|
|
495
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
approvalBox: {
|
|
499
|
+
untitledAgent: 'Untitled agent',
|
|
500
|
+
actions: {
|
|
501
|
+
create_task: 'Creation of task',
|
|
502
|
+
create_tasks_batch: 'Creation of tasks',
|
|
503
|
+
create_agent: 'Create agent',
|
|
504
|
+
edit_agent: 'Edit agent',
|
|
505
|
+
edit_project: 'Edit project',
|
|
506
|
+
edit_task: 'Edit task',
|
|
507
|
+
edit_tasks_batch: 'Edit tasks',
|
|
508
|
+
delete_task: 'Delete task',
|
|
509
|
+
delete_tasks_batch: 'Delete tasks',
|
|
510
|
+
task_assign: 'Assign user',
|
|
511
|
+
task_unassign: 'Unassign user',
|
|
512
|
+
assign_task_label: 'Assign label',
|
|
513
|
+
create_labels: 'Create label',
|
|
514
|
+
update_task_type: 'Update task type',
|
|
515
|
+
update_estimated_hours: 'Update estimated hours',
|
|
516
|
+
update_deliverable: 'Update deliverable',
|
|
517
|
+
create_hour: 'Log hours',
|
|
518
|
+
create_checklist: 'Create checklist',
|
|
519
|
+
create_checklist_item: 'Add checklist item',
|
|
520
|
+
clone_task: 'Clone task',
|
|
521
|
+
get_task_date_hours: 'Get hours by date',
|
|
522
|
+
configure_agent_access: 'Change agent visibility',
|
|
523
|
+
send_task_message: 'Send task message',
|
|
524
|
+
delete_checklist_item: 'Delete checklist item',
|
|
525
|
+
remove_task_type: 'Remove task type',
|
|
526
|
+
remove_task_label: 'Remove label',
|
|
527
|
+
count_deliverable: 'Update deliverable count',
|
|
528
|
+
create_rework: 'Create rework',
|
|
529
|
+
update_rework: 'Update rework',
|
|
530
|
+
delete_agent: 'Delete agent',
|
|
531
|
+
unknown: 'Unknown action'
|
|
532
|
+
},
|
|
533
|
+
special: {
|
|
534
|
+
createRework: {
|
|
535
|
+
title: 'Create rework',
|
|
536
|
+
description: 'A rework request will be created on the task with the information below.'
|
|
537
|
+
},
|
|
538
|
+
updateDeliverableChildren: {
|
|
539
|
+
title: 'Update deliverable progress',
|
|
540
|
+
description: 'The progress of linked sub-deliverables for this task will be updated.'
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
fields: {
|
|
544
|
+
name: 'Name',
|
|
545
|
+
emoji: 'Emoji',
|
|
546
|
+
introduction: 'Introduction',
|
|
547
|
+
input_placeholder: 'Placeholder',
|
|
548
|
+
user_prompt: 'Main prompt',
|
|
549
|
+
language: 'Language',
|
|
550
|
+
provider: 'Provider',
|
|
551
|
+
model_name: 'Model',
|
|
552
|
+
api_key: 'API key'
|
|
553
|
+
},
|
|
554
|
+
title: 'Confirmation required',
|
|
555
|
+
description: 'You need to approve the following action:',
|
|
556
|
+
approve: 'Approve',
|
|
557
|
+
deny: 'Deny',
|
|
558
|
+
manualApprovalWarning: 'Maia detected that the request was manually approved',
|
|
559
|
+
status: {
|
|
560
|
+
approved: 'Request Approved',
|
|
561
|
+
denied: 'Request Denied'
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
chipLlm: {
|
|
565
|
+
tooltip: 'Model: {{model}}'
|
|
566
|
+
},
|
|
567
|
+
clientSelector: {
|
|
568
|
+
project: 'project',
|
|
569
|
+
projects: 'projects'
|
|
570
|
+
}
|
|
571
|
+
})), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
572
|
+
agents: 'Agents',
|
|
573
|
+
layoutMenuTooltip: 'Chat layout',
|
|
574
|
+
layoutSidebar: 'Side chat',
|
|
575
|
+
layoutFullscreen: 'Fullscreen chat',
|
|
576
|
+
layoutFloating: 'Floating chat',
|
|
577
|
+
back: 'Back',
|
|
578
|
+
addAgent: 'Add new agent',
|
|
579
|
+
legendDeletedAgent: 'This agent was deleted on',
|
|
580
|
+
legendProjectDeleted: 'The project {{name}} has been deleted. It is not possible to continue the conversation',
|
|
581
|
+
legendNoAccess: 'You no longer have access to interact with the agent {{name}}',
|
|
582
|
+
legendNoPermissions: 'You no longer have permission to view or interact with the agent {{name}}',
|
|
583
|
+
legendLegacyContextSession: 'This conversation belongs to a previous context. You can continue with {{name}} in a new chat.',
|
|
584
|
+
continueInNewChat: 'Continue in a new chat',
|
|
585
|
+
legendModelDeprecated: 'The model selected for this agent is no longer available. Switch to another model to continue using it.',
|
|
586
|
+
legendProviderStatus: 'The model used by this agent is experiencing temporary issues. You can wait for it to recover or switch to a different model.',
|
|
587
|
+
changeModel: 'Change model',
|
|
588
|
+
newAgent: 'New agent',
|
|
589
|
+
createAgent: 'Create Agent',
|
|
590
|
+
editAgent: 'Edit agent',
|
|
591
|
+
cancel: 'Cancel',
|
|
592
|
+
accept: 'Accept',
|
|
593
|
+
deleteAgent: 'Delete agent',
|
|
594
|
+
"continue": 'Continue',
|
|
595
|
+
edit: 'Edit',
|
|
596
|
+
"delete": 'Delete',
|
|
597
|
+
feedback: 'Send Feedback',
|
|
598
|
+
sendFeedback: 'Send feedback',
|
|
599
|
+
saveChanges: 'Save changes',
|
|
600
|
+
createAgentLabelButton: 'Create agent',
|
|
601
|
+
openAgentCreator: 'Create agent',
|
|
602
|
+
openMarketplace: 'Agent marketplace',
|
|
603
|
+
confirmAgentCreated: 'The agent has been successfully created',
|
|
604
|
+
confirmAgentUpdated: 'The agent has been successfully updated',
|
|
605
|
+
confirmCloseCreateAgent: 'Are you sure you want to close? Changes will be lost.',
|
|
606
|
+
confirmCloseEditAgent: 'Are you sure you want to close? Changes will be lost.',
|
|
607
|
+
confirmReloadBrowser: 'Are you sure you want to reload the page? Changes will be lost.',
|
|
608
|
+
confirmAgentUpdatedWithFilesError: 'The agent was edited successfully, but some files could not be processed.',
|
|
609
|
+
confirmAgentWithFilesError: 'The agent was created successfully, but some files could not be processed.',
|
|
610
|
+
confirmAgentDeleted: 'The agent has been successfully deleted',
|
|
611
|
+
errorAccessDenied: "You don't have permission to access this agent. Contact support.",
|
|
612
|
+
errorAgentCreated: 'An unexpected error occurred. Please, try again.',
|
|
613
|
+
attachmentCard: {
|
|
614
|
+
download: 'Download',
|
|
615
|
+
"delete": 'Delete'
|
|
616
|
+
},
|
|
617
|
+
generalSection: {
|
|
618
|
+
title: 'General',
|
|
619
|
+
generalSettings: 'General settings',
|
|
620
|
+
requiredFieldsLabel: '*required',
|
|
621
|
+
infoLabel: 'Add all the information to customize your agent’s behavior.',
|
|
622
|
+
optionalLabel: 'Optional',
|
|
623
|
+
basicSettings: 'Basic settings',
|
|
624
|
+
selectEmoji: 'Select emoji',
|
|
625
|
+
name: 'What is your agent’s name?',
|
|
626
|
+
namePlaceholder: 'Give your agent a name',
|
|
627
|
+
behaviorSettings: 'Behavior settings',
|
|
628
|
+
initialPrompt: 'What are the instructions?',
|
|
629
|
+
initialPromptPlaceholder: 'Example: You are a social media copywriter who writes and adapts messages for different platforms, ensuring consistency in tone, personality, and brand values.',
|
|
630
|
+
modelAiLabel: 'AI model',
|
|
631
|
+
noModelsAvailable: 'No models available',
|
|
632
|
+
inputPlaceholderTitle: 'What will the user see in the chat field before typing?',
|
|
633
|
+
inputPlaceholder: 'Ask me anything you need…',
|
|
634
|
+
introduction: 'How will your agent introduce itself?',
|
|
635
|
+
introductionPlaceholder: 'Example: Hi! 👋 I’m here to help you create, adapt, and review copy for different platforms, ensuring your brand’s voice, tone, and personality stay consistent. You can ask me to suggest campaign ideas, adapt a message for another channel, or review the coherence of your content.',
|
|
636
|
+
addFavorite: 'Add to favorites',
|
|
637
|
+
removeFavorite: 'Remove from favorites',
|
|
638
|
+
error: {
|
|
639
|
+
maxCaracterName: 'You have reached the 150-character limit.',
|
|
640
|
+
maxCaracterInitialPrompt: 'You’ve reached the 5000-character limit.',
|
|
641
|
+
maxInputPlaceholder: 'You’ve reached the 100-character limit.',
|
|
642
|
+
maxCaracterIntroduction: 'You’ve reached the 400-character limit.'
|
|
643
|
+
},
|
|
644
|
+
howToWritePrompt: 'How to write a prompt',
|
|
645
|
+
whatIsModelAiTitle: 'Which AI model will you use?',
|
|
646
|
+
whatIsModelAi: 'What is a model of AI?',
|
|
647
|
+
createdBy: 'By',
|
|
648
|
+
createdByTooltip: 'Agent creator user',
|
|
649
|
+
createdByTooltipDeleted: 'User deleted. Their name is kept for reference.'
|
|
650
|
+
},
|
|
651
|
+
knowledgeSection: {
|
|
652
|
+
title: 'Knowledge',
|
|
653
|
+
knowledgeTab: 'Knowledge base',
|
|
654
|
+
infoLabel: 'Upload the files your agent will use as a reference for its responses.',
|
|
655
|
+
selectFileTitle: 'Select files',
|
|
656
|
+
attachFiles: 'Attach files',
|
|
657
|
+
dropZoneText: {
|
|
658
|
+
1: 'Click here to upload',
|
|
659
|
+
2: 'or drag files'
|
|
660
|
+
},
|
|
661
|
+
infoFileTypes: '.md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx (max. total 5MB)',
|
|
662
|
+
error: {
|
|
663
|
+
maxFilesTitle: 'Total size limit exceeded.',
|
|
664
|
+
maxFilesDescription: 'You can attach files up to a total of 5 MB. The following files could not be attached:',
|
|
665
|
+
maxSizeTitle: 'You have exceeded the allowed file size limit',
|
|
666
|
+
maxSizeDescription: {
|
|
667
|
+
1: 'The maximum limit of 5 MB was reached.',
|
|
668
|
+
2: 'These files were not uploaded because they exceed the available space:'
|
|
669
|
+
},
|
|
670
|
+
invalidExtensionDescription: {
|
|
671
|
+
1: 'Only files with the following extensions are accepted: .md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx',
|
|
672
|
+
2: 'These files were not uploaded because their extension is not allowed:'
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
moreInfo: 'See how it works here'
|
|
676
|
+
},
|
|
677
|
+
accessibilitySection: {
|
|
678
|
+
titleTab: 'Permissions',
|
|
679
|
+
titleSection: 'Agent visibility and permissions',
|
|
680
|
+
subtitleSection: 'Define who can use this agent and whether it can access COR data.',
|
|
681
|
+
corPermissionsTitle: 'COR data access permissions',
|
|
682
|
+
corPermissionsSubtitle: 'What can this agent access?',
|
|
683
|
+
taskAccessTitle: 'Task access',
|
|
684
|
+
taskAccessDescription: 'The agent will be able to read, create, update, and delete tasks according to the user’s permissions.',
|
|
685
|
+
visibilityTitle: 'Agent visibility',
|
|
686
|
+
whoCanAccess: 'Who can use this agent?',
|
|
687
|
+
allCompanyTitle: 'Entire company',
|
|
688
|
+
allCompanyDescription: 'All users of your organization will be able to see and use this agent.',
|
|
689
|
+
clientTitle: 'For specific clients',
|
|
690
|
+
clientDescription: 'Associate this agent with one or more clients. All users will be able to see which clients are linked.',
|
|
691
|
+
ownTitle: 'Only me',
|
|
692
|
+
ownDescription: 'This agent will be private and will not be available to other users.',
|
|
693
|
+
clientsSelected: 'Clients selected:',
|
|
694
|
+
searchError: 'Oops! We had trouble loading the clients. Could you try again in a moment?',
|
|
695
|
+
searchEmpty: 'Oops! We couldn’t find clients with that name. Try another search.',
|
|
696
|
+
searchInitial: 'Start typing a client’s name to link it',
|
|
697
|
+
searchPlaceholder: 'Search client',
|
|
698
|
+
clientInactive: 'This client is inactive. We recommend removing it from the list.',
|
|
699
|
+
clientDeletedTooltip: 'This client was deleted. We recommend removing it from the list.',
|
|
700
|
+
clientDeleted: 'Client deleted',
|
|
701
|
+
clientsError: 'Check the associated clients'
|
|
702
|
+
},
|
|
703
|
+
processingKnowledge: {
|
|
704
|
+
descriptionCreate: 'We are creating the Agent and its knowledge base. This may take a few moments. Please do not close this window until the process has been completed.',
|
|
705
|
+
descriptionUpdate: 'We are updating the Agent and its knowledge base. This may take a few moments. Please do not close this window until the process has been completed.',
|
|
706
|
+
fileRow: 'File',
|
|
707
|
+
statusRow: 'Status',
|
|
708
|
+
pending: 'Pending',
|
|
709
|
+
processing: 'Processing',
|
|
710
|
+
failed: 'Failed',
|
|
711
|
+
done: 'Done',
|
|
712
|
+
loadingFiles: 'Loading files...',
|
|
713
|
+
error: {}
|
|
714
|
+
},
|
|
715
|
+
deleteAgentModal: {
|
|
716
|
+
title: 'Do you want to delete this agent?',
|
|
717
|
+
firstPart: 'You are about to delete ',
|
|
718
|
+
secondPart: 'This action cannot be undone.',
|
|
719
|
+
cancel: 'Cancel',
|
|
720
|
+
"delete": 'Delete'
|
|
721
|
+
}
|
|
722
|
+
})), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
723
|
+
projectSelector: {
|
|
724
|
+
title: 'Which project would you like help with?',
|
|
725
|
+
hello: {
|
|
726
|
+
title: 'I’m MAIA, your project specialist.',
|
|
727
|
+
subtitle: 'To give you accurate answers, I need to know which project we’re talking about. Which one do you choose?'
|
|
728
|
+
},
|
|
729
|
+
subtitle: 'Select a project so MAIA can respond in context.',
|
|
730
|
+
labelProject: 'Select a project',
|
|
731
|
+
placeholder: 'Search for a project by name',
|
|
732
|
+
changeProject: 'Change project',
|
|
733
|
+
recentProjects: 'Recents',
|
|
734
|
+
searchingProjects: 'Searching your projects...',
|
|
735
|
+
errorMessage: 'Oops! We had a problem loading the projects. Please try again in a few minutes.',
|
|
736
|
+
emptyRecentProjects: 'You don’t have recent projects. Type a project name in the search to find it.',
|
|
737
|
+
emptyState: 'Oops! We couldn’t find any projects with that name. Try another search.',
|
|
738
|
+
withoutClient: 'No client',
|
|
739
|
+
withoutTitle: 'No title'
|
|
740
|
+
}
|
|
741
|
+
})), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
742
|
+
clientSelector: {
|
|
743
|
+
title: 'Which client would you like help with?',
|
|
744
|
+
hello: {
|
|
745
|
+
title: "I'm MAIA, your client specialist.",
|
|
746
|
+
subtitle: "To give you accurate answers, I need to know which client we're talking about. Which one do you choose?"
|
|
747
|
+
},
|
|
748
|
+
subtitle: 'Select a client so MAIA can respond in context.',
|
|
749
|
+
labelClient: 'Select a client',
|
|
750
|
+
placeholder: 'Search client by name',
|
|
751
|
+
changeClient: 'Change client',
|
|
752
|
+
recentClients: 'Recents',
|
|
753
|
+
searchingClients: 'Searching your clients...',
|
|
754
|
+
errorMessage: 'We had a problem loading the clients. Please try again in a few minutes.',
|
|
755
|
+
emptyRecentClients: "You don't have recent clients. Type a client name in the search to find it.",
|
|
756
|
+
emptyState: "Oops! We couldn't find clients with that name. Try another search.",
|
|
757
|
+
project: 'project',
|
|
758
|
+
projects: 'projects'
|
|
759
|
+
}
|
|
760
|
+
}));
|
|
761
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwicHJvamVjdFN1bW1hcnlUaXRsZSIsInNlbGVjdGVkUHJvamVjdCIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiZmFxIiwic3RhcnRUaXRsZSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJjb2xsYWJvcmF0b3JzIiwibGFiZWxzIiwiY2hlY2tsaXN0cyIsImRlbGl2ZXJhYmxlcyIsImNyZWF0ZWRCeSIsImNyZWF0ZWRCeVRvb2x0aXAiLCJjcmVhdGVkQnlUb29sdGlwRGVsZXRlZCIsInRhc2tHcmVldGluZyIsInRpdGxlXzEiLCJ0aXRsZV8yIiwidGl0bGVfMyIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJjb250ZXh0TWVudGlvbiIsImtleWJvYXJkSGludCIsInJlY2VudHNUaXRsZSIsInVzZXJOb1Bvc2l0aW9uIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsInNraWxsUXVlcnlUb29TaG9ydCIsInJlY2VudHMiLCJ3aXRoUXVlcnkiLCJza2lsbE5vSXRlbXMiLCJza2lsbFdpdGhRdWVyeSIsImNvdW50ZXJzIiwiY29udGV4dFBpbiIsImFkZENvbnRleHQiLCJzZWFyY2hQbGFjZWhvbGRlciIsInJlbW92ZSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJvcGVuQWdlbnRDcmVhdG9yIiwib3Blbk1hcmtldHBsYWNlIiwiaGlzdG9yeSIsInRvb2x0aXAiLCJpdGVtIiwiZGF0ZSIsIm1lbnUiLCJyZW5hbWUiLCJsb2FkaW5nTW9yZSIsIm9uYm9hcmRpbmciLCJtYWlhIiwiYWdlbnRDdXN0b20iLCJob3dDcmVhdGVBZ2VudCIsImhvd0l0V29ya3MiLCJxYSIsIml0ZW1zIiwicmVudGFiaWxpZGFkX3Byb3llY3RvIiwiYXZhbmNlX3Byb3llY3RvIiwidGFyZWFzX3Byb3llY3RvIiwiY2hhdCIsImdlbmVyYXRpbmciLCJnZW5lcmF0aW5nQXR0YWNobWVudCIsImdlbmVyYXRpbmdEZWVwU2VhcmNoIiwiZ2VuZXJhdGluZ1dlYlNlYXJjaCIsInN1Z2dlc3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZSIsImNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0IiwiY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2UiLCJjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvciIsIndyaXRpbmciLCJleGVjdXRpbmdBY3Rpb24iLCJwcm9jZXNzaW5nIiwiYWN0aXZpdHkiLCJwcmVwYXJpbmciLCJjb25zaWRlcmluZyIsImFsbW9zdFJlYWR5IiwidGhpbmtpbmciLCJhbmFseXppbmciLCJyZXZpZXdpbmciLCJwbGFubmluZyIsInNlYXJjaCIsInNjYW5uaW5nIiwic3VtbWFyaXppbmciLCJkZWVwU2VhcmNoIiwiZXhwbG9yaW5nIiwiY3Jvc3NDaGVja2luZyIsImF0dGFjaG1lbnQiLCJyZWFkaW5nIiwiZXh0cmFjdGluZyIsInJlYWRpbmdQbHVyYWwiLCJleHRyYWN0aW5nUGx1cmFsIiwiY29tcG9zaW5nIiwiZHluYW1pY0NvbnRleHRUb29sdGlwIiwiY3JlYXRpbmdUYXNrIiwiY3JlYXRpbmdUYXNrc0JhdGNoIiwiY3JlYXRpbmdBZ2VudCIsImVkaXRpbmdBZ2VudCIsImVkaXRpbmdUYXNrIiwiZWRpdGluZ1Rhc2tzQmF0Y2giLCJkZWxldGluZ1Rhc2siLCJkZWxldGluZ1Rhc2tzQmF0Y2giLCJhc3NpZ25pbmdVc2VyIiwidW5hc3NpZ25pbmdVc2VyIiwiYXNzaWduaW5nTGFiZWwiLCJ1cGRhdGluZ1Rhc2tUeXBlIiwidXBkYXRpbmdFc3RpbWF0ZWRIb3VycyIsInVwZGF0aW5nRGVsaXZlcmFibGUiLCJsb2dnaW5nSG91cnMiLCJjcmVhdGluZ0NoZWNrbGlzdCIsImNyZWF0aW5nTGFiZWwiLCJlZGl0aW5nUHJvamVjdCIsImNyZWF0aW5nQ2hlY2tsaXN0SXRlbSIsInF1ZXJ5aW5nSG91cnMiLCJjb25maWd1cmluZ0FnZW50QWNjZXNzIiwic2VuZGluZ1Rhc2tNZXNzYWdlIiwiZGVsZXRpbmdDaGVja2xpc3RJdGVtIiwicmVtb3ZpbmdUYXNrVHlwZSIsInJlbW92aW5nTGFiZWwiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQiLCJjcmVhdGluZ1Jld29yayIsInVwZGF0aW5nUmV3b3JrIiwiZ2VuZXJhdGluZ0ZpbGUiLCJyZXN1bWluZ0FjdGlvbiIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwib3JjaGVzdHJhdG9yUGxhY2Vob2xkZXIiLCJhZ2VudExhYmVsIiwiZGlzY2xhaW1lciIsImRpc2NsYWltZXJBZ2VudCIsImNvckFjY2Vzc0xhYmVsIiwiY29yQWNjZXNzVG9vbHRpcCIsInJldHJ5IiwiZXJyb3JBY2Nlc3NEZW5pZWQiLCJlcnJvclByb21wdFRvb0xvbmciLCJjaGFuZ2VQcm9qZWN0Iiwic2VhcmNoV2ViIiwiYXR0YWNoRmlsZSIsInBsdXNNZW51QXR0YWNoIiwiZHJvcEZpbGVzSGVyZSIsInBsdXNNZW51RGVlcEludmVzdGlnYXRpb24iLCJwbHVzTWVudVF1aWNrQWN0aW9ucyIsIm9wZW5QbHVzTWVudUFyaWEiLCJvcGVuTWVudGlvbkFyaWEiLCJyZW1vdmVBdHRhY2htZW50QXJpYSIsInJlbW92ZUFjdGl2ZVRvb2xBcmlhIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwidG9vTWFueUFjdGl2ZVNlc3Npb25zIiwiYXR0YWNobWVudFByZXZpZXdNb2RhbCIsInVuc3VwcG9ydGVkRmlsZU1lc3NhZ2UiLCJ0eXBlTGFiZWwiLCJ1bmtub3duIiwic2l6ZUxhYmVsIiwiZXhjZWwiLCJzaGVldFNlbGVjdG9yTGFiZWwiLCJsb2FkRXJyb3IiLCJmaWxlUmVhZEVycm9yIiwic2hlZXRMb2FkRXJyb3IiLCJ3b3JkIiwibGVnYWN5RG9jVW5zdXBwb3J0ZWQiLCJwcHQiLCJsZWdhY3lQcHRVbnN1cHBvcnRlZCIsInNsaWRlTGFiZWwiLCJlbXB0eVNsaWRlIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJkZWxldGVTa2lsbE1vZGFsIiwiZWRpdFF1ZXN0aW9uTW9kYWwiLCJuZXdOYW1lIiwibWF4TGVuZ3RoIiwibW9kYWxGaWxlRXhjZWVkcyIsImxpbWl0RmlsZXNUaXRsZSIsImxpbWl0U2l6ZVRpdGxlIiwibGltaXRGaWxlc0Rlc2NyaXB0aW9uIiwibGltaXRTaXplRGVzY3JpcHRpb24iLCJhY2NlcHQiLCJsaW1pdCIsInNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIiwiYWdlbnRzIiwibmV3QWdlbnQiLCJjcmVhdGVBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvciIsIm1haWFJbnRyb2R1Y3Rpb24iLCJjb252ZXJzYXRpb25zIiwiYWdlbnRzU2VjdGlvblRpdGxlIiwibWFpYWtlck5hdiIsIm15QWdlbnRzTmF2IiwibXlTa2lsbHNOYXYiLCJlbXB0eUxhYmVsIiwidW5yZWFkTGFiZWwiLCJtaW5pbWl6ZWRPcGVuIiwibWluaW1pemVkU2VlQW5zd2VyIiwic2Vzc2lvbkZpbmlzaGVkIiwic2Vzc2lvbkZpbmlzaGVkQXBwcm92YWwiLCJzZXNzaW9uRmluaXNoZWRFcnJvciIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsInNlYXJjaEFnZW50UGxhY2Vob2xkZXIiLCJzZWFyY2hNaW5MZW5ndGgiLCJzZWFyY2hOb1Jlc3VsdHMiLCJzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZSIsInVzZVRlbXBsYXRlIiwidXNlTXlBZ2VudCIsImJhZGdlcyIsImJyYW5kaW5nIiwibGlua2VkaW4iLCJtYXJrZXRpbmciLCJteVNraWxscyIsImNyZWF0ZVNraWxsIiwicHJldmlldyIsInByZXZpZXdFbXB0eSIsInVwbG9hZE1kIiwidXBsb2FkRXJyb3IiLCJjcmVhdGVXaXRoTWFpYSIsIndyaXRlSW5zdHJ1Y3Rpb25zIiwidXBsb2FkU2tpbGwiLCJnZW5lcmF0ZVBsYWNlaG9sZGVyIiwiZ2VuZXJhdGVXaXRoTWFpYSIsImdlbmVyYXRlTmVlZHNOYW1lIiwiZ2VuZXJhdGVTdWNjZXNzIiwiZ2VuZXJhdGVFcnJvciIsImNyZWF0ZVRpdGxlIiwiZWRpdFRpdGxlIiwibmFtZUxhYmVsIiwibmFtZVBsYWNlaG9sZGVyIiwiY29udGVudExhYmVsIiwiY29udGVudFBsYWNlaG9sZGVyIiwiZW1wdHlTdGF0ZVRpdGxlIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwiZW1wdHlTdGF0ZUJ1dHRvbiIsImNyZWF0ZVN1Y2Nlc3MiLCJjcmVhdGVFcnJvciIsInVwZGF0ZVN1Y2Nlc3MiLCJ1cGRhdGVFcnJvciIsImRlbGV0ZVN1Y2Nlc3MiLCJkZWxldGVFcnJvciIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImxvYWRNb3JlQWdlbnRzIiwiYXBwcm92YWxCb3giLCJ1bnRpdGxlZEFnZW50IiwiYWN0aW9ucyIsImNyZWF0ZV90YXNrIiwiY3JlYXRlX3Rhc2tzX2JhdGNoIiwiY3JlYXRlX2FnZW50IiwiZWRpdF9hZ2VudCIsImVkaXRfcHJvamVjdCIsImVkaXRfdGFzayIsImVkaXRfdGFza3NfYmF0Y2giLCJkZWxldGVfdGFzayIsImRlbGV0ZV90YXNrc19iYXRjaCIsInRhc2tfYXNzaWduIiwidGFza191bmFzc2lnbiIsImFzc2lnbl90YXNrX2xhYmVsIiwiY3JlYXRlX2xhYmVscyIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY3JlYXRlX2NoZWNrbGlzdF9pdGVtIiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsImFibUFnZW50IiwibGF5b3V0TWVudVRvb2x0aXAiLCJsYXlvdXRTaWRlYmFyIiwibGF5b3V0RnVsbHNjcmVlbiIsImxheW91dEZsb2F0aW5nIiwiYWRkQWdlbnQiLCJsZWdlbmREZWxldGVkQWdlbnQiLCJsZWdlbmRQcm9qZWN0RGVsZXRlZCIsImxlZ2VuZE5vQWNjZXNzIiwibGVnZW5kTm9QZXJtaXNzaW9ucyIsImxlZ2VuZExlZ2FjeUNvbnRleHRTZXNzaW9uIiwiY29udGludWVJbk5ld0NoYXQiLCJsZWdlbmRNb2RlbERlcHJlY2F0ZWQiLCJsZWdlbmRQcm92aWRlclN0YXR1cyIsImNoYW5nZU1vZGVsIiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJjb25maXJtQWdlbnRVcGRhdGVkV2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnRXaXRoRmlsZXNFcnJvciIsImNvbmZpcm1BZ2VudERlbGV0ZWQiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwiY29yUGVybWlzc2lvbnNUaXRsZSIsImNvclBlcm1pc3Npb25zU3VidGl0bGUiLCJ0YXNrQWNjZXNzVGl0bGUiLCJ0YXNrQWNjZXNzRGVzY3JpcHRpb24iLCJ2aXNpYmlsaXR5VGl0bGUiLCJ3aG9DYW5BY2Nlc3MiLCJhbGxDb21wYW55VGl0bGUiLCJhbGxDb21wYW55RGVzY3JpcHRpb24iLCJjbGllbnRUaXRsZSIsImNsaWVudERlc2NyaXB0aW9uIiwib3duVGl0bGUiLCJvd25EZXNjcmlwdGlvbiIsImNsaWVudHNTZWxlY3RlZCIsInNlYXJjaEVycm9yIiwic2VhcmNoRW1wdHkiLCJzZWFyY2hJbml0aWFsIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJjbGllbnRzRXJyb3IiLCJwcm9jZXNzaW5nS25vd2xlZGdlIiwiZGVzY3JpcHRpb25DcmVhdGUiLCJkZXNjcmlwdGlvblVwZGF0ZSIsImZpbGVSb3ciLCJzdGF0dXNSb3ciLCJwZW5kaW5nIiwiZmFpbGVkIiwiZG9uZSIsImxvYWRpbmdGaWxlcyIsImRlbGV0ZUFnZW50TW9kYWwiLCJwcm9qZWN0U2VsZWN0b3IiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsInNlYXJjaGluZ1Byb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2VuL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIG1pbmltaXplOiAnTWluaW1pemUnLFxuICBob3dXb3JrczogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZCcsXG4gIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICBnb0JhY2s6ICdHbyBiYWNrIHRvIHRoZSBzdGFydCcsXG4gIGNvcHk6ICdDb3B5JyxcbiAgY29waWVkOiAnQ29waWVkJyxcbiAgc2F2ZWQ6ICdTYXZlZCcsXG4gIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gIHNhdmU6ICdTYXZlJyxcbiAgY2FuY2VsOiAnQ2FuY2VsJyxcbn1cblxuY29uc3QgZXJyb3IgPSB7XG4gIHRpdGxlOiAnQSBwcm9ibGVtIGhhcyBvY2N1cnJlZCcsXG4gIGRlc2NyaXB0aW9uOiAnV2UgYXJlIGN1cnJlbnRseSBleHBlcmllbmNpbmcgc29tZSBpc3N1ZXMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICB0cnlBZ2FpbjogJ1RyeSBhZ2FpbicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgcHJvamVjdFN1bW1hcnlUaXRsZTogJ1Byb2plY3Qgc3VtbWFyeScsXG4gICAgZ29CYWNrOiAnR28gYmFjaycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnU2VsZWN0ZWQgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1Byb2plY3QgU3VtbWFyeScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSByZXBvcnRzIHdpdGggQUkgYmFzZWQgb24geW91ciBwcm9qZWN0JyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucycsXG4gICAgc3RhcnRUaXRsZTogJ1lvdSBjYW4gc3RhcnQgd2l0aC4uLicsXG4gICAgZW1wdHk6ICdObyBmcmVxdWVudGx5IGFza2VkIHF1ZXN0aW9ucycsXG4gICAgZXJyb3I6ICdPb3BzISBXZSBoYWQgYSBwcm9ibGVtIGxvYWRpbmcgdGhlIGZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zLiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuJyxcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICBwcm9qZWN0czogJ1Byb2plY3QnLFxuICAgICAgdGFza3M6ICdUYXNrcycsXG4gICAgICBob3VyczogJ0hvdXJzJyxcbiAgICAgIHJld29ya3M6ICdSZXdvcmsnLFxuICAgICAgdW5kZWZpbmVkOiAnTm8gY2F0ZWdvcnknLFxuICAgIH0sXG4gIH0sXG4gIGZ1YToge1xuICAgIHRpdGxlOiAnRnJlcXVlbnRseSB1c2VkIGFjdGlvbnMnLFxuICAgIG5ld0JhZGdlOiAnTmV3JyxcbiAgICBlcnJvcjogJ09vcHMhIFdlIGhhZCBhIHByb2JsZW0gbG9hZGluZyB0aGUgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnMuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICB9LFxuICByZWNlbnRDb250ZXh0czoge1xuICAgIHRpdGxlOiAnQ2hvb3NlIGEgcmVjZW50IGNvbnRleHQgZm9yIGEgbW9yZSBhY2N1cmF0ZSBhbnN3ZXI6JyxcbiAgICB0eXBlczoge1xuICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgIHByb2plY3Q6ICdQcm9qZWN0JyxcbiAgICAgIHRhc2s6ICdUYXNrJyxcbiAgICB9LFxuICB9LFxuICBjb250ZXh0SG9tZToge1xuICAgIGdyZWV0aW5nOiAnSGksIHt7bmFtZX19IPCfkYsnLFxuICAgIHN1YnRpdGxlOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBmb3IgdGFza3MsIHByb2plY3RzLCBhbmQgY2xpZW50cy5cXG5TaGFsbCB3ZSBjb250aW51ZSB3aXRoIHNvbWV0aGluZyByZWNlbnQ/XCIsXG4gICAgc3VidGl0bGVDb2xsYWJvcmF0b3I6IFwiSSdtIE1BSUEsIHlvdXIgYXNzaXN0YW50IGZvciB0YXNrcy4gU2hhbGwgd2UgY29udGludWUgd2l0aCBzb21ldGhpbmcgcmVjZW50P1wiLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yV2l0aEhvdXJzOiAnTG9nIHlvdXIgaG91cnMgb3Igc3RhcnQgYSBjaGF0IGFib3V0IGEgdGFzay4nLFxuICAgIHN1YnRpdGxlTWFuYWdlcldpdGhIb3VyczogJ1doZXJlIHdvdWxkIHlvdSBsaWtlIHRvIHN0YXJ0PycsXG4gICAgaG91cnNTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0xvZyBob3VycycsXG4gICAgfSxcbiAgICByZWNlbnRUYXNrc1NlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnQXNrIGFib3V0IGEgdGFzaycsXG4gICAgICBzdWJ0aXRsZTogJ1BpY2sgYSByZWNlbnQgdGFzayB0byB1c2UgYXMgY29udGV4dC4nLFxuICAgIH0sXG4gICAgcmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdPciByZXN1bWUgc29tZXRoaW5nIHJlY2VudCcsXG4gICAgICBzdWJ0aXRsZTogJ1BpY2sgYSB0YXNrLCBwcm9qZWN0LCBvciBjbGllbnQgdG8gdXNlIGFzIGNvbnRleHQnLFxuICAgIH0sXG4gICAgY29udGV4dEdyZWV0aW5nOiB7XG4gICAgICBwcm9qZWN0OiAnV2hhdCBkbyB5b3Ugd2FudCB1cyB0byBhbmFseXplPyBIb3VycywgZXN0aW1hdGVzLCByZXdvcms/IFlvdSBjaG9vc2UhJyxcbiAgICAgIHRhc2s6IFwiSSdtIGhlcmUgdG8gaGVscCB5b3Ugd2l0aCB0aGlzIHRhc2suIFVzZSBvbmUgb2YgdGhlIGFjdGlvbnMgdG8gZ2V0IHN0YXJ0ZWQuXCIsXG4gICAgICBjbGllbnQ6ICdXaGF0IGRvIHlvdSB3YW50IHVzIHRvIGFuYWx5emU/IFByb2ZpdGFiaWxpdHksIHByb2dyZXNzLCBkZWFkbGluZXM/IFlvdSBjaG9vc2UhJyxcbiAgICB9LFxuICB9LFxuICBwbGFubmVySG9tZToge1xuICAgIHRpdGxlOiBcIkxldCdzIHN0YXJ0IHRyYWNraW5nIHlvdXIgaG91cnNcIixcbiAgICBzdWJ0aXRsZTogJ1doZXJlIHNob3VsZCB3ZSBiZWdpbj8nLFxuICB9LFxuICBhY3Rpb246IHtcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0YXNrczogJ1Rhc2sgYWN0aW9ucycsXG4gICAgICBjb2xsYWJvcmF0b3JzOiAnQ29sbGFib3JhdG9ycyBhbmQgYXNzaWduZWVzJyxcbiAgICAgIGxhYmVsczogJ0xhYmVscyBhbmQgdHlwZXMnLFxuICAgICAgY2hlY2tsaXN0czogJ0NoZWNrbGlzdHMnLFxuICAgICAgZGVsaXZlcmFibGVzOiAnRGVsaXZlcmFibGVzJyxcbiAgICAgIHJld29ya3M6ICdSZXdvcmtzJyxcbiAgICAgIGhvdXJzOiAnVGltZSBsb2dnaW5nJyxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkQnk6ICdieScsXG4gIGNyZWF0ZWRCeVRvb2x0aXA6ICdBZ2VudCBjcmVhdG9yIHVzZXInLFxuICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzZXIgZGVsZXRlZC4gVGhlaXIgbmFtZSBpcyBrZXB0IGZvciByZWZlcmVuY2UuJyxcbiAgdGFza0dyZWV0aW5nOiBcIkknbSBoZXJlIHRvIGhlbHAgeW91IHdpdGggdGhpcyB0YXNrLiBVc2Ugb25lIG9mIHRoZSBhY3Rpb25zIHRvIGdldCBzdGFydGVkLlwiLFxuICBoZWxsbzoge1xuICAgIHRpdGxlOiAnRG9uZSEgSeKAmW0gbm93IHVzaW5nIHRoZSBwcm9qZWN0JyxcbiAgICB0aXRsZV8xOiAnQW50aWNpcGF0ZSBkZXZpYXRpb25zLiBMZXTigJlzIGFuYWx5emUgdGhpcyBwcm9qZWN0LicsXG4gICAgdGl0bGVfMjogJ1doYXQgZG8geW91IHdhbnQgdXMgdG8gYW5hbHl6ZT8gSG91cnMsIGVzdGltYXRlcywgcmV3b3JrPyBZb3UgY2hvb3NlIScsXG4gICAgdGl0bGVfMzogJ0xldOKAmXMgcmV2aWV3IHRoaXMgcHJvamVjdOKAmXMgcHJvZ3Jlc3MuJyxcbiAgICBzdWJ0aXRsZTogJ1RvIGdldCBzdGFydGVkLCBJIGNhbiBoZWxwIHlvdSB3aXRoIHRoZXNlIG9wdGlvbnMuIE9yIGZlZWwgZnJlZSB0byB0eXBlIHlvdXIgcXVlc3Rpb24gZGlyZWN0bHkhJyxcbiAgICB0aXRsZVBtOiAnSGksIHt7bmFtZX19ISBJ4oCZbSB7e2FnZW50fX0sIHlvdXIgYXNzaXN0YW50LicsXG4gICAgc3VidGl0bGVQbTpcbiAgICAgICdUbyBnaXZlIHlvdSBhY2N1cmF0ZSBhbnN3ZXJzLCBJIG5lZWQgdG8ga25vdyB3aGljaCBwcm9qZWN0IHdl4oCZcmUgdGFsa2luZyBhYm91dC4gV2hpY2ggb25lIGRvIHlvdSBjaG9vc2U/JyxcbiAgfSxcbiAgbWFpYWtlcjoge1xuICAgIHRpdGxlOiAnVHVybiByZXBldGl0aXZlIHByb2Nlc3NlcyBpbnRvIHNtYXJ0IGFnZW50cycsXG4gICAgZGVzY3JpcHRpb246ICdDcmVhdGUgYWdlbnRzIHRoYXQgYW5hbHl6ZSBhbmQgZ2VuZXJhdGUgY29udGVudCB0YWlsb3JlZCB0byB5b3VyIG5lZWRzLicsXG4gICAgY3JlYXRlTWFudWFsQWdlbnQ6ICdDcmVhdGUgYWdlbnQgbWFudWFsbHknLFxuICAgIGJhZGdlTmV3OiAnTmV3JyxcbiAgICBicmllZkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnQnJpZWYgc3BlY2lhbGlzdCBhZ2VudCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhbmQgaW1wcm92ZSBicmllZnMgc28gdGhleSBhcmUgcmVhZHkgdG8gdXNlIGluIHRhc2tzLicsXG4gICAgICBwcm9tcHQ6ICdJIHdhbnQgdG8gY3JlYXRlIGEgYnJpZWYgc3BlY2lhbGlzdCBhZ2VudC4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnTW9yZSBjb21pbmcgc29vbicsXG4gICAgICBkZXNjcmlwdGlvbjogXCJXZSdyZSB3b3JraW5nIHRvIGJyaW5nIHlvdSBtb3JlIGFnZW50c1wiLFxuICAgIH0sXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgW1NFQ1RJT05TLnByb2plY3RTdW1tYXJ5XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgfSxcbiAgW1NFQ1RJT05TLmNoYXRBSV06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICAuLi5wcm9qZWN0U3VtbWFyeVNlY3Rpb24sXG4gICAgaG9tZU1lbnUsXG5cbiAgICBjb250ZXh0TWVudGlvbjoge1xuICAgICAga2V5Ym9hcmRIaW50OiAnVGFiIG5hdmlnYXRpb246IEAsIEBA4oCmIGluIG9yZGVyLiBBbHNvIEFsdC9DbWQgKyDihpAv4oaSJyxcbiAgICAgIHJlY2VudHNUaXRsZTogJ1JlY2VudHMnLFxuICAgICAgdXNlck5vUG9zaXRpb246ICdObyBwb3NpdGlvbicsXG4gICAgICBtZTogJ1lvJyxcbiAgICAgIHRhYnM6IHtcbiAgICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgICAgcHJvamVjdDogJ1Byb2plY3QnLFxuICAgICAgICB0YXNrOiAnVGFzaycsXG4gICAgICAgIHVzZXI6ICdVc2VyJyxcbiAgICAgICAgbWNwOiAnQ29ubmVjdG9ycycsXG4gICAgICAgIHNraWxsOiAnU2tpbGxzJyxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiAnU2VhcmNoaW5nLi4uJyxcbiAgICAgIGVycm9yOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIHNraWxsUXVlcnlUb29TaG9ydDogJ1R5cGUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIHRvIHNlYXJjaCcsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnU3RhcnQgdHlwaW5nIHRvIHNlYXJjaCcsXG4gICAgICAgIHdpdGhRdWVyeTogJ05vIHJlc3VsdHMgZm9yIFwie3txdWVyeX19XCInLFxuICAgICAgICBza2lsbE5vSXRlbXM6ICdObyBza2lsbHMgeWV0JyxcbiAgICAgICAgc2tpbGxXaXRoUXVlcnk6ICdObyBza2lsbHMgbWF0Y2hpbmcgXCJ7e3F1ZXJ5fX1cIicsXG4gICAgICB9LFxuICAgICAgY291bnRlcnM6IHtcbiAgICAgICAgcHJvamVjdHM6ICdwcm9qZWN0cycsXG4gICAgICAgIHRhc2tzOiAndGFza3MnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRleHRQaW46IHtcbiAgICAgIGFkZENvbnRleHQ6ICdHbG9iYWwgY29udGV4dCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjb250ZXh04oCmJyxcbiAgICAgIHJlbW92ZTogJ1JlbW92ZSBjb250ZXh0JyxcbiAgICB9LFxuICAgIGJ1dHRvbjogJ0FJJyxcbiAgICB0aXRsZTogJ0hpLCB7e25hbWV9fSEnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCwgYW5kIEknbSBoZXJlIHRvIGhlbHAgeW91IHdpdGggeW91ciBxdWVzdGlvbnMuXCIsXG4gICAgbmV3Q2hhdDogJ05ldyBjaGF0JyxcbiAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JlYXRlIGFnZW50JyxcbiAgICBvcGVuTWFya2V0cGxhY2U6ICdBZ2VudCBtYXJrZXRwbGFjZScsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3RvcnknLFxuICAgICAgdGl0bGU6ICdFbXB0eSBoaXN0b3J5JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTm8gY29udmVyc2F0aW9ucyBmb3VuZCcsXG4gICAgICBpdGVtOiB7XG4gICAgICAgIGRhdGU6ICdMYXN0IHVwZGF0ZSB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5hbWUnLFxuICAgICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnTG9hZGluZyBtb3JlIGNvbnZlcnNhdGlvbnMnLFxuICAgIH0sXG4gICAgb25ib2FyZGluZzoge1xuICAgICAgbWFpYTogJ01BSUEnLFxuICAgICAgYWdlbnRDdXN0b206ICdDdXN0b20gYWdlbnRzJyxcbiAgICAgIGhvd0NyZWF0ZUFnZW50OiAnSG93IHRvIGNyZWF0ZSBhbiBhZ2VudD8nLFxuICAgICAgdG9vbHRpcDogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgICAgIGhvd0l0V29ya3M6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucycsXG4gICAgICBpdGVtczoge1xuICAgICAgICByZW50YWJpbGlkYWRfcHJveWVjdG86ICdXaGF0IGlzIHRoZSBwcm9maXRhYmlsaXR5IG9mIHRoaXMgcHJvamVjdD8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdXaGF0IGlzIHRoZSBwcm9ncmVzcyBvZiB0aGlzIHByb2plY3Q/JyxcbiAgICAgICAgdGFyZWFzX3Byb3llY3RvOiAnV2hhdCBhcmUgdGhlIHVwY29taW5nIHRhc2tzIGR1ZT8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXQ6IHtcbiAgICAgIGdlbmVyYXRpbmc6ICdUaGlua2luZycsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogJ0FuYWx5emluZyBhdHRhY2htZW50JyxcbiAgICAgIGdlbmVyYXRpbmdEZWVwU2VhcmNoOiAnU3RhcnRpbmcgcmVzZWFyY2gnLFxuICAgICAgZ2VuZXJhdGluZ1dlYlNlYXJjaDogJ1NlYXJjaGluZyB0aGUgd2ViJyxcbiAgICAgIHN1Z2dlc3Rpb25zVGl0bGU6ICdTdWdnZXN0ZWQgcmVzcG9uc2VzJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uc1RpdGxlOiAnTmV4dCBzdGVwJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0OiAnU3RhcnQgYSBjaGF0IHdpdGggdGhlIG5ldyBhZ2VudCcsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbktub3dsZWRnZTogJ1VwbG9hZCBmaWxlcyB0byB0aGUga25vd2xlZGdlIGJhc2UnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3I6ICdDb3VsZCBub3QgbG9hZCB0aGUgYWdlbnQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIHdyaXRpbmc6ICdXcml0aW5nIHRoZSByZXNwb25zZScsXG4gICAgICBleGVjdXRpbmdBY3Rpb246ICdFeGVjdXRpbmcgYWN0aW9uJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNzaW5nJyxcbiAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgIGdlbmVyYXRpbmc6IHtcbiAgICAgICAgICBwcmVwYXJpbmc6ICdQcmVwYXJpbmcgeW91ciByZXNwb25zZScsXG4gICAgICAgICAgY29uc2lkZXJpbmc6ICdSZXZpZXdpbmcgeW91ciBxdWVzdGlvbicsXG4gICAgICAgICAgYWxtb3N0UmVhZHk6ICdTaGFwaW5nIHRoZSBhcHByb2FjaCcsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaW5raW5nOiB7XG4gICAgICAgICAgYW5hbHl6aW5nOiAnQW5hbHl6aW5nIHlvdXIgcXVlc3Rpb24nLFxuICAgICAgICAgIHJldmlld2luZzogJ1Jldmlld2luZyBjb250ZXh0JyxcbiAgICAgICAgICBwbGFubmluZzogJ1N0cnVjdHVyaW5nIHRoZSByZXNwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDoge1xuICAgICAgICAgIHNjYW5uaW5nOiAnU2VhcmNoaW5nIHRoZSB3ZWInLFxuICAgICAgICAgIHN1bW1hcml6aW5nOiAnUmV2aWV3aW5nIHJlc3VsdHMnLFxuICAgICAgICB9LFxuICAgICAgICBkZWVwU2VhcmNoOiB7XG4gICAgICAgICAgZXhwbG9yaW5nOiAnRXhwbG9yaW5nIHNvdXJjZXMnLFxuICAgICAgICAgIGNyb3NzQ2hlY2tpbmc6ICdWZXJpZnlpbmcgaW5mb3JtYXRpb24nLFxuICAgICAgICB9LFxuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgcmVhZGluZzogJ1JlYWRpbmcgeW91ciBhdHRhY2htZW50JyxcbiAgICAgICAgICBleHRyYWN0aW5nOiAnRXh0cmFjdGluZyB3aGF0IG1hdHRlcnMnLFxuICAgICAgICAgIHJlYWRpbmdQbHVyYWw6ICdSZWFkaW5nIHlvdXIgYXR0YWNobWVudHMnLFxuICAgICAgICAgIGV4dHJhY3RpbmdQbHVyYWw6ICdFeHRyYWN0aW5nIHdoYXQgbWF0dGVycycsXG4gICAgICAgIH0sXG4gICAgICAgIHdyaXRpbmc6IHtcbiAgICAgICAgICBjb21wb3Npbmc6ICdXcml0aW5nIHRoZSByZXNwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIGR5bmFtaWNDb250ZXh0VG9vbHRpcDogJ1RoaXMgY29udGV4dCB3YXMgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGFuZCBtYXkgY2hhbmdlIHRocm91Z2hvdXQgdGhlIGNvbnZlcnNhdGlvbi4nLFxuICAgICAgICBjcmVhdGluZ1Rhc2s6ICdDcmVhdGluZyB0YXNrJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrc0JhdGNoOiAnQ3JlYXRpbmcgdGFza3MnLFxuICAgICAgICBjcmVhdGluZ0FnZW50OiAnQ3JlYXRpbmcgYWdlbnQnLFxuICAgICAgICBlZGl0aW5nQWdlbnQ6ICdFZGl0aW5nIGFnZW50JyxcbiAgICAgICAgZWRpdGluZ1Rhc2s6ICdFZGl0aW5nIHRhc2snLFxuICAgICAgICBlZGl0aW5nVGFza3NCYXRjaDogJ0VkaXRpbmcgdGFza3MnLFxuICAgICAgICBkZWxldGluZ1Rhc2s6ICdEZWxldGluZyB0YXNrJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrc0JhdGNoOiAnRGVsZXRpbmcgdGFza3MnLFxuICAgICAgICBhc3NpZ25pbmdVc2VyOiAnQXNzaWduaW5nIHVzZXInLFxuICAgICAgICB1bmFzc2lnbmluZ1VzZXI6ICdVbmFzc2lnbmluZyB1c2VyJyxcbiAgICAgICAgYXNzaWduaW5nTGFiZWw6ICdBc3NpZ25pbmcgbGFiZWwnLFxuICAgICAgICB1cGRhdGluZ1Rhc2tUeXBlOiAnVXBkYXRpbmcgdGFzayB0eXBlJyxcbiAgICAgICAgdXBkYXRpbmdFc3RpbWF0ZWRIb3VyczogJ1VwZGF0aW5nIGVzdGltYXRlZCBob3VycycsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGU6ICdVcGRhdGluZyBkZWxpdmVyYWJsZScsXG4gICAgICAgIGxvZ2dpbmdIb3VyczogJ0xvZ2dpbmcgaG91cnMnLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdDogJ0NyZWF0aW5nIGNoZWNrbGlzdCcsXG4gICAgICAgIGNyZWF0aW5nTGFiZWw6ICdDcmVhdGluZyBsYWJlbCcsXG4gICAgICAgIGVkaXRpbmdQcm9qZWN0OiAnRWRpdGluZyBwcm9qZWN0JyxcbiAgICAgICAgY3JlYXRpbmdDaGVja2xpc3RJdGVtOiAnQWRkaW5nIGNoZWNrbGlzdCBpdGVtJyxcbiAgICAgICAgcXVlcnlpbmdIb3VyczogJ1F1ZXJ5aW5nIGhvdXJzJyxcbiAgICAgICAgY29uZmlndXJpbmdBZ2VudEFjY2VzczogJ0NoYW5naW5nIGFnZW50IHZpc2liaWxpdHknLFxuICAgICAgICBzZW5kaW5nVGFza01lc3NhZ2U6ICdTZW5kaW5nIHRhc2sgbWVzc2FnZScsXG4gICAgICAgIGRlbGV0aW5nQ2hlY2tsaXN0SXRlbTogJ0RlbGV0aW5nIGNoZWNrbGlzdCBpdGVtJyxcbiAgICAgICAgcmVtb3ZpbmdUYXNrVHlwZTogJ1JlbW92aW5nIHRhc2sgdHlwZScsXG4gICAgICAgIHJlbW92aW5nTGFiZWw6ICdSZW1vdmluZyBsYWJlbCcsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGVDb3VudDogJ1VwZGF0aW5nIGRlbGl2ZXJhYmxlIGNvdW50JyxcbiAgICAgICAgY3JlYXRpbmdSZXdvcms6ICdDcmVhdGluZyByZXdvcmsnLFxuICAgICAgICB1cGRhdGluZ1Jld29yazogJ1VwZGF0aW5nIHJld29yaycsXG4gICAgICAgIGdlbmVyYXRpbmdGaWxlOiAnR2VuZXJhdGluZyBmaWxlJyxcbiAgICAgICAgcmVzdW1pbmdBY3Rpb246ICdSdW5uaW5nIGFwcHJvdmVkIGFjdGlvbicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdMb2FkaW5nIG1vcmUgbWVzc2FnZXMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmXigKYnLFxuICAgICAgICBvcmNoZXN0cmF0b3JQbGFjZWhvbGRlcjogJ0FzayBNYWlhLCBAIHRvIG1lbnRpb24gb3IgLyBmb3IgcXVpY2sgYWN0aW9ucycsXG4gICAgICAgIGFnZW50TGFiZWw6ICdUaGUgQWdlbnQnLFxuICAgICAgICBkaXNjbGFpbWVyOiAne3thZ2VudE5hbWV9fSBtYXkgbWFrZSBtaXN0YWtlcy4gUGxlYXNlIHZlcmlmeSBpbXBvcnRhbnQgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgZGlzY2xhaW1lckFnZW50OiAnQUkgbW9kZWxzIG1heSBtYWtlIG1pc3Rha2VzLiBWZXJpZnkgaW1wb3J0YW50IGluZm9ybWF0aW9uLicsXG4gICAgICAgIGNvckFjY2Vzc0xhYmVsOiAnQ09SIGFjY2VzcycsXG4gICAgICAgIGNvckFjY2Vzc1Rvb2x0aXA6ICdDT1IgZGF0YSBhY2Nlc3MnLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2VuZXJhdGluZyB5b3VyIHJlc3BvbnNlLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICByZXRyeTogJ1JldHJ5JyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBlcnJvclByb21wdFRvb0xvbmc6XG4gICAgICAgICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgY29udGV4dCBsaW1pdCB7e3VzZWR9fSB0b2tlbnMuIFBsZWFzZSByZXRyeSBvciBjb250aW51ZSBpbiBhbm90aGVyIGNoYXQnLFxuICAgICAgY2hhbmdlUHJvamVjdDogJ0kgZGV0ZWN0ZWQgdGhhdCB5b3Ugd2FudCB0byBjaGFuZ2UgUHJvamVjdC5cXG5cXG4qKlNlbGVjdCB0aGUgcHJvamVjdCB0byBjb250aW51ZToqKicsXG4gICAgICBzZWFyY2hXZWI6ICdTZWFyY2ggdGhlIHdlYicsXG4gICAgICBkZWVwU2VhcmNoOiAnQWR2YW5jZWQgaW50ZXJuZXQgc2VhcmNoIChhY2Nlc3MgdG8gbW9yZSBzb3VyY2VzKScsXG4gICAgICBhdHRhY2hGaWxlOiAnQXR0YWNoIGZpbGUnLFxuICAgICAgcGx1c01lbnVBdHRhY2g6ICdBdHRhY2ggZmlsZXMnLFxuICAgICAgZHJvcEZpbGVzSGVyZTogJ0Ryb3AgZmlsZXMgaGVyZScsXG4gICAgICBwbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uOiAnUmVzZWFyY2ggaW4gZGVwdGgnLFxuICAgICAgcGx1c01lbnVRdWlja0FjdGlvbnM6ICdRdWljayBhY3Rpb25zJyxcbiAgICAgIG9wZW5QbHVzTWVudUFyaWE6ICdBdHRhY2htZW50cyBhbmQgc2VhcmNoIG9wdGlvbnMnLFxuICAgICAgb3Blbk1lbnRpb25BcmlhOiAnTWVudGlvbicsXG4gICAgICByZW1vdmVBdHRhY2htZW50QXJpYTogJ1JlbW92ZSBmaWxlJyxcbiAgICAgIHJlbW92ZUFjdGl2ZVRvb2xBcmlhOiAnUmVtb3ZlIHNlYXJjaCBtb2RlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICAgIGxpbWl0RmlsZXM6ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgYXR0YWNobWVudCBsaW1pdCcsXG4gICAgICBzdG9wOiAnU3RvcCBnZW5lcmF0aW5nJyxcbiAgICAgIGNhbmNlbGxlZDogJ1RoZSBzZWFyY2ggaGFzIGJlZW4gY2FuY2VsbGVkLicsXG4gICAgICB0b29NYW55QWN0aXZlU2Vzc2lvbnM6XG4gICAgICAgICdUb28gbWFueSBjb252ZXJzYXRpb25zIGFyZSBnZW5lcmF0aW5nIGF0IG9uY2UuIFdhaXQgZm9yIG9uZSB0byBmaW5pc2ggYmVmb3JlIHN0YXJ0aW5nIGFub3RoZXIuJyxcbiAgICAgIGF0dGFjaG1lbnRQcmV2aWV3TW9kYWw6IHtcbiAgICAgICAgbG9hZGluZzogJ0xvYWRpbmcuLi4nLFxuICAgICAgICB1bnN1cHBvcnRlZEZpbGVNZXNzYWdlOiAnV2UgaGFkIGEgcHJvYmxlbSBsb2FkaW5nIHRoZSBwcmV2aWV3LiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuJyxcbiAgICAgICAgdHlwZUxhYmVsOiAnVHlwZTonLFxuICAgICAgICB1bmtub3duOiAnVW5rbm93bicsXG4gICAgICAgIHNpemVMYWJlbDogJ1NpemU6JyxcbiAgICAgICAgZXhjZWw6IHtcbiAgICAgICAgICBzaGVldFNlbGVjdG9yTGFiZWw6ICdTaGVldDonLFxuICAgICAgICAgIGxvYWRFcnJvcjogJ0NvdWxkIG5vdCBsb2FkIEV4Y2VsIGZpbGUgY29udGVudC4nLFxuICAgICAgICAgIGZpbGVSZWFkRXJyb3I6ICdFcnJvciByZWFkaW5nIGZpbGUuJyxcbiAgICAgICAgICBzaGVldExvYWRFcnJvcjogJ0Vycm9yIGxvYWRpbmcgc2VsZWN0ZWQgc2hlZXQuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd29yZDoge1xuICAgICAgICAgIGxvYWRFcnJvcjogJ0NvdWxkIG5vdCBsb2FkIFdvcmQgZG9jdW1lbnQgY29udGVudC4nLFxuICAgICAgICAgIGxlZ2FjeURvY1Vuc3VwcG9ydGVkOiAnUHJldmlldyBmb3IgLmRvYyBmaWxlcyBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgdXNlIC5kb2N4IGZvcm1hdC4nLFxuICAgICAgICB9LFxuICAgICAgICBwcHQ6IHtcbiAgICAgICAgICBsb2FkRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBwcmVzZW50YXRpb24gY29udGVudC4nLFxuICAgICAgICAgIGxlZ2FjeVBwdFVuc3VwcG9ydGVkOiAnUHJldmlldyBmb3IgLnBwdCBmaWxlcyBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgdXNlIC5wcHR4IGZvcm1hdC4nLFxuICAgICAgICAgIHNsaWRlTGFiZWw6ICdTbGlkZSB7e251bWJlcn19JyxcbiAgICAgICAgICBlbXB0eVNsaWRlOiAnVGhpcyBzbGlkZSBoYXMgbm8gdGV4dCBvciBpbWFnZXMgdG8gcHJldmlldy4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29udmVyc2F0aW9uPycsXG4gICAgICBmaXJzdFBhcnQ6ICdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZScsXG4gICAgICBzZWNvbmRQYXJ0OiAnVGhpcyBhY3Rpb24gaXMgaXJyZXZlcnNpYmxlLicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICB9LFxuICAgIGRlbGV0ZVNraWxsTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgc2tpbGw/JyxcbiAgICAgIGZpcnN0UGFydDogJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlJyxcbiAgICAgIHNlY29uZFBhcnQ6ICdUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3XigJl2ZSByZWFjaGVkIHRoZSAxNDAtY2hhcmFjdGVyIGxpbWl0LicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNYXhpbXVtIGF0dGFjaG1lbnRzIGV4Y2VlZGVkLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogXCJZb3UndmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0XCIsXG4gICAgICBsaW1pdEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICdZb3UgY2FuIGF0dGFjaCBhIG1heGltdW0gb2YgNSBmaWxlcyBwZXIgbWVzc2FnZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnT25lIG9yIG1vcmUgZmlsZXMgZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBieSB0eXBlLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNvdWxkIG5vdCBiZSBhdHRhY2hlZDonLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGxpbWl0OiAnbGltaXQnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnU291cmNlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50cycsXG4gICAgICBuZXdBZ2VudDogJ05ldyBhZ2VudCcsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyZWF0ZSBBZ2VudCcsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBtYWlhOiAnKFByb2plY3Qgc3BlY2lhbGlzdCknLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZGQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUmVtb3ZlIGZyb20gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEFkZGVkU3VjY2VzczogJ0FnZW50IGFkZGVkIHRvIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50IHJlbW92ZWQgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdZb3VyIGZhdm9yaXRlIGNvdWxkbuKAmXQgYmUgc2F2ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvcjogJ1RoZSBmYXZvcml0ZSBjb3VsZG7igJl0IGJlIHJlbW92ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdXZWxjb21lIHRvIE1BSUEsIHlvdXIgYXNzaXN0YW50IHRvIG1ha2UgeW91ciBkYXktdG8tZGF5IGJldHRlci4nLFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uczoge1xuICAgICAgdGl0bGU6ICdNeSBjb252ZXJzYXRpb25zJyxcbiAgICAgIGFnZW50c1NlY3Rpb25UaXRsZTogJ0FnZW50cycsXG4gICAgICBtYWlha2VyTmF2OiAnQWdlbnQgYnVpbGRlcicsXG4gICAgICBteUFnZW50c05hdjogJ015IGFnZW50cycsXG4gICAgICBteVNraWxsc05hdjogJ015IHNraWxscycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiAnQWxsIHlvdXIgY29udmVyc2F0aW9ucyB3aXRoIHRoZSBhZ2VudHMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZScsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIHVucmVhZExhYmVsOiAnVW5yZWFkJyxcbiAgICAgIG1pbmltaXplZE9wZW46ICdPcGVuIE1BSUEnLFxuICAgICAgbWluaW1pemVkU2VlQW5zd2VyOiAnU2VlIGFuc3dlcicsXG4gICAgICBjb2xsYXBzZTogJ0NvbGxhcHNlJyxcbiAgICAgIGV4cGFuZDogJ0V4cGFuZCcsXG4gICAgICBuZXdDaGF0OiAnTmV3IGNoYXQnLFxuICAgICAgZ2VuZXJhdGluZzogJ0dlbmVyYXRpbmcgcmVzcG9uc2UnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkOiAne3t0aXRsZX19IGZpbmlzaGVkIHJlc3BvbmRpbmcnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkQXBwcm92YWw6ICd7e3RpdGxlfX0gcmVxdWlyZXMgeW91ciBhcHByb3ZhbCcsXG4gICAgICBzZXNzaW9uRmluaXNoZWRFcnJvcjogJ3t7dGl0bGV9fSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsXG4gICAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JlYXRlIGFnZW50JyxcbiAgICAgIG9wZW5NYXJrZXRwbGFjZTogJ0FnZW50IG1hcmtldHBsYWNlJyxcbiAgICB9LFxuICAgIG1hcmtldHBsYWNlOiB7XG4gICAgICBiYWNrOiAnQmFjaycsXG4gICAgICB0aXRsZTogJ0lkZWFzIGZvciBidWlsZGluZyBhZ2VudHMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdDaG9vc2UgYSBzdHJvbmcgc3RhcnRpbmcgcG9pbnQgYW5kIG9wZW4gdGhlIGVkaXRvciB3aXRoIHRoZSBhZ2VudCBhbHJlYWR5IHByZWZpbGxlZCBzbyB5b3UgY2FuIGFkYXB0IGl0IHRvIHlvdXIgdXNlIGNhc2UuJyxcbiAgICAgIG15QWdlbnRzVGl0bGU6ICdNeSBhZ2VudHMnLFxuICAgICAgbXlBZ2VudHNSZWFkeVRpdGxlOiAnWW91ciBhZ2VudHMgYXJlIHJlYWR5IHRvIGhlbHAgeW91IHdpdGggdGFza3MnLFxuICAgICAgbXlBZ2VudHNEZXNjcmlwdGlvbjogJ1RoZXNlIGFyZSB5b3VyIGN1c3RvbSBhZ2VudHMuIFNlbGVjdCBvbmUgdG8gc3RhcnQgY2hhdHRpbmcgd2l0aCB0aGF0IHByb2ZpbGUuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlOiBcIllvdSBkb24ndCBoYXZlIGFueSBhZ2VudHMgeWV0XCIsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0NsaWNrIHRoZSBidXR0b24gYmVsb3cgdG8gc3RhcnQgY3JlYXRpbmcgYWdlbnRzIHRhaWxvcmVkIHRvIHlvdXIgbmVlZHMuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnV2hlbiBzb21lb25lIHdpdGggcGVybWlzc2lvbiBzZXRzIHRoZW0gdXAsIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZW0gZnJvbSBoZXJlLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVCdXR0b246ICdDcmVhdGUgYWdlbnQnLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0ludHJvOiAnQ3VzdG9tIGFnZW50IHJlYWR5IHRvIGhlbHAgaW4geW91ciB3b3JrZmxvdy4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uOiAnQ2xpY2sgdXNlIGFnZW50IHRvIHN0YXJ0IGEgY29udmVyc2F0aW9uIHdpdGggdGhpcyBhZ2VudC4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0RhdGU6ICdBIGZldyBkYXlzIGFnbycsXG4gICAgICBteUFnZW50c1RvZGF5OiAnVG9kYXknLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICcxIGRheSBhZ28nLFxuICAgICAgbXlBZ2VudHNEYXlzQWdvOiAne3tkYXlzfX0gZGF5cyBhZ28nLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6ICdBZ2VudCBhY3Rpb25zIG1lbnUnLFxuICAgICAgdXNlOiAnVXNlJyxcbiAgICAgIGNyZWF0ZUFnZW50OiAnQ3JlYXRlIGFnZW50IG1hbnVhbGx5JyxcbiAgICAgIHNlYXJjaEFnZW50UGxhY2Vob2xkZXI6ICdTZWFyY2ggYWdlbnQuLi4nLFxuICAgICAgc2VhcmNoTWluTGVuZ3RoOiAnbWluLiAzIGNoYXJhY3RlcnMnLFxuICAgICAgc2VhcmNoTm9SZXN1bHRzOiAnTm8gcmVzdWx0cyBmb3VuZC4nLFxuICAgICAgc2VhcmNoTm9SZXN1bHRzU3VidGl0bGU6ICdDcmVhdGUgYW4gQUkgYWdlbnQgdGhhdCBjYW4gdGhpbmssIGFjdCwgYW5kIGF1dG9tYXRlIHdvcmsgZm9yIHlvdScsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyZWF0ZSBmcm9tIHRoaXMgaWRlYScsXG4gICAgICB1c2VNeUFnZW50OiAnVXNlIGFnZW50JyxcbiAgICAgIGJhZGdlczoge1xuICAgICAgICBicmFuZGluZzogJ0JyYW5kaW5nJyxcbiAgICAgICAgbGlua2VkaW46ICdMaW5rZWRJbicsXG4gICAgICAgIG1hcmtldGluZzogJ01hcmtldGluZycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXlTa2lsbHM6IHtcbiAgICAgIHRpdGxlOiAnWW91ciBza2lsbHMgcmVhZHkgdG8gcG93ZXIgdXAgeW91ciBhZ2VudHMnLFxuICAgICAgc3VidGl0bGU6ICdTa2lsbHMgYXJlIGdsb2JhbDogdGhleSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBvZiB5b3VyIGFnZW50cy4nLFxuICAgICAgY3JlYXRlU2tpbGw6ICdDcmVhdGUgc2tpbGwnLFxuICAgICAgcHJldmlldzogJ1ByZXZpZXcnLFxuICAgICAgcHJldmlld0VtcHR5OiAnTm90aGluZyB0byBwcmV2aWV3IHlldC4nLFxuICAgICAgdXBsb2FkTWQ6ICdVcGxvYWQgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnT25seSAubWQgZmlsZXMgYXJlIGFsbG93ZWQnLFxuICAgICAgY3JlYXRlV2l0aE1haWE6ICdDcmVhdGUgd2l0aCBNYWlhJyxcbiAgICAgIHdyaXRlSW5zdHJ1Y3Rpb25zOiAnV3JpdGUgc2tpbGwgaW5zdHJ1Y3Rpb25zJyxcbiAgICAgIHVwbG9hZFNraWxsOiAnVXBsb2FkIGEgc2tpbGwnLFxuICAgICAgZ2VuZXJhdGVQbGFjZWhvbGRlcjogJ0kgd2FudCBhIFNraWxsIHRvIGNyZWF0ZSBteSBwcm9qZWN0cycsXG4gICAgICBnZW5lcmF0ZVdpdGhNYWlhOiAnQ3JlYXRlIHRoZSBTa2lsbCB3aXRoIE1haWEnLFxuICAgICAgZ2VuZXJhdGVOZWVkc05hbWU6ICdFbnRlciBhIG5hbWUgZmlyc3QgdG8gZGVzY3JpYmUgdGhlIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlU3VjY2VzczogJ1NraWxsIGdlbmVyYXRlZCB3aXRoIE1haWEnLFxuICAgICAgZ2VuZXJhdGVFcnJvcjogJ1RoZSBza2lsbCBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogJ1NraWxsIGFjdGlvbnMgbWVudScsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIHNhdmU6ICdTYXZlJyxcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgY3JlYXRlVGl0bGU6ICdOZXcgc2tpbGwnLFxuICAgICAgZWRpdFRpdGxlOiAnRWRpdCBza2lsbCcsXG4gICAgICBuYW1lTGFiZWw6ICdOYW1lJyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ1NraWxsIG5hbWUnLFxuICAgICAgY29udGVudExhYmVsOiAnU2tpbGwnLFxuICAgICAgY29udGVudFBsYWNlaG9sZGVyOiAnV3JpdGUgdGhlIHNraWxsLi4uJyxcbiAgICAgIGVtcHR5U3RhdGVUaXRsZTogXCJZb3UgZG9uJ3QgaGF2ZSBhbnkgc2tpbGxzIHlldFwiLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQ2xpY2sgdGhlIGJ1dHRvbiBiZWxvdyB0byBzdGFydCBjcmVhdGluZyB5b3VyIHNraWxscy4nLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnV2hlbiBzb21lb25lIHdpdGggcGVybWlzc2lvbiBzZXRzIHRoZW0gdXAsIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZW0gZnJvbSBoZXJlLicsXG4gICAgICBlbXB0eVN0YXRlQnV0dG9uOiAnQ3JlYXRlIHNraWxsJyxcbiAgICAgIGNyZWF0ZVN1Y2Nlc3M6ICdTa2lsbCBjcmVhdGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICBjcmVhdGVFcnJvcjogJ1RoZSBza2lsbCBjb3VsZCBub3QgYmUgY3JlYXRlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgdXBkYXRlU3VjY2VzczogJ1NraWxsIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgIHVwZGF0ZUVycm9yOiAnVGhlIHNraWxsIGNvdWxkIG5vdCBiZSB1cGRhdGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICBkZWxldGVTdWNjZXNzOiAnU2tpbGwgZGVsZXRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgZGVsZXRlRXJyb3I6ICdUaGUgc2tpbGwgY291bGQgbm90IGJlIGRlbGV0ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDaGF0IGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICAgIHJlbmFtZWRDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDb252ZXJzYXRpb24gcmVuYW1lZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBlcnJvcjogJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSwgdHJ5IGFnYWluLicsXG4gICAgICB9LFxuICAgICAgbG9hZE1vcmVBZ2VudHM6IHtcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFwcHJvdmFsQm94OiB7XG4gICAgICB1bnRpdGxlZEFnZW50OiAnVW50aXRsZWQgYWdlbnQnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0NyZWF0aW9uIG9mIHRhc2snLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcmVhdGlvbiBvZiB0YXNrcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdFZGl0IGFnZW50JyxcbiAgICAgICAgZWRpdF9wcm9qZWN0OiAnRWRpdCBwcm9qZWN0JyxcbiAgICAgICAgZWRpdF90YXNrOiAnRWRpdCB0YXNrJyxcbiAgICAgICAgZWRpdF90YXNrc19iYXRjaDogJ0VkaXQgdGFza3MnLFxuICAgICAgICBkZWxldGVfdGFzazogJ0RlbGV0ZSB0YXNrJyxcbiAgICAgICAgZGVsZXRlX3Rhc2tzX2JhdGNoOiAnRGVsZXRlIHRhc2tzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBc3NpZ24gdXNlcicsXG4gICAgICAgIHRhc2tfdW5hc3NpZ246ICdVbmFzc2lnbiB1c2VyJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBc3NpZ24gbGFiZWwnLFxuICAgICAgICBjcmVhdGVfbGFiZWxzOiAnQ3JlYXRlIGxhYmVsJyxcbiAgICAgICAgdXBkYXRlX3Rhc2tfdHlwZTogJ1VwZGF0ZSB0YXNrIHR5cGUnLFxuICAgICAgICB1cGRhdGVfZXN0aW1hdGVkX2hvdXJzOiAnVXBkYXRlIGVzdGltYXRlZCBob3VycycsXG4gICAgICAgIHVwZGF0ZV9kZWxpdmVyYWJsZTogJ1VwZGF0ZSBkZWxpdmVyYWJsZScsXG4gICAgICAgIGNyZWF0ZV9ob3VyOiAnTG9nIGhvdXJzJyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdDogJ0NyZWF0ZSBjaGVja2xpc3QnLFxuICAgICAgICBjcmVhdGVfY2hlY2tsaXN0X2l0ZW06ICdBZGQgY2hlY2tsaXN0IGl0ZW0nLFxuICAgICAgICBjbG9uZV90YXNrOiAnQ2xvbmUgdGFzaycsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdHZXQgaG91cnMgYnkgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6ICdDaGFuZ2UgYWdlbnQgdmlzaWJpbGl0eScsXG4gICAgICAgIHNlbmRfdGFza19tZXNzYWdlOiAnU2VuZCB0YXNrIG1lc3NhZ2UnLFxuICAgICAgICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdEZWxldGUgY2hlY2tsaXN0IGl0ZW0nLFxuICAgICAgICByZW1vdmVfdGFza190eXBlOiAnUmVtb3ZlIHRhc2sgdHlwZScsXG4gICAgICAgIHJlbW92ZV90YXNrX2xhYmVsOiAnUmVtb3ZlIGxhYmVsJyxcbiAgICAgICAgY291bnRfZGVsaXZlcmFibGU6ICdVcGRhdGUgZGVsaXZlcmFibGUgY291bnQnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3JlYXRlIHJld29yaycsXG4gICAgICAgIHVwZGF0ZV9yZXdvcms6ICdVcGRhdGUgcmV3b3JrJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnRGVsZXRlIGFnZW50JyxcbiAgICAgICAgdW5rbm93bjogJ1Vua25vd24gYWN0aW9uJyxcbiAgICAgIH0sXG4gICAgICBzcGVjaWFsOiB7XG4gICAgICAgIGNyZWF0ZVJld29yazoge1xuICAgICAgICAgIHRpdGxlOiAnQ3JlYXRlIHJld29yaycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdBIHJld29yayByZXF1ZXN0IHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgdGFzayB3aXRoIHRoZSBpbmZvcm1hdGlvbiBiZWxvdy4nLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuOiB7XG4gICAgICAgICAgdGl0bGU6ICdVcGRhdGUgZGVsaXZlcmFibGUgcHJvZ3Jlc3MnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHByb2dyZXNzIG9mIGxpbmtlZCBzdWItZGVsaXZlcmFibGVzIGZvciB0aGlzIHRhc2sgd2lsbCBiZSB1cGRhdGVkLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIG5hbWU6ICdOYW1lJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHVjdGlvbicsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ01haW4gcHJvbXB0JyxcbiAgICAgICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kZWwnLFxuICAgICAgICBhcGlfa2V5OiAnQVBJIGtleScsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdDb25maXJtYXRpb24gcmVxdWlyZWQnLFxuICAgICAgZGVzY3JpcHRpb246ICdZb3UgbmVlZCB0byBhcHByb3ZlIHRoZSBmb2xsb3dpbmcgYWN0aW9uOicsXG4gICAgICBhcHByb3ZlOiAnQXBwcm92ZScsXG4gICAgICBkZW55OiAnRGVueScsXG4gICAgICBtYW51YWxBcHByb3ZhbFdhcm5pbmc6ICdNYWlhIGRldGVjdGVkIHRoYXQgdGhlIHJlcXVlc3Qgd2FzIG1hbnVhbGx5IGFwcHJvdmVkJyxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBhcHByb3ZlZDogJ1JlcXVlc3QgQXBwcm92ZWQnLFxuICAgICAgICBkZW5pZWQ6ICdSZXF1ZXN0IERlbmllZCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hpcExsbToge1xuICAgICAgdG9vbHRpcDogJ01vZGVsOiB7e21vZGVsfX0nLFxuICAgIH0sXG4gICAgY2xpZW50U2VsZWN0b3I6IHtcbiAgICAgIHByb2plY3Q6ICdwcm9qZWN0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamVjdHMnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5hYm1BZ2VudF06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBhZ2VudHM6ICdBZ2VudHMnLFxuICAgIGxheW91dE1lbnVUb29sdGlwOiAnQ2hhdCBsYXlvdXQnLFxuICAgIGxheW91dFNpZGViYXI6ICdTaWRlIGNoYXQnLFxuICAgIGxheW91dEZ1bGxzY3JlZW46ICdGdWxsc2NyZWVuIGNoYXQnLFxuICAgIGxheW91dEZsb2F0aW5nOiAnRmxvYXRpbmcgY2hhdCcsXG4gICAgYmFjazogJ0JhY2snLFxuICAgIGFkZEFnZW50OiAnQWRkIG5ldyBhZ2VudCcsXG4gICAgbGVnZW5kRGVsZXRlZEFnZW50OiAnVGhpcyBhZ2VudCB3YXMgZGVsZXRlZCBvbicsXG4gICAgbGVnZW5kUHJvamVjdERlbGV0ZWQ6ICdUaGUgcHJvamVjdCB7e25hbWV9fSBoYXMgYmVlbiBkZWxldGVkLiBJdCBpcyBub3QgcG9zc2libGUgdG8gY29udGludWUgdGhlIGNvbnZlcnNhdGlvbicsXG4gICAgbGVnZW5kTm9BY2Nlc3M6ICdZb3Ugbm8gbG9uZ2VyIGhhdmUgYWNjZXNzIHRvIGludGVyYWN0IHdpdGggdGhlIGFnZW50IHt7bmFtZX19JyxcbiAgICBsZWdlbmROb1Blcm1pc3Npb25zOiAnWW91IG5vIGxvbmdlciBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBvciBpbnRlcmFjdCB3aXRoIHRoZSBhZ2VudCB7e25hbWV9fScsXG4gICAgbGVnZW5kTGVnYWN5Q29udGV4dFNlc3Npb246XG4gICAgICAnVGhpcyBjb252ZXJzYXRpb24gYmVsb25ncyB0byBhIHByZXZpb3VzIGNvbnRleHQuIFlvdSBjYW4gY29udGludWUgd2l0aCB7e25hbWV9fSBpbiBhIG5ldyBjaGF0LicsXG4gICAgY29udGludWVJbk5ld0NoYXQ6ICdDb250aW51ZSBpbiBhIG5ldyBjaGF0JyxcbiAgICBsZWdlbmRNb2RlbERlcHJlY2F0ZWQ6XG4gICAgICAnVGhlIG1vZGVsIHNlbGVjdGVkIGZvciB0aGlzIGFnZW50IGlzIG5vIGxvbmdlciBhdmFpbGFibGUuIFN3aXRjaCB0byBhbm90aGVyIG1vZGVsIHRvIGNvbnRpbnVlIHVzaW5nIGl0LicsXG4gICAgbGVnZW5kUHJvdmlkZXJTdGF0dXM6XG4gICAgICAnVGhlIG1vZGVsIHVzZWQgYnkgdGhpcyBhZ2VudCBpcyBleHBlcmllbmNpbmcgdGVtcG9yYXJ5IGlzc3Vlcy4gWW91IGNhbiB3YWl0IGZvciBpdCB0byByZWNvdmVyIG9yIHN3aXRjaCB0byBhIGRpZmZlcmVudCBtb2RlbC4nLFxuICAgIGNoYW5nZU1vZGVsOiAnQ2hhbmdlIG1vZGVsJyxcbiAgICBuZXdBZ2VudDogJ05ldyBhZ2VudCcsXG4gICAgY3JlYXRlQWdlbnQ6ICdDcmVhdGUgQWdlbnQnLFxuICAgIGVkaXRBZ2VudDogJ0VkaXQgYWdlbnQnLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICBkZWxldGVBZ2VudDogJ0RlbGV0ZSBhZ2VudCcsXG4gICAgY29udGludWU6ICdDb250aW51ZScsXG4gICAgZWRpdDogJ0VkaXQnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgZmVlZGJhY2s6ICdTZW5kIEZlZWRiYWNrJyxcbiAgICBzZW5kRmVlZGJhY2s6ICdTZW5kIGZlZWRiYWNrJyxcbiAgICBzYXZlQ2hhbmdlczogJ1NhdmUgY2hhbmdlcycsXG4gICAgY3JlYXRlQWdlbnRMYWJlbEJ1dHRvbjogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnQWdlbnQgbWFya2V0cGxhY2UnLFxuICAgIGNvbmZpcm1BZ2VudENyZWF0ZWQ6ICdUaGUgYWdlbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQnLFxuICAgIGNvbmZpcm1BZ2VudFVwZGF0ZWQ6ICdUaGUgYWdlbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQnLFxuICAgIGNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50OiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNsb3NlPyBDaGFuZ2VzIHdpbGwgYmUgbG9zdC4nLFxuICAgIGNvbmZpcm1DbG9zZUVkaXRBZ2VudDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjbG9zZT8gQ2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcbiAgICBjb25maXJtUmVsb2FkQnJvd3NlcjogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZWxvYWQgdGhlIHBhZ2U/IENoYW5nZXMgd2lsbCBiZSBsb3N0LicsXG4gICAgY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yOiAnVGhlIGFnZW50IHdhcyBlZGl0ZWQgc3VjY2Vzc2Z1bGx5LCBidXQgc29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkLicsXG4gICAgY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3I6ICdUaGUgYWdlbnQgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LCBidXQgc29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkLicsXG4gICAgY29uZmlybUFnZW50RGVsZXRlZDogJ1RoZSBhZ2VudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZCcsXG4gICAgZXJyb3JBY2Nlc3NEZW5pZWQ6IFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhpcyBhZ2VudC4gQ29udGFjdCBzdXBwb3J0LlwiLFxuICAgIGVycm9yQWdlbnRDcmVhdGVkOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICBhdHRhY2htZW50Q2FyZDoge1xuICAgICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gICAgZ2VuZXJhbFNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnR2VuZXJhbCcsXG4gICAgICBnZW5lcmFsU2V0dGluZ3M6ICdHZW5lcmFsIHNldHRpbmdzJyxcbiAgICAgIHJlcXVpcmVkRmllbGRzTGFiZWw6ICcqcmVxdWlyZWQnLFxuICAgICAgaW5mb0xhYmVsOiAnQWRkIGFsbCB0aGUgaW5mb3JtYXRpb24gdG8gY3VzdG9taXplIHlvdXIgYWdlbnTigJlzIGJlaGF2aW9yLicsXG4gICAgICBvcHRpb25hbExhYmVsOiAnT3B0aW9uYWwnLFxuICAgICAgYmFzaWNTZXR0aW5nczogJ0Jhc2ljIHNldHRpbmdzJyxcbiAgICAgIHNlbGVjdEVtb2ppOiAnU2VsZWN0IGVtb2ppJyxcbiAgICAgIG5hbWU6ICdXaGF0IGlzIHlvdXIgYWdlbnTigJlzIG5hbWU/JyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ0dpdmUgeW91ciBhZ2VudCBhIG5hbWUnLFxuICAgICAgYmVoYXZpb3JTZXR0aW5nczogJ0JlaGF2aW9yIHNldHRpbmdzJyxcbiAgICAgIGluaXRpYWxQcm9tcHQ6ICdXaGF0IGFyZSB0aGUgaW5zdHJ1Y3Rpb25zPycsXG4gICAgICBpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXI6XG4gICAgICAgICdFeGFtcGxlOiBZb3UgYXJlIGEgc29jaWFsIG1lZGlhIGNvcHl3cml0ZXIgd2hvIHdyaXRlcyBhbmQgYWRhcHRzIG1lc3NhZ2VzIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBpbiB0b25lLCBwZXJzb25hbGl0eSwgYW5kIGJyYW5kIHZhbHVlcy4nLFxuICAgICAgbW9kZWxBaUxhYmVsOiAnQUkgbW9kZWwnLFxuICAgICAgbm9Nb2RlbHNBdmFpbGFibGU6ICdObyBtb2RlbHMgYXZhaWxhYmxlJyxcbiAgICAgIGlucHV0UGxhY2Vob2xkZXJUaXRsZTogJ1doYXQgd2lsbCB0aGUgdXNlciBzZWUgaW4gdGhlIGNoYXQgZmllbGQgYmVmb3JlIHR5cGluZz8nLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ0FzayBtZSBhbnl0aGluZyB5b3UgbmVlZOKApicsXG4gICAgICBpbnRyb2R1Y3Rpb246ICdIb3cgd2lsbCB5b3VyIGFnZW50IGludHJvZHVjZSBpdHNlbGY/JyxcbiAgICAgIGludHJvZHVjdGlvblBsYWNlaG9sZGVyOlxuICAgICAgICAnRXhhbXBsZTogSGkhIPCfkYsgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSBjcmVhdGUsIGFkYXB0LCBhbmQgcmV2aWV3IGNvcHkgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMsIGVuc3VyaW5nIHlvdXIgYnJhbmTigJlzIHZvaWNlLCB0b25lLCBhbmQgcGVyc29uYWxpdHkgc3RheSBjb25zaXN0ZW50LiBZb3UgY2FuIGFzayBtZSB0byBzdWdnZXN0IGNhbXBhaWduIGlkZWFzLCBhZGFwdCBhIG1lc3NhZ2UgZm9yIGFub3RoZXIgY2hhbm5lbCwgb3IgcmV2aWV3IHRoZSBjb2hlcmVuY2Ugb2YgeW91ciBjb250ZW50LicsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4Q2FyYWN0ZXJOYW1lOiAnWW91IGhhdmUgcmVhY2hlZCB0aGUgMTUwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhDYXJhY3RlckluaXRpYWxQcm9tcHQ6ICdZb3XigJl2ZSByZWFjaGVkIHRoZSA1MDAwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhJbnB1dFBsYWNlaG9sZGVyOiAnWW914oCZdmUgcmVhY2hlZCB0aGUgMTAwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhDYXJhY3RlckludHJvZHVjdGlvbjogJ1lvdeKAmXZlIHJlYWNoZWQgdGhlIDQwMC1jaGFyYWN0ZXIgbGltaXQuJyxcbiAgICAgIH0sXG4gICAgICBob3dUb1dyaXRlUHJvbXB0OiAnSG93IHRvIHdyaXRlIGEgcHJvbXB0JyxcbiAgICAgIHdoYXRJc01vZGVsQWlUaXRsZTogJ1doaWNoIEFJIG1vZGVsIHdpbGwgeW91IHVzZT8nLFxuICAgICAgd2hhdElzTW9kZWxBaTogJ1doYXQgaXMgYSBtb2RlbCBvZiBBST8nLFxuICAgICAgY3JlYXRlZEJ5OiAnQnknLFxuICAgICAgY3JlYXRlZEJ5VG9vbHRpcDogJ0FnZW50IGNyZWF0b3IgdXNlcicsXG4gICAgICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzZXIgZGVsZXRlZC4gVGhlaXIgbmFtZSBpcyBrZXB0IGZvciByZWZlcmVuY2UuJyxcbiAgICB9LFxuICAgIGtub3dsZWRnZVNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnS25vd2xlZGdlJyxcbiAgICAgIGtub3dsZWRnZVRhYjogJ0tub3dsZWRnZSBiYXNlJyxcbiAgICAgIGluZm9MYWJlbDogJ1VwbG9hZCB0aGUgZmlsZXMgeW91ciBhZ2VudCB3aWxsIHVzZSBhcyBhIHJlZmVyZW5jZSBmb3IgaXRzIHJlc3BvbnNlcy4nLFxuICAgICAgc2VsZWN0RmlsZVRpdGxlOiAnU2VsZWN0IGZpbGVzJyxcbiAgICAgIGF0dGFjaEZpbGVzOiAnQXR0YWNoIGZpbGVzJyxcbiAgICAgIGRyb3Bab25lVGV4dDoge1xuICAgICAgICAxOiAnQ2xpY2sgaGVyZSB0byB1cGxvYWQnLFxuICAgICAgICAyOiAnb3IgZHJhZyBmaWxlcycsXG4gICAgICB9LFxuICAgICAgaW5mb0ZpbGVUeXBlczpcbiAgICAgICAgJy5tZCwgLnBkZiwgLmRvYywgLmRvY3gsIC5wcHQsIC5wcHR4LCAudHh0LCAuY3N2LCAucG5nLCAuanBnLCAuanBlZywgLnhscywgLnhsc3ggIChtYXguIHRvdGFsIDVNQiknLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4RmlsZXNUaXRsZTogJ1RvdGFsIHNpemUgbGltaXQgZXhjZWVkZWQuJyxcbiAgICAgICAgbWF4RmlsZXNEZXNjcmlwdGlvbjogJ1lvdSBjYW4gYXR0YWNoIGZpbGVzIHVwIHRvIGEgdG90YWwgb2YgNSBNQi4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgICAgbWF4U2l6ZVRpdGxlOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0JyxcbiAgICAgICAgbWF4U2l6ZURlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgMTogJ1RoZSBtYXhpbXVtIGxpbWl0IG9mIDUgTUIgd2FzIHJlYWNoZWQuJyxcbiAgICAgICAgICAyOiAnVGhlc2UgZmlsZXMgd2VyZSBub3QgdXBsb2FkZWQgYmVjYXVzZSB0aGV5IGV4Y2VlZCB0aGUgYXZhaWxhYmxlIHNwYWNlOicsXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWRFeHRlbnNpb25EZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdPbmx5IGZpbGVzIHdpdGggdGhlIGZvbGxvd2luZyBleHRlbnNpb25zIGFyZSBhY2NlcHRlZDogLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCcsXG4gICAgICAgICAgMjogJ1RoZXNlIGZpbGVzIHdlcmUgbm90IHVwbG9hZGVkIGJlY2F1c2UgdGhlaXIgZXh0ZW5zaW9uIGlzIG5vdCBhbGxvd2VkOicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbW9yZUluZm86ICdTZWUgaG93IGl0IHdvcmtzIGhlcmUnLFxuICAgIH0sXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnUGVybWlzc2lvbnMnLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWdlbnQgdmlzaWJpbGl0eSBhbmQgcGVybWlzc2lvbnMnLFxuICAgICAgc3VidGl0bGVTZWN0aW9uOiAnRGVmaW5lIHdobyBjYW4gdXNlIHRoaXMgYWdlbnQgYW5kIHdoZXRoZXIgaXQgY2FuIGFjY2VzcyBDT1IgZGF0YS4nLFxuICAgICAgY29yUGVybWlzc2lvbnNUaXRsZTogJ0NPUiBkYXRhIGFjY2VzcyBwZXJtaXNzaW9ucycsXG4gICAgICBjb3JQZXJtaXNzaW9uc1N1YnRpdGxlOiAnV2hhdCBjYW4gdGhpcyBhZ2VudCBhY2Nlc3M/JyxcbiAgICAgIHRhc2tBY2Nlc3NUaXRsZTogJ1Rhc2sgYWNjZXNzJyxcbiAgICAgIHRhc2tBY2Nlc3NEZXNjcmlwdGlvbjpcbiAgICAgICAgJ1RoZSBhZ2VudCB3aWxsIGJlIGFibGUgdG8gcmVhZCwgY3JlYXRlLCB1cGRhdGUsIGFuZCBkZWxldGUgdGFza3MgYWNjb3JkaW5nIHRvIHRoZSB1c2Vy4oCZcyBwZXJtaXNzaW9ucy4nLFxuICAgICAgdmlzaWJpbGl0eVRpdGxlOiAnQWdlbnQgdmlzaWJpbGl0eScsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdXaG8gY2FuIHVzZSB0aGlzIGFnZW50PycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdFbnRpcmUgY29tcGFueScsXG4gICAgICBhbGxDb21wYW55RGVzY3JpcHRpb246ICdBbGwgdXNlcnMgb2YgeW91ciBvcmdhbml6YXRpb24gd2lsbCBiZSBhYmxlIHRvIHNlZSBhbmQgdXNlIHRoaXMgYWdlbnQuJyxcbiAgICAgIGNsaWVudFRpdGxlOiAnRm9yIHNwZWNpZmljIGNsaWVudHMnLFxuICAgICAgY2xpZW50RGVzY3JpcHRpb246XG4gICAgICAgICdBc3NvY2lhdGUgdGhpcyBhZ2VudCB3aXRoIG9uZSBvciBtb3JlIGNsaWVudHMuIEFsbCB1c2VycyB3aWxsIGJlIGFibGUgdG8gc2VlIHdoaWNoIGNsaWVudHMgYXJlIGxpbmtlZC4nLFxuICAgICAgb3duVGl0bGU6ICdPbmx5IG1lJyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnVGhpcyBhZ2VudCB3aWxsIGJlIHByaXZhdGUgYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZSB0byBvdGhlciB1c2Vycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdPb3BzISBXZSBoYWQgdHJvdWJsZSBsb2FkaW5nIHRoZSBjbGllbnRzLiBDb3VsZCB5b3UgdHJ5IGFnYWluIGluIGEgbW9tZW50PycsXG4gICAgICBzZWFyY2hFbXB0eTogJ09vcHMhIFdlIGNvdWxkbuKAmXQgZmluZCBjbGllbnRzIHdpdGggdGhhdCBuYW1lLiBUcnkgYW5vdGhlciBzZWFyY2guJyxcbiAgICAgIHNlYXJjaEluaXRpYWw6ICdTdGFydCB0eXBpbmcgYSBjbGllbnTigJlzIG5hbWUgdG8gbGluayBpdCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgICAgY2xpZW50c0Vycm9yOiAnQ2hlY2sgdGhlIGFzc29jaWF0ZWQgY2xpZW50cycsXG4gICAgfSxcbiAgICBwcm9jZXNzaW5nS25vd2xlZGdlOiB7XG4gICAgICBkZXNjcmlwdGlvbkNyZWF0ZTpcbiAgICAgICAgJ1dlIGFyZSBjcmVhdGluZyB0aGUgQWdlbnQgYW5kIGl0cyBrbm93bGVkZ2UgYmFzZS4gVGhpcyBtYXkgdGFrZSBhIGZldyBtb21lbnRzLiBQbGVhc2UgZG8gbm90IGNsb3NlIHRoaXMgd2luZG93IHVudGlsIHRoZSBwcm9jZXNzIGhhcyBiZWVuIGNvbXBsZXRlZC4nLFxuICAgICAgZGVzY3JpcHRpb25VcGRhdGU6XG4gICAgICAgICdXZSBhcmUgdXBkYXRpbmcgdGhlIEFnZW50IGFuZCBpdHMga25vd2xlZGdlIGJhc2UuIFRoaXMgbWF5IHRha2UgYSBmZXcgbW9tZW50cy4gUGxlYXNlIGRvIG5vdCBjbG9zZSB0aGlzIHdpbmRvdyB1bnRpbCB0aGUgcHJvY2VzcyBoYXMgYmVlbiBjb21wbGV0ZWQuJyxcbiAgICAgIGZpbGVSb3c6ICdGaWxlJyxcbiAgICAgIHN0YXR1c1JvdzogJ1N0YXR1cycsXG4gICAgICBwZW5kaW5nOiAnUGVuZGluZycsXG4gICAgICBwcm9jZXNzaW5nOiAnUHJvY2Vzc2luZycsXG4gICAgICBmYWlsZWQ6ICdGYWlsZWQnLFxuICAgICAgZG9uZTogJ0RvbmUnLFxuICAgICAgbG9hZGluZ0ZpbGVzOiAnTG9hZGluZyBmaWxlcy4uLicsXG4gICAgICBlcnJvcjoge30sXG4gICAgfSxcbiAgICBkZWxldGVBZ2VudE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFnZW50PycsXG4gICAgICBmaXJzdFBhcnQ6ICdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSAnLFxuICAgICAgc2Vjb25kUGFydDogJ1RoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBoZWxsbzoge1xuICAgICAgICB0aXRsZTogJ0nigJltIE1BSUEsIHlvdXIgcHJvamVjdCBzcGVjaWFsaXN0LicsXG4gICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgICdUbyBnaXZlIHlvdSBhY2N1cmF0ZSBhbnN3ZXJzLCBJIG5lZWQgdG8ga25vdyB3aGljaCBwcm9qZWN0IHdl4oCZcmUgdGFsa2luZyBhYm91dC4gV2hpY2ggb25lIGRvIHlvdSBjaG9vc2U/JyxcbiAgICAgIH0sXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTZWxlY3QgYSBwcm9qZWN0JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoIGZvciBhIHByb2plY3QgYnkgbmFtZScsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnRzJyxcbiAgICAgIHNlYXJjaGluZ1Byb2plY3RzOiAnU2VhcmNoaW5nIHlvdXIgcHJvamVjdHMuLi4nLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnT29wcyEgV2UgaGFkIGEgcHJvYmxlbSBsb2FkaW5nIHRoZSBwcm9qZWN0cy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLicsXG4gICAgICBlbXB0eVJlY2VudFByb2plY3RzOiAnWW91IGRvbuKAmXQgaGF2ZSByZWNlbnQgcHJvamVjdHMuIFR5cGUgYSBwcm9qZWN0IG5hbWUgaW4gdGhlIHNlYXJjaCB0byBmaW5kIGl0LicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgV2UgY291bGRu4oCZdCBmaW5kIGFueSBwcm9qZWN0cyB3aXRoIHRoYXQgbmFtZS4gVHJ5IGFub3RoZXIgc2VhcmNoLicsXG4gICAgICB3aXRob3V0Q2xpZW50OiAnTm8gY2xpZW50JyxcbiAgICAgIHdpdGhvdXRUaXRsZTogJ05vIHRpdGxlJyxcbiAgICB9LFxuICB9LFxuICBbU0VDVElPTlMuY2xpZW50U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgY2xpZW50U2VsZWN0b3I6IHtcbiAgICAgIHRpdGxlOiAnV2hpY2ggY2xpZW50IHdvdWxkIHlvdSBsaWtlIGhlbHAgd2l0aD8nLFxuICAgICAgaGVsbG86IHtcbiAgICAgICAgdGl0bGU6IFwiSSdtIE1BSUEsIHlvdXIgY2xpZW50IHNwZWNpYWxpc3QuXCIsXG4gICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgIFwiVG8gZ2l2ZSB5b3UgYWNjdXJhdGUgYW5zd2VycywgSSBuZWVkIHRvIGtub3cgd2hpY2ggY2xpZW50IHdlJ3JlIHRhbGtpbmcgYWJvdXQuIFdoaWNoIG9uZSBkbyB5b3UgY2hvb3NlP1wiLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWN0IGEgY2xpZW50IHNvIE1BSUEgY2FuIHJlc3BvbmQgaW4gY29udGV4dC4nLFxuICAgICAgbGFiZWxDbGllbnQ6ICdTZWxlY3QgYSBjbGllbnQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggY2xpZW50IGJ5IG5hbWUnLFxuICAgICAgY2hhbmdlQ2xpZW50OiAnQ2hhbmdlIGNsaWVudCcsXG4gICAgICByZWNlbnRDbGllbnRzOiAnUmVjZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdXZSBoYWQgYSBwcm9ibGVtIGxvYWRpbmcgdGhlIGNsaWVudHMuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiBcIllvdSBkb24ndCBoYXZlIHJlY2VudCBjbGllbnRzLiBUeXBlIGEgY2xpZW50IG5hbWUgaW4gdGhlIHNlYXJjaCB0byBmaW5kIGl0LlwiLFxuICAgICAgZW1wdHlTdGF0ZTogXCJPb3BzISBXZSBjb3VsZG4ndCBmaW5kIGNsaWVudHMgd2l0aCB0aGF0IG5hbWUuIFRyeSBhbm90aGVyIHNlYXJjaC5cIixcbiAgICAgIHByb2plY3Q6ICdwcm9qZWN0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamVjdHMnLFxuICAgIH0sXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx3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
|