@projectcor/maia-components 2.11.36-1 → 2.11.36-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.
@@ -0,0 +1,625 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ import ReactDOM from 'react-dom';
6
+ import { useCallback, useEffect, useRef, useState } from 'react';
7
+ import { useTranslation } from 'react-i18next';
8
+ import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
9
+ import { CUButton } from '@projectcor/button/lib/components/CUButton';
10
+ import { AbmTriggersSection } from '../AbmSection/AbmTriggersSection/AbmTriggersSection';
11
+ import { Backdrop } from '../../atoms/Backdrop';
12
+ import { fetchMaia } from '../../../services/maia/client';
13
+ import { getMySchedules, deleteSchedule } from '../../../services/maia/Schedules';
14
+ import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal/DeleteQuestionModal';
15
+ import styled from 'styled-components';
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ var SCWrapper = styled.div.withConfig({
18
+ displayName: "SchedulesPage__SCWrapper",
19
+ componentId: "sc-1b6u56f-0"
20
+ })(["display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;"]);
21
+ var SCHeader = styled.div.withConfig({
22
+ displayName: "SchedulesPage__SCHeader",
23
+ componentId: "sc-1b6u56f-1"
24
+ })(["display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #f0f0f0;flex-shrink:0;"]);
25
+ var SCTitle = styled.h2.withConfig({
26
+ displayName: "SchedulesPage__SCTitle",
27
+ componentId: "sc-1b6u56f-2"
28
+ })(["font-size:16px;font-weight:600;color:#111827;margin:0;"]);
29
+ var SCNewButton = styled.div.withConfig({
30
+ displayName: "SchedulesPage__SCNewButton",
31
+ componentId: "sc-1b6u56f-3"
32
+ })(["flex-shrink:0;"]);
33
+ var SCContent = styled.div.withConfig({
34
+ displayName: "SchedulesPage__SCContent",
35
+ componentId: "sc-1b6u56f-4"
36
+ })(["flex:1;overflow-y:auto;"]);
37
+ var SCLoading = styled.div.withConfig({
38
+ displayName: "SchedulesPage__SCLoading",
39
+ componentId: "sc-1b6u56f-5"
40
+ })(["padding:24px;font-size:13px;color:#6b7280;"]);
41
+ var SCEmptyState = styled.div.withConfig({
42
+ displayName: "SchedulesPage__SCEmptyState",
43
+ componentId: "sc-1b6u56f-6"
44
+ })(["padding:48px 24px;text-align:center;font-size:13px;color:#9ca3af;"]);
45
+ var SCList = styled.div.withConfig({
46
+ displayName: "SchedulesPage__SCList",
47
+ componentId: "sc-1b6u56f-7"
48
+ })(["padding:16px 24px;display:flex;flex-direction:column;gap:10px;"]);
49
+ var SCRow = styled.div.withConfig({
50
+ displayName: "SchedulesPage__SCRow",
51
+ componentId: "sc-1b6u56f-8"
52
+ })(["display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;gap:12px;"]);
53
+ var SCRowLeft = styled.div.withConfig({
54
+ displayName: "SchedulesPage__SCRowLeft",
55
+ componentId: "sc-1b6u56f-9"
56
+ })(["display:flex;flex-direction:column;gap:4px;min-width:0;"]);
57
+ var SCRoutineName = styled.span.withConfig({
58
+ displayName: "SchedulesPage__SCRoutineName",
59
+ componentId: "sc-1b6u56f-10"
60
+ })(["font-size:13px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
61
+ var SCRoutineMeta = styled.span.withConfig({
62
+ displayName: "SchedulesPage__SCRoutineMeta",
63
+ componentId: "sc-1b6u56f-11"
64
+ })(["font-size:12px;color:#6b7280;display:flex;gap:8px;flex-wrap:wrap;"]);
65
+ var SCAgentBadge = styled.span.withConfig({
66
+ displayName: "SchedulesPage__SCAgentBadge",
67
+ componentId: "sc-1b6u56f-12"
68
+ })(["background:#f0f9ff;color:rgba(0,68,102,1);font-weight:500;padding:1px 7px;border-radius:99px;font-size:11px;"]);
69
+ var SCStatusBadge = styled.span.withConfig({
70
+ displayName: "SchedulesPage__SCStatusBadge",
71
+ componentId: "sc-1b6u56f-13"
72
+ })(["padding:1px 7px;border-radius:99px;font-size:11px;font-weight:500;background:", ";color:", ";"], function (_ref) {
73
+ var status = _ref.status;
74
+ return status === 'active' ? '#d1fae5' : status === 'paused' ? '#fef3c7' : '#f3f4f6';
75
+ }, function (_ref2) {
76
+ var status = _ref2.status;
77
+ return status === 'active' ? '#065f46' : status === 'paused' ? '#92400e' : '#6b7280';
78
+ });
79
+ var SCModalBox = styled.div.withConfig({
80
+ displayName: "SchedulesPage__SCModalBox",
81
+ componentId: "sc-1b6u56f-14"
82
+ })(["background:#fff;border-radius:12px;width:720px;max-width:94vw;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,0.15);overflow:hidden;"]);
83
+ var SCModalHeader = styled.div.withConfig({
84
+ displayName: "SchedulesPage__SCModalHeader",
85
+ componentId: "sc-1b6u56f-15"
86
+ })(["display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0;flex-shrink:0;"]);
87
+ var SCModalTitle = styled.span.withConfig({
88
+ displayName: "SchedulesPage__SCModalTitle",
89
+ componentId: "sc-1b6u56f-16"
90
+ })(["font-size:14px;font-weight:600;color:#111827;"]);
91
+ var SCModalCloseButton = styled.button.withConfig({
92
+ displayName: "SchedulesPage__SCModalCloseButton",
93
+ componentId: "sc-1b6u56f-17"
94
+ })(["background:none;border:none;cursor:pointer;font-size:20px;color:#9ca3af;line-height:1;padding:0;&:hover{color:#374151;}"]);
95
+ var SCModalBody = styled.div.withConfig({
96
+ displayName: "SchedulesPage__SCModalBody",
97
+ componentId: "sc-1b6u56f-18"
98
+ })(["flex:1;overflow-y:auto;padding-bottom:24px;"]);
99
+ var SCModalFooter = styled.div.withConfig({
100
+ displayName: "SchedulesPage__SCModalFooter",
101
+ componentId: "sc-1b6u56f-19"
102
+ })(["display:flex;align-items:center;justify-content:flex-end;padding:16px 24px;border-top:1px solid #f0f0f0;flex-shrink:0;"]);
103
+ var SCModalSaveButton = styled.div.withConfig({
104
+ displayName: "SchedulesPage__SCModalSaveButton",
105
+ componentId: "sc-1b6u56f-20"
106
+ })(["flex-shrink:0;"]);
107
+ var SCAgentSelectorContainer = styled.div.withConfig({
108
+ displayName: "SchedulesPage__SCAgentSelectorContainer",
109
+ componentId: "sc-1b6u56f-21"
110
+ })(["position:relative;display:inline-flex;min-width:240px;padding:20px 24px 16px;"]);
111
+ var SCAgentSelectorTrigger = styled.button.withConfig({
112
+ displayName: "SchedulesPage__SCAgentSelectorTrigger",
113
+ componentId: "sc-1b6u56f-22"
114
+ })(["display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 12px;border:1px solid ", ";border-radius:8px;background:#fff;cursor:pointer;font-size:13px;color:#111827;"], function (_ref3) {
115
+ var open = _ref3.open;
116
+ return open ? 'rgba(0,68,102,1)' : '#d1d5db';
117
+ });
118
+ var SCAgentSelectorLabel = styled.span.withConfig({
119
+ displayName: "SchedulesPage__SCAgentSelectorLabel",
120
+ componentId: "sc-1b6u56f-23"
121
+ })(["font-size:11px;color:#6b7280;margin-right:4px;"]);
122
+ var SCAgentSelectorList = styled.ul.withConfig({
123
+ displayName: "SchedulesPage__SCAgentSelectorList",
124
+ componentId: "sc-1b6u56f-24"
125
+ })(["position:absolute;top:calc(100% - 8px);left:24px;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.1);list-style:none;margin:0;padding:4px 0;max-height:200px;overflow-y:auto;z-index:100;"]);
126
+ var SCAgentSelectorOption = styled.li.withConfig({
127
+ displayName: "SchedulesPage__SCAgentSelectorOption",
128
+ componentId: "sc-1b6u56f-25"
129
+ })(["padding:8px 12px;font-size:13px;cursor:pointer;color:", ";font-weight:", ";background:", ";&:hover{background:#f9fafb;}"], function (_ref4) {
130
+ var isSelected = _ref4.isSelected;
131
+ return isSelected ? 'rgba(0,68,102,1)' : '#111827';
132
+ }, function (_ref5) {
133
+ var isSelected = _ref5.isSelected;
134
+ return isSelected ? 600 : 400;
135
+ }, function (_ref6) {
136
+ var isSelected = _ref6.isSelected;
137
+ return isSelected ? '#f0f9ff' : 'transparent';
138
+ });
139
+ var SCDeleteButton = styled.button.withConfig({
140
+ displayName: "SchedulesPage__SCDeleteButton",
141
+ componentId: "sc-1b6u56f-26"
142
+ })(["background:none;border:none;cursor:pointer;padding:4px;color:#9ca3af;display:flex;align-items:center;border-radius:6px;&:hover{color:#ef4444;background:#fef2f2;}"]);
143
+ var SCRowRight = styled.div.withConfig({
144
+ displayName: "SchedulesPage__SCRowRight",
145
+ componentId: "sc-1b6u56f-27"
146
+ })(["display:flex;align-items:center;gap:8px;flex-shrink:0;"]);
147
+ var SCEmptyTemplates = styled.div.withConfig({
148
+ displayName: "SchedulesPage__SCEmptyTemplates",
149
+ componentId: "sc-1b6u56f-28"
150
+ })(["padding:32px 24px;display:flex;flex-direction:column;gap:16px;"]);
151
+ var SCEmptyTemplatesHeader = styled.div.withConfig({
152
+ displayName: "SchedulesPage__SCEmptyTemplatesHeader",
153
+ componentId: "sc-1b6u56f-29"
154
+ })(["display:flex;flex-direction:column;gap:4px;"]);
155
+ var SCEmptyTemplatesTitle = styled.span.withConfig({
156
+ displayName: "SchedulesPage__SCEmptyTemplatesTitle",
157
+ componentId: "sc-1b6u56f-30"
158
+ })(["font-size:12px;font-weight:600;color:rgba(135,64,191,1);text-transform:uppercase;letter-spacing:0.05em;"]);
159
+ var SCEmptyTemplatesSubtitle = styled.span.withConfig({
160
+ displayName: "SchedulesPage__SCEmptyTemplatesSubtitle",
161
+ componentId: "sc-1b6u56f-31"
162
+ })(["font-size:13px;color:#6b7280;"]);
163
+ var SCTemplatesList = styled.div.withConfig({
164
+ displayName: "SchedulesPage__SCTemplatesList",
165
+ componentId: "sc-1b6u56f-32"
166
+ })(["display:flex;flex-direction:column;gap:8px;"]);
167
+ var SCTemplateCard = styled.div.withConfig({
168
+ displayName: "SchedulesPage__SCTemplateCard",
169
+ componentId: "sc-1b6u56f-33"
170
+ })(["display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(242,242,242,1);border-radius:10px;cursor:pointer;background:#fff;transition:background 0.15s,border-color 0.15s;&:hover{background:#faf5ff;border-color:rgba(135,64,191,0.3);}"]);
171
+ var SCTemplateEmoji = styled.span.withConfig({
172
+ displayName: "SchedulesPage__SCTemplateEmoji",
173
+ componentId: "sc-1b6u56f-34"
174
+ })(["font-size:22px;flex-shrink:0;"]);
175
+ var SCTemplateInfo = styled.div.withConfig({
176
+ displayName: "SchedulesPage__SCTemplateInfo",
177
+ componentId: "sc-1b6u56f-35"
178
+ })(["display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;"]);
179
+ var SCTemplateName = styled.span.withConfig({
180
+ displayName: "SchedulesPage__SCTemplateName",
181
+ componentId: "sc-1b6u56f-36"
182
+ })(["font-size:13px;font-weight:600;color:#111827;"]);
183
+ var SCTemplateDesc = styled.span.withConfig({
184
+ displayName: "SchedulesPage__SCTemplateDesc",
185
+ componentId: "sc-1b6u56f-37"
186
+ })(["font-size:12px;color:#6b7280;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;"]);
187
+ var SCTemplateFreq = styled.span.withConfig({
188
+ displayName: "SchedulesPage__SCTemplateFreq",
189
+ componentId: "sc-1b6u56f-38"
190
+ })(["font-size:11px;font-weight:500;color:rgba(135,64,191,0.8);background:rgba(135,64,191,0.07);border-radius:99px;padding:2px 8px;white-space:nowrap;flex-shrink:0;"]);
191
+ export var SchedulesPage = function SchedulesPage(_ref7) {
192
+ var _onBack = _ref7.onBack;
193
+ var _useTranslation = useTranslation('abm_agent_section'),
194
+ t = _useTranslation.t;
195
+ var _useState = useState([]),
196
+ _useState2 = _slicedToArray(_useState, 2),
197
+ mySchedules = _useState2[0],
198
+ setMySchedules = _useState2[1];
199
+ var _useState3 = useState(false),
200
+ _useState4 = _slicedToArray(_useState3, 2),
201
+ loadingSchedules = _useState4[0],
202
+ setLoadingSchedules = _useState4[1];
203
+ var _useState5 = useState(false),
204
+ _useState6 = _slicedToArray(_useState5, 2),
205
+ showCreatePanel = _useState6[0],
206
+ setShowCreatePanel = _useState6[1];
207
+ var _useState7 = useState(null),
208
+ _useState8 = _slicedToArray(_useState7, 2),
209
+ templateForm = _useState8[0],
210
+ setTemplateForm = _useState8[1];
211
+ var _useState9 = useState([]),
212
+ _useState0 = _slicedToArray(_useState9, 2),
213
+ agents = _useState0[0],
214
+ setAgents = _useState0[1];
215
+ var _useState1 = useState(false),
216
+ _useState10 = _slicedToArray(_useState1, 2),
217
+ loadingAgents = _useState10[0],
218
+ setLoadingAgents = _useState10[1];
219
+ var _useState11 = useState(null),
220
+ _useState12 = _slicedToArray(_useState11, 2),
221
+ selectedAgent = _useState12[0],
222
+ setSelectedAgent = _useState12[1];
223
+ var _useState13 = useState(false),
224
+ _useState14 = _slicedToArray(_useState13, 2),
225
+ dropdownOpen = _useState14[0],
226
+ setDropdownOpen = _useState14[1];
227
+ var _useState15 = useState(0),
228
+ _useState16 = _slicedToArray(_useState15, 2),
229
+ submitCount = _useState16[0],
230
+ setSubmitCount = _useState16[1];
231
+ var _useState17 = useState(null),
232
+ _useState18 = _slicedToArray(_useState17, 2),
233
+ scheduleToDelete = _useState18[0],
234
+ setScheduleToDelete = _useState18[1];
235
+ var dropdownRef = useRef(null);
236
+ var fetchSchedules = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
237
+ var result, _t;
238
+ return _regeneratorRuntime.wrap(function (_context) {
239
+ while (1) switch (_context.prev = _context.next) {
240
+ case 0:
241
+ setLoadingSchedules(true);
242
+ _context.prev = 1;
243
+ _context.next = 2;
244
+ return getMySchedules({
245
+ limit: 100,
246
+ offset: 0
247
+ });
248
+ case 2:
249
+ result = _context.sent;
250
+ setMySchedules(result.data);
251
+ _context.next = 4;
252
+ break;
253
+ case 3:
254
+ _context.prev = 3;
255
+ _t = _context["catch"](1);
256
+ case 4:
257
+ _context.prev = 4;
258
+ setLoadingSchedules(false);
259
+ return _context.finish(4);
260
+ case 5:
261
+ case "end":
262
+ return _context.stop();
263
+ }
264
+ }, _callee, null, [[1, 3, 4, 5]]);
265
+ })), []);
266
+ var handleDeleteSchedule = useCallback(/*#__PURE__*/function () {
267
+ var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(id) {
268
+ var _t2;
269
+ return _regeneratorRuntime.wrap(function (_context2) {
270
+ while (1) switch (_context2.prev = _context2.next) {
271
+ case 0:
272
+ _context2.prev = 0;
273
+ _context2.next = 1;
274
+ return deleteSchedule(id);
275
+ case 1:
276
+ setScheduleToDelete(null);
277
+ fetchSchedules();
278
+ _context2.next = 3;
279
+ break;
280
+ case 2:
281
+ _context2.prev = 2;
282
+ _t2 = _context2["catch"](0);
283
+ case 3:
284
+ case "end":
285
+ return _context2.stop();
286
+ }
287
+ }, _callee2, null, [[0, 2]]);
288
+ }));
289
+ return function (_x) {
290
+ return _ref9.apply(this, arguments);
291
+ };
292
+ }(), [fetchSchedules]);
293
+ var fetchAgents = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
294
+ var response, data, agentList, _t3;
295
+ return _regeneratorRuntime.wrap(function (_context3) {
296
+ while (1) switch (_context3.prev = _context3.next) {
297
+ case 0:
298
+ setLoadingAgents(true);
299
+ _context3.prev = 1;
300
+ _context3.next = 2;
301
+ return fetchMaia({
302
+ path: 'agents?agent_type=custom&limit=100&offset=0',
303
+ method: 'GET'
304
+ });
305
+ case 2:
306
+ response = _context3.sent;
307
+ _context3.next = 3;
308
+ return response.json();
309
+ case 3:
310
+ data = _context3.sent;
311
+ agentList = (data.data || []).map(function (a) {
312
+ return {
313
+ id: a.id,
314
+ name: a.name,
315
+ emoji: a.emoji || ''
316
+ };
317
+ });
318
+ setAgents(agentList);
319
+ if (agentList.length === 1) {
320
+ setSelectedAgent(agentList[0]);
321
+ }
322
+ _context3.next = 5;
323
+ break;
324
+ case 4:
325
+ _context3.prev = 4;
326
+ _t3 = _context3["catch"](1);
327
+ case 5:
328
+ _context3.prev = 5;
329
+ setLoadingAgents(false);
330
+ return _context3.finish(5);
331
+ case 6:
332
+ case "end":
333
+ return _context3.stop();
334
+ }
335
+ }, _callee3, null, [[1, 4, 5, 6]]);
336
+ })), []);
337
+ useEffect(function () {
338
+ fetchSchedules();
339
+ }, [fetchSchedules]);
340
+ useEffect(function () {
341
+ if (!showCreatePanel) return;
342
+ fetchAgents();
343
+ }, [showCreatePanel, fetchAgents]);
344
+ useEffect(function () {
345
+ if (!dropdownOpen) return;
346
+ var handleClick = function handleClick(e) {
347
+ var _dropdownRef$current;
348
+ if (!((_dropdownRef$current = dropdownRef.current) !== null && _dropdownRef$current !== void 0 && _dropdownRef$current.contains(e.target))) setDropdownOpen(false);
349
+ };
350
+ document.addEventListener('mousedown', handleClick);
351
+ return function () {
352
+ return document.removeEventListener('mousedown', handleClick);
353
+ };
354
+ }, [dropdownOpen]);
355
+ var handleCreateSuccess = useCallback(function () {
356
+ setSubmitCount(0);
357
+ setShowCreatePanel(false);
358
+ setSelectedAgent(null);
359
+ setTemplateForm(null);
360
+ fetchSchedules();
361
+ }, [fetchSchedules]);
362
+ var selectedLabel = selectedAgent ? "".concat(selectedAgent.emoji ? "".concat(selectedAgent.emoji, " ") : '').concat(selectedAgent.name) : t('triggersSection.selectAgent');
363
+ var statusLabel = function statusLabel(status) {
364
+ var _map$status;
365
+ var map = {
366
+ active: t('triggersSection.status.active'),
367
+ paused: t('triggersSection.status.paused'),
368
+ disabled: t('triggersSection.status.disabled')
369
+ };
370
+ return (_map$status = map[status]) !== null && _map$status !== void 0 ? _map$status : status;
371
+ };
372
+ var frequencyLabel = function frequencyLabel(schedule) {
373
+ var _map$schedule$schedul;
374
+ var map = {
375
+ minutely: t('triggersSection.frequencies.minutely'),
376
+ hourly: t('triggersSection.frequencies.hourly'),
377
+ daily: t('triggersSection.frequencies.daily'),
378
+ weekly: t('triggersSection.frequencies.weekly')
379
+ };
380
+ return (_map$schedule$schedul = map[schedule.schedule_type]) !== null && _map$schedule$schedul !== void 0 ? _map$schedule$schedul : schedule.schedule_type;
381
+ };
382
+ var formatNextRun = function formatNextRun(next_run_at) {
383
+ if (!next_run_at) return '—';
384
+ return new Date(next_run_at).toLocaleString();
385
+ };
386
+ return /*#__PURE__*/_jsxs(SCWrapper, {
387
+ children: [/*#__PURE__*/_jsxs(SCHeader, {
388
+ children: [/*#__PURE__*/_jsx(SCTitle, {
389
+ children: t('triggersSection.myRoutinesTitle')
390
+ }), /*#__PURE__*/_jsx(SCNewButton, {
391
+ children: /*#__PURE__*/_jsxs(CUButton, {
392
+ variant: "contained",
393
+ size: "medium",
394
+ onClick: function onClick() {
395
+ return setShowCreatePanel(function (prev) {
396
+ return !prev;
397
+ });
398
+ },
399
+ children: ["+ ", t('triggersSection.newRoutine')]
400
+ })
401
+ })]
402
+ }), /*#__PURE__*/_jsx(SCContent, {
403
+ children: loadingSchedules ? /*#__PURE__*/_jsx(SCLoading, {
404
+ children: t('triggersSection.loadingRoutines')
405
+ }) : mySchedules.length === 0 ? /*#__PURE__*/_jsxs(SCEmptyTemplates, {
406
+ children: [/*#__PURE__*/_jsxs(SCEmptyTemplatesHeader, {
407
+ children: [/*#__PURE__*/_jsx(SCEmptyTemplatesTitle, {
408
+ children: t('triggersSection.routineTemplates.title')
409
+ }), /*#__PURE__*/_jsx(SCEmptyTemplatesSubtitle, {
410
+ children: t('triggersSection.routineTemplates.subtitle')
411
+ })]
412
+ }), /*#__PURE__*/_jsx(SCTemplatesList, {
413
+ children: [{
414
+ emoji: '📋',
415
+ name: t('triggersSection.routineTemplates.template1.name'),
416
+ desc: t('triggersSection.routineTemplates.template1.desc'),
417
+ freq: t('triggersSection.routineTemplates.template1.freq'),
418
+ formData: {
419
+ name: t('triggersSection.routineTemplates.template1.name'),
420
+ input: t('triggersSection.routineTemplates.template1.desc'),
421
+ scheduleType: 'daily',
422
+ hour: 9,
423
+ minute: 0
424
+ }
425
+ }, {
426
+ emoji: '📊',
427
+ name: t('triggersSection.routineTemplates.template2.name'),
428
+ desc: t('triggersSection.routineTemplates.template2.desc'),
429
+ freq: t('triggersSection.routineTemplates.template2.freq'),
430
+ formData: {
431
+ name: t('triggersSection.routineTemplates.template2.name'),
432
+ input: t('triggersSection.routineTemplates.template2.desc'),
433
+ scheduleType: 'weekly',
434
+ hour: 9,
435
+ minute: 0,
436
+ dayOfWeek: 0
437
+ }
438
+ }, {
439
+ emoji: '🔔',
440
+ name: t('triggersSection.routineTemplates.template3.name'),
441
+ desc: t('triggersSection.routineTemplates.template3.desc'),
442
+ freq: t('triggersSection.routineTemplates.template3.freq'),
443
+ formData: {
444
+ name: t('triggersSection.routineTemplates.template3.name'),
445
+ input: t('triggersSection.routineTemplates.template3.desc'),
446
+ scheduleType: 'weekly',
447
+ hour: 17,
448
+ minute: 0,
449
+ dayOfWeek: 4
450
+ }
451
+ }].map(function (template) {
452
+ return /*#__PURE__*/_jsxs(SCTemplateCard, {
453
+ onClick: function onClick() {
454
+ setTemplateForm(template.formData);
455
+ setShowCreatePanel(true);
456
+ },
457
+ children: [/*#__PURE__*/_jsx(SCTemplateEmoji, {
458
+ children: template.emoji
459
+ }), /*#__PURE__*/_jsxs(SCTemplateInfo, {
460
+ children: [/*#__PURE__*/_jsx(SCTemplateName, {
461
+ children: template.name
462
+ }), /*#__PURE__*/_jsx(SCTemplateDesc, {
463
+ children: template.desc
464
+ })]
465
+ }), /*#__PURE__*/_jsx(SCTemplateFreq, {
466
+ children: template.freq
467
+ })]
468
+ }, template.name);
469
+ })
470
+ })]
471
+ }) : /*#__PURE__*/_jsx(SCList, {
472
+ children: mySchedules.map(function (schedule) {
473
+ var _schedule$agent_name;
474
+ return /*#__PURE__*/_jsxs(SCRow, {
475
+ children: [/*#__PURE__*/_jsxs(SCRowLeft, {
476
+ children: [/*#__PURE__*/_jsx(SCRoutineName, {
477
+ children: schedule.name || t('triggersSection.untitledRoutine')
478
+ }), /*#__PURE__*/_jsxs(SCRoutineMeta, {
479
+ children: [(schedule.agent_emoji || schedule.agent_name) && /*#__PURE__*/_jsxs(SCAgentBadge, {
480
+ children: [schedule.agent_emoji ? "".concat(schedule.agent_emoji, " ") : '', (_schedule$agent_name = schedule.agent_name) !== null && _schedule$agent_name !== void 0 ? _schedule$agent_name : '']
481
+ }), /*#__PURE__*/_jsx("span", {
482
+ children: frequencyLabel(schedule)
483
+ }), /*#__PURE__*/_jsxs("span", {
484
+ children: [t('triggersSection.nextRun'), ": ", formatNextRun(schedule.next_run_at)]
485
+ })]
486
+ })]
487
+ }), /*#__PURE__*/_jsxs(SCRowRight, {
488
+ children: [/*#__PURE__*/_jsx(SCStatusBadge, {
489
+ status: schedule.status,
490
+ children: statusLabel(schedule.status)
491
+ }), /*#__PURE__*/_jsx(SCDeleteButton, {
492
+ type: "button",
493
+ title: t('triggersSection.deleteRoutine'),
494
+ onClick: function onClick() {
495
+ return setScheduleToDelete(schedule);
496
+ },
497
+ children: /*#__PURE__*/_jsxs("svg", {
498
+ width: "14",
499
+ height: "14",
500
+ viewBox: "0 0 24 24",
501
+ fill: "none",
502
+ stroke: "currentColor",
503
+ strokeWidth: "2",
504
+ strokeLinecap: "round",
505
+ strokeLinejoin: "round",
506
+ children: [/*#__PURE__*/_jsx("polyline", {
507
+ points: "3 6 5 6 21 6"
508
+ }), /*#__PURE__*/_jsx("path", {
509
+ d: "M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"
510
+ }), /*#__PURE__*/_jsx("path", {
511
+ d: "M10 11v6"
512
+ }), /*#__PURE__*/_jsx("path", {
513
+ d: "M14 11v6"
514
+ }), /*#__PURE__*/_jsx("path", {
515
+ d: "M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"
516
+ })]
517
+ })
518
+ })]
519
+ })]
520
+ }, schedule.id);
521
+ })
522
+ })
523
+ }), showCreatePanel && function (_selectedAgent$id) {
524
+ var container = document.getElementById('modal-root-actions');
525
+ if (!container) return null;
526
+ return /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/_jsx(Backdrop, {
527
+ onClick: function onClick() {
528
+ setShowCreatePanel(false);
529
+ setTemplateForm(null);
530
+ },
531
+ zIndex: 11111,
532
+ children: /*#__PURE__*/_jsxs(SCModalBox, {
533
+ onClick: function onClick(e) {
534
+ return e.stopPropagation();
535
+ },
536
+ children: [/*#__PURE__*/_jsxs(SCModalHeader, {
537
+ children: [/*#__PURE__*/_jsx(SCModalTitle, {
538
+ children: t('triggersSection.newRoutine')
539
+ }), /*#__PURE__*/_jsx(SCModalCloseButton, {
540
+ type: "button",
541
+ onClick: function onClick() {
542
+ setShowCreatePanel(false);
543
+ setTemplateForm(null);
544
+ },
545
+ children: "\xD7"
546
+ })]
547
+ }), /*#__PURE__*/_jsxs(SCModalBody, {
548
+ children: [/*#__PURE__*/_jsxs(SCAgentSelectorContainer, {
549
+ ref: dropdownRef,
550
+ children: [/*#__PURE__*/_jsxs(SCAgentSelectorTrigger, {
551
+ open: dropdownOpen,
552
+ onClick: function onClick() {
553
+ return setDropdownOpen(function (prev) {
554
+ return !prev;
555
+ });
556
+ },
557
+ type: "button",
558
+ children: [/*#__PURE__*/_jsxs("span", {
559
+ children: [/*#__PURE__*/_jsxs(SCAgentSelectorLabel, {
560
+ children: [t('triggersSection.agent'), ": "]
561
+ }), loadingAgents ? t('triggersSection.loadingAgents') : selectedLabel]
562
+ }), /*#__PURE__*/_jsx(ChevronDown, {
563
+ width: "14px",
564
+ height: "14px",
565
+ color: dropdownOpen ? 'rgba(0,68,102,1)' : 'rgba(153,153,153,1)'
566
+ })]
567
+ }), dropdownOpen && /*#__PURE__*/_jsx(SCAgentSelectorList, {
568
+ children: loadingAgents ? /*#__PURE__*/_jsx("li", {
569
+ style: {
570
+ padding: '8px 12px',
571
+ fontSize: 13,
572
+ color: '#6b7280'
573
+ },
574
+ children: t('triggersSection.loadingAgents')
575
+ }) : agents.map(function (agent) {
576
+ return /*#__PURE__*/_jsxs(SCAgentSelectorOption, {
577
+ isSelected: (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) === agent.id,
578
+ onClick: function onClick() {
579
+ setSelectedAgent(agent);
580
+ setDropdownOpen(false);
581
+ },
582
+ children: [agent.emoji ? "".concat(agent.emoji, " ") : '', agent.name]
583
+ }, agent.id);
584
+ })
585
+ })]
586
+ }), /*#__PURE__*/_jsx(AbmTriggersSection, {
587
+ agentExternalId: (_selectedAgent$id = selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) !== null && _selectedAgent$id !== void 0 ? _selectedAgent$id : null,
588
+ initialForm: templateForm !== null && templateForm !== void 0 ? templateForm : undefined,
589
+ submitCount: submitCount,
590
+ onSuccess: handleCreateSuccess,
591
+ standaloneCreateOnly: true
592
+ })]
593
+ }), /*#__PURE__*/_jsx(SCModalFooter, {
594
+ children: /*#__PURE__*/_jsx(SCModalSaveButton, {
595
+ children: /*#__PURE__*/_jsx(CUButton, {
596
+ variant: "contained",
597
+ size: "medium",
598
+ onClick: function onClick() {
599
+ return setSubmitCount(function (prev) {
600
+ return prev + 1;
601
+ });
602
+ },
603
+ children: t('triggersSection.save')
604
+ })
605
+ })
606
+ })]
607
+ })
608
+ }), container);
609
+ }(), scheduleToDelete && /*#__PURE__*/_jsx(DeleteQuestionModal, {
610
+ action: "routine",
611
+ chat: {
612
+ title: scheduleToDelete.name || t('triggersSection.untitledRoutine')
613
+ },
614
+ onClose: function onClose() {
615
+ return setScheduleToDelete(null);
616
+ },
617
+ handlers: {
618
+ handleConfirmAction: function handleConfirmAction() {
619
+ return handleDeleteSchedule(scheduleToDelete.id);
620
+ }
621
+ }
622
+ })]
623
+ });
624
+ };
625
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdERPTSIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VUcmFuc2xhdGlvbiIsIkNoZXZyb25Eb3duIiwiQ1VCdXR0b24iLCJBYm1UcmlnZ2Vyc1NlY3Rpb24iLCJCYWNrZHJvcCIsImZldGNoTWFpYSIsImdldE15U2NoZWR1bGVzIiwiZGVsZXRlU2NoZWR1bGUiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwic3R5bGVkIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlNDV3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NIZWFkZXIiLCJTQ1RpdGxlIiwiaDIiLCJTQ05ld0J1dHRvbiIsIlNDQ29udGVudCIsIlNDTG9hZGluZyIsIlNDRW1wdHlTdGF0ZSIsIlNDTGlzdCIsIlNDUm93IiwiU0NSb3dMZWZ0IiwiU0NSb3V0aW5lTmFtZSIsInNwYW4iLCJTQ1JvdXRpbmVNZXRhIiwiU0NBZ2VudEJhZGdlIiwiU0NTdGF0dXNCYWRnZSIsIl9yZWYiLCJzdGF0dXMiLCJfcmVmMiIsIlNDTW9kYWxCb3giLCJTQ01vZGFsSGVhZGVyIiwiU0NNb2RhbFRpdGxlIiwiU0NNb2RhbENsb3NlQnV0dG9uIiwiYnV0dG9uIiwiU0NNb2RhbEJvZHkiLCJTQ01vZGFsRm9vdGVyIiwiU0NNb2RhbFNhdmVCdXR0b24iLCJTQ0FnZW50U2VsZWN0b3JDb250YWluZXIiLCJTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyIiwiX3JlZjMiLCJvcGVuIiwiU0NBZ2VudFNlbGVjdG9yTGFiZWwiLCJTQ0FnZW50U2VsZWN0b3JMaXN0IiwidWwiLCJTQ0FnZW50U2VsZWN0b3JPcHRpb24iLCJsaSIsIl9yZWY0IiwiaXNTZWxlY3RlZCIsIl9yZWY1IiwiX3JlZjYiLCJTQ0RlbGV0ZUJ1dHRvbiIsIlNDUm93UmlnaHQiLCJTQ0VtcHR5VGVtcGxhdGVzIiwiU0NFbXB0eVRlbXBsYXRlc0hlYWRlciIsIlNDRW1wdHlUZW1wbGF0ZXNUaXRsZSIsIlNDRW1wdHlUZW1wbGF0ZXNTdWJ0aXRsZSIsIlNDVGVtcGxhdGVzTGlzdCIsIlNDVGVtcGxhdGVDYXJkIiwiU0NUZW1wbGF0ZUVtb2ppIiwiU0NUZW1wbGF0ZUluZm8iLCJTQ1RlbXBsYXRlTmFtZSIsIlNDVGVtcGxhdGVEZXNjIiwiU0NUZW1wbGF0ZUZyZXEiLCJTY2hlZHVsZXNQYWdlIiwiX3JlZjciLCJfb25CYWNrIiwib25CYWNrIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm15U2NoZWR1bGVzIiwic2V0TXlTY2hlZHVsZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdTY2hlZHVsZXMiLCJzZXRMb2FkaW5nU2NoZWR1bGVzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93Q3JlYXRlUGFuZWwiLCJzZXRTaG93Q3JlYXRlUGFuZWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInRlbXBsYXRlRm9ybSIsInNldFRlbXBsYXRlRm9ybSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiYWdlbnRzIiwic2V0QWdlbnRzIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwibG9hZGluZ0FnZW50cyIsInNldExvYWRpbmdBZ2VudHMiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2VsZWN0ZWRBZ2VudCIsInNldFNlbGVjdGVkQWdlbnQiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwiZHJvcGRvd25PcGVuIiwic2V0RHJvcGRvd25PcGVuIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInN1Ym1pdENvdW50Iiwic2V0U3VibWl0Q291bnQiLCJfdXNlU3RhdGUxNyIsIl91c2VTdGF0ZTE4Iiwic2NoZWR1bGVUb0RlbGV0ZSIsInNldFNjaGVkdWxlVG9EZWxldGUiLCJkcm9wZG93blJlZiIsImZldGNoU2NoZWR1bGVzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXN1bHQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGltaXQiLCJvZmZzZXQiLCJzZW50IiwiZGF0YSIsImZpbmlzaCIsInN0b3AiLCJoYW5kbGVEZWxldGVTY2hlZHVsZSIsIl9yZWY5IiwiX2NhbGxlZTIiLCJpZCIsIl90MiIsIl9jb250ZXh0MiIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJmZXRjaEFnZW50cyIsIl9jYWxsZWUzIiwicmVzcG9uc2UiLCJhZ2VudExpc3QiLCJfdDMiLCJfY29udGV4dDMiLCJwYXRoIiwibWV0aG9kIiwianNvbiIsIm1hcCIsImEiLCJuYW1lIiwiZW1vamkiLCJsZW5ndGgiLCJoYW5kbGVDbGljayIsImUiLCJfZHJvcGRvd25SZWYkY3VycmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDcmVhdGVTdWNjZXNzIiwic2VsZWN0ZWRMYWJlbCIsImNvbmNhdCIsInN0YXR1c0xhYmVsIiwiX21hcCRzdGF0dXMiLCJhY3RpdmUiLCJwYXVzZWQiLCJkaXNhYmxlZCIsImZyZXF1ZW5jeUxhYmVsIiwic2NoZWR1bGUiLCJfbWFwJHNjaGVkdWxlJHNjaGVkdWwiLCJtaW51dGVseSIsImhvdXJseSIsImRhaWx5Iiwid2Vla2x5Iiwic2NoZWR1bGVfdHlwZSIsImZvcm1hdE5leHRSdW4iLCJuZXh0X3J1bl9hdCIsIkRhdGUiLCJ0b0xvY2FsZVN0cmluZyIsImNoaWxkcmVuIiwidmFyaWFudCIsInNpemUiLCJvbkNsaWNrIiwiZGVzYyIsImZyZXEiLCJmb3JtRGF0YSIsImlucHV0Iiwic2NoZWR1bGVUeXBlIiwiaG91ciIsIm1pbnV0ZSIsImRheU9mV2VlayIsInRlbXBsYXRlIiwiX3NjaGVkdWxlJGFnZW50X25hbWUiLCJhZ2VudF9lbW9qaSIsImFnZW50X25hbWUiLCJ0eXBlIiwidGl0bGUiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJwb2ludHMiLCJkIiwiX3NlbGVjdGVkQWdlbnQkaWQiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsImNyZWF0ZVBvcnRhbCIsInpJbmRleCIsInN0b3BQcm9wYWdhdGlvbiIsInJlZiIsImNvbG9yIiwic3R5bGUiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJhZ2VudCIsImFnZW50RXh0ZXJuYWxJZCIsImluaXRpYWxGb3JtIiwidW5kZWZpbmVkIiwib25TdWNjZXNzIiwic3RhbmRhbG9uZUNyZWF0ZU9ubHkiLCJhY3Rpb24iLCJjaGF0Iiwib25DbG9zZSIsImhhbmRsZXJzIiwiaGFuZGxlQ29uZmlybUFjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TY2hlZHVsZXNQYWdlL1NjaGVkdWxlc1BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBBYm1UcmlnZ2Vyc1NlY3Rpb24gfSBmcm9tICcuLi9BYm1TZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbi9BYm1UcmlnZ2Vyc1NlY3Rpb24nXG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJGb3JtU3RhdGUgfSBmcm9tICcuLi9BYm1TZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbi9BYm1UcmlnZ2Vyc1NlY3Rpb24uaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQmFja2Ryb3AgfSBmcm9tICcuLi8uLi9hdG9tcy9CYWNrZHJvcCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuaW1wb3J0IHsgZ2V0TXlTY2hlZHVsZXMsIGRlbGV0ZVNjaGVkdWxlLCB0eXBlIFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1NjaGVkdWxlcydcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcblxudHlwZSBBZ2VudE9wdGlvbiA9IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBlbW9qaTogc3RyaW5nIH1cblxuY29uc3QgU0NXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuY29uc3QgU0NIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDIwcHggMjRweCAxNnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmNvbnN0IFNDVGl0bGUgPSBzdHlsZWQuaDJgXG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICMxMTE4Mjc7XG4gIG1hcmdpbjogMDtcbmBcblxuY29uc3QgU0NOZXdCdXR0b24gPSBzdHlsZWQuZGl2YFxuICBmbGV4LXNocmluazogMDtcbmBcblxuY29uc3QgU0NDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbmBcblxuY29uc3QgU0NMb2FkaW5nID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMjRweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzZiNzI4MDtcbmBcblxuY29uc3QgU0NFbXB0eVN0YXRlID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogNDhweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM5Y2EzYWY7XG5gXG5cbmNvbnN0IFNDTGlzdCA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuYFxuXG5jb25zdCBTQ1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBnYXA6IDEycHg7XG5gXG5cbmNvbnN0IFNDUm93TGVmdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmNvbnN0IFNDUm91dGluZU5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogIzExMTgyNztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gXG5cbmNvbnN0IFNDUm91dGluZU1ldGEgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzZiNzI4MDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbmBcblxuY29uc3QgU0NBZ2VudEJhZGdlID0gc3R5bGVkLnNwYW5gXG4gIGJhY2tncm91bmQ6ICNmMGY5ZmY7XG4gIGNvbG9yOiByZ2JhKDAsIDY4LCAxMDIsIDEpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAxcHggN3B4O1xuICBib3JkZXItcmFkaXVzOiA5OXB4O1xuICBmb250LXNpemU6IDExcHg7XG5gXG5cbmNvbnN0IFNDU3RhdHVzQmFkZ2UgPSBzdHlsZWQuc3Bhbjx7IHN0YXR1czogc3RyaW5nIH0+YFxuICBwYWRkaW5nOiAxcHggN3B4O1xuICBib3JkZXItcmFkaXVzOiA5OXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQ6ICR7KHsgc3RhdHVzIH0pID0+XG4gICAgc3RhdHVzID09PSAnYWN0aXZlJyA/ICcjZDFmYWU1JyA6IHN0YXR1cyA9PT0gJ3BhdXNlZCcgPyAnI2ZlZjNjNycgOiAnI2YzZjRmNid9O1xuICBjb2xvcjogJHsoeyBzdGF0dXMgfSkgPT5cbiAgICBzdGF0dXMgPT09ICdhY3RpdmUnID8gJyMwNjVmNDYnIDogc3RhdHVzID09PSAncGF1c2VkJyA/ICcjOTI0MDBlJyA6ICcjNmI3MjgwJ307XG5gXG5cbmNvbnN0IFNDTW9kYWxCb3ggPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB3aWR0aDogNzIwcHg7XG4gIG1heC13aWR0aDogOTR2dztcbiAgbWF4LWhlaWdodDogOTJ2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuY29uc3QgU0NNb2RhbEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTZweCAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmNvbnN0IFNDTW9kYWxUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMTExODI3O1xuYFxuXG5jb25zdCBTQ01vZGFsQ2xvc2VCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzljYTNhZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDA7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICB9XG5gXG5cbmNvbnN0IFNDTW9kYWxCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG5gXG5cbmNvbnN0IFNDTW9kYWxGb290ZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjBmMGYwO1xuICBmbGV4LXNocmluazogMDtcbmBcblxuY29uc3QgU0NNb2RhbFNhdmVCdXR0b24gPSBzdHlsZWQuZGl2YFxuICBmbGV4LXNocmluazogMDtcbmBcblxuY29uc3QgU0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgcGFkZGluZzogMjBweCAyNHB4IDE2cHg7XG5gXG5cbmNvbnN0IFNDQWdlbnRTZWxlY3RvclRyaWdnZXIgPSBzdHlsZWQuYnV0dG9uPHsgb3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IG9wZW4gfSkgPT4gKG9wZW4gPyAncmdiYSgwLDY4LDEwMiwxKScgOiAnI2QxZDVkYicpfTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICMxMTE4Mjc7XG5gXG5cbmNvbnN0IFNDQWdlbnRTZWxlY3RvckxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICM2YjcyODA7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuYFxuXG5jb25zdCBTQ0FnZW50U2VsZWN0b3JMaXN0ID0gc3R5bGVkLnVsYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gOHB4KTtcbiAgbGVmdDogMjRweDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiAxMDA7XG5gXG5cbmNvbnN0IFNDQWdlbnRTZWxlY3Rvck9wdGlvbiA9IHN0eWxlZC5saTx7IGlzU2VsZWN0ZWQ6IGJvb2xlYW4gfT5gXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICdyZ2JhKDAsNjgsMTAyLDEpJyA6ICcjMTExODI3Jyl9O1xuICBmb250LXdlaWdodDogJHsoeyBpc1NlbGVjdGVkIH0pID0+IChpc1NlbGVjdGVkID8gNjAwIDogNDAwKX07XG4gIGJhY2tncm91bmQ6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICcjZjBmOWZmJyA6ICd0cmFuc3BhcmVudCcpfTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZmFmYjtcbiAgfVxuYFxuXG5jb25zdCBTQ0RlbGV0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG4gIGNvbG9yOiAjOWNhM2FmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZWY0NDQ0O1xuICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gIH1cbmBcblxuY29uc3QgU0NSb3dSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuY29uc3QgU0NFbXB0eVRlbXBsYXRlcyA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDMycHggMjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuYFxuXG5jb25zdCBTQ0VtcHR5VGVtcGxhdGVzSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG5gXG5cbmNvbnN0IFNDRW1wdHlUZW1wbGF0ZXNUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG5gXG5cbmNvbnN0IFNDRW1wdHlUZW1wbGF0ZXNTdWJ0aXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNmI3MjgwO1xuYFxuXG5jb25zdCBTQ1RlbXBsYXRlc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbmBcblxuY29uc3QgU0NUZW1wbGF0ZUNhcmQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXM7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmYWY1ZmY7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEzNSwgNjQsIDE5MSwgMC4zKTtcbiAgfVxuYFxuXG5jb25zdCBTQ1RlbXBsYXRlRW1vamkgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuY29uc3QgU0NUZW1wbGF0ZUluZm8gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5jb25zdCBTQ1RlbXBsYXRlTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMTExODI3O1xuYFxuXG5jb25zdCBTQ1RlbXBsYXRlRGVzYyA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNmI3MjgwO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG5jb25zdCBTQ1RlbXBsYXRlRnJlcSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiByZ2JhKDEzNSwgNjQsIDE5MSwgMC44KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzUsIDY0LCAxOTEsIDAuMDcpO1xuICBib3JkZXItcmFkaXVzOiA5OXB4O1xuICBwYWRkaW5nOiAycHggOHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNjaGVkdWxlc1BhZ2UgPSAoeyBvbkJhY2s6IF9vbkJhY2sgfTogeyBvbkJhY2s/OiAoKSA9PiB2b2lkIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBbbXlTY2hlZHVsZXMsIHNldE15U2NoZWR1bGVzXSA9IHVzZVN0YXRlPFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2VbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nU2NoZWR1bGVzLCBzZXRMb2FkaW5nU2NoZWR1bGVzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0NyZWF0ZVBhbmVsLCBzZXRTaG93Q3JlYXRlUGFuZWxdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0ZW1wbGF0ZUZvcm0sIHNldFRlbXBsYXRlRm9ybV0gPSB1c2VTdGF0ZTxQYXJ0aWFsPFRyaWdnZXJGb3JtU3RhdGU+IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPEFnZW50T3B0aW9uW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ0FnZW50cywgc2V0TG9hZGluZ0FnZW50c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlbGVjdGVkQWdlbnQsIHNldFNlbGVjdGVkQWdlbnRdID0gdXNlU3RhdGU8QWdlbnRPcHRpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBbZHJvcGRvd25PcGVuLCBzZXREcm9wZG93bk9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzdWJtaXRDb3VudCwgc2V0U3VibWl0Q291bnRdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3NjaGVkdWxlVG9EZWxldGUsIHNldFNjaGVkdWxlVG9EZWxldGVdID0gdXNlU3RhdGU8U2NoZWR1bGVXaXRoQWdlbnRSZXNwb25zZSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGRyb3Bkb3duUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGZldGNoU2NoZWR1bGVzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldExvYWRpbmdTY2hlZHVsZXModHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0TXlTY2hlZHVsZXMoeyBsaW1pdDogMTAwLCBvZmZzZXQ6IDAgfSlcbiAgICAgIHNldE15U2NoZWR1bGVzKHJlc3VsdC5kYXRhKVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2lsZW50bHkgZmFpbFxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nU2NoZWR1bGVzKGZhbHNlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlU2NoZWR1bGUgPSB1c2VDYWxsYmFjayhhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBkZWxldGVTY2hlZHVsZShpZClcbiAgICAgIHNldFNjaGVkdWxlVG9EZWxldGUobnVsbClcbiAgICAgIGZldGNoU2NoZWR1bGVzKClcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNpbGVudGx5IGZhaWxcbiAgICB9XG4gIH0sIFtmZXRjaFNjaGVkdWxlc10pXG5cbiAgY29uc3QgZmV0Y2hBZ2VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZ0FnZW50cyh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9MTAwJm9mZnNldD0wJyxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBjb25zdCBhZ2VudExpc3Q6IEFnZW50T3B0aW9uW10gPSAoZGF0YS5kYXRhIHx8IFtdKS5tYXAoKGE6IGFueSkgPT4gKHtcbiAgICAgICAgaWQ6IGEuaWQsXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgZW1vamk6IGEuZW1vamkgfHwgJycsXG4gICAgICB9KSlcbiAgICAgIHNldEFnZW50cyhhZ2VudExpc3QpXG4gICAgICBpZiAoYWdlbnRMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBzZXRTZWxlY3RlZEFnZW50KGFnZW50TGlzdFswXSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNpbGVudGx5IGZhaWxcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ0FnZW50cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTY2hlZHVsZXMoKVxuICB9LCBbZmV0Y2hTY2hlZHVsZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93Q3JlYXRlUGFuZWwpIHJldHVyblxuICAgIGZldGNoQWdlbnRzKClcbiAgfSwgW3Nob3dDcmVhdGVQYW5lbCwgZmV0Y2hBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkcm9wZG93bk9wZW4pIHJldHVyblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghZHJvcGRvd25SZWYuY3VycmVudD8uY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2spXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrKVxuICB9LCBbZHJvcGRvd25PcGVuXSlcblxuICBjb25zdCBoYW5kbGVDcmVhdGVTdWNjZXNzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFN1Ym1pdENvdW50KDApXG4gICAgc2V0U2hvd0NyZWF0ZVBhbmVsKGZhbHNlKVxuICAgIHNldFNlbGVjdGVkQWdlbnQobnVsbClcbiAgICBzZXRUZW1wbGF0ZUZvcm0obnVsbClcbiAgICBmZXRjaFNjaGVkdWxlcygpXG4gIH0sIFtmZXRjaFNjaGVkdWxlc10pXG5cbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IHNlbGVjdGVkQWdlbnRcbiAgICA/IGAke3NlbGVjdGVkQWdlbnQuZW1vamkgPyBgJHtzZWxlY3RlZEFnZW50LmVtb2ppfSBgIDogJyd9JHtzZWxlY3RlZEFnZW50Lm5hbWV9YFxuICAgIDogdCgndHJpZ2dlcnNTZWN0aW9uLnNlbGVjdEFnZW50JylcblxuICBjb25zdCBzdGF0dXNMYWJlbCA9IChzdGF0dXM6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGl2ZTogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5hY3RpdmUnKSxcbiAgICAgIHBhdXNlZDogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5wYXVzZWQnKSxcbiAgICAgIGRpc2FibGVkOiB0KCd0cmlnZ2Vyc1NlY3Rpb24uc3RhdHVzLmRpc2FibGVkJyksXG4gICAgfVxuICAgIHJldHVybiBtYXBbc3RhdHVzXSA/PyBzdGF0dXNcbiAgfVxuXG4gIGNvbnN0IGZyZXF1ZW5jeUxhYmVsID0gKHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbWludXRlbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy5taW51dGVseScpLFxuICAgICAgaG91cmx5OiB0KCd0cmlnZ2Vyc1NlY3Rpb24uZnJlcXVlbmNpZXMuaG91cmx5JyksXG4gICAgICBkYWlseTogdCgndHJpZ2dlcnNTZWN0aW9uLmZyZXF1ZW5jaWVzLmRhaWx5JyksXG4gICAgICB3ZWVrbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy53ZWVrbHknKSxcbiAgICB9XG4gICAgcmV0dXJuIG1hcFtzY2hlZHVsZS5zY2hlZHVsZV90eXBlXSA/PyBzY2hlZHVsZS5zY2hlZHVsZV90eXBlXG4gIH1cblxuICBjb25zdCBmb3JtYXROZXh0UnVuID0gKG5leHRfcnVuX2F0OiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgaWYgKCFuZXh0X3J1bl9hdCkgcmV0dXJuICfigJQnXG4gICAgcmV0dXJuIG5ldyBEYXRlKG5leHRfcnVuX2F0KS50b0xvY2FsZVN0cmluZygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1dyYXBwZXI+XG4gICAgICA8U0NIZWFkZXI+XG4gICAgICAgIDxTQ1RpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ubXlSb3V0aW5lc1RpdGxlJyl9PC9TQ1RpdGxlPlxuICAgICAgICA8U0NOZXdCdXR0b24+XG4gICAgICAgICAgPENVQnV0dG9uXG4gICAgICAgICAgICB2YXJpYW50PVwiY29udGFpbmVkXCJcbiAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0NyZWF0ZVBhbmVsKHByZXYgPT4gIXByZXYpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICsge3QoJ3RyaWdnZXJzU2VjdGlvbi5uZXdSb3V0aW5lJyl9XG4gICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgPC9TQ05ld0J1dHRvbj5cbiAgICAgIDwvU0NIZWFkZXI+XG5cbiAgICAgIDxTQ0NvbnRlbnQ+XG4gICAgICAgIHtsb2FkaW5nU2NoZWR1bGVzID8gKFxuICAgICAgICAgIDxTQ0xvYWRpbmc+e3QoJ3RyaWdnZXJzU2VjdGlvbi5sb2FkaW5nUm91dGluZXMnKX08L1NDTG9hZGluZz5cbiAgICAgICAgKSA6IG15U2NoZWR1bGVzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICA8U0NFbXB0eVRlbXBsYXRlcz5cbiAgICAgICAgICAgIDxTQ0VtcHR5VGVtcGxhdGVzSGVhZGVyPlxuICAgICAgICAgICAgICA8U0NFbXB0eVRlbXBsYXRlc1RpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50aXRsZScpfTwvU0NFbXB0eVRlbXBsYXRlc1RpdGxlPlxuICAgICAgICAgICAgICA8U0NFbXB0eVRlbXBsYXRlc1N1YnRpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy5zdWJ0aXRsZScpfTwvU0NFbXB0eVRlbXBsYXRlc1N1YnRpdGxlPlxuICAgICAgICAgICAgPC9TQ0VtcHR5VGVtcGxhdGVzSGVhZGVyPlxuICAgICAgICAgICAgPFNDVGVtcGxhdGVzTGlzdD5cbiAgICAgICAgICAgICAgeyhbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW1vamk6ICfwn5OLJyxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHQoJ3RyaWdnZXJzU2VjdGlvbi5yb3V0aW5lVGVtcGxhdGVzLnRlbXBsYXRlMS5uYW1lJyksXG4gICAgICAgICAgICAgICAgICBkZXNjOiB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50ZW1wbGF0ZTEuZGVzYycpLFxuICAgICAgICAgICAgICAgICAgZnJlcTogdCgndHJpZ2dlcnNTZWN0aW9uLnJvdXRpbmVUZW1wbGF0ZXMudGVtcGxhdGUxLmZyZXEnKSxcbiAgICAgICAgICAgICAgICAgIGZvcm1EYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHQoJ3RyaWdnZXJzU2VjdGlvbi5yb3V0aW5lVGVtcGxhdGVzLnRlbXBsYXRlMS5uYW1lJyksXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50ZW1wbGF0ZTEuZGVzYycpLFxuICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZVR5cGU6ICdkYWlseScgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IDksXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogMCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbW9qaTogJ/Cfk4onLFxuICAgICAgICAgICAgICAgICAgbmFtZTogdCgndHJpZ2dlcnNTZWN0aW9uLnJvdXRpbmVUZW1wbGF0ZXMudGVtcGxhdGUyLm5hbWUnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2M6IHQoJ3RyaWdnZXJzU2VjdGlvbi5yb3V0aW5lVGVtcGxhdGVzLnRlbXBsYXRlMi5kZXNjJyksXG4gICAgICAgICAgICAgICAgICBmcmVxOiB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50ZW1wbGF0ZTIuZnJlcScpLFxuICAgICAgICAgICAgICAgICAgZm9ybURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdCgndHJpZ2dlcnNTZWN0aW9uLnJvdXRpbmVUZW1wbGF0ZXMudGVtcGxhdGUyLm5hbWUnKSxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHQoJ3RyaWdnZXJzU2VjdGlvbi5yb3V0aW5lVGVtcGxhdGVzLnRlbXBsYXRlMi5kZXNjJyksXG4gICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlVHlwZTogJ3dlZWtseScgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IDksXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrOiAwLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVtb2ppOiAn8J+UlCcsXG4gICAgICAgICAgICAgICAgICBuYW1lOiB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50ZW1wbGF0ZTMubmFtZScpLFxuICAgICAgICAgICAgICAgICAgZGVzYzogdCgndHJpZ2dlcnNTZWN0aW9uLnJvdXRpbmVUZW1wbGF0ZXMudGVtcGxhdGUzLmRlc2MnKSxcbiAgICAgICAgICAgICAgICAgIGZyZXE6IHQoJ3RyaWdnZXJzU2VjdGlvbi5yb3V0aW5lVGVtcGxhdGVzLnRlbXBsYXRlMy5mcmVxJyksXG4gICAgICAgICAgICAgICAgICBmb3JtRGF0YToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZVRlbXBsYXRlcy50ZW1wbGF0ZTMubmFtZScpLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDogdCgndHJpZ2dlcnNTZWN0aW9uLnJvdXRpbmVUZW1wbGF0ZXMudGVtcGxhdGUzLmRlc2MnKSxcbiAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVUeXBlOiAnd2Vla2x5JyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgICAgaG91cjogMTcsXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrOiA0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdIGFzIHsgZW1vamk6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBkZXNjOiBzdHJpbmc7IGZyZXE6IHN0cmluZzsgZm9ybURhdGE6IFBhcnRpYWw8VHJpZ2dlckZvcm1TdGF0ZT4gfVtdKS5tYXAodGVtcGxhdGUgPT4gKFxuICAgICAgICAgICAgICAgIDxTQ1RlbXBsYXRlQ2FyZFxuICAgICAgICAgICAgICAgICAga2V5PXt0ZW1wbGF0ZS5uYW1lfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRUZW1wbGF0ZUZvcm0odGVtcGxhdGUuZm9ybURhdGEpXG4gICAgICAgICAgICAgICAgICAgIHNldFNob3dDcmVhdGVQYW5lbCh0cnVlKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U0NUZW1wbGF0ZUVtb2ppPnt0ZW1wbGF0ZS5lbW9qaX08L1NDVGVtcGxhdGVFbW9qaT5cbiAgICAgICAgICAgICAgICAgIDxTQ1RlbXBsYXRlSW5mbz5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGVtcGxhdGVOYW1lPnt0ZW1wbGF0ZS5uYW1lfTwvU0NUZW1wbGF0ZU5hbWU+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1RlbXBsYXRlRGVzYz57dGVtcGxhdGUuZGVzY308L1NDVGVtcGxhdGVEZXNjPlxuICAgICAgICAgICAgICAgICAgPC9TQ1RlbXBsYXRlSW5mbz5cbiAgICAgICAgICAgICAgICAgIDxTQ1RlbXBsYXRlRnJlcT57dGVtcGxhdGUuZnJlcX08L1NDVGVtcGxhdGVGcmVxPlxuICAgICAgICAgICAgICAgIDwvU0NUZW1wbGF0ZUNhcmQ+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ1RlbXBsYXRlc0xpc3Q+XG4gICAgICAgICAgPC9TQ0VtcHR5VGVtcGxhdGVzPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTQ0xpc3Q+XG4gICAgICAgICAgICB7bXlTY2hlZHVsZXMubWFwKHNjaGVkdWxlID0+IChcbiAgICAgICAgICAgICAgPFNDUm93IGtleT17c2NoZWR1bGUuaWR9PlxuICAgICAgICAgICAgICAgIDxTQ1Jvd0xlZnQ+XG4gICAgICAgICAgICAgICAgICA8U0NSb3V0aW5lTmFtZT5cbiAgICAgICAgICAgICAgICAgICAge3NjaGVkdWxlLm5hbWUgfHwgdCgndHJpZ2dlcnNTZWN0aW9uLnVudGl0bGVkUm91dGluZScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ1JvdXRpbmVOYW1lPlxuICAgICAgICAgICAgICAgICAgPFNDUm91dGluZU1ldGE+XG4gICAgICAgICAgICAgICAgICAgIHsoc2NoZWR1bGUuYWdlbnRfZW1vamkgfHwgc2NoZWR1bGUuYWdlbnRfbmFtZSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ0FnZW50QmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2NoZWR1bGUuYWdlbnRfZW1vamkgPyBgJHtzY2hlZHVsZS5hZ2VudF9lbW9qaX0gYCA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAge3NjaGVkdWxlLmFnZW50X25hbWUgPz8gJyd9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50QmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntmcmVxdWVuY3lMYWJlbChzY2hlZHVsZSl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57dCgndHJpZ2dlcnNTZWN0aW9uLm5leHRSdW4nKX06IHtmb3JtYXROZXh0UnVuKHNjaGVkdWxlLm5leHRfcnVuX2F0KX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L1NDUm91dGluZU1ldGE+XG4gICAgICAgICAgICAgICAgPC9TQ1Jvd0xlZnQ+XG4gICAgICAgICAgICAgICAgPFNDUm93UmlnaHQ+XG4gICAgICAgICAgICAgICAgICA8U0NTdGF0dXNCYWRnZSBzdGF0dXM9e3NjaGVkdWxlLnN0YXR1c30+XG4gICAgICAgICAgICAgICAgICAgIHtzdGF0dXNMYWJlbChzY2hlZHVsZS5zdGF0dXMpfVxuICAgICAgICAgICAgICAgICAgPC9TQ1N0YXR1c0JhZGdlPlxuICAgICAgICAgICAgICAgICAgPFNDRGVsZXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17dCgndHJpZ2dlcnNTZWN0aW9uLmRlbGV0ZVJvdXRpbmUnKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2NoZWR1bGVUb0RlbGV0ZShzY2hlZHVsZSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIzIDYgNSA2IDIxIDZcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgNmwtMSAxNGEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMkw1IDZcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMTF2NlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNCAxMXY2XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgNlY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvU0NEZWxldGVCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9TQ1Jvd1JpZ2h0PlxuICAgICAgICAgICAgICA8L1NDUm93PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0xpc3Q+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ29udGVudD5cblxuICAgICAge3Nob3dDcmVhdGVQYW5lbCAmJiAoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtcm9vdC1hY3Rpb25zJylcbiAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybiBudWxsXG4gICAgICAgIHJldHVybiBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPEJhY2tkcm9wIG9uQ2xpY2s9eygpID0+IHsgc2V0U2hvd0NyZWF0ZVBhbmVsKGZhbHNlKTsgc2V0VGVtcGxhdGVGb3JtKG51bGwpIH19IHpJbmRleD17MTExMTF9PlxuICAgICAgICAgICAgPFNDTW9kYWxCb3ggb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAgICAgICAgPFNDTW9kYWxIZWFkZXI+XG4gICAgICAgICAgICAgICAgPFNDTW9kYWxUaXRsZT57dCgndHJpZ2dlcnNTZWN0aW9uLm5ld1JvdXRpbmUnKX08L1NDTW9kYWxUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNb2RhbENsb3NlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiB7IHNldFNob3dDcmVhdGVQYW5lbChmYWxzZSk7IHNldFRlbXBsYXRlRm9ybShudWxsKSB9fT7DlzwvU0NNb2RhbENsb3NlQnV0dG9uPlxuICAgICAgICAgICAgICA8L1NDTW9kYWxIZWFkZXI+XG4gICAgICAgICAgICAgIDxTQ01vZGFsQm9keT5cbiAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyIHJlZj17ZHJvcGRvd25SZWYgYXMgYW55fT5cbiAgICAgICAgICAgICAgICAgIDxTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyIG9wZW49e2Ryb3Bkb3duT3Blbn0gb25DbGljaz17KCkgPT4gc2V0RHJvcGRvd25PcGVuKHByZXYgPT4gIXByZXYpfSB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ0FnZW50U2VsZWN0b3JMYWJlbD57dCgndHJpZ2dlcnNTZWN0aW9uLmFnZW50Jyl9OiA8L1NDQWdlbnRTZWxlY3RvckxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nQWdlbnRzID8gdCgndHJpZ2dlcnNTZWN0aW9uLmxvYWRpbmdBZ2VudHMnKSA6IHNlbGVjdGVkTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17ZHJvcGRvd25PcGVuID8gJ3JnYmEoMCw2OCwxMDIsMSknIDogJ3JnYmEoMTUzLDE1MywxNTMsMSknfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAge2Ryb3Bkb3duT3BlbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ0FnZW50U2VsZWN0b3JMaXN0PlxuICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nQWdlbnRzID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPXt7IHBhZGRpbmc6ICc4cHggMTJweCcsIGZvbnRTaXplOiAxMywgY29sb3I6ICcjNmI3MjgwJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5sb2FkaW5nQWdlbnRzJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDQWdlbnRTZWxlY3Rvck9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRBZ2VudD8uaWQgPT09IGFnZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQWdlbnQoYWdlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXREcm9wZG93bk9wZW4oZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthZ2VudC5lbW9qaSA/IGAke2FnZW50LmVtb2ppfSBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NBZ2VudFNlbGVjdG9yT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1NDQWdlbnRTZWxlY3Rvckxpc3Q+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxBYm1UcmlnZ2Vyc1NlY3Rpb25cbiAgICAgICAgICAgICAgICAgIGFnZW50RXh0ZXJuYWxJZD17c2VsZWN0ZWRBZ2VudD8uaWQgPz8gbnVsbH1cbiAgICAgICAgICAgICAgICAgIGluaXRpYWxGb3JtPXt0ZW1wbGF0ZUZvcm0gPz8gdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgc3VibWl0Q291bnQ9e3N1Ym1pdENvdW50fVxuICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPXtoYW5kbGVDcmVhdGVTdWNjZXNzfVxuICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZUNyZWF0ZU9ubHlcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NDTW9kYWxCb2R5PlxuICAgICAgICAgICAgICA8U0NNb2RhbEZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8U0NNb2RhbFNhdmVCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTdWJtaXRDb3VudChwcmV2ID0+IHByZXYgKyAxKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5zYXZlJyl9XG4gICAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvU0NNb2RhbFNhdmVCdXR0b24+XG4gICAgICAgICAgICAgIDwvU0NNb2RhbEZvb3Rlcj5cbiAgICAgICAgICAgIDwvU0NNb2RhbEJveD5cbiAgICAgICAgICA8L0JhY2tkcm9wPixcbiAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgKVxuICAgICAgfSkoKX1cblxuICAgICAge3NjaGVkdWxlVG9EZWxldGUgJiYgKFxuICAgICAgICA8RGVsZXRlUXVlc3Rpb25Nb2RhbFxuICAgICAgICAgIGFjdGlvbj1cInJvdXRpbmVcIlxuICAgICAgICAgIGNoYXQ9e3sgdGl0bGU6IHNjaGVkdWxlVG9EZWxldGUubmFtZSB8fCB0KCd0cmlnZ2Vyc1NlY3Rpb24udW50aXRsZWRSb3V0aW5lJykgfX1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTY2hlZHVsZVRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiAoKSA9PiBoYW5kbGVEZWxldGVTY2hlZHVsZShzY2hlZHVsZVRvRGVsZXRlLmlkKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1NDV3JhcHBlcj5cbiAgKVxufVxuXG4iXSwibWFwcGluZ3MiOiI7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