@pie-lib/editable-html-tip-tap 1.1.1-next.1 → 1.1.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/__tests__/EditableHtml.test.js +16 -3
- package/lib/__tests__/extensions.test.js +3 -3
- package/lib/components/CharacterPicker.js +8 -3
- package/lib/components/EditableHtml.js +1 -1
- package/lib/components/MenuBar.js +1 -1
- package/lib/components/TiptapContainer.js +4 -1
- package/lib/components/characters/characterUtils.js +1 -1
- package/lib/components/characters/custom-popper.js +1 -1
- package/lib/components/common/done-button.js +1 -1
- package/lib/components/common/toolbar-buttons.js +1 -1
- package/lib/components/icons/CssIcon.js +1 -1
- package/lib/components/icons/RespArea.js +1 -1
- package/lib/components/icons/TableIcons.js +1 -1
- package/lib/components/icons/TextAlign.js +1 -1
- package/lib/components/image/AltDialog.js +1 -1
- package/lib/components/image/ImageToolbar.js +1 -1
- package/lib/components/image/InsertImageHandler.js +1 -1
- package/lib/components/media/MediaDialog.js +1 -1
- package/lib/components/media/MediaToolbar.js +1 -1
- package/lib/components/media/MediaWrapper.js +1 -1
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +1 -1
- package/lib/components/respArea/DragInTheBlank/choice.js +1 -1
- package/lib/components/respArea/ExplicitConstructedResponse.js +1 -1
- package/lib/components/respArea/InlineDropdown.js +1 -1
- package/lib/components/respArea/ToolbarIcon.js +1 -1
- package/lib/constants.js +1 -1
- package/lib/extensions/__tests__/component.test.js +19 -19
- package/lib/extensions/__tests__/image-component.test.js +315 -0
- package/lib/extensions/__tests__/image.test.js +2 -2
- package/lib/extensions/component.js +2 -5
- package/lib/extensions/css.js +1 -1
- package/lib/extensions/custom-toolbar-wrapper.js +1 -1
- package/lib/extensions/extended-table.js +2 -2
- package/lib/extensions/image-component.js +1 -1
- package/lib/extensions/image.js +1 -1
- package/lib/extensions/index.js +1 -1
- package/lib/extensions/math.js +1 -1
- package/lib/extensions/media.js +1 -1
- package/lib/extensions/responseArea.js +1 -1
- package/lib/index.js +1 -1
- package/lib/styles/editorContainerStyles.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/utils/size.js +1 -1
- package/package.json +1 -1
- package/src/components/CharacterPicker.jsx +9 -2
- package/src/components/EditableHtml.jsx +1 -1
- package/src/components/TiptapContainer.jsx +3 -0
- package/src/extensions/extended-table.js +1 -6
- package/src/extensions/image.js +7 -5
|
@@ -17,7 +17,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
17
17
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
18
18
|
var _react = _interopRequireDefault(require("react"));
|
|
19
19
|
var _react2 = require("@testing-library/react");
|
|
20
|
-
var
|
|
20
|
+
var _component = _interopRequireDefault(require("../component"));
|
|
21
21
|
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; }
|
|
22
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
23
|
jest.mock('@tiptap/react', function () {
|
|
@@ -115,32 +115,32 @@ describe('ImageComponent', function () {
|
|
|
115
115
|
jest.clearAllMocks();
|
|
116
116
|
});
|
|
117
117
|
it('renders without crashing', function () {
|
|
118
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
118
|
+
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps)),
|
|
119
119
|
getByTestId = _render.getByTestId;
|
|
120
120
|
expect(getByTestId('node-view-wrapper')).toBeInTheDocument();
|
|
121
121
|
});
|
|
122
122
|
it('renders image with correct src', function () {
|
|
123
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
123
|
+
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps)),
|
|
124
124
|
container = _render2.container;
|
|
125
125
|
var img = container.querySelector('img');
|
|
126
126
|
expect(img).toBeInTheDocument();
|
|
127
127
|
expect(img.src).toContain('test.jpg');
|
|
128
128
|
});
|
|
129
129
|
it('renders image with correct dimensions', function () {
|
|
130
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
130
|
+
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps)),
|
|
131
131
|
container = _render3.container;
|
|
132
132
|
var img = container.querySelector('img');
|
|
133
133
|
expect(img.style.width).toBe('100px');
|
|
134
134
|
expect(img.style.height).toBe('100px');
|
|
135
135
|
});
|
|
136
136
|
it('renders image with alt text', function () {
|
|
137
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
137
|
+
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps)),
|
|
138
138
|
container = _render4.container;
|
|
139
139
|
var img = container.querySelector('img');
|
|
140
140
|
expect(img.alt).toBe('Test image');
|
|
141
141
|
});
|
|
142
142
|
it('does not show toolbar when not selected', function () {
|
|
143
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
143
|
+
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
144
144
|
selected: false
|
|
145
145
|
}))),
|
|
146
146
|
queryByTestId = _render5.queryByTestId;
|
|
@@ -151,7 +151,7 @@ describe('ImageComponent', function () {
|
|
|
151
151
|
return _regenerator["default"].wrap(function (_context) {
|
|
152
152
|
while (1) switch (_context.prev = _context.next) {
|
|
153
153
|
case 0:
|
|
154
|
-
_render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
154
|
+
_render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
155
155
|
selected: true
|
|
156
156
|
}))), getByTestId = _render6.getByTestId;
|
|
157
157
|
_context.next = 1;
|
|
@@ -170,7 +170,7 @@ describe('ImageComponent', function () {
|
|
|
170
170
|
loaded: false
|
|
171
171
|
})
|
|
172
172
|
});
|
|
173
|
-
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
173
|
+
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
174
174
|
node: notLoadedNode
|
|
175
175
|
}))),
|
|
176
176
|
container = _render7.container;
|
|
@@ -185,7 +185,7 @@ describe('ImageComponent', function () {
|
|
|
185
185
|
deleteStatus: 'pending'
|
|
186
186
|
})
|
|
187
187
|
});
|
|
188
|
-
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
188
|
+
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
189
189
|
node: pendingDeleteNode
|
|
190
190
|
}))),
|
|
191
191
|
container = _render8.container;
|
|
@@ -195,7 +195,7 @@ describe('ImageComponent', function () {
|
|
|
195
195
|
});
|
|
196
196
|
});
|
|
197
197
|
it('aligns image to left by default', function () {
|
|
198
|
-
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
198
|
+
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps)),
|
|
199
199
|
container = _render9.container;
|
|
200
200
|
var root = container.querySelector('[data-testid="node-view-wrapper"] > div');
|
|
201
201
|
expect(root).toHaveStyle({
|
|
@@ -208,7 +208,7 @@ describe('ImageComponent', function () {
|
|
|
208
208
|
alignment: 'center'
|
|
209
209
|
})
|
|
210
210
|
});
|
|
211
|
-
var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
211
|
+
var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
212
212
|
node: centerNode
|
|
213
213
|
}))),
|
|
214
214
|
container = _render0.container;
|
|
@@ -223,7 +223,7 @@ describe('ImageComponent', function () {
|
|
|
223
223
|
alignment: 'right'
|
|
224
224
|
})
|
|
225
225
|
});
|
|
226
|
-
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
226
|
+
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
227
227
|
node: rightNode
|
|
228
228
|
}))),
|
|
229
229
|
container = _render1.container;
|
|
@@ -233,7 +233,7 @@ describe('ImageComponent', function () {
|
|
|
233
233
|
});
|
|
234
234
|
});
|
|
235
235
|
it('calls insertImageRequested on mount', function () {
|
|
236
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
236
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], defaultProps));
|
|
237
237
|
expect(mockOptions.imageHandling.insertImageRequested).toHaveBeenCalled();
|
|
238
238
|
});
|
|
239
239
|
it('updates attributes through toolbar onChange', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
@@ -241,7 +241,7 @@ describe('ImageComponent', function () {
|
|
|
241
241
|
return _regenerator["default"].wrap(function (_context2) {
|
|
242
242
|
while (1) switch (_context2.prev = _context2.next) {
|
|
243
243
|
case 0:
|
|
244
|
-
_render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
244
|
+
_render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
245
245
|
selected: true
|
|
246
246
|
}))), getByTestId = _render10.getByTestId;
|
|
247
247
|
_context2.next = 1;
|
|
@@ -264,7 +264,7 @@ describe('ImageComponent', function () {
|
|
|
264
264
|
return _regenerator["default"].wrap(function (_context3) {
|
|
265
265
|
while (1) switch (_context3.prev = _context3.next) {
|
|
266
266
|
case 0:
|
|
267
|
-
_render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
267
|
+
_render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
268
268
|
selected: true
|
|
269
269
|
}))), container = _render11.container, queryByTestId = _render11.queryByTestId; // Wait for toolbar to potentially appear
|
|
270
270
|
_context3.next = 1;
|
|
@@ -285,7 +285,7 @@ describe('ImageComponent', function () {
|
|
|
285
285
|
var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
286
286
|
maxImageWidth: 500
|
|
287
287
|
});
|
|
288
|
-
var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
288
|
+
var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], props)),
|
|
289
289
|
container = _render12.container;
|
|
290
290
|
expect(container).toBeInTheDocument();
|
|
291
291
|
});
|
|
@@ -293,7 +293,7 @@ describe('ImageComponent', function () {
|
|
|
293
293
|
var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
294
294
|
maxImageHeight: 800
|
|
295
295
|
});
|
|
296
|
-
var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
296
|
+
var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], props)),
|
|
297
297
|
container = _render13.container;
|
|
298
298
|
expect(container).toBeInTheDocument();
|
|
299
299
|
});
|
|
@@ -303,7 +303,7 @@ describe('ImageComponent', function () {
|
|
|
303
303
|
alt: undefined
|
|
304
304
|
})
|
|
305
305
|
});
|
|
306
|
-
var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(
|
|
306
|
+
var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
307
307
|
node: noAltNode
|
|
308
308
|
}))),
|
|
309
309
|
container = _render14.container;
|
|
@@ -311,4 +311,4 @@ describe('ImageComponent', function () {
|
|
|
311
311
|
expect(img).toBeInTheDocument();
|
|
312
312
|
});
|
|
313
313
|
});
|
|
314
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfaW1hZ2VDb21wb25lbnQiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImplc3QiLCJtb2NrIiwiTm9kZVZpZXdXcmFwcGVyIiwiX3JlZiIsImNoaWxkcmVuIiwiY3JlYXRlRWxlbWVudCIsIl9fZXNNb2R1bGUiLCJmbiIsImRlZmF1bHQiLCJfcmVmMiIsIm9uQ2hhbmdlIiwiYWxpZ25tZW50IiwiYWx0Iiwib25DbGljayIsIl9yZWYzIiwib25Eb25lIiwiZGVzY3JpYmUiLCJtb2NrRWRpdG9yIiwiY29tbWFuZHMiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwiZm9jdXMiLCJzdGF0ZSIsInNlbGVjdGlvbiIsImZyb20iLCJ0byIsIm1vY2tOb2RlIiwiYXR0cnMiLCJzcmMiLCJ3aWR0aCIsImhlaWdodCIsImxvYWRlZCIsInBlcmNlbnQiLCJkZWxldGVTdGF0dXMiLCJub2RlU2l6ZSIsIm1vY2tPcHRpb25zIiwiaW1hZ2VIYW5kbGluZyIsImluc2VydEltYWdlUmVxdWVzdGVkIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsImRlZmF1bHRQcm9wcyIsIm5vZGUiLCJlZGl0b3IiLCJzZWxlY3RlZCIsIm9wdGlvbnMiLCJhdHRyaWJ1dGVzIiwib25Gb2N1cyIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiZ2V0QnlUZXN0SWQiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXIyIiwiY29udGFpbmVyIiwiaW1nIiwicXVlcnlTZWxlY3RvciIsInRvQ29udGFpbiIsIl9yZW5kZXIzIiwic3R5bGUiLCJ0b0JlIiwiX3JlbmRlcjQiLCJfcmVuZGVyNSIsIl9leHRlbmRzMiIsInF1ZXJ5QnlUZXN0SWQiLCJub3QiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZW5kZXI2Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ3YWl0Rm9yIiwic3RvcCIsIm5vdExvYWRlZE5vZGUiLCJfcmVuZGVyNyIsInJvb3QiLCJ0b0hhdmVTdHlsZSIsIm9wYWNpdHkiLCJwZW5kaW5nRGVsZXRlTm9kZSIsIl9yZW5kZXI4IiwiX3JlbmRlcjkiLCJqdXN0aWZ5Q29udGVudCIsImNlbnRlck5vZGUiLCJfcmVuZGVyMCIsInJpZ2h0Tm9kZSIsIl9yZW5kZXIxIiwidG9IYXZlQmVlbkNhbGxlZCIsIl9jYWxsZWUyIiwiX3JlbmRlcjEwIiwiX2NvbnRleHQyIiwiY2VudGVyQnV0dG9uIiwiZmlyZUV2ZW50IiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIl9jYWxsZWUzIiwiX3JlbmRlcjExIiwiX2NvbnRleHQzIiwidG9vbGJhciIsInByb3BzIiwibWF4SW1hZ2VXaWR0aCIsIl9yZW5kZXIxMiIsIm1heEltYWdlSGVpZ2h0IiwiX3JlbmRlcjEzIiwibm9BbHROb2RlIiwidW5kZWZpbmVkIiwiX3JlbmRlcjE0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4dGVuc2lvbnMvX190ZXN0c19fL2NvbXBvbmVudC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCBmaXJlRXZlbnQsIHdhaXRGb3IgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCBJbWFnZUNvbXBvbmVudCBmcm9tICcuLi9pbWFnZS1jb21wb25lbnQnO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBOb2RlVmlld1dyYXBwZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJub2RlLXZpZXctd3JhcHBlclwiPntjaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmplc3QubW9jaygnLi4vLi4vY29tcG9uZW50cy9pbWFnZS9JbnNlcnRJbWFnZUhhbmRsZXInLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiBqZXN0LmZuKCksXG59KSk7XG5cbmplc3QubW9jaygnLi4vLi4vY29tcG9uZW50cy9pbWFnZS9JbWFnZVRvb2xiYXInLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBvbkNoYW5nZSwgYWxpZ25tZW50LCBhbHQgfSkgPT4gKFxuICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJpbWFnZS10b29sYmFyXCI+XG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlKHsgYWxpZ25tZW50OiAnY2VudGVyJyB9KX0+Q2VudGVyPC9idXR0b24+XG4gICAgICA8c3Bhbj57YWxpZ25tZW50fTwvc3Bhbj5cbiAgICAgIDxzcGFuPnthbHR9PC9zcGFuPlxuICAgIDwvZGl2PlxuICApLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2N1c3RvbS10b29sYmFyLXdyYXBwZXInLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBjaGlsZHJlbiwgb25Eb25lIH0pID0+IChcbiAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiY3VzdG9tLXRvb2xiYXItd3JhcHBlclwiPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtvbkRvbmV9IGRhdGEtdGVzdGlkPVwiZG9uZS1idXR0b25cIj5cbiAgICAgICAgRG9uZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICksXG59KSk7XG5cbmRlc2NyaWJlKCdJbWFnZUNvbXBvbmVudCcsICgpID0+IHtcbiAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICBjb21tYW5kczoge1xuICAgICAgdXBkYXRlQXR0cmlidXRlczogamVzdC5mbigpLFxuICAgICAgZm9jdXM6IGplc3QuZm4oKSxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgZnJvbTogMCxcbiAgICAgICAgdG86IDEsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgbW9ja05vZGUgPSB7XG4gICAgYXR0cnM6IHtcbiAgICAgIHNyYzogJ3Rlc3QuanBnJyxcbiAgICAgIHdpZHRoOiAxMDAsXG4gICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgIHBlcmNlbnQ6IDEwMCxcbiAgICAgIGFsdDogJ1Rlc3QgaW1hZ2UnLFxuICAgICAgYWxpZ25tZW50OiAnbGVmdCcsXG4gICAgICBkZWxldGVTdGF0dXM6IG51bGwsXG4gICAgfSxcbiAgICBub2RlU2l6ZTogMSxcbiAgfTtcblxuICBjb25zdCBtb2NrT3B0aW9ucyA9IHtcbiAgICBpbWFnZUhhbmRsaW5nOiB7XG4gICAgICBpbnNlcnRJbWFnZVJlcXVlc3RlZDogamVzdC5mbigpLFxuICAgICAgb25Eb25lOiBqZXN0LmZuKCksXG4gICAgfSxcbiAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zOiBmYWxzZSxcbiAgfTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbm9kZTogbW9ja05vZGUsXG4gICAgZWRpdG9yOiBtb2NrRWRpdG9yLFxuICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICBvcHRpb25zOiBtb2NrT3B0aW9ucyxcbiAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICBvbkZvY3VzOiBqZXN0LmZuKCksXG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBpbWFnZSB3aXRoIGNvcnJlY3Qgc3JjJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBpbWcgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgZXhwZWN0KGltZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoaW1nLnNyYykudG9Db250YWluKCd0ZXN0LmpwZycpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBpbWFnZSB3aXRoIGNvcnJlY3QgZGltZW5zaW9ucycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3QgaW1nID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIGV4cGVjdChpbWcuc3R5bGUud2lkdGgpLnRvQmUoJzEwMHB4Jyk7XG4gICAgZXhwZWN0KGltZy5zdHlsZS5oZWlnaHQpLnRvQmUoJzEwMHB4Jyk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGltYWdlIHdpdGggYWx0IHRleHQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IGltZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICBleHBlY3QoaW1nLmFsdCkudG9CZSgnVGVzdCBpbWFnZScpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgc2hvdyB0b29sYmFyIHdoZW4gbm90IHNlbGVjdGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnaW1hZ2UtdG9vbGJhcicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHRvb2xiYXIgd2hlbiBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnaW1hZ2UtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBsb2FkaW5nIG9wYWNpdHkgd2hlbiBpbWFnZSBub3QgbG9hZGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG5vdExvYWRlZE5vZGUgPSB7XG4gICAgICAuLi5tb2NrTm9kZSxcbiAgICAgIGF0dHJzOiB7XG4gICAgICAgIC4uLm1vY2tOb2RlLmF0dHJzLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm90TG9hZGVkTm9kZX0gLz4pO1xuICAgIGNvbnN0IHJvb3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwibm9kZS12aWV3LXdyYXBwZXJcIl0gPiBkaXYnKTtcbiAgICBleHBlY3Qocm9vdCkudG9IYXZlU3R5bGUoeyBvcGFjaXR5OiAwLjMgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIHBlbmRpbmcgZGVsZXRlIG9wYWNpdHknLCAoKSA9PiB7XG4gICAgY29uc3QgcGVuZGluZ0RlbGV0ZU5vZGUgPSB7XG4gICAgICAuLi5tb2NrTm9kZSxcbiAgICAgIGF0dHJzOiB7XG4gICAgICAgIC4uLm1vY2tOb2RlLmF0dHJzLFxuICAgICAgICBkZWxldGVTdGF0dXM6ICdwZW5kaW5nJyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e3BlbmRpbmdEZWxldGVOb2RlfSAvPik7XG4gICAgY29uc3Qgcm9vdCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJub2RlLXZpZXctd3JhcHBlclwiXSA+IGRpdicpO1xuICAgIGV4cGVjdChyb290KS50b0hhdmVTdHlsZSh7IG9wYWNpdHk6IDAuMyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FsaWducyBpbWFnZSB0byBsZWZ0IGJ5IGRlZmF1bHQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHJvb3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwibm9kZS12aWV3LXdyYXBwZXJcIl0gPiBkaXYnKTtcbiAgICBleHBlY3Qocm9vdCkudG9IYXZlU3R5bGUoeyBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnIH0pO1xuICB9KTtcblxuICBpdCgnYWxpZ25zIGltYWdlIHRvIGNlbnRlcicsICgpID0+IHtcbiAgICBjb25zdCBjZW50ZXJOb2RlID0ge1xuICAgICAgLi4ubW9ja05vZGUsXG4gICAgICBhdHRyczoge1xuICAgICAgICAuLi5tb2NrTm9kZS5hdHRycyxcbiAgICAgICAgYWxpZ25tZW50OiAnY2VudGVyJyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e2NlbnRlck5vZGV9IC8+KTtcbiAgICBjb25zdCByb290ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCJdID4gZGl2Jyk7XG4gICAgZXhwZWN0KHJvb3QpLnRvSGF2ZVN0eWxlKHsganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH0pO1xuICB9KTtcblxuICBpdCgnYWxpZ25zIGltYWdlIHRvIHJpZ2h0JywgKCkgPT4ge1xuICAgIGNvbnN0IHJpZ2h0Tm9kZSA9IHtcbiAgICAgIC4uLm1vY2tOb2RlLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgLi4ubW9ja05vZGUuYXR0cnMsXG4gICAgICAgIGFsaWdubWVudDogJ3JpZ2h0JyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e3JpZ2h0Tm9kZX0gLz4pO1xuICAgIGNvbnN0IHJvb3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwibm9kZS12aWV3LXdyYXBwZXJcIl0gPiBkaXYnKTtcbiAgICBleHBlY3Qocm9vdCkudG9IYXZlU3R5bGUoeyBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIGluc2VydEltYWdlUmVxdWVzdGVkIG9uIG1vdW50JywgKCkgPT4ge1xuICAgIHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChtb2NrT3B0aW9ucy5pbWFnZUhhbmRsaW5nLmluc2VydEltYWdlUmVxdWVzdGVkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCd1cGRhdGVzIGF0dHJpYnV0ZXMgdGhyb3VnaCB0b29sYmFyIG9uQ2hhbmdlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgY29uc3QgY2VudGVyQnV0dG9uID0gZ2V0QnlUZXN0SWQoJ2ltYWdlLXRvb2xiYXInKS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcbiAgICAgIGZpcmVFdmVudC5jbGljayhjZW50ZXJCdXR0b24pO1xuICAgIH0pO1xuXG4gICAgZXhwZWN0KG1vY2tFZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2ltYWdlVXBsb2FkTm9kZScsIHsgYWxpZ25tZW50OiAnY2VudGVyJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Rvb2xiYXIgaXMgc2hvd24gd2hlbiBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuXG4gICAgLy8gV2FpdCBmb3IgdG9vbGJhciB0byBwb3RlbnRpYWxseSBhcHBlYXJcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIC8vIFRoZSB0b29sYmFyIG1pZ2h0IG5vdCBiZSB2aXNpYmxlIGR1ZSB0byBtb2NraW5nIGJ1dCBjaGVjayBpZiBjdXN0b20tdG9vbGJhci13cmFwcGVyIHNob3dzIHVwXG4gICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImN1c3RvbS10b29sYmFyLXdyYXBwZXJcIl0nKTtcbiAgICAgIC8vIEluIGEgcmVhbCB0ZXN0IGVudmlyb25tZW50LCB0aGUgdG9vbGJhciB3b3VsZCBiZSB2aXNpYmxlXG4gICAgICAvLyBGb3Igbm93LCBqdXN0IHZlcmlmeSB0aGUgY29tcG9uZW50IHJlbmRlcnMgd2l0aG91dCBlcnJvcnMgd2hlbiBzZWxlY3RlZFxuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Jlc3BlY3RzIG1heEltYWdlV2lkdGggcHJvcCcsICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG1heEltYWdlV2lkdGg6IDUwMCxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Jlc3BlY3RzIG1heEltYWdlSGVpZ2h0IHByb3AnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBtYXhJbWFnZUhlaWdodDogODAwLFxuICAgIH07XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4ucHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBtaXNzaW5nIGFsdCBhdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgY29uc3Qgbm9BbHROb2RlID0ge1xuICAgICAgLi4ubW9ja05vZGUsXG4gICAgICBhdHRyczoge1xuICAgICAgICAuLi5tb2NrTm9kZS5hdHRycyxcbiAgICAgICAgYWx0OiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtub0FsdE5vZGV9IC8+KTtcbiAgICBjb25zdCBpbWcgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgZXhwZWN0KGltZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBZ0QsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFB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
|
|
314
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfY29tcG9uZW50Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIk5vZGVWaWV3V3JhcHBlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJfX2VzTW9kdWxlIiwiZm4iLCJkZWZhdWx0IiwiX3JlZjIiLCJvbkNoYW5nZSIsImFsaWdubWVudCIsImFsdCIsIm9uQ2xpY2siLCJfcmVmMyIsIm9uRG9uZSIsImRlc2NyaWJlIiwibW9ja0VkaXRvciIsImNvbW1hbmRzIiwidXBkYXRlQXR0cmlidXRlcyIsImZvY3VzIiwic3RhdGUiLCJzZWxlY3Rpb24iLCJmcm9tIiwidG8iLCJtb2NrTm9kZSIsImF0dHJzIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJsb2FkZWQiLCJwZXJjZW50IiwiZGVsZXRlU3RhdHVzIiwibm9kZVNpemUiLCJtb2NrT3B0aW9ucyIsImltYWdlSGFuZGxpbmciLCJpbnNlcnRJbWFnZVJlcXVlc3RlZCIsImRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMiLCJkZWZhdWx0UHJvcHMiLCJub2RlIiwiZWRpdG9yIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwiYXR0cmlidXRlcyIsIm9uRm9jdXMiLCJiZWZvcmVFYWNoIiwiY2xlYXJBbGxNb2NrcyIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImdldEJ5VGVzdElkIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImNvbnRhaW5lciIsImltZyIsInF1ZXJ5U2VsZWN0b3IiLCJ0b0NvbnRhaW4iLCJfcmVuZGVyMyIsInN0eWxlIiwidG9CZSIsIl9yZW5kZXI0IiwiX3JlbmRlcjUiLCJfZXh0ZW5kczIiLCJxdWVyeUJ5VGVzdElkIiwibm90IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfcmVuZGVyNiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwid2FpdEZvciIsInN0b3AiLCJub3RMb2FkZWROb2RlIiwiX3JlbmRlcjciLCJyb290IiwidG9IYXZlU3R5bGUiLCJvcGFjaXR5IiwicGVuZGluZ0RlbGV0ZU5vZGUiLCJfcmVuZGVyOCIsIl9yZW5kZXI5IiwianVzdGlmeUNvbnRlbnQiLCJjZW50ZXJOb2RlIiwiX3JlbmRlcjAiLCJyaWdodE5vZGUiLCJfcmVuZGVyMSIsInRvSGF2ZUJlZW5DYWxsZWQiLCJfY2FsbGVlMiIsIl9yZW5kZXIxMCIsIl9jb250ZXh0MiIsImNlbnRlckJ1dHRvbiIsImZpcmVFdmVudCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJfY2FsbGVlMyIsIl9yZW5kZXIxMSIsIl9jb250ZXh0MyIsInRvb2xiYXIiLCJwcm9wcyIsIm1heEltYWdlV2lkdGgiLCJfcmVuZGVyMTIiLCJtYXhJbWFnZUhlaWdodCIsIl9yZW5kZXIxMyIsIm5vQWx0Tm9kZSIsInVuZGVmaW5lZCIsIl9yZW5kZXIxNCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHRlbnNpb25zL19fdGVzdHNfXy9jb21wb25lbnQudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgZmlyZUV2ZW50LCB3YWl0Rm9yIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgSW1hZ2VDb21wb25lbnQgZnJvbSAnLi4vY29tcG9uZW50JztcblxuamVzdC5tb2NrKCdAdGlwdGFwL3JlYWN0JywgKCkgPT4gKHtcbiAgTm9kZVZpZXdXcmFwcGVyOiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwibm9kZS12aWV3LXdyYXBwZXJcIj57Y2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uLy4uL2NvbXBvbmVudHMvaW1hZ2UvSW5zZXJ0SW1hZ2VIYW5kbGVyJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uLy4uL2NvbXBvbmVudHMvaW1hZ2UvSW1hZ2VUb29sYmFyJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHsgb25DaGFuZ2UsIGFsaWdubWVudCwgYWx0IH0pID0+IChcbiAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiaW1hZ2UtdG9vbGJhclwiPlxuICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZSh7IGFsaWdubWVudDogJ2NlbnRlcicgfSl9PkNlbnRlcjwvYnV0dG9uPlxuICAgICAgPHNwYW4+e2FsaWdubWVudH08L3NwYW4+XG4gICAgICA8c3Bhbj57YWx0fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9jdXN0b20tdG9vbGJhci13cmFwcGVyJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHsgY2hpbGRyZW4sIG9uRG9uZSB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cImN1c3RvbS10b29sYmFyLXdyYXBwZXJcIj5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxidXR0b24gb25DbGljaz17b25Eb25lfSBkYXRhLXRlc3RpZD1cImRvbmUtYnV0dG9uXCI+XG4gICAgICAgIERvbmVcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICApLFxufSkpO1xuXG5kZXNjcmliZSgnSW1hZ2VDb21wb25lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IG1vY2tFZGl0b3IgPSB7XG4gICAgY29tbWFuZHM6IHtcbiAgICAgIHVwZGF0ZUF0dHJpYnV0ZXM6IGplc3QuZm4oKSxcbiAgICAgIGZvY3VzOiBqZXN0LmZuKCksXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgc2VsZWN0aW9uOiB7XG4gICAgICAgIGZyb206IDAsXG4gICAgICAgIHRvOiAxLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG1vY2tOb2RlID0ge1xuICAgIGF0dHJzOiB7XG4gICAgICBzcmM6ICd0ZXN0LmpwZycsXG4gICAgICB3aWR0aDogMTAwLFxuICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICBwZXJjZW50OiAxMDAsXG4gICAgICBhbHQ6ICdUZXN0IGltYWdlJyxcbiAgICAgIGFsaWdubWVudDogJ2xlZnQnLFxuICAgICAgZGVsZXRlU3RhdHVzOiBudWxsLFxuICAgIH0sXG4gICAgbm9kZVNpemU6IDEsXG4gIH07XG5cbiAgY29uc3QgbW9ja09wdGlvbnMgPSB7XG4gICAgaW1hZ2VIYW5kbGluZzoge1xuICAgICAgaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQ6IGplc3QuZm4oKSxcbiAgICAgIG9uRG9uZTogamVzdC5mbigpLFxuICAgIH0sXG4gICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9uczogZmFsc2UsXG4gIH07XG5cbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIG5vZGU6IG1vY2tOb2RlLFxuICAgIGVkaXRvcjogbW9ja0VkaXRvcixcbiAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgb3B0aW9uczogbW9ja09wdGlvbnMsXG4gICAgYXR0cmlidXRlczoge30sXG4gICAgb25Gb2N1czogamVzdC5mbigpLFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgaW1hZ2Ugd2l0aCBjb3JyZWN0IHNyYycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3QgaW1nID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIGV4cGVjdChpbWcpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KGltZy5zcmMpLnRvQ29udGFpbigndGVzdC5qcGcnKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgaW1hZ2Ugd2l0aCBjb3JyZWN0IGRpbWVuc2lvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IGltZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICBleHBlY3QoaW1nLnN0eWxlLndpZHRoKS50b0JlKCcxMDBweCcpO1xuICAgIGV4cGVjdChpbWcuc3R5bGUuaGVpZ2h0KS50b0JlKCcxMDBweCcpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBpbWFnZSB3aXRoIGFsdCB0ZXh0JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBpbWcgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgZXhwZWN0KGltZy5hbHQpLnRvQmUoJ1Rlc3QgaW1hZ2UnKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHNob3cgdG9vbGJhciB3aGVuIG5vdCBzZWxlY3RlZCcsICgpID0+IHtcbiAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e2ZhbHNlfSAvPik7XG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ2ltYWdlLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyB0b29sYmFyIHdoZW4gc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ2ltYWdlLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgbG9hZGluZyBvcGFjaXR5IHdoZW4gaW1hZ2Ugbm90IGxvYWRlZCcsICgpID0+IHtcbiAgICBjb25zdCBub3RMb2FkZWROb2RlID0ge1xuICAgICAgLi4ubW9ja05vZGUsXG4gICAgICBhdHRyczoge1xuICAgICAgICAuLi5tb2NrTm9kZS5hdHRycyxcbiAgICAgICAgbG9hZGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e25vdExvYWRlZE5vZGV9IC8+KTtcbiAgICBjb25zdCByb290ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCJdID4gZGl2Jyk7XG4gICAgZXhwZWN0KHJvb3QpLnRvSGF2ZVN0eWxlKHsgb3BhY2l0eTogMC4zIH0pO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBwZW5kaW5nIGRlbGV0ZSBvcGFjaXR5JywgKCkgPT4ge1xuICAgIGNvbnN0IHBlbmRpbmdEZWxldGVOb2RlID0ge1xuICAgICAgLi4ubW9ja05vZGUsXG4gICAgICBhdHRyczoge1xuICAgICAgICAuLi5tb2NrTm9kZS5hdHRycyxcbiAgICAgICAgZGVsZXRlU3RhdHVzOiAncGVuZGluZycsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtwZW5kaW5nRGVsZXRlTm9kZX0gLz4pO1xuICAgIGNvbnN0IHJvb3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwibm9kZS12aWV3LXdyYXBwZXJcIl0gPiBkaXYnKTtcbiAgICBleHBlY3Qocm9vdCkudG9IYXZlU3R5bGUoeyBvcGFjaXR5OiAwLjMgfSk7XG4gIH0pO1xuXG4gIGl0KCdhbGlnbnMgaW1hZ2UgdG8gbGVmdCBieSBkZWZhdWx0JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCByb290ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCJdID4gZGl2Jyk7XG4gICAgZXhwZWN0KHJvb3QpLnRvSGF2ZVN0eWxlKHsganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FsaWducyBpbWFnZSB0byBjZW50ZXInLCAoKSA9PiB7XG4gICAgY29uc3QgY2VudGVyTm9kZSA9IHtcbiAgICAgIC4uLm1vY2tOb2RlLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgLi4ubW9ja05vZGUuYXR0cnMsXG4gICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtjZW50ZXJOb2RlfSAvPik7XG4gICAgY29uc3Qgcm9vdCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJub2RlLXZpZXctd3JhcHBlclwiXSA+IGRpdicpO1xuICAgIGV4cGVjdChyb290KS50b0hhdmVTdHlsZSh7IGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FsaWducyBpbWFnZSB0byByaWdodCcsICgpID0+IHtcbiAgICBjb25zdCByaWdodE5vZGUgPSB7XG4gICAgICAuLi5tb2NrTm9kZSxcbiAgICAgIGF0dHJzOiB7XG4gICAgICAgIC4uLm1vY2tOb2RlLmF0dHJzLFxuICAgICAgICBhbGlnbm1lbnQ6ICdyaWdodCcsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxJbWFnZUNvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtyaWdodE5vZGV9IC8+KTtcbiAgICBjb25zdCByb290ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCJdID4gZGl2Jyk7XG4gICAgZXhwZWN0KHJvb3QpLnRvSGF2ZVN0eWxlKHsganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBpbnNlcnRJbWFnZVJlcXVlc3RlZCBvbiBtb3VudCcsICgpID0+IHtcbiAgICByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QobW9ja09wdGlvbnMuaW1hZ2VIYW5kbGluZy5pbnNlcnRJbWFnZVJlcXVlc3RlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgndXBkYXRlcyBhdHRyaWJ1dGVzIHRocm91Z2ggdG9vbGJhciBvbkNoYW5nZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGNvbnN0IGNlbnRlckJ1dHRvbiA9IGdldEJ5VGVzdElkKCdpbWFnZS10b29sYmFyJykucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgICBmaXJlRXZlbnQuY2xpY2soY2VudGVyQnV0dG9uKTtcbiAgICB9KTtcblxuICAgIGV4cGVjdChtb2NrRWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdpbWFnZVVwbG9hZE5vZGUnLCB7IGFsaWdubWVudDogJ2NlbnRlcicgfSk7XG4gIH0pO1xuXG4gIGl0KCd0b29sYmFyIGlzIHNob3duIHdoZW4gc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHF1ZXJ5QnlUZXN0SWQgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIC8vIFdhaXQgZm9yIHRvb2xiYXIgdG8gcG90ZW50aWFsbHkgYXBwZWFyXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAvLyBUaGUgdG9vbGJhciBtaWdodCBub3QgYmUgdmlzaWJsZSBkdWUgdG8gbW9ja2luZyBidXQgY2hlY2sgaWYgY3VzdG9tLXRvb2xiYXItd3JhcHBlciBzaG93cyB1cFxuICAgICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJjdXN0b20tdG9vbGJhci13cmFwcGVyXCJdJyk7XG4gICAgICAvLyBJbiBhIHJlYWwgdGVzdCBlbnZpcm9ubWVudCwgdGhlIHRvb2xiYXIgd291bGQgYmUgdmlzaWJsZVxuICAgICAgLy8gRm9yIG5vdywganVzdCB2ZXJpZnkgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdpdGhvdXQgZXJyb3JzIHdoZW4gc2VsZWN0ZWRcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdyZXNwZWN0cyBtYXhJbWFnZVdpZHRoIHByb3AnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBtYXhJbWFnZVdpZHRoOiA1MDAsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEltYWdlQ29tcG9uZW50IHsuLi5wcm9wc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZXNwZWN0cyBtYXhJbWFnZUhlaWdodCBwcm9wJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbWF4SW1hZ2VIZWlnaHQ6IDgwMCxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgbWlzc2luZyBhbHQgYXR0cmlidXRlJywgKCkgPT4ge1xuICAgIGNvbnN0IG5vQWx0Tm9kZSA9IHtcbiAgICAgIC4uLm1vY2tOb2RlLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgLi4ubW9ja05vZGUuYXR0cnMsXG4gICAgICAgIGFsdDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8SW1hZ2VDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9BbHROb2RlfSAvPik7XG4gICAgY29uc3QgaW1nID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIGV4cGVjdChpbWcpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBDLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFB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
|