@agilemotion/oui-react-js 2.0.13 → 2.0.14

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.
@@ -14,6 +14,7 @@ var _Section = _interopRequireDefault(require("./form/Section"));
14
14
  var _Toolbar = _interopRequireDefault(require("./Toolbar"));
15
15
  var _ApplicationManager = _interopRequireDefault(require("../ApplicationManager"));
16
16
  var _Layout = require("./layout/Layout");
17
+ var _Icon = _interopRequireDefault(require("./Icon"));
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
19
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
20
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -196,24 +197,34 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
196
197
  minWidth: 120
197
198
  }
198
199
  }
199
- }, visibleTabPages.map((page, index) => /*#__PURE__*/_react.default.createElement(_Tab.default, _extends({
200
- key: index,
201
- label: page.attributes['label'],
202
- wrapped: true // allow multi-line label
203
- }, a11yProps(index), {
204
- sx: {
205
- maxWidth: 240,
206
- height: '100%',
207
- // constrain so wrapping can occur
208
- whiteSpace: 'normal',
209
- // allow wrap
210
- wordBreak: 'break-word',
211
- // break long words
212
- textTransform: 'uppercase',
213
- // keep original casing
214
- color: _ApplicationManager.default.isFormMarkersEnabled() && errors !== null && errors[page.id] === true ? '#ed5249' : undefined
215
- }
216
- }))))), /*#__PURE__*/_react.default.createElement("div", {
200
+ }, visibleTabPages.map((page, index) => {
201
+ // Optional per-tab icon: `attributes.icon` is the
202
+ // Icon component's id (e.g. "WORK", "VIEW"). When
203
+ // present, render to the left of the label.
204
+ const iconId = page.attributes['icon'];
205
+ return /*#__PURE__*/_react.default.createElement(_Tab.default, _extends({
206
+ key: index,
207
+ label: page.attributes['label'],
208
+ icon: iconId ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
209
+ id: iconId
210
+ }) : undefined,
211
+ iconPosition: iconId ? 'start' : undefined,
212
+ wrapped: true // allow multi-line label
213
+ }, a11yProps(index), {
214
+ sx: {
215
+ maxWidth: 240,
216
+ height: '100%',
217
+ // constrain so wrapping can occur
218
+ whiteSpace: 'normal',
219
+ // allow wrap
220
+ wordBreak: 'break-word',
221
+ // break long words
222
+ textTransform: 'uppercase',
223
+ // keep original casing
224
+ color: _ApplicationManager.default.isFormMarkersEnabled() && errors !== null && errors[page.id] === true ? '#ed5249' : undefined
225
+ }
226
+ }));
227
+ }))), /*#__PURE__*/_react.default.createElement("div", {
217
228
  style: _Utils.default.mergeStyles({
218
229
  width: '100%',
219
230
  height: 'calc(100% - 64px)'
@@ -234,4 +245,4 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
234
245
  })));
235
246
  });
236
247
  var _default = exports.default = TabPanel;
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJhMTF5UHJvcHMiLCJpbmRleCIsImlkIiwiY29uY2F0IiwiVGFiUGFuZWwiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWciLCJfcHJvcHMkY29uZmlnMiIsIl9wcm9wcyRjb25maWczIiwiX3Byb3BzJGNvbmZpZzQiLCJ0YWJWYWx1ZSIsInNldFRhYlZhbHVlIiwidXNlU3RhdGUiLCJlcnJvcnMiLCJzZXRFcnJvcnMiLCJ2aXNpYmxlVGFiUGFnZXMiLCJzZXRWaXNpYmxlVGFiUGFnZXMiLCJsb2FkZWQiLCJ1c2VSZWYiLCJjb21wb25lbnRIYW5kbGVzIiwiaGFuZGxlVGFiQ2hhbmdlIiwiZXZlbnQiLCJuZXdWYWx1ZSIsImNyZWF0ZUNvbXBvbmVudEhhbmRsZSIsImNvbXBvbmVudCIsIlV0aWxzIiwiaXNOdWxsIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwic2V0dXBWaXNpYmxlUGFnZXMiLCJjb25maWciLCJ0YWJQYWdlcyIsImFsbFZpc2libGVUYWJQYWdlcyIsInBhZ2UiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInZpc2libGUiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZW5kZXJUYWJQYWdlQ29tcG9uZW50IiwidGFiSWQiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJrZXkiLCJwYXJlbnRJZCIsInZhbHVlcyIsIkxheW91dCIsInJlbmRlclBhZ2UiLCJwYWdlSW5kZXgiLCJjbGFzc05hbWUiLCJjb21wb25lbnRzIiwibWFwIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIl9jb21wb25lbnRIYW5kbGUkYXBpIiwiY29tcG9uZW50SGFuZGxlIiwiY2hpbGQiLCJzZXRQYWdlSGFzRXJyb3IiLCJwYWdlSWQiLCJoYXNFcnJvciIsImNsZWFyRXJyb3JzIiwicmVmcmVzaCIsInJlZHJhdyIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwibGFiZWwiLCJ3cmFwcGVkIiwibWF4V2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwidGV4dFRyYW5zZm9ybSIsInVuZGVmaW5lZCIsIm1lcmdlU3R5bGVzIiwiX3BhZ2UkYXR0cmlidXRlcyIsIl9wYWdlJGF0dHJpYnV0ZXMyIiwiZGlzcGxheSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UYWJQYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQXBwQmFyJztcbmltcG9ydCBUYWIgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWInO1xuaW1wb3J0IFRhYnMgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWJzJztcbmltcG9ydCBUYWJQYWdlIGZyb20gJy4vVGFiUGFnZSc7XG5pbXBvcnQgRm9ybVNlY3Rpb24gZnJvbSAnLi9mb3JtL1NlY3Rpb24nO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi9Ub29sYmFyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuL2xheW91dC9MYXlvdXQnO1xuXG5mdW5jdGlvbiBhMTF5UHJvcHMoaW5kZXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpZDogYHNpbXBsZS10YWItJHtpbmRleH1gLFxuICAgICAgICAnYXJpYS1jb250cm9scyc6IGBzaW1wbGUtdGFicGFuZWwtJHtpbmRleH1gLFxuICAgIH07XG59XG5cbmNvbnN0IFRhYlBhbmVsID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdGFiVmFsdWUsIHNldFRhYlZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Zpc2libGVUYWJQYWdlcywgc2V0VmlzaWJsZVRhYlBhZ2VzXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZighdmlzaWJsZVRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBzZXR1cFZpc2libGVQYWdlcygpXG4gICAgICAgIH1cbiAgICB9LCBbdmlzaWJsZVRhYlBhZ2VzXSk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgdGFiSWQsIGluZGV4KSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgY29tcG9uZW50LmlkID0gaW5kZXggKyAnLXRhYi1jb250ZW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gJ2Zvcm1TZWN0aW9uJyA/XG4gICAgICAgICAgICA8Rm9ybVNlY3Rpb24ga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgLz4gOlxuICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICd0b29sYmFyJyA/XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAnbGF5b3V0JyA/XG4gICAgICAgICAgICAgICAgICAgIDxMYXlvdXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PnsnVW5zdXBwb3J0ZWQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC50eXBlfTwvZGl2PjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2UsIHBhZ2VJbmRleCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eyd0YWItcGFnZS1jb250YWluZXInfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYWdlLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgcGFnZS5pZCwgcGFnZUluZGV4ICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PjtcbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZS5hcGk/LmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzZXRUYWJWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJWYWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRQYWdlSGFzRXJyb3I6IChwYWdlSWQsIGhhc0Vycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHsuLi5lcnJvcnMsIFtwYWdlSWRdOiBoYXNFcnJvcn0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyRXJyb3JzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoOiAoKSA9PiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVkcmF3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gRm9yY2UgcmUtcmVuZGVyXG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICAhVXRpbHMuaXNOdWxsKHZpc2libGVUYWJQYWdlcykgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgd2lkdGg6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoID8gcHJvcHMuY29uZmlnPy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGggOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIDxBcHBCYXIgcG9zaXRpb249XCJzdGF0aWNcIiBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNjcm9sbGFibGVcIiAgICAgICAgICAgICAgICAvLyBlbmFibGVzIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEJ1dHRvbnM9XCJhdXRvXCIgICAgICAgICAgICAgICAgLy8gc2hvd3MgYXJyb3dzIHdoZW4gbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGFsbG93U2Nyb2xsQnV0dG9uc01vYmlsZSAgICAgICAgICAgIC8vIHNob3cgYXJyb3dzIG9uIG1vYmlsZSB0b29cbiAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvckNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsOiByZWR1Y2UgZGVmYXVsdCBtaW4gd2lkdGggc28gbW9yZSB0YWJzIGZpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aVRhYi1yb290Jzoge21pbldpZHRoOiAxMjB9LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Zpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17cGFnZS5hdHRyaWJ1dGVzWydsYWJlbCddfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyBtdWx0aS1saW5lIGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hMTF5UHJvcHMoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDI0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLCAgICAgICAgICAgICAgICAgLy8gY29uc3RyYWluIHNvIHdyYXBwaW5nIGNhbiBvY2N1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsICAgICAgICAgICAgIC8vIGFsbG93IHdyYXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLCAgICAgICAgICAvLyBicmVhayBsb25nIHdvcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJywgICAgICAgICAgICAvLyBrZWVwIG9yaWdpbmFsIGNhc2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmlzRm9ybU1hcmtlcnNFbmFibGVkKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnNbcGFnZS5pZF0gPT09IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnI2VkNTI0OSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvVGFicz5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDAlIC0gNjRweCknXG4gICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwYWdlPy5hdHRyaWJ1dGVzPy5zdHlsZT8uaGVpZ2h0ID8gcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFiVmFsdWUgPT09IGluZGV4ID8gbnVsbCA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiUGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17aW5kZXh9IGNvbmZpZz17cGFnZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyUGFnZShwYWdlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFiUGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGFiUGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFBdUMsU0FBQUQsdUJBQUFXLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEsSUFBQUQsQ0FBQSxPQUFBRSxjQUFBLENBQUFDLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLE1BQUFKLENBQUEsQ0FBQUksQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsYUFBQUosQ0FBQSxLQUFBSixRQUFBLENBQUFXLEtBQUEsT0FBQU4sU0FBQTtBQUFBLFNBQUFPLFFBQUFmLENBQUEsRUFBQVcsQ0FBQSxRQUFBRCxDQUFBLEdBQUFOLE1BQUEsQ0FBQVksSUFBQSxDQUFBaEIsQ0FBQSxPQUFBSSxNQUFBLENBQUFhLHFCQUFBLFFBQUFDLENBQUEsR0FBQWQsTUFBQSxDQUFBYSxxQkFBQSxDQUFBakIsQ0FBQSxHQUFBVyxDQUFBLEtBQUFPLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFSLENBQUEsV0FBQVAsTUFBQSxDQUFBZ0Isd0JBQUEsQ0FBQXBCLENBQUEsRUFBQVcsQ0FBQSxFQUFBVSxVQUFBLE9BQUFYLENBQUEsQ0FBQVksSUFBQSxDQUFBUixLQUFBLENBQUFKLENBQUEsRUFBQVEsQ0FBQSxZQUFBUixDQUFBO0FBQUEsU0FBQWEsY0FBQXZCLENBQUEsYUFBQVcsQ0FBQSxNQUFBQSxDQUFBLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxFQUFBRSxDQUFBLFVBQUFELENBQUEsV0FBQUYsU0FBQSxDQUFBRyxDQUFBLElBQUFILFNBQUEsQ0FBQUcsQ0FBQSxRQUFBQSxDQUFBLE9BQUFJLE9BQUEsQ0FBQVgsTUFBQSxDQUFBTSxDQUFBLE9BQUFjLE9BQUEsV0FBQWIsQ0FBQSxJQUFBYyxlQUFBLENBQUF6QixDQUFBLEVBQUFXLENBQUEsRUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFNBQUFQLE1BQUEsQ0FBQXNCLHlCQUFBLEdBQUF0QixNQUFBLENBQUF1QixnQkFBQSxDQUFBM0IsQ0FBQSxFQUFBSSxNQUFBLENBQUFzQix5QkFBQSxDQUFBaEIsQ0FBQSxLQUFBSyxPQUFBLENBQUFYLE1BQUEsQ0FBQU0sQ0FBQSxHQUFBYyxPQUFBLFdBQUFiLENBQUEsSUFBQVAsTUFBQSxDQUFBd0IsY0FBQSxDQUFBNUIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFQLE1BQUEsQ0FBQWdCLHdCQUFBLENBQUFWLENBQUEsRUFBQUMsQ0FBQSxpQkFBQVgsQ0FBQTtBQUFBLFNBQUF5QixnQkFBQXpCLENBQUEsRUFBQVcsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsR0FBQWtCLGNBQUEsQ0FBQWxCLENBQUEsTUFBQVgsQ0FBQSxHQUFBSSxNQUFBLENBQUF3QixjQUFBLENBQUE1QixDQUFBLEVBQUFXLENBQUEsSUFBQW1CLEtBQUEsRUFBQXBCLENBQUEsRUFBQVcsVUFBQSxNQUFBVSxZQUFBLE1BQUFDLFFBQUEsVUFBQWhDLENBQUEsQ0FBQVcsQ0FBQSxJQUFBRCxDQUFBLEVBQUFWLENBQUE7QUFBQSxTQUFBNkIsZUFBQW5CLENBQUEsUUFBQXVCLENBQUEsR0FBQUMsWUFBQSxDQUFBeEIsQ0FBQSx1Q0FBQXVCLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQUMsYUFBQXhCLENBQUEsRUFBQUMsQ0FBQSwyQkFBQUQsQ0FBQSxLQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQVYsQ0FBQSxHQUFBVSxDQUFBLENBQUF5QixNQUFBLENBQUFDLFdBQUEsa0JBQUFwQyxDQUFBLFFBQUFpQyxDQUFBLEdBQUFqQyxDQUFBLENBQUFhLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLHVDQUFBc0IsQ0FBQSxTQUFBQSxDQUFBLFlBQUFJLFNBQUEseUVBQUExQixDQUFBLEdBQUEyQixNQUFBLEdBQUFDLE1BQUEsRUFBQTdCLENBQUE7QUFFdkMsU0FBUzhCLFNBQVNBLENBQUNDLEtBQUssRUFBRTtFQUN0QixPQUFPO0lBQ0hDLEVBQUUsZ0JBQUFDLE1BQUEsQ0FBZ0JGLEtBQUssQ0FBRTtJQUN6QixlQUFlLHFCQUFBRSxNQUFBLENBQXFCRixLQUFLO0VBQzdDLENBQUM7QUFDTDtBQUVBLE1BQU1HLFFBQVEsZ0JBQUdDLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFBQSxJQUFBQyxhQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBO0VBQ25DLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFQyxXQUFXLENBQUMsR0FBR1IsY0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQ2pELE1BQU0sQ0FBQ0MsTUFBTSxFQUFFQyxTQUFTLENBQUMsR0FBR1gsY0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDOUMsTUFBTSxDQUFDRyxlQUFlLEVBQUVDLGtCQUFrQixDQUFDLEdBQUdiLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLElBQUksQ0FBQztFQUNsRSxNQUFNSyxNQUFNLEdBQUdkLGNBQUssQ0FBQ2UsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNsQyxNQUFNLENBQUNDLGdCQUFnQixDQUFDLEdBQUdoQixjQUFLLENBQUNTLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUU3QyxNQUFNUSxlQUFlLEdBQUdBLENBQUNDLEtBQUssRUFBRUMsUUFBUSxLQUFLO0lBQ3pDWCxXQUFXLENBQUNXLFFBQVEsQ0FBQztFQUN6QixDQUFDO0VBRUQsTUFBTUMscUJBQXFCLEdBQUlDLFNBQVMsSUFBSztJQUN6QyxJQUFJQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ1AsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQ3hCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7TUFDOUMsSUFBSTJCLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDZlIsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQ3hCLEVBQUUsQ0FBQyxHQUFHMkIsTUFBTTtNQUN2QyxPQUFPQSxNQUFNO0lBQ2pCO0lBRUEsT0FBT1IsZ0JBQWdCLENBQUNLLFNBQVMsQ0FBQ3hCLEVBQUUsQ0FBQztFQUN6QyxDQUFDO0VBRURHLGNBQUssQ0FBQ3lCLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCdkIsS0FBSyxDQUFDc0IsTUFBTSxDQUFDRSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVGLFNBQVNDLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ3pCLElBQUl6QixLQUFLLENBQUMwQixNQUFNLENBQUNDLFFBQVEsRUFBRTtNQUN2QixJQUFJQyxrQkFBa0IsR0FBRyxFQUFFO01BQzNCLEtBQUssTUFBTUMsSUFBSSxJQUFJN0IsS0FBSyxDQUFDMEIsTUFBTSxDQUFDQyxRQUFRLEVBQUU7UUFDdEMsSUFBSVAsY0FBSyxDQUFDQyxNQUFNLENBQUNRLElBQUksQ0FBQ2xDLEVBQUUsQ0FBQyxFQUFFO1VBQ3ZCa0MsSUFBSSxDQUFDbEMsRUFBRSxHQUFHRCxLQUFLLEdBQUcsV0FBVztRQUNqQztRQUVBLElBQUlvQyxZQUFZLEdBQUdWLGNBQUssQ0FBQ1csV0FBVyxDQUFDRixJQUFJLEVBQUU3QixLQUFLLENBQUNnQyxNQUFNLENBQUM7UUFDeEQsSUFBSUMsT0FBTyxHQUFHYixjQUFLLENBQUNDLE1BQU0sQ0FBQ1MsWUFBWSxDQUFDRyxPQUFPLENBQUMsSUFBSWIsY0FBSyxDQUFDYyx5QkFBeUIsQ0FBQ0osWUFBWSxDQUFDRyxPQUFPLEVBQUVKLElBQUksQ0FBQ2xDLEVBQUUsQ0FBQztRQUNsSCxJQUFJc0MsT0FBTyxFQUFFO1VBQ1RMLGtCQUFrQixDQUFDckQsSUFBSSxDQUFDc0QsSUFBSSxDQUFDO1FBQ2pDO01BQ0o7TUFFQWxCLGtCQUFrQixDQUFDaUIsa0JBQWtCLENBQUM7SUFDMUM7RUFDSjtFQUVBLFNBQVNPLEtBQUtBLENBQUEsRUFBRztJQUNiLElBQUksQ0FBQ2YsY0FBSyxDQUFDQyxNQUFNLENBQUNyQixLQUFLLENBQUNvQyxJQUFJLENBQUMsRUFBRTtNQUMzQnBDLEtBQUssQ0FBQ29DLElBQUksQ0FBQyxDQUFDLENBQ1BDLHdCQUF3QixDQUFFQyxlQUFlLElBQUs7UUFDM0MsSUFBSUMsYUFBYSxHQUFHLEtBQUs7UUFDekIsSUFBSUMsVUFBVSxHQUFHbkYsTUFBTSxDQUFDb0YsbUJBQW1CLENBQUNILGVBQWUsQ0FBQztRQUU1RCxLQUFLLE1BQU1JLFFBQVEsSUFBSUYsVUFBVSxFQUFFO1VBQy9CLElBQUloQyxNQUFNLENBQUNrQyxRQUFRLENBQUMsS0FBS0osZUFBZSxDQUFDSSxRQUFRLENBQUMsRUFBRTtZQUNoREgsYUFBYSxHQUFHLElBQUk7WUFDcEI7VUFDSjtRQUNKO1FBRUEsSUFBSUksMkJBQWtCLENBQUNDLG9CQUFvQixDQUFDLENBQUMsSUFBSUwsYUFBYSxFQUFFO1VBQzVEOUIsU0FBUyxDQUFDb0MsSUFBSSxDQUFDQyxLQUFLLENBQUNELElBQUksQ0FBQ0UsU0FBUyxDQUFDVCxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzFEO01BQ0osQ0FBQyxDQUFDO0lBQ1Y7O0lBRUE7SUFDQTFCLE1BQU0sQ0FBQ29DLE9BQU8sR0FBRyxJQUFJO0VBQ3pCO0VBRUFsRCxjQUFLLENBQUN5QixTQUFTLENBQUMsTUFBTTtJQUNsQlksS0FBSyxDQUFDLENBQUM7RUFDWCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU5yQyxjQUFLLENBQUN5QixTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFHLENBQUNiLGVBQWUsRUFBRTtNQUNqQmUsaUJBQWlCLENBQUMsQ0FBQztJQUN2QjtFQUNKLENBQUMsRUFBRSxDQUFDZixlQUFlLENBQUMsQ0FBQztFQUVyQixTQUFTdUMsc0JBQXNCQSxDQUFDOUIsU0FBUyxFQUFFK0IsS0FBSyxFQUFFeEQsS0FBSyxFQUFFO0lBQ3JELElBQUkwQixjQUFLLENBQUNDLE1BQU0sQ0FBQ0YsU0FBUyxDQUFDeEIsRUFBRSxDQUFDLEVBQUU7TUFDNUJ3QixTQUFTLENBQUN4QixFQUFFLEdBQUdELEtBQUssR0FBRyxjQUFjO0lBQ3pDO0lBRUEsT0FBT3lCLFNBQVMsQ0FBQ2dDLElBQUksS0FBSyxhQUFhLGdCQUNuQzlHLE1BQUEsQ0FBQWMsT0FBQSxDQUFBaUcsYUFBQSxDQUFDdkcsUUFBQSxDQUFBTSxPQUFXO01BQUNrRyxVQUFVLEVBQUVyRCxLQUFLLENBQUNxRCxVQUFXO01BQzdCQyxHQUFHLEVBQUVuQyxTQUFTLENBQUN4QixFQUFHO01BQ2xCK0IsTUFBTSxFQUFFUCxTQUFVO01BQ2xCRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDekNpQixJQUFJLEVBQUVwQyxLQUFLLENBQUNvQyxJQUFLO01BQ2pCbUIsUUFBUSxFQUFFTCxLQUFNO01BQ2hCbEIsTUFBTSxFQUFFaEMsS0FBSyxDQUFDZ0MsTUFBTztNQUNyQndCLE1BQU0sRUFBRXhELEtBQUssQ0FBQ3dEO0lBQU8sQ0FDakMsQ0FBQyxHQUNGckMsU0FBUyxDQUFDZ0MsSUFBSSxLQUFLLFNBQVMsZ0JBQ3hCOUcsTUFBQSxDQUFBYyxPQUFBLENBQUFpRyxhQUFBLENBQUN0RyxRQUFBLENBQUFLLE9BQU87TUFBQ3VFLE1BQU0sRUFBRVAsU0FBVTtNQUFDRyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDQyxTQUFTLENBQUU7TUFDNURtQyxHQUFHLEVBQUVuQyxTQUFTLENBQUN4QixFQUFHO01BQ2xCcUMsTUFBTSxFQUFFaEMsS0FBSyxDQUFDZ0M7SUFBTyxDQUFDLENBQUMsR0FDaENiLFNBQVMsQ0FBQ2dDLElBQUksS0FBSyxRQUFRLGdCQUN2QjlHLE1BQUEsQ0FBQWMsT0FBQSxDQUFBaUcsYUFBQSxDQUFDcEcsT0FBQSxDQUFBeUcsTUFBTTtNQUFDL0IsTUFBTSxFQUFFUCxTQUFVO01BQUNHLE1BQU0sRUFBRUoscUJBQXFCLENBQUNDLFNBQVMsQ0FBRTtNQUM1RG1DLEdBQUcsRUFBRW5DLFNBQVMsQ0FBQ3hCLEVBQUc7TUFDbEJxQyxNQUFNLEVBQUVoQyxLQUFLLENBQUNnQztJQUFPLENBQUMsQ0FBQyxnQkFDL0IzRixNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUEsY0FBTSw2QkFBNkIsR0FBR2pDLFNBQVMsQ0FBQ2dDLElBQVUsQ0FBQztFQUMzRTtFQUVBLFNBQVNPLFVBQVVBLENBQUM3QixJQUFJLEVBQUU4QixTQUFTLEVBQUU7SUFDakMsb0JBQU90SCxNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUE7TUFBS1EsU0FBUyxFQUFFO0lBQXFCLEdBRXBDL0IsSUFBSSxDQUFDZ0MsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQzNDLFNBQVMsRUFBRXpCLEtBQUssS0FBSztNQUN0QyxPQUFPdUQsc0JBQXNCLENBQUM5QixTQUFTLEVBQUVVLElBQUksQ0FBQ2xDLEVBQUUsRUFBRWdFLFNBQVMsR0FBR2pFLEtBQUssQ0FBQztJQUN4RSxDQUFDLENBRUosQ0FBQztFQUNWO0VBRUEsTUFBTThCLEdBQUcsR0FBR0EsQ0FBQSxLQUFNO0lBQ2QsT0FBTztNQUNILElBQUk3QixFQUFFQSxDQUFBLEVBQUc7UUFDTCxPQUFPSyxLQUFLLENBQUMwQixNQUFNLENBQUMvQixFQUFFO01BQzFCLENBQUM7TUFDRG9FLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsSUFBSUMsUUFBUSxHQUFHLEVBQUU7UUFFakIsSUFBSXhCLFVBQVUsR0FBR25GLE1BQU0sQ0FBQ29GLG1CQUFtQixDQUFDM0IsZ0JBQWdCLENBQUM7UUFDN0QsS0FBSyxNQUFNNEIsUUFBUSxJQUFJRixVQUFVLEVBQUU7VUFBQSxJQUFBeUIsb0JBQUE7VUFDL0IsSUFBSUMsZUFBZSxHQUFHcEQsZ0JBQWdCLENBQUM0QixRQUFRLENBQUM7VUFDaERzQixRQUFRLENBQUN6RixJQUFJLENBQUMyRixlQUFlLENBQUM7VUFDOUIsSUFBSSxDQUFDOUMsY0FBSyxDQUFDQyxNQUFNLEVBQUE0QyxvQkFBQSxHQUFDQyxlQUFlLENBQUMxQyxHQUFHLGNBQUF5QyxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCRixXQUFXLENBQUMsRUFBRTtZQUNqRCxLQUFLLE1BQU1JLEtBQUssSUFBSUQsZUFBZSxDQUFDMUMsR0FBRyxDQUFDdUMsV0FBVyxDQUFDLENBQUMsRUFBRTtjQUNuREMsUUFBUSxDQUFDekYsSUFBSSxDQUFDNEYsS0FBSyxDQUFDO1lBQ3hCO1VBQ0o7UUFDSjtRQUVBLE9BQU9ILFFBQVE7TUFDbkIsQ0FBQztNQUNELElBQUlqRixLQUFLQSxDQUFDQSxLQUFLLEVBQUU7UUFDYnVCLFdBQVcsQ0FBQ3ZCLEtBQUssQ0FBQztNQUN0QixDQUFDO01BQ0QsSUFBSUEsS0FBS0EsQ0FBQSxFQUFHO1FBQ1IsT0FBT3NCLFFBQVE7TUFDbkIsQ0FBQztNQUNEK0QsZUFBZSxFQUFFQSxDQUFDQyxNQUFNLEVBQUVDLFFBQVEsS0FBSztRQUNuQzdELFNBQVMsQ0FBQWpDLGFBQUEsQ0FBQUEsYUFBQSxLQUFLZ0MsTUFBTTtVQUFFLENBQUM2RCxNQUFNLEdBQUdDO1FBQVEsRUFBQyxDQUFDO01BQzlDLENBQUM7TUFDREMsV0FBVyxFQUFFQSxDQUFBLEtBQU07UUFDZjlELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNqQixDQUFDO01BQ0QrRCxPQUFPLEVBQUVBLENBQUEsS0FBTSxDQUNmLENBQUM7TUFDREMsTUFBTSxFQUFFQSxDQUFBLEtBQU07UUFDVjtRQUNBOUQsa0JBQWtCLENBQUMsSUFBSSxDQUFDO01BQzVCO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFFRCxPQUNJLENBQUNTLGNBQUssQ0FBQ0MsTUFBTSxDQUFDWCxlQUFlLENBQUMsaUJBQzlCckUsTUFBQSxDQUFBYyxPQUFBLENBQUFpRyxhQUFBO0lBQUtzQixLQUFLLEVBQUU7TUFDUkMsS0FBSyxFQUFFLENBQUExRSxhQUFBLEdBQUFELEtBQUssQ0FBQzBCLE1BQU0sY0FBQXpCLGFBQUEsZ0JBQUFBLGFBQUEsR0FBWkEsYUFBQSxDQUFjMkUsVUFBVSxjQUFBM0UsYUFBQSxnQkFBQUEsYUFBQSxHQUF4QkEsYUFBQSxDQUEwQnlFLEtBQUssY0FBQXpFLGFBQUEsZUFBL0JBLGFBQUEsQ0FBaUMwRSxLQUFLLElBQUF6RSxjQUFBLEdBQUdGLEtBQUssQ0FBQzBCLE1BQU0sY0FBQXhCLGNBQUEsZ0JBQUFBLGNBQUEsR0FBWkEsY0FBQSxDQUFjMEUsVUFBVSxjQUFBMUUsY0FBQSxnQkFBQUEsY0FBQSxHQUF4QkEsY0FBQSxDQUEwQndFLEtBQUssY0FBQXhFLGNBQUEsdUJBQS9CQSxjQUFBLENBQWlDeUUsS0FBSyxHQUFHLE1BQU07TUFDL0ZFLE1BQU0sRUFBRSxDQUFBMUUsY0FBQSxHQUFBSCxLQUFLLENBQUMwQixNQUFNLGNBQUF2QixjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3lFLFVBQVUsY0FBQXpFLGNBQUEsZ0JBQUFBLGNBQUEsR0FBeEJBLGNBQUEsQ0FBMEJ1RSxLQUFLLGNBQUF2RSxjQUFBLGVBQS9CQSxjQUFBLENBQWlDMEUsTUFBTSxJQUFBekUsY0FBQSxHQUFHSixLQUFLLENBQUMwQixNQUFNLGNBQUF0QixjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3dFLFVBQVUsY0FBQXhFLGNBQUEsZ0JBQUFBLGNBQUEsR0FBeEJBLGNBQUEsQ0FBMEJzRSxLQUFLLGNBQUF0RSxjQUFBLHVCQUEvQkEsY0FBQSxDQUFpQ3lFLE1BQU0sR0FBRztJQUNoRztFQUFFLGdCQUNFeEksTUFBQSxDQUFBYyxPQUFBLENBQUFpRyxhQUFBLENBQUMzRyxPQUFBLENBQUFVLE9BQU07SUFBQzJILFFBQVEsRUFBQyxRQUFRO0lBQUNDLEtBQUssRUFBQyxTQUFTO0lBQ2pDTCxLQUFLLEVBQUU7TUFDSE0sVUFBVSxFQUFFLGFBQWE7TUFDekJDLFNBQVMsRUFBRSxNQUFNO01BQ2pCQyxZQUFZLEVBQUU7SUFDbEI7RUFBRSxnQkFDTjdJLE1BQUEsQ0FBQWMsT0FBQSxDQUFBaUcsYUFBQSxDQUFDekcsS0FBQSxDQUFBUSxPQUFJO0lBQ0Q0QixLQUFLLEVBQUVzQixRQUFTO0lBQ2hCOEUsUUFBUSxFQUFFcEUsZUFBZ0I7SUFDMUJxRSxPQUFPLEVBQUMsWUFBWSxDQUFnQjtJQUFBO0lBQ3BDQyxhQUFhLEVBQUMsTUFBTSxDQUFnQjtJQUFBO0lBQ3BDQyx3QkFBd0IsT0FBWTtJQUFBO0lBQ3BDQyxTQUFTLEVBQUMsU0FBUztJQUNuQkMsY0FBYyxFQUFDLFNBQVM7SUFDeEIsY0FBVyxNQUFNO0lBQ2pCQyxFQUFFLEVBQUU7TUFDQTtNQUNBLGdCQUFnQixFQUFFO1FBQUNDLFFBQVEsRUFBRTtNQUFHO0lBQ3BDO0VBQUUsR0FFRGhGLGVBQWUsQ0FBQ29ELEdBQUcsQ0FBQyxDQUFDakMsSUFBSSxFQUFFbkMsS0FBSyxrQkFDekJyRCxNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUEsQ0FBQzFHLElBQUEsQ0FBQVMsT0FBRyxFQUFBQyxRQUFBO0lBQ0FrRyxHQUFHLEVBQUU1RCxLQUFNO0lBQ1hpRyxLQUFLLEVBQUU5RCxJQUFJLENBQUMrQyxVQUFVLENBQUMsT0FBTyxDQUFFO0lBQ2hDZ0IsT0FBTyxPQUE2QjtFQUFBLEdBQ2hDbkcsU0FBUyxDQUFDQyxLQUFLLENBQUM7SUFDcEIrRixFQUFFLEVBQUU7TUFDQUksUUFBUSxFQUFFLEdBQUc7TUFDYmhCLE1BQU0sRUFBRSxNQUFNO01BQWtCO01BQ2hDaUIsVUFBVSxFQUFFLFFBQVE7TUFBYztNQUNsQ0MsU0FBUyxFQUFFLFlBQVk7TUFBVztNQUNsQ0MsYUFBYSxFQUFFLFdBQVc7TUFBYTtNQUN2Q2pCLEtBQUssRUFDRHBDLDJCQUFrQixDQUFDQyxvQkFBb0IsQ0FBQyxDQUFDLElBQ3pDcEMsTUFBTSxLQUFLLElBQUksSUFDZkEsTUFBTSxDQUFDcUIsSUFBSSxDQUFDbEMsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUNsQixTQUFTLEdBQ1RzRztJQUNkO0VBQUUsRUFDTCxDQUNKLENBQ0gsQ0FDRixDQUFDLGVBRUw1SixNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUE7SUFBS3NCLEtBQUssRUFBRXRELGNBQUssQ0FBQzhFLFdBQVcsQ0FBQztNQUMxQnZCLEtBQUssRUFBRSxNQUFNO01BQ2JFLE1BQU0sRUFBRTtJQUNaLENBQUMsRUFBRTdFLEtBQUssQ0FBQzBCLE1BQU07RUFBRSxHQUVUaEIsZUFBZSxDQUFDb0QsR0FBRyxDQUFDLENBQUNqQyxJQUFJLEVBQUVuQyxLQUFLLEtBQUs7SUFBQSxJQUFBeUcsZ0JBQUEsRUFBQUMsaUJBQUE7SUFDakMsb0JBQU8vSixNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUE7TUFBS0UsR0FBRyxFQUFFNUQsS0FBTTtNQUFDZ0YsS0FBSyxFQUFFO1FBQzNCRyxNQUFNLEVBQUVoRCxJQUFJLGFBQUpBLElBQUksZ0JBQUFzRSxnQkFBQSxHQUFKdEUsSUFBSSxDQUFFK0MsVUFBVSxjQUFBdUIsZ0JBQUEsZ0JBQUFBLGdCQUFBLEdBQWhCQSxnQkFBQSxDQUFrQnpCLEtBQUssY0FBQXlCLGdCQUFBLGVBQXZCQSxnQkFBQSxDQUF5QnRCLE1BQU0sR0FBR2hELElBQUksYUFBSkEsSUFBSSxnQkFBQXVFLGlCQUFBLEdBQUp2RSxJQUFJLENBQUUrQyxVQUFVLGNBQUF3QixpQkFBQSxnQkFBQUEsaUJBQUEsR0FBaEJBLGlCQUFBLENBQWtCMUIsS0FBSyxjQUFBMEIsaUJBQUEsdUJBQXZCQSxpQkFBQSxDQUF5QnZCLE1BQU0sR0FBRyxNQUFNO1FBQ2xGd0IsT0FBTyxFQUFFaEcsUUFBUSxLQUFLWCxLQUFLLEdBQUcsSUFBSSxHQUFHO01BQ3pDO0lBQUUsZ0JBQ0VyRCxNQUFBLENBQUFjLE9BQUEsQ0FBQWlHLGFBQUEsQ0FBQ3hHLFFBQUEsQ0FBQU8sT0FBTztNQUNKNEIsS0FBSyxFQUFFc0IsUUFBUztNQUFDWCxLQUFLLEVBQUVBLEtBQU07TUFBQ2dDLE1BQU0sRUFBRUc7SUFBSyxHQUMzQzZCLFVBQVUsQ0FBQzdCLElBQUksRUFBRW5DLEtBQUssQ0FDbEIsQ0FDUixDQUFDO0VBQ1YsQ0FBQyxDQUVKLENBRVIsQ0FBQztBQUVkLENBQUMsQ0FBQztBQUFDLElBQUE0RyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXBKLE9BQUEsR0FFWTBDLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=
248
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsImxvYWRlZCIsInVzZVJlZiIsImNvbXBvbmVudEhhbmRsZXMiLCJoYW5kbGVUYWJDaGFuZ2UiLCJldmVudCIsIm5ld1ZhbHVlIiwiY3JlYXRlQ29tcG9uZW50SGFuZGxlIiwiY29tcG9uZW50IiwiVXRpbHMiLCJpc051bGwiLCJoYW5kbGUiLCJ1c2VFZmZlY3QiLCJhcGkiLCJzZXR1cFZpc2libGVQYWdlcyIsImNvbmZpZyIsInRhYlBhZ2VzIiwiYWxsVmlzaWJsZVRhYlBhZ2VzIiwicGFnZSIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwidmlzaWJsZSIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJzZXR1cCIsImZvcm0iLCJzZXRDb250YWluZXJFcnJvckhhbmRsZXIiLCJjb250YWluZXJFcnJvcnMiLCJzaG91bGRSZWZyZXNoIiwicHJvcGVydGllcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wZXJ0eSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRm9ybU1hcmtlcnNFbmFibGVkIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY3VycmVudCIsInJlbmRlclRhYlBhZ2VDb21wb25lbnQiLCJ0YWJJZCIsInR5cGUiLCJjcmVhdGVFbGVtZW50Iiwia2V5SGFuZGxlciIsImtleSIsInBhcmVudElkIiwidmFsdWVzIiwiTGF5b3V0IiwicmVuZGVyUGFnZSIsInBhZ2VJbmRleCIsImNsYXNzTmFtZSIsImNvbXBvbmVudHMiLCJtYXAiLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuIiwiX2NvbXBvbmVudEhhbmRsZSRhcGkiLCJjb21wb25lbnRIYW5kbGUiLCJjaGlsZCIsInNldFBhZ2VIYXNFcnJvciIsInBhZ2VJZCIsImhhc0Vycm9yIiwiY2xlYXJFcnJvcnMiLCJyZWZyZXNoIiwicmVkcmF3Iiwic3R5bGUiLCJ3aWR0aCIsImF0dHJpYnV0ZXMiLCJoZWlnaHQiLCJwb3NpdGlvbiIsImNvbG9yIiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsImJvcmRlckJvdHRvbSIsIm9uQ2hhbmdlIiwidmFyaWFudCIsInNjcm9sbEJ1dHRvbnMiLCJhbGxvd1Njcm9sbEJ1dHRvbnNNb2JpbGUiLCJ0ZXh0Q29sb3IiLCJpbmRpY2F0b3JDb2xvciIsInN4IiwibWluV2lkdGgiLCJpY29uSWQiLCJsYWJlbCIsImljb24iLCJ1bmRlZmluZWQiLCJpY29uUG9zaXRpb24iLCJ3cmFwcGVkIiwibWF4V2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwidGV4dFRyYW5zZm9ybSIsIm1lcmdlU3R5bGVzIiwiX3BhZ2UkYXR0cmlidXRlcyIsIl9wYWdlJGF0dHJpYnV0ZXMyIiwiZGlzcGxheSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UYWJQYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQXBwQmFyJztcbmltcG9ydCBUYWIgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWInO1xuaW1wb3J0IFRhYnMgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWJzJztcbmltcG9ydCBUYWJQYWdlIGZyb20gJy4vVGFiUGFnZSc7XG5pbXBvcnQgRm9ybVNlY3Rpb24gZnJvbSAnLi9mb3JtL1NlY3Rpb24nO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi9Ub29sYmFyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuL2xheW91dC9MYXlvdXQnO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcblxuZnVuY3Rpb24gYTExeVByb3BzKGluZGV4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGBzaW1wbGUtdGFiLSR7aW5kZXh9YCxcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiBgc2ltcGxlLXRhYnBhbmVsLSR7aW5kZXh9YCxcbiAgICB9O1xufVxuXG5jb25zdCBUYWJQYW5lbCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3RhYlZhbHVlLCBzZXRUYWJWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbZXJyb3JzLCBzZXRFcnJvcnNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlVGFiUGFnZXMsIHNldFZpc2libGVUYWJQYWdlc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBsb2FkZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtjb21wb25lbnRIYW5kbGVzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcblxuICAgIGNvbnN0IGhhbmRsZVRhYkNoYW5nZSA9IChldmVudCwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgc2V0VGFiVmFsdWUobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBjcmVhdGVDb21wb25lbnRIYW5kbGUgPSAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlc1tjb21wb25lbnQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tjb21wb25lbnQuaWRdID0gaGFuZGxlO1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF07XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHNldHVwVmlzaWJsZVBhZ2VzKCkge1xuICAgICAgICBpZiAocHJvcHMuY29uZmlnLnRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBsZXQgYWxsVmlzaWJsZVRhYlBhZ2VzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgcHJvcHMuY29uZmlnLnRhYlBhZ2VzKSB7XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChwYWdlLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBwYWdlLmlkID0gaW5kZXggKyAnLXRhYi1wYWdlJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocGFnZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBsZXQgdmlzaWJsZSA9IFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFnZS5pZCk7XG4gICAgICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsVmlzaWJsZVRhYlBhZ2VzLnB1c2gocGFnZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhhbGxWaXNpYmxlVGFiUGFnZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0dXAoKSB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmZvcm0pKSB7XG4gICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAuc2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyKChjb250YWluZXJFcnJvcnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNob3VsZFJlZnJlc2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb250YWluZXJFcnJvcnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yc1twcm9wZXJ0eV0gIT09IGNvbnRhaW5lckVycm9yc1twcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKSAmJiBzaG91bGRSZWZyZXNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcnMoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250YWluZXJFcnJvcnMpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vc2V0dXBWaXNpYmxlUGFnZXMoKTtcbiAgICAgICAgbG9hZGVkLmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldHVwKCk7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYoIXZpc2libGVUYWJQYWdlcykge1xuICAgICAgICAgICAgc2V0dXBWaXNpYmxlUGFnZXMoKVxuICAgICAgICB9XG4gICAgfSwgW3Zpc2libGVUYWJQYWdlc10pO1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyVGFiUGFnZUNvbXBvbmVudChjb21wb25lbnQsIHRhYklkLCBpbmRleCkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pZCA9IGluZGV4ICsgJy10YWItY29udGVudCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9uZW50LnR5cGUgPT09ICdmb3JtU2VjdGlvbicgP1xuICAgICAgICAgICAgPEZvcm1TZWN0aW9uIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXt0YWJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgIC8+IDpcbiAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAndG9vbGJhcicgP1xuICAgICAgICAgICAgICAgIDxUb29sYmFyIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+IDpcbiAgICAgICAgICAgICAgICBjb21wb25lbnQudHlwZSA9PT0gJ2xheW91dCcgP1xuICAgICAgICAgICAgICAgICAgICA8TGF5b3V0IGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+IDpcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57J1Vuc3VwcG9ydGVkIGNvbXBvbmVudCB0eXBlICcgKyBjb21wb25lbnQudHlwZX08L2Rpdj47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlLCBwYWdlSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsndGFiLXBhZ2UtY29udGFpbmVyJ30+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFnZS5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGFiUGFnZUNvbXBvbmVudChjb21wb25lbnQsIHBhZ2UuaWQsIHBhZ2VJbmRleCArIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj47XG4gICAgfVxuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjb21wb25lbnRIYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGUuYXBpPy5nZXRDaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY29tcG9uZW50SGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc2V0VGFiVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFiVmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0UGFnZUhhc0Vycm9yOiAocGFnZUlkLCBoYXNFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEVycm9ycyh7Li4uZXJyb3JzLCBbcGFnZUlkXTogaGFzRXJyb3J9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGVhckVycm9yczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEVycm9ycyh7fSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaDogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZHJhdzogKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZvcmNlIHJlLXJlbmRlclxuICAgICAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgIVV0aWxzLmlzTnVsbCh2aXNpYmxlVGFiUGFnZXMpICYmXG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy53aWR0aCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoIDogJzEwMCUnLFxuICAgICAgICAgICAgaGVpZ2h0OiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgPyBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJSdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCIgY29sb3I9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICA8VGFic1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGFiVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzY3JvbGxhYmxlXCIgICAgICAgICAgICAgICAgLy8gZW5hYmxlcyBob3Jpem9udGFsIHNjcm9sbFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxCdXR0b25zPVwiYXV0b1wiICAgICAgICAgICAgICAgIC8vIHNob3dzIGFycm93cyB3aGVuIG5lZWRlZFxuICAgICAgICAgICAgICAgICAgICBhbGxvd1Njcm9sbEJ1dHRvbnNNb2JpbGUgICAgICAgICAgICAvLyBzaG93IGFycm93cyBvbiBtb2JpbGUgdG9vXG4gICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBpbmRpY2F0b3JDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwidGFic1wiXG4gICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvcHRpb25hbDogcmVkdWNlIGRlZmF1bHQgbWluIHdpZHRoIHNvIG1vcmUgdGFicyBmaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICcmIC5NdWlUYWItcm9vdCc6IHttaW5XaWR0aDogMTIwfSxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3B0aW9uYWwgcGVyLXRhYiBpY29uOiBgYXR0cmlidXRlcy5pY29uYCBpcyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEljb24gY29tcG9uZW50J3MgaWQgKGUuZy4gXCJXT1JLXCIsIFwiVklFV1wiKS4gV2hlblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudCwgcmVuZGVyIHRvIHRoZSBsZWZ0IG9mIHRoZSBsYWJlbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25JZCA9IHBhZ2UuYXR0cmlidXRlc1snaWNvbiddO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtwYWdlLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2ljb25JZCA/IDxJY29uIGlkPXtpY29uSWR9Lz4gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj17aWNvbklkID8gJ3N0YXJ0JyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgbXVsdGktbGluZSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYTExeVByb3BzKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAyNDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywgICAgICAgICAgICAgICAgIC8vIGNvbnN0cmFpbiBzbyB3cmFwcGluZyBjYW4gb2NjdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLCAgICAgICAgICAgICAvLyBhbGxvdyB3cmFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJywgICAgICAgICAgLy8gYnJlYWsgbG9uZyB3b3Jkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZScsICAgICAgICAgICAgLy8ga2VlcCBvcmlnaW5hbCBjYXNpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzW3BhZ2UuaWRdID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyNlZDUyNDknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDY0cHgpJ1xuICAgICAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHBhZ2U/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYlZhbHVlID09PSBpbmRleCA/IG51bGwgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX0gaW5kZXg9e2luZGV4fSBjb25maWc9e3BhZ2V9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclBhZ2UocGFnZSwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RhYlBhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYlBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxtQkFBQSxH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
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _Utils = _interopRequireDefault(require("../Utils"));
9
9
  var _Error = _interopRequireDefault(require("@mui/icons-material/Error"));
10
+ var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
10
11
  var _Tooltip = _interopRequireDefault(require("./Tooltip"));
11
12
  var _Form = _interopRequireDefault(require("./form/Form"));
12
13
  var _DynamicJS = _interopRequireDefault(require("../DynamicJS"));
@@ -167,6 +168,42 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
167
168
  displayValue = contentValue ? "Yes" : "No";
168
169
  } else if (contentType === 'MULTI_FILE_UPLOAD') {
169
170
  displayValue = contentValue.map(file => file.name).join(", ");
171
+ } else if (Array.isArray(contentValue)) {
172
+ // MULTI_LOOKUP cells render each item as an inline Chip so the
173
+ // non-edit row looks identical to the edit-mode field (which
174
+ // also renders Chips). The container wraps so rows grow only
175
+ // when there are many items, instead of being clipped.
176
+ const chipItems = contentValue.map(item => {
177
+ var _ref, _item$id;
178
+ return {
179
+ id: item && ((_ref = (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : item.username) !== null && _ref !== void 0 ? _ref : item.dataRecordDescription),
180
+ label: item && (item.__oui_label || item.dataRecordDescription || item.fullName || item.username || '')
181
+ };
182
+ }).filter(c => c.label);
183
+ if (chipItems.length === 0) {
184
+ return '';
185
+ }
186
+ return /*#__PURE__*/_react.default.createElement("div", {
187
+ style: {
188
+ display: 'flex',
189
+ flexWrap: 'wrap',
190
+ gap: '4px',
191
+ padding: '2px 0',
192
+ alignItems: 'center'
193
+ }
194
+ }, chipItems.map(c => /*#__PURE__*/_react.default.createElement(_Chip.default, {
195
+ key: c.id,
196
+ label: c.label,
197
+ size: "small",
198
+ variant: "outlined",
199
+ sx: {
200
+ maxWidth: '100%',
201
+ '& .MuiChip-label': {
202
+ overflow: 'hidden',
203
+ textOverflow: 'ellipsis'
204
+ }
205
+ }
206
+ })));
170
207
  } else {
171
208
  if (typeof contentValue === 'object') {
172
209
  // TODO : First check if the editor has a display template. If it does, use it to get the display value
@@ -269,4 +306,4 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
269
306
  return (!props.editor || props.editor && editor) && render();
270
307
  });
271
308
  var _default = exports.default = TableCellContent;
272
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9Ub29sdGlwIiwiX0Zvcm0iLCJfRHluYW1pY0pTIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIlRhYmxlQ2VsbENvbnRlbnQiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRlbnRUeXBlIiwidXNlU3RhdGUiLCJyZWZyZXNoZXIiLCJzZXRSZWZyZXNoZXIiLCJlZGl0b3IiLCJzZXRFZGl0b3IiLCJlZGl0b3JWYWx1ZSIsInVzZVJlZiIsImVzY2FwZVJlZ2V4IiwicyIsInJlcGxhY2UiLCJlZGl0aW5nUmVmIiwiZm9ybWF0dGVyIiwiSW50bCIsIk51bWJlckZvcm1hdCIsInN0eWxlIiwiY3VycmVuY3kiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJ2YWxpZGF0ZSIsInZhbGlkYXRvciIsIlV0aWxzIiwiaXNOdWxsIiwicmVxdWlyZWQiLCJudWxsYWJsZSIsIm51bGxhYmxlRXhwcmVzc2lvbiIsImNvbmNhdCIsInJvdyIsImluZGV4IiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImRhdGFCaW5kaW5nIiwiZm9ybVZhbHVlIiwiaWQiLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGVGaWVsZCIsInZhbGlkIiwiZXJyb3IiLCJjb2x1bW4iLCJtZXNzYWdlIiwidXBkYXRlRXJyb3JzIiwib25Sb3dFcnJvciIsInZhbHVlQ2hhbmdlSGFuZGxlciIsImN1cnJlbnQiLCJ1c2VFZmZlY3QiLCJyZWFkTmVzdGVkUHJvcGVydHkiLCJhdHRyaWJ1dGVzIiwiY29udGFpbmVyU3R5bGUiLCJtaW5XaWR0aCIsIndpZHRoIiwicm93SWQiLCJmb3JtYXREYXRlIiwiY29udGVudFZhbHVlIiwiZGF0ZSIsIkRhdGUiLCJmb3JtYXR0ZWQiLCJnZXREYXRlIiwicGFkU3RhcnQiLCJnZXRNb250aCIsImdldEZ1bGxZZWFyIiwiYnVpbGRTZWFyY2hUZXJtcyIsInBhcmFtZXRlcnMiLCJzZXQiLCJTZXQiLCJwIiwidGVybSIsInNwbGl0IiwidHJpbSIsImFkZCIsInRvTG93ZXJDYXNlIiwiQXJyYXkiLCJmcm9tIiwiaGlnaGxpZ2h0VG9rZW5zIiwidGVybXMiLCJwYXR0ZXJuIiwibWFwIiwiam9pbiIsInNwbGl0UmVnZXgiLCJSZWdFeHAiLCJleGFjdFJlZ2V4IiwicGFydHMiLCJwYXJ0IiwiaXNNYXRjaCIsInRlc3QiLCJjcmVhdGVFbGVtZW50Iiwia2V5IiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJib3JkZXJSYWRpdXMiLCJmb250V2VpZ2h0IiwiYm94U2hhZG93IiwiZ2V0U3RhdGljRGlzcGxheVZhbHVlIiwiZGlzcGxheVZhbHVlIiwidG9rZW5zIiwicGFyZW50IiwiY29sdW1uQ29uZmlnIiwiY2VsbEZvcm1hdCIsImNlbGxGb3JtYXR0ZXIiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0RnVuY3Rpb24iLCJmb3JtYXQiLCJNYXRoIiwicm91bmQiLCJFUFNJTE9OIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiZmlsZSIsIm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJjcml0ZXJpYSIsImRvUmVuZGVyIiwic2VsZWN0ZWQiLCJmb3JtQ29uZmlnIiwidHlwZSIsInNlY3Rpb25zIiwiY29tcG9uZW50cyIsImZpZWxkcyIsImNvbmZpZyIsImhhbmRsZSIsInZhbHVlcyIsInZpZXdJZCIsInJlbmRlciIsImhhc0Vycm9yIiwiY2xhc3NOYW1lIiwid3JhcCIsImJvcmRlciIsInRpdGxlIiwidGV4dEFsaWduIiwibWF4V2lkdGgiLCJhcGkiLCJ2YWwiLCJyZWZyZXNoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbENvbnRlbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEVycm9ySWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yJztcbmltcG9ydCBDdXN0b21Ub29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG5pbXBvcnQgRm9ybSBmcm9tIFwiLi9mb3JtL0Zvcm1cIjtcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uL0R5bmFtaWNKU1wiO1xuXG5jb25zdCBUYWJsZUNlbGxDb250ZW50ID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbY29udGVudFR5cGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29udGVudFR5cGUpO1xuICAgIGNvbnN0IFtyZWZyZXNoZXIsIHNldFJlZnJlc2hlcl0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbZWRpdG9yLCBzZXRFZGl0b3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdG9yVmFsdWUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZXNjYXBlUmVnZXggPSAocykgPT4gcy5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xuICAgIGNvbnN0IGVkaXRpbmdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFwiZW4tWkFcIiwge1xuICAgICAgICBzdHlsZTogXCJjdXJyZW5jeVwiLFxuICAgICAgICBjdXJyZW5jeTogXCJaQVJcIixcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZWRpdG9yKSB7XG4gICAgICAgICAgICBsZXQgdmFsaWRhdG9yID0gcHJvcHMudmFsaWRhdG9yO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsaWRhdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCByZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRvci5udWxsYWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bGxhYmxlRXhwcmVzc2lvbiA9IHZhbGlkYXRvci5udWxsYWJsZS5yZXBsYWNlKC9cXFsjaV0vZywgYFske3Byb3BzLnJvdy5pbmRleH1dYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkID0gIVV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24obnVsbGFibGVFeHByZXNzaW9uLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHt9O1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtwcm9wcy5lZGl0b3IuZGF0YUJpbmRpbmcgfHwgcHJvcHMuZWRpdG9yLmlkXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0aW9uID0gVXRpbHMudmFsaWRhdGVGaWVsZChwcm9wcy5kYXRhQmluZGluZyxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQsIGZvcm1WYWx1ZSwgdmFsdWUsIHZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBlcnJvci5jb2x1bW4gPSBwcm9wcy5kYXRhQmluZGluZztcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IHZhbGlkYXRpb24ubWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUVycm9ycyhlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHByb3BzLm9uUm93RXJyb3IocHJvcHMuZGF0YUJpbmRpbmcsIGVycm9yLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9wcy5vblJvd0Vycm9yKHByb3BzLmRhdGFCaW5kaW5nLCBudWxsLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUNoYW5nZUhhbmRsZXIgPSAodmFsdWUpID0+IHtcbiAgICAgICAgZWRpdGluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKHZhbGlkYXRlKHZhbHVlKSk7XG4gICAgICAgIHByb3BzLnZhbHVlQ2hhbmdlSGFuZGxlcihwcm9wcy5yb3cuaWQsIHByb3BzLmRhdGFCaW5kaW5nLCB2YWx1ZSk7XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZWRpdGluZ1JlZi5jdXJyZW50ICYmIHByb3BzLmVkaXRvciAmJiBwcm9wcy5yb3cpIHtcbiAgICAgICAgICAgIGVkaXRvclZhbHVlLmN1cnJlbnQgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMucm93LCBwcm9wcy5lZGl0b3JdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgIGxldCBlID0gey4uLnByb3BzLmVkaXRvciwgaWQ6IHByb3BzLmVkaXRvci5pZC5yZXBsYWNlKCcuJywgJ18nKX07XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMuc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggPSBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggPyBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiAwO1xuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoID0gZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoID8gZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoIDogJ2NhbGMoMTAwJSAtIDhweCknO1xuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoID0gZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoID8gZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoIDogMDtcbiAgICAgICAgICAgIGUucm93SWQgPSBwcm9wcy5yb3cuaWQ7XG5cbiAgICAgICAgICAgIHNldEVkaXRvcihlKTtcbiAgICAgICAgICAgIC8vIFRoaXMgZm9yY2VzIHRoZSBlZGl0YWJsZSBncmlkIHRvIHZhbGlkYXRlIGl0cyBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIoVXRpbHMuaXNOdWxsKHZhbHVlKSA/IG51bGwgOiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMuZWRpdG9yXSk7XG5cbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGNvbnRlbnRWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY29udGVudFZhbHVlKTtcblxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBgJHtTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xuICAgICAgICAgICAgYCR7U3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xuICAgICAgICAgICAgYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICB9XG5cbi8vIEJ1aWxkIGZsYXQsIGRlZHVwZWQgbGlzdCBvZiBzZWFyY2ggdGVybXMgZnJvbSBjcml0ZXJpYS5wYXJhbWV0ZXJzXG4gICAgY29uc3QgYnVpbGRTZWFyY2hUZXJtcyA9IChwYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhcmFtZXRlcnMgfHwgW10pIHtcbiAgICAgICAgICAgIGlmIChwPy52YWx1ZSAmJiB0eXBlb2YgcC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRlcm0gb2YgcC52YWx1ZS5zcGxpdCgvXFxzKy8pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSB0ZXJtLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQpIHNldC5hZGQodC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2V0KTsgLy8gbG93ZXJjYXNlIHRlcm1zXG4gICAgfTtcblxuICAgIGNvbnN0IGhpZ2hsaWdodFRva2VucyA9ICh2YWx1ZSwgdGVybXMpID0+IHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdGVybXM/Lmxlbmd0aCkgcmV0dXJuIHZhbHVlO1xuXG4gICAgICAgIC8vIENvbWJpbmUgdGVybXMgaW50byBhIHNpbmdsZSBjYXB0dXJpbmcgZ3JvdXAgZm9yIHNwbGl0XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBgKCR7dGVybXMubWFwKHQgPT4gZXNjYXBlUmVnZXgodCkpLmpvaW4oJ3wnKX0pYDtcbiAgICAgICAgY29uc3Qgc3BsaXRSZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybiwgJ2dpJyk7XG4gICAgICAgIGNvbnN0IGV4YWN0UmVnZXggPSBuZXcgUmVnRXhwKGBeKD86JHtwYXR0ZXJufSkkYCwgJ2knKTsgLy8gdG8gdGVzdCBwYXJ0c1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoc3BsaXRSZWdleCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocGFydCwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNNYXRjaCA9IGV4YWN0UmVnZXgudGVzdChwYXJ0KTtcbiAgICAgICAgICAgIHJldHVybiBpc01hdGNoID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmViM2InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDAgM3B4IHJnYmEoMCwwLDAsMC4zKSdcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgIHtwYXJ0fVxuICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e2l9PntwYXJ0fTwvc3Bhbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRTdGF0aWNEaXNwbGF5VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGxldCBkaXNwbGF5VmFsdWU7XG4gICAgICAgIGxldCBjb250ZW50VmFsdWU7XG4gICAgICAgIGxldCB0b2tlbnMgPSBwcm9wcy5kYXRhQmluZGluZy5zcGxpdCgnLicpO1xuXG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb250ZW50VmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gcHJvcHMucm93O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50W3Rva2Vuc1tpXV07XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgY29udGVudFZhbHVlID0gcGFyZW50W3Rva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BzLmNvbHVtbkNvbmZpZy5jZWxsRm9ybWF0ID09PSAnQ1VSUkVOQ1knIHx8IHByb3BzLmNvbHVtbkNvbmZpZy5jZWxsRm9ybWF0ID09PSAnTlVNQkVSJykge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNlbGxGb3JtYXR0ZXIgPyBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IFV0aWxzLmlzTnVsbChjb250ZW50VmFsdWUpID8gJycgOiBwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ0NVUlJFTkNZJyA/XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5mb3JtYXQoTWF0aC5yb3VuZCgoY29udGVudFZhbHVlICsgTnVtYmVyLkVQU0lMT04pICogMTAwKSAvIDEwMCkgOiBNYXRoLnJvdW5kKChjb250ZW50VmFsdWUgKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb250ZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnREFURScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBmb3JtYXREYXRlKGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnVElNRScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBuZXcgRGF0ZShjb250ZW50VmFsdWUpLnRvTG9jYWxlVGltZVN0cmluZygpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ0NIRUNLQk9YJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNvbnRlbnRWYWx1ZSA/IFwiWWVzXCIgOiBcIk5vXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnTVVMVElfRklMRV9VUExPQUQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gY29udGVudFZhbHVlLm1hcChmaWxlID0+IGZpbGUubmFtZSkuam9pbihcIiwgXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEZpcnN0IGNoZWNrIGlmIHRoZSBlZGl0b3IgaGFzIGEgZGlzcGxheSB0ZW1wbGF0ZS4gSWYgaXQgZG9lcywgdXNlIGl0IHRvIGdldCB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUuZGF0YVJlY29yZERlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jcml0ZXJpYSAmJiBwcm9wcy5jcml0ZXJpYS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXJtcyA9IGJ1aWxkU2VhcmNoVGVybXMocHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFR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
309
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9DaGlwIiwiX1Rvb2x0aXAiLCJfRm9ybSIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiVGFibGVDZWxsQ29udGVudCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiY29udGVudFR5cGUiLCJ1c2VTdGF0ZSIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImVkaXRvciIsInNldEVkaXRvciIsImVkaXRvclZhbHVlIiwidXNlUmVmIiwiZXNjYXBlUmVnZXgiLCJzIiwicmVwbGFjZSIsImVkaXRpbmdSZWYiLCJmb3JtYXR0ZXIiLCJJbnRsIiwiTnVtYmVyRm9ybWF0Iiwic3R5bGUiLCJjdXJyZW5jeSIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsInZhbGlkYXRlIiwidmFsaWRhdG9yIiwiVXRpbHMiLCJpc051bGwiLCJyZXF1aXJlZCIsIm51bGxhYmxlIiwibnVsbGFibGVFeHByZXNzaW9uIiwiY29uY2F0Iiwicm93IiwiaW5kZXgiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiZGF0YUJpbmRpbmciLCJmb3JtVmFsdWUiLCJpZCIsInZhbGlkYXRpb24iLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWQiLCJlcnJvciIsImNvbHVtbiIsIm1lc3NhZ2UiLCJ1cGRhdGVFcnJvcnMiLCJvblJvd0Vycm9yIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsImF0dHJpYnV0ZXMiLCJjb250YWluZXJTdHlsZSIsIm1pbldpZHRoIiwid2lkdGgiLCJyb3dJZCIsImZvcm1hdERhdGUiLCJjb250ZW50VmFsdWUiLCJkYXRlIiwiRGF0ZSIsImZvcm1hdHRlZCIsImdldERhdGUiLCJwYWRTdGFydCIsImdldE1vbnRoIiwiZ2V0RnVsbFllYXIiLCJidWlsZFNlYXJjaFRlcm1zIiwicGFyYW1ldGVycyIsInNldCIsIlNldCIsInAiLCJ0ZXJtIiwic3BsaXQiLCJ0cmltIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImZyb20iLCJoaWdobGlnaHRUb2tlbnMiLCJ0ZXJtcyIsInBhdHRlcm4iLCJtYXAiLCJqb2luIiwic3BsaXRSZWdleCIsIlJlZ0V4cCIsImV4YWN0UmVnZXgiLCJwYXJ0cyIsInBhcnQiLCJpc01hdGNoIiwidGVzdCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImJvcmRlclJhZGl1cyIsImZvbnRXZWlnaHQiLCJib3hTaGFkb3ciLCJnZXRTdGF0aWNEaXNwbGF5VmFsdWUiLCJkaXNwbGF5VmFsdWUiLCJ0b2tlbnMiLCJwYXJlbnQiLCJjb2x1bW5Db25maWciLCJjZWxsRm9ybWF0IiwiY2VsbEZvcm1hdHRlciIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHRGdW5jdGlvbiIsImZvcm1hdCIsIk1hdGgiLCJyb3VuZCIsIkVQU0lMT04iLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJmaWxlIiwibmFtZSIsImlzQXJyYXkiLCJjaGlwSXRlbXMiLCJpdGVtIiwiX3JlZiIsIl9pdGVtJGlkIiwidXNlcm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJsYWJlbCIsIl9fb3VpX2xhYmVsIiwiZnVsbE5hbWUiLCJjIiwiZGlzcGxheSIsImZsZXhXcmFwIiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJzaXplIiwidmFyaWFudCIsInN4IiwibWF4V2lkdGgiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsImNyaXRlcmlhIiwiZG9SZW5kZXIiLCJzZWxlY3RlZCIsImZvcm1Db25maWciLCJ0eXBlIiwic2VjdGlvbnMiLCJjb21wb25lbnRzIiwiZmllbGRzIiwiY29uZmlnIiwiaGFuZGxlIiwidmFsdWVzIiwidmlld0lkIiwicmVuZGVyIiwiaGFzRXJyb3IiLCJjbGFzc05hbWUiLCJ3cmFwIiwiYm9yZGVyIiwidGl0bGUiLCJ0ZXh0QWxpZ24iLCJhcGkiLCJ2YWwiLCJyZWZyZXNoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbENvbnRlbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEVycm9ySWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yJztcbmltcG9ydCBDaGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQ2hpcCc7XG5pbXBvcnQgQ3VzdG9tVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuaW1wb3J0IEZvcm0gZnJvbSBcIi4vZm9ybS9Gb3JtXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi9EeW5hbWljSlNcIjtcblxuY29uc3QgVGFibGVDZWxsQ29udGVudCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2NvbnRlbnRUeXBlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmNvbnRlbnRUeXBlKTtcbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2VkaXRvciwgc2V0RWRpdG9yXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGVkaXRvclZhbHVlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGVzY2FwZVJlZ2V4ID0gKHMpID0+IHMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbiAgICBjb25zdCBlZGl0aW5nUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChcImVuLVpBXCIsIHtcbiAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcbiAgICAgICAgY3VycmVuY3k6IFwiWkFSXCIsXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmVkaXRvcikge1xuICAgICAgICAgICAgbGV0IHZhbGlkYXRvciA9IHByb3BzLnZhbGlkYXRvcjtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IubnVsbGFibGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudWxsYWJsZUV4cHJlc3Npb24gPSB2YWxpZGF0b3IubnVsbGFibGUucmVwbGFjZSgvXFxbI2ldL2csIGBbJHtwcm9wcy5yb3cuaW5kZXh9XWApO1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCA9ICFVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKG51bGxhYmxlRXhwcmVzc2lvbiwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbcHJvcHMuZWRpdG9yLmRhdGFCaW5kaW5nIHx8IHByb3BzLmVkaXRvci5pZF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGlvbiA9IFV0aWxzLnZhbGlkYXRlRmllbGQocHJvcHMuZGF0YUJpbmRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLCBmb3JtVmFsdWUsIHZhbHVlLCB2YWxpZGF0b3IpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuY29sdW1uID0gcHJvcHMuZGF0YUJpbmRpbmc7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVFcnJvcnMoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBwcm9wcy5vblJvd0Vycm9yKHByb3BzLmRhdGFCaW5kaW5nLCBlcnJvciwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvcHMub25Sb3dFcnJvcihwcm9wcy5kYXRhQmluZGluZywgbnVsbCwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVDaGFuZ2VIYW5kbGVyID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIGVkaXRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHVwZGF0ZUVycm9ycyh2YWxpZGF0ZSh2YWx1ZSkpO1xuICAgICAgICBwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIocHJvcHMucm93LmlkLCBwcm9wcy5kYXRhQmluZGluZywgdmFsdWUpO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVkaXRpbmdSZWYuY3VycmVudCAmJiBwcm9wcy5lZGl0b3IgJiYgcHJvcHMucm93KSB7XG4gICAgICAgICAgICBlZGl0b3JWYWx1ZS5jdXJyZW50ID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnJvdywgcHJvcHMuZWRpdG9yXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICBsZXQgZSA9IHsuLi5wcm9wcy5lZGl0b3IsIGlkOiBwcm9wcy5lZGl0b3IuaWQucmVwbGFjZSgnLicsICdfJyl9O1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzLnN0eWxlKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID0gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID8gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoIDogMDtcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA9IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA/IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA6ICdjYWxjKDEwMCUgLSA4cHgpJztcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA9IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA/IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA6IDA7XG4gICAgICAgICAgICBlLnJvd0lkID0gcHJvcHMucm93LmlkO1xuXG4gICAgICAgICAgICBzZXRFZGl0b3IoZSk7XG4gICAgICAgICAgICAvLyBUaGlzIGZvcmNlcyB0aGUgZWRpdGFibGUgZ3JpZCB0byB2YWxpZGF0ZSBpdHMgaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgbGV0IHZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKFV0aWxzLmlzTnVsbCh2YWx1ZSkgPyBudWxsIDogdmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmVkaXRvcl0pO1xuXG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChjb250ZW50VmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGNvbnRlbnRWYWx1ZSk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYCR7U3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke1N0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuXG4vLyBCdWlsZCBmbGF0LCBkZWR1cGVkIGxpc3Qgb2Ygc2VhcmNoIHRlcm1zIGZyb20gY3JpdGVyaWEucGFyYW1ldGVyc1xuICAgIGNvbnN0IGJ1aWxkU2VhcmNoVGVybXMgPSAocGFyYW1ldGVycykgPT4ge1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXJhbWV0ZXJzIHx8IFtdKSB7XG4gICAgICAgICAgICBpZiAocD8udmFsdWUgJiYgdHlwZW9mIHAudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0ZXJtIG9mIHAudmFsdWUuc3BsaXQoL1xccysvKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gdGVybS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0KSBzZXQuYWRkKHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHNldCk7IC8vIGxvd2VyY2FzZSB0ZXJtc1xuICAgIH07XG5cbiAgICBjb25zdCBoaWdobGlnaHRUb2tlbnMgPSAodmFsdWUsIHRlcm1zKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgIXRlcm1zPy5sZW5ndGgpIHJldHVybiB2YWx1ZTtcblxuICAgICAgICAvLyBDb21iaW5lIHRlcm1zIGludG8gYSBzaW5nbGUgY2FwdHVyaW5nIGdyb3VwIGZvciBzcGxpdFxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gYCgke3Rlcm1zLm1hcCh0ID0+IGVzY2FwZVJlZ2V4KHQpKS5qb2luKCd8Jyl9KWA7XG4gICAgICAgIGNvbnN0IHNwbGl0UmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4sICdnaScpO1xuICAgICAgICBjb25zdCBleGFjdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXig/OiR7cGF0dGVybn0pJGAsICdpJyk7IC8vIHRvIHRlc3QgcGFydHNcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KHNwbGl0UmVnZXgpO1xuXG4gICAgICAgIHJldHVybiBwYXJ0cy5tYXAoKHBhcnQsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzTWF0Y2ggPSBleGFjdFJlZ2V4LnRlc3QocGFydCk7XG4gICAgICAgICAgICByZXR1cm4gaXNNYXRjaCA/IChcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZlYjNiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCAwIDNweCByZ2JhKDAsMCwwLDAuMyknXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICB7cGFydH1cbiAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpfT57cGFydH08L3NwYW4+XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0U3RhdGljRGlzcGxheVZhbHVlID0gKCkgPT4ge1xuICAgICAgICBsZXQgZGlzcGxheVZhbHVlO1xuICAgICAgICBsZXQgY29udGVudFZhbHVlO1xuICAgICAgICBsZXQgdG9rZW5zID0gcHJvcHMuZGF0YUJpbmRpbmcuc3BsaXQoJy4nKTtcblxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29udGVudFZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHByb3BzLnJvdztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudFt0b2tlbnNbaV1dO1xuICAgICAgICAgICAgICAgIGlmICghcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRWYWx1ZSA9IHBhcmVudFt0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ0NVUlJFTkNZJyB8fCBwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ05VTUJFUicpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5jZWxsRm9ybWF0dGVyID8gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRGdW5jdGlvbihwcm9wcy5jZWxsRm9ybWF0dGVyLCBjb250ZW50VmFsdWUpXG4gICAgICAgICAgICAgICAgOiBVdGlscy5pc051bGwoY29udGVudFZhbHVlKSA/ICcnIDogcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdDVVJSRU5DWScgP1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0KE1hdGgucm91bmQoKGNvbnRlbnRWYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDApIDogTWF0aC5yb3VuZCgoY29udGVudFZhbHVlICsgTnVtYmVyLkVQU0lMT04pICogMTAwKSAvIDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoY29udGVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ0RBVEUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gZm9ybWF0RGF0ZShjb250ZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ1RJTUUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gbmV3IERhdGUoY29udGVudFZhbHVlKS50b0xvY2FsZVRpbWVTdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdDSEVDS0JPWCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUgPyBcIlllc1wiIDogXCJOb1wiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ01VTFRJX0ZJTEVfVVBMT0FEJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNvbnRlbnRWYWx1ZS5tYXAoZmlsZSA9PiBmaWxlLm5hbWUpLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gTVVMVElfTE9PS1VQIGNlbGxzIHJlbmRlciBlYWNoIGl0ZW0gYXMgYW4gaW5saW5lIENoaXAgc28gdGhlXG4gICAgICAgICAgICAgICAgLy8gbm9uLWVkaXQgcm93IGxvb2tzIGlkZW50aWNhbCB0byB0aGUgZWRpdC1tb2RlIGZpZWxkICh3aGljaFxuICAgICAgICAgICAgICAgIC8vIGFsc28gcmVuZGVycyBDaGlwcykuIFRoZSBjb250YWluZXIgd3JhcHMgc28gcm93cyBncm93IG9ubHlcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZXJlIGFyZSBtYW55IGl0ZW1zLCBpbnN0ZWFkIG9mIGJlaW5nIGNsaXBwZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpcEl0ZW1zID0gY29udGVudFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0gJiYgKGl0ZW0uaWQgPz8gaXRlbS51c2VybmFtZSA/PyBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogaXRlbSAmJiAoaXRlbS5fX291aV9sYWJlbCB8fCBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiB8fCBpdGVtLmZ1bGxOYW1lIHx8IGl0ZW0udXNlcm5hbWUgfHwgJycpXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5sYWJlbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpcEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMnB4IDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcEl0ZW1zLm1hcCgoYykgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGlwIGtleT17Yy5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17Yy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aUNoaXAtbGFiZWwnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEZpcnN0IGNoZWNrIGlmIHRoZSBlZGl0b3IgaGFzIGEgZGlzcGxheSB0ZW1wbGF0ZS4gSWYgaXQgZG9lcywgdXNlIGl0IHRvIGdldCB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUuZGF0YVJlY29yZERlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jcml0ZXJpYSAmJiBwcm9wcy5jcml0ZXJpYS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXJtcyA9IGJ1aWxkU2VhcmNoVGVybXMocHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFB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