@agilemotion/oui-react-js 2.0.29 → 2.0.32
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/dist/components/Calendar.js +137 -46
- package/dist/components/TabPanel.js +3 -2
- package/package.json +1 -1
|
@@ -24,6 +24,8 @@ var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
|
|
|
24
24
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
25
25
|
var _Icon = _interopRequireDefault(require("./Icon"));
|
|
26
26
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
27
|
+
var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
|
|
28
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
27
29
|
var _Calendar = _interopRequireDefault(require("../js/Calendar"));
|
|
28
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
31
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -87,6 +89,13 @@ const Calendar = props => {
|
|
|
87
89
|
bottom: '20px',
|
|
88
90
|
right: '20px'
|
|
89
91
|
});
|
|
92
|
+
const [createMenu, setCreateMenu] = (0, _react.useState)({
|
|
93
|
+
open: false,
|
|
94
|
+
x: 0,
|
|
95
|
+
y: 0,
|
|
96
|
+
items: [],
|
|
97
|
+
info: null
|
|
98
|
+
});
|
|
90
99
|
const contextChangeHandler = {};
|
|
91
100
|
let counter = 1;
|
|
92
101
|
const StyledDialog = (0, _withStyles.default)({
|
|
@@ -112,7 +121,9 @@ const Calendar = props => {
|
|
|
112
121
|
})(_Dialog.default);
|
|
113
122
|
const loadEvents = function () {
|
|
114
123
|
let track = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
115
|
-
|
|
124
|
+
// Configurable path appended to the location + context-root base; defaults to the calendar events endpoint.
|
|
125
|
+
const eventsUrlPath = props.config && props.config.eventsUrlPath || '/calendar/api/v1/event/list';
|
|
126
|
+
fetch(encodeURI(location + _ApplicationManager.default.getContextRoot() + eventsUrlPath), {
|
|
116
127
|
method: 'GET',
|
|
117
128
|
headers: {
|
|
118
129
|
'Accept': 'application/json',
|
|
@@ -149,6 +160,69 @@ const Calendar = props => {
|
|
|
149
160
|
const calenderScrollListener = () => {
|
|
150
161
|
setOpen(false);
|
|
151
162
|
};
|
|
163
|
+
const isTodayOrFuture = dateStr => (0, _moment.default)(new Date()).startOf('day') <= (0, _moment.default)(new Date(dateStr)).startOf('day');
|
|
164
|
+
const buildCalendarEvent = (info, _ref) => {
|
|
165
|
+
let {
|
|
166
|
+
eventType,
|
|
167
|
+
conferencingActivityGroup,
|
|
168
|
+
metadata
|
|
169
|
+
} = _ref;
|
|
170
|
+
let date = new Date(info.dateStr);
|
|
171
|
+
let timeDate = new Date();
|
|
172
|
+
let startTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
173
|
+
timeDate.setHours(timeDate.getHours() + 1);
|
|
174
|
+
startTime.set({
|
|
175
|
+
h: timeDate.getHours(),
|
|
176
|
+
m: 0
|
|
177
|
+
});
|
|
178
|
+
let endTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
179
|
+
timeDate.setHours(timeDate.getHours() + 1);
|
|
180
|
+
endTime.set({
|
|
181
|
+
h: timeDate.getHours(),
|
|
182
|
+
m: 0
|
|
183
|
+
});
|
|
184
|
+
const calendarEvent = _objectSpread(_objectSpread({}, eventTemplate), {}, {
|
|
185
|
+
schedule: {
|
|
186
|
+
startDate: date,
|
|
187
|
+
endDate: date,
|
|
188
|
+
startTime: startTime.toDate(),
|
|
189
|
+
endTime: endTime.toDate(),
|
|
190
|
+
recurringStartDate: date,
|
|
191
|
+
recurringEndDate: date
|
|
192
|
+
},
|
|
193
|
+
eventType: eventType,
|
|
194
|
+
conferencingActivityGroup: conferencingActivityGroup,
|
|
195
|
+
metadata: metadata
|
|
196
|
+
});
|
|
197
|
+
if (_Utils.default.isStringEmpty(calendarEvent.id)) {
|
|
198
|
+
calendarEvent.id = null;
|
|
199
|
+
}
|
|
200
|
+
return calendarEvent;
|
|
201
|
+
};
|
|
202
|
+
const fireCreate = calendarEvent => {
|
|
203
|
+
let event = new _Event.default(props.handle, props.viewId, calendarEvent);
|
|
204
|
+
_Observable.default.fireEvent(_EventType.default.CALENDAR_DATE_CLICK, event);
|
|
205
|
+
};
|
|
206
|
+
const fireCreateForMetadata = (info, meta) => {
|
|
207
|
+
fireCreate(buildCalendarEvent(info, {
|
|
208
|
+
eventType: meta.conferencingActivityGroup,
|
|
209
|
+
conferencingActivityGroup: meta.conferencingActivityGroup,
|
|
210
|
+
metadata: meta
|
|
211
|
+
}));
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
// Fetch the CREATE-operation metadata the current user is entitled to (role-filtered server-side).
|
|
215
|
+
const fetchCreateMetadata = url => {
|
|
216
|
+
return fetch(encodeURI(location + _ApplicationManager.default.getContextRoot() + url), {
|
|
217
|
+
method: 'GET',
|
|
218
|
+
headers: {
|
|
219
|
+
'Accept': 'application/json',
|
|
220
|
+
'Content-Type': 'application/json',
|
|
221
|
+
'Authorization': 'Bearer ' + sessionStorage.getItem("accessToken"),
|
|
222
|
+
'idToken': sessionStorage.getItem("idToken")
|
|
223
|
+
}
|
|
224
|
+
}).then(status).then(json).then(response => JSON.parse(response));
|
|
225
|
+
};
|
|
152
226
|
const calendarOptions = {
|
|
153
227
|
events: events,
|
|
154
228
|
plugins: [_interaction.default, _daygrid.default, _timegrid.default, _list.default, _rrule.default],
|
|
@@ -190,10 +264,10 @@ const Calendar = props => {
|
|
|
190
264
|
? Docs: https://fullcalendar.io/docs/navLinks
|
|
191
265
|
*/
|
|
192
266
|
navLinks: true,
|
|
193
|
-
eventClassNames(
|
|
267
|
+
eventClassNames(_ref2) {
|
|
194
268
|
let {
|
|
195
269
|
event: calendarEvent
|
|
196
|
-
} =
|
|
270
|
+
} = _ref2;
|
|
197
271
|
// eslint-disable-next-line no-underscore-dangle
|
|
198
272
|
const colorName = '#945c33';
|
|
199
273
|
return ["bg-light-".concat(colorName)];
|
|
@@ -201,11 +275,11 @@ const Calendar = props => {
|
|
|
201
275
|
viewDidMount() {
|
|
202
276
|
setOpen(false);
|
|
203
277
|
},
|
|
204
|
-
eventClick(
|
|
278
|
+
eventClick(_ref3) {
|
|
205
279
|
let {
|
|
206
280
|
el: el,
|
|
207
281
|
event: event
|
|
208
|
-
} =
|
|
282
|
+
} = _ref3;
|
|
209
283
|
setSelectedEvent(event);
|
|
210
284
|
setOpen(true);
|
|
211
285
|
let elementsByClassName = document.getElementsByClassName('fc-scroller-liquid-absolute');
|
|
@@ -220,49 +294,48 @@ const Calendar = props => {
|
|
|
220
294
|
}
|
|
221
295
|
},
|
|
222
296
|
dateClick(info) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
let startTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
226
|
-
timeDate.setHours(timeDate.getHours() + 1);
|
|
227
|
-
startTime.set({
|
|
228
|
-
h: timeDate.getHours(),
|
|
229
|
-
m: 0
|
|
230
|
-
});
|
|
231
|
-
let endTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
232
|
-
timeDate.setHours(timeDate.getHours() + 1);
|
|
233
|
-
endTime.set({
|
|
234
|
-
h: timeDate.getHours(),
|
|
235
|
-
m: 0
|
|
236
|
-
});
|
|
237
|
-
const calendarEvent = _objectSpread(_objectSpread({}, eventTemplate), {}, {
|
|
238
|
-
schedule: {
|
|
239
|
-
startDate: date,
|
|
240
|
-
endDate: date,
|
|
241
|
-
startTime: startTime.toDate(),
|
|
242
|
-
endTime: endTime.toDate(),
|
|
243
|
-
recurringStartDate: date,
|
|
244
|
-
recurringEndDate: date
|
|
245
|
-
},
|
|
246
|
-
eventType: _Utils.default.getComponentAttribute(props.config, 'eventType', 'TRAINING')
|
|
247
|
-
});
|
|
248
|
-
if (_Utils.default.isStringEmpty(calendarEvent.id)) {
|
|
249
|
-
calendarEvent.id = null;
|
|
297
|
+
if (open || !isTodayOrFuture(info.dateStr)) {
|
|
298
|
+
return;
|
|
250
299
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
300
|
+
const createEventMetadataUrl = props.config && props.config.createEventMetadataUrl;
|
|
301
|
+
if (createEventMetadataUrl) {
|
|
302
|
+
// Role-gated create: fetch the domains this user may create, then let them pick from a menu.
|
|
303
|
+
fetchCreateMetadata(createEventMetadataUrl).then(result => {
|
|
304
|
+
const items = result && result.records ? result.records : [];
|
|
305
|
+
if (items.length === 0) {
|
|
306
|
+
return; // nothing creatable for this user's roles — no menu, no event fired
|
|
307
|
+
}
|
|
308
|
+
if (items.length === 1) {
|
|
309
|
+
// Only one option — skip the menu and act as if it was clicked.
|
|
310
|
+
fireCreateForMetadata(info, items[0]);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const jsEvent = info.jsEvent || {};
|
|
314
|
+
setCreateMenu({
|
|
315
|
+
open: true,
|
|
316
|
+
x: jsEvent.clientX || 0,
|
|
317
|
+
y: jsEvent.clientY || 0,
|
|
318
|
+
items,
|
|
319
|
+
info
|
|
320
|
+
});
|
|
321
|
+
}).catch(ignored => {});
|
|
322
|
+
return;
|
|
255
323
|
}
|
|
324
|
+
|
|
325
|
+
// Legacy behaviour: single hard-coded event type.
|
|
326
|
+
fireCreate(buildCalendarEvent(info, {
|
|
327
|
+
eventType: _Utils.default.getComponentAttribute(props.config, 'eventType', 'TRAINING')
|
|
328
|
+
}));
|
|
256
329
|
},
|
|
257
330
|
/*
|
|
258
331
|
Handle event drop (Also include dragged event)
|
|
259
332
|
? Docs: https://fullcalendar.io/docs/eventDrop
|
|
260
333
|
? We can use `eventDragStop` but it doesn't return updated event so we have to use `eventDrop` which returns updated event
|
|
261
334
|
*/
|
|
262
|
-
eventDrop(
|
|
335
|
+
eventDrop(_ref4) {
|
|
263
336
|
let {
|
|
264
337
|
event: droppedEvent
|
|
265
|
-
} =
|
|
338
|
+
} = _ref4;
|
|
266
339
|
//dispatch(updateEvent(droppedEvent));
|
|
267
340
|
_reactHotToast.default.success('Event Updated');
|
|
268
341
|
},
|
|
@@ -270,10 +343,10 @@ const Calendar = props => {
|
|
|
270
343
|
Handle event resize
|
|
271
344
|
? Docs: https://fullcalendar.io/docs/eventResize
|
|
272
345
|
*/
|
|
273
|
-
eventResize(
|
|
346
|
+
eventResize(_ref5) {
|
|
274
347
|
let {
|
|
275
348
|
event: resizedEvent
|
|
276
|
-
} =
|
|
349
|
+
} = _ref5;
|
|
277
350
|
//dispatch(updateEvent(resizedEvent));
|
|
278
351
|
_reactHotToast.default.success('Event Updated');
|
|
279
352
|
},
|
|
@@ -281,20 +354,20 @@ const Calendar = props => {
|
|
|
281
354
|
Handle event mouse enter
|
|
282
355
|
? Docs: https://fullcalendar.io/docs/eventMouseEnter
|
|
283
356
|
*/
|
|
284
|
-
eventMouseEnter(
|
|
357
|
+
eventMouseEnter(_ref6) {
|
|
285
358
|
let {
|
|
286
359
|
el: el,
|
|
287
360
|
event: event
|
|
288
|
-
} =
|
|
361
|
+
} = _ref6;
|
|
289
362
|
},
|
|
290
363
|
/*
|
|
291
364
|
Handle event mouse enter
|
|
292
365
|
? Docs: https://fullcalendar.io/docs/eventMouseEnter
|
|
293
366
|
*/
|
|
294
|
-
eventMouseLeave(
|
|
367
|
+
eventMouseLeave(_ref7) {
|
|
295
368
|
let {
|
|
296
369
|
el: el
|
|
297
|
-
} =
|
|
370
|
+
} = _ref7;
|
|
298
371
|
},
|
|
299
372
|
ref: calendarRef,
|
|
300
373
|
// Get direction from app state (store)
|
|
@@ -415,7 +488,25 @@ const Calendar = props => {
|
|
|
415
488
|
}
|
|
416
489
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
417
490
|
className: 'w-100 h-100'
|
|
418
|
-
}, createEventPopup()))
|
|
491
|
+
}, createEventPopup())), /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
492
|
+
open: createMenu.open,
|
|
493
|
+
onClose: () => setCreateMenu(_objectSpread(_objectSpread({}, createMenu), {}, {
|
|
494
|
+
open: false
|
|
495
|
+
})),
|
|
496
|
+
anchorReference: "anchorPosition",
|
|
497
|
+
anchorPosition: createMenu.open ? {
|
|
498
|
+
top: createMenu.y,
|
|
499
|
+
left: createMenu.x
|
|
500
|
+
} : undefined
|
|
501
|
+
}, createMenu.items.map((meta, idx) => /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
502
|
+
key: meta.conferencingActivityGroup || idx,
|
|
503
|
+
onClick: () => {
|
|
504
|
+
setCreateMenu(_objectSpread(_objectSpread({}, createMenu), {}, {
|
|
505
|
+
open: false
|
|
506
|
+
}));
|
|
507
|
+
fireCreateForMetadata(createMenu.info, meta);
|
|
508
|
+
}
|
|
509
|
+
}, meta.description || meta.conferencingActivityGroup))));
|
|
419
510
|
};
|
|
420
511
|
var _default = exports.default = Calendar;
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfcmVhY3QyIiwiX2xpc3QiLCJfcnJ1bGUiLCJfZGF5Z3JpZCIsIl90aW1lZ3JpZCIsIl9pbnRlcmFjdGlvbiIsIl9tb21lbnQiLCJfcmVhY3RIb3RUb2FzdCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0RpYWxvZyIsIl93aXRoU3R5bGVzIiwiX0ljb25CdXR0b24iLCJfSWNvbiIsIl9CdXR0b24iLCJfQ2FsZW5kYXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJldmVudFRlbXBsYXRlIiwiaWQiLCJ0aXRsZSIsInN0YXJ0IiwiZW5kIiwiYWxsRGF5IiwiZXh0ZW5kZWRQcm9wcyIsImRlc2NyaXB0aW9uIiwiYXR0ZW5kZWVzIiwiaWRlbnRpZmllciIsIm5hbWUiLCJvcHRpb25hbCIsInNjaGVkdWxlIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJsb2NhdGlvbnMiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlcnJvciIsIkVycm9yIiwic3RhdHVzVGV4dCIsImNvZGUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkNhbGVuZGFyIiwicHJvcHMiLCJpc1J0bCIsImV2ZW50cyIsInNldEV2ZW50cyIsInVzZVN0YXRlIiwibG9hZGluZyIsInNldExvYWRpbmciLCJvcGVuIiwic2V0T3BlbiIsInNlbGVjdGVkRXZlbnQiLCJzZXRTZWxlY3RlZEV2ZW50IiwiY2FsZW5kYXJSZWYiLCJ1c2VSZWYiLCJkaWFsb2dSZWYiLCJyZWZyZXNoZXIiLCJzZXRSZWZyZXNoZXIiLCJkaWFsb2dQb3NpdGlvbiIsInNldERpYWxvZ1Bvc2l0aW9uIiwiYm90dG9tIiwicmlnaHQiLCJjb250ZXh0Q2hhbmdlSGFuZGxlciIsImNvdW50ZXIiLCJTdHlsZWREaWFsb2ciLCJ3aXRoU3R5bGVzIiwicm9vdCIsInBvaW50ZXJFdmVudHMiLCJwYXBlciIsIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJEaWFsb2ciLCJsb2FkRXZlbnRzIiwidHJhY2siLCJ1bmRlZmluZWQiLCJmZXRjaCIsImVuY29kZVVSSSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwibWV0aG9kIiwiaGVhZGVycyIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsInRoZW4iLCJKU09OIiwicGFyc2UiLCJjYXRjaCIsImlnbm9yZWQiLCJoYW5kbGVyIiwib25Db250ZXh0Q2hhbmdlIiwiY29udGV4dCIsIm5ld1ZhbHVlcyIsImZpbmQiLCJrZXkiLCJ1c2VFZmZlY3QiLCJhcGkiLCJhZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24iLCJjYWxlbmRlclNjcm9sbExpc3RlbmVyIiwiY2FsZW5kYXJPcHRpb25zIiwicGx1Z2lucyIsImludGVyYWN0aW9uUGx1Z2luIiwiZGF5R3JpZFBsdWdpbiIsInRpbWVHcmlkUGx1Z2luIiwibGlzdFBsdWdpbiIsInJydWxlUGx1Z2luIiwiaW5pdGlhbFZpZXciLCJoZWFkZXJUb29sYmFyIiwiZWRpdGFibGUiLCJzdGlja3lIZWFkZXJEYXRlcyIsImV2ZW50VGltZUZvcm1hdCIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJldmVudFJlc2l6YWJsZUZyb21TdGFydCIsImRyYWdTY3JvbGwiLCJkYXlNYXhFdmVudHMiLCJuYXZMaW5rcyIsImV2ZW50Q2xhc3NOYW1lcyIsIl9yZWYiLCJldmVudCIsImNhbGVuZGFyRXZlbnQiLCJjb2xvck5hbWUiLCJjb25jYXQiLCJ2aWV3RGlkTW91bnQiLCJldmVudENsaWNrIiwiX3JlZjIiLCJlbCIsImVsZW1lbnRzQnlDbGFzc05hbWUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGVDbGljayIsImluZm8iLCJkYXRlIiwiRGF0ZSIsImRhdGVTdHIiLCJ0aW1lRGF0ZSIsIm1vbWVudCIsInNldEhvdXJzIiwiZ2V0SG91cnMiLCJoIiwibSIsInRvRGF0ZSIsInJlY3VycmluZ1N0YXJ0RGF0ZSIsInJlY3VycmluZ0VuZERhdGUiLCJldmVudFR5cGUiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsImlzU3RyaW5nRW1wdHkiLCJzdGFydE9mIiwiY29uc29sZSIsImxvZyIsIkV2ZW50IiwiaGFuZGxlIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ0FMRU5EQVJfREFURV9DTElDSyIsImV2ZW50RHJvcCIsIl9yZWYzIiwiZHJvcHBlZEV2ZW50IiwidG9hc3QiLCJzdWNjZXNzIiwiZXZlbnRSZXNpemUiLCJfcmVmNCIsInJlc2l6ZWRFdmVudCIsImV2ZW50TW91c2VFbnRlciIsIl9yZWY1IiwiZXZlbnRNb3VzZUxlYXZlIiwiX3JlZjYiLCJyZWYiLCJkaXJlY3Rpb24iLCJSZWFjdCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImlzTnVsbCIsInN1YnNjcmlwdGlvbnMiLCJhZGRTdWJzY3JpcHRpb25zIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsInRvRGF0ZVRpbWVTdHJpbmciLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0aW1lU3RyVG9rZW5zIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwic3BsaXQiLCJnZXRGb3JtT2JqZWN0IiwiY2FsZW5kYXIiLCJjYWxlbmRhckV2ZW50VG9Gb3JtT2JqZWN0IiwiZ2V0Q2hpbGRyZW4iLCJjcmVhdGVFdmVudFBvcHVwIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsImNvbG9yIiwiaG9zdCIsInN0eWxlIiwibWFyZ2luVG9wIiwiaGFzQWN0aXZlTWVldGluZyIsInZhcmlhbnQiLCJzaXplIiwibWFyZ2luUmlnaHQiLCJDQUxFTkRBUl9FVkVOVF9TVEFSVCIsIm1lcmdlU3R5bGVzIiwibWF4SGVpZ2h0Iiwib25DbG9zZSIsImhpZGVCYWNrZHJvcCIsImRpc2FibGVFbmZvcmNlRm9jdXMiLCJkaXNhYmxlQXV0b0ZvY3VzIiwiUGFwZXJQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9DYWxlbmRhci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBGdWxsQ2FsZW5kYXIgZnJvbSAnQGZ1bGxjYWxlbmRhci9yZWFjdCc7XG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xuaW1wb3J0IHJydWxlUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvcnJ1bGUnO1xuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcbmltcG9ydCB0aW1lR3JpZFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL3RpbWVncmlkJztcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcbmltcG9ydCBcIi4vQ2FsZW5kZXIuY3NzXCJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHRvYXN0IGZyb20gJ3JlYWN0LWhvdC10b2FzdCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tIFwiQG11aS9zdHlsZXMvd2l0aFN0eWxlc1wiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEljb24gZnJvbSBcIi4vSWNvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbmltcG9ydCBjYWxlbmRhciBmcm9tICcuLi9qcy9DYWxlbmRhcic7XG5cbmNvbnN0IGV2ZW50VGVtcGxhdGUgPSB7XG4gICAgaWQ6ICcnLFxuICAgIHRpdGxlOiAnJyxcbiAgICBzdGFydDogJycsXG4gICAgZW5kOiAnJyxcbiAgICBhbGxEYXk6IGZhbHNlLFxuICAgIGV4dGVuZGVkUHJvcHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBhdHRlbmRlZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJycsXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICAgICAgb3B0aW9uYWw6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogJycsXG4gICAgICAgICAgICBlbmREYXRlOiAnJyxcbiAgICAgICAgICAgIHN0YXJ0VGltZTogJycsXG4gICAgICAgICAgICBlbmRUaW1lOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgIH0sXG59O1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICBlcnJvci5jb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IENhbGVuZGFyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3Qge2lzUnRsfSA9IHByb3BzO1xuICAgIGNvbnN0IFtldmVudHMsIHNldEV2ZW50c10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEV2ZW50LCBzZXRTZWxlY3RlZEV2ZW50XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNhbGVuZGFyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2RpYWxvZ1Bvc2l0aW9uLCBzZXREaWFsb2dQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IGJvdHRvbTogJzIwcHgnLCByaWdodDogJzIwcHgnIH0pO1xuICAgIGNvbnN0IGNvbnRleHRDaGFuZ2VIYW5kbGVyID0ge307XG4gICAgbGV0IGNvdW50ZXIgPSAxO1xuXG4gICAgY29uc3QgU3R5bGVkRGlhbG9nID0gd2l0aFN0eWxlcyh7XG4gICAgICAgIHJvb3Q6IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHBhcGVyOiB7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgICAgICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJzIyOHB4JyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgICAgICAgICAgcGFkZGluZzogJzAnLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICBib3R0b206IGRpYWxvZ1Bvc2l0aW9uLmJvdHRvbSxcbiAgICAgICAgICAgIHJpZ2h0OiBkaWFsb2dQb3NpdGlvbi5yaWdodCxcbiAgICAgICAgICAgIGxlZnQ6ICdhdXRvICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgdG9wOiAnYXV0byAhaW1wb3J0YW50JyxcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgICAgICAgICBtYXJnaW46ICcwICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICB9XG4gICAgfSkoRGlhbG9nKTtcblxuICAgIGNvbnN0IGxvYWRFdmVudHMgPSAodHJhY2sgPSB0cnVlKSA9PiB7XG4gICAgICAgIGZldGNoKGVuY29kZVVSSShsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9jYWxlbmRhci9hcGkvdjEvZXZlbnQvbGlzdCcpLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKSxcbiAgICAgICAgICAgICAgICAnaWRUb2tlbic6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAudGhlbihqc29uKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXZlbnRzKEpTT04ucGFyc2UocmVzcG9uc2UpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGlnbm9yZWQpID0+IHtcbiAgICAgICAgICAgIH0pXG4gICAgfTtcblxuXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NhbGVuZGFyJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobmV3VmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgoa2V5KSA9PiBrZXkgPT09ICd3aW5kb3dEaXNwbGF5U3RhdGUnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZWZyZXNoZXIoY291bnRlciA+IDIwID8gMCA6IGNvdW50ZXIrKyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb250ZXh0Q2hhbmdlSGFuZGxlci5hcGkgPSBoYW5kbGVyKCk7XG4gICAgICAgIGxvYWRFdmVudHMoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiBjb250ZXh0Q2hhbmdlSGFuZGxlclxuICAgICAgICB9KVxuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHRDaGFuZ2VIYW5kbGVyLmFwaSA9IGhhbmRsZXIoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpXG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IHtcbiAgICAgICAgZXZlbnRzOiBldmVudHMsXG4gICAgICAgIHBsdWdpbnM6IFtpbnRlcmFjdGlvblBsdWdpbiwgZGF5R3JpZFBsdWdpbiwgdGltZUdyaWRQbHVnaW4sIGxpc3RQbHVnaW4sIHJydWxlUGx1Z2luXSxcbiAgICAgICAgaW5pdGlhbFZpZXc6ICdkYXlHcmlkTW9udGgnLFxuICAgICAgICBoZWFkZXJUb29sYmFyOiB7XG4gICAgICAgICAgICBzdGFydDogJ3NpZGViYXJUb2dnbGUsIHByZXYsbmV4dCwgdGl0bGUnLFxuICAgICAgICAgICAgZW5kOiAnZGF5R3JpZE1vbnRoLHRpbWVHcmlkV2Vlayx0aW1lR3JpZERheSxsaXN0TW9udGgnLFxuICAgICAgICB9LFxuICAgICAgICAvKlxuICAgICAgICAgIEVuYWJsZSBkcmFnZ2luZyBhbmQgcmVzaXppbmcgZXZlbnRcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZWRpdGFibGVcbiAgICAgICAgKi9cbiAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBzdGlja3lIZWFkZXJEYXRlczogdHJ1ZSxcblxuICAgICAgICBldmVudFRpbWVGb3JtYXQ6IHsgLy8gbGlrZSAnMTQ6MzA6MDAnXG4gICAgICAgICAgICBob3VyOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBob3VyMTI6IGZhbHNlXG4gICAgICAgIH0sXG5cbiAgICAgICAgLypcbiAgICAgICAgICBFbmFibGUgcmVzaXppbmcgZXZlbnQgZnJvbSBzdGFydFxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9ldmVudFJlc2l6YWJsZUZyb21TdGFydFxuICAgICAgICAqL1xuICAgICAgICBldmVudFJlc2l6YWJsZUZyb21TdGFydDogdHJ1ZSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEF1dG9tYXRpY2FsbHkgc2Nyb2xsIHRoZSBzY3JvbGwtY29udGFpbmVycyBkdXJpbmcgZXZlbnQgZHJhZy1hbmQtZHJvcCBhbmQgZGF0ZSBzZWxlY3RpbmdcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZHJhZ1Njcm9sbFxuICAgICAgICAqL1xuICAgICAgICBkcmFnU2Nyb2xsOiB0cnVlLFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgTWF4IG51bWJlciBvZiBldmVudHMgd2l0aGluIGEgZ2l2ZW4gZGF5XG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2RheU1heEV2ZW50c1xuICAgICAgICAqL1xuICAgICAgICBkYXlNYXhFdmVudHM6IDIsXG5cbiAgICAgICAgLypcbiAgICAgICAgICBEZXRlcm1pbmVzIGlmIGRheSBuYW1lcyBhbmQgd2VlayBuYW1lcyBhcmUgY2xpY2thYmxlXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL25hdkxpbmtzXG4gICAgICAgICovXG4gICAgICAgIG5hdkxpbmtzOiB0cnVlLFxuXG4gICAgICAgIGV2ZW50Q2xhc3NOYW1lcyh7ZXZlbnQ6IGNhbGVuZGFyRXZlbnR9KSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yTmFtZSA9ICcjOTQ1YzMzJztcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBgYmctbGlnaHQtJHtjb2xvck5hbWV9YCxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgdmlld0RpZE1vdW50KCkge1xuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRDbGljayh7ZWw6IGVsLCBldmVudDogZXZlbnR9KSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG5cbiAgICAgICAgICAgIGxldCBlbGVtZW50c0J5Q2xhc3NOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZmMtc2Nyb2xsZXItbGlxdWlkLWFic29sdXRlJyk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudHNCeUNsYXNzTmFtZSAmJiBlbGVtZW50c0J5Q2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjYWxlbmRlclNjcm9sbExpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZjLXNjcm9sbGVyLWxpcXVpZCcpO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzQnlDbGFzc05hbWUgJiYgZWxlbWVudHNCeUNsYXNzTmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWVbMF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0ZUNsaWNrKGluZm8pIHtcbiAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoaW5mby5kYXRlU3RyKTtcbiAgICAgICAgICAgIGxldCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgICAgICB0aW1lRGF0ZS5zZXRIb3Vycyh0aW1lRGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgICAgICAgICBzdGFydFRpbWUuc2V0KHtoOiB0aW1lRGF0ZS5nZXRIb3VycygpLCBtOiAwfSk7XG5cbiAgICAgICAgICAgIGxldCBlbmRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgICAgICB0aW1lRGF0ZS5zZXRIb3Vycyh0aW1lRGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgICAgICAgICBlbmRUaW1lLnNldCh7aDogdGltZURhdGUuZ2V0SG91cnMoKSwgbTogMH0pO1xuXG4gICAgICAgICAgICBjb25zdCBjYWxlbmRhckV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIC4uLmV2ZW50VGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogZW5kVGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVjdXJyaW5nU3RhcnREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICByZWN1cnJpbmdFbmREYXRlOiBkYXRlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdldmVudFR5cGUnLCAnVFJBSU5JTkcnKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYoVXRpbHMuaXNTdHJpbmdFbXB0eShjYWxlbmRhckV2ZW50LmlkKSkge1xuICAgICAgICAgICAgICAgIGNhbGVuZGFyRXZlbnQuaWQgPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW9wZW4gJiYgbW9tZW50KG5ldyBEYXRlKCkpLnN0YXJ0T2YoJ2RheScpIDw9IG1vbWVudChkYXRlKS5zdGFydE9mKCdkYXknKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ0FMRU5EQVIgREFURSBDTElDS1wiKTtcbiAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGNhbGVuZGFyRXZlbnQpO1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0RBVEVfQ0xJQ0ssIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCBkcm9wIChBbHNvIGluY2x1ZGUgZHJhZ2dlZCBldmVudClcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnREcm9wXG4gICAgICAgICAgPyBXZSBjYW4gdXNlIGBldmVudERyYWdTdG9wYCBidXQgaXQgZG9lc24ndCByZXR1cm4gdXBkYXRlZCBldmVudCBzbyB3ZSBoYXZlIHRvIHVzZSBgZXZlbnREcm9wYCB3aGljaCByZXR1cm5zIHVwZGF0ZWQgZXZlbnRcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnREcm9wKHtldmVudDogZHJvcHBlZEV2ZW50fSkge1xuICAgICAgICAgICAgLy9kaXNwYXRjaCh1cGRhdGVFdmVudChkcm9wcGVkRXZlbnQpKTtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoJ0V2ZW50IFVwZGF0ZWQnKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCByZXNpemVcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRSZXNpemVcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnRSZXNpemUoe2V2ZW50OiByZXNpemVkRXZlbnR9KSB7XG4gICAgICAgICAgICAvL2Rpc3BhdGNoKHVwZGF0ZUV2ZW50KHJlc2l6ZWRFdmVudCkpO1xuICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnRXZlbnQgVXBkYXRlZCcpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgSGFuZGxlIGV2ZW50IG1vdXNlIGVudGVyXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2V2ZW50TW91c2VFbnRlclxuICAgICAgICAqL1xuICAgICAgICBldmVudE1vdXNlRW50ZXIoe2VsOiBlbCwgZXZlbnQ6IGV2ZW50fSkge1xuICAgICAgICB9LFxuXG5cbiAgICAgICAgLypcbiAgICAgICAgICBIYW5kbGUgZXZlbnQgbW91c2UgZW50ZXJcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRNb3VzZUVudGVyXG4gICAgICAgICovXG4gICAgICAgIGV2ZW50TW91c2VMZWF2ZSh7ZWw6IGVsfSkge1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlZjogY2FsZW5kYXJSZWYsXG5cbiAgICAgICAgLy8gR2V0IGRpcmVjdGlvbiBmcm9tIGFwcCBzdGF0ZSAoc3RvcmUpXG4gICAgICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6ICdsdHInLFxuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogcGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpID8gW10gOiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHRvRGF0ZVRpbWVTdHJpbmcgPSAoZGF0ZSkgPT4ge1xuICAgICAgICBsZXQgZGF0ZVN0ciA9IHNlbGVjdGVkRXZlbnQuc3RhcnQudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XG4gICAgICAgIGxldCB0aW1lU3RyVG9rZW5zID0gc2VsZWN0ZWRFdmVudC5zdGFydC50b0xvY2FsZVRpbWVTdHJpbmcoKS5zcGxpdCgnOicpO1xuXG4gICAgICAgIHJldHVybiBkYXRlU3RyICsgJyAnICsgdGltZVN0clRva2Vuc1swXSArICc6JyArIHRpbWVTdHJUb2tlbnNbMV07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEZvcm1PYmplY3QgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmNhbGVuZGFyRXZlbnRUb0Zvcm1PYmplY3QoZXZlbnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgY3JlYXRlRXZlbnRQb3B1cCA9IChlbCkgPT4ge1xuICAgICAgICByZXR1cm4gPD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEV2ZW50ICYmIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0b3AtdG9vbGJhciByb3cgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbGVmdCBjb2wgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnQ0xPU0UnfSBjb2xvcj17JyMwMTQ3NkMnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JpZ2h0IGNvbCBuby1wYWRkaW5nIG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiU0VMRUNURUQgRVZFTlQgOiBcIiwgZ2V0Rm9ybU9iamVjdChzZWxlY3RlZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0FMRU5EQVJfREFURV9DTElDSywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydNQVhJTUlaRSd9IGNvbG9yPXsnIzAxNDc2Qyd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc3VtbWFyeSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtb2RhbC10aXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZEV2ZW50LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0b0RhdGVUaW1lU3RyaW5nKHNlbGVjdGVkRXZlbnQuc3RhcnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J29yZ2FuaXNlcid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXNlcjoge3NlbGVjdGVkRXZlbnQuZXh0ZW5kZWRQcm9wcy5ob3N0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxNnB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWFwcGxpY2F0aW9uTWFuYWdlci5oYXNBY3RpdmVNZWV0aW5nKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e1wicHJpbWFyeVwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tib3JkZXJSYWRpdXM6ICc0cHgnLCBtYXJnaW5SaWdodDogJzJweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0VWRU5UX1NUQVJULCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT0lOXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9IHN0eWxlPXtcbiAgICAgICAgICAgIFV0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCAwJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZylcbiAgICAgICAgfT5cbiAgICAgICAgICAgIDxkaXYga2V5PXtyZWZyZXNoZXJ9IGNsYXNzTmFtZT17J3ctMTAwIGgtMTAwJ30+XG4gICAgICAgICAgICAgICAgPEZ1bGxDYWxlbmRhciB7Li4uY2FsZW5kYXJPcHRpb25zfS8+eycgJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFN0eWxlZERpYWxvZ1xuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgcmVmPXtkaWFsb2dSZWZ9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaGlkZUJhY2tkcm9wXG4gICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJhbGVydC1kaWFsb2ctdGl0bGVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJhbGVydC1kaWFsb2ctZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbW9kYWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogJ2F1dG8nXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndy0xMDAgaC0xMDAnfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRXZlbnRQb3B1cCgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU3R5bGVkRGlhbG9nPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsU0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBVSxPQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxjQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFWLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYSxVQUFBLEdBQUFYLHNCQUFBLENBQUFG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
|
|
512
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfcmVhY3QyIiwiX2xpc3QiLCJfcnJ1bGUiLCJfZGF5Z3JpZCIsIl90aW1lZ3JpZCIsIl9pbnRlcmFjdGlvbiIsIl9tb21lbnQiLCJfcmVhY3RIb3RUb2FzdCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0RpYWxvZyIsIl93aXRoU3R5bGVzIiwiX0ljb25CdXR0b24iLCJfSWNvbiIsIl9CdXR0b24iLCJfTWVudSIsIl9NZW51SXRlbSIsIl9DYWxlbmRhciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImV2ZW50VGVtcGxhdGUiLCJpZCIsInRpdGxlIiwic3RhcnQiLCJlbmQiLCJhbGxEYXkiLCJleHRlbmRlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJhdHRlbmRlZXMiLCJpZGVudGlmaWVyIiwibmFtZSIsIm9wdGlvbmFsIiwic2NoZWR1bGUiLCJzdGFydERhdGUiLCJlbmREYXRlIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImxvY2F0aW9ucyIsInN0YXR1cyIsInJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwicmVzb2x2ZSIsImVycm9yIiwiRXJyb3IiLCJzdGF0dXNUZXh0IiwiY29kZSIsInJlamVjdCIsImpzb24iLCJ0ZXh0IiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwiQ2FsZW5kYXIiLCJwcm9wcyIsImlzUnRsIiwiZXZlbnRzIiwic2V0RXZlbnRzIiwidXNlU3RhdGUiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIm9wZW4iLCJzZXRPcGVuIiwic2VsZWN0ZWRFdmVudCIsInNldFNlbGVjdGVkRXZlbnQiLCJjYWxlbmRhclJlZiIsInVzZVJlZiIsImRpYWxvZ1JlZiIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImRpYWxvZ1Bvc2l0aW9uIiwic2V0RGlhbG9nUG9zaXRpb24iLCJib3R0b20iLCJyaWdodCIsImNyZWF0ZU1lbnUiLCJzZXRDcmVhdGVNZW51IiwieCIsInkiLCJpdGVtcyIsImluZm8iLCJjb250ZXh0Q2hhbmdlSGFuZGxlciIsImNvdW50ZXIiLCJTdHlsZWREaWFsb2ciLCJ3aXRoU3R5bGVzIiwicm9vdCIsInBvaW50ZXJFdmVudHMiLCJwYXBlciIsIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJEaWFsb2ciLCJsb2FkRXZlbnRzIiwidHJhY2siLCJ1bmRlZmluZWQiLCJldmVudHNVcmxQYXRoIiwiY29uZmlnIiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsIm1ldGhvZCIsImhlYWRlcnMiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJ0aGVuIiwiSlNPTiIsInBhcnNlIiwiY2F0Y2giLCJpZ25vcmVkIiwiaGFuZGxlciIsIm9uQ29udGV4dENoYW5nZSIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJmaW5kIiwia2V5IiwidXNlRWZmZWN0IiwiYXBpIiwiYWRkQXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIiwiY2FsZW5kZXJTY3JvbGxMaXN0ZW5lciIsImlzVG9kYXlPckZ1dHVyZSIsImRhdGVTdHIiLCJtb21lbnQiLCJEYXRlIiwic3RhcnRPZiIsImJ1aWxkQ2FsZW5kYXJFdmVudCIsIl9yZWYiLCJldmVudFR5cGUiLCJjb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwIiwibWV0YWRhdGEiLCJkYXRlIiwidGltZURhdGUiLCJzZXRIb3VycyIsImdldEhvdXJzIiwiaCIsIm0iLCJjYWxlbmRhckV2ZW50IiwidG9EYXRlIiwicmVjdXJyaW5nU3RhcnREYXRlIiwicmVjdXJyaW5nRW5kRGF0ZSIsIlV0aWxzIiwiaXNTdHJpbmdFbXB0eSIsImZpcmVDcmVhdGUiLCJldmVudCIsIkV2ZW50IiwiaGFuZGxlIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ0FMRU5EQVJfREFURV9DTElDSyIsImZpcmVDcmVhdGVGb3JNZXRhZGF0YSIsIm1ldGEiLCJmZXRjaENyZWF0ZU1ldGFkYXRhIiwidXJsIiwiY2FsZW5kYXJPcHRpb25zIiwicGx1Z2lucyIsImludGVyYWN0aW9uUGx1Z2luIiwiZGF5R3JpZFBsdWdpbiIsInRpbWVHcmlkUGx1Z2luIiwibGlzdFBsdWdpbiIsInJydWxlUGx1Z2luIiwiaW5pdGlhbFZpZXciLCJoZWFkZXJUb29sYmFyIiwiZWRpdGFibGUiLCJzdGlja3lIZWFkZXJEYXRlcyIsImV2ZW50VGltZUZvcm1hdCIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJldmVudFJlc2l6YWJsZUZyb21TdGFydCIsImRyYWdTY3JvbGwiLCJkYXlNYXhFdmVudHMiLCJuYXZMaW5rcyIsImV2ZW50Q2xhc3NOYW1lcyIsIl9yZWYyIiwiY29sb3JOYW1lIiwiY29uY2F0Iiwidmlld0RpZE1vdW50IiwiZXZlbnRDbGljayIsIl9yZWYzIiwiZWwiLCJlbGVtZW50c0J5Q2xhc3NOYW1lIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJkYXRlQ2xpY2siLCJjcmVhdGVFdmVudE1ldGFkYXRhVXJsIiwicmVzdWx0IiwicmVjb3JkcyIsImpzRXZlbnQiLCJjbGllbnRYIiwiY2xpZW50WSIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImV2ZW50RHJvcCIsIl9yZWY0IiwiZHJvcHBlZEV2ZW50IiwidG9hc3QiLCJzdWNjZXNzIiwiZXZlbnRSZXNpemUiLCJfcmVmNSIsInJlc2l6ZWRFdmVudCIsImV2ZW50TW91c2VFbnRlciIsIl9yZWY2IiwiZXZlbnRNb3VzZUxlYXZlIiwiX3JlZjciLCJyZWYiLCJkaXJlY3Rpb24iLCJSZWFjdCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImlzTnVsbCIsInN1YnNjcmlwdGlvbnMiLCJhZGRTdWJzY3JpcHRpb25zIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsInRvRGF0ZVRpbWVTdHJpbmciLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0aW1lU3RyVG9rZW5zIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwic3BsaXQiLCJnZXRGb3JtT2JqZWN0IiwiY2FsZW5kYXIiLCJjYWxlbmRhckV2ZW50VG9Gb3JtT2JqZWN0IiwiZ2V0Q2hpbGRyZW4iLCJjcmVhdGVFdmVudFBvcHVwIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsImNvbG9yIiwiY29uc29sZSIsImxvZyIsImhvc3QiLCJzdHlsZSIsIm1hcmdpblRvcCIsImhhc0FjdGl2ZU1lZXRpbmciLCJ2YXJpYW50Iiwic2l6ZSIsIm1hcmdpblJpZ2h0IiwiQ0FMRU5EQVJfRVZFTlRfU1RBUlQiLCJtZXJnZVN0eWxlcyIsIm1heEhlaWdodCIsIm9uQ2xvc2UiLCJoaWRlQmFja2Ryb3AiLCJkaXNhYmxlRW5mb3JjZUZvY3VzIiwiZGlzYWJsZUF1dG9Gb2N1cyIsIlBhcGVyUHJvcHMiLCJhbmNob3JSZWZlcmVuY2UiLCJhbmNob3JQb3NpdGlvbiIsIm1hcCIsImlkeCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9DYWxlbmRhci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBGdWxsQ2FsZW5kYXIgZnJvbSAnQGZ1bGxjYWxlbmRhci9yZWFjdCc7XG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xuaW1wb3J0IHJydWxlUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvcnJ1bGUnO1xuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcbmltcG9ydCB0aW1lR3JpZFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL3RpbWVncmlkJztcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcbmltcG9ydCBcIi4vQ2FsZW5kZXIuY3NzXCJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHRvYXN0IGZyb20gJ3JlYWN0LWhvdC10b2FzdCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tIFwiQG11aS9zdHlsZXMvd2l0aFN0eWxlc1wiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEljb24gZnJvbSBcIi4vSWNvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbmltcG9ydCBNZW51IGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVcIjtcbmltcG9ydCBNZW51SXRlbSBmcm9tIFwiQG11aS9tYXRlcmlhbC9NZW51SXRlbVwiO1xuaW1wb3J0IGNhbGVuZGFyIGZyb20gJy4uL2pzL0NhbGVuZGFyJztcblxuY29uc3QgZXZlbnRUZW1wbGF0ZSA9IHtcbiAgICBpZDogJycsXG4gICAgdGl0bGU6ICcnLFxuICAgIHN0YXJ0OiAnJyxcbiAgICBlbmQ6ICcnLFxuICAgIGFsbERheTogZmFsc2UsXG4gICAgZXh0ZW5kZWRQcm9wczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGF0dGVuZGVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBvcHRpb25hbDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzY2hlZHVsZToge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgc3RhcnREYXRlOiAnJyxcbiAgICAgICAgICAgIGVuZERhdGU6ICcnLFxuICAgICAgICAgICAgc3RhcnRUaW1lOiAnJyxcbiAgICAgICAgICAgIGVuZFRpbWU6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgfSxcbn07XG5cbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IocmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gICAgICAgIGVycm9yLmNvZGUgPSByZXNwb25zZS5zdGF0dXM7XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuY29uc3QgQ2FsZW5kYXIgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7aXNSdGx9ID0gcHJvcHM7XG4gICAgY29uc3QgW2V2ZW50cywgc2V0RXZlbnRzXSA9IHVzZVN0YXRlKFtdKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NlbGVjdGVkRXZlbnQsIHNldFNlbGVjdGVkRXZlbnRdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2FsZW5kYXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtyZWZyZXNoZXIsIHNldFJlZnJlc2hlcl0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbZGlhbG9nUG9zaXRpb24sIHNldERpYWxvZ1Bvc2l0aW9uXSA9IHVzZVN0YXRlKHsgYm90dG9tOiAnMjBweCcsIHJpZ2h0OiAnMjBweCcgfSk7XG4gICAgY29uc3QgW2NyZWF0ZU1lbnUsIHNldENyZWF0ZU1lbnVdID0gdXNlU3RhdGUoeyBvcGVuOiBmYWxzZSwgeDogMCwgeTogMCwgaXRlbXM6IFtdLCBpbmZvOiBudWxsIH0pO1xuICAgIGNvbnN0IGNvbnRleHRDaGFuZ2VIYW5kbGVyID0ge307XG4gICAgbGV0IGNvdW50ZXIgPSAxO1xuXG4gICAgY29uc3QgU3R5bGVkRGlhbG9nID0gd2l0aFN0eWxlcyh7XG4gICAgICAgIHJvb3Q6IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHBhcGVyOiB7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgICAgICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJzIyOHB4JyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgICAgICAgICAgcGFkZGluZzogJzAnLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICBib3R0b206IGRpYWxvZ1Bvc2l0aW9uLmJvdHRvbSxcbiAgICAgICAgICAgIHJpZ2h0OiBkaWFsb2dQb3NpdGlvbi5yaWdodCxcbiAgICAgICAgICAgIGxlZnQ6ICdhdXRvICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgdG9wOiAnYXV0byAhaW1wb3J0YW50JyxcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgICAgICAgICBtYXJnaW46ICcwICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICB9XG4gICAgfSkoRGlhbG9nKTtcblxuICAgIGNvbnN0IGxvYWRFdmVudHMgPSAodHJhY2sgPSB0cnVlKSA9PiB7XG4gICAgICAgIC8vIENvbmZpZ3VyYWJsZSBwYXRoIGFwcGVuZGVkIHRvIHRoZSBsb2NhdGlvbiArIGNvbnRleHQtcm9vdCBiYXNlOyBkZWZhdWx0cyB0byB0aGUgY2FsZW5kYXIgZXZlbnRzIGVuZHBvaW50LlxuICAgICAgICBjb25zdCBldmVudHNVcmxQYXRoID0gKHByb3BzLmNvbmZpZyAmJiBwcm9wcy5jb25maWcuZXZlbnRzVXJsUGF0aCkgfHwgJy9jYWxlbmRhci9hcGkvdjEvZXZlbnQvbGlzdCc7XG4gICAgICAgIGZldGNoKGVuY29kZVVSSShsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgZXZlbnRzVXJsUGF0aCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpLFxuICAgICAgICAgICAgICAgICdpZFRva2VuJzogc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFdmVudHMoSlNPTi5wYXJzZShyZXNwb25zZSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoaWdub3JlZCkgPT4ge1xuICAgICAgICAgICAgfSlcbiAgICB9O1xuXG5cbiAgICBjb25zdCBoYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnY2FsZW5kYXInO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ29udGV4dENoYW5nZTogKGNvbnRleHQsIG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhuZXdWYWx1ZXMpXG4gICAgICAgICAgICAgICAgICAgIC5maW5kKChrZXkpID0+IGtleSA9PT0gJ3dpbmRvd0Rpc3BsYXlTdGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFJlZnJlc2hlcihjb3VudGVyID4gMjAgPyAwIDogY291bnRlcisrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHRDaGFuZ2VIYW5kbGVyLmFwaSA9IGhhbmRsZXIoKTtcbiAgICAgICAgbG9hZEV2ZW50cygpO1xuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkQXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uKHtcbiAgICAgICAgICAgIGhhbmRsZXI6IGNvbnRleHRDaGFuZ2VIYW5kbGVyXG4gICAgICAgIH0pXG4gICAgfSwgW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29udGV4dENoYW5nZUhhbmRsZXIuYXBpID0gaGFuZGxlcigpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgc2V0T3BlbihmYWxzZSlcbiAgICB9O1xuXG4gICAgY29uc3QgaXNUb2RheU9yRnV0dXJlID0gKGRhdGVTdHIpID0+IG1vbWVudChuZXcgRGF0ZSgpKS5zdGFydE9mKCdkYXknKSA8PSBtb21lbnQobmV3IERhdGUoZGF0ZVN0cikpLnN0YXJ0T2YoJ2RheScpO1xuXG4gICAgY29uc3QgYnVpbGRDYWxlbmRhckV2ZW50ID0gKGluZm8sIHtldmVudFR5cGUsIGNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXAsIG1ldGFkYXRhfSkgPT4ge1xuICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKGluZm8uZGF0ZVN0cik7XG4gICAgICAgIGxldCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGxldCBzdGFydFRpbWUgPSBtb21lbnQoaW5mby5kYXRlU3RyLCAnZGRkIE1NTSBEIFlZWVkgSEg6bW06c3MgWlonKTtcbiAgICAgICAgdGltZURhdGUuc2V0SG91cnModGltZURhdGUuZ2V0SG91cnMoKSArIDEpO1xuICAgICAgICBzdGFydFRpbWUuc2V0KHtoOiB0aW1lRGF0ZS5nZXRIb3VycygpLCBtOiAwfSk7XG5cbiAgICAgICAgbGV0IGVuZFRpbWUgPSBtb21lbnQoaW5mby5kYXRlU3RyLCAnZGRkIE1NTSBEIFlZWVkgSEg6bW06c3MgWlonKTtcbiAgICAgICAgdGltZURhdGUuc2V0SG91cnModGltZURhdGUuZ2V0SG91cnMoKSArIDEpO1xuICAgICAgICBlbmRUaW1lLnNldCh7aDogdGltZURhdGUuZ2V0SG91cnMoKSwgbTogMH0pO1xuXG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRXZlbnQgPSB7XG4gICAgICAgICAgICAuLi5ldmVudFRlbXBsYXRlLFxuICAgICAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgICAgICBzdGFydERhdGU6IGRhdGUsXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogZGF0ZSxcbiAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lOiBlbmRUaW1lLnRvRGF0ZSgpLFxuICAgICAgICAgICAgICAgIHJlY3VycmluZ1N0YXJ0RGF0ZTogZGF0ZSxcbiAgICAgICAgICAgICAgICByZWN1cnJpbmdFbmREYXRlOiBkYXRlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBldmVudFR5cGUsXG4gICAgICAgICAgICBjb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwOiBjb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwLFxuICAgICAgICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKFV0aWxzLmlzU3RyaW5nRW1wdHkoY2FsZW5kYXJFdmVudC5pZCkpIHtcbiAgICAgICAgICAgIGNhbGVuZGFyRXZlbnQuaWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxlbmRhckV2ZW50O1xuICAgIH07XG5cbiAgICBjb25zdCBmaXJlQ3JlYXRlID0gKGNhbGVuZGFyRXZlbnQpID0+IHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBjYWxlbmRhckV2ZW50KTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0FMRU5EQVJfREFURV9DTElDSywgZXZlbnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBmaXJlQ3JlYXRlRm9yTWV0YWRhdGEgPSAoaW5mbywgbWV0YSkgPT4ge1xuICAgICAgICBmaXJlQ3JlYXRlKGJ1aWxkQ2FsZW5kYXJFdmVudChpbmZvLCB7XG4gICAgICAgICAgICBldmVudFR5cGU6IG1ldGEuY29uZmVyZW5jaW5nQWN0aXZpdHlHcm91cCxcbiAgICAgICAgICAgIGNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXA6IG1ldGEuY29uZmVyZW5jaW5nQWN0aXZpdHlHcm91cCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhXG4gICAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgLy8gRmV0Y2ggdGhlIENSRUFURS1vcGVyYXRpb24gbWV0YWRhdGEgdGhlIGN1cnJlbnQgdXNlciBpcyBlbnRpdGxlZCB0byAocm9sZS1maWx0ZXJlZCBzZXJ2ZXItc2lkZSkuXG4gICAgY29uc3QgZmV0Y2hDcmVhdGVNZXRhZGF0YSA9ICh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIGZldGNoKGVuY29kZVVSSShsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgdXJsKSwge1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIiksXG4gICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gSlNPTi5wYXJzZShyZXNwb25zZSkpO1xuICAgIH07XG5cbiAgICBjb25zdCBjYWxlbmRhck9wdGlvbnMgPSB7XG4gICAgICAgIGV2ZW50czogZXZlbnRzLFxuICAgICAgICBwbHVnaW5zOiBbaW50ZXJhY3Rpb25QbHVnaW4sIGRheUdyaWRQbHVnaW4sIHRpbWVHcmlkUGx1Z2luLCBsaXN0UGx1Z2luLCBycnVsZVBsdWdpbl0sXG4gICAgICAgIGluaXRpYWxWaWV3OiAnZGF5R3JpZE1vbnRoJyxcbiAgICAgICAgaGVhZGVyVG9vbGJhcjoge1xuICAgICAgICAgICAgc3RhcnQ6ICdzaWRlYmFyVG9nZ2xlLCBwcmV2LG5leHQsIHRpdGxlJyxcbiAgICAgICAgICAgIGVuZDogJ2RheUdyaWRNb250aCx0aW1lR3JpZFdlZWssdGltZUdyaWREYXksbGlzdE1vbnRoJyxcbiAgICAgICAgfSxcbiAgICAgICAgLypcbiAgICAgICAgICBFbmFibGUgZHJhZ2dpbmcgYW5kIHJlc2l6aW5nIGV2ZW50XG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2VkaXRhYmxlXG4gICAgICAgICovXG4gICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgc3RpY2t5SGVhZGVyRGF0ZXM6IHRydWUsXG5cbiAgICAgICAgZXZlbnRUaW1lRm9ybWF0OiB7IC8vIGxpa2UgJzE0OjMwOjAwJ1xuICAgICAgICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgaG91cjEyOiBmYWxzZVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgRW5hYmxlIHJlc2l6aW5nIGV2ZW50IGZyb20gc3RhcnRcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRSZXNpemFibGVGcm9tU3RhcnRcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnRSZXNpemFibGVGcm9tU3RhcnQ6IHRydWUsXG5cbiAgICAgICAgLypcbiAgICAgICAgICBBdXRvbWF0aWNhbGx5IHNjcm9sbCB0aGUgc2Nyb2xsLWNvbnRhaW5lcnMgZHVyaW5nIGV2ZW50IGRyYWctYW5kLWRyb3AgYW5kIGRhdGUgc2VsZWN0aW5nXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2RyYWdTY3JvbGxcbiAgICAgICAgKi9cbiAgICAgICAgZHJhZ1Njcm9sbDogdHJ1ZSxcblxuICAgICAgICAvKlxuICAgICAgICAgIE1heCBudW1iZXIgb2YgZXZlbnRzIHdpdGhpbiBhIGdpdmVuIGRheVxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9kYXlNYXhFdmVudHNcbiAgICAgICAgKi9cbiAgICAgICAgZGF5TWF4RXZlbnRzOiAyLFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgRGV0ZXJtaW5lcyBpZiBkYXkgbmFtZXMgYW5kIHdlZWsgbmFtZXMgYXJlIGNsaWNrYWJsZVxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9uYXZMaW5rc1xuICAgICAgICAqL1xuICAgICAgICBuYXZMaW5rczogdHJ1ZSxcblxuICAgICAgICBldmVudENsYXNzTmFtZXMoe2V2ZW50OiBjYWxlbmRhckV2ZW50fSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgICAgICBjb25zdCBjb2xvck5hbWUgPSAnIzk0NWMzMyc7XG5cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgYGJnLWxpZ2h0LSR7Y29sb3JOYW1lfWAsXG4gICAgICAgICAgICBdO1xuICAgICAgICB9LFxuXG4gICAgICAgIHZpZXdEaWRNb3VudCgpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50Q2xpY2soe2VsOiBlbCwgZXZlbnQ6IGV2ZW50fSkge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRFdmVudChldmVudCk7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuXG4gICAgICAgICAgICBsZXQgZWxlbWVudHNCeUNsYXNzTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZjLXNjcm9sbGVyLWxpcXVpZC1hYnNvbHV0ZScpO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzQnlDbGFzc05hbWUgJiYgZWxlbWVudHNCeUNsYXNzTmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWVbMF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdmYy1zY3JvbGxlci1saXF1aWQnKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50c0J5Q2xhc3NOYW1lICYmIGVsZW1lbnRzQnlDbGFzc05hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWVbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxlbmRlclNjcm9sbExpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGVDbGljayhpbmZvKSB7XG4gICAgICAgICAgICBpZiAob3BlbiB8fCAhaXNUb2RheU9yRnV0dXJlKGluZm8uZGF0ZVN0cikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZUV2ZW50TWV0YWRhdGFVcmwgPSBwcm9wcy5jb25maWcgJiYgcHJvcHMuY29uZmlnLmNyZWF0ZUV2ZW50TWV0YWRhdGFVcmw7XG4gICAgICAgICAgICBpZiAoY3JlYXRlRXZlbnRNZXRhZGF0YVVybCkge1xuICAgICAgICAgICAgICAgIC8vIFJvbGUtZ2F0ZWQgY3JlYXRlOiBmZXRjaCB0aGUgZG9tYWlucyB0aGlzIHVzZXIgbWF5IGNyZWF0ZSwgdGhlbiBsZXQgdGhlbSBwaWNrIGZyb20gYSBtZW51LlxuICAgICAgICAgICAgICAgIGZldGNoQ3JlYXRlTWV0YWRhdGEoY3JlYXRlRXZlbnRNZXRhZGF0YVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSByZXN1bHQgJiYgcmVzdWx0LnJlY29yZHMgPyByZXN1bHQucmVjb3JkcyA6IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBjcmVhdGFibGUgZm9yIHRoaXMgdXNlcidzIHJvbGVzIOKAlCBubyBtZW51LCBubyBldmVudCBmaXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIG9wdGlvbiDigJQgc2tpcCB0aGUgbWVudSBhbmQgYWN0IGFzIGlmIGl0IHdhcyBjbGlja2VkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVDcmVhdGVGb3JNZXRhZGF0YShpbmZvLCBpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganNFdmVudCA9IGluZm8uanNFdmVudCB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENyZWF0ZU1lbnUoe29wZW46IHRydWUsIHg6IGpzRXZlbnQuY2xpZW50WCB8fCAwLCB5OiBqc0V2ZW50LmNsaWVudFkgfHwgMCwgaXRlbXMsIGluZm99KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChpZ25vcmVkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTGVnYWN5IGJlaGF2aW91cjogc2luZ2xlIGhhcmQtY29kZWQgZXZlbnQgdHlwZS5cbiAgICAgICAgICAgIGZpcmVDcmVhdGUoYnVpbGRDYWxlbmRhckV2ZW50KGluZm8sIHtcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdldmVudFR5cGUnLCAnVFJBSU5JTkcnKVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgSGFuZGxlIGV2ZW50IGRyb3AgKEFsc28gaW5jbHVkZSBkcmFnZ2VkIGV2ZW50KVxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9ldmVudERyb3BcbiAgICAgICAgICA/IFdlIGNhbiB1c2UgYGV2ZW50RHJhZ1N0b3BgIGJ1dCBpdCBkb2Vzbid0IHJldHVybiB1cGRhdGVkIGV2ZW50IHNvIHdlIGhhdmUgdG8gdXNlIGBldmVudERyb3BgIHdoaWNoIHJldHVybnMgdXBkYXRlZCBldmVudFxuICAgICAgICAqL1xuICAgICAgICBldmVudERyb3Aoe2V2ZW50OiBkcm9wcGVkRXZlbnR9KSB7XG4gICAgICAgICAgICAvL2Rpc3BhdGNoKHVwZGF0ZUV2ZW50KGRyb3BwZWRFdmVudCkpO1xuICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnRXZlbnQgVXBkYXRlZCcpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgSGFuZGxlIGV2ZW50IHJlc2l6ZVxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9ldmVudFJlc2l6ZVxuICAgICAgICAqL1xuICAgICAgICBldmVudFJlc2l6ZSh7ZXZlbnQ6IHJlc2l6ZWRFdmVudH0pIHtcbiAgICAgICAgICAgIC8vZGlzcGF0Y2godXBkYXRlRXZlbnQocmVzaXplZEV2ZW50KSk7XG4gICAgICAgICAgICB0b2FzdC5zdWNjZXNzKCdFdmVudCBVcGRhdGVkJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLypcbiAgICAgICAgICBIYW5kbGUgZXZlbnQgbW91c2UgZW50ZXJcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRNb3VzZUVudGVyXG4gICAgICAgICovXG4gICAgICAgIGV2ZW50TW91c2VFbnRlcih7ZWw6IGVsLCBldmVudDogZXZlbnR9KSB7XG4gICAgICAgIH0sXG5cblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCBtb3VzZSBlbnRlclxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9ldmVudE1vdXNlRW50ZXJcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnRNb3VzZUxlYXZlKHtlbDogZWx9KSB7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcmVmOiBjYWxlbmRhclJlZixcblxuICAgICAgICAvLyBHZXQgZGlyZWN0aW9uIGZyb20gYXBwIHN0YXRlIChzdG9yZSlcbiAgICAgICAgZGlyZWN0aW9uOiBpc1J0bCA/ICdydGwnIDogJ2x0cicsXG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgbGV0IGV2ZW50SGFuZGxpbmdDb25maWcgPSBVdGlscy5pc051bGwocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcpID8ge30gOiBwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZztcbiAgICAgICAgZXZlbnRIYW5kbGluZ0NvbmZpZy5zdWJzY3JpcHRpb25zID0gVXRpbHMuaXNOdWxsKGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucykgPyBbXSA6IGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucztcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMoZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgdG9EYXRlVGltZVN0cmluZyA9IChkYXRlKSA9PiB7XG4gICAgICAgIGxldCBkYXRlU3RyID0gc2VsZWN0ZWRFdmVudC5zdGFydC50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgICAgICAgbGV0IHRpbWVTdHJUb2tlbnMgPSBzZWxlY3RlZEV2ZW50LnN0YXJ0LnRvTG9jYWxlVGltZVN0cmluZygpLnNwbGl0KCc6Jyk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGVTdHIgKyAnICcgKyB0aW1lU3RyVG9rZW5zWzBdICsgJzonICsgdGltZVN0clRva2Vuc1sxXTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0Rm9ybU9iamVjdCA9IChldmVudCkgPT4ge1xuICAgICAgICByZXR1cm4gY2FsZW5kYXIuY2FsZW5kYXJFdmVudFRvRm9ybU9iamVjdChldmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBjcmVhdGVFdmVudFBvcHVwID0gKGVsKSA9PiB7XG4gICAgICAgIHJldHVybiA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRXZlbnQgJiYgPGRpdiBjbGFzc05hbWU9eydldmVudC1wb3B1cCd9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RvcC10b29sYmFyIHJvdyBuby1wYWRkaW5nIG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydsZWZ0IGNvbCBuby1wYWRkaW5nIG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE9wZW4oZmFsc2UpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydDTE9TRSd9IGNvbG9yPXsnIzAxNDc2Qyd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncmlnaHQgY29sIG5vLXBhZGRpbmcgbm8tbWFyZ2luJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJTRUxFQ1RFRCBFVkVOVCA6IFwiLCBnZXRGb3JtT2JqZWN0KHNlbGVjdGVkRXZlbnQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgZ2V0Rm9ybU9iamVjdChzZWxlY3RlZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5DQUxFTkRBUl9EQVRFX0NMSUNLLCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01BWElNSVpFJ30gY29sb3I9eycjMDE0NzZDJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydzdW1tYXJ5J30+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J21vZGFsLXRpdGxlJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkRXZlbnQudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RvRGF0ZVRpbWVTdHJpbmcoc2VsZWN0ZWRFdmVudC5zdGFydCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnb3JnYW5pc2VyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JnYW5pc2VyOiB7c2VsZWN0ZWRFdmVudC5leHRlbmRlZFByb3BzLmhvc3QubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e21hcmdpblRvcDogJzE2cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYXBwbGljYXRpb25NYW5hZ2VyLmhhc0FjdGl2ZU1lZXRpbmcoKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17XCJwcmltYXJ5XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2JvcmRlclJhZGl1czogJzRweCcsIG1hcmdpblJpZ2h0OiAnMnB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgZ2V0Rm9ybU9iamVjdChzZWxlY3RlZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0FMRU5EQVJfRVZFTlRfU1RBUlQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPSU5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8Lz5cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX0gc3R5bGU9e1xuICAgICAgICAgICAgVXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICcxNnB4IDAnLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICcxMDAlJ1xuICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKVxuICAgICAgICB9PlxuICAgICAgICAgICAgPGRpdiBrZXk9e3JlZnJlc2hlcn0gY2xhc3NOYW1lPXsndy0xMDAgaC0xMDAnfT5cbiAgICAgICAgICAgICAgICA8RnVsbENhbGVuZGFyIHsuLi5jYWxlbmRhck9wdGlvbnN9Lz57JyAnfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3R5bGVkRGlhbG9nXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICByZWY9e2RpYWxvZ1JlZn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3BcbiAgICAgICAgICAgICAgICBkaXNhYmxlRW5mb3JjZUZvY3VzXG4gICAgICAgICAgICAgICAgZGlzYWJsZUF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImFsZXJ0LWRpYWxvZy10aXRsZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cImFsZXJ0LWRpYWxvZy1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1tb2RhbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAnYXV0bydcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIFBhcGVyUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAnMjBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd3LTEwMCBoLTEwMCd9PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVFdmVudFBvcHVwKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9TdHlsZWREaWFsb2c+XG4gICAgICAgICAgICA8TWVudVxuICAgICAgICAgICAgICAgIG9wZW49e2NyZWF0ZU1lbnUub3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRDcmVhdGVNZW51KHsuLi5jcmVhdGVNZW51LCBvcGVuOiBmYWxzZX0pfVxuICAgICAgICAgICAgICAgIGFuY2hvclJlZmVyZW5jZT1cImFuY2hvclBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICBhbmNob3JQb3NpdGlvbj17Y3JlYXRlTWVudS5vcGVuID8ge3RvcDogY3JlYXRlTWVudS55LCBsZWZ0OiBjcmVhdGVNZW51Lnh9IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlTWVudS5pdGVtcy5tYXAoKG1ldGEsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXttZXRhLmNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXAgfHwgaWR4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3JlYXRlTWVudSh7Li4uY3JlYXRlTWVudSwgb3BlbjogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZUNyZWF0ZUZvck1ldGFkYXRhKGNyZWF0ZU1lbnUuaW5mbywgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0YS5kZXNjcmlwdGlvbiB8fCBtZXRhLmNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQVUsT0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsY0FBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVksTUFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWEsVUFBQSxHQUFBWCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWMsbUJBQUEsR0FBQVosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFlLE9BQUEsR0FBQWIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFnQixXQUFBLEdBQUFkLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBaUIsV0FBQSxHQUFBZixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWtCLEtBQUEsR0FBQWhCLHNCQUFBLENBQUFG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
|
|
@@ -88,6 +88,7 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
88
88
|
}
|
|
89
89
|
_react.default.useEffect(() => {
|
|
90
90
|
setup();
|
|
91
|
+
api().refresh();
|
|
91
92
|
}, []);
|
|
92
93
|
_react.default.useEffect(() => {
|
|
93
94
|
if (!visibleTabPages) {
|
|
@@ -164,7 +165,7 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
164
165
|
// Force re-render
|
|
165
166
|
setVisibleTabPages(null);
|
|
166
167
|
},
|
|
167
|
-
refresh() {
|
|
168
|
+
refresh: () => {
|
|
168
169
|
let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
|
|
169
170
|
if (!_Utils.default.isNull(props.config) && !_Utils.default.isNull(parsedConfig.visible)) {
|
|
170
171
|
setVisible(_Utils.default.evaluateBooleanExpression(parsedConfig.visible, parsedConfig.id));
|
|
@@ -256,4 +257,4 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
256
257
|
})));
|
|
257
258
|
});
|
|
258
259
|
var _default = exports.default = TabPanel;
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwibG9hZGVkIiwidXNlUmVmIiwiY29tcG9uZW50SGFuZGxlcyIsImhhbmRsZVRhYkNoYW5nZSIsImV2ZW50IiwibmV3VmFsdWUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJjb21wb25lbnQiLCJVdGlscyIsImlzTnVsbCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInNldHVwVmlzaWJsZVBhZ2VzIiwiY29uZmlnIiwidGFiUGFnZXMiLCJhbGxWaXNpYmxlVGFiUGFnZXMiLCJwYWdlIiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZW5kZXJUYWJQYWdlQ29tcG9uZW50IiwidGFiSWQiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJrZXkiLCJwYXJlbnRJZCIsInZhbHVlcyIsIkxheW91dCIsInJlbmRlclBhZ2UiLCJwYWdlSW5kZXgiLCJjbGFzc05hbWUiLCJjb21wb25lbnRzIiwibWFwIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIl9jb21wb25lbnRIYW5kbGUkYXBpIiwiY29tcG9uZW50SGFuZGxlIiwiY2hpbGQiLCJzZXRQYWdlSGFzRXJyb3IiLCJwYWdlSWQiLCJoYXNFcnJvciIsImNsZWFyRXJyb3JzIiwicmVkcmF3IiwicmVmcmVzaCIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwiaWNvbklkIiwibGFiZWwiLCJpY29uIiwidW5kZWZpbmVkIiwiaWNvblBvc2l0aW9uIiwid3JhcHBlZCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRCcmVhayIsInRleHRUcmFuc2Zvcm0iLCJtZXJnZVN0eWxlcyIsIl9wYWdlJGF0dHJpYnV0ZXMiLCJfcGFnZSRhdHRyaWJ1dGVzMiIsImRpc3BsYXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEFwcEJhciBmcm9tICdAbXVpL21hdGVyaWFsL0FwcEJhcic7XG5pbXBvcnQgVGFiIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFiJztcbmltcG9ydCBUYWJzIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFicyc7XG5pbXBvcnQgVGFiUGFnZSBmcm9tICcuL1RhYlBhZ2UnO1xuaW1wb3J0IEZvcm1TZWN0aW9uIGZyb20gJy4vZm9ybS9TZWN0aW9uJztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4vVG9vbGJhcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi9sYXlvdXQvTGF5b3V0JztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbmZ1bmN0aW9uIGExMXlQcm9wcyhpbmRleCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBgc2ltcGxlLXRhYi0ke2luZGV4fWAsXG4gICAgICAgICdhcmlhLWNvbnRyb2xzJzogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWAsXG4gICAgfTtcbn1cblxuY29uc3QgVGFiUGFuZWwgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt0YWJWYWx1ZSwgc2V0VGFiVmFsdWVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2Vycm9ycywgc2V0RXJyb3JzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbdmlzaWJsZVRhYlBhZ2VzLCBzZXRWaXNpYmxlVGFiUGFnZXNdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZighdmlzaWJsZVRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBzZXR1cFZpc2libGVQYWdlcygpXG4gICAgICAgIH1cbiAgICB9LCBbdmlzaWJsZVRhYlBhZ2VzXSk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgdGFiSWQsIGluZGV4KSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgY29tcG9uZW50LmlkID0gaW5kZXggKyAnLXRhYi1jb250ZW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gJ2Zvcm1TZWN0aW9uJyA/XG4gICAgICAgICAgICA8Rm9ybVNlY3Rpb24ga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgLz4gOlxuICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICd0b29sYmFyJyA/XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAnbGF5b3V0JyA/XG4gICAgICAgICAgICAgICAgICAgIDxMYXlvdXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PnsnVW5zdXBwb3J0ZWQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC50eXBlfTwvZGl2PjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2UsIHBhZ2VJbmRleCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eyd0YWItcGFnZS1jb250YWluZXInfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYWdlLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgcGFnZS5pZCwgcGFnZUluZGV4ICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PjtcbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZS5hcGk/LmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzZXRUYWJWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJWYWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRQYWdlSGFzRXJyb3I6IChwYWdlSWQsIGhhc0Vycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHsuLi5lcnJvcnMsIFtwYWdlSWRdOiBoYXNFcnJvcn0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyRXJyb3JzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWRyYXc6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGb3JjZSByZS1yZW5kZXJcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlVGFiUGFnZXMobnVsbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmlzaWJsZSh2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh2aXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgIVV0aWxzLmlzTnVsbCh2aXNpYmxlVGFiUGFnZXMpICYmIHZpc2libGUgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgd2lkdGg6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoID8gcHJvcHMuY29uZmlnPy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGggOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIDxBcHBCYXIgcG9zaXRpb249XCJzdGF0aWNcIiBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNjcm9sbGFibGVcIiAgICAgICAgICAgICAgICAvLyBlbmFibGVzIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEJ1dHRvbnM9XCJhdXRvXCIgICAgICAgICAgICAgICAgLy8gc2hvd3MgYXJyb3dzIHdoZW4gbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGFsbG93U2Nyb2xsQnV0dG9uc01vYmlsZSAgICAgICAgICAgIC8vIHNob3cgYXJyb3dzIG9uIG1vYmlsZSB0b29cbiAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvckNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsOiByZWR1Y2UgZGVmYXVsdCBtaW4gd2lkdGggc28gbW9yZSB0YWJzIGZpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aVRhYi1yb290Jzoge21pbldpZHRoOiAxMjB9LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Zpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPcHRpb25hbCBwZXItdGFiIGljb246IGBhdHRyaWJ1dGVzLmljb25gIGlzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWNvbiBjb21wb25lbnQncyBpZCAoZS5nLiBcIldPUktcIiwgXCJWSUVXXCIpLiBXaGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmVzZW50LCByZW5kZXIgdG8gdGhlIGxlZnQgb2YgdGhlIGxhYmVsLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaWNvbklkID0gcGFnZS5hdHRyaWJ1dGVzWydpY29uJ107XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3BhZ2UuYXR0cmlidXRlc1snbGFiZWwnXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17aWNvbklkID8gPEljb24gaWQ9e2ljb25JZH0vPiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPXtpY29uSWQgPyAnc3RhcnQnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyBtdWx0aS1saW5lIGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hMTF5UHJvcHMoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDI0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLCAgICAgICAgICAgICAgICAgLy8gY29uc3RyYWluIHNvIHdyYXBwaW5nIGNhbiBvY2N1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsICAgICAgICAgICAgIC8vIGFsbG93IHdyYXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLCAgICAgICAgICAvLyBicmVhayBsb25nIHdvcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJywgICAgICAgICAgICAvLyBrZWVwIG9yaWdpbmFsIGNhc2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmlzRm9ybU1hcmtlcnNFbmFibGVkKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnNbcGFnZS5pZF0gPT09IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnI2VkNTI0OSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvVGFicz5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDAlIC0gNjRweCknXG4gICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwYWdlPy5hdHRyaWJ1dGVzPy5zdHlsZT8uaGVpZ2h0ID8gcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFiVmFsdWUgPT09IGluZGV4ID8gbnVsbCA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiUGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17aW5kZXh9IGNvbmZpZz17cGFnZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyUGFnZShwYWdlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFiUGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGFiUGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEIsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEsSUFBQUQsQ0FBQSxPQUFBRSxjQUFBLENBQUFDLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLE1BQUFKLENBQUEsQ0FBQUksQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsYUFBQUosQ0FBQSxLQUFBSixRQUFBLENBQUFXLEtBQUEsT0FBQU4sU0FBQTtBQUFBLFNBQUFPLFFBQUFmLENBQUEsRUFBQVcsQ0FBQSxRQUFBRCxDQUFBLEdBQUFOLE1BQUEsQ0FBQVksSUFBQSxDQUFBaEIsQ0FBQSxPQUFBSSxNQUFBLENBQUFhLHFCQUFBLFFBQUFDLENBQUEsR0FBQWQsTUFBQSxDQUFBYSxxQkFBQSxDQUFBakIsQ0FBQSxHQUFBVyxDQUFBLEtBQUFPLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFSLENBQUEsV0FBQVAsTUFBQSxDQUFBZ0Isd0JBQUEsQ0FBQXBCLENBQUEsRUFBQVcsQ0FBQSxFQUFBVSxVQUFBLE9BQUFYLENBQUEsQ0FBQVksSUFBQSxDQUFBUixLQUFBLENBQUFKLENBQUEsRUFBQVEsQ0FBQSxZQUFBUixDQUFBO0FBQUEsU0FBQWEsY0FBQXZCLENBQUEsYUFBQVcsQ0FBQSxNQUFBQSxDQUFBLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxFQUFBRSxDQUFBLFVBQUFELENBQUEsV0FBQUYsU0FBQSxDQUFBRyxDQUFBLElBQUFILFNBQUEsQ0FBQUcsQ0FBQSxRQUFBQSxDQUFBLE9BQUFJLE9BQUEsQ0FBQVgsTUFBQSxDQUFBTSxDQUFBLE9BQUFjLE9BQUEsV0FBQWIsQ0FBQSxJQUFBYyxlQUFBLENBQUF6QixDQUFBLEVBQUFXLENBQUEsRUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFNBQUFQLE1BQUEsQ0FBQXNCLHlCQUFBLEdBQUF0QixNQUFBLENBQUF1QixnQkFBQSxDQUFBM0IsQ0FBQSxFQUFBSSxNQUFBLENBQUFzQix5QkFBQSxDQUFBaEIsQ0FBQSxLQUFBSyxPQUFBLENBQUFYLE1BQUEsQ0FBQU0sQ0FBQSxHQUFBYyxPQUFBLFdBQUFiLENBQUEsSUFBQVAsTUFBQSxDQUFBd0IsY0FBQSxDQUFBNUIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFQLE1BQUEsQ0FBQWdCLHdCQUFBLENBQUFWLENBQUEsRUFBQUMsQ0FBQSxpQkFBQVgsQ0FBQTtBQUFBLFNBQUF5QixnQkFBQXpCLENBQUEsRUFBQVcsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsR0FBQWtCLGNBQUEsQ0FBQWxCLENBQUEsTUFBQVgsQ0FBQSxHQUFBSSxNQUFBLENBQUF3QixjQUFBLENBQUE1QixDQUFBLEVBQUFXLENBQUEsSUFBQW1CLEtBQUEsRUFBQXBCLENBQUEsRUFBQVcsVUFBQSxNQUFBVSxZQUFBLE1BQUFDLFFBQUEsVUFBQWhDLENBQUEsQ0FBQVcsQ0FBQSxJQUFBRCxDQUFBLEVBQUFWLENBQUE7QUFBQSxTQUFBNkIsZUFBQW5CLENBQUEsUUFBQXVCLENBQUEsR0FBQUMsWUFBQSxDQUFBeEIsQ0FBQSx1Q0FBQXVCLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQUMsYUFBQXhCLENBQUEsRUFBQUMsQ0FBQSwyQkFBQUQsQ0FBQSxLQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQVYsQ0FBQSxHQUFBVSxDQUFBLENBQUF5QixNQUFBLENBQUFDLFdBQUEsa0JBQUFwQyxDQUFBLFFBQUFpQyxDQUFBLEdBQUFqQyxDQUFBLENBQUFhLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLHVDQUFBc0IsQ0FBQSxTQUFBQSxDQUFBLFlBQUFJLFNBQUEseUVBQUExQixDQUFBLEdBQUEyQixNQUFBLEdBQUFDLE1BQUEsRUFBQTdCLENBQUE7QUFFMUIsU0FBUzhCLFNBQVNBLENBQUNDLEtBQUssRUFBRTtFQUN0QixPQUFPO0lBQ0hDLEVBQUUsZ0JBQUFDLE1BQUEsQ0FBZ0JGLEtBQUssQ0FBRTtJQUN6QixlQUFlLHFCQUFBRSxNQUFBLENBQXFCRixLQUFLO0VBQzdDLENBQUM7QUFDTDtBQUVBLE1BQU1HLFFBQVEsZ0JBQUdDLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFBQSxJQUFBQyxhQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBO0VBQ25DLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFQyxXQUFXLENBQUMsR0FBR1IsY0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQ2pELE1BQU0sQ0FBQ0MsTUFBTSxFQUFFQyxTQUFTLENBQUMsR0FBR1gsY0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDOUMsTUFBTSxDQUFDRyxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEdBQUdiLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLElBQUksQ0FBQztFQUNsRSxNQUFNLENBQUNLLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUdmLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLEtBQUssQ0FBQztFQUNuRCxNQUFNTyxNQUFNLEdBQUdoQixjQUFLLENBQUNpQixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ2xDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsR0FBR2xCLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBRTdDLE1BQU1VLGVBQWUsR0FBR0EsQ0FBQ0MsS0FBSyxFQUFFQyxRQUFRLEtBQUs7SUFDekNiLFdBQVcsQ0FBQ2EsUUFBUSxDQUFDO0VBQ3pCLENBQUM7RUFFRCxNQUFNQyxxQkFBcUIsR0FBSUMsU0FBUyxJQUFLO0lBQ3pDLElBQUlDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDUCxnQkFBZ0IsQ0FBQ0ssU0FBUyxDQUFDMUIsRUFBRSxDQUFDLENBQUMsRUFBRTtNQUM5QyxJQUFJNkIsTUFBTSxHQUFHLENBQUMsQ0FBQztNQUNmUixnQkFBZ0IsQ0FBQ0ssU0FBUyxDQUFDMUIsRUFBRSxDQUFDLEdBQUc2QixNQUFNO01BQ3ZDLE9BQU9BLE1BQU07SUFDakI7SUFFQSxPQUFPUixnQkFBZ0IsQ0FBQ0ssU0FBUyxDQUFDMUIsRUFBRSxDQUFDO0VBQ3pDLENBQUM7RUFFREcsY0FBSyxDQUFDMkIsU0FBUyxDQUFDLE1BQU07SUFDbEJ6QixLQUFLLENBQUN3QixNQUFNLENBQUNFLEdBQUcsR0FBR0EsR0FBRyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxDQUFDO0VBRUYsU0FBU0MsaUJBQWlCQSxDQUFBLEVBQUc7SUFDekIsSUFBSTNCLEtBQUssQ0FBQzRCLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFO01BQ3ZCLElBQUlDLGtCQUFrQixHQUFHLEVBQUU7TUFDM0IsS0FBSyxNQUFNQyxJQUFJLElBQUkvQixLQUFLLENBQUM0QixNQUFNLENBQUNDLFFBQVEsRUFBRTtRQUN0QyxJQUFJUCxjQUFLLENBQUNDLE1BQU0sQ0FBQ1EsSUFBSSxDQUFDcEMsRUFBRSxDQUFDLEVBQUU7VUFDdkJvQyxJQUFJLENBQUNwQyxFQUFFLEdBQUdELEtBQUssR0FBRyxXQUFXO1FBQ2pDO1FBRUEsSUFBSXNDLFlBQVksR0FBR1YsY0FBSyxDQUFDVyxXQUFXLENBQUNGLElBQUksRUFBRS9CLEtBQUssQ0FBQ2tDLE1BQU0sQ0FBQztRQUN4RCxJQUFJdEIsT0FBTyxHQUFHVSxjQUFLLENBQUNDLE1BQU0sQ0FBQ1MsWUFBWSxDQUFDcEIsT0FBTyxDQUFDLElBQUlVLGNBQUssQ0FBQ2EseUJBQXlCLENBQUNILFlBQVksQ0FBQ3BCLE9BQU8sRUFBRW1CLElBQUksQ0FBQ3BDLEVBQUUsQ0FBQztRQUNsSCxJQUFJaUIsT0FBTyxFQUFFO1VBQ1RrQixrQkFBa0IsQ0FBQ3ZELElBQUksQ0FBQ3dELElBQUksQ0FBQztRQUNqQztNQUNKO01BRUFwQixrQkFBa0IsQ0FBQ21CLGtCQUFrQixDQUFDO0lBQzFDO0VBQ0o7RUFFQSxTQUFTTSxLQUFLQSxDQUFBLEVBQUc7SUFDYixJQUFJLENBQUNkLGNBQUssQ0FBQ0MsTUFBTSxDQUFDdkIsS0FBSyxDQUFDcUMsSUFBSSxDQUFDLEVBQUU7TUFDM0JyQyxLQUFLLENBQUNxQyxJQUFJLENBQUMsQ0FBQyxDQUNQQyx3QkFBd0IsQ0FBRUMsZUFBZSxJQUFLO1FBQzNDLElBQUlDLGFBQWEsR0FBRyxLQUFLO1FBQ3pCLElBQUlDLFVBQVUsR0FBR3BGLE1BQU0sQ0FBQ3FGLG1CQUFtQixDQUFDSCxlQUFlLENBQUM7UUFFNUQsS0FBSyxNQUFNSSxRQUFRLElBQUlGLFVBQVUsRUFBRTtVQUMvQixJQUFJakMsTUFBTSxDQUFDbUMsUUFBUSxDQUFDLEtBQUtKLGVBQWUsQ0FBQ0ksUUFBUSxDQUFDLEVBQUU7WUFDaERILGFBQWEsR0FBRyxJQUFJO1lBQ3BCO1VBQ0o7UUFDSjtRQUVBLElBQUlJLDJCQUFrQixDQUFDQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUlMLGFBQWEsRUFBRTtVQUM1RC9CLFNBQVMsQ0FBQ3FDLElBQUksQ0FBQ0MsS0FBSyxDQUFDRCxJQUFJLENBQUNFLFNBQVMsQ0FBQ1QsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUMxRDtNQUNKLENBQUMsQ0FBQztJQUNWOztJQUVBO0lBQ0F6QixNQUFNLENBQUNtQyxPQUFPLEdBQUcsSUFBSTtFQUN6QjtFQUVBbkQsY0FBSyxDQUFDMkIsU0FBUyxDQUFDLE1BQU07SUFDbEJXLEtBQUssQ0FBQyxDQUFDO0VBQ1gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOdEMsY0FBSyxDQUFDMkIsU0FBUyxDQUFDLE1BQU07SUFDbEIsSUFBRyxDQUFDZixlQUFlLEVBQUU7TUFDakJpQixpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZCO0VBQ0osQ0FBQyxFQUFFLENBQUNqQixlQUFlLENBQUMsQ0FBQztFQUVyQixTQUFTd0Msc0JBQXNCQSxDQUFDN0IsU0FBUyxFQUFFOEIsS0FBSyxFQUFFekQsS0FBSyxFQUFFO0lBQ3JELElBQUk0QixjQUFLLENBQUNDLE1BQU0sQ0FBQ0YsU0FBUyxDQUFDMUIsRUFBRSxDQUFDLEVBQUU7TUFDNUIwQixTQUFTLENBQUMxQixFQUFFLEdBQUdELEtBQUssR0FBRyxjQUFjO0lBQ3pDO0lBRUEsT0FBTzJCLFNBQVMsQ0FBQytCLElBQUksS0FBSyxhQUFhLGdCQUNuQ2hILE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQSxDQUFDekcsUUFBQSxDQUFBTyxPQUFXO01BQUNtRyxVQUFVLEVBQUV0RCxLQUFLLENBQUNzRCxVQUFXO01BQzdCQyxHQUFHLEVBQUVsQyxTQUFTLENBQUMxQixFQUFHO01BQ2xCaUMsTUFBTSxFQUFFUCxTQUFVO01BQ2xCRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDekNnQixJQUFJLEVBQUVyQyxLQUFLLENBQUNxQyxJQUFLO01BQ2pCbUIsUUFBUSxFQUFFTCxLQUFNO01BQ2hCakIsTUFBTSxFQUFFbEMsS0FBSyxDQUFDa0MsTUFBTztNQUNyQnVCLE1BQU0sRUFBRXpELEtBQUssQ0FBQ3lEO0lBQU8sQ0FDakMsQ0FBQyxHQUNGcEMsU0FBUyxDQUFDK0IsSUFBSSxLQUFLLFNBQVMsZ0JBQ3hCaEgsTUFBQSxDQUFBZSxPQUFBLENBQUFrRyxhQUFBLENBQUN4RyxRQUFBLENBQUFNLE9BQU87TUFBQ3lFLE1BQU0sRUFBRVAsU0FBVTtNQUFDRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDNURrQyxHQUFHLEVBQUVsQyxTQUFTLENBQUMxQixFQUFHO01BQ2xCdUMsTUFBTSxFQUFFbEMsS0FBSyxDQUFDa0M7SUFBTyxDQUFDLENBQUMsR0FDaENiLFNBQVMsQ0FBQytCLElBQUksS0FBSyxRQUFRLGdCQUN2QmhILE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQSxDQUFDdEcsT0FBQSxDQUFBMkcsTUFBTTtNQUFDOUIsTUFBTSxFQUFFUCxTQUFVO01BQUNHLE1BQU0sRUFBRUoscUJBQXFCLENBQUNDLFNBQVMsQ0FBRTtNQUM1RGtDLEdBQUcsRUFBRWxDLFNBQVMsQ0FBQzFCLEVBQUc7TUFDbEJ1QyxNQUFNLEVBQUVsQyxLQUFLLENBQUNrQztJQUFPLENBQUMsQ0FBQyxnQkFDL0I5RixNQUFBLENBQUFlLE9BQUEsQ0FBQWtHLGFBQUEsY0FBTSw2QkFBNkIsR0FBR2hDLFNBQVMsQ0FBQytCLElBQVUsQ0FBQztFQUMzRTtFQUVBLFNBQVNPLFVBQVVBLENBQUM1QixJQUFJLEVBQUU2QixTQUFTLEVBQUU7SUFDakMsb0JBQU94SCxNQUFBLENBQUFlLE9BQUEsQ0FBQWtHLGFBQUE7TUFBS1EsU0FBUyxFQUFFO0lBQXFCLEdBRXBDOUIsSUFBSSxDQUFDK0IsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQzFDLFNBQVMsRUFBRTNCLEtBQUssS0FBSztNQUN0QyxPQUFPd0Qsc0JBQXNCLENBQUM3QixTQUFTLEVBQUVVLElBQUksQ0FBQ3BDLEVBQUUsRUFBRWlFLFNBQVMsR0FBR2xFLEtBQUssQ0FBQztJQUN4RSxDQUFDLENBRUosQ0FBQztFQUNWO0VBRUEsTUFBTWdDLEdBQUcsR0FBR0EsQ0FBQSxLQUFNO0lBQ2QsT0FBTztNQUNILElBQUkvQixFQUFFQSxDQUFBLEVBQUc7UUFDTCxPQUFPSyxLQUFLLENBQUM0QixNQUFNLENBQUNqQyxFQUFFO01BQzFCLENBQUM7TUFDRHFFLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsSUFBSUMsUUFBUSxHQUFHLEVBQUU7UUFFakIsSUFBSXhCLFVBQVUsR0FBR3BGLE1BQU0sQ0FBQ3FGLG1CQUFtQixDQUFDMUIsZ0JBQWdCLENBQUM7UUFDN0QsS0FBSyxNQUFNMkIsUUFBUSxJQUFJRixVQUFVLEVBQUU7VUFBQSxJQUFBeUIsb0JBQUE7VUFDL0IsSUFBSUMsZUFBZSxHQUFHbkQsZ0JBQWdCLENBQUMyQixRQUFRLENBQUM7VUFDaERzQixRQUFRLENBQUMxRixJQUFJLENBQUM0RixlQUFlLENBQUM7VUFDOUIsSUFBSSxDQUFDN0MsY0FBSyxDQUFDQyxNQUFNLEVBQUEyQyxvQkFBQSxHQUFDQyxlQUFlLENBQUN6QyxHQUFHLGNBQUF3QyxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCRixXQUFXLENBQUMsRUFBRTtZQUNqRCxLQUFLLE1BQU1JLEtBQUssSUFBSUQsZUFBZSxDQUFDekMsR0FBRyxDQUFDc0MsV0FBVyxDQUFDLENBQUMsRUFBRTtjQUNuREMsUUFBUSxDQUFDMUYsSUFBSSxDQUFDNkYsS0FBSyxDQUFDO1lBQ3hCO1VBQ0o7UUFDSjtRQUVBLE9BQU9ILFFBQVE7TUFDbkIsQ0FBQztNQUNELElBQUlsRixLQUFLQSxDQUFDQSxLQUFLLEVBQUU7UUFDYnVCLFdBQVcsQ0FBQ3ZCLEtBQUssQ0FBQztNQUN0QixDQUFDO01BQ0QsSUFBSUEsS0FBS0EsQ0FBQSxFQUFHO1FBQ1IsT0FBT3NCLFFBQVE7TUFDbkIsQ0FBQztNQUNEZ0UsZUFBZSxFQUFFQSxDQUFDQyxNQUFNLEVBQUVDLFFBQVEsS0FBSztRQUNuQzlELFNBQVMsQ0FBQWpDLGFBQUEsQ0FBQUEsYUFBQSxLQUFLZ0MsTUFBTTtVQUFFLENBQUM4RCxNQUFNLEdBQUdDO1FBQVEsRUFBQyxDQUFDO01BQzlDLENBQUM7TUFDREMsV0FBVyxFQUFFQSxDQUFBLEtBQU07UUFDZi9ELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNqQixDQUFDO01BQ0RnRSxNQUFNLEVBQUVBLENBQUEsS0FBTTtRQUNWO1FBQ0E5RCxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7TUFDNUIsQ0FBQztNQUNEK0QsT0FBT0EsQ0FBQSxFQUFHO1FBQ04sSUFBSTFDLFlBQVksR0FBR1YsY0FBSyxDQUFDVyxXQUFXLENBQUNqQyxLQUFLLENBQUM0QixNQUFNLEVBQUU1QixLQUFLLENBQUNrQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDWixjQUFLLENBQUNDLE1BQU0sQ0FBQ3ZCLEtBQUssQ0FBQzRCLE1BQU0sQ0FBQyxJQUFJLENBQUNOLGNBQUssQ0FBQ0MsTUFBTSxDQUFDUyxZQUFZLENBQUNwQixPQUFPLENBQUMsRUFBRTtVQUNwRUMsVUFBVSxDQUFDUyxjQUFLLENBQUNhLHlCQUF5QixDQUFDSCxZQUFZLENBQUNwQixPQUFPLEVBQUVvQixZQUFZLENBQUNyQyxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDLE1BQU07VUFDSGtCLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDcEI7TUFDSixDQUFDO01BQ0QsSUFBSUQsT0FBT0EsQ0FBQ0EsT0FBTyxFQUFFO1FBQ2pCQyxVQUFVLENBQUNELE9BQU8sQ0FBQztNQUN2QjtJQUNKLENBQUM7RUFDTCxDQUFDO0VBRUQsT0FDSSxDQUFDVSxjQUFLLENBQUNDLE1BQU0sQ0FBQ2IsZUFBZSxDQUFDLElBQUlFLE9BQU8saUJBQ3pDeEUsTUFBQSxDQUFBZSxPQUFBLENBQUFrRyxhQUFBO0lBQUtzQixLQUFLLEVBQUU7TUFDUkMsS0FBSyxFQUFFLENBQUEzRSxhQUFBLEdBQUFELEtBQUssQ0FBQzRCLE1BQU0sY0FBQTNCLGFBQUEsZ0JBQUFBLGFBQUEsR0FBWkEsYUFBQSxDQUFjNEUsVUFBVSxjQUFBNUUsYUFBQSxnQkFBQUEsYUFBQSxHQUF4QkEsYUFBQSxDQUEwQjBFLEtBQUssY0FBQTFFLGFBQUEsZUFBL0JBLGFBQUEsQ0FBaUMyRSxLQUFLLElBQUExRSxjQUFBLEdBQUdGLEtBQUssQ0FBQzRCLE1BQU0sY0FBQTFCLGNBQUEsZ0JBQUFBLGNBQUEsR0FBWkEsY0FBQSxDQUFjMkUsVUFBVSxjQUFBM0UsY0FBQSxnQkFBQUEsY0FBQSxHQUF4QkEsY0FBQSxDQUEwQnlFLEtBQUssY0FBQXpFLGNBQUEsdUJBQS9CQSxjQUFBLENBQWlDMEUsS0FBSyxHQUFHLE1BQU07TUFDL0ZFLE1BQU0sRUFBRSxDQUFBM0UsY0FBQSxHQUFBSCxLQUFLLENBQUM0QixNQUFNLGNBQUF6QixjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBYzBFLFVBQVUsY0FBQTFFLGNBQUEsZ0JBQUFBLGNBQUEsR0FBeEJBLGNBQUEsQ0FBMEJ3RSxLQUFLLGNBQUF4RSxjQUFBLGVBQS9CQSxjQUFBLENBQWlDMkUsTUFBTSxJQUFBMUUsY0FBQSxHQUFHSixLQUFLLENBQUM0QixNQUFNLGNBQUF4QixjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3lFLFVBQVUsY0FBQXpFLGNBQUEsZ0JBQUFBLGNBQUEsR0FBeEJBLGNBQUEsQ0FBMEJ1RSxLQUFLLGNBQUF2RSxjQUFBLHVCQUEvQkEsY0FBQSxDQUFpQzBFLE1BQU0sR0FBRztJQUNoRztFQUFFLGdCQUNFMUksTUFBQSxDQUFBZSxPQUFBLENBQUFrRyxhQUFBLENBQUM3RyxPQUFBLENBQUFXLE9BQU07SUFBQzRILFFBQVEsRUFBQyxRQUFRO0lBQUNDLEtBQUssRUFBQyxTQUFTO0lBQ2pDTCxLQUFLLEVBQUU7TUFDSE0sVUFBVSxFQUFFLGFBQWE7TUFDekJDLFNBQVMsRUFBRSxNQUFNO01BQ2pCQyxZQUFZLEVBQUU7SUFDbEI7RUFBRSxnQkFDTi9JLE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQSxDQUFDM0csS0FBQSxDQUFBUyxPQUFJO0lBQ0Q0QixLQUFLLEVBQUVzQixRQUFTO0lBQ2hCK0UsUUFBUSxFQUFFbkUsZUFBZ0I7SUFDMUJvRSxPQUFPLEVBQUMsWUFBWSxDQUFnQjtJQUFBO0lBQ3BDQyxhQUFhLEVBQUMsTUFBTSxDQUFnQjtJQUFBO0lBQ3BDQyx3QkFBd0IsT0FBWTtJQUFBO0lBQ3BDQyxTQUFTLEVBQUMsU0FBUztJQUNuQkMsY0FBYyxFQUFDLFNBQVM7SUFDeEIsY0FBVyxNQUFNO0lBQ2pCQyxFQUFFLEVBQUU7TUFDQTtNQUNBLGdCQUFnQixFQUFFO1FBQUNDLFFBQVEsRUFBRTtNQUFHO0lBQ3BDO0VBQUUsR0FFRGpGLGVBQWUsQ0FBQ3FELEdBQUcsQ0FBQyxDQUFDaEMsSUFBSSxFQUFFckMsS0FBSyxLQUFLO0lBQ2xDO0lBQ0E7SUFDQTtJQUNBLE1BQU1rRyxNQUFNLEdBQUc3RCxJQUFJLENBQUM4QyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3RDLG9CQUNJekksTUFBQSxDQUFBZSxPQUFBLENBQUFrRyxhQUFBLENBQUM1RyxJQUFBLENBQUFVLE9BQUcsRUFBQUMsUUFBQTtNQUNBbUcsR0FBRyxFQUFFN0QsS0FBTTtNQUNYbUcsS0FBSyxFQUFFOUQsSUFBSSxDQUFDOEMsVUFBVSxDQUFDLE9BQU8sQ0FBRTtNQUNoQ2lCLElBQUksRUFBRUYsTUFBTSxnQkFBR3hKLE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQSxDQUFDckcsS0FBQSxDQUFBRyxPQUFJO1FBQUN3QyxFQUFFLEVBQUVpRztNQUFPLENBQUMsQ0FBQyxHQUFHRyxTQUFVO01BQy9DQyxZQUFZLEVBQUVKLE1BQU0sR0FBRyxPQUFPLEdBQUdHLFNBQVU7TUFDM0NFLE9BQU8sT0FBNkI7SUFBQSxHQUNoQ3hHLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDO01BQ3BCZ0csRUFBRSxFQUFFO1FBQ0FRLFFBQVEsRUFBRSxHQUFHO1FBQ2JwQixNQUFNLEVBQUUsTUFBTTtRQUFrQjtRQUNoQ3FCLFVBQVUsRUFBRSxRQUFRO1FBQWM7UUFDbENDLFNBQVMsRUFBRSxZQUFZO1FBQVc7UUFDbENDLGFBQWEsRUFBRSxXQUFXO1FBQWE7UUFDdkNyQixLQUFLLEVBQ0RwQywyQkFBa0IsQ0FBQ0Msb0JBQW9CLENBQUMsQ0FBQyxJQUN6Q3JDLE1BQU0sS0FBSyxJQUFJLElBQ2ZBLE1BQU0sQ0FBQ3VCLElBQUksQ0FBQ3BDLEVBQUUsQ0FBQyxLQUFLLElBQUksR0FDbEIsU0FBUyxHQUNUb0c7TUFDZDtJQUFFLEVBQ0wsQ0FBQztFQUVWLENBQUMsQ0FDQyxDQUNGLENBQUMsZUFFTDNKLE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQTtJQUFLc0IsS0FBSyxFQUFFckQsY0FBSyxDQUFDZ0YsV0FBVyxDQUFDO01BQzFCMUIsS0FBSyxFQUFFLE1BQU07TUFDYkUsTUFBTSxFQUFFO0lBQ1osQ0FBQyxFQUFFOUUsS0FBSyxDQUFDNEIsTUFBTTtFQUFFLEdBRVRsQixlQUFlLENBQUNxRCxHQUFHLENBQUMsQ0FBQ2hDLElBQUksRUFBRXJDLEtBQUssS0FBSztJQUFBLElBQUE2RyxnQkFBQSxFQUFBQyxpQkFBQTtJQUNqQyxvQkFBT3BLLE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQTtNQUFLRSxHQUFHLEVBQUU3RCxLQUFNO01BQUNpRixLQUFLLEVBQUU7UUFDM0JHLE1BQU0sRUFBRS9DLElBQUksYUFBSkEsSUFBSSxnQkFBQXdFLGdCQUFBLEdBQUp4RSxJQUFJLENBQUU4QyxVQUFVLGNBQUEwQixnQkFBQSxnQkFBQUEsZ0JBQUEsR0FBaEJBLGdCQUFBLENBQWtCNUIsS0FBSyxjQUFBNEIsZ0JBQUEsZUFBdkJBLGdCQUFBLENBQXlCekIsTUFBTSxHQUFHL0MsSUFBSSxhQUFKQSxJQUFJLGdCQUFBeUUsaUJBQUEsR0FBSnpFLElBQUksQ0FBRThDLFVBQVUsY0FBQTJCLGlCQUFBLGdCQUFBQSxpQkFBQSxHQUFoQkEsaUJBQUEsQ0FBa0I3QixLQUFLLGNBQUE2QixpQkFBQSx1QkFBdkJBLGlCQUFBLENBQXlCMUIsTUFBTSxHQUFHLE1BQU07UUFDbEYyQixPQUFPLEVBQUVwRyxRQUFRLEtBQUtYLEtBQUssR0FBRyxJQUFJLEdBQUc7TUFDekM7SUFBRSxnQkFDRXRELE1BQUEsQ0FBQWUsT0FBQSxDQUFBa0csYUFBQSxDQUFDMUcsUUFBQSxDQUFBUSxPQUFPO01BQ0o0QixLQUFLLEVBQUVzQixRQUFTO01BQUNYLEtBQUssRUFBRUEsS0FBTTtNQUFDa0MsTUFBTSxFQUFFRztJQUFLLEdBQzNDNEIsVUFBVSxDQUFDNUIsSUFBSSxFQUFFckMsS0FBSyxDQUNsQixDQUNSLENBQUM7RUFDVixDQUFDLENBRUosQ0FFUixDQUFDO0FBRWQsQ0FBQyxDQUFDO0FBQUMsSUFBQWdILFFBQUEsR0FBQUMsT0FBQSxDQUFBeEosT0FBQSxHQUVZMEMsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
260
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwibG9hZGVkIiwidXNlUmVmIiwiY29tcG9uZW50SGFuZGxlcyIsImhhbmRsZVRhYkNoYW5nZSIsImV2ZW50IiwibmV3VmFsdWUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJjb21wb25lbnQiLCJVdGlscyIsImlzTnVsbCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInNldHVwVmlzaWJsZVBhZ2VzIiwiY29uZmlnIiwidGFiUGFnZXMiLCJhbGxWaXNpYmxlVGFiUGFnZXMiLCJwYWdlIiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZWZyZXNoIiwicmVuZGVyVGFiUGFnZUNvbXBvbmVudCIsInRhYklkIiwidHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXlIYW5kbGVyIiwia2V5IiwicGFyZW50SWQiLCJ2YWx1ZXMiLCJMYXlvdXQiLCJyZW5kZXJQYWdlIiwicGFnZUluZGV4IiwiY2xhc3NOYW1lIiwiY29tcG9uZW50cyIsIm1hcCIsImdldENoaWxkcmVuIiwiY2hpbGRyZW4iLCJfY29tcG9uZW50SGFuZGxlJGFwaSIsImNvbXBvbmVudEhhbmRsZSIsImNoaWxkIiwic2V0UGFnZUhhc0Vycm9yIiwicGFnZUlkIiwiaGFzRXJyb3IiLCJjbGVhckVycm9ycyIsInJlZHJhdyIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwiaWNvbklkIiwibGFiZWwiLCJpY29uIiwidW5kZWZpbmVkIiwiaWNvblBvc2l0aW9uIiwid3JhcHBlZCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRCcmVhayIsInRleHRUcmFuc2Zvcm0iLCJtZXJnZVN0eWxlcyIsIl9wYWdlJGF0dHJpYnV0ZXMiLCJfcGFnZSRhdHRyaWJ1dGVzMiIsImRpc3BsYXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEFwcEJhciBmcm9tICdAbXVpL21hdGVyaWFsL0FwcEJhcic7XG5pbXBvcnQgVGFiIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFiJztcbmltcG9ydCBUYWJzIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFicyc7XG5pbXBvcnQgVGFiUGFnZSBmcm9tICcuL1RhYlBhZ2UnO1xuaW1wb3J0IEZvcm1TZWN0aW9uIGZyb20gJy4vZm9ybS9TZWN0aW9uJztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4vVG9vbGJhcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi9sYXlvdXQvTGF5b3V0JztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbmZ1bmN0aW9uIGExMXlQcm9wcyhpbmRleCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBgc2ltcGxlLXRhYi0ke2luZGV4fWAsXG4gICAgICAgICdhcmlhLWNvbnRyb2xzJzogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWAsXG4gICAgfTtcbn1cblxuY29uc3QgVGFiUGFuZWwgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt0YWJWYWx1ZSwgc2V0VGFiVmFsdWVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2Vycm9ycywgc2V0RXJyb3JzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbdmlzaWJsZVRhYlBhZ2VzLCBzZXRWaXNpYmxlVGFiUGFnZXNdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICAgICAgYXBpKCkucmVmcmVzaCgpO1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmKCF2aXNpYmxlVGFiUGFnZXMpIHtcbiAgICAgICAgICAgIHNldHVwVmlzaWJsZVBhZ2VzKClcbiAgICAgICAgfVxuICAgIH0sIFt2aXNpYmxlVGFiUGFnZXNdKTtcblxuICAgIGZ1bmN0aW9uIHJlbmRlclRhYlBhZ2VDb21wb25lbnQoY29tcG9uZW50LCB0YWJJZCwgaW5kZXgpIHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuaWQpKSB7XG4gICAgICAgICAgICBjb21wb25lbnQuaWQgPSBpbmRleCArICctdGFiLWNvbnRlbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC50eXBlID09PSAnZm9ybVNlY3Rpb24nID9cbiAgICAgICAgICAgIDxGb3JtU2VjdGlvbiBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17dGFiSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAvPiA6XG4gICAgICAgICAgICBjb21wb25lbnQudHlwZSA9PT0gJ3Rvb2xiYXInID9cbiAgICAgICAgICAgICAgICA8VG9vbGJhciBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPiA6XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICdsYXlvdXQnID9cbiAgICAgICAgICAgICAgICAgICAgPExheW91dCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPiA6XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+eydVbnN1cHBvcnRlZCBjb21wb25lbnQgdHlwZSAnICsgY29tcG9uZW50LnR5cGV9PC9kaXY+O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZSwgcGFnZUluZGV4KSB7XG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J3RhYi1wYWdlLWNvbnRhaW5lcid9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhZ2UuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRhYlBhZ2VDb21wb25lbnQoY29tcG9uZW50LCBwYWdlLmlkLCBwYWdlSW5kZXggKyBpbmRleCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+O1xuICAgIH1cblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50SGFuZGxlID0gY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY29tcG9uZW50SGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlLmFwaT8uZ2V0Q2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNvbXBvbmVudEhhbmRsZS5hcGkuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNldFRhYlZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhYlZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFBhZ2VIYXNFcnJvcjogKHBhZ2VJZCwgaGFzRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcnMoey4uLmVycm9ycywgW3BhZ2VJZF06IGhhc0Vycm9yfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXJFcnJvcnM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZHJhdzogKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZvcmNlIHJlLXJlbmRlclxuICAgICAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhudWxsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocGFyc2VkQ29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgICFVdGlscy5pc051bGwodmlzaWJsZVRhYlBhZ2VzKSAmJiB2aXNpYmxlICYmXG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy53aWR0aCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoIDogJzEwMCUnLFxuICAgICAgICAgICAgaGVpZ2h0OiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgPyBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJSdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCIgY29sb3I9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICA8VGFic1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGFiVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzY3JvbGxhYmxlXCIgICAgICAgICAgICAgICAgLy8gZW5hYmxlcyBob3Jpem9udGFsIHNjcm9sbFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxCdXR0b25zPVwiYXV0b1wiICAgICAgICAgICAgICAgIC8vIHNob3dzIGFycm93cyB3aGVuIG5lZWRlZFxuICAgICAgICAgICAgICAgICAgICBhbGxvd1Njcm9sbEJ1dHRvbnNNb2JpbGUgICAgICAgICAgICAvLyBzaG93IGFycm93cyBvbiBtb2JpbGUgdG9vXG4gICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBpbmRpY2F0b3JDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwidGFic1wiXG4gICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvcHRpb25hbDogcmVkdWNlIGRlZmF1bHQgbWluIHdpZHRoIHNvIG1vcmUgdGFicyBmaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICcmIC5NdWlUYWItcm9vdCc6IHttaW5XaWR0aDogMTIwfSxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3B0aW9uYWwgcGVyLXRhYiBpY29uOiBgYXR0cmlidXRlcy5pY29uYCBpcyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEljb24gY29tcG9uZW50J3MgaWQgKGUuZy4gXCJXT1JLXCIsIFwiVklFV1wiKS4gV2hlblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudCwgcmVuZGVyIHRvIHRoZSBsZWZ0IG9mIHRoZSBsYWJlbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25JZCA9IHBhZ2UuYXR0cmlidXRlc1snaWNvbiddO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtwYWdlLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2ljb25JZCA/IDxJY29uIGlkPXtpY29uSWR9Lz4gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj17aWNvbklkID8gJ3N0YXJ0JyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgbXVsdGktbGluZSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYTExeVByb3BzKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAyNDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywgICAgICAgICAgICAgICAgIC8vIGNvbnN0cmFpbiBzbyB3cmFwcGluZyBjYW4gb2NjdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLCAgICAgICAgICAgICAvLyBhbGxvdyB3cmFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJywgICAgICAgICAgLy8gYnJlYWsgbG9uZyB3b3Jkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZScsICAgICAgICAgICAgLy8ga2VlcCBvcmlnaW5hbCBjYXNpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzW3BhZ2UuaWRdID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyNlZDUyNDknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDY0cHgpJ1xuICAgICAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHBhZ2U/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYlZhbHVlID09PSBpbmRleCA/IG51bGwgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX0gaW5kZXg9e2luZGV4fSBjb25maWc9e3BhZ2V9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclBhZ2UocGFnZSwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RhYlBhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYlBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxtQkFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsT0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsS0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEsQ0FBQVIsQ0FBQSxZQUFBVyxDQUFBLElBQUFELENBQUEsT0FBQUUsY0FBQSxDQUFBQyxJQUFBLENBQUFILENBQUEsRUFBQUMsQ0FBQSxNQUFBSixDQUFBLENBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLGFBQUFKLENBQUEsS0FBQUosUUFBQSxDQUFBVyxLQUFBLE9BQUFOLFNBQUE7QUFBQSxTQUFBTyxRQUFBZixDQUFBLEVBQUFXLENBQUEsUUFBQUQsQ0FBQSxHQUFBTixNQUFBLENBQUFZLElBQUEsQ0FBQWhCLENBQUEsT0FBQUksTUFBQSxDQUFBYSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFkLE1BQUEsQ0FBQWEscUJBQUEsQ0FBQWpCLENBQUEsR0FBQVcsQ0FBQSxLQUFBTyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBUixDQUFBLFdBQUFQLE1BQUEsQ0FBQWdCLHdCQUFBLENBQUFwQixDQUFBLEVBQUFXLENBQUEsRUFBQVUsVUFBQSxPQUFBWCxDQUFBLENBQUFZLElBQUEsQ0FBQVIsS0FBQSxDQUFBSixDQUFBLEVBQUFRLENBQUEsWUFBQVIsQ0FBQTtBQUFBLFNBQUFhLGNBQUF2QixDQUFBLGFBQUFXLENBQUEsTUFBQUEsQ0FBQSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsRUFBQUUsQ0FBQSxVQUFBRCxDQUFBLFdBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxJQUFBSCxTQUFBLENBQUFHLENBQUEsUUFBQUEsQ0FBQSxPQUFBSSxPQUFBLENBQUFYLE1BQUEsQ0FBQU0sQ0FBQSxPQUFBYyxPQUFBLFdBQUFiLENBQUEsSUFBQWMsZUFBQSxDQUFBekIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFELENBQUEsQ0FBQUMsQ0FBQSxTQUFBUCxNQUFBLENBQUFzQix5QkFBQSxHQUFBdEIsTUFBQSxDQUFBdUIsZ0JBQUEsQ0FBQTNCLENBQUEsRUFBQUksTUFBQSxDQUFBc0IseUJBQUEsQ0FBQWhCLENBQUEsS0FBQUssT0FBQSxDQUFBWCxNQUFBLENBQUFNLENBQUEsR0FBQWMsT0FBQSxXQUFBYixDQUFBLElBQUFQLE1BQUEsQ0FBQXdCLGNBQUEsQ0FBQTVCLENBQUEsRUFBQVcsQ0FBQSxFQUFBUCxNQUFBLENBQUFnQix3QkFBQSxDQUFBVixDQUFBLEVBQUFDLENBQUEsaUJBQUFYLENBQUE7QUFBQSxTQUFBeUIsZ0JBQUF6QixDQUFBLEVBQUFXLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLEdBQUFrQixjQUFBLENBQUFsQixDQUFBLE1BQUFYLENBQUEsR0FBQUksTUFBQSxDQUFBd0IsY0FBQSxDQUFBNUIsQ0FBQSxFQUFBVyxDQUFBLElBQUFtQixLQUFBLEVBQUFwQixDQUFBLEVBQUFXLFVBQUEsTUFBQVUsWUFBQSxNQUFBQyxRQUFBLFVBQUFoQyxDQUFBLENBQUFXLENBQUEsSUFBQUQsQ0FBQSxFQUFBVixDQUFBO0FBQUEsU0FBQTZCLGVBQUFuQixDQUFBLFFBQUF1QixDQUFBLEdBQUFDLFlBQUEsQ0FBQXhCLENBQUEsdUNBQUF1QixDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFDLGFBQUF4QixDQUFBLEVBQUFDLENBQUEsMkJBQUFELENBQUEsS0FBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFWLENBQUEsR0FBQVUsQ0FBQSxDQUFBeUIsTUFBQSxDQUFBQyxXQUFBLGtCQUFBcEMsQ0FBQSxRQUFBaUMsQ0FBQSxHQUFBakMsQ0FBQSxDQUFBYSxJQUFBLENBQUFILENBQUEsRUFBQUMsQ0FBQSx1Q0FBQXNCLENBQUEsU0FBQUEsQ0FBQSxZQUFBSSxTQUFBLHlFQUFBMUIsQ0FBQSxHQUFBMkIsTUFBQSxHQUFBQyxNQUFBLEVBQUE3QixDQUFBO0FBRTFCLFNBQVM4QixTQUFTQSxDQUFDQyxLQUFLLEVBQUU7RUFDdEIsT0FBTztJQUNIQyxFQUFFLGdCQUFBQyxNQUFBLENBQWdCRixLQUFLLENBQUU7SUFDekIsZUFBZSxxQkFBQUUsTUFBQSxDQUFxQkYsS0FBSztFQUM3QyxDQUFDO0FBQ0w7QUFFQSxNQUFNRyxRQUFRLGdCQUFHQyxjQUFLLENBQUNDLElBQUksQ0FBRUMsS0FBSyxJQUFLO0VBQUEsSUFBQUMsYUFBQSxFQUFBQyxjQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQTtFQUNuQyxNQUFNLENBQUNDLFFBQVEsRUFBRUMsV0FBVyxDQUFDLEdBQUdSLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUNqRCxNQUFNLENBQUNDLE1BQU0sRUFBRUMsU0FBUyxDQUFDLEdBQUdYLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzlDLE1BQU0sQ0FBQ0csZUFBZSxFQUFFQyxrQkFBa0IsQ0FBQyxHQUFHYixjQUFLLENBQUNTLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDbEUsTUFBTSxDQUFDSyxPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHZixjQUFLLENBQUNTLFFBQVEsQ0FBQyxLQUFLLENBQUM7RUFDbkQsTUFBTU8sTUFBTSxHQUFHaEIsY0FBSyxDQUFDaUIsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNsQyxNQUFNLENBQUNDLGdCQUFnQixDQUFDLEdBQUdsQixjQUFLLENBQUNTLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUU3QyxNQUFNVSxlQUFlLEdBQUdBLENBQUNDLEtBQUssRUFBRUMsUUFBUSxLQUFLO0lBQ3pDYixXQUFXLENBQUNhLFFBQVEsQ0FBQztFQUN6QixDQUFDO0VBRUQsTUFBTUMscUJBQXFCLEdBQUlDLFNBQVMsSUFBSztJQUN6QyxJQUFJQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ1AsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQzFCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7TUFDOUMsSUFBSTZCLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDZlIsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQzFCLEVBQUUsQ0FBQyxHQUFHNkIsTUFBTTtNQUN2QyxPQUFPQSxNQUFNO0lBQ2pCO0lBRUEsT0FBT1IsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQzFCLEVBQUUsQ0FBQztFQUN6QyxDQUFDO0VBRURHLGNBQUssQ0FBQzJCLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCekIsS0FBSyxDQUFDd0IsTUFBTSxDQUFDRSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVGLFNBQVNDLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ3pCLElBQUkzQixLQUFLLENBQUM0QixNQUFNLENBQUNDLFFBQVEsRUFBRTtNQUN2QixJQUFJQyxrQkFBa0IsR0FBRyxFQUFFO01BQzNCLEtBQUssTUFBTUMsSUFBSSxJQUFJL0IsS0FBSyxDQUFDNEIsTUFBTSxDQUFDQyxRQUFRLEVBQUU7UUFDdEMsSUFBSVAsY0FBSyxDQUFDQyxNQUFNLENBQUNRLElBQUksQ0FBQ3BDLEVBQUUsQ0FBQyxFQUFFO1VBQ3ZCb0MsSUFBSSxDQUFDcEMsRUFBRSxHQUFHRCxLQUFLLEdBQUcsV0FBVztRQUNqQztRQUVBLElBQUlzQyxZQUFZLEdBQUdWLGNBQUssQ0FBQ1csV0FBVyxDQUFDRixJQUFJLEVBQUUvQixLQUFLLENBQUNrQyxNQUFNLENBQUM7UUFDeEQsSUFBSXRCLE9BQU8sR0FBR1UsY0FBSyxDQUFDQyxNQUFNLENBQUNTLFlBQVksQ0FBQ3BCLE9BQU8sQ0FBQyxJQUFJVSxjQUFLLENBQUNhLHlCQUF5QixDQUFDSCxZQUFZLENBQUNwQixPQUFPLEVBQUVtQixJQUFJLENBQUNwQyxFQUFFLENBQUM7UUFDbEgsSUFBSWlCLE9BQU8sRUFBRTtVQUNUa0Isa0JBQWtCLENBQUN2RCxJQUFJLENBQUN3RCxJQUFJLENBQUM7UUFDakM7TUFDSjtNQUVBcEIsa0JBQWtCLENBQUNtQixrQkFBa0IsQ0FBQztJQUMxQztFQUNKO0VBRUEsU0FBU00sS0FBS0EsQ0FBQSxFQUFHO0lBQ2IsSUFBSSxDQUFDZCxjQUFLLENBQUNDLE1BQU0sQ0FBQ3ZCLEtBQUssQ0FBQ3FDLElBQUksQ0FBQyxFQUFFO01BQzNCckMsS0FBSyxDQUFDcUMsSUFBSSxDQUFDLENBQUMsQ0FDUEMsd0JBQXdCLENBQUVDLGVBQWUsSUFBSztRQUMzQyxJQUFJQyxhQUFhLEdBQUcsS0FBSztRQUN6QixJQUFJQyxVQUFVLEdBQUdwRixNQUFNLENBQUNxRixtQkFBbUIsQ0FBQ0gsZUFBZSxDQUFDO1FBRTVELEtBQUssTUFBTUksUUFBUSxJQUFJRixVQUFVLEVBQUU7VUFDL0IsSUFBSWpDLE1BQU0sQ0FBQ21DLFFBQVEsQ0FBQyxLQUFLSixlQUFlLENBQUNJLFFBQVEsQ0FBQyxFQUFFO1lBQ2hESCxhQUFhLEdBQUcsSUFBSTtZQUNwQjtVQUNKO1FBQ0o7UUFFQSxJQUFJSSwyQkFBa0IsQ0FBQ0Msb0JBQW9CLENBQUMsQ0FBQyxJQUFJTCxhQUFhLEVBQUU7VUFDNUQvQixTQUFTLENBQUNxQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxTQUFTLENBQUNULGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDMUQ7TUFDSixDQUFDLENBQUM7SUFDVjs7SUFFQTtJQUNBekIsTUFBTSxDQUFDbUMsT0FBTyxHQUFHLElBQUk7RUFDekI7RUFFQW5ELGNBQUssQ0FBQzJCLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCVyxLQUFLLENBQUMsQ0FBQztJQUNQVixHQUFHLENBQUMsQ0FBQyxDQUFDd0IsT0FBTyxDQUFDLENBQUM7RUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOcEQsY0FBSyxDQUFDMkIsU0FBUyxDQUFDLE1BQU07SUFDbEIsSUFBRyxDQUFDZixlQUFlLEVBQUU7TUFDakJpQixpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZCO0VBQ0osQ0FBQyxFQUFFLENBQUNqQixlQUFlLENBQUMsQ0FBQztFQUVyQixTQUFTeUMsc0JBQXNCQSxDQUFDOUIsU0FBUyxFQUFFK0IsS0FBSyxFQUFFMUQsS0FBSyxFQUFFO0lBQ3JELElBQUk0QixjQUFLLENBQUNDLE1BQU0sQ0FBQ0YsU0FBUyxDQUFDMUIsRUFBRSxDQUFDLEVBQUU7TUFDNUIwQixTQUFTLENBQUMxQixFQUFFLEdBQUdELEtBQUssR0FBRyxjQUFjO0lBQ3pDO0lBRUEsT0FBTzJCLFNBQVMsQ0FBQ2dDLElBQUksS0FBSyxhQUFhLGdCQUNuQ2pILE1BQUEsQ0FBQWUsT0FBQSxDQUFBbUcsYUFBQSxDQUFDMUcsUUFBQSxDQUFBTyxPQUFXO01BQUNvRyxVQUFVLEVBQUV2RCxLQUFLLENBQUN1RCxVQUFXO01BQzdCQyxHQUFHLEVBQUVuQyxTQUFTLENBQUMxQixFQUFHO01BQ2xCaUMsTUFBTSxFQUFFUCxTQUFVO01BQ2xCRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDekNnQixJQUFJLEVBQUVyQyxLQUFLLENBQUNxQyxJQUFLO01BQ2pCb0IsUUFBUSxFQUFFTCxLQUFNO01BQ2hCbEIsTUFBTSxFQUFFbEMsS0FBSyxDQUFDa0MsTUFBTztNQUNyQndCLE1BQU0sRUFBRTFELEtBQUssQ0FBQzBEO0lBQU8sQ0FDakMsQ0FBQyxHQUNGckMsU0FBUyxDQUFDZ0MsSUFBSSxLQUFLLFNBQVMsZ0JBQ3hCakgsTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBLENBQUN6RyxRQUFBLENBQUFNLE9BQU87TUFBQ3lFLE1BQU0sRUFBRVAsU0FBVTtNQUFDRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDNURtQyxHQUFHLEVBQUVuQyxTQUFTLENBQUMxQixFQUFHO01BQ2xCdUMsTUFBTSxFQUFFbEMsS0FBSyxDQUFDa0M7SUFBTyxDQUFDLENBQUMsR0FDaENiLFNBQVMsQ0FBQ2dDLElBQUksS0FBSyxRQUFRLGdCQUN2QmpILE1BQUEsQ0FBQWUsT0FBQSxDQUFBbUcsYUFBQSxDQUFDdkcsT0FBQSxDQUFBNEcsTUFBTTtNQUFDL0IsTUFBTSxFQUFFUCxTQUFVO01BQUNHLE1BQU0sRUFBRUoscUJBQXFCLENBQUNDLFNBQVMsQ0FBRTtNQUM1RG1DLEdBQUcsRUFBRW5DLFNBQVMsQ0FBQzFCLEVBQUc7TUFDbEJ1QyxNQUFNLEVBQUVsQyxLQUFLLENBQUNrQztJQUFPLENBQUMsQ0FBQyxnQkFDL0I5RixNQUFBLENBQUFlLE9BQUEsQ0FBQW1HLGFBQUEsY0FBTSw2QkFBNkIsR0FBR2pDLFNBQVMsQ0FBQ2dDLElBQVUsQ0FBQztFQUMzRTtFQUVBLFNBQVNPLFVBQVVBLENBQUM3QixJQUFJLEVBQUU4QixTQUFTLEVBQUU7SUFDakMsb0JBQU96SCxNQUFBLENBQUFlLE9BQUEsQ0FBQW1HLGFBQUE7TUFBS1EsU0FBUyxFQUFFO0lBQXFCLEdBRXBDL0IsSUFBSSxDQUFDZ0MsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQzNDLFNBQVMsRUFBRTNCLEtBQUssS0FBSztNQUN0QyxPQUFPeUQsc0JBQXNCLENBQUM5QixTQUFTLEVBQUVVLElBQUksQ0FBQ3BDLEVBQUUsRUFBRWtFLFNBQVMsR0FBR25FLEtBQUssQ0FBQztJQUN4RSxDQUFDLENBRUosQ0FBQztFQUNWO0VBRUEsTUFBTWdDLEdBQUcsR0FBR0EsQ0FBQSxLQUFNO0lBQ2QsT0FBTztNQUNILElBQUkvQixFQUFFQSxDQUFBLEVBQUc7UUFDTCxPQUFPSyxLQUFLLENBQUM0QixNQUFNLENBQUNqQyxFQUFFO01BQzFCLENBQUM7TUFDRHNFLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsSUFBSUMsUUFBUSxHQUFHLEVBQUU7UUFFakIsSUFBSXpCLFVBQVUsR0FBR3BGLE1BQU0sQ0FBQ3FGLG1CQUFtQixDQUFDMUIsZ0JBQWdCLENBQUM7UUFDN0QsS0FBSyxNQUFNMkIsUUFBUSxJQUFJRixVQUFVLEVBQUU7VUFBQSxJQUFBMEIsb0JBQUE7VUFDL0IsSUFBSUMsZUFBZSxHQUFHcEQsZ0JBQWdCLENBQUMyQixRQUFRLENBQUM7VUFDaER1QixRQUFRLENBQUMzRixJQUFJLENBQUM2RixlQUFlLENBQUM7VUFDOUIsSUFBSSxDQUFDOUMsY0FBSyxDQUFDQyxNQUFNLEVBQUE0QyxvQkFBQSxHQUFDQyxlQUFlLENBQUMxQyxHQUFHLGNBQUF5QyxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCRixXQUFXLENBQUMsRUFBRTtZQUNqRCxLQUFLLE1BQU1JLEtBQUssSUFBSUQsZUFBZSxDQUFDMUMsR0FBRyxDQUFDdUMsV0FBVyxDQUFDLENBQUMsRUFBRTtjQUNuREMsUUFBUSxDQUFDM0YsSUFBSSxDQUFDOEYsS0FBSyxDQUFDO1lBQ3hCO1VBQ0o7UUFDSjtRQUVBLE9BQU9ILFFBQVE7TUFDbkIsQ0FBQztNQUNELElBQUluRixLQUFLQSxDQUFDQSxLQUFLLEVBQUU7UUFDYnVCLFdBQVcsQ0FBQ3ZCLEtBQUssQ0FBQztNQUN0QixDQUFDO01BQ0QsSUFBSUEsS0FBS0EsQ0FBQSxFQUFHO1FBQ1IsT0FBT3NCLFFBQVE7TUFDbkIsQ0FBQztNQUNEaUUsZUFBZSxFQUFFQSxDQUFDQyxNQUFNLEVBQUVDLFFBQVEsS0FBSztRQUNuQy9ELFNBQVMsQ0FBQWpDLGFBQUEsQ0FBQUEsYUFBQSxLQUFLZ0MsTUFBTTtVQUFFLENBQUMrRCxNQUFNLEdBQUdDO1FBQVEsRUFBQyxDQUFDO01BQzlDLENBQUM7TUFDREMsV0FBVyxFQUFFQSxDQUFBLEtBQU07UUFDZmhFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNqQixDQUFDO01BQ0RpRSxNQUFNLEVBQUVBLENBQUEsS0FBTTtRQUNWO1FBQ0EvRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7TUFDNUIsQ0FBQztNQUNEdUMsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDWCxJQUFJbEIsWUFBWSxHQUFHVixjQUFLLENBQUNXLFdBQVcsQ0FBQ2pDLEtBQUssQ0FBQzRCLE1BQU0sRUFBRTVCLEtBQUssQ0FBQ2tDLE1BQU0sQ0FBQztRQUNoRSxJQUFJLENBQUNaLGNBQUssQ0FBQ0MsTUFBTSxDQUFDdkIsS0FBSyxDQUFDNEIsTUFBTSxDQUFDLElBQUksQ0FBQ04sY0FBSyxDQUFDQyxNQUFNLENBQUNTLFlBQVksQ0FBQ3BCLE9BQU8sQ0FBQyxFQUFFO1VBQ3BFQyxVQUFVLENBQUNTLGNBQUssQ0FBQ2EseUJBQXlCLENBQUNILFlBQVksQ0FBQ3BCLE9BQU8sRUFBRW9CLFlBQVksQ0FBQ3JDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsTUFBTTtVQUNIa0IsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwQjtNQUNKLENBQUM7TUFDRCxJQUFJRCxPQUFPQSxDQUFDQSxPQUFPLEVBQUU7UUFDakJDLFVBQVUsQ0FBQ0QsT0FBTyxDQUFDO01BQ3ZCO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFFRCxPQUNJLENBQUNVLGNBQUssQ0FBQ0MsTUFBTSxDQUFDYixlQUFlLENBQUMsSUFBSUUsT0FBTyxpQkFDekN4RSxNQUFBLENBQUFlLE9BQUEsQ0FBQW1HLGFBQUE7SUFBS3FCLEtBQUssRUFBRTtNQUNSQyxLQUFLLEVBQUUsQ0FBQTNFLGFBQUEsR0FBQUQsS0FBSyxDQUFDNEIsTUFBTSxjQUFBM0IsYUFBQSxnQkFBQUEsYUFBQSxHQUFaQSxhQUFBLENBQWM0RSxVQUFVLGNBQUE1RSxhQUFBLGdCQUFBQSxhQUFBLEdBQXhCQSxhQUFBLENBQTBCMEUsS0FBSyxjQUFBMUUsYUFBQSxlQUEvQkEsYUFBQSxDQUFpQzJFLEtBQUssSUFBQTFFLGNBQUEsR0FBR0YsS0FBSyxDQUFDNEIsTUFBTSxjQUFBMUIsY0FBQSxnQkFBQUEsY0FBQSxHQUFaQSxjQUFBLENBQWMyRSxVQUFVLGNBQUEzRSxjQUFBLGdCQUFBQSxjQUFBLEdBQXhCQSxjQUFBLENBQTBCeUUsS0FBSyxjQUFBekUsY0FBQSx1QkFBL0JBLGNBQUEsQ0FBaUMwRSxLQUFLLEdBQUcsTUFBTTtNQUMvRkUsTUFBTSxFQUFFLENBQUEzRSxjQUFBLEdBQUFILEtBQUssQ0FBQzRCLE1BQU0sY0FBQXpCLGNBQUEsZ0JBQUFBLGNBQUEsR0FBWkEsY0FBQSxDQUFjMEUsVUFBVSxjQUFBMUUsY0FBQSxnQkFBQUEsY0FBQSxHQUF4QkEsY0FBQSxDQUEwQndFLEtBQUssY0FBQXhFLGNBQUEsZUFBL0JBLGNBQUEsQ0FBaUMyRSxNQUFNLElBQUExRSxjQUFBLEdBQUdKLEtBQUssQ0FBQzRCLE1BQU0sY0FBQXhCLGNBQUEsZ0JBQUFBLGNBQUEsR0FBWkEsY0FBQSxDQUFjeUUsVUFBVSxjQUFBekUsY0FBQSxnQkFBQUEsY0FBQSxHQUF4QkEsY0FBQSxDQUEwQnVFLEtBQUssY0FBQXZFLGNBQUEsdUJBQS9CQSxjQUFBLENBQWlDMEUsTUFBTSxHQUFHO0lBQ2hHO0VBQUUsZ0JBQ0UxSSxNQUFBLENBQUFlLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQzlHLE9BQUEsQ0FBQVcsT0FBTTtJQUFDNEgsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsS0FBSyxFQUFDLFNBQVM7SUFDakNMLEtBQUssRUFBRTtNQUNITSxVQUFVLEVBQUUsYUFBYTtNQUN6QkMsU0FBUyxFQUFFLE1BQU07TUFDakJDLFlBQVksRUFBRTtJQUNsQjtFQUFFLGdCQUNOL0ksTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBLENBQUM1RyxLQUFBLENBQUFTLE9BQUk7SUFDRDRCLEtBQUssRUFBRXNCLFFBQVM7SUFDaEIrRSxRQUFRLEVBQUVuRSxlQUFnQjtJQUMxQm9FLE9BQU8sRUFBQyxZQUFZLENBQWdCO0lBQUE7SUFDcENDLGFBQWEsRUFBQyxNQUFNLENBQWdCO0lBQUE7SUFDcENDLHdCQUF3QixPQUFZO0lBQUE7SUFDcENDLFNBQVMsRUFBQyxTQUFTO0lBQ25CQyxjQUFjLEVBQUMsU0FBUztJQUN4QixjQUFXLE1BQU07SUFDakJDLEVBQUUsRUFBRTtNQUNBO01BQ0EsZ0JBQWdCLEVBQUU7UUFBQ0MsUUFBUSxFQUFFO01BQUc7SUFDcEM7RUFBRSxHQUVEakYsZUFBZSxDQUFDc0QsR0FBRyxDQUFDLENBQUNqQyxJQUFJLEVBQUVyQyxLQUFLLEtBQUs7SUFDbEM7SUFDQTtJQUNBO0lBQ0EsTUFBTWtHLE1BQU0sR0FBRzdELElBQUksQ0FBQzhDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDdEMsb0JBQ0l6SSxNQUFBLENBQUFlLE9BQUEsQ0FBQW1HLGFBQUEsQ0FBQzdHLElBQUEsQ0FBQVUsT0FBRyxFQUFBQyxRQUFBO01BQ0FvRyxHQUFHLEVBQUU5RCxLQUFNO01BQ1htRyxLQUFLLEVBQUU5RCxJQUFJLENBQUM4QyxVQUFVLENBQUMsT0FBTyxDQUFFO01BQ2hDaUIsSUFBSSxFQUFFRixNQUFNLGdCQUFHeEosTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBLENBQUN0RyxLQUFBLENBQUFHLE9BQUk7UUFBQ3dDLEVBQUUsRUFBRWlHO01BQU8sQ0FBQyxDQUFDLEdBQUdHLFNBQVU7TUFDL0NDLFlBQVksRUFBRUosTUFBTSxHQUFHLE9BQU8sR0FBR0csU0FBVTtNQUMzQ0UsT0FBTyxPQUE2QjtJQUFBLEdBQ2hDeEcsU0FBUyxDQUFDQyxLQUFLLENBQUM7TUFDcEJnRyxFQUFFLEVBQUU7UUFDQVEsUUFBUSxFQUFFLEdBQUc7UUFDYnBCLE1BQU0sRUFBRSxNQUFNO1FBQWtCO1FBQ2hDcUIsVUFBVSxFQUFFLFFBQVE7UUFBYztRQUNsQ0MsU0FBUyxFQUFFLFlBQVk7UUFBVztRQUNsQ0MsYUFBYSxFQUFFLFdBQVc7UUFBYTtRQUN2Q3JCLEtBQUssRUFDRHBDLDJCQUFrQixDQUFDQyxvQkFBb0IsQ0FBQyxDQUFDLElBQ3pDckMsTUFBTSxLQUFLLElBQUksSUFDZkEsTUFBTSxDQUFDdUIsSUFBSSxDQUFDcEMsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUNsQixTQUFTLEdBQ1RvRztNQUNkO0lBQUUsRUFDTCxDQUFDO0VBRVYsQ0FBQyxDQUNDLENBQ0YsQ0FBQyxlQUVMM0osTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBO0lBQUtxQixLQUFLLEVBQUVyRCxjQUFLLENBQUNnRixXQUFXLENBQUM7TUFDMUIxQixLQUFLLEVBQUUsTUFBTTtNQUNiRSxNQUFNLEVBQUU7SUFDWixDQUFDLEVBQUU5RSxLQUFLLENBQUM0QixNQUFNO0VBQUUsR0FFVGxCLGVBQWUsQ0FBQ3NELEdBQUcsQ0FBQyxDQUFDakMsSUFBSSxFQUFFckMsS0FBSyxLQUFLO0lBQUEsSUFBQTZHLGdCQUFBLEVBQUFDLGlCQUFBO0lBQ2pDLG9CQUFPcEssTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBO01BQUtFLEdBQUcsRUFBRTlELEtBQU07TUFBQ2lGLEtBQUssRUFBRTtRQUMzQkcsTUFBTSxFQUFFL0MsSUFBSSxhQUFKQSxJQUFJLGdCQUFBd0UsZ0JBQUEsR0FBSnhFLElBQUksQ0FBRThDLFVBQVUsY0FBQTBCLGdCQUFBLGdCQUFBQSxnQkFBQSxHQUFoQkEsZ0JBQUEsQ0FBa0I1QixLQUFLLGNBQUE0QixnQkFBQSxlQUF2QkEsZ0JBQUEsQ0FBeUJ6QixNQUFNLEdBQUcvQyxJQUFJLGFBQUpBLElBQUksZ0JBQUF5RSxpQkFBQSxHQUFKekUsSUFBSSxDQUFFOEMsVUFBVSxjQUFBMkIsaUJBQUEsZ0JBQUFBLGlCQUFBLEdBQWhCQSxpQkFBQSxDQUFrQjdCLEtBQUssY0FBQTZCLGlCQUFBLHVCQUF2QkEsaUJBQUEsQ0FBeUIxQixNQUFNLEdBQUcsTUFBTTtRQUNsRjJCLE9BQU8sRUFBRXBHLFFBQVEsS0FBS1gsS0FBSyxHQUFHLElBQUksR0FBRztNQUN6QztJQUFFLGdCQUNFdEQsTUFBQSxDQUFBZSxPQUFBLENBQUFtRyxhQUFBLENBQUMzRyxRQUFBLENBQUFRLE9BQU87TUFDSjRCLEtBQUssRUFBRXNCLFFBQVM7TUFBQ1gsS0FBSyxFQUFFQSxLQUFNO01BQUNrQyxNQUFNLEVBQUVHO0lBQUssR0FDM0M2QixVQUFVLENBQUM3QixJQUFJLEVBQUVyQyxLQUFLLENBQ2xCLENBQ1IsQ0FBQztFQUNWLENBQUMsQ0FFSixDQUVSLENBQUM7QUFFZCxDQUFDLENBQUM7QUFBQyxJQUFBZ0gsUUFBQSxHQUFBQyxPQUFBLENBQUF4SixPQUFBLEdBRVkwQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|
package/package.json
CHANGED