@projectcor/maia-components 2.11.15-0 → 2.11.15-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +128 -86
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +41 -21
  3. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +128 -120
  4. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +22 -42
  5. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +82 -2
  7. package/lib/components/molecules/ChatAIMarketplace/ChatAIMarketplace.js +255 -0
  8. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +24 -26
  9. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +11 -2
  10. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -72
  11. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -10
  12. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +10 -5
  13. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  14. package/lib/components/molecules/Sidebar/Sidebar.js +143 -14
  15. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +10 -1
  16. package/lib/hooks/useChatManager/useChatManager.js +89 -56
  17. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +10 -6
  18. package/lib/lang/br/index.js +68 -9
  19. package/lib/lang/en/index.js +67 -7
  20. package/lib/lang/es/index.js +67 -7
  21. package/lib/lang/fr/index.js +3 -1
  22. package/lib/services/maia/Orchestrator/orchestrator.js +22 -16
  23. package/lib/types/agent.js +1 -1
  24. package/lib/types/global.d.js +1 -1
  25. package/package.json +1 -1
@@ -0,0 +1,255 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import React from 'react';
5
+ import { useT } from '../../../hooks/useT';
6
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
7
+ var mockAgents = [{
8
+ id: 'template-branding-specialist',
9
+ name: 'Especialista en Branding',
10
+ type: 'template',
11
+ entity: 'global',
12
+ introduction: 'Construye una voz de marca clara, consistente y memorable.',
13
+ welcomeMessage: 'Ayuda a definir posicionamiento, tono de marca, mensajes clave y lineamientos visuales.',
14
+ badge: 'branding',
15
+ emoji: '🎨',
16
+ templateValues: {
17
+ general: {
18
+ name: 'Especialista en Branding',
19
+ emoji: '🎨',
20
+ introduction: 'Soy tu especialista en branding. Te ayudo a definir identidad, tono y posicionamiento de marca.',
21
+ inputPlaceholder: 'Contame sobre tu marca, audiencia o desafío de branding...',
22
+ userPrompt: 'Sos un especialista en branding. Ayudás a definir identidad de marca, posicionamiento, tono comunicacional, mensajes clave y lineamientos conceptuales para marketing online y offline.'
23
+ }
24
+ }
25
+ }, {
26
+ id: 'template-linkedin-seo',
27
+ name: 'SEO de LinkedIn',
28
+ type: 'template',
29
+ entity: 'global',
30
+ introduction: 'Optimiza perfiles y contenidos para ganar visibilidad orgánica.',
31
+ welcomeMessage: 'Optimiza perfiles, contenidos y estrategia de publicaciones para mejorar alcance y descubrimiento.',
32
+ badge: 'linkedin',
33
+ emoji: '💼',
34
+ templateValues: {
35
+ general: {
36
+ name: 'SEO de LinkedIn',
37
+ emoji: '💼',
38
+ introduction: 'Soy tu especialista en SEO de LinkedIn. Te ayudo a optimizar perfiles, posteos y posicionamiento.',
39
+ inputPlaceholder: 'Pegá tu perfil, post o idea y lo optimizamos para LinkedIn...',
40
+ userPrompt: 'Sos un especialista en SEO de LinkedIn. Ayudás a optimizar perfiles personales y corporativos, mejorar contenidos para alcance orgánico, definir keywords y proponer estrategias para ganar visibilidad en LinkedIn.'
41
+ }
42
+ }
43
+ }, {
44
+ id: 'template-marketing-strategist',
45
+ name: 'Especialista en Marketing',
46
+ type: 'template',
47
+ entity: 'global',
48
+ introduction: 'Define campañas, audiencias y mensajes para crecer mejor.',
49
+ welcomeMessage: 'Propone campañas, define audiencias, mensajes y acciones para ejecutar estrategias de marketing.',
50
+ badge: 'marketing',
51
+ emoji: '📣',
52
+ templateValues: {
53
+ general: {
54
+ name: 'Especialista en Marketing',
55
+ emoji: '📣',
56
+ introduction: 'Soy tu especialista en marketing. Te ayudo a pensar campañas, audiencias y acciones de crecimiento.',
57
+ inputPlaceholder: 'Contame qué producto, campaña o canal querés trabajar...',
58
+ userPrompt: 'Sos un especialista en marketing digital. Ayudás a diseñar campañas, definir audiencias, estructurar mensajes, priorizar canales y proponer acciones con foco en performance y crecimiento.'
59
+ }
60
+ }
61
+ }];
62
+ export var ChatAIMarketplace = function ChatAIMarketplace(_ref) {
63
+ var onBack = _ref.onBack;
64
+ var _useT = useT(),
65
+ t = _useT.t;
66
+ var handleUseAgent = function handleUseAgent(agent) {
67
+ document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
68
+ detail: {
69
+ agentValues: {
70
+ isOpen: true,
71
+ values: {
72
+ isEditing: false,
73
+ knowledge: [],
74
+ general: _objectSpread({}, agent.templateValues.general),
75
+ accessibility: {
76
+ accessType: 'company',
77
+ clients: null
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }));
83
+ };
84
+ return /*#__PURE__*/_jsxs("div", {
85
+ style: {
86
+ display: 'flex',
87
+ flexDirection: 'column',
88
+ gap: '24px',
89
+ padding: '28px 24px 16px',
90
+ height: '100%',
91
+ overflowY: 'auto',
92
+ background: 'radial-gradient(circle at top left, rgba(238, 243, 255, 0.9), transparent 28%), linear-gradient(180deg, #fcfcfd 0%, #f7f8fa 100%)'
93
+ },
94
+ children: [/*#__PURE__*/_jsxs("button", {
95
+ type: "button",
96
+ onClick: onBack,
97
+ style: {
98
+ alignSelf: 'flex-start',
99
+ border: 'none',
100
+ background: 'transparent',
101
+ padding: 0,
102
+ color: '#666666',
103
+ fontSize: '14px',
104
+ fontWeight: 500,
105
+ cursor: 'pointer'
106
+ },
107
+ children: ['<', " ", t('marketplace.back')]
108
+ }), /*#__PURE__*/_jsxs("div", {
109
+ style: {
110
+ display: 'flex',
111
+ flexDirection: 'column',
112
+ gap: '10px',
113
+ maxWidth: '760px'
114
+ },
115
+ children: [/*#__PURE__*/_jsx("span", {
116
+ style: {
117
+ fontSize: '34px'
118
+ },
119
+ children: "\uD83C\uDFEC"
120
+ }), /*#__PURE__*/_jsx("h2", {
121
+ style: {
122
+ margin: 0,
123
+ fontSize: '38px',
124
+ lineHeight: '105%',
125
+ color: '#20201f',
126
+ letterSpacing: '-0.02em'
127
+ },
128
+ children: t('marketplace.title')
129
+ }), /*#__PURE__*/_jsx("p", {
130
+ style: {
131
+ margin: 0,
132
+ color: '#5f6470',
133
+ fontSize: '18px',
134
+ lineHeight: '155%'
135
+ },
136
+ children: t('marketplace.description')
137
+ })]
138
+ }), /*#__PURE__*/_jsx("div", {
139
+ style: {
140
+ display: 'grid',
141
+ gridTemplateColumns: 'repeat(auto-fit, minmax(420px, 1fr))',
142
+ gap: '18px',
143
+ alignItems: 'stretch'
144
+ },
145
+ children: mockAgents.map(function (agent) {
146
+ return /*#__PURE__*/_jsxs("div", {
147
+ style: {
148
+ border: '1px solid rgba(210, 214, 220, 0.8)',
149
+ borderRadius: '28px',
150
+ padding: '22px',
151
+ background: 'linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(250,251,253,0.98) 100%)',
152
+ display: 'flex',
153
+ flexDirection: 'column',
154
+ gap: '18px',
155
+ minHeight: '250px',
156
+ boxShadow: '0 12px 30px rgba(16, 24, 40, 0.06)'
157
+ },
158
+ children: [/*#__PURE__*/_jsxs("div", {
159
+ style: {
160
+ display: 'flex',
161
+ justifyContent: 'space-between',
162
+ alignItems: 'flex-start',
163
+ gap: '16px'
164
+ },
165
+ children: [/*#__PURE__*/_jsx("div", {
166
+ style: {
167
+ width: '68px',
168
+ height: '68px',
169
+ borderRadius: '22px',
170
+ background: 'linear-gradient(180deg, #f7f8ff 0%, #eef2ff 100%)',
171
+ display: 'flex',
172
+ alignItems: 'center',
173
+ justifyContent: 'center',
174
+ fontSize: '32px',
175
+ boxShadow: 'inset 0 1px 0 rgba(255,255,255,0.9)'
176
+ },
177
+ children: agent.emoji
178
+ }), /*#__PURE__*/_jsx("span", {
179
+ style: {
180
+ fontSize: '12px',
181
+ color: '#384152',
182
+ border: '1px solid rgba(208, 214, 221, 0.95)',
183
+ borderRadius: '999px',
184
+ padding: '8px 12px',
185
+ textTransform: 'uppercase',
186
+ letterSpacing: '0.06em',
187
+ fontWeight: 700,
188
+ background: 'rgba(255,255,255,0.86)'
189
+ },
190
+ children: t("marketplace.badges.".concat(agent.badge))
191
+ })]
192
+ }), /*#__PURE__*/_jsxs("div", {
193
+ style: {
194
+ display: 'flex',
195
+ flexDirection: 'column',
196
+ gap: '8px'
197
+ },
198
+ children: [/*#__PURE__*/_jsx("strong", {
199
+ style: {
200
+ fontSize: '32px',
201
+ color: '#20201f',
202
+ lineHeight: '108%',
203
+ letterSpacing: '-0.03em'
204
+ },
205
+ children: agent.name
206
+ }), /*#__PURE__*/_jsx("span", {
207
+ style: {
208
+ fontSize: '18px',
209
+ color: '#4b5565',
210
+ lineHeight: '145%'
211
+ },
212
+ children: agent.introduction
213
+ })]
214
+ }), /*#__PURE__*/_jsx("p", {
215
+ style: {
216
+ margin: 0,
217
+ color: '#656d7b',
218
+ fontSize: '18px',
219
+ lineHeight: '155%',
220
+ flexGrow: 1
221
+ },
222
+ children: agent.welcomeMessage
223
+ }), /*#__PURE__*/_jsx("div", {
224
+ style: {
225
+ display: 'flex',
226
+ justifyContent: 'flex-end',
227
+ alignItems: 'center',
228
+ paddingTop: '16px',
229
+ borderTop: '1px solid rgba(228, 232, 238, 0.9)'
230
+ },
231
+ children: /*#__PURE__*/_jsx("button", {
232
+ type: "button",
233
+ onClick: function onClick() {
234
+ return handleUseAgent(agent);
235
+ },
236
+ style: {
237
+ border: 'none',
238
+ background: '#20201f',
239
+ color: '#ffffff',
240
+ borderRadius: '999px',
241
+ padding: '14px 20px',
242
+ fontSize: '15px',
243
+ fontWeight: 600,
244
+ cursor: 'pointer',
245
+ boxShadow: '0 10px 18px rgba(32, 32, 31, 0.18)'
246
+ },
247
+ children: t('marketplace.useTemplate')
248
+ })
249
+ })]
250
+ }, agent.id);
251
+ })
252
+ })]
253
+ });
254
+ };
255
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVQiLCJqc3hzIiwiX2pzeHMiLCJqc3giLCJfanN4IiwibW9ja0FnZW50cyIsImlkIiwibmFtZSIsInR5cGUiLCJlbnRpdHkiLCJpbnRyb2R1Y3Rpb24iLCJ3ZWxjb21lTWVzc2FnZSIsImJhZGdlIiwiZW1vamkiLCJ0ZW1wbGF0ZVZhbHVlcyIsImdlbmVyYWwiLCJpbnB1dFBsYWNlaG9sZGVyIiwidXNlclByb21wdCIsIkNoYXRBSU1hcmtldHBsYWNlIiwiX3JlZiIsIm9uQmFjayIsIl91c2VUIiwidCIsImhhbmRsZVVzZUFnZW50IiwiYWdlbnQiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwiaXNPcGVuIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwia25vd2xlZGdlIiwiX29iamVjdFNwcmVhZCIsImFjY2Vzc2liaWxpdHkiLCJhY2Nlc3NUeXBlIiwiY2xpZW50cyIsInN0eWxlIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJnYXAiLCJwYWRkaW5nIiwiaGVpZ2h0Iiwib3ZlcmZsb3dZIiwiYmFja2dyb3VuZCIsImNoaWxkcmVuIiwib25DbGljayIsImFsaWduU2VsZiIsImJvcmRlciIsImNvbG9yIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwiY3Vyc29yIiwibWF4V2lkdGgiLCJtYXJnaW4iLCJsaW5lSGVpZ2h0IiwibGV0dGVyU3BhY2luZyIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYm9yZGVyUmFkaXVzIiwibWluSGVpZ2h0IiwiYm94U2hhZG93IiwianVzdGlmeUNvbnRlbnQiLCJ3aWR0aCIsInRleHRUcmFuc2Zvcm0iLCJjb25jYXQiLCJmbGV4R3JvdyIsInBhZGRpbmdUb3AiLCJib3JkZXJUb3AiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWFya2V0cGxhY2UvQ2hhdEFJTWFya2V0cGxhY2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuXG50eXBlIENoYXRBSU1hcmtldHBsYWNlUHJvcHMgPSB7XG4gIG9uQmFjazogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBtb2NrQWdlbnRzID0gW1xuICB7XG4gICAgaWQ6ICd0ZW1wbGF0ZS1icmFuZGluZy1zcGVjaWFsaXN0JyxcbiAgICBuYW1lOiAnRXNwZWNpYWxpc3RhIGVuIEJyYW5kaW5nJyxcbiAgICB0eXBlOiAndGVtcGxhdGUnLFxuICAgIGVudGl0eTogJ2dsb2JhbCcsXG4gICAgaW50cm9kdWN0aW9uOiAnQ29uc3RydXllIHVuYSB2b3ogZGUgbWFyY2EgY2xhcmEsIGNvbnNpc3RlbnRlIHkgbWVtb3JhYmxlLicsXG4gICAgd2VsY29tZU1lc3NhZ2U6ICdBeXVkYSBhIGRlZmluaXIgcG9zaWNpb25hbWllbnRvLCB0b25vIGRlIG1hcmNhLCBtZW5zYWplcyBjbGF2ZSB5IGxpbmVhbWllbnRvcyB2aXN1YWxlcy4nLFxuICAgIGJhZGdlOiAnYnJhbmRpbmcnLFxuICAgIGVtb2ppOiAn8J+OqCcsXG4gICAgdGVtcGxhdGVWYWx1ZXM6IHtcbiAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgbmFtZTogJ0VzcGVjaWFsaXN0YSBlbiBCcmFuZGluZycsXG4gICAgICAgIGVtb2ppOiAn8J+OqCcsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ1NveSB0dSBlc3BlY2lhbGlzdGEgZW4gYnJhbmRpbmcuIFRlIGF5dWRvIGEgZGVmaW5pciBpZGVudGlkYWQsIHRvbm8geSBwb3NpY2lvbmFtaWVudG8gZGUgbWFyY2EuJyxcbiAgICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ0NvbnRhbWUgc29icmUgdHUgbWFyY2EsIGF1ZGllbmNpYSBvIGRlc2Fmw61vIGRlIGJyYW5kaW5nLi4uJyxcbiAgICAgICAgdXNlclByb21wdDpcbiAgICAgICAgICAnU29zIHVuIGVzcGVjaWFsaXN0YSBlbiBicmFuZGluZy4gQXl1ZMOhcyBhIGRlZmluaXIgaWRlbnRpZGFkIGRlIG1hcmNhLCBwb3NpY2lvbmFtaWVudG8sIHRvbm8gY29tdW5pY2FjaW9uYWwsIG1lbnNhamVzIGNsYXZlIHkgbGluZWFtaWVudG9zIGNvbmNlcHR1YWxlcyBwYXJhIG1hcmtldGluZyBvbmxpbmUgeSBvZmZsaW5lLicsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ3RlbXBsYXRlLWxpbmtlZGluLXNlbycsXG4gICAgbmFtZTogJ1NFTyBkZSBMaW5rZWRJbicsXG4gICAgdHlwZTogJ3RlbXBsYXRlJyxcbiAgICBlbnRpdHk6ICdnbG9iYWwnLFxuICAgIGludHJvZHVjdGlvbjogJ09wdGltaXphIHBlcmZpbGVzIHkgY29udGVuaWRvcyBwYXJhIGdhbmFyIHZpc2liaWxpZGFkIG9yZ8OhbmljYS4nLFxuICAgIHdlbGNvbWVNZXNzYWdlOiAnT3B0aW1pemEgcGVyZmlsZXMsIGNvbnRlbmlkb3MgeSBlc3RyYXRlZ2lhIGRlIHB1YmxpY2FjaW9uZXMgcGFyYSBtZWpvcmFyIGFsY2FuY2UgeSBkZXNjdWJyaW1pZW50by4nLFxuICAgIGJhZGdlOiAnbGlua2VkaW4nLFxuICAgIGVtb2ppOiAn8J+SvCcsXG4gICAgdGVtcGxhdGVWYWx1ZXM6IHtcbiAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgbmFtZTogJ1NFTyBkZSBMaW5rZWRJbicsXG4gICAgICAgIGVtb2ppOiAn8J+SvCcsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ1NveSB0dSBlc3BlY2lhbGlzdGEgZW4gU0VPIGRlIExpbmtlZEluLiBUZSBheXVkbyBhIG9wdGltaXphciBwZXJmaWxlcywgcG9zdGVvcyB5IHBvc2ljaW9uYW1pZW50by4nLFxuICAgICAgICBpbnB1dFBsYWNlaG9sZGVyOiAnUGVnw6EgdHUgcGVyZmlsLCBwb3N0IG8gaWRlYSB5IGxvIG9wdGltaXphbW9zIHBhcmEgTGlua2VkSW4uLi4nLFxuICAgICAgICB1c2VyUHJvbXB0OlxuICAgICAgICAgICdTb3MgdW4gZXNwZWNpYWxpc3RhIGVuIFNFTyBkZSBMaW5rZWRJbi4gQXl1ZMOhcyBhIG9wdGltaXphciBwZXJmaWxlcyBwZXJzb25hbGVzIHkgY29ycG9yYXRpdm9zLCBtZWpvcmFyIGNvbnRlbmlkb3MgcGFyYSBhbGNhbmNlIG9yZ8OhbmljbywgZGVmaW5pciBrZXl3b3JkcyB5IHByb3BvbmVyIGVzdHJhdGVnaWFzIHBhcmEgZ2FuYXIgdmlzaWJpbGlkYWQgZW4gTGlua2VkSW4uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAndGVtcGxhdGUtbWFya2V0aW5nLXN0cmF0ZWdpc3QnLFxuICAgIG5hbWU6ICdFc3BlY2lhbGlzdGEgZW4gTWFya2V0aW5nJyxcbiAgICB0eXBlOiAndGVtcGxhdGUnLFxuICAgIGVudGl0eTogJ2dsb2JhbCcsXG4gICAgaW50cm9kdWN0aW9uOiAnRGVmaW5lIGNhbXBhw7FhcywgYXVkaWVuY2lhcyB5IG1lbnNhamVzIHBhcmEgY3JlY2VyIG1lam9yLicsXG4gICAgd2VsY29tZU1lc3NhZ2U6ICdQcm9wb25lIGNhbXBhw7FhcywgZGVmaW5lIGF1ZGllbmNpYXMsIG1lbnNhamVzIHkgYWNjaW9uZXMgcGFyYSBlamVjdXRhciBlc3RyYXRlZ2lhcyBkZSBtYXJrZXRpbmcuJyxcbiAgICBiYWRnZTogJ21hcmtldGluZycsXG4gICAgZW1vamk6ICfwn5OjJyxcbiAgICB0ZW1wbGF0ZVZhbHVlczoge1xuICAgICAgZ2VuZXJhbDoge1xuICAgICAgICBuYW1lOiAnRXNwZWNpYWxpc3RhIGVuIE1hcmtldGluZycsXG4gICAgICAgIGVtb2ppOiAn8J+ToycsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ1NveSB0dSBlc3BlY2lhbGlzdGEgZW4gbWFya2V0aW5nLiBUZSBheXVkbyBhIHBlbnNhciBjYW1wYcOxYXMsIGF1ZGllbmNpYXMgeSBhY2Npb25lcyBkZSBjcmVjaW1pZW50by4nLFxuICAgICAgICBpbnB1dFBsYWNlaG9sZGVyOiAnQ29udGFtZSBxdcOpIHByb2R1Y3RvLCBjYW1wYcOxYSBvIGNhbmFsIHF1ZXLDqXMgdHJhYmFqYXIuLi4nLFxuICAgICAgICB1c2VyUHJvbXB0OlxuICAgICAgICAgICdTb3MgdW4gZXNwZWNpYWxpc3RhIGVuIG1hcmtldGluZyBkaWdpdGFsLiBBeXVkw6FzIGEgZGlzZcOxYXIgY2FtcGHDsWFzLCBkZWZpbmlyIGF1ZGllbmNpYXMsIGVzdHJ1Y3R1cmFyIG1lbnNhamVzLCBwcmlvcml6YXIgY2FuYWxlcyB5IHByb3BvbmVyIGFjY2lvbmVzIGNvbiBmb2NvIGVuIHBlcmZvcm1hbmNlIHkgY3JlY2ltaWVudG8uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbl1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1hcmtldHBsYWNlID0gKHsgb25CYWNrIH06IENoYXRBSU1hcmtldHBsYWNlUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogKHR5cGVvZiBtb2NrQWdlbnRzKVtudW1iZXJdKSA9PiB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAga25vd2xlZGdlOiBbXSxcbiAgICAgICAgICAgICAgZ2VuZXJhbDoge1xuICAgICAgICAgICAgICAgIC4uLmFnZW50LnRlbXBsYXRlVmFsdWVzLmdlbmVyYWwsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHk6IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUeXBlOiAnY29tcGFueScsXG4gICAgICAgICAgICAgICAgY2xpZW50czogbnVsbCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICBnYXA6ICcyNHB4JyxcbiAgICAgICAgcGFkZGluZzogJzI4cHggMjRweCAxNnB4JyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICdyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCBsZWZ0LCByZ2JhKDIzOCwgMjQzLCAyNTUsIDAuOSksIHRyYW5zcGFyZW50IDI4JSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmY2ZjZmQgMCUsICNmN2Y4ZmEgMTAwJSknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtvbkJhY2t9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYWxpZ25TZWxmOiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIGNvbG9yOiAnIzY2NjY2NicsXG4gICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHsnPCd9IHt0KCdtYXJrZXRwbGFjZS5iYWNrJyl9XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICBnYXA6ICcxMHB4JyxcbiAgICAgICAgICBtYXhXaWR0aDogJzc2MHB4JyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFNpemU6ICczNHB4JyB9fT7wn4+sPC9zcGFuPlxuICAgICAgICA8aDIgc3R5bGU9e3sgbWFyZ2luOiAwLCBmb250U2l6ZTogJzM4cHgnLCBsaW5lSGVpZ2h0OiAnMTA1JScsIGNvbG9yOiAnIzIwMjAxZicsIGxldHRlclNwYWNpbmc6ICctMC4wMmVtJyB9fT5cbiAgICAgICAgICB7dCgnbWFya2V0cGxhY2UudGl0bGUnKX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPHAgc3R5bGU9e3sgbWFyZ2luOiAwLCBjb2xvcjogJyM1ZjY0NzAnLCBmb250U2l6ZTogJzE4cHgnLCBsaW5lSGVpZ2h0OiAnMTU1JScgfX0+e3QoJ21hcmtldHBsYWNlLmRlc2NyaXB0aW9uJyl9PC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdChhdXRvLWZpdCwgbWlubWF4KDQyMHB4LCAxZnIpKScsXG4gICAgICAgICAgZ2FwOiAnMThweCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ3N0cmV0Y2gnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7bW9ja0FnZW50cy5tYXAoYWdlbnQgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17YWdlbnQuaWR9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMTAsIDIxNCwgMjIwLCAwLjgpJyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMjhweCcsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcyMnB4JyxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ2xpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45OCkgMCUsIHJnYmEoMjUwLDI1MSwyNTMsMC45OCkgMTAwJSknLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBnYXA6ICcxOHB4JyxcbiAgICAgICAgICAgICAgbWluSGVpZ2h0OiAnMjUwcHgnLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDEycHggMzBweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDYpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JywgZ2FwOiAnMTZweCcgfX0+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgd2lkdGg6ICc2OHB4JyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzY4cHgnLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMjJweCcsXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y3ZjhmZiAwJSwgI2VlZjJmZiAxMDAlKScsXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC45KScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHthZ2VudC5lbW9qaX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJyMzODQxNTInLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMjA4LCAyMTQsIDIyMSwgMC45NSknLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnOTk5cHgnLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCAxMnB4JyxcbiAgICAgICAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogJzAuMDZlbScsXG4gICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSgyNTUsMjU1LDI1NSwwLjg2KScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KGBtYXJrZXRwbGFjZS5iYWRnZXMuJHthZ2VudC5iYWRnZX1gKX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT17eyBmb250U2l6ZTogJzMycHgnLCBjb2xvcjogJyMyMDIwMWYnLCBsaW5lSGVpZ2h0OiAnMTA4JScsIGxldHRlclNwYWNpbmc6ICctMC4wM2VtJyB9fT5cbiAgICAgICAgICAgICAgICB7YWdlbnQubmFtZX1cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGZvbnRTaXplOiAnMThweCcsIGNvbG9yOiAnIzRiNTU2NScsIGxpbmVIZWlnaHQ6ICcxNDUlJyB9fT57YWdlbnQuaW50cm9kdWN0aW9ufTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM2NTZkN2InLFxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMThweCcsXG4gICAgICAgICAgICAgICAgbGluZUhlaWdodDogJzE1NSUnLFxuICAgICAgICAgICAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YWdlbnQud2VsY29tZU1lc3NhZ2V9XG4gICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgcGFkZGluZ1RvcDogJzE2cHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCByZ2JhKDIyOCwgMjMyLCAyMzgsIDAuOSknLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlVXNlQWdlbnQoYWdlbnQpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjMjAyMDFmJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc5OTlweCcsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTRweCAyMHB4JyxcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTVweCcsXG4gICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA2MDAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMTBweCAxOHB4IHJnYmEoMzIsIDMyLCAzMSwgMC4xOCknLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UudXNlVGVtcGxhdGUnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQUEsU0FBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQU0xQyxJQUFNQyxVQUFVLEdBQUcsQ0FDakI7RUFDRUMsRUFBRSxFQUFFLDhCQUE4QjtFQUNsQ0MsSUFBSSxF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