@projectcor/maia-components 2.38.1 → 2.38.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +784 -0
- package/lib/components/atoms/ActionableButton.js +1 -6
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
- package/lib/components/atoms/Chip/Chip.spec.js +32 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
- package/lib/components/atoms/Fade/Fade.spec.js +31 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -14
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +3 -12
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -29
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +300 -0
- package/lib/components/atoms/MAIAInput/styles.js +29 -36
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +3 -3
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +2 -2
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
- package/lib/components/atoms/Switch/Switch.spec.js +41 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
- package/lib/components/molecules/ChatAIHome/styles.js +2 -11
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +2 -7
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -18
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -13
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +10 -34
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +6 -14
- package/lib/components/molecules/ChatFooter/ChatFooter.js +45 -66
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +105 -0
- package/lib/components/molecules/ChatFooter/styles.js +6 -12
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +5 -15
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +208 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +11 -30
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +18 -31
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +19 -40
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +315 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +2 -2
- package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
- package/lib/constants/permissions/utils.spec.js +34 -0
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
- package/lib/hooks/useCaretPosition.spec.js +58 -0
- package/lib/hooks/useChatManager/useChatManager.js +34 -55
- package/lib/hooks/useDebounce.spec.js +42 -0
- package/lib/hooks/useEvent.spec.js +40 -0
- package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
- package/lib/hooks/useModal/useModal.spec.js +73 -0
- package/lib/hooks/useResize.spec.js +37 -0
- package/lib/hooks/useSkillsCatalog.spec.js +88 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
- package/lib/hooks/useT.spec.js +20 -0
- package/lib/hooks/useToggle.spec.js +33 -0
- package/lib/lang/br/index.js +2 -6
- package/lib/lang/en/index.js +2 -6
- package/lib/lang/es/index.js +2 -6
- package/lib/lang/fr/index.js +3 -7
- package/lib/lib/utils.js +9 -0
- package/lib/services/maia/Access/updateAccess.spec.js +108 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
- package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
- package/lib/services/maia/Agents/createAgent.spec.js +55 -0
- package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
- package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
- package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
- package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
- package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
- package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
- package/lib/services/maia/Chats/patchChat.spec.js +41 -0
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
- package/lib/services/maia/Knowledge/delete.spec.js +45 -0
- package/lib/services/maia/Knowledge/download.spec.js +78 -0
- package/lib/services/maia/Knowledge/save.spec.js +58 -0
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
- package/lib/services/maia/Skills/createSkill.spec.js +68 -0
- package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
- package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
- package/lib/services/maia/Skills/getSkills.spec.js +152 -0
- package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
- package/lib/services/maia/client.spec.js +56 -0
- package/lib/services/maia/index.js +2 -4
- package/lib/services/utils/fetchCOR.js +57 -106
- package/lib/services/utils/fetchCOR.spec.js +211 -0
- package/lib/services/utils/getCookie.spec.js +20 -0
- package/lib/services/utils/index.js +1 -2
- package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
- package/lib/store/index.js +1 -2
- package/lib/store/maiaLastChatPersistence.spec.js +22 -0
- package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
- package/lib/store/sessions/sessionStreamManager.js +35 -70
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/store/sessions/sessions.types.spec.js +16 -0
- package/lib/store/sessions/useSessionsStore.spec.js +135 -0
- package/lib/store/useChatsStore.spec.js +619 -0
- package/lib/store/useFaqsStore.spec.js +57 -0
- package/lib/utils/agentDisplayName.spec.js +44 -0
- package/lib/utils/autoApproveStorage.spec.js +25 -0
- package/lib/utils/chatInputFiles.spec.js +39 -0
- package/lib/utils/contextMentionLabel.spec.js +13 -0
- package/lib/utils/contextMentionTriggers.spec.js +38 -0
- package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
- package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
- package/lib/utils/fileDownloadHelper.spec.js +67 -0
- package/lib/utils/formatQuickActionMessage.spec.js +27 -0
- package/lib/utils/formatUnreadCount.spec.js +12 -0
- package/lib/utils/getUnitFileSize.spec.js +18 -0
- package/lib/utils/hitlAnalytics.spec.js +100 -0
- package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
- package/lib/utils/mapBackendLang.spec.js +19 -0
- package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
- package/lib/utils/orchestratorSubagents.spec.js +32 -0
- package/lib/utils/reasoningMappers.spec.js +103 -0
- package/lib/utils/retryCompletion.spec.js +99 -0
- package/lib/utils/skillContentSize.spec.js +13 -0
- package/lib/utils/slashCommandMarker.spec.js +43 -0
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
- package/lib/utils/sseStreamContent.spec.js +31 -0
- package/lib/utils/streamActivityMessages.spec.js +98 -0
- package/lib/utils/validateTrimmedFields.spec.js +26 -0
- package/package.json +1 -1
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -30
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
- package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
- package/lib/lang/__mocks__/index.js +0 -9
- package/lib/services/maia/Usage/getUsage.js +0 -45
- package/lib/services/maia/Usage/index.js +0 -6
- package/lib/services/utils/MaiaApiError.js +0 -34
- package/lib/store/useUsageStore.js +0 -115
- package/lib/types/usage.js +0 -16
- package/lib/utils/usageBlockedMessage.js +0 -11
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
|
|
3
|
+
import { GlobalContextTestProvider } from '../../../test/global-context';
|
|
4
|
+
import { MAIAInput } from './MAIAInput';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
var insertSkillMention = jest.fn();
|
|
7
|
+
jest.mock('../../../hooks/useEvent', function () {
|
|
8
|
+
return {
|
|
9
|
+
EVENTS: {
|
|
10
|
+
aiChatPlusOpen: 'AI_CHAT_PLUS_OPEN',
|
|
11
|
+
aiChatQuickActionOpen: 'AI_CHAT_QUICK_ACTION_OPEN',
|
|
12
|
+
aiChatSkillOpen: 'AI_CHAT_SKILL_OPEN',
|
|
13
|
+
aiChatSkillSelect: 'AI_CHAT_SKILL_SELECT',
|
|
14
|
+
aiChatSkillRemove: 'AI_CHAT_SKILL_REMOVE'
|
|
15
|
+
},
|
|
16
|
+
useEvent: function useEvent() {
|
|
17
|
+
return jest.fn();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
jest.mock('../../../context/cor-user', function () {
|
|
22
|
+
return {
|
|
23
|
+
CORUserRole: {
|
|
24
|
+
CLEVEL: 1,
|
|
25
|
+
DIRECTOR: 2,
|
|
26
|
+
PROJECT_MANAGER: 3,
|
|
27
|
+
COLLABORATOR: 4,
|
|
28
|
+
FREELANCER: 5,
|
|
29
|
+
CLIENT: 6
|
|
30
|
+
},
|
|
31
|
+
useUser: function useUser() {
|
|
32
|
+
return {
|
|
33
|
+
id: 99,
|
|
34
|
+
role_id: 3
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
var mockCanAccessToSkills = jest.fn(function () {
|
|
40
|
+
return true;
|
|
41
|
+
});
|
|
42
|
+
jest.mock('../../../constants/permissions', function () {
|
|
43
|
+
return {
|
|
44
|
+
canAccessToSkills: function canAccessToSkills() {
|
|
45
|
+
return mockCanAccessToSkills.apply(void 0, arguments);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
jest.mock('../../../hooks/useSkillsCatalog', function () {
|
|
50
|
+
return {
|
|
51
|
+
useSkillsCatalog: function useSkillsCatalog() {
|
|
52
|
+
return {
|
|
53
|
+
skills: [{
|
|
54
|
+
id: 'sk1',
|
|
55
|
+
name: 'Resumir',
|
|
56
|
+
description: 'Desc',
|
|
57
|
+
content: 'Resume'
|
|
58
|
+
}],
|
|
59
|
+
loading: false,
|
|
60
|
+
error: false,
|
|
61
|
+
fetchSkills: jest.fn()
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
jest.mock('../../../hooks/useSlashCommands', function () {
|
|
67
|
+
return {
|
|
68
|
+
useSlashCommands: function useSlashCommands() {
|
|
69
|
+
return {
|
|
70
|
+
commands: []
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
jest.mock('../../../hooks/useMentionPopover', function () {
|
|
76
|
+
return {
|
|
77
|
+
useMentionPopover: function useMentionPopover() {
|
|
78
|
+
return {
|
|
79
|
+
popoverOpen: false,
|
|
80
|
+
resetMentionOpenTracking: jest.fn(),
|
|
81
|
+
handleTrigger: jest.fn(),
|
|
82
|
+
handleKeyDown: function handleKeyDown() {
|
|
83
|
+
return false;
|
|
84
|
+
},
|
|
85
|
+
popoverNode: null,
|
|
86
|
+
close: jest.fn()
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
jest.mock('../../../hooks/useMaiaTaskPanelZIndex', function () {
|
|
92
|
+
return {
|
|
93
|
+
useMaiaTaskPanelZIndex: function useMaiaTaskPanelZIndex() {
|
|
94
|
+
return 1300;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
jest.mock('../../organisms/ModalFileExceeds', function () {
|
|
99
|
+
return {
|
|
100
|
+
ModalFileExceeds: function ModalFileExceeds() {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
jest.mock('../SlashCommandDropdown', function () {
|
|
106
|
+
return {
|
|
107
|
+
SlashCommandDropdown: function SlashCommandDropdown() {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
jest.mock('../ContextMentionEditor', function () {
|
|
113
|
+
var React = jest.requireActual('react');
|
|
114
|
+
return {
|
|
115
|
+
ContextMentionEditor: React.forwardRef(function (_ref, ref) {
|
|
116
|
+
var onInput = _ref.onInput,
|
|
117
|
+
placeholder = _ref.placeholder,
|
|
118
|
+
disabled = _ref.disabled;
|
|
119
|
+
var _React$useState = React.useState(''),
|
|
120
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
121
|
+
value = _React$useState2[0],
|
|
122
|
+
setValue = _React$useState2[1];
|
|
123
|
+
var emit = function emit(text) {
|
|
124
|
+
onInput === null || onInput === void 0 || onInput({
|
|
125
|
+
text: text,
|
|
126
|
+
mentions: [],
|
|
127
|
+
slashCommands: [],
|
|
128
|
+
trigger: {
|
|
129
|
+
active: false,
|
|
130
|
+
query: '',
|
|
131
|
+
atRunLength: 0
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
React.useImperativeHandle(ref, function () {
|
|
136
|
+
return {
|
|
137
|
+
focus: jest.fn(),
|
|
138
|
+
clear: function clear() {
|
|
139
|
+
setValue('');
|
|
140
|
+
emit('');
|
|
141
|
+
},
|
|
142
|
+
setPlainText: function setPlainText(text) {
|
|
143
|
+
setValue(text);
|
|
144
|
+
emit(text);
|
|
145
|
+
},
|
|
146
|
+
serialize: function serialize() {
|
|
147
|
+
return {
|
|
148
|
+
text: value,
|
|
149
|
+
mentions: [],
|
|
150
|
+
slashCommands: []
|
|
151
|
+
};
|
|
152
|
+
},
|
|
153
|
+
insertMentionTrigger: jest.fn(),
|
|
154
|
+
insertSlashTrigger: jest.fn(),
|
|
155
|
+
insertMention: jest.fn(),
|
|
156
|
+
insertSlashCommand: jest.fn(),
|
|
157
|
+
insertSkillTrigger: function insertSkillTrigger() {
|
|
158
|
+
onInput === null || onInput === void 0 || onInput({
|
|
159
|
+
text: '#',
|
|
160
|
+
mentions: [],
|
|
161
|
+
slashCommands: [],
|
|
162
|
+
trigger: {
|
|
163
|
+
active: false,
|
|
164
|
+
query: '',
|
|
165
|
+
atRunLength: 0
|
|
166
|
+
},
|
|
167
|
+
hashTrigger: {
|
|
168
|
+
active: true,
|
|
169
|
+
query: ''
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
insertSkillMention: insertSkillMention,
|
|
174
|
+
syncTriggerAtRunLength: jest.fn(),
|
|
175
|
+
syncSkillTrigger: jest.fn(),
|
|
176
|
+
hasVisualMultiline: function hasVisualMultiline() {
|
|
177
|
+
return false;
|
|
178
|
+
},
|
|
179
|
+
getEditorClientRect: function getEditorClientRect() {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
return /*#__PURE__*/_jsx("textarea", {
|
|
185
|
+
"aria-label": "maia-editor",
|
|
186
|
+
placeholder: placeholder,
|
|
187
|
+
disabled: disabled,
|
|
188
|
+
value: value,
|
|
189
|
+
onChange: function onChange(event) {
|
|
190
|
+
setValue(event.target.value);
|
|
191
|
+
emit(event.target.value);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
})
|
|
195
|
+
};
|
|
196
|
+
});
|
|
197
|
+
var sendButton = function sendButton() {
|
|
198
|
+
return screen.getAllByRole('button').find(function (button) {
|
|
199
|
+
return !button.getAttribute('aria-label') && !button.getAttribute('aria-haspopup');
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
describe('MAIAInput', function () {
|
|
203
|
+
beforeEach(function () {
|
|
204
|
+
mockCanAccessToSkills.mockReturnValue(true);
|
|
205
|
+
});
|
|
206
|
+
it('keeps send disabled without text', function () {
|
|
207
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
208
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
209
|
+
onSendMessage: jest.fn(),
|
|
210
|
+
placeholder: "Escrib\xED"
|
|
211
|
+
})
|
|
212
|
+
}));
|
|
213
|
+
expect(screen.getByPlaceholderText('Escribí')).toBeInTheDocument();
|
|
214
|
+
expect(sendButton()).toBeDisabled();
|
|
215
|
+
});
|
|
216
|
+
it('sends the typed message and clears the editor', function () {
|
|
217
|
+
var onSendMessage = jest.fn();
|
|
218
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
219
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
220
|
+
onSendMessage: onSendMessage
|
|
221
|
+
})
|
|
222
|
+
}));
|
|
223
|
+
fireEvent.change(screen.getByLabelText('maia-editor'), {
|
|
224
|
+
target: {
|
|
225
|
+
value: 'Hola draft'
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
fireEvent.click(sendButton());
|
|
229
|
+
expect(onSendMessage).toHaveBeenCalledWith('Hola draft', [], []);
|
|
230
|
+
expect(screen.getByLabelText('maia-editor')).toHaveValue('');
|
|
231
|
+
});
|
|
232
|
+
it('does not send when disabled', function () {
|
|
233
|
+
var onSendMessage = jest.fn();
|
|
234
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
235
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
236
|
+
onSendMessage: onSendMessage,
|
|
237
|
+
disabled: true
|
|
238
|
+
})
|
|
239
|
+
}));
|
|
240
|
+
expect(screen.getByLabelText('maia-editor')).toBeDisabled();
|
|
241
|
+
expect(sendButton()).toBeDisabled();
|
|
242
|
+
fireEvent.click(sendButton());
|
|
243
|
+
expect(onSendMessage).not.toHaveBeenCalled();
|
|
244
|
+
});
|
|
245
|
+
it('shows stop while writing', function () {
|
|
246
|
+
var onStopGeneration = jest.fn();
|
|
247
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
248
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
249
|
+
onSendMessage: jest.fn(),
|
|
250
|
+
isWriting: true,
|
|
251
|
+
onStopGeneration: onStopGeneration
|
|
252
|
+
})
|
|
253
|
+
}));
|
|
254
|
+
fireEvent.click(sendButton());
|
|
255
|
+
expect(onStopGeneration).toHaveBeenCalled();
|
|
256
|
+
});
|
|
257
|
+
it('opens the plus menu', function () {
|
|
258
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
259
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
260
|
+
onSendMessage: jest.fn()
|
|
261
|
+
})
|
|
262
|
+
}));
|
|
263
|
+
fireEvent.click(screen.getByRole('button', {
|
|
264
|
+
name: 'chat.openPlusMenuAria'
|
|
265
|
+
}));
|
|
266
|
+
expect(screen.getByText('chat.plusMenuAttach')).toBeInTheDocument();
|
|
267
|
+
expect(screen.getByText('chat.searchWeb')).toBeInTheDocument();
|
|
268
|
+
});
|
|
269
|
+
it('opens the skills catalog and selects a skill', function () {
|
|
270
|
+
insertSkillMention.mockClear();
|
|
271
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
272
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
273
|
+
onSendMessage: jest.fn()
|
|
274
|
+
})
|
|
275
|
+
}));
|
|
276
|
+
fireEvent.click(screen.getByRole('button', {
|
|
277
|
+
name: 'mySkills.dropdownButton'
|
|
278
|
+
}));
|
|
279
|
+
fireEvent.click(screen.getByRole('button', {
|
|
280
|
+
name: /#Resumir/
|
|
281
|
+
}));
|
|
282
|
+
expect(insertSkillMention).toHaveBeenCalledWith({
|
|
283
|
+
id: 'sk1',
|
|
284
|
+
type: 'skill',
|
|
285
|
+
label: '#Resumir'
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
it('hides the skills button when MAIA_SKILLS_ACCESS is not granted', function () {
|
|
289
|
+
mockCanAccessToSkills.mockReturnValue(false);
|
|
290
|
+
renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
|
|
291
|
+
children: /*#__PURE__*/_jsx(MAIAInput, {
|
|
292
|
+
onSendMessage: jest.fn()
|
|
293
|
+
})
|
|
294
|
+
}));
|
|
295
|
+
expect(screen.queryByRole('button', {
|
|
296
|
+
name: 'mySkills.dropdownButton'
|
|
297
|
+
})).not.toBeInTheDocument();
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciIsIk1BSUFJbnB1dCIsImpzeCIsIl9qc3giLCJpbnNlcnRTa2lsbE1lbnRpb24iLCJqZXN0IiwiZm4iLCJtb2NrIiwiRVZFTlRTIiwiYWlDaGF0UGx1c09wZW4iLCJhaUNoYXRRdWlja0FjdGlvbk9wZW4iLCJhaUNoYXRTa2lsbE9wZW4iLCJhaUNoYXRTa2lsbFNlbGVjdCIsImFpQ2hhdFNraWxsUmVtb3ZlIiwidXNlRXZlbnQiLCJDT1JVc2VyUm9sZSIsIkNMRVZFTCIsIkRJUkVDVE9SIiwiUFJPSkVDVF9NQU5BR0VSIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsInVzZVVzZXIiLCJpZCIsInJvbGVfaWQiLCJtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMiLCJjYW5BY2Nlc3NUb1NraWxscyIsImFwcGx5IiwiYXJndW1lbnRzIiwidXNlU2tpbGxzQ2F0YWxvZyIsInNraWxscyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImNvbnRlbnQiLCJsb2FkaW5nIiwiZXJyb3IiLCJmZXRjaFNraWxscyIsInVzZVNsYXNoQ29tbWFuZHMiLCJjb21tYW5kcyIsInVzZU1lbnRpb25Qb3BvdmVyIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlS2V5RG93biIsInBvcG92ZXJOb2RlIiwiY2xvc2UiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiTW9kYWxGaWxlRXhjZWVkcyIsIlNsYXNoQ29tbWFuZERyb3Bkb3duIiwiUmVhY3QiLCJyZXF1aXJlQWN0dWFsIiwiQ29udGV4dE1lbnRpb25FZGl0b3IiLCJmb3J3YXJkUmVmIiwiX3JlZiIsInJlZiIsIm9uSW5wdXQiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZSIsInNldFZhbHVlIiwiZW1pdCIsInRleHQiLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwicXVlcnkiLCJhdFJ1bkxlbmd0aCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJmb2N1cyIsImNsZWFyIiwic2V0UGxhaW5UZXh0Iiwic2VyaWFsaXplIiwiaW5zZXJ0TWVudGlvblRyaWdnZXIiLCJpbnNlcnRTbGFzaFRyaWdnZXIiLCJpbnNlcnRNZW50aW9uIiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwiaW5zZXJ0U2tpbGxUcmlnZ2VyIiwiaGFzaFRyaWdnZXIiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwic3luY1NraWxsVHJpZ2dlciIsImhhc1Zpc3VhbE11bHRpbGluZSIsImdldEVkaXRvckNsaWVudFJlY3QiLCJvbkNoYW5nZSIsImV2ZW50IiwidGFyZ2V0Iiwic2VuZEJ1dHRvbiIsImdldEFsbEJ5Um9sZSIsImZpbmQiLCJidXR0b24iLCJnZXRBdHRyaWJ1dGUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrUmV0dXJuVmFsdWUiLCJpdCIsImNoaWxkcmVuIiwib25TZW5kTWVzc2FnZSIsImV4cGVjdCIsImdldEJ5UGxhY2Vob2xkZXJUZXh0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJ0b0JlRGlzYWJsZWQiLCJjaGFuZ2UiLCJnZXRCeUxhYmVsVGV4dCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJ0b0hhdmVWYWx1ZSIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJvblN0b3BHZW5lcmF0aW9uIiwiaXNXcml0aW5nIiwiZ2V0QnlSb2xlIiwiZ2V0QnlUZXh0IiwibW9ja0NsZWFyIiwidHlwZSIsImxhYmVsIiwicXVlcnlCeVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNQUlBSW5wdXQgfSBmcm9tICcuL01BSUFJbnB1dCdcblxuY29uc3QgaW5zZXJ0U2tpbGxNZW50aW9uID0gamVzdC5mbigpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICBFVkVOVFM6IHtcbiAgICBhaUNoYXRQbHVzT3BlbjogJ0FJX0NIQVRfUExVU19PUEVOJyxcbiAgICBhaUNoYXRRdWlja0FjdGlvbk9wZW46ICdBSV9DSEFUX1FVSUNLX0FDVElPTl9PUEVOJyxcbiAgICBhaUNoYXRTa2lsbE9wZW46ICdBSV9DSEFUX1NLSUxMX09QRU4nLFxuICAgIGFpQ2hhdFNraWxsU2VsZWN0OiAnQUlfQ0hBVF9TS0lMTF9TRUxFQ1QnLFxuICAgIGFpQ2hhdFNraWxsUmVtb3ZlOiAnQUlfQ0hBVF9TS0lMTF9SRU1PVkUnLFxuICB9LFxuICB1c2VFdmVudDogKCkgPT4gamVzdC5mbigpLFxufSkpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcicsICgpID0+ICh7XG4gIENPUlVzZXJSb2xlOiB7XG4gICAgQ0xFVkVMOiAxLFxuICAgIERJUkVDVE9SOiAyLFxuICAgIFBST0pFQ1RfTUFOQUdFUjogMyxcbiAgICBDT0xMQUJPUkFUT1I6IDQsXG4gICAgRlJFRUxBTkNFUjogNSxcbiAgICBDTElFTlQ6IDYsXG4gIH0sXG4gIHVzZVVzZXI6ICgpID0+ICh7IGlkOiA5OSwgcm9sZV9pZDogMyB9KSxcbn0pKVxuXG5jb25zdCBtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMgPSBqZXN0LmZuKCgpID0+IHRydWUpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJywgKCkgPT4gKHtcbiAgY2FuQWNjZXNzVG9Ta2lsbHM6ICguLi5hcmdzOiB1bmtub3duW10pID0+IG1vY2tDYW5BY2Nlc3NUb1NraWxscyguLi5hcmdzKSxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVNraWxsc0NhdGFsb2cnLCAoKSA9PiAoe1xuICB1c2VTa2lsbHNDYXRhbG9nOiAoKSA9PiAoe1xuICAgIHNraWxsczogW3sgaWQ6ICdzazEnLCBuYW1lOiAnUmVzdW1pcicsIGRlc2NyaXB0aW9uOiAnRGVzYycsIGNvbnRlbnQ6ICdSZXN1bWUnIH1dLFxuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBmZXRjaFNraWxsczogamVzdC5mbigpLFxuICB9KSxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMnLCAoKSA9PiAoe1xuICB1c2VTbGFzaENvbW1hbmRzOiAoKSA9PiAoeyBjb21tYW5kczogW10gfSksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VNZW50aW9uUG9wb3ZlcicsICgpID0+ICh7XG4gIHVzZU1lbnRpb25Qb3BvdmVyOiAoKSA9PiAoe1xuICAgIHBvcG92ZXJPcGVuOiBmYWxzZSxcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6IGplc3QuZm4oKSxcbiAgICBoYW5kbGVUcmlnZ2VyOiBqZXN0LmZuKCksXG4gICAgaGFuZGxlS2V5RG93bjogKCkgPT4gZmFsc2UsXG4gICAgcG9wb3Zlck5vZGU6IG51bGwsXG4gICAgY2xvc2U6IGplc3QuZm4oKSxcbiAgfSksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4JywgKCkgPT4gKHtcbiAgdXNlTWFpYVRhc2tQYW5lbFpJbmRleDogKCkgPT4gMTMwMCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uL29yZ2FuaXNtcy9Nb2RhbEZpbGVFeGNlZWRzJywgKCkgPT4gKHtcbiAgTW9kYWxGaWxlRXhjZWVkczogKCkgPT4gbnVsbCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uL1NsYXNoQ29tbWFuZERyb3Bkb3duJywgKCkgPT4gKHtcbiAgU2xhc2hDb21tYW5kRHJvcGRvd246ICgpID0+IG51bGwsXG59KSlcblxuamVzdC5tb2NrKCcuLi9Db250ZXh0TWVudGlvbkVkaXRvcicsICgpID0+IHtcbiAgY29uc3QgUmVhY3QgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJ3JlYWN0JykgYXMgdHlwZW9mIGltcG9ydCgncmVhY3QnKVxuICByZXR1cm4ge1xuICAgIENvbnRleHRNZW50aW9uRWRpdG9yOiBSZWFjdC5mb3J3YXJkUmVmKFxuICAgICAgKFxuICAgICAgICB7XG4gICAgICAgICAgb25JbnB1dCxcbiAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgfToge1xuICAgICAgICAgIG9uSW5wdXQ/OiAoc3RhdGU6IHtcbiAgICAgICAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgICAgICAgbWVudGlvbnM6IHVua25vd25bXVxuICAgICAgICAgICAgc2xhc2hDb21tYW5kczogdW5rbm93bltdXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICAgICAgfSkgPT4gdm9pZFxuICAgICAgICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gICAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIH0sXG4gICAgICAgIHJlZjoge1xuICAgICAgICAgIGZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgICAgY2xlYXI6ICgpID0+IHZvaWRcbiAgICAgICAgICBzZXRQbGFpblRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcbiAgICAgICAgICBzZXJpYWxpemU6ICgpID0+IHsgdGV4dDogc3RyaW5nOyBtZW50aW9uczogdW5rbm93bltdOyBzbGFzaENvbW1hbmRzOiB1bmtub3duW10gfVxuICAgICAgICAgIGluc2VydE1lbnRpb25UcmlnZ2VyOiAoKSA9PiB2b2lkXG4gICAgICAgIH0gfCBudWxsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSgnJylcbiAgICAgICAgY29uc3QgZW1pdCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIG1lbnRpb25zOiBbXSxcbiAgICAgICAgICAgIHNsYXNoQ29tbWFuZHM6IFtdLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICAgIGZvY3VzOiBqZXN0LmZuKCksXG4gICAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFZhbHVlKCcnKVxuICAgICAgICAgICAgZW1pdCgnJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldFBsYWluVGV4dDogKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc2V0VmFsdWUodGV4dClcbiAgICAgICAgICAgIGVtaXQodGV4dClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNlcmlhbGl6ZTogKCkgPT4gKHsgdGV4dDogdmFsdWUsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfSksXG4gICAgICAgICAgaW5zZXJ0TWVudGlvblRyaWdnZXI6IGplc3QuZm4oKSxcbiAgICAgICAgICBpbnNlcnRTbGFzaFRyaWdnZXI6IGplc3QuZm4oKSxcbiAgICAgICAgICBpbnNlcnRNZW50aW9uOiBqZXN0LmZuKCksXG4gICAgICAgICAgaW5zZXJ0U2xhc2hDb21tYW5kOiBqZXN0LmZuKCksXG4gICAgICAgICAgaW5zZXJ0U2tpbGxUcmlnZ2VyOiAoKSA9PiB7XG4gICAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgICB0ZXh0OiAnIycsXG4gICAgICAgICAgICAgIG1lbnRpb25zOiBbXSxcbiAgICAgICAgICAgICAgc2xhc2hDb21tYW5kczogW10sXG4gICAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IHRydWUsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluc2VydFNraWxsTWVudGlvbixcbiAgICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoOiBqZXN0LmZuKCksXG4gICAgICAgICAgc3luY1NraWxsVHJpZ2dlcjogamVzdC5mbigpLFxuICAgICAgICAgIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4gZmFsc2UsXG4gICAgICAgICAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gbnVsbCxcbiAgICAgICAgfSkpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJtYWlhLWVkaXRvclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICAgIGVtaXQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKSxcbiAgfVxufSlcblxuY29uc3Qgc2VuZEJ1dHRvbiA9ICgpID0+XG4gIHNjcmVlblxuICAgIC5nZXRBbGxCeVJvbGUoJ2J1dHRvbicpXG4gICAgLmZpbmQoYnV0dG9uID0+ICFidXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiYgIWJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnKSlcblxuZGVzY3JpYmUoJ01BSUFJbnB1dCcsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgbW9ja0NhbkFjY2Vzc1RvU2tpbGxzLm1vY2tSZXR1cm5WYWx1ZSh0cnVlKVxuICB9KVxuXG4gIGl0KCdrZWVwcyBzZW5kIGRpc2FibGVkIHdpdGhvdXQgdGV4dCcsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSBwbGFjZWhvbGRlcj1cIkVzY3JpYsOtXCIgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5UGxhY2Vob2xkZXJUZXh0KCdFc2NyaWLDrScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNlbmRCdXR0b24oKSkudG9CZURpc2FibGVkKClcbiAgfSlcblxuICBpdCgnc2VuZHMgdGhlIHR5cGVkIG1lc3NhZ2UgYW5kIGNsZWFycyB0aGUgZWRpdG9yJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17b25TZW5kTWVzc2FnZX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBmaXJlRXZlbnQuY2hhbmdlKHNjcmVlbi5nZXRCeUxhYmVsVGV4dCgnbWFpYS1lZGl0b3InKSwgeyB0YXJnZXQ6IHsgdmFsdWU6ICdIb2xhIGRyYWZ0JyB9IH0pXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNlbmRCdXR0b24oKSBhcyBIVE1MQnV0dG9uRWxlbWVudClcblxuICAgIGV4cGVjdChvblNlbmRNZXNzYWdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnSG9sYSBkcmFmdCcsIFtdLCBbXSlcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdtYWlhLWVkaXRvcicpKS50b0hhdmVWYWx1ZSgnJylcbiAgfSlcblxuICBpdCgnZG9lcyBub3Qgc2VuZCB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17b25TZW5kTWVzc2FnZX0gZGlzYWJsZWQgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdtYWlhLWVkaXRvcicpKS50b0JlRGlzYWJsZWQoKVxuICAgIGV4cGVjdChzZW5kQnV0dG9uKCkpLnRvQmVEaXNhYmxlZCgpXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNlbmRCdXR0b24oKSBhcyBIVE1MQnV0dG9uRWxlbWVudClcbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCdzaG93cyBzdG9wIHdoaWxlIHdyaXRpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25TdG9wR2VuZXJhdGlvbiA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPE1BSUFJbnB1dCBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IGlzV3JpdGluZyBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzZW5kQnV0dG9uKCkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpXG4gICAgZXhwZWN0KG9uU3RvcEdlbmVyYXRpb24pLnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCdvcGVucyB0aGUgcGx1cyBtZW51JywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPE1BSUFJbnB1dCBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ2NoYXQub3BlblBsdXNNZW51QXJpYScgfSkpXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnY2hhdC5wbHVzTWVudUF0dGFjaCcpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ2NoYXQuc2VhcmNoV2ViJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcblxuICBpdCgnb3BlbnMgdGhlIHNraWxscyBjYXRhbG9nIGFuZCBzZWxlY3RzIGEgc2tpbGwnLCAoKSA9PiB7XG4gICAgaW5zZXJ0U2tpbGxNZW50aW9uLm1vY2tDbGVhcigpXG5cbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdteVNraWxscy5kcm9wZG93bkJ1dHRvbicgfSkpXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvI1Jlc3VtaXIvIH0pKVxuICAgIGV4cGVjdChpbnNlcnRTa2lsbE1lbnRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgaWQ6ICdzazEnLCB0eXBlOiAnc2tpbGwnLCBsYWJlbDogJyNSZXN1bWlyJyB9KVxuICB9KVxuXG4gIGl0KCdoaWRlcyB0aGUgc2tpbGxzIGJ1dHRvbiB3aGVuIE1BSUFfU0tJTExTX0FDQ0VTUyBpcyBub3QgZ3JhbnRlZCcsICgpID0+IHtcbiAgICBtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMubW9ja1JldHVyblZhbHVlKGZhbHNlKVxuXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgICAgICA8TUFJQUlucHV0IG9uU2VuZE1lc3NhZ2U9e2plc3QuZm4oKX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdteVNraWxscy5kcm9wZG93bkJ1dHRvbicgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRixTQUFTQyx5QkFBeUIsUUFBUSw4QkFBOEI7QUFDeEUsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFBQSxTQUFBQyxHQUFBLElBQUFD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
|
|
@@ -12,21 +12,14 @@ var customInputStyles = css(["outline:none;background:linear-gradient(white,whit
|
|
|
12
12
|
export var StyledMAIAInputWrapper = styled.div.withConfig({
|
|
13
13
|
displayName: "styles__StyledMAIAInputWrapper",
|
|
14
14
|
componentId: "sc-cs6u9w-0"
|
|
15
|
-
})(["box-sizing:border-box;position:relative;width:100%;border-radius:8px;transition:border-color 0.2s ease,box-shadow 0.2s ease;padding:8px;cursor:", ";display:flex;min-height:58px;max-height:", "px;gap:", "px;flex-direction:column;align-items:flex-start;overflow:hidden;border:1px solid ", ";box-shadow:none
|
|
15
|
+
})(["box-sizing:border-box;position:relative;width:100%;border-radius:8px;transition:border-color 0.2s ease,box-shadow 0.2s ease;padding:8px;cursor:", ";display:flex;min-height:58px;max-height:", "px;gap:", "px;flex-direction:column;align-items:flex-start;overflow:hidden;border:1px solid ", ";box-shadow:none;&:focus-within{", "}", " ", ""], function (_ref) {
|
|
16
16
|
var disabled = _ref.disabled;
|
|
17
17
|
return disabled ? 'not-allowed' : 'auto';
|
|
18
|
-
}, MAIA_INPUT_WRAPPER_MAX_HEIGHT_PX, MAIA_INPUT_CHIPS_CONTENT_GAP_PX, colors.text.disabled, function (_ref2) {
|
|
19
|
-
var
|
|
20
|
-
return
|
|
18
|
+
}, MAIA_INPUT_WRAPPER_MAX_HEIGHT_PX, MAIA_INPUT_CHIPS_CONTENT_GAP_PX, colors.text.disabled, customInputStyles, function (_ref2) {
|
|
19
|
+
var hasAttachments = _ref2.hasAttachments;
|
|
20
|
+
return hasAttachments && css(["", ""], customInputStyles);
|
|
21
21
|
}, function (_ref3) {
|
|
22
|
-
var $
|
|
23
|
-
return !$usageBlocked && css(["", ""], customInputStyles);
|
|
24
|
-
}, function (_ref4) {
|
|
25
|
-
var hasAttachments = _ref4.hasAttachments,
|
|
26
|
-
$usageBlocked = _ref4.$usageBlocked;
|
|
27
|
-
return hasAttachments && !$usageBlocked && css(["", ""], customInputStyles);
|
|
28
|
-
}, function (_ref5) {
|
|
29
|
-
var $fileDragActive = _ref5.$fileDragActive;
|
|
22
|
+
var $fileDragActive = _ref3.$fileDragActive;
|
|
30
23
|
return $fileDragActive && css(["border:1px dashed ", ";background:rgba(45,119,189,0.06);box-shadow:none;animation:none;"], BLUE_IA_COLORS[500]);
|
|
31
24
|
});
|
|
32
25
|
export var StyledMAIADropOverlay = styled.div.withConfig({
|
|
@@ -82,14 +75,14 @@ export var StyledMAIAInput = styled.textarea.withConfig({
|
|
|
82
75
|
export var StyledMAIASendButton = styled(ClearButton).withConfig({
|
|
83
76
|
displayName: "styles__StyledMAIASendButton",
|
|
84
77
|
componentId: "sc-cs6u9w-11"
|
|
85
|
-
})(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{background-color:", " !important;}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;path{stroke:white !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (
|
|
86
|
-
var hasValues =
|
|
78
|
+
})(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{background-color:", " !important;}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;path{stroke:white !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref4) {
|
|
79
|
+
var hasValues = _ref4.hasValues;
|
|
87
80
|
return hasValues ? "".concat(BLUE_IA_COLORS[500]) : '#f2f2f2';
|
|
88
|
-
}, function (
|
|
89
|
-
var hasValues =
|
|
81
|
+
}, function (_ref5) {
|
|
82
|
+
var hasValues = _ref5.hasValues;
|
|
90
83
|
return hasValues && css(["path{stroke:white !important;}"]);
|
|
91
|
-
}, BLUE_IA_COLORS[700], function (
|
|
92
|
-
var hasValues =
|
|
84
|
+
}, BLUE_IA_COLORS[700], function (_ref6) {
|
|
85
|
+
var hasValues = _ref6.hasValues;
|
|
93
86
|
return !hasValues && css(["svg path{stroke:", " !important;}"], colors.text.disabled);
|
|
94
87
|
});
|
|
95
88
|
export var SCMIWrapperAttachments = styled.div.withConfig({
|
|
@@ -119,18 +112,18 @@ export var SCMIAttachmentName = styled.span.withConfig({
|
|
|
119
112
|
export var PlusMenuToolsRow = styled.div.withConfig({
|
|
120
113
|
displayName: "styles__PlusMenuToolsRow",
|
|
121
114
|
componentId: "sc-cs6u9w-18"
|
|
122
|
-
})(["display:flex;align-items:center;
|
|
115
|
+
})(["display:flex;align-items:center;"]);
|
|
123
116
|
export var PlusToggleButton = styled.button.withConfig({
|
|
124
117
|
displayName: "styles__PlusToggleButton",
|
|
125
118
|
componentId: "sc-cs6u9w-19"
|
|
126
|
-
})(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], function (
|
|
127
|
-
var $menuOpen =
|
|
119
|
+
})(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], function (_ref7) {
|
|
120
|
+
var $menuOpen = _ref7.$menuOpen;
|
|
128
121
|
return $menuOpen ? '#f2f2f2' : colors.white.main;
|
|
129
122
|
});
|
|
130
123
|
export var SkillsToggleButton = styled.button.withConfig({
|
|
131
124
|
displayName: "styles__SkillsToggleButton",
|
|
132
125
|
componentId: "sc-cs6u9w-20"
|
|
133
|
-
})(["display:flex;
|
|
126
|
+
})(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;color:var(--cor-color-icon-subtle,#808080);&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], colors.white.main);
|
|
134
127
|
export var PlusMenuPaper = styled.div.withConfig({
|
|
135
128
|
displayName: "styles__PlusMenuPaper",
|
|
136
129
|
componentId: "sc-cs6u9w-21"
|
|
@@ -146,7 +139,7 @@ export var PlusMenuDivider = styled.div.withConfig({
|
|
|
146
139
|
export var PlusMenuItemButton = styled.button.withConfig({
|
|
147
140
|
displayName: "styles__PlusMenuItemButton",
|
|
148
141
|
componentId: "sc-cs6u9w-24"
|
|
149
|
-
})(["display:flex;width:100%;padding:8px;align-items:center;gap:8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;&:hover
|
|
142
|
+
})(["display:flex;width:100%;padding:8px;align-items:center;gap:8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;&:hover{background:", ";}&:focus-visible{outline:2px solid ", ";outline-offset:-2px;}"], colors.background.secondary, BLUE_IA_COLORS[500]);
|
|
150
143
|
export var PlusMenuItemLabel = styled.span.withConfig({
|
|
151
144
|
displayName: "styles__PlusMenuItemLabel",
|
|
152
145
|
componentId: "sc-cs6u9w-25"
|
|
@@ -154,27 +147,27 @@ export var PlusMenuItemLabel = styled.span.withConfig({
|
|
|
154
147
|
export var ActiveToolChipRoot = styled.div.withConfig({
|
|
155
148
|
displayName: "styles__ActiveToolChipRoot",
|
|
156
149
|
componentId: "sc-cs6u9w-26"
|
|
157
|
-
})(["display:flex;max-width:144px;padding:4px 8px;align-items:center;gap:2px;box-sizing:border-box;cursor:default;border-radius:", ";background:", ";box-shadow:", ";transition:background-color 0.22s ease,border-radius 0.22s ease,box-shadow 0.22s ease;", ""], function (
|
|
158
|
-
var $hovered =
|
|
150
|
+
})(["display:flex;max-width:144px;padding:4px 8px;align-items:center;gap:2px;box-sizing:border-box;cursor:default;border-radius:", ";background:", ";box-shadow:", ";transition:background-color 0.22s ease,border-radius 0.22s ease,box-shadow 0.22s ease;", ""], function (_ref8) {
|
|
151
|
+
var $hovered = _ref8.$hovered;
|
|
159
152
|
return $hovered ? '16px' : '0';
|
|
160
|
-
}, function (
|
|
161
|
-
var $hovered =
|
|
153
|
+
}, function (_ref9) {
|
|
154
|
+
var $hovered = _ref9.$hovered;
|
|
162
155
|
return $hovered ? MAIA_CHAT_INPUT_UI.chipSurfaceHover : 'transparent';
|
|
163
|
-
}, function (
|
|
164
|
-
var $hovered =
|
|
156
|
+
}, function (_ref0) {
|
|
157
|
+
var $hovered = _ref0.$hovered;
|
|
165
158
|
return $hovered ? '0 1px 3px rgba(0, 0, 0, 0.07)' : 'none';
|
|
166
|
-
}, function (
|
|
167
|
-
var $exiting =
|
|
159
|
+
}, function (_ref1) {
|
|
160
|
+
var $exiting = _ref1.$exiting;
|
|
168
161
|
return $exiting && css(["pointer-events:none;animation:", " 0.22s ease forwards;"], activeToolChipOut);
|
|
169
162
|
});
|
|
170
163
|
export var ActiveToolChipIconButton = styled.button.withConfig({
|
|
171
164
|
displayName: "styles__ActiveToolChipIconButton",
|
|
172
165
|
componentId: "sc-cs6u9w-27"
|
|
173
|
-
})(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:transform 0.2s ease;svg{display:block;}", " &:hover{", "}&:focus-visible{outline:2px solid ", ";outline-offset:1px;}"], function (
|
|
174
|
-
var $closeShown =
|
|
166
|
+
})(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:transform 0.2s ease;svg{display:block;}", " &:hover{", "}&:focus-visible{outline:2px solid ", ";outline-offset:1px;}"], function (_ref10) {
|
|
167
|
+
var $closeShown = _ref10.$closeShown;
|
|
175
168
|
return $closeShown && css(["svg{animation:", " 0.24s ease forwards;}"], activeToolChipCloseIconIn);
|
|
176
|
-
}, function (
|
|
177
|
-
var $closeShown =
|
|
169
|
+
}, function (_ref11) {
|
|
170
|
+
var $closeShown = _ref11.$closeShown;
|
|
178
171
|
return $closeShown && css(["transform:scale(1.06);"]);
|
|
179
172
|
}, BLUE_IA_COLORS[500]);
|
|
180
173
|
export var ActiveToolChipLabel = styled.span.withConfig({
|
|
@@ -190,4 +183,4 @@ export var StyledMAIAStopButton = styled.button.withConfig({
|
|
|
190
183
|
displayName: "styles__StyledMAIAStopButton",
|
|
191
184
|
componentId: "sc-cs6u9w-30"
|
|
192
185
|
})(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:", " !important;", "{background-color:", " !important;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], BLUE_IA_COLORS[50], StyledMAIAStopIcon, BLUE_IA_COLORS[500]);
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiJHVzYWdlQmxvY2tlZCIsIl9yZWYzIiwiX3JlZjQiLCJoYXNBdHRhY2htZW50cyIsIl9yZWY1IiwiJGZpbGVEcmFnQWN0aXZlIiwiU3R5bGVkTUFJQURyb3BPdmVybGF5IiwiU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCIsIlNDSW5wdXRFZGl0b3JDZWxsIiwiU0NJbnB1dENoaXBzUm93IiwiU0NJbnB1dFRvb2xiYXJSb3ciLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlNDSW5wdXRNZXRhSW5kaWNhdG9ycyIsIlNDSW5wdXRNZXRhSWNvbkJ1dHRvbiIsInNwYW4iLCJ3aGl0ZSIsIm1haW4iLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjYiLCJoYXNWYWx1ZXMiLCJjb25jYXQiLCJfcmVmNyIsIl9yZWY4IiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnRJY29uIiwiU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsImJ1dHRvbiIsIlNDTUlBdHRhY2htZW50TmFtZSIsIlBsdXNNZW51VG9vbHNSb3ciLCJQbHVzVG9nZ2xlQnV0dG9uIiwiX3JlZjkiLCIkbWVudU9wZW4iLCJTa2lsbHNUb2dnbGVCdXR0b24iLCJQbHVzTWVudVBhcGVyIiwiZ3JheSIsImxpZ2h0IiwiUGx1c01lbnVJbm5lckNvbHVtbiIsIlBsdXNNZW51RGl2aWRlciIsIlBsdXNNZW51SXRlbUJ1dHRvbiIsImJhY2tncm91bmQiLCJQbHVzTWVudUl0ZW1MYWJlbCIsIm1lbnVJY29uIiwiQWN0aXZlVG9vbENoaXBSb290IiwiX3JlZjAiLCIkaG92ZXJlZCIsIl9yZWYxIiwiY2hpcFN1cmZhY2VIb3ZlciIsIl9yZWYxMCIsIl9yZWYxMSIsIiRleGl0aW5nIiwiQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uIiwiX3JlZjEyIiwiJGNsb3NlU2hvd24iLCJfcmVmMTMiLCJBY3RpdmVUb29sQ2hpcExhYmVsIiwicHJpbWFyeSIsInN0b3BQdWxzZSIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgc2Nyb2xsYWJsZVN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zaGFyZWQvc2Nyb2xsYWJsZSdcbmltcG9ydCB7IENsZWFyQnV0dG9uIH0gZnJvbSAnLi4vQ2xlYXJCdXR0b24nXG5pbXBvcnQge1xuICBNQUlBX0lOUFVUX0NISVBTX0NPTlRFTlRfR0FQX1BYLFxuICBNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCxcbiAgTUFJQV9JTlBVVF9XUkFQUEVSX01BWF9IRUlHSFRfUFgsXG59IGZyb20gJy4vbWFpYUlucHV0TGF5b3V0J1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBhY3RpdmVUb29sQ2hpcENsb3NlSWNvbkluID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwLjU1O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuYFxuXG5jb25zdCBhY3RpdmVUb29sQ2hpcE91dCA9IGtleWZyYW1lc2BcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKSB0cmFuc2xhdGVZKDNweCk7XG4gIH1cbmBcblxuY29uc3QgY3VzdG9tSW5wdXRTdHlsZXMgPSBjc3NgXG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSkgcGFkZGluZy1ib3gsXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNGQzNTY5IDAlLCAjODc0MGJmIDU5LjYyJSwgIzJkNzdiZCAxMDAlKSBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIDEwMCUgMTAwJSxcbiAgICAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogJHtmbG93fSAzcyBlYXNlIGluZmluaXRlO1xuICBib3gtc2hhZG93OlxuICAgIDNweCA0cHggMTRweCAwIHJnYmEoMTM1LCA2NCwgMTkxLCAwLjE1KSxcbiAgICAtM3B4IC00cHggMTRweCAwIHJnYmEoNDUsIDExOSwgMTg5LCAwLjE1KTtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICR1c2FnZUJsb2NrZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbiAgLyoqIEVzdGFkbyBpbmljaWFsOiB0b29sYmFyIGVuIHVuYSBzb2xhIGzDrW5lYSBzaW4gYWRqdW50b3MgbmkgdG9vbHMgZGVsICsgbmkgbXVsdGlsaW5lICovXG4gIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyPzogYm9vbGVhblxuICAkZmlsZURyYWdBY3RpdmU/OiBib29sZWFuXG59PmBcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB0cmFuc2l0aW9uOlxuICAgIGJvcmRlci1jb2xvciAwLjJzIGVhc2UsXG4gICAgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogNThweDtcbiAgbWF4LWhlaWdodDogJHtNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWH1weDtcbiAgZ2FwOiAke01BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFh9cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gICR7KHsgJHVzYWdlQmxvY2tlZCB9KSA9PlxuICAgICR1c2FnZUJsb2NrZWQgJiZcbiAgICBjc3NgXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYjNiM2IzO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcblxuICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYjNiM2IzO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgYH1cblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHsoeyAkdXNhZ2VCbG9ja2VkIH0pID0+XG4gICAgICAhJHVzYWdlQmxvY2tlZCAmJlxuICAgICAgY3NzYFxuICAgICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgICAgYH1cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMsICR1c2FnZUJsb2NrZWQgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgICEkdXNhZ2VCbG9ja2VkICYmXG4gICAgY3NzYFxuICAgICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgICBgfVxuXG4gICR7KHsgJGZpbGVEcmFnQWN0aXZlIH0pID0+XG4gICAgJGZpbGVEcmFnQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ1LCAxMTksIDE4OSwgMC4wNik7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBRHJvcE92ZXJsYXkgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuYFxuXG4vKiogVG9vbGJhciBmaWphIGVuIDIgZmlsYXM6IGlucHV0IGFycmliYSwgKyAvIHNlbmQgYWJham8gKHRvb2xiYXIgbm8gc2Nyb2xsZWEpLiAqL1xuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCBhdXRvKSBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcm93LWdhcDogJHtNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWH1weDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5gXG5cbi8qKiBDZWxkYSBkZWwgZWRpdG9yIChlbCBzY3JvbGwgdml2ZSBlbiBlbCBjb250ZW50ZWRpdGFibGUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRFZGl0b3JDZWxsID0gc3R5bGVkLmRpdmBcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIEZpbGEgY29tcGFydGlkYTogY2hpcCBkZSBjb250ZXh0byArIGNoaXBzIGRlIGF0dGFjaG1lbnRzICh3cmFwKS4gKi9cbmV4cG9ydCBjb25zdCBTQ0lucHV0Q2hpcHNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG5gXG5cbi8qKiBGaWxhIGluZmVyaW9yIGRlIGJvdG9uZXM6IHNpZW1wcmUgdmlzaWJsZSwgbnVuY2Egc2Nyb2xsZWEgY29uIGVsIHRleHRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRUb29sYmFyUm93ID0gc3R5bGVkLmRpdmBcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZ3JpZC1yb3c6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLWhlaWdodDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbmBcblxuLyoqIEluZGljYWRvcmVzIGEgbGEgaXpxdWllcmRhIGRlbCBzZW5kIChhY2Nlc28gQ09SIC8gbW9kZWxvKSBwYXJhIGFnZW50ZXMgY3VzdG9tLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRNZXRhSW5kaWNhdG9ycyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDSW5wdXRNZXRhSWNvbkJ1dHRvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogZGVmYXVsdDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dCA9IHN0eWxlZC50ZXh0YXJlYTx7XG4gIGFsaWduQnV0dG9ucz86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCdcbiAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PzogJ3N0YWNrZWRSb3dzJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIG1heC1oZWlnaHQ6IDE3MHB4O1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5zZWNvbmRhcnl9O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTZW5kQnV0dG9uID0gc3R5bGVkKENsZWFyQnV0dG9uKTx7IGhhc1ZhbHVlcz86IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaGFzVmFsdWVzIH0pID0+IChoYXNWYWx1ZXMgPyBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWAgOiAnI2YyZjJmMicpfTtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICBoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s3MDBdfSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBzdmcge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcblxuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICAhaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIHN2ZyBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6ICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlckF0dGFjaG1lbnRzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjRweDtcbiAgbWF4LXdpZHRoOiAxMThweDtcbiAgcGFkZGluZzogNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50SWNvbiA9IHN0eWxlZC5zcGFuYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBzdmcsXG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50RmlsZUljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uID0gc3R5bGVkLmJ1dHRvbmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzY2NjY2NjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgfVxuXG4gICR7U0NNSUF0dGFjaG1lbnR9OmhvdmVyICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cblxuICAmOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnROYW1lID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzY2NjY2NjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVUb29sc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkbWVudU9wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHsoeyAkbWVudU9wZW4gfSkgPT4gKCRtZW51T3BlbiA/ICcjZjJmMmYyJyA6IGNvbG9ycy53aGl0ZS5tYWluKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1cy12aXNpYmxlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNraWxsc1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY29yLXNwYWNlLXNwYWNlLXhzLCA0cHgpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb3ItY29sb3ItaWNvbi1zdWJ0bGUsICM4MDgwODApO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LXNpemUtc20sIDE0cHgpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1saW5lLWhlaWdodC0yMCwgMjBweCk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy0wLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmID4gc3ZnIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXMtdmlzaWJsZTpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVBhcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAyMDlweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SW5uZXJDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudURpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTcwcHg7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5jb2xvcnMuZ3JheS5saWdodH07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgY29sb3I6ICR7TUFJQV9DSEFUX0lOUFVUX1VJLm1lbnVJY29ufTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwUm9vdCA9IHN0eWxlZC5kaXY8eyAkaG92ZXJlZDogYm9vbGVhbjsgJGV4aXRpbmc6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTQ0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzE2cHgnIDogJzAnKX07XG4gIGJhY2tncm91bmQ6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gTUFJQV9DSEFUX0lOUFVUX1VJLmNoaXBTdXJmYWNlSG92ZXIgOiAndHJhbnNwYXJlbnQnKX07XG4gIGJveC1zaGFkb3c6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDcpJyA6ICdub25lJyl9O1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4yMnMgZWFzZSxcbiAgICBib3JkZXItcmFkaXVzIDAuMjJzIGVhc2UsXG4gICAgYm94LXNoYWRvdyAwLjIycyBlYXNlO1xuXG4gICR7KHsgJGV4aXRpbmcgfSkgPT5cbiAgICAkZXhpdGluZyAmJlxuICAgIGNzc2BcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYW5pbWF0aW9uOiAke2FjdGl2ZVRvb2xDaGlwT3V0fSAwLjIycyBlYXNlIGZvcndhcmRzO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGNsb3NlU2hvd246IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgJGNsb3NlU2hvd24gJiZcbiAgICBjc3NgXG4gICAgICBzdmcge1xuICAgICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBDbG9zZUljb25Jbn0gMC4yNHMgZWFzZSBmb3J3YXJkcztcbiAgICAgIH1cbiAgICBgfVxuXG4gIC8qIFNjYWxlIHNvbG8gY29uIGxhIGNydXogdmlzaWJsZSB5IGhvdmVyIHNvYnJlIGVsbGEgKG5vIHNvYnJlIGVsIGNoaXAvaWNvbm8gZGUgdG9vbCkgKi9cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkY2xvc2VTaG93biB9KSA9PlxuICAgICAgJGNsb3NlU2hvd24gJiZcbiAgICAgIGNzc2BcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgICAgIGB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuYFxuY29uc3Qgc3RvcFB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYW5pbWF0aW9uOiAke3N0b3BQdWxzZX0gMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MF19ICFpbXBvcnRhbnQ7XG5cbiAgICAke1N0eWxlZE1BSUFTdG9wSWNvbn0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuIl0sIm1hcHBp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
|
|
186
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmMyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTQ0lucHV0RWRpdG9yQ2VsbCIsIlNDSW5wdXRDaGlwc1JvdyIsIlNDSW5wdXRUb29sYmFyUm93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwiLCJTQ0lucHV0TWV0YUluZGljYXRvcnMiLCJTQ0lucHV0TWV0YUljb25CdXR0b24iLCJzcGFuIiwid2hpdGUiLCJtYWluIiwiU3R5bGVkTUFJQUlucHV0IiwidGV4dGFyZWEiLCJzZWNvbmRhcnkiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIl9yZWY0IiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjUiLCJfcmVmNiIsIlNDTUlXcmFwcGVyQXR0YWNobWVudHMiLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50SWNvbiIsIlNDTUlBdHRhY2htZW50RmlsZUljb24iLCJTQ01JQXR0YWNobWVudERlbGV0ZUljb24iLCJidXR0b24iLCJTQ01JQXR0YWNobWVudE5hbWUiLCJQbHVzTWVudVRvb2xzUm93IiwiUGx1c1RvZ2dsZUJ1dHRvbiIsIl9yZWY3IiwiJG1lbnVPcGVuIiwiU2tpbGxzVG9nZ2xlQnV0dG9uIiwiUGx1c01lbnVQYXBlciIsImdyYXkiLCJsaWdodCIsIlBsdXNNZW51SW5uZXJDb2x1bW4iLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUl0ZW1CdXR0b24iLCJiYWNrZ3JvdW5kIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJtZW51SWNvbiIsIkFjdGl2ZVRvb2xDaGlwUm9vdCIsIl9yZWY4IiwiJGhvdmVyZWQiLCJfcmVmOSIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMCIsIl9yZWYxIiwiJGV4aXRpbmciLCJBY3RpdmVUb29sQ2hpcEljb25CdXR0b24iLCJfcmVmMTAiLCIkY2xvc2VTaG93biIsIl9yZWYxMSIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJwcmltYXJ5Iiwic3RvcFB1bHNlIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBzY3JvbGxhYmxlU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3NoYXJlZC9zY3JvbGxhYmxlJ1xuaW1wb3J0IHsgQ2xlYXJCdXR0b24gfSBmcm9tICcuLi9DbGVhckJ1dHRvbidcbmltcG9ydCB7XG4gIE1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgsXG4gIE1BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYLFxuICBNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWCxcbn0gZnJvbSAnLi9tYWlhSW5wdXRMYXlvdXQnXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA1OHB4O1xuICBtYXgtaGVpZ2h0OiAke01BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYfXB4O1xuICBnYXA6ICR7TUFJQV9JTlBVVF9DSElQU19DT05URU5UX0dBUF9QWH1weDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMudGV4dC5kaXNhYmxlZH07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gIH1cblxuICAkeyh7IGhhc0F0dGFjaG1lbnRzIH0pID0+XG4gICAgaGFzQXR0YWNobWVudHMgJiZcbiAgICBjc3NgXG4gICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgIGB9XG5cbiAgJHsoeyAkZmlsZURyYWdBY3RpdmUgfSkgPT5cbiAgICAkZmlsZURyYWdBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDExOSwgMTg5LCAwLjA2KTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFEcm9wT3ZlcmxheSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5gXG5cbi8qKiBUb29sYmFyIGZpamEgZW4gMiBmaWxhczogaW5wdXQgYXJyaWJhLCArIC8gc2VuZCBhYmFqbyAodG9vbGJhciBubyBzY3JvbGxlYSkuICovXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIGF1dG8pIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICByb3ctZ2FwOiAke01BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYfXB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIENlbGRhIGRlbCBlZGl0b3IgKGVsIHNjcm9sbCB2aXZlIGVuIGVsIGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgU0NJbnB1dEVkaXRvckNlbGwgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG4vKiogRmlsYSBjb21wYXJ0aWRhOiBjaGlwIGRlIGNvbnRleHRvICsgY2hpcHMgZGUgYXR0YWNobWVudHMgKHdyYXApLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRDaGlwc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbmBcblxuLyoqIEZpbGEgaW5mZXJpb3IgZGUgYm90b25lczogc2llbXByZSB2aXNpYmxlLCBudW5jYSBzY3JvbGxlYSBjb24gZWwgdGV4dG8uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dFRvb2xiYXJSb3cgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuYFxuXG4vKiogSW5kaWNhZG9yZXMgYSBsYSBpenF1aWVyZGEgZGVsIHNlbmQgKGFjY2VzbyBDT1IgLyBtb2RlbG8pIHBhcmEgYWdlbnRlcyBjdXN0b20uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJbmRpY2F0b3JzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJY29uQnV0dG9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xuICAkdG9vbGJhckxheW91dFZhcmlhbnQ/OiAnc3RhY2tlZFJvd3MnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWF4LWhlaWdodDogMTcwcHg7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIGdyaWQtcm93OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRCdXR0b24gPSBzdHlsZWQoQ2xlYXJCdXR0b24pPHsgaGFzVmFsdWVzPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNWYWx1ZXMgfSkgPT4gKGhhc1ZhbHVlcyA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6ICcjZjJmMmYyJyl9O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgIGhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuXG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgICFoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgc3ZnIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXgtd2lkdGg6IDExOHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gIH1cblxuICAke1NDTUlBdHRhY2htZW50fTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBsaW5lLWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVRvb2xzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNUb2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJG1lbnVPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7KHsgJG1lbnVPcGVuIH0pID0+ICgkbWVudU9wZW4gPyAnI2YyZjJmMicgOiBjb2xvcnMud2hpdGUubWFpbil9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXMtdmlzaWJsZTpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTa2lsbHNUb2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLndoaXRlLm1haW59O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY29yLWNvbG9yLWljb24tc3VidGxlLCAjODA4MDgwKTtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzLXZpc2libGU6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVQYXBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB3aWR0aDogMjA5cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLmNvbG9ycy5ncmF5LmxpZ2h0fTtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUlubmVyQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVEaXZpZGVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDE3MHB4O1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjb2xvcnMuYmFja2dyb3VuZC5zZWNvbmRhcnl9O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBjb2xvcjogJHtNQUlBX0NIQVRfSU5QVVRfVUkubWVudUljb259O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBSb290ID0gc3R5bGVkLmRpdjx7ICRob3ZlcmVkOiBib29sZWFuOyAkZXhpdGluZzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxNDRweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMTZweCcgOiAnMCcpfTtcbiAgYmFja2dyb3VuZDogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyBNQUlBX0NIQVRfSU5QVVRfVUkuY2hpcFN1cmZhY2VIb3ZlciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgYm94LXNoYWRvdzogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNyknIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjIycyBlYXNlLFxuICAgIGJvcmRlci1yYWRpdXMgMC4yMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMjJzIGVhc2U7XG5cbiAgJHsoeyAkZXhpdGluZyB9KSA9PlxuICAgICRleGl0aW5nICYmXG4gICAgY3NzYFxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBPdXR9IDAuMjJzIGVhc2UgZm9yd2FyZHM7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkY2xvc2VTaG93bjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICR7KHsgJGNsb3NlU2hvd24gfSkgPT5cbiAgICAkY2xvc2VTaG93biAmJlxuICAgIGNzc2BcbiAgICAgIHN2ZyB7XG4gICAgICAgIGFuaW1hdGlvbjogJHthY3RpdmVUb29sQ2hpcENsb3NlSWNvbklufSAwLjI0cyBlYXNlIGZvcndhcmRzO1xuICAgICAgfVxuICAgIGB9XG5cbiAgLyogU2NhbGUgc29sbyBjb24gbGEgY3J1eiB2aXNpYmxlIHkgaG92ZXIgc29icmUgZWxsYSAobm8gc29icmUgZWwgY2hpcC9pY29ubyBkZSB0b29sKSAqL1xuICAmOmhvdmVyIHtcbiAgICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgICAkY2xvc2VTaG93biAmJlxuICAgICAgY3NzYFxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICAgICAgYH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5gXG5jb25zdCBzdG9wUHVsc2UgPSBrZXlmcmFtZXNgXG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOGM4YztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBhbmltYXRpb246ICR7c3RvcFB1bHNlfSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwXX0gIWltcG9ydGFudDtcblxuICAgICR7U3R5bGVkTUFJQVN0b3BJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwMF19ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxt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
|