@pie-element/rubric 3.1.0-next.1 → 3.1.1-next.12
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/LICENSE.md +5 -0
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/index.js +1 -1
- package/configure/lib/main.js +1 -1
- package/controller/lib/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/main.js +1 -1
- package/lib/print.js +1 -1
- package/module/configure.js +230312 -0
- package/module/controller.js +46 -0
- package/module/element.js +8117 -10
- package/module/manifest.json +1 -1
- package/module/print.js +8116 -9
- package/package.json +2 -2
- package/controller/lib/__tests__/index.test.js +0 -89
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/rubric-view.test.js +0 -59
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/rubric",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1-next.12+d6e6b99aa",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
6
|
"description": "Rubric Scoring Interaction",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"author": "pie framework developers",
|
|
17
17
|
"license": "ISC",
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "d6e6b99aa4f47ea97a77e25492b6c4e0a5f4e9ad",
|
|
19
19
|
"scripts": {
|
|
20
20
|
"postpublish": "../../scripts/postpublish"
|
|
21
21
|
},
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
|
|
7
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
-
|
|
9
|
-
var _index = require("../index");
|
|
10
|
-
|
|
11
|
-
describe('rubric model', function () {
|
|
12
|
-
var state = {
|
|
13
|
-
points: ['nothing right', 'a teeny bit right', 'mostly right', 'bingo'],
|
|
14
|
-
sampleAnswers: [null, 'just right', 'not left', null],
|
|
15
|
-
maxPoints: 4,
|
|
16
|
-
excludeZero: false
|
|
17
|
-
};
|
|
18
|
-
var session = {};
|
|
19
|
-
var env, result;
|
|
20
|
-
it('returns no model for gather', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
21
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
22
|
-
while (1) {
|
|
23
|
-
switch (_context.prev = _context.next) {
|
|
24
|
-
case 0:
|
|
25
|
-
env = {
|
|
26
|
-
mode: 'gather'
|
|
27
|
-
};
|
|
28
|
-
_context.next = 3;
|
|
29
|
-
return (0, _index.model)(state, session, env);
|
|
30
|
-
|
|
31
|
-
case 3:
|
|
32
|
-
result = _context.sent;
|
|
33
|
-
expect(result).toEqual({});
|
|
34
|
-
|
|
35
|
-
case 5:
|
|
36
|
-
case "end":
|
|
37
|
-
return _context.stop();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}, _callee);
|
|
41
|
-
})));
|
|
42
|
-
it('returns no model for student role', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
43
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
44
|
-
while (1) {
|
|
45
|
-
switch (_context2.prev = _context2.next) {
|
|
46
|
-
case 0:
|
|
47
|
-
env = {
|
|
48
|
-
mode: 'gather',
|
|
49
|
-
role: 'student'
|
|
50
|
-
};
|
|
51
|
-
_context2.next = 3;
|
|
52
|
-
return (0, _index.model)(state, session, env);
|
|
53
|
-
|
|
54
|
-
case 3:
|
|
55
|
-
result = _context2.sent;
|
|
56
|
-
expect(result).toEqual({});
|
|
57
|
-
|
|
58
|
-
case 5:
|
|
59
|
-
case "end":
|
|
60
|
-
return _context2.stop();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, _callee2);
|
|
64
|
-
})));
|
|
65
|
-
it('returns model for instructor role', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
66
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
67
|
-
while (1) {
|
|
68
|
-
switch (_context3.prev = _context3.next) {
|
|
69
|
-
case 0:
|
|
70
|
-
env = {
|
|
71
|
-
mode: 'gather',
|
|
72
|
-
role: 'instructor'
|
|
73
|
-
};
|
|
74
|
-
_context3.next = 3;
|
|
75
|
-
return (0, _index.model)(state, session, env);
|
|
76
|
-
|
|
77
|
-
case 3:
|
|
78
|
-
result = _context3.sent;
|
|
79
|
-
expect(result).toEqual(state);
|
|
80
|
-
|
|
81
|
-
case 5:
|
|
82
|
-
case "end":
|
|
83
|
-
return _context3.stop();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}, _callee3);
|
|
87
|
-
})));
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInN0YXRlIiwicG9pbnRzIiwic2FtcGxlQW5zd2VycyIsIm1heFBvaW50cyIsImV4Y2x1ZGVaZXJvIiwic2Vzc2lvbiIsImVudiIsInJlc3VsdCIsIml0IiwibW9kZSIsImV4cGVjdCIsInRvRXF1YWwiLCJyb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUVBQSxRQUFRLENBQUMsY0FBRCxFQUFpQixZQUFNO0FBQzdCLE1BQUlDLEtBQUssR0FBRztBQUNWQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxlQUFELEVBQWtCLG1CQUFsQixFQUF1QyxjQUF2QyxFQUF1RCxPQUF2RCxDQURFO0FBRVZDLElBQUFBLGFBQWEsRUFBRSxDQUFDLElBQUQsRUFBTyxZQUFQLEVBQXFCLFVBQXJCLEVBQWlDLElBQWpDLENBRkw7QUFHVkMsSUFBQUEsU0FBUyxFQUFFLENBSEQ7QUFJVkMsSUFBQUEsV0FBVyxFQUFFO0FBSkgsR0FBWjtBQU9BLE1BQUlDLE9BQU8sR0FBRyxFQUFkO0FBQ0EsTUFBSUMsR0FBSixFQUFTQyxNQUFUO0FBRUFDLEVBQUFBLEVBQUUsQ0FBQyw2QkFBRCw2RkFBZ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNoQ0YsWUFBQUEsR0FBRyxHQUFHO0FBQUVHLGNBQUFBLElBQUksRUFBRTtBQUFSLGFBQU47QUFEZ0M7QUFBQSxtQkFFakIsa0JBQU1ULEtBQU4sRUFBYUssT0FBYixFQUFzQkMsR0FBdEIsQ0FGaUI7O0FBQUE7QUFFaENDLFlBQUFBLE1BRmdDO0FBR2hDRyxZQUFBQSxNQUFNLENBQUNILE1BQUQsQ0FBTixDQUFlSSxPQUFmLENBQXVCLEVBQXZCOztBQUhnQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFoQyxHQUFGO0FBTUFILEVBQUFBLEVBQUUsQ0FBQyxtQ0FBRCw2RkFBc0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUN0Q0YsWUFBQUEsR0FBRyxHQUFHO0FBQUVHLGNBQUFBLElBQUksRUFBRSxRQUFSO0FBQWtCRyxjQUFBQSxJQUFJLEVBQUU7QUFBeEIsYUFBTjtBQURzQztBQUFBLG1CQUV2QixrQkFBTVosS0FBTixFQUFhSyxPQUFiLEVBQXNCQyxHQUF0QixDQUZ1Qjs7QUFBQTtBQUV0Q0MsWUFBQUEsTUFGc0M7QUFHdENHLFlBQUFBLE1BQU0sQ0FBQ0gsTUFBRCxDQUFOLENBQWVJLE9BQWYsQ0FBdUIsRUFBdkI7O0FBSHNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQXRDLEdBQUY7QUFNQUgsRUFBQUEsRUFBRSxDQUFDLG1DQUFELDZGQUFzQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ3RDRixZQUFBQSxHQUFHLEdBQUc7QUFBRUcsY0FBQUEsSUFBSSxFQUFFLFFBQVI7QUFBa0JHLGNBQUFBLElBQUksRUFBRTtBQUF4QixhQUFOO0FBRHNDO0FBQUEsbUJBRXZCLGtCQUFNWixLQUFOLEVBQWFLLE9BQWIsRUFBc0JDLEdBQXRCLENBRnVCOztBQUFBO0FBRXRDQyxZQUFBQSxNQUZzQztBQUd0Q0csWUFBQUEsTUFBTSxDQUFDSCxNQUFELENBQU4sQ0FBZUksT0FBZixDQUF1QlgsS0FBdkI7O0FBSHNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQXRDLEdBQUY7QUFLRCxDQTVCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kZWwgfSBmcm9tICcuLi9pbmRleCc7XG5cbmRlc2NyaWJlKCdydWJyaWMgbW9kZWwnLCAoKSA9PiB7XG4gIGxldCBzdGF0ZSA9IHtcbiAgICBwb2ludHM6IFsnbm90aGluZyByaWdodCcsICdhIHRlZW55IGJpdCByaWdodCcsICdtb3N0bHkgcmlnaHQnLCAnYmluZ28nXSxcbiAgICBzYW1wbGVBbnN3ZXJzOiBbbnVsbCwgJ2p1c3QgcmlnaHQnLCAnbm90IGxlZnQnLCBudWxsXSxcbiAgICBtYXhQb2ludHM6IDQsXG4gICAgZXhjbHVkZVplcm86IGZhbHNlLFxuICB9O1xuXG4gIGxldCBzZXNzaW9uID0ge307XG4gIGxldCBlbnYsIHJlc3VsdDtcblxuICBpdCgncmV0dXJucyBubyBtb2RlbCBmb3IgZ2F0aGVyJywgYXN5bmMgKCkgPT4ge1xuICAgIGVudiA9IHsgbW9kZTogJ2dhdGhlcicgfTtcbiAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChzdGF0ZSwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgbm8gbW9kZWwgZm9yIHN0dWRlbnQgcm9sZScsIGFzeW5jICgpID0+IHtcbiAgICBlbnYgPSB7IG1vZGU6ICdnYXRoZXInLCByb2xlOiAnc3R1ZGVudCcgfTtcbiAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChzdGF0ZSwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgbW9kZWwgZm9yIGluc3RydWN0b3Igcm9sZScsIGFzeW5jICgpID0+IHtcbiAgICBlbnYgPSB7IG1vZGU6ICdnYXRoZXInLCByb2xlOiAnaW5zdHJ1Y3RvcicgfTtcbiAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChzdGF0ZSwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHN0YXRlKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
-
|
|
7
|
-
var _enzyme = require("enzyme");
|
|
8
|
-
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
var _main = _interopRequireDefault(require("../main"));
|
|
12
|
-
|
|
13
|
-
var _Link = _interopRequireDefault(require("@material-ui/core/Link"));
|
|
14
|
-
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
-
|
|
19
|
-
describe('rubric viewer', function () {
|
|
20
|
-
var wrapper = function wrapper(extras) {
|
|
21
|
-
var props = {
|
|
22
|
-
value: _objectSpread({
|
|
23
|
-
points: ['nothing right', 'a teeny bit right', 'mostly right', 'bingo'],
|
|
24
|
-
sampleAnswers: [null, 'just right', 'not left', null],
|
|
25
|
-
excludeZero: false
|
|
26
|
-
}, extras)
|
|
27
|
-
};
|
|
28
|
-
return (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_main["default"], props));
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
describe('snapshot', function () {
|
|
32
|
-
it('renders', function () {
|
|
33
|
-
var w = wrapper();
|
|
34
|
-
expect(w).toMatchSnapshot();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe('expanded snapshot', function () {
|
|
38
|
-
it('renders', function () {
|
|
39
|
-
var w = wrapper();
|
|
40
|
-
w.find(_Link["default"]).simulate('click');
|
|
41
|
-
expect(w).toMatchSnapshot();
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
describe('exclude zeros', function () {
|
|
45
|
-
it('renders correctly with exluded zeroes', function () {
|
|
46
|
-
var w = wrapper({
|
|
47
|
-
excludeZero: true
|
|
48
|
-
});
|
|
49
|
-
w.find(_Link["default"]).simulate('click');
|
|
50
|
-
expect(w.find('li').length).toEqual(5);
|
|
51
|
-
w = wrapper({
|
|
52
|
-
excludeZero: false
|
|
53
|
-
});
|
|
54
|
-
w.find(_Link["default"]).simulate('click');
|
|
55
|
-
expect(w.find('li').length).toEqual(6);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcnVicmljLXZpZXcudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJ3cmFwcGVyIiwiZXh0cmFzIiwicHJvcHMiLCJ2YWx1ZSIsInBvaW50cyIsInNhbXBsZUFuc3dlcnMiLCJleGNsdWRlWmVybyIsIml0IiwidyIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsImZpbmQiLCJMaW5rIiwic2ltdWxhdGUiLCJsZW5ndGgiLCJ0b0VxdWFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLFlBQU07QUFDOUIsTUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFZO0FBQzFCLFFBQU1DLEtBQUssR0FBRztBQUNaQyxNQUFBQSxLQUFLO0FBQ0hDLFFBQUFBLE1BQU0sRUFBRSxDQUFDLGVBQUQsRUFBa0IsbUJBQWxCLEVBQXVDLGNBQXZDLEVBQXVELE9BQXZELENBREw7QUFFSEMsUUFBQUEsYUFBYSxFQUFFLENBQUMsSUFBRCxFQUFPLFlBQVAsRUFBcUIsVUFBckIsRUFBaUMsSUFBakMsQ0FGWjtBQUdIQyxRQUFBQSxXQUFXLEVBQUU7QUFIVixTQUlBTCxNQUpBO0FBRE8sS0FBZDtBQVNBLFdBQU8saUNBQU0sZ0NBQUMsZ0JBQUQsRUFBWUMsS0FBWixDQUFOLENBQVA7QUFDRCxHQVhEOztBQWFBSCxFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekJRLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUNsQixVQUFNQyxDQUFDLEdBQUdSLE9BQU8sRUFBakI7QUFDQVMsTUFBQUEsTUFBTSxDQUFDRCxDQUFELENBQU4sQ0FBVUUsZUFBVjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBTE8sQ0FBUjtBQU9BWCxFQUFBQSxRQUFRLENBQUMsbUJBQUQsRUFBc0IsWUFBTTtBQUNsQ1EsSUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCLFVBQU1DLENBQUMsR0FBR1IsT0FBTyxFQUFqQjtBQUNBUSxNQUFBQSxDQUFDLENBQUNHLElBQUYsQ0FBT0MsZ0JBQVAsRUFBYUMsUUFBYixDQUFzQixPQUF0QjtBQUNBSixNQUFBQSxNQUFNLENBQUNELENBQUQsQ0FBTixDQUFVRSxlQUFWO0FBQ0QsS0FKQyxDQUFGO0FBS0QsR0FOTyxDQUFSO0FBUUFYLEVBQUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLFlBQU07QUFDOUJRLElBQUFBLEVBQUUsQ0FBQyx1Q0FBRCxFQUEwQyxZQUFNO0FBQ2hELFVBQUlDLENBQUMsR0FBR1IsT0FBTyxDQUFDO0FBQUVNLFFBQUFBLFdBQVcsRUFBRTtBQUFmLE9BQUQsQ0FBZjtBQUNBRSxNQUFBQSxDQUFDLENBQUNHLElBQUYsQ0FBT0MsZ0JBQVAsRUFBYUMsUUFBYixDQUFzQixPQUF0QjtBQUNBSixNQUFBQSxNQUFNLENBQUNELENBQUMsQ0FBQ0csSUFBRixDQUFPLElBQVAsRUFBYUcsTUFBZCxDQUFOLENBQTRCQyxPQUE1QixDQUFvQyxDQUFwQztBQUVBUCxNQUFBQSxDQUFDLEdBQUdSLE9BQU8sQ0FBQztBQUFFTSxRQUFBQSxXQUFXLEVBQUU7QUFBZixPQUFELENBQVg7QUFDQUUsTUFBQUEsQ0FBQyxDQUFDRyxJQUFGLENBQU9DLGdCQUFQLEVBQWFDLFFBQWIsQ0FBc0IsT0FBdEI7QUFDQUosTUFBQUEsTUFBTSxDQUFDRCxDQUFDLENBQUNHLElBQUYsQ0FBTyxJQUFQLEVBQWFHLE1BQWQsQ0FBTixDQUE0QkMsT0FBNUIsQ0FBb0MsQ0FBcEM7QUFDRCxLQVJDLENBQUY7QUFTRCxHQVZPLENBQVI7QUFXRCxDQXhDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdywgbW91bnQgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSdWJyaWMgZnJvbSAnLi4vbWFpbic7XG5pbXBvcnQgTGluayBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9MaW5rJztcblxuZGVzY3JpYmUoJ3J1YnJpYyB2aWV3ZXInLCAoKSA9PiB7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICBwb2ludHM6IFsnbm90aGluZyByaWdodCcsICdhIHRlZW55IGJpdCByaWdodCcsICdtb3N0bHkgcmlnaHQnLCAnYmluZ28nXSxcbiAgICAgICAgc2FtcGxlQW5zd2VyczogW251bGwsICdqdXN0IHJpZ2h0JywgJ25vdCBsZWZ0JywgbnVsbF0sXG4gICAgICAgIGV4Y2x1ZGVaZXJvOiBmYWxzZSxcbiAgICAgICAgLi4uZXh0cmFzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG1vdW50KDxSdWJyaWMgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHdyYXBwZXIoKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2V4cGFuZGVkIHNuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHdyYXBwZXIoKTtcbiAgICAgIHcuZmluZChMaW5rKS5zaW11bGF0ZSgnY2xpY2snKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2V4Y2x1ZGUgemVyb3MnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZXhsdWRlZCB6ZXJvZXMnLCAoKSA9PiB7XG4gICAgICBsZXQgdyA9IHdyYXBwZXIoeyBleGNsdWRlWmVybzogdHJ1ZSB9KTtcbiAgICAgIHcuZmluZChMaW5rKS5zaW11bGF0ZSgnY2xpY2snKTtcbiAgICAgIGV4cGVjdCh3LmZpbmQoJ2xpJykubGVuZ3RoKS50b0VxdWFsKDUpO1xuXG4gICAgICB3ID0gd3JhcHBlcih7IGV4Y2x1ZGVaZXJvOiBmYWxzZSB9KTtcbiAgICAgIHcuZmluZChMaW5rKS5zaW11bGF0ZSgnY2xpY2snKTtcbiAgICAgIGV4cGVjdCh3LmZpbmQoJ2xpJykubGVuZ3RoKS50b0VxdWFsKDYpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|