@projectcor/maia-components 2.11.20-8 → 2.11.21
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/components/atoms/ApprovalBox/ApprovalBox.js +2 -16
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +5 -6
- package/lib/components/atoms/Chip/Chip.js +14 -10
- package/lib/components/atoms/Chip/styles.js +18 -10
- package/lib/components/atoms/MAIAInput/MAIAInput.js +6 -6
- package/lib/components/atoms/icons/index.js +1 -3
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -24
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +61 -26
- package/lib/components/molecules/ChatAIHome/styles.js +43 -37
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -58
- package/lib/components/molecules/ChatAIMessages/newStyles.js +21 -24
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +14 -184
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +42 -20
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +13 -5
- package/lib/components/molecules/ChatAIModal/constants.js +2 -6
- package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -4
- package/lib/components/molecules/ChatFooter/styles.js +2 -2
- package/lib/components/molecules/Sidebar/Sidebar.js +198 -171
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +1 -13
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +52 -99
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +6 -6
- package/lib/constants/formatExtensions.js +4 -1
- package/lib/hooks/index.js +1 -4
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +85 -245
- package/lib/hooks/useEvent.js +2 -5
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -19
- package/lib/lang/br/index.js +9 -75
- package/lib/lang/en/index.js +9 -75
- package/lib/lang/es/index.js +7 -73
- package/lib/lang/fr/index.js +4 -100
- package/lib/services/maia/Agents/getAgentById.js +5 -9
- package/lib/services/maia/Agents/getAgents.js +10 -9
- package/lib/services/maia/Orchestrator/orchestrator.js +25 -35
- package/lib/services/utils/mapChatMessages.js +1 -2
- package/lib/types/Chat.js +1 -1
- package/lib/types/agent.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/MaiaStoreIcon.js +0 -31
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +0 -51
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +0 -130
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +0 -91
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +0 -137
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +0 -43
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +0 -37
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +0 -326
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +0 -168
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +0 -114
- package/lib/hooks/useAgentSuggestions.js +0 -60
- package/lib/services/maia/Agents/fetchAgentDetail.js +0 -122
- package/lib/services/maia/Agents/getAgentSuggestions.js +0 -44
- package/lib/types/AgentSuggestion.js +0 -2
|
@@ -25,7 +25,7 @@ import { useT } from '../../../hooks/useT';
|
|
|
25
25
|
import { validateIsMaia } from '../../../services/utils/validateIsMaia';
|
|
26
26
|
import { TelescopeIcon } from '../icons/TelescopeIcon';
|
|
27
27
|
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
28
|
-
import { allowedFileTypes, fileTypes } from '../../../constants/formatExtensions';
|
|
28
|
+
import { allowedFileTypes, fileTypes, MAX_FILE_SIZE_MB_MAIA_VISION, MAX_FILE_SIZE_MB_OLD, MAX_FILE_SIZE_MB_AUDIO } from '../../../constants/formatExtensions';
|
|
29
29
|
import { BLUE_IA_COLORS } from '../../../styles/config';
|
|
30
30
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
31
31
|
export var MAIAInput = function MAIAInput(_ref) {
|
|
@@ -338,8 +338,8 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
338
338
|
|
|
339
339
|
// Validaciones específicas según el tipo de archivo
|
|
340
340
|
if (isNewFormat(fileExtension)) {
|
|
341
|
-
// Para nuevos formatos: hasta
|
|
342
|
-
if (file.size >
|
|
341
|
+
// Para nuevos formatos: hasta 4.99MB por archivo, hasta 5 archivos
|
|
342
|
+
if (file.size > MAX_FILE_SIZE_MB_MAIA_VISION * 1024 * 1024) {
|
|
343
343
|
exceededFiles.push(file.name);
|
|
344
344
|
excludedFile = true;
|
|
345
345
|
}
|
|
@@ -349,7 +349,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
349
349
|
}
|
|
350
350
|
} else if (isOldFormat(fileExtension)) {
|
|
351
351
|
// Para formatos anteriores: hasta 1MB por archivo, hasta 5 archivos
|
|
352
|
-
if (file.size >
|
|
352
|
+
if (file.size > MAX_FILE_SIZE_MB_OLD * 1024 * 1024) {
|
|
353
353
|
exceededFiles.push(file.name);
|
|
354
354
|
excludedFile = true;
|
|
355
355
|
}
|
|
@@ -359,7 +359,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
359
359
|
}
|
|
360
360
|
} else if (isAudioFormat(fileExtension)) {
|
|
361
361
|
// Para archivos de audio: hasta 10MB por archivo, hasta 5 archivos
|
|
362
|
-
if (file.size >
|
|
362
|
+
if (file.size > MAX_FILE_SIZE_MB_AUDIO * 1024 * 1024) {
|
|
363
363
|
exceededFiles.push(file.name);
|
|
364
364
|
excludedFile = true;
|
|
365
365
|
}
|
|
@@ -563,4 +563,4 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
563
563
|
})]
|
|
564
564
|
});
|
|
565
565
|
};
|
|
566
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBhcGVyUGxhbmUiLCJBdHRhY2giLCJHbG9iZSIsIlRyYXNoIiwiVG9vbHRpcCIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnREZWxldGVJY29uIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uIiwiU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24iLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJTdHlsZWRNQUlBSW5wdXQiLCJTdHlsZWRNQUlBSW5wdXRCdXR0b25zIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEljb24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiTW9kYWxGaWxlRXhjZWVkcyIsInVzZVQiLCJ2YWxpZGF0ZUlzTWFpYSIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImFsbG93ZWRGaWxlVHlwZXMiLCJmaWxlVHlwZXMiLCJCTFVFX0lBX0NPTE9SUyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIk1BSUFJbnB1dCIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiX3JlZiRhbGlnbkJ1dHRvbnMiLCJhbGlnbkJ1dHRvbnMiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJfcmVmJGF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3VzZVQiLCJ0IiwiaW5wdXRSZWYiLCJmaWxlSW5wdXRSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidmFsdWVUZXh0YXJlYSIsInNldFZhbHVlVGV4dGFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzRGlzYWJsZWQiLCJzZXRJc0Rpc2FibGVkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJfdXNlU3RhdGU3IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJmaWxlU2l6ZXMiLCJfdXNlU3RhdGU4IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsImhhbmRsZVdlYlNlYXJjaFRvZ2dsZSIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwiaGFuZGxlRGVlcFNlYXJjaFRvZ2dsZSIsImhhbmRsZVJlc2l6ZSIsInRleHRhcmVhIiwiY3VycmVudCIsIm1pbkhlaWdodCIsIm1heEhlaWdodCIsInByZXZpb3VzTWluSGVpZ2h0Iiwic3R5bGUiLCJwcmV2aW91c01heEhlaWdodCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcCIsImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJzaW5nbGVMaW5lSGVpZ2h0IiwiaXNFbXB0eSIsInZhbHVlIiwidHJpbSIsImhhc011bHRpcGxlVmlzdWFsTGluZXMiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb250ZXh0IiwiZ2V0Q29udGV4dCIsInRleHRhcmVhU3R5bGVzIiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImJvcmRlckxlZnQiLCJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodCIsImJvcmRlclJpZ2h0V2lkdGgiLCJ0ZXh0YXJlYVdpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0ZXh0IiwibGluZXMiLCJzcGxpdCIsImxlbmd0aCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJsaW5lIiwidGV4dFdpZHRoIiwibWVhc3VyZVRleHQiLCJ3aWR0aCIsImVyciIsImUiLCJmIiwibmV3SGVpZ2h0IiwiTWF0aCIsIm1pbiIsIm1heCIsImZvY3VzIiwiYWdlbnRDaGFuZ2VkIiwiaWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsInNldFRpbWVvdXQiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhbmltYXRpb25GcmFtZUlkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYXNUZXh0IiwiaGFzQXR0YWNobWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidGFyZ2V0IiwiaGFuZGxlUGFzdGUiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnRWYWx1ZSIsImhhbmRsZUZpbGVTZWxlY3QiLCJmaWxlcyIsImZpbGVzSW5zZXJ0ZWQiLCJpc05ld0Zvcm1hdCIsImV4dGVuc2lvbiIsImluY2x1ZGVzIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJleGNsdWRlZEZpbGUiLCJmaWxlTmFtZVBhcnRzIiwibmFtZSIsImZpbGVFeHRlbnNpb24iLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJ0eXBlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImNsaWNrIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZUJsdXIiLCJoYW5kbGVXcmFwcGVyRm9jdXMiLCJoYW5kbGVXcmFwcGVyQmx1ciIsIl93cmFwcGVyUmVmJGN1cnJlbnQiLCJjb250YWlucyIsImFjdGl2ZUVsZW1lbnQiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImFpQ2hhdFN0b3BSZXNwb25zZSIsImlzTUFJQSIsImhhc0hlYWRlckJ1dHRvbnMiLCJpY29uQ29sb3JJbmFjdGl2ZSIsImNoaWxkcmVuIiwicmVmIiwib25Gb2N1cyIsIm9uQmx1ciIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJ0aXRsZSIsImljb24iLCJvbkNsaWNrIiwiY29sb3IiLCJvbktleURvd24iLCJvblBhc3RlIiwiaXNNYXhpbWl6ZWQiLCIkaXNGb2N1c2VkIiwiaXNBY3RpdmUiLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsIm9uQ2xvc2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyBDaGFuZ2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFBhcGVyUGxhbmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QYXBlclBsYW5lJ1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgR2xvYmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9HbG9iZSdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7XG4gIFNDTUlBdHRhY2htZW50LFxuICBTQ01JQXR0YWNobWVudERlbGV0ZUljb24sXG4gIFNDTUlXcmFwcGVyQXR0YWNobWVudEJ1dHRvbixcbiAgU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24sXG4gIFNDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvbixcbiAgU3R5bGVkTUFJQUlucHV0LFxuICBTdHlsZWRNQUlBSW5wdXRCdXR0b25zLFxuICBTdHlsZWRNQUlBSW5wdXRXcmFwcGVyLFxuICBTdHlsZWRNQUlBU2VuZEJ1dHRvbixcbiAgU3R5bGVkTUFJQVN0b3BCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wSWNvbixcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBUZWxlc2NvcGVJY29uIH0gZnJvbSAnLi4vaWNvbnMvVGVsZXNjb3BlSWNvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IGFsbG93ZWRGaWxlVHlwZXMsIGZpbGVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKSA9PiB2b2lkXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbn06IE1BSUFJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGZpbGVJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbdmFsdWVUZXh0YXJlYSwgc2V0VmFsdWVUZXh0YXJlYV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2lzRGlzYWJsZWQsIHNldElzRGlzYWJsZWRdID0gdXNlU3RhdGUodHJ1ZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZURlZXBTZWFyY2gsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICAvLyBJbmljaWFsaXphciBsYXMgcmVmZXJlbmNpYXMgY29tbyB1bmRlZmluZWQgcGFyYSBkZXRlY3RhciBlbCBwcmltZXIgY2FtYmlvIGNvcnJlY3RhbWVudGVcbiAgY29uc3QgcHJldmlvdXNBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNOZXdDaGF0S2V5UmVmID0gdXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0IGhhbmRsZVdlYlNlYXJjaFRvZ2dsZSA9ICgpID0+IHtcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBpZiAoIWlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHsgb3B0aW9uOiAnc2VhcmNoJyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlZXBTZWFyY2hUb2dnbGUgPSAoKSA9PiB7XG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICBpZiAoIWlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ2RlZXBfc2VhcmNoJyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlc2l6ZSA9ICgpID0+IHtcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGlucHV0UmVmLmN1cnJlbnRcbiAgICBpZiAoIXRleHRhcmVhKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBBbHR1cmEgbcOtbmltYSBlcXVpdmFsZW50ZSBhIHVuYSBsw61uZWFcbiAgICBjb25zdCBtaW5IZWlnaHQgPSAyMi4xXG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gMTIyLjFcblxuICAgIC8vIFBhcmEgbWVkaXIgY29ycmVjdGFtZW50ZSBlbCBzY3JvbGxIZWlnaHQsIG5lY2VzaXRhbW9zIHF1aXRhciB0ZW1wb3JhbG1lbnRlIGxhcyByZXN0cmljY2lvbmVzXG4gICAgY29uc3QgcHJldmlvdXNNaW5IZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHRcbiAgICBjb25zdCBwcmV2aW91c01heEhlaWdodCA9IHRleHRhcmVhLnN0eWxlLm1heEhlaWdodFxuXG4gICAgLy8gRXN0YWJsZWNlciBhbHR1cmEgYSAnYXV0bycgeSBxdWl0YXIgdGVtcG9yYWxtZW50ZSBtaW4taGVpZ2h0IHkgbWF4LWhlaWdodCBwYXJhIG1lZGlyIGNvcnJlY3RhbWVudGVcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0bydcbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSAnMHB4J1xuICAgIHRleHRhcmVhLnN0eWxlLm1heEhlaWdodCA9ICdub25lJ1xuXG4gICAgLy8gRm9yemFyIHJlZmxvdyBwYXJhIHF1ZSBlbCBuYXZlZ2Fkb3IgcmVjYWxjdWxlXG4gICAgdm9pZCB0ZXh0YXJlYS5vZmZzZXRIZWlnaHRcblxuICAgIC8vIEFob3JhIG1lZGlyIGVsIHNjcm9sbEhlaWdodCByZWFsIHNpbiByZXN0cmljY2lvbmVzXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGV4dGFyZWEuc2Nyb2xsSGVpZ2h0XG5cbiAgICAvLyBDYWxjdWxhciBsYSBhbHR1cmEgZGUgdW5hIGzDrW5lYSB1c2FuZG8gbG9zIGVzdGlsb3MgY29tcHV0YWRvc1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpIHx8IDIwIC8vIEZhbGxiYWNrIGEgMjBweCBzaSBubyBlc3TDoSBkZWZpbmlkb1xuICAgIGNvbnN0IHBhZGRpbmdUb3AgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1RvcCkgfHwgMFxuICAgIGNvbnN0IHBhZGRpbmdCb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0JvdHRvbSkgfHwgMFxuICAgIGNvbnN0IGJvcmRlclRvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCkgfHwgMFxuICAgIGNvbnN0IGJvcmRlckJvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJCb3R0b21XaWR0aCkgfHwgMFxuXG4gICAgLy8gQWx0dXJhIGRlIHVuYSBsw61uZWEgY29tcGxldGEgKGxpbmUtaGVpZ2h0ICsgcGFkZGluZyArIGJvcmRlcilcbiAgICBjb25zdCBzaW5nbGVMaW5lSGVpZ2h0ID0gbGluZUhlaWdodCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tXG5cbiAgICBjb25zdCBpc0VtcHR5ID0gdGV4dGFyZWEudmFsdWUudHJpbSgpID09PSAnJ1xuXG4gICAgLy8gTWVkaXIgZWwgYW5jaG8gZGVsIHRleHRvIHVzYW5kbyBDYW52YXMgcGFyYSBkZXRlcm1pbmFyIHNpIHNlIGVudnVlbHZlIGEgbcO6bHRpcGxlcyBsw61uZWFzXG4gICAgbGV0IGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSBmYWxzZVxuXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcblxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgLy8gRmFsbGJhY2sgc2kgQ2FudmFzIG5vIGVzdMOhIGRpc3BvbmlibGU6IHVzYXIgc2Nyb2xsSGVpZ2h0XG4gICAgICBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gc2Nyb2xsSGVpZ2h0ID4gc2luZ2xlTGluZUhlaWdodCAqIDEuNVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXh0YXJlYVN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRleHRhcmVhKVxuICAgICAgY29udGV4dC5mb250ID0gYCR7dGV4dGFyZWFTdHlsZXMuZm9udFdlaWdodH0gJHt0ZXh0YXJlYVN0eWxlcy5mb250U2l6ZX0gJHt0ZXh0YXJlYVN0eWxlcy5mb250RmFtaWx5fWBcblxuICAgICAgLy8gQ2FsY3VsYXIgZWwgYW5jaG8gZGlzcG9uaWJsZSAoYW5jaG8gdG90YWwgbWVub3MgcGFkZGluZyBpenF1aWVyZG8vZGVyZWNobyB5IGJvcmRlciBpenF1aWVyZG8vZGVyZWNobylcbiAgICAgIGNvbnN0IHBhZGRpbmdMZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdMZWZ0KSB8fCAwXG4gICAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSB8fCAwXG4gICAgICBjb25zdCBib3JkZXJMZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCkgfHwgMFxuICAgICAgY29uc3QgYm9yZGVyUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyUmlnaHRXaWR0aCkgfHwgMFxuICAgICAgY29uc3QgdGV4dGFyZWFXaWR0aCA9IHRleHRhcmVhLm9mZnNldFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHRcbiAgICAgIGNvbnN0IHRleHQgPSB0ZXh0YXJlYS52YWx1ZSB8fCAnJ1xuICAgICAgY29uc3QgbGluZXMgPSB0ZXh0LnNwbGl0KCdcXG4nKVxuXG4gICAgICAvLyBTaSBoYXkgbcO6bHRpcGxlcyBsw61uZWFzIHBvciBzYWx0b3MgZGUgbMOtbmVhIGV4cGzDrWNpdG9zXG4gICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkge1xuICAgICAgICBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHRleHRvIHNlIGVudnVlbHZlIG1pZGllbmRvIGVsIGFuY2hvIGRlIGNhZGEgbMOtbmVhXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG4gICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gY29udGV4dC5tZWFzdXJlVGV4dChsaW5lKS53aWR0aFxuICAgICAgICAgIC8vIFNpIGFsZ3VuYSBsw61uZWEgZXMgbcOhcyBhbmNoYSBxdWUgZWwgdGV4dGFyZWEgZGlzcG9uaWJsZSwgc2UgZW52dWVsdmVcbiAgICAgICAgICBpZiAodGV4dFdpZHRoID4gdGV4dGFyZWFXaWR0aCkge1xuICAgICAgICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHRydWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG5ld0hlaWdodDogbnVtYmVyXG4gICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgIC8vIEN1YW5kbyBlc3TDoSB2YWPDrW8sIHVzYXIgYWx0dXJhIG3DrW5pbWFcbiAgICAgIG5ld0hlaWdodCA9IG1pbkhlaWdodFxuICAgIH0gZWxzZSBpZiAoIWhhc011bHRpcGxlVmlzdWFsTGluZXMpIHtcbiAgICAgIC8vIEN1YW5kbyBoYXkgY29udGVuaWRvIHBlcm8gc29sbyB1bmEgbMOtbmVhIHZpc3VhbCwgdXNhciBhbHR1cmEgbcOtbmltYVxuICAgICAgbmV3SGVpZ2h0ID0gbWluSGVpZ2h0XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFBhcmEgbcO6bHRpcGxlcyBsw61uZWFzIHZpc3VhbGVzLCB1c2FyIGVsIHNjcm9sbEhlaWdodFxuICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoc2Nyb2xsSGVpZ2h0LCBtaW5IZWlnaHQpLCBtYXhIZWlnaHQpXG4gICAgfVxuXG4gICAgLy8gUmVzdGF1cmFyIGVzdGlsb3MgYW50ZXMgZGUgYXBsaWNhciBsYSBudWV2YSBhbHR1cmFcbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSBwcmV2aW91c01pbkhlaWdodCB8fCAnMjIuMXB4J1xuICAgIHRleHRhcmVhLnN0eWxlLm1heEhlaWdodCA9IHByZXZpb3VzTWF4SGVpZ2h0IHx8ICcxMjIuMXB4J1xuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5wdXRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBDb21wYXJhY2nDs24gcXVlIG1hbmVqYSBjb3JyZWN0YW1lbnRlIHVuZGVmaW5lZC9udWxsXG4gICAgY29uc3QgYWdlbnRDaGFuZ2VkID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgIT09IGFnZW50Py5pZFxuICAgIC8vIENvbXBhcmFjacOzbiBlc3RyaWN0YSBxdWUgZGV0ZWN0YSBjYW1iaW9zIGluY2x1c28gY3VhbmRvIHVubyBlcyB1bmRlZmluZWRcbiAgICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnRcbiAgICBjb25zdCBjdXJyZW50Q2hhdElkID0gY2hhdElkXG4gICAgY29uc3QgY2hhdENoYW5nZWQgPSBwcmV2aW91c0NoYXRJZCAhPT0gY3VycmVudENoYXRJZFxuICAgIC8vIERldGVjdGFyIGNhbWJpbyBlc3BlY8OtZmljbyBkZSB1bmRlZmluZWQvbnVsbCBhIHVuIHZhbG9yIChudWV2byBjaGF0IC0+IGNvbnZlcnNhY2nDs24gdmllamEpXG4gICAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAgIChwcmV2aW91c0NoYXRJZCA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJiBjdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiYgY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICAgIGNvbnN0IG5ld0NoYXRTdGFydGVkID0gcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgIT09IG5ld0NoYXRLZXlcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkXG5cbiAgICBpZiAoXG4gICAgICAoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiZcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICFkaXNhYmxlZFxuICAgICkge1xuICAgICAgLy8gVXNhciBzZXRUaW1lb3V0IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIERPTSBlc3TDqSBsaXN0b1xuICAgICAgLy8gQXVtZW50YXIgZWwgZGVsYXkgcGFyYSBjYXNvcyBkb25kZSBlbCBjb21wb25lbnRlIHNlIGVzdMOhIG1vbnRhbmRvXG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgICAgICB9XG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICAvLyBBY3R1YWxpemFyIGxhcyByZWZlcmVuY2lhcyBERVNQVcOJUyBkZSBsYSBjb21wYXJhY2nDs25cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQ2xlYXIgaW5wdXQgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgICAgfVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfSlcblxuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShhbmltYXRpb25GcmFtZUlkKVxuICB9LCBbdmFsdWVUZXh0YXJlYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gdmFsdWVUZXh0YXJlYS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICB9LCBbYXR0YWNobWVudHMsIHZhbHVlVGV4dGFyZWFdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlKGlucHV0UmVmLmN1cnJlbnQudmFsdWUsIGF0dGFjaG1lbnRzKVxuICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoKSB7XG4gICAgICBvblNlbmRNZXNzYWdlKCcnLCBhdHRhY2htZW50cylcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBDaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSBlLnRhcmdldC52YWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIHNldFZhbHVlVGV4dGFyZWEoZS50YXJnZXQudmFsdWUpXG4gICAgb25DaGFuZ2U/LigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQYXN0ZSA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBpbnB1dFJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJ1xuICAgICAgY29uc3QgaGFzVGV4dCA9IGN1cnJlbnRWYWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKGN1cnJlbnRWYWx1ZSlcbiAgICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIH0sIDEwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgICBpZiAoIWZpbGVzKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgLy8gRGVmaW5pciBsw61taXRlcyBwYXJhIGRpZmVyZW50ZXMgdGlwb3MgZGUgYXJjaGl2b3NcbiAgICBjb25zdCBpc05ld0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT4gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnLCAnLnBkZiddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc09sZEZvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLnR4dCcsICcubWQnLCAnLmNzdicsICcuZG9jJywgJy5kb2N4JywgJy54bHN4JywgJy54bHMnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNBdWRpb0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGVkRmlsZSA9IGZhbHNlXG4gICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgICAgaWYgKCFhbGxvd2VkRmlsZVR5cGVzPy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgICAgLy8gVmFsaWRhY2lvbmVzIGVzcGVjw61maWNhcyBzZWfDum4gZWwgdGlwbyBkZSBhcmNoaXZvXG4gICAgICBpZiAoaXNOZXdGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBudWV2b3MgZm9ybWF0b3M6IGhhc3RhIDE1TUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IDE1ICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc09sZEZvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGZvcm1hdG9zIGFudGVyaW9yZXM6IGhhc3RhIDFNQiBwb3IgYXJjaGl2bywgaGFzdGEgNSBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gMSAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBdWRpb0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGFyY2hpdm9zIGRlIGF1ZGlvOiBoYXN0YSAxME1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiAxMCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFleGNsdWRlZEZpbGUpIHtcbiAgICAgICAgZmlsZXNJbnNlcnRlZCArPSAxXG4gICAgICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgICAgICBjb25zdCBwYXJzZWRGaWxlID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlLm5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcbiAgICAgICAgb25GaWxlQXR0YWNoPy4ocGFyc2VkRmlsZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgc2V0SXNEaXNhYmxlZChmYWxzZSlcbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaENsaWNrID0gKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywgeyBvcHRpb246ICdmaWxlcycgfSlcbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID49IDUpIHJldHVyblxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgb25EZWxldGVBdHRhY2htZW50Py4oZmlsZUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQmx1ciA9ICgpID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gdmFsdWVUZXh0YXJlYS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcHBlckZvY3VzID0gKCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJCbHVyID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9LCAwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3RvcEdlbmVyYXRpb24gPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFN0b3BSZXNwb25zZSlcbiAgICBvblN0b3BHZW5lcmF0aW9uPy4oKVxuICB9XG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGhhc0hlYWRlckJ1dHRvbnMgPSAhaXNNQUlBXG5cbiAgY29uc3QgaWNvbkNvbG9ySW5hY3RpdmUgPSBpc0ZvY3VzZWQgPyAnIzY2NjY2NicgOiAnIzk5OSdcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkTUFJQUlucHV0V3JhcHBlclxuICAgICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgIGhhc0F0dGFjaG1lbnRzPXshIWF0dGFjaG1lbnRzLmxlbmd0aH1cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgPlxuICAgICAgICB7ISFhdHRhY2htZW50cy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxMnB4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICB7YXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gYXR0YWNobWVudC5uYW1lLnNwbGl0KCcuJylcbiAgICAgICAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeU1pbWUgPSBhdHRhY2htZW50LnR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthdHRhY2htZW50Lm5hbWV9IGtleT17YCR7aW5kZXh9LSR7YXR0YWNobWVudC5uYW1lfWB9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQUlucHV0XG4gICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgb25QYXN0ZT17aGFuZGxlUGFzdGV9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgLz5cbiAgICAgICAgPFN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMgaGFzSGVhZGVyQnV0dG9ucz17aGFzSGVhZGVyQnV0dG9uc30+XG4gICAgICAgICAge2hhc0hlYWRlckJ1dHRvbnMgPyAoXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTBweCcgfX0+XG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthdHRhY2htZW50cy5sZW5ndGggPj0gNSA/IHQoJ2NoYXQubGltaXRGaWxlcycpIDogdCgnY2hhdC5hdHRhY2hGaWxlJyl9PlxuICAgICAgICAgICAgICAgIDxTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGhhc0F0dGFjaG1lbnRzPXshIWF0dGFjaG1lbnRzLmxlbmd0aH1cbiAgICAgICAgICAgICAgICAgIGlzTWF4aW1pemVkPXthdHRhY2htZW50cy5sZW5ndGggPj0gNX1cbiAgICAgICAgICAgICAgICAgICRpc0ZvY3VzZWQ9e2lzRm9jdXNlZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUF0dGFjaENsaWNrfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxBdHRhY2hcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9eyFhdHRhY2htZW50cy5sZW5ndGggPyBpY29uQ29sb3JJbmFjdGl2ZSA6IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YH1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE4fVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE4fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NDTUlXcmFwcGVyQXR0YWNobWVudEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zZWFyY2hXZWInKX0+XG4gICAgICAgICAgICAgICAgPFNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpc0FjdGl2ZT17ISFpc1dlYlNlYXJjaEFjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICRpc0ZvY3VzZWQ9e2lzRm9jdXNlZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVdlYlNlYXJjaFRvZ2dsZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8R2xvYmVcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzV2ViU2VhcmNoQWN0aXZlID8gYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gIDogaWNvbkNvbG9ySW5hY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxOH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxOH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ01JV3JhcHBlcldlYlNlYXJjaEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5kZWVwU2VhcmNoJyl9PlxuICAgICAgICAgICAgICAgIDxTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b25cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXshIWlzRGVlcFNlYXJjaEFjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICRpc0ZvY3VzZWQ9e2lzRm9jdXNlZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZURlZXBTZWFyY2hUb2dnbGV9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFRlbGVzY29wZUljb25cbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzRGVlcFNlYXJjaEFjdGl2ZSA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6IGljb25Db2xvckluYWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTh9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTh9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NNSVdyYXBwZXJEZWVwU2VhcmNoQnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHtpc1dyaXRpbmcgPyAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zdG9wJyl9PlxuICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BCdXR0b24gZGlzYWJsZWQ9e2ZhbHNlfSBvbkNsaWNrPXtoYW5kbGVTdG9wR2VuZXJhdGlvbn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEljb24gLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzU3RyZWFtaW5nID8gdCgnY2hhdC5zZW5kJykgOiB0KCdjaGF0LnNlbmQnKX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZEJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkIHx8IGRpc2FibGVkfVxuICAgICAgICAgICAgICAgIGhhc1ZhbHVlcz17ISF2YWx1ZVRleHRhcmVhLmxlbmd0aH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYXBlclBsYW5lIGNvbG9yPVwiI0JGQkZCRlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZEJ1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZE1BSUFJbnB1dEJ1dHRvbnM+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucG5nLC5qcGcsLmpwZWcsLnBkZiwueGxzeCwueGxzLC5mbGFjLC5tNGEsLm1wMywubXA0LC5vZ2EsLm9nZywud2F2LC53ZWJtXCJcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkTUFJQUlucHV0V3JhcHBlcj5cbiAgICAgIHttb2RhbFByb3BzLmlzT3BlbiAmJiAoXG4gICAgICAgIDxNb2RhbEZpbGVFeGNlZWRzXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogZmFsc2UsIGV4Y2x1ZGVkRmlsZXM6IFtdLCBleGNlZWRlZEZpbGVzOiBbXSwgZmlsZVNpemVzOiB7fSB9KX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGZpbGVTaXplcz17bW9kYWxQcm9wcy5maWxlU2l6ZXN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQWdEQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDMUYsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBRXRFLFNBQ0VDLGNBQWMsRUFDZEMs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
|
|
566
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBhcGVyUGxhbmUiLCJBdHRhY2giLCJHbG9iZSIsIlRyYXNoIiwiVG9vbHRpcCIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnREZWxldGVJY29uIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uIiwiU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24iLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJTdHlsZWRNQUlBSW5wdXQiLCJTdHlsZWRNQUlBSW5wdXRCdXR0b25zIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEljb24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiTW9kYWxGaWxlRXhjZWVkcyIsInVzZVQiLCJ2YWxpZGF0ZUlzTWFpYSIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImFsbG93ZWRGaWxlVHlwZXMiLCJmaWxlVHlwZXMiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX0FVRElPIiwiQkxVRV9JQV9DT0xPUlMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNQUlBSW5wdXQiLCJfcmVmIiwib25TZW5kTWVzc2FnZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9yZWYkYWxpZ25CdXR0b25zIiwiYWxpZ25CdXR0b25zIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiX3JlZiRhdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsIl91c2VUIiwidCIsImlucHV0UmVmIiwiZmlsZUlucHV0UmVmIiwid3JhcHBlclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInZhbHVlVGV4dGFyZWEiLCJzZXRWYWx1ZVRleHRhcmVhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0Rpc2FibGVkIiwic2V0SXNEaXNhYmxlZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiX3VzZVN0YXRlNyIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJleGNlZWRlZEZpbGVzIiwiZmlsZVNpemVzIiwiX3VzZVN0YXRlOCIsIm1vZGFsUHJvcHMiLCJzZXRNb2RhbFByb3BzIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInRvZ2dsZVdlYlNlYXJjaCIsImlzV2ViU2VhcmNoQWN0aXZlIiwidG9nZ2xlRGVlcFNlYXJjaCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImFnZW50IiwicHJldmlvdXNBZ2VudElkUmVmIiwidW5kZWZpbmVkIiwicHJldmlvdXNDaGF0SWRSZWYiLCJwcmV2aW91c05ld0NoYXRLZXlSZWYiLCJoYW5kbGVXZWJTZWFyY2hUb2dnbGUiLCJhaUNoYXRUb29scyIsIm9wdGlvbiIsImhhbmRsZURlZXBTZWFyY2hUb2dnbGUiLCJoYW5kbGVSZXNpemUiLCJ0ZXh0YXJlYSIsImN1cnJlbnQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJwcmV2aW91c01pbkhlaWdodCIsInN0eWxlIiwicHJldmlvdXNNYXhIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb21wdXRlZFN0eWxlIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbSIsImJvcmRlckJvdHRvbVdpZHRoIiwic2luZ2xlTGluZUhlaWdodCIsImlzRW1wdHkiLCJ2YWx1ZSIsInRyaW0iLCJoYXNNdWx0aXBsZVZpc3VhbExpbmVzIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0YXJlYVN0eWxlcyIsImZvbnQiLCJjb25jYXQiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwidGV4dGFyZWFXaWR0aCIsIm9mZnNldFdpZHRoIiwidGV4dCIsImxpbmVzIiwic3BsaXQiLCJsZW5ndGgiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwibGluZSIsInRleHRXaWR0aCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJlcnIiLCJlIiwiZiIsIm5ld0hlaWdodCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJmb2N1cyIsImFnZW50Q2hhbmdlZCIsImlkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJzZXRUaW1lb3V0IiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYW5pbWF0aW9uRnJhbWVJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiaGFzVGV4dCIsImhhc0F0dGFjaG1lbnRzIiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJoYW5kbGVLZXlEb3duIiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImhhbmRsZVBhc3RlIiwiX2lucHV0UmVmJGN1cnJlbnQkdmFsIiwiX2lucHV0UmVmJGN1cnJlbnQiLCJjdXJyZW50VmFsdWUiLCJoYW5kbGVGaWxlU2VsZWN0IiwiZmlsZXMiLCJmaWxlc0luc2VydGVkIiwiaXNOZXdGb3JtYXQiLCJleHRlbnNpb24iLCJpbmNsdWRlcyIsImlzT2xkRm9ybWF0IiwiaXNBdWRpb0Zvcm1hdCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZXhjbHVkZWRGaWxlIiwiZmlsZU5hbWVQYXJ0cyIsIm5hbWUiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwidHlwZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwiaGFuZGxlQXR0YWNoQ2xpY2siLCJfZmlsZUlucHV0UmVmJGN1cnJlbnQiLCJjbGljayIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJoYW5kbGVCbHVyIiwiaGFuZGxlV3JhcHBlckZvY3VzIiwiaGFuZGxlV3JhcHBlckJsdXIiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiY29udGFpbnMiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJpc01BSUEiLCJoYXNIZWFkZXJCdXR0b25zIiwiaWNvbkNvbG9ySW5hY3RpdmUiLCJjaGlsZHJlbiIsInJlZiIsIm9uRm9jdXMiLCJvbkJsdXIiLCJkaXNwbGF5IiwiZ2FwIiwiYWxpZ25JdGVtcyIsIm1hcCIsImF0dGFjaG1lbnQiLCJpbmRleCIsIl9maWxlTmFtZVBhcnRzJHBvcDIiLCJfYXR0YWNobWVudCR0eXBlIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsInN0YXJ0c1dpdGgiLCJpc0ltYWdlIiwidGl0bGUiLCJpY29uIiwib25DbGljayIsImNvbG9yIiwib25LZXlEb3duIiwib25QYXN0ZSIsImlzTWF4aW1pemVkIiwiJGlzRm9jdXNlZCIsImlzQWN0aXZlIiwiaGFzVmFsdWVzIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJvbkNsb3NlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRpbnVlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12b2lkICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWxvbmVseS1pZiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQsIEtleWJvYXJkRXZlbnQsIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXBlclBsYW5lIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGFwZXJQbGFuZSdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IEdsb2JlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvR2xvYmUnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQge1xuICBTQ01JQXR0YWNobWVudCxcbiAgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uLFxuICBTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24sXG4gIFNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uLFxuICBTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24sXG4gIFN0eWxlZE1BSUFJbnB1dCxcbiAgU3R5bGVkTUFJQUlucHV0QnV0dG9ucyxcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXQgPSAoe1xuICBvblNlbmRNZXNzYWdlLFxuICBjbGFzc05hbWUsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBwbGFjZWhvbGRlcixcbiAgb25DaGFuZ2UsXG4gIGFsaWduQnV0dG9ucyA9ICd2ZXJ0aWNhbCcsXG4gIG9uRmlsZUF0dGFjaCxcbiAgb25EZWxldGVBdHRhY2htZW50LFxuICBhdHRhY2htZW50cyA9IFtdLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBNQUlBSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3ZhbHVlVGV4dGFyZWEsIHNldFZhbHVlVGV4dGFyZWFdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0Rpc2FibGVkLCBzZXRJc0Rpc2FibGVkXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGFsUHJvcHMsIHNldE1vZGFsUHJvcHNdID0gdXNlU3RhdGUoe1xuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgZXhjbHVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZXhjZWVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZmlsZVNpemVzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuICB9KVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyB0b2dnbGVXZWJTZWFyY2gsIGlzV2ViU2VhcmNoQWN0aXZlLCB0b2dnbGVEZWVwU2VhcmNoLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBjb25zdCBoYW5kbGVXZWJTZWFyY2hUb2dnbGUgPSAoKSA9PiB7XG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ3NlYXJjaCcgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWVwU2VhcmNoVG9nZ2xlID0gKCkgPT4ge1xuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgaWYgKCFpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywgeyBvcHRpb246ICdkZWVwX3NlYXJjaCcgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVSZXNpemUgPSAoKSA9PiB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSBpbnB1dFJlZi5jdXJyZW50XG4gICAgaWYgKCF0ZXh0YXJlYSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gQWx0dXJhIG3DrW5pbWEgZXF1aXZhbGVudGUgYSB1bmEgbMOtbmVhXG4gICAgY29uc3QgbWluSGVpZ2h0ID0gMjIuMVxuICAgIGNvbnN0IG1heEhlaWdodCA9IDEyMi4xXG5cbiAgICAvLyBQYXJhIG1lZGlyIGNvcnJlY3RhbWVudGUgZWwgc2Nyb2xsSGVpZ2h0LCBuZWNlc2l0YW1vcyBxdWl0YXIgdGVtcG9yYWxtZW50ZSBsYXMgcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHByZXZpb3VzTWluSGVpZ2h0ID0gdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0XG4gICAgY29uc3QgcHJldmlvdXNNYXhIZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHRcblxuICAgIC8vIEVzdGFibGVjZXIgYWx0dXJhIGEgJ2F1dG8nIHkgcXVpdGFyIHRlbXBvcmFsbWVudGUgbWluLWhlaWdodCB5IG1heC1oZWlnaHQgcGFyYSBtZWRpciBjb3JyZWN0YW1lbnRlXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gJzBweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSdcblxuICAgIC8vIEZvcnphciByZWZsb3cgcGFyYSBxdWUgZWwgbmF2ZWdhZG9yIHJlY2FsY3VsZVxuICAgIHZvaWQgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0XG5cbiAgICAvLyBBaG9yYSBtZWRpciBlbCBzY3JvbGxIZWlnaHQgcmVhbCBzaW4gcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRleHRhcmVhLnNjcm9sbEhlaWdodFxuXG4gICAgLy8gQ2FsY3VsYXIgbGEgYWx0dXJhIGRlIHVuYSBsw61uZWEgdXNhbmRvIGxvcyBlc3RpbG9zIGNvbXB1dGFkb3NcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMCAvLyBGYWxsYmFjayBhIDIwcHggc2kgbm8gZXN0w6EgZGVmaW5pZG9cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApIHx8IDBcbiAgICBjb25zdCBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b20pIHx8IDBcbiAgICBjb25zdCBib3JkZXJUb3AgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgpIHx8IDBcbiAgICBjb25zdCBib3JkZXJCb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyQm90dG9tV2lkdGgpIHx8IDBcblxuICAgIC8vIEFsdHVyYSBkZSB1bmEgbMOtbmVhIGNvbXBsZXRhIChsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gICAgY29uc3Qgc2luZ2xlTGluZUhlaWdodCA9IGxpbmVIZWlnaHQgKyBwYWRkaW5nVG9wICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlclRvcCArIGJvcmRlckJvdHRvbVxuXG4gICAgY29uc3QgaXNFbXB0eSA9IHRleHRhcmVhLnZhbHVlLnRyaW0oKSA9PT0gJydcblxuICAgIC8vIE1lZGlyIGVsIGFuY2hvIGRlbCB0ZXh0byB1c2FuZG8gQ2FudmFzIHBhcmEgZGV0ZXJtaW5hciBzaSBzZSBlbnZ1ZWx2ZSBhIG3Dumx0aXBsZXMgbMOtbmVhc1xuICAgIGxldCBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gZmFsc2VcblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIC8vIEZhbGxiYWNrIHNpIENhbnZhcyBubyBlc3TDoSBkaXNwb25pYmxlOiB1c2FyIHNjcm9sbEhlaWdodFxuICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHNjcm9sbEhlaWdodCA+IHNpbmdsZUxpbmVIZWlnaHQgKiAxLjVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGV4dGFyZWFTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICAgIGNvbnRleHQuZm9udCA9IGAke3RleHRhcmVhU3R5bGVzLmZvbnRXZWlnaHR9ICR7dGV4dGFyZWFTdHlsZXMuZm9udFNpemV9ICR7dGV4dGFyZWFTdHlsZXMuZm9udEZhbWlseX1gXG5cbiAgICAgIC8vIENhbGN1bGFyIGVsIGFuY2hvIGRpc3BvbmlibGUgKGFuY2hvIHRvdGFsIG1lbm9zIHBhZGRpbmcgaXpxdWllcmRvL2RlcmVjaG8geSBib3JkZXIgaXpxdWllcmRvL2RlcmVjaG8pXG4gICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCkgfHwgMFxuICAgICAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCkgfHwgMFxuICAgICAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IGJvcmRlclJpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclJpZ2h0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IHRleHRhcmVhV2lkdGggPSB0ZXh0YXJlYS5vZmZzZXRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0IC0gYm9yZGVyTGVmdCAtIGJvcmRlclJpZ2h0XG4gICAgICBjb25zdCB0ZXh0ID0gdGV4dGFyZWEudmFsdWUgfHwgJydcbiAgICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJylcblxuICAgICAgLy8gU2kgaGF5IG3Dumx0aXBsZXMgbMOtbmVhcyBwb3Igc2FsdG9zIGRlIGzDrW5lYSBleHBsw61jaXRvc1xuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB0ZXh0byBzZSBlbnZ1ZWx2ZSBtaWRpZW5kbyBlbCBhbmNobyBkZSBjYWRhIGzDrW5lYVxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuICAgICAgICAgIGNvbnN0IHRleHRXaWR0aCA9IGNvbnRleHQubWVhc3VyZVRleHQobGluZSkud2lkdGhcbiAgICAgICAgICAvLyBTaSBhbGd1bmEgbMOtbmVhIGVzIG3DoXMgYW5jaGEgcXVlIGVsIHRleHRhcmVhIGRpc3BvbmlibGUsIHNlIGVudnVlbHZlXG4gICAgICAgICAgaWYgKHRleHRXaWR0aCA+IHRleHRhcmVhV2lkdGgpIHtcbiAgICAgICAgICAgIGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlclxuICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAvLyBDdWFuZG8gZXN0w6EgdmFjw61vLCB1c2FyIGFsdHVyYSBtw61uaW1hXG4gICAgICBuZXdIZWlnaHQgPSBtaW5IZWlnaHRcbiAgICB9IGVsc2UgaWYgKCFoYXNNdWx0aXBsZVZpc3VhbExpbmVzKSB7XG4gICAgICAvLyBDdWFuZG8gaGF5IGNvbnRlbmlkbyBwZXJvIHNvbG8gdW5hIGzDrW5lYSB2aXN1YWwsIHVzYXIgYWx0dXJhIG3DrW5pbWFcbiAgICAgIG5ld0hlaWdodCA9IG1pbkhlaWdodFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQYXJhIG3Dumx0aXBsZXMgbMOtbmVhcyB2aXN1YWxlcywgdXNhciBlbCBzY3JvbGxIZWlnaHRcbiAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KHNjcm9sbEhlaWdodCwgbWluSGVpZ2h0KSwgbWF4SGVpZ2h0KVxuICAgIH1cblxuICAgIC8vIFJlc3RhdXJhciBlc3RpbG9zIGFudGVzIGRlIGFwbGljYXIgbGEgbnVldmEgYWx0dXJhXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gcHJldmlvdXNNaW5IZWlnaHQgfHwgJzIyLjFweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSBwcmV2aW91c01heEhlaWdodCB8fCAnMTIyLjFweCdcblxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGBcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQgJiYgIWRpc2FibGVkKSB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKClcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIC8vIEF1dG8tZm9jdXMgY3VhbmRvIGNhbWJpYSBlbCBhZ2VudGUgbyBsYSBjb252ZXJzYWNpw7NuLCBvIGFsIG1vbnRhciBlbCBjb21wb25lbnRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ29tcGFyYWNpw7NuIHF1ZSBtYW5lamEgY29ycmVjdGFtZW50ZSB1bmRlZmluZWQvbnVsbFxuICAgIGNvbnN0IGFnZW50Q2hhbmdlZCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ICE9PSBhZ2VudD8uaWRcbiAgICAvLyBDb21wYXJhY2nDs24gZXN0cmljdGEgcXVlIGRldGVjdGEgY2FtYmlvcyBpbmNsdXNvIGN1YW5kbyB1bm8gZXMgdW5kZWZpbmVkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICAvLyBEZXRlY3RhciBjYW1iaW8gZXNwZWPDrWZpY28gZGUgdW5kZWZpbmVkL251bGwgYSB1biB2YWxvciAobnVldm8gY2hhdCAtPiBjb252ZXJzYWNpw7NuIHZpZWphKVxuICAgIGNvbnN0IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA9XG4gICAgICAocHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0NoYXRJZCA9PT0gbnVsbCkgJiYgY3VycmVudENoYXRJZCAhPT0gdW5kZWZpbmVkICYmIGN1cnJlbnRDaGF0SWQgIT09IG51bGxcbiAgICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ICE9PSBuZXdDaGF0S2V5XG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZFxuXG4gICAgaWYgKFxuICAgICAgKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpICYmXG4gICAgICBpbnB1dFJlZi5jdXJyZW50ICYmXG4gICAgICAhZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIC8vIFVzYXIgc2V0VGltZW91dCBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgbGlzdG9cbiAgICAgIC8vIEF1bWVudGFyIGVsIGRlbGF5IHBhcmEgY2Fzb3MgZG9uZGUgZWwgY29tcG9uZW50ZSBzZSBlc3TDoSBtb250YW5kb1xuICAgICAgY29uc3QgZGVsYXkgPSBpc0luaXRpYWxNb3VudCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPyAyMDAgOiAxMDBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKClcbiAgICAgICAgfVxuICAgICAgfSwgZGVsYXkpXG4gICAgfVxuXG4gICAgLy8gQWN0dWFsaXphciBsYXMgcmVmZXJlbmNpYXMgREVTUFXDiVMgZGUgbGEgY29tcGFyYWNpw7NuXG4gICAgcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPSBhZ2VudD8uaWRcbiAgICBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID0gY2hhdElkXG4gICAgcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgPSBuZXdDaGF0S2V5XG4gIH0sIFthZ2VudD8uaWQsIGNoYXRJZCwgbmV3Q2hhdEtleSwgZGlzYWJsZWRdKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICAgIH1cbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH0pXG5cbiAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWVJZClcbiAgfSwgW3ZhbHVlVGV4dGFyZWFdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFzVGV4dCA9IHZhbHVlVGV4dGFyZWEudHJpbSgpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgfSwgW2F0dGFjaG1lbnRzLCB2YWx1ZVRleHRhcmVhXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9ICgpID0+IHtcbiAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgb25TZW5kTWVzc2FnZShpbnB1dFJlZi5jdXJyZW50LnZhbHVlLCBhdHRhY2htZW50cylcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCkge1xuICAgICAgb25TZW5kTWVzc2FnZSgnJywgYXR0YWNobWVudHMpXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBpZiAoIWlzRGlzYWJsZWQgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIGhhbmRsZVNlbmRNZXNzYWdlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gZS50YXJnZXQudmFsdWUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgICBzZXRWYWx1ZVRleHRhcmVhKGUudGFyZ2V0LnZhbHVlKVxuICAgIG9uQ2hhbmdlPy4oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGFzdGUgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gaW5wdXRSZWYuY3VycmVudD8udmFsdWUgPz8gJydcbiAgICAgIGNvbnN0IGhhc1RleHQgPSBjdXJyZW50VmFsdWUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgICAgc2V0VmFsdWVUZXh0YXJlYShjdXJyZW50VmFsdWUpXG4gICAgICBzZXRJc0Rpc2FibGVkKCFoYXNUZXh0ICYmICFoYXNBdHRhY2htZW50cylcbiAgICB9LCAxMClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gNSkge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzT2xkRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgZm9ybWF0b3MgYW50ZXJpb3JlczogaGFzdGEgMU1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBdWRpb0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGFyY2hpdm9zIGRlIGF1ZGlvOiBoYXN0YSAxME1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX0FVRElPICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBzZXRJc0Rpc2FibGVkKGZhbHNlKVxuICAgIGlmIChleGNsdWRlZEZpbGVzLmxlbmd0aCB8fCBleGNlZWRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogdHJ1ZSwgZXhjbHVkZWRGaWxlcywgZXhjZWVkZWRGaWxlcywgZmlsZVNpemVzIH0pXG4gICAgfVxuXG4gICAgaWYgKGZpbGVJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBmaWxlSW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQXR0YWNoQ2xpY2sgPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7IG9wdGlvbjogJ2ZpbGVzJyB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gNSkgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSB2YWx1ZVRleHRhcmVhLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgaGFzSGVhZGVyQnV0dG9ucyA9ICFpc01BSUFcblxuICBjb25zdCBpY29uQ29sb3JJbmFjdGl2ZSA9IGlzRm9jdXNlZCA/ICcjNjY2NjY2JyA6ICcjOTk5J1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICA+XG4gICAgICAgIHshIWF0dGFjaG1lbnRzLmxlbmd0aCAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogJzEycHgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBhdHRhY2htZW50Lm5hbWUuc3BsaXQoJy4nKVxuICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGF0dGFjaG1lbnQudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnQubmFtZX0ga2V5PXtgJHtpbmRleH0tJHthdHRhY2htZW50Lm5hbWV9YH0+XG4gICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnQgaXNJbWFnZT17aXNJbWFnZX0+XG4gICAgICAgICAgICAgICAgICAgIHthdHRhY2htZW50Lmljb259XG4gICAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudERlbGV0ZUljb24gb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlQXR0YWNobWVudChhdHRhY2htZW50LmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRyYXNoIGNvbG9yPVwicmdiYSgxOTEsIDE5MSwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudERlbGV0ZUljb24+XG4gICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRNQUlBSW5wdXRcbiAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAvPlxuICAgICAgICA8U3R5bGVkTUFJQUlucHV0QnV0dG9ucyBoYXNIZWFkZXJCdXR0b25zPXtoYXNIZWFkZXJCdXR0b25zfT5cbiAgICAgICAgICB7aGFzSGVhZGVyQnV0dG9ucyA/IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxMHB4JyB9fT5cbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnRzLmxlbmd0aCA+PSA1ID8gdCgnY2hhdC5saW1pdEZpbGVzJykgOiB0KCdjaGF0LmF0dGFjaEZpbGUnKX0+XG4gICAgICAgICAgICAgICAgPFNDTUlXcmFwcGVyQXR0YWNobWVudEJ1dHRvblxuICAgICAgICAgICAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgaXNNYXhpbWl6ZWQ9e2F0dGFjaG1lbnRzLmxlbmd0aCA+PSA1fVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQXR0YWNoQ2xpY2t9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEF0dGFjaFxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17IWF0dGFjaG1lbnRzLmxlbmd0aCA/IGljb25Db2xvckluYWN0aXZlIDogYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTh9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTh9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnNlYXJjaFdlYicpfT5cbiAgICAgICAgICAgICAgICA8U0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b25cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXshIWlzV2ViU2VhcmNoQWN0aXZlfVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlV2ViU2VhcmNoVG9nZ2xlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxHbG9iZVxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWAgOiBpY29uQ29sb3JJbmFjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE4fVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE4fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LmRlZXBTZWFyY2gnKX0+XG4gICAgICAgICAgICAgICAgPFNDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvblxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9eyEhaXNEZWVwU2VhcmNoQWN0aXZlfVxuICAgICAgICAgICAgICAgICAgJGlzRm9jdXNlZD17aXNGb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRGVlcFNlYXJjaFRvZ2dsZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNEZWVwU2VhcmNoQWN0aXZlID8gYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gIDogaWNvbkNvbG9ySW5hY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxOH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxOH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnN0b3AnKX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wSWNvbiAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTdG9wQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17aXNTdHJlYW1pbmcgPyB0KCdjaGF0LnNlbmQnKSA6IHQoJ2NoYXQuc2VuZCcpfT5cbiAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTZW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWQgfHwgZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgaGFzVmFsdWVzPXshIXZhbHVlVGV4dGFyZWEubGVuZ3RofVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhcGVyUGxhbmUgY29sb3I9XCIjQkZCRkJGXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkTUFJQUlucHV0QnV0dG9ucz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgYWNjZXB0PVwiLnR4dCwubWQsLmNzdiwuZG9jLC5kb2N4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRNQUlBSW5wdXRXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiBmYWxzZSwgZXhjbHVkZWRGaWxlczogW10sIGV4Y2VlZGVkRmlsZXM6IFtdLCBmaWxlU2l6ZXM6IHt9IH0pfVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjbHVkZWRGaWxlc31cbiAgICAgICAgICBleGNlZWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2VlZGVkRmlsZXN9XG4gICAgICAgICAgZmlsZVNpemVzPXttb2RhbFByb3BzLmZpbGVTaXplc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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
|
|
@@ -27,6 +27,4 @@ export { AgentMaiaIcon } from './AgentMaiaIcon';
|
|
|
27
27
|
export { FaqsIcon } from './FaqsIcon';
|
|
28
28
|
export { MAIAIcon } from './MAIAIcon';
|
|
29
29
|
export { MAIAIsologo } from './MAIAIsologo';
|
|
30
|
-
|
|
31
|
-
export { MyAgentsNavIcon } from './MyAgentsNavIcon';
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkNzdkZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiQWFjRmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkFjY2Vzc2liaWxpdHlJY29uIiwiQnJhaW5JY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiTUFJQUljb24iLCJNQUlBSXNvbG9nbyIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pY29ucy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBSUljb24gfSBmcm9tICcuL0FJSWNvbidcbmV4cG9ydCB7IEVycm9yU3RhdGUgfSBmcm9tICcuL0Vycm9yU3RhdGUnXG5leHBvcnQgeyBDb3JMb2dvIH0gZnJvbSAnLi9Db3JMb2dvJ1xuZXhwb3J0IHsgSG9tZUljb24gfSBmcm9tICcuL0hvbWVJY29uJ1xuZXhwb3J0IHsgTmV3Q2hhdCB9IGZyb20gJy4vTmV3Q2hhdCdcbmV4cG9ydCB7IERvY0ZpbGVJY29uIH0gZnJvbSAnLi9Eb2NGaWxlJ1xuZXhwb3J0IHsgRG9jeEZpbGVJY29uIH0gZnJvbSAnLi9Eb2N4RmlsZSdcbmV4cG9ydCB7IE1ERmlsZUljb24gfSBmcm9tICcuL01ERmlsZSdcbmV4cG9ydCB7IENzdkZpbGVJY29uIH0gZnJvbSAnLi9Dc3ZGaWxlJ1xuZXhwb3J0IHsgVGV4dEZpbGVJY29uIH0gZnJvbSAnLi9UZXh0RmlsZSdcbmV4cG9ydCB7IFBkZkZpbGVJY29uIH0gZnJvbSAnLi9QZGZGaWxlJ1xuZXhwb3J0IHsgSW1hZ2VGaWxlSWNvbiB9IGZyb20gJy4vSW1hZ2VGaWxlJ1xuZXhwb3J0IHsgWGxzeEZpbGVJY29uIH0gZnJvbSAnLi9YbHN4RmlsZSdcbmV4cG9ydCB7IFhsc0ZpbGVJY29uIH0gZnJvbSAnLi9YbHNGaWxlJ1xuZXhwb3J0IHsgTXAzRmlsZUljb24gfSBmcm9tICcuL01wM0ZpbGUnXG5leHBvcnQgeyBXYXZGaWxlSWNvbiB9IGZyb20gJy4vV2F2RmlsZSdcbmV4cG9ydCB7IEFhY0ZpbGVJY29uIH0gZnJvbSAnLi9BYWNGaWxlJ1xuZXhwb3J0IHsgRmxhY0ZpbGVJY29uIH0gZnJvbSAnLi9GbGFjSWNvbidcbmV4cG9ydCB7IE00YUZpbGVJY29uIH0gZnJvbSAnLi9NNGFGaWxlJ1xuZXhwb3J0IHsgTXA0RmlsZUljb24gfSBmcm9tICcuL01wNEZpbGUnXG5leHBvcnQgeyBPZ2FGaWxlSWNvbiB9IGZyb20gJy4vT2dhRmlsZSdcbmV4cG9ydCB7IE9nZ0ZpbGVJY29uIH0gZnJvbSAnLi9PZ2dGaWxlJ1xuZXhwb3J0IHsgV2VibUZpbGVJY29uIH0gZnJvbSAnLi9XZWJtRmlsZSdcbmV4cG9ydCB7IEFjY2Vzc2liaWxpdHlJY29uIH0gZnJvbSAnLi9BY2Nlc3NpYmlsaXR5SWNvbidcbmV4cG9ydCB7IEJyYWluSWNvbiB9IGZyb20gJy4vQnJhaW4nXG5leHBvcnQgeyBBZ2VudE1haWFJY29uIH0gZnJvbSAnLi9BZ2VudE1haWFJY29uJ1xuZXhwb3J0IHsgRmFxc0ljb24gfSBmcm9tICcuL0ZhcXNJY29uJ1xuZXhwb3J0IHsgTUFJQUljb24gfSBmcm9tICcuL01BSUFJY29uJ1xuZXhwb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuL01BSUFJc29sb2dvJ1xuZXhwb3J0IHsgTWFpYVN0b3JlSWNvbiB9IGZyb20gJy4vTWFpYVN0b3JlSWNvbidcbmV4cG9ydCB7IE15QWdlbnRzTmF2SWNvbiB9IGZyb20gJy4vTXlBZ2VudHNOYXZJY29uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsVUFBVTtBQUNqQyxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUN6QyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxPQUFPLFFBQVEsV0FBVztBQUNuQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxVQUFVLFFBQVEsVUFBVTtBQUNyQyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxhQUFhLFFBQVEsYUFBYTtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxXQUFXLFFBQVEsV0FBVztBQUN2QyxTQUFTQyxZQUFZLFFBQVEsWUFBWTtBQUN6QyxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFDdkQsU0FBU0MsU0FBUyxRQUFRLFNBQVM7QUFDbkMsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLGVBQWUsUUFBUSxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSUljb24iLCJFcnJvclN0YXRlIiwiQ29yTG9nbyIsIkhvbWVJY29uIiwiTmV3Q2hhdCIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkNzdkZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiQWFjRmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkFjY2Vzc2liaWxpdHlJY29uIiwiQnJhaW5JY29uIiwiQWdlbnRNYWlhSWNvbiIsIkZhcXNJY29uIiwiTUFJQUljb24iLCJNQUlBSXNvbG9nbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL2ljb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vQUlJY29uJ1xuZXhwb3J0IHsgRXJyb3JTdGF0ZSB9IGZyb20gJy4vRXJyb3JTdGF0ZSdcbmV4cG9ydCB7IENvckxvZ28gfSBmcm9tICcuL0NvckxvZ28nXG5leHBvcnQgeyBIb21lSWNvbiB9IGZyb20gJy4vSG9tZUljb24nXG5leHBvcnQgeyBOZXdDaGF0IH0gZnJvbSAnLi9OZXdDaGF0J1xuZXhwb3J0IHsgRG9jRmlsZUljb24gfSBmcm9tICcuL0RvY0ZpbGUnXG5leHBvcnQgeyBEb2N4RmlsZUljb24gfSBmcm9tICcuL0RvY3hGaWxlJ1xuZXhwb3J0IHsgTURGaWxlSWNvbiB9IGZyb20gJy4vTURGaWxlJ1xuZXhwb3J0IHsgQ3N2RmlsZUljb24gfSBmcm9tICcuL0NzdkZpbGUnXG5leHBvcnQgeyBUZXh0RmlsZUljb24gfSBmcm9tICcuL1RleHRGaWxlJ1xuZXhwb3J0IHsgUGRmRmlsZUljb24gfSBmcm9tICcuL1BkZkZpbGUnXG5leHBvcnQgeyBJbWFnZUZpbGVJY29uIH0gZnJvbSAnLi9JbWFnZUZpbGUnXG5leHBvcnQgeyBYbHN4RmlsZUljb24gfSBmcm9tICcuL1hsc3hGaWxlJ1xuZXhwb3J0IHsgWGxzRmlsZUljb24gfSBmcm9tICcuL1hsc0ZpbGUnXG5leHBvcnQgeyBNcDNGaWxlSWNvbiB9IGZyb20gJy4vTXAzRmlsZSdcbmV4cG9ydCB7IFdhdkZpbGVJY29uIH0gZnJvbSAnLi9XYXZGaWxlJ1xuZXhwb3J0IHsgQWFjRmlsZUljb24gfSBmcm9tICcuL0FhY0ZpbGUnXG5leHBvcnQgeyBGbGFjRmlsZUljb24gfSBmcm9tICcuL0ZsYWNJY29uJ1xuZXhwb3J0IHsgTTRhRmlsZUljb24gfSBmcm9tICcuL000YUZpbGUnXG5leHBvcnQgeyBNcDRGaWxlSWNvbiB9IGZyb20gJy4vTXA0RmlsZSdcbmV4cG9ydCB7IE9nYUZpbGVJY29uIH0gZnJvbSAnLi9PZ2FGaWxlJ1xuZXhwb3J0IHsgT2dnRmlsZUljb24gfSBmcm9tICcuL09nZ0ZpbGUnXG5leHBvcnQgeyBXZWJtRmlsZUljb24gfSBmcm9tICcuL1dlYm1GaWxlJ1xuZXhwb3J0IHsgQWNjZXNzaWJpbGl0eUljb24gfSBmcm9tICcuL0FjY2Vzc2liaWxpdHlJY29uJ1xuZXhwb3J0IHsgQnJhaW5JY29uIH0gZnJvbSAnLi9CcmFpbidcbmV4cG9ydCB7IEFnZW50TWFpYUljb24gfSBmcm9tICcuL0FnZW50TWFpYUljb24nXG5leHBvcnQgeyBGYXFzSWNvbiB9IGZyb20gJy4vRmFxc0ljb24nXG5leHBvcnQgeyBNQUlBSWNvbiB9IGZyb20gJy4vTUFJQUljb24nXG5leHBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4vTUFJQUlzb2xvZ28nXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxXQUFXO0FBQ25DLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLGFBQWEsUUFBUSxhQUFhO0FBQzNDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLFlBQVksUUFBUSxZQUFZO0FBQ3pDLFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxTQUFTLFFBQVEsU0FBUztBQUNuQyxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxlQUFlIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -8,7 +8,6 @@ import { ChatAIProjectSelector } from '../ChatAIProjectSelector';
|
|
|
8
8
|
import { ChatAIClientSelector } from '../ChatAIClientSelector';
|
|
9
9
|
import { SCCAIContentWrapper } from './ChatAIContent.styles';
|
|
10
10
|
import { ChatAIMessages } from '../ChatAIMessages';
|
|
11
|
-
import { ChatAIMyAgents } from '../ChatAIMyAgents/ChatAIMyAgents';
|
|
12
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
12
|
export var ChatAIContent = function ChatAIContent(_ref) {
|
|
14
13
|
var currentOption = _ref.currentOption,
|
|
@@ -17,13 +16,8 @@ export var ChatAIContent = function ChatAIContent(_ref) {
|
|
|
17
16
|
refs = _ref.refs,
|
|
18
17
|
onSendMessageReady = _ref.onSendMessageReady,
|
|
19
18
|
expanded = _ref.expanded,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
onFavoriteAgentUpdate = _ref.onFavoriteAgentUpdate,
|
|
23
|
-
hasMoreAgents = _ref.hasMoreAgents,
|
|
24
|
-
loadingMoreAgents = _ref.loadingMoreAgents,
|
|
25
|
-
onLoadMoreAgents = _ref.onLoadMoreAgents,
|
|
26
|
-
onGoToMaiaker = _ref.onGoToMaiaker;
|
|
19
|
+
hasNoAgents = _ref.hasNoAgents,
|
|
20
|
+
agents = _ref.agents;
|
|
27
21
|
if (currentOption === options.chat) {
|
|
28
22
|
return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
|
|
29
23
|
children: /*#__PURE__*/_jsx(ChatAIMessages, {
|
|
@@ -58,26 +52,13 @@ export var ChatAIContent = function ChatAIContent(_ref) {
|
|
|
58
52
|
})
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
|
-
if (currentOption === options.myAgents) {
|
|
62
|
-
return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
|
|
63
|
-
children: /*#__PURE__*/_jsx(ChatAIMyAgents, {
|
|
64
|
-
onBack: handlers.home,
|
|
65
|
-
agents: agents || [],
|
|
66
|
-
onDeleteAgent: onDeleteAgent,
|
|
67
|
-
onFavoriteAgentUpdate: onFavoriteAgentUpdate,
|
|
68
|
-
hasMoreAgents: hasMoreAgents,
|
|
69
|
-
loadingMoreAgents: loadingMoreAgents,
|
|
70
|
-
onLoadMoreAgents: onLoadMoreAgents,
|
|
71
|
-
onGoToMaiaker: onGoToMaiaker
|
|
72
|
-
})
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
55
|
return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
|
|
76
56
|
children: /*#__PURE__*/_jsx(ChatAIHome, {
|
|
77
57
|
handlers: handlers,
|
|
78
58
|
onStartChat: handlers.chat,
|
|
79
|
-
expanded: expanded
|
|
59
|
+
expanded: expanded,
|
|
60
|
+
hasNoAgents: hasNoAgents
|
|
80
61
|
})
|
|
81
62
|
});
|
|
82
63
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNoYXRBSUhvbWUiLCJQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJvcHRpb25zIiwiQ2hhdEFJUHJvamVjdFNlbGVjdG9yIiwiQ2hhdEFJQ2xpZW50U2VsZWN0b3IiLCJTQ0NBSUNvbnRlbnRXcmFwcGVyIiwiQ2hhdEFJTWVzc2FnZXMiLCJqc3giLCJfanN4IiwiQ2hhdEFJQ29udGVudCIsIl9yZWYiLCJjdXJyZW50T3B0aW9uIiwiaGFuZGxlcnMiLCJvbkVycm9yIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsImV4cGFuZGVkIiwiaGFzTm9BZ2VudHMiLCJhZ2VudHMiLCJjaGF0IiwiY2hpbGRyZW4iLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJpbml0aWFsQ2hhdElkIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0U3VtbWFyeSIsIm9uUmVzdGFydFN1bW1hcnkiLCJob21lIiwicHJvamVjdFNlbGVjdG9yIiwiaGFuZGxlR29Ib21lIiwiY2xpZW50U2VsZWN0b3IiLCJvblN0YXJ0Q2hhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlDb250ZW50L0NoYXRBSUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGF0QUlIb21lIH0gZnJvbSAnLi4vQ2hhdEFJSG9tZSdcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJUHJvamVjdFNlbGVjdG9yIH0gZnJvbSAnLi4vQ2hhdEFJUHJvamVjdFNlbGVjdG9yJ1xuaW1wb3J0IHsgQ2hhdEFJQ2xpZW50U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlDbGllbnRTZWxlY3RvcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBTQ0NBSUNvbnRlbnRXcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlDb250ZW50LnN0eWxlcydcbmltcG9ydCB7IENoYXRBSU1lc3NhZ2VzIH0gZnJvbSAnLi4vQ2hhdEFJTWVzc2FnZXMnXG5cbnR5cGUgQ2hhdEFJQ29udGVudFByb3BzID0ge1xuICBjdXJyZW50T3B0aW9uOiBvcHRpb25zXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKHZhbHVlPzogYW55KSA9PiB2b2lkPiAmIHtcbiAgICBjaGF0OiAobWVzc2FnZT86IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICAgIHN0YXJ0Q2hhdD86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWRcbiAgICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbiAgfVxuICBvbkVycm9yOiAoKSA9PiB2b2lkXG4gIHJlZnM6IHtcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICAgIGluaXRpYWxDaGF0SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBvblNlbmRNZXNzYWdlUmVhZHk/OiAoXG4gICAgc2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQsXG4gICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgaXNTdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgaXNXcml0aW5nOiBib29sZWFuXG4gICkgPT4gdm9pZFxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgaGFzTm9BZ2VudHM/OiBib29sZWFuXG4gIGFnZW50cz86IEFnZW50W11cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUNvbnRlbnQgPSAoe1xuICBjdXJyZW50T3B0aW9uLFxuICBoYW5kbGVycyxcbiAgb25FcnJvcixcbiAgcmVmcyxcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBleHBhbmRlZCxcbiAgaGFzTm9BZ2VudHMsXG4gIGFnZW50cyxcbn06IENoYXRBSUNvbnRlbnRQcm9wcykgPT4ge1xuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8Q2hhdEFJTWVzc2FnZXNcbiAgICAgICAgICB1c2VySW5pdGlhbE1lc3NhZ2U9e3JlZnMudXNlckluaXRpYWxNZXNzYWdlfVxuICAgICAgICAgIGluaXRpYWxDaGF0SWQ9e3JlZnMuaW5pdGlhbENoYXRJZH1cbiAgICAgICAgICBvbkVycm9yPXtvbkVycm9yfVxuICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17b25TZW5kTWVzc2FnZVJlYWR5fVxuICAgICAgICAgIGF0dGFjaG1lbnRzPXtyZWZzLnVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50c31cbiAgICAgICAgICBhZ2VudHM9e2FnZW50c31cbiAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMucHJvamVjdFN1bW1hcnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3IpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICAgIDxDaGF0QUlQcm9qZWN0U2VsZWN0b3IgaGFuZGxlcnM9e2hhbmRsZXJzLmhhbmRsZUdvSG9tZX0gLz5cbiAgICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jbGllbnRTZWxlY3Rvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgICAgPENoYXRBSUNsaWVudFNlbGVjdG9yIGhhbmRsZXJzPXtoYW5kbGVycy5oYW5kbGVHb0hvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgIDxDaGF0QUlIb21lIGhhbmRsZXJzPXtoYW5kbGVyc30gb25TdGFydENoYXQ9e2hhbmRsZXJzLmNoYXR9IGV4cGFuZGVkPXtleHBhbmRlZH0gaGFzTm9BZ2VudHM9e2hhc05vQWdlbnRzfSAvPlxuICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLE9BQU8sUUFBUSwwQkFBMEI7QUFFbEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUU5RCxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU0MsY0FBYyxRQUFRLG1CQUFtQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQXlCbEQsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUFDLElBQUEsRUFTQTtFQUFBLElBUnhCQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtJQUNiQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtJQUNSQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUNQQyxJQUFJLEdBQUFKLElBQUEsQ0FBSkksSUFBSTtJQUNKQyxrQkFBa0IsR0FBQUwsSUFBQSxDQUFsQkssa0JBQWtCO0lBQ2xCQyxRQUFRLEdBQUFOLElBQUEsQ0FBUk0sUUFBUTtJQUNSQyxXQUFXLEdBQUFQLElBQUEsQ0FBWE8sV0FBVztJQUNYQyxNQUFNLEdBQUFSLElBQUEsQ0FBTlEsTUFBTTtFQUVOLElBQUlQLGFBQWEsS0FBS1QsT0FBTyxDQUFDaUIsSUFBSSxFQUFFO0lBQ2xDLG9CQUNFWCxJQUFBLENBQUNILG1CQUFtQjtNQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNGLGNBQWM7UUFDYmUsa0JBQWtCLEVBQUVQLElBQUksQ0FBQ08sa0JBQW1CO1FBQzVDQyxhQUFhLEVBQUVSLElBQUksQ0FBQ1EsYUFBYztRQUNsQ1QsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCRSxrQkFBa0IsRUFBRUEsa0JBQW1CO1FBQ3ZDUSxXQUFXLEVBQUVULElBQUksQ0FBQ08sa0JBQWtCLENBQUNFLFdBQVk7UUFDakRMLE1BQU0sRUFBRUEsTUFBTztRQUNmRixRQUFRLEVBQUVBO01BQVMsQ0FDcEI7SUFBQyxDQUNpQixDQUFDO0VBRTFCO0VBRUEsSUFBSUwsYUFBYSxLQUFLVCxPQUFPLENBQUNzQixjQUFjLEVBQUU7SUFDNUMsb0JBQ0VoQixJQUFBLENBQUNILG1CQUFtQjtNQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNQLHFCQUFxQjtRQUFDd0IsZ0JBQWdCLEVBQUViLFFBQVEsQ0FBQ2M7TUFBSyxDQUFFO0lBQUMsQ0FDdkMsQ0FBQztFQUUxQjtFQUVBLElBQUlmLGFBQWEsS0FBS1QsT0FBTyxDQUFDeUIsZUFBZSxFQUFFO0lBQzdDLG9CQUNFbkIsSUFBQSxDQUFDSCxtQkFBbUI7TUFBQWUsUUFBQSxlQUNsQlosSUFBQSxDQUFDTCxxQkFBcUI7UUFBQ1MsUUFBUSxFQUFFQSxRQUFRLENBQUNnQjtNQUFhLENBQUU7SUFBQyxDQUN2QyxDQUFDO0VBRTFCO0VBRUEsSUFBSWpCLGFBQWEsS0FBS1QsT0FBTyxDQUFDMkIsY0FBYyxFQUFFO0lBQzVDLG9CQUNFckIsSUFBQSxDQUFDSCxtQkFBbUI7TUFBQWUsUUFBQSxlQUNsQlosSUFBQSxDQUFDSixvQkFBb0I7UUFBQ1EsUUFBUSxFQUFFQSxRQUFRLENBQUNnQjtNQUFhLENBQUU7SUFBQyxDQUN0QyxDQUFDO0VBRTFCO0VBRUEsb0JBQ0VwQixJQUFBLENBQUNILG1CQUFtQjtJQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNSLFVBQVU7TUFBQ1ksUUFBUSxFQUFFQSxRQUFTO01BQUNrQixXQUFXLEVBQUVsQixRQUFRLENBQUNPLElBQUs7TUFBQ0gsUUFBUSxFQUFFQSxRQUFTO01BQUNDLFdBQVcsRUFBRUE7SUFBWSxDQUFFO0VBQUMsQ0FDekYsQ0FBQztBQUUxQixDQUFDIiwiaWdub3JlTGlzdCI6W119
|