react-elmish 10.2.0 → 10.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getChainedUpdateFn = getChainedUpdateFn;
8
+ var _getUpdateFn = require("./getUpdateFn");
9
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
10
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
11
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
12
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
14
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
15
+ 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; }
16
+ 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) { _defineProperty(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; }
17
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
19
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
21
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
24
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
26
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
28
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
29
+ function getChainedUpdateFn(updateMap) {
30
+ return /*#__PURE__*/function () {
31
+ var _chainedUpdateFn = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(msg, model, props, optionsTemplate) {
32
+ var messages, currentModel, totalUpdatedModel, updatedAndExecFn, currentMessages, _iterator, _step, nextMsg, _yield$updatedAndExec, _yield$updatedAndExec2, updatedModel, newMessages, _t;
33
+ return _regenerator().w(function (_context) {
34
+ while (1) switch (_context.p = _context.n) {
35
+ case 0:
36
+ messages = [msg];
37
+ currentModel = model;
38
+ totalUpdatedModel = {};
39
+ updatedAndExecFn = (0, _getUpdateFn.getUpdateAndExecCmdFn)(updateMap);
40
+ case 1:
41
+ if (!(messages.length > 0)) {
42
+ _context.n = 10;
43
+ break;
44
+ }
45
+ currentMessages = [];
46
+ _iterator = _createForOfIteratorHelper(messages);
47
+ _context.p = 2;
48
+ _iterator.s();
49
+ case 3:
50
+ if ((_step = _iterator.n()).done) {
51
+ _context.n = 6;
52
+ break;
53
+ }
54
+ nextMsg = _step.value;
55
+ _context.n = 4;
56
+ return updatedAndExecFn(nextMsg, currentModel, props, optionsTemplate);
57
+ case 4:
58
+ _yield$updatedAndExec = _context.v;
59
+ _yield$updatedAndExec2 = _slicedToArray(_yield$updatedAndExec, 2);
60
+ updatedModel = _yield$updatedAndExec2[0];
61
+ newMessages = _yield$updatedAndExec2[1];
62
+ currentModel = _objectSpread(_objectSpread({}, currentModel), updatedModel);
63
+ totalUpdatedModel = _objectSpread(_objectSpread({}, totalUpdatedModel), updatedModel);
64
+ currentMessages.push.apply(currentMessages, _toConsumableArray(newMessages));
65
+ case 5:
66
+ _context.n = 3;
67
+ break;
68
+ case 6:
69
+ _context.n = 8;
70
+ break;
71
+ case 7:
72
+ _context.p = 7;
73
+ _t = _context.v;
74
+ _iterator.e(_t);
75
+ case 8:
76
+ _context.p = 8;
77
+ _iterator.f();
78
+ return _context.f(8);
79
+ case 9:
80
+ messages = currentMessages.filter(function (message) {
81
+ return message != null;
82
+ });
83
+ _context.n = 1;
84
+ break;
85
+ case 10:
86
+ return _context.a(2, totalUpdatedModel);
87
+ }
88
+ }, _callee, null, [[2, 7, 8, 9]]);
89
+ }));
90
+ function chainedUpdateFn(_x, _x2, _x3, _x4) {
91
+ return _chainedUpdateFn.apply(this, arguments);
92
+ }
93
+ return chainedUpdateFn;
94
+ }();
95
+ }
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0VXBkYXRlRm4iLCJyZXF1aXJlIiwiX3JlZ2VuZXJhdG9yIiwiZSIsInQiLCJyIiwiU3ltYm9sIiwibiIsIml0ZXJhdG9yIiwibyIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibGVuZ3RoIiwibCIsIlR5cGVFcnJvciIsImNhbGwiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJkZWZpbmVQcm9wZXJ0eSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJuZXh0IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJzIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiZ2V0Q2hhaW5lZFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwiX2NoYWluZWRVcGRhdGVGbiIsIl9jYWxsZWUiLCJtc2ciLCJtb2RlbCIsInByb3BzIiwib3B0aW9uc1RlbXBsYXRlIiwibWVzc2FnZXMiLCJjdXJyZW50TW9kZWwiLCJ0b3RhbFVwZGF0ZWRNb2RlbCIsInVwZGF0ZWRBbmRFeGVjRm4iLCJjdXJyZW50TWVzc2FnZXMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIm5leHRNc2ciLCJfeWllbGQkdXBkYXRlZEFuZEV4ZWMiLCJfeWllbGQkdXBkYXRlZEFuZEV4ZWMyIiwidXBkYXRlZE1vZGVsIiwibmV3TWVzc2FnZXMiLCJfdCIsIl9jb250ZXh0IiwiZ2V0VXBkYXRlQW5kRXhlY0NtZEZuIiwibWVzc2FnZSIsImNoYWluZWRVcGRhdGVGbiIsIl94IiwiX3gyIiwiX3gzIiwiX3g0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltbXV0YWJsZS90ZXN0aW5nL2dldENoYWluZWRVcGRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbW11dGFibGUgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSwgTnVsbGFibGUgfSBmcm9tIFwiLi4vLi4vVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi4vVHlwZXNcIjtcbmltcG9ydCB7IGdldFVwZGF0ZUFuZEV4ZWNDbWRGbiB9IGZyb20gXCIuL2dldFVwZGF0ZUZuXCI7XG5cbmZ1bmN0aW9uIGdldENoYWluZWRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+PixcbikgPT4gUHJvbWlzZTxQYXJ0aWFsPFRNb2RlbD4+IHtcblx0cmV0dXJuIGFzeW5jIGZ1bmN0aW9uIGNoYWluZWRVcGRhdGVGbihtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTogUHJvbWlzZTxQYXJ0aWFsPFRNb2RlbD4+IHtcblx0XHRsZXQgbWVzc2FnZXM6IFRNZXNzYWdlW10gPSBbbXNnXTtcblx0XHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cdFx0bGV0IHRvdGFsVXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRcdGNvbnN0IHVwZGF0ZWRBbmRFeGVjRm4gPSBnZXRVcGRhdGVBbmRFeGVjQ21kRm4odXBkYXRlTWFwKTtcblxuXHRcdHdoaWxlIChtZXNzYWdlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50TWVzc2FnZXM6IE51bGxhYmxlPFRNZXNzYWdlPltdID0gW107XG5cblx0XHRcdGZvciAoY29uc3QgbmV4dE1zZyBvZiBtZXNzYWdlcykge1xuXHRcdFx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9udXJzZXJ5L25vQXdhaXRJbkxvb3A6IFdlIG5lZWQgdG8gYXdhaXQgZWFjaCB1cGRhdGUgc2VxdWVudGlhbGx5XG5cdFx0XHRcdGNvbnN0IFt1cGRhdGVkTW9kZWwsIG5ld01lc3NhZ2VzXSA9IGF3YWl0IHVwZGF0ZWRBbmRFeGVjRm4obmV4dE1zZywgY3VycmVudE1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTtcblxuXHRcdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4udXBkYXRlZE1vZGVsIH07XG5cdFx0XHRcdHRvdGFsVXBkYXRlZE1vZGVsID0geyAuLi50b3RhbFVwZGF0ZWRNb2RlbCwgLi4udXBkYXRlZE1vZGVsIH07XG5cblx0XHRcdFx0Y3VycmVudE1lc3NhZ2VzLnB1c2goLi4ubmV3TWVzc2FnZXMpO1xuXHRcdFx0fVxuXG5cdFx0XHRtZXNzYWdlcyA9IGN1cnJlbnRNZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UgIT0gbnVsbCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRvdGFsVXBkYXRlZE1vZGVsO1xuXHR9O1xufVxuXG5leHBvcnQgeyBnZXRDaGFpbmVkVXBkYXRlRm4gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUFzRCxTQUFBQyxhQUFBLElBRnRELHVLQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssV0FBQSw4QkFBQUMsRUFBQU4sQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFMLENBQUEsSUFBQUEsQ0FBQSxDQUFBTSxTQUFBLFlBQUFDLFNBQUEsR0FBQVAsQ0FBQSxHQUFBTyxTQUFBLEVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUFMLENBQUEsQ0FBQUMsU0FBQSxVQUFBSyxtQkFBQSxDQUFBSCxDQUFBLHVCQUFBVixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBRSxD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
@@ -0,0 +1 @@
1
+ export {};
@@ -13,7 +13,7 @@ var _createDefer5 = require("../createDefer");
13
13
  var _useElmish = require("../useElmish");
14
14
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15
15
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
16
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
16
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
17
17
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
18
18
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
19
19
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
@@ -159,4 +159,4 @@ function getDiffFromPatches(patches, model) {
159
159
  }
160
160
  return diff;
161
161
  }
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3Rlc3RpbmciLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXI1IiwiX3VzZUVsbWlzaCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9yZWdlbmVyYXRvciIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwicCIsInkiLCJHIiwidiIsImQiLCJiaW5kIiwibCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX2ludm9rZSIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImVuYWJsZVBhdGNoZXMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIiwibXNnIiwibW9kZWwiLCJwcm9wcyIsIm9wdGlvbnNUZW1wbGF0ZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwib3B0aW9ucyIsImNvbW1hbmRzIiwicmVjb3JkZWRQYXRjaGVzIiwidXBkYXRlZE1vZGVsIiwicHJvZHVjZSIsImRyYWZ0IiwiY2FsbFVwZGF0ZU1hcCIsInBhdGNoZXMiLCJkZWZlcnJlZENvbW1hbmRzIiwiZGlmZiIsImdldERpZmZGcm9tUGF0Y2hlcyIsImNvbmNhdCIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NyZWF0ZURlZmVyMyIsIl9jcmVhdGVEZWZlcjQiLCJtZXNzYWdlcyIsIl9jb250ZXh0IiwiZXhlY0NtZCIsInVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl94IiwiX3gyIiwiX3gzIiwiX3g0IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJwYXRjaCIsInBhdGgiLCJvcCIsImVyciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbW11dGFibGUvdGVzdGluZy9nZXRVcGRhdGVGbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmFibGVQYXRjaGVzLCBwcm9kdWNlLCB0eXBlIERyYWZ0LCB0eXBlIEltbXV0YWJsZSwgdHlwZSBQYXRjaCB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHsgZXhlY0NtZCB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgTWVzc2FnZSwgTnVsbGFibGUgfSBmcm9tIFwiLi4vLi4vVHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4uL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsIFVwZGF0ZU1hcCB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcblxuZW5hYmxlUGF0Y2hlcygpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAuXG4gKiBAcGFyYW0gdXBkYXRlTWFwIFRoZSBVcGRhdGVNYXAuXG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlZCB1cGRhdGUgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdXBkYXRlRm4gPSBnZXRVcGRhdGVGbih1cGRhdGUpO1xuICpcbiAqIC8vIGluIHlvdXIgdGVzdHM6XG4gKiBjb25zdCBbbW9kZWwsIGNtZF0gPSB1cGRhdGVGbiguLi5hcmdzKTtcbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG4pID0+IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXSB7XG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVGbihtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTogW1BhcnRpYWw8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dIHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobXNnLCBtb2RlbCwgcHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0XHQuLi5vcHRpb25zVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXHRcdGNvbnN0IHJlY29yZGVkUGF0Y2hlczogUGF0Y2hbXSA9IFtdO1xuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0XHRtb2RlbCxcblx0XHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdFx0fSxcblx0XHRcdChwYXRjaGVzKSA9PiB7XG5cdFx0XHRcdHJlY29yZGVkUGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgZGlmZiA9IGdldERpZmZGcm9tUGF0Y2hlcyhyZWNvcmRlZFBhdGNoZXMsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRyZXR1cm4gW2RpZmYsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzXTtcblx0fTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwIHdoaWNoIGltbWVkaWF0ZWx5IGV4ZWN1dGVzIHRoZSBjb21tYW5kLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUFuZEV4ZWNDbWQgPSBnZXRVcGRhdGVBbmRFeGVjQ21kRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3Q6XG4gKiBjb25zdCBbbW9kZWwsIG1lc3NhZ2VzXSA9IGF3YWl0IHVwZGF0ZUFuZEV4ZWNDbWQoLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUFuZEV4ZWNDbWRGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+PixcbikgPT4gUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0cmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFuZEV4ZWNDbWRGbihtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTogUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobXNnLCBtb2RlbCwgcHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0XHQuLi5vcHRpb25zVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXHRcdGNvbnN0IHJlY29yZGVkUGF0Y2hlczogUGF0Y2hbXSA9IFtdO1xuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0XHRtb2RlbCxcblx0XHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdFx0fSxcblx0XHRcdChwYXRjaGVzKSA9PiB7XG5cdFx0XHRcdHJlY29yZGVkUGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgZGlmZiA9IGdldERpZmZGcm9tUGF0Y2hlcyhyZWNvcmRlZFBhdGNoZXMsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRjb25zdCBtZXNzYWdlcyA9IGF3YWl0IGV4ZWNDbWQoLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIFtkaWZmLCBtZXNzYWdlc107XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldERpZmZGcm9tUGF0Y2hlczxUTW9kZWw+KHBhdGNoZXM6IFBhdGNoW10sIG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPik6IFBhcnRpYWw8VE1vZGVsPiB7XG5cdGNvbnN0IGRpZmY6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudCAqL1xuXHQvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgKi9cblx0Zm9yIChjb25zdCBwYXRjaCBvZiBwYXRjaGVzKSB7XG5cdFx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvbm9Ob25OdWxsQXNzZXJ0aW9uOiBUaGUgcGF0aCBpcyBhbHdheXMgZGVmaW5lZFxuXHRcdGNvbnN0IHBhdGggPSBwYXRjaC5wYXRoWzBdITtcblxuXHRcdHN3aXRjaCAocGF0Y2gub3ApIHtcblx0XHRcdGNhc2UgXCJyZXBsYWNlXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkaWZmW3BhdGhdID0gbW9kZWxbcGF0aF07XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwiYWRkXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkaWZmW3BhdGhdID0gbW9kZWxbcGF0aF07XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwicmVtb3ZlXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkZWxldGUgZGlmZltwYXRoXTtcblxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgKi9cblx0LyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQgKi9cblxuXHRyZXR1cm4gZGlmZjtcbn1cblxuZXhwb3J0IHsgZ2V0VXBkYXRlQW5kRXhlY0NtZEZuLCBnZXRVcGRhdGVGbiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUE2QyxTQUFBSywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUFRLE1BQUEsSUFBQU4sQ0FBQSxLQUFBRixDQUFBLEdBQUFFLENBQUEsT0FBQU8sRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUFULENBQUEsQ0FBQVEsTUFBQSxLQUFBSyxJQUFBLFdBQUFBLElBQUEsTUFBQUMsS0FBQSxFQUFBZCxDQUFBLENBQUFTLEVBQUEsVUFBQVIsQ0FBQSxXQUFBQSxFQUFBRCxDQUFBLFVBQUFBLENBQUEsS0FBQWUsQ0FBQSxFQUFBTCxDQUFBLGdCQUFBTSxTQUFBLGlKQUFBQyxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxn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Q0FBQTFELGtCQUFBLENBQUt1RCxnQkFBZ0IsR0FBQztVQUFBO1lBQTFEUyxRQUFRLEdBQUFDLFFBQUEsQ0FBQTVGLENBQUE7WUFBQSxPQUFBNEYsUUFBQSxDQUFBNUcsQ0FBQSxJQUVQLENBQUNtRyxJQUFJLEVBQUVRLFFBQVEsQ0FBQztRQUFBO01BQUEsR0FBQUgsT0FBQTtJQUFBLENBQ3ZCO0lBQUEsU0E1QnFCTSxrQkFBa0JBLENBQUFDLEVBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7TUFBQSxPQUFBWCxtQkFBQSxDQUFBL0QsS0FBQSxPQUFBRCxTQUFBO0lBQUE7SUFBQSxPQUFsQnVFLGtCQUFrQjtFQUFBO0FBNkJ6QztBQUVBLFNBQVNWLGtCQUFrQkEsQ0FBU0gsT0FBZ0IsRUFBRWpCLEtBQXdCLEVBQW1CO0VBQ2hHLElBQU1tQixJQUFxQixHQUFHLENBQUMsQ0FBQzs7RUFFaEM7RUFDQTtFQUFBLElBQUFnQixTQUFBLEdBQUF0SSwwQkFBQSxDQUNvQm9ILE9BQU87SUFBQW1CLEtBQUE7RUFBQTtJQUEzQixLQUFBRCxTQUFBLENBQUExSCxDQUFBLE1BQUEySCxLQUFBLEdBQUFELFNBQUEsQ0FBQXpILENBQUEsSUFBQUMsSUFBQSxHQUE2QjtNQUFBLElBQWxCMEgsS0FBSyxHQUFBRCxLQUFBLENBQUF4SCxLQUFBO01BQ2Y7TUFDQSxJQUFNMEgsSUFBSSxHQUFHRCxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUU7TUFFM0IsUUFBUUQsS0FBSyxDQUFDRSxFQUFFO1FBQ2YsS0FBSyxTQUFTO1VBQUU7WUFDZjtZQUNBcEIsSUFBSSxDQUFDbUIsSUFBSSxDQUFDLEdBQUd0QyxLQUFLLENBQUNzQyxJQUFJLENBQUM7WUFFeEI7VUFDRDtRQUNBLEtBQUssS0FBSztVQUFFO1lBQ1g7WUFDQW5CLElBQUksQ0FBQ21CLElBQUksQ0FBQyxHQUFHdEMsS0FBSyxDQUFDc0MsSUFBSSxDQUFDO1lBRXhCO1VBQ0Q7UUFDQSxLQUFLLFFBQVE7VUFBRTtZQUNkO1lBQ0EsT0FBT25CLElBQUksQ0FBQ21CLElBQUksQ0FBQztZQUVqQjtVQUNEO01BQ0Q7SUFDRDtJQUNBO0lBQ0E7RUFBQSxTQUFBRSxHQUFBO0lBQUFMLFNBQUEsQ0FBQXBJLENBQUEsQ0FBQXlJLEdBQUE7RUFBQTtJQUFBTCxTQUFBLENBQUF0SCxDQUFBO0VBQUE7RUFFQSxPQUFPc0csSUFBSTtBQUNaIiwiaWdub3JlTGlzdCI6W119
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3Rlc3RpbmciLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXI1IiwiX3VzZUVsbWlzaCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9yZWdlbmVyYXRvciIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwicCIsInkiLCJHIiwidiIsImQiLCJiaW5kIiwibCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImVuYWJsZVBhdGNoZXMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIiwibXNnIiwibW9kZWwiLCJwcm9wcyIsIm9wdGlvbnNUZW1wbGF0ZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwib3B0aW9ucyIsImNvbW1hbmRzIiwicmVjb3JkZWRQYXRjaGVzIiwidXBkYXRlZE1vZGVsIiwicHJvZHVjZSIsImRyYWZ0IiwiY2FsbFVwZGF0ZU1hcCIsInBhdGNoZXMiLCJkZWZlcnJlZENvbW1hbmRzIiwiZGlmZiIsImdldERpZmZGcm9tUGF0Y2hlcyIsImNvbmNhdCIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NyZWF0ZURlZmVyMyIsIl9jcmVhdGVEZWZlcjQiLCJtZXNzYWdlcyIsIl9jb250ZXh0IiwiZXhlY0NtZCIsInVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl94IiwiX3gyIiwiX3gzIiwiX3g0IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJwYXRjaCIsInBhdGgiLCJvcCIsImVyciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbW11dGFibGUvdGVzdGluZy9nZXRVcGRhdGVGbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERyYWZ0LCBlbmFibGVQYXRjaGVzLCB0eXBlIEltbXV0YWJsZSwgdHlwZSBQYXRjaCwgcHJvZHVjZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIE1lc3NhZ2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uLy4uL1R5cGVzXCI7XG5pbXBvcnQgeyBleGVjQ21kIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4uL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsIFVwZGF0ZU1hcCB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcblxuZW5hYmxlUGF0Y2hlcygpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAuXG4gKiBAcGFyYW0gdXBkYXRlTWFwIFRoZSBVcGRhdGVNYXAuXG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlZCB1cGRhdGUgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdXBkYXRlRm4gPSBnZXRVcGRhdGVGbih1cGRhdGUpO1xuICpcbiAqIC8vIGluIHlvdXIgdGVzdHM6XG4gKiBjb25zdCBbbW9kZWwsIGNtZF0gPSB1cGRhdGVGbiguLi5hcmdzKTtcbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG4pID0+IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXSB7XG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVGbihtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTogW1BhcnRpYWw8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dIHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobXNnLCBtb2RlbCwgcHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0XHQuLi5vcHRpb25zVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXHRcdGNvbnN0IHJlY29yZGVkUGF0Y2hlczogUGF0Y2hbXSA9IFtdO1xuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0XHRtb2RlbCxcblx0XHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdFx0fSxcblx0XHRcdChwYXRjaGVzKSA9PiB7XG5cdFx0XHRcdHJlY29yZGVkUGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgZGlmZiA9IGdldERpZmZGcm9tUGF0Y2hlcyhyZWNvcmRlZFBhdGNoZXMsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRyZXR1cm4gW2RpZmYsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzXTtcblx0fTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwIHdoaWNoIGltbWVkaWF0ZWx5IGV4ZWN1dGVzIHRoZSBjb21tYW5kLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUFuZEV4ZWNDbWQgPSBnZXRVcGRhdGVBbmRFeGVjQ21kRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3Q6XG4gKiBjb25zdCBbbW9kZWwsIG1lc3NhZ2VzXSA9IGF3YWl0IHVwZGF0ZUFuZEV4ZWNDbWQoLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUFuZEV4ZWNDbWRGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+PixcbikgPT4gUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0cmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFuZEV4ZWNDbWRGbihtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlKTogUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobXNnLCBtb2RlbCwgcHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0XHQuLi5vcHRpb25zVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXHRcdGNvbnN0IHJlY29yZGVkUGF0Y2hlczogUGF0Y2hbXSA9IFtdO1xuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0XHRtb2RlbCxcblx0XHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdFx0fSxcblx0XHRcdChwYXRjaGVzKSA9PiB7XG5cdFx0XHRcdHJlY29yZGVkUGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgZGlmZiA9IGdldERpZmZGcm9tUGF0Y2hlcyhyZWNvcmRlZFBhdGNoZXMsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRjb25zdCBtZXNzYWdlcyA9IGF3YWl0IGV4ZWNDbWQoLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIFtkaWZmLCBtZXNzYWdlc107XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldERpZmZGcm9tUGF0Y2hlczxUTW9kZWw+KHBhdGNoZXM6IFBhdGNoW10sIG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPik6IFBhcnRpYWw8VE1vZGVsPiB7XG5cdGNvbnN0IGRpZmY6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudCAqL1xuXHQvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgKi9cblx0Zm9yIChjb25zdCBwYXRjaCBvZiBwYXRjaGVzKSB7XG5cdFx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvbm9Ob25OdWxsQXNzZXJ0aW9uOiBUaGUgcGF0aCBpcyBhbHdheXMgZGVmaW5lZFxuXHRcdGNvbnN0IHBhdGggPSBwYXRjaC5wYXRoWzBdITtcblxuXHRcdHN3aXRjaCAocGF0Y2gub3ApIHtcblx0XHRcdGNhc2UgXCJyZXBsYWNlXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkaWZmW3BhdGhdID0gbW9kZWxbcGF0aF07XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwiYWRkXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkaWZmW3BhdGhdID0gbW9kZWxbcGF0aF07XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwicmVtb3ZlXCI6IHtcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRkZWxldGUgZGlmZltwYXRoXTtcblxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgKi9cblx0LyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQgKi9cblxuXHRyZXR1cm4gZGlmZjtcbn1cblxuZXhwb3J0IHsgZ2V0VXBkYXRlQW5kRXhlY0NtZEZuLCBnZXRVcGRhdGVGbiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUE2QyxTQUFBSywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUFRLE1BQUEsSUFBQU4sQ0FBQSxLQUFBRixDQUFBLEdBQUFFLENBQUEsT0FBQU8sRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUFULENBQUEsQ0FBQVEsTUFBQSxLQUFBSyxJQUFBLFdBQUFBLElBQUEsTUFBQUMsS0FBQSxFQUFBZCxDQUFBLENBQUFTLEVBQUEsVUFBQVIsQ0FBQSxXQUFBQSxFQUFBRCxDQUFBLFVBQUFBLENBQUEsS0FBQWUsQ0FBQSxFQUFBTCxDQUFBLGdCQUFBTSxTQUFBLGlKQUFBQyxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxn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LENBQUt1RCxnQkFBZ0IsR0FBQztVQUFBO1lBQTFEUyxRQUFRLEdBQUFDLFFBQUEsQ0FBQTVGLENBQUE7WUFBQSxPQUFBNEYsUUFBQSxDQUFBNUcsQ0FBQSxJQUVQLENBQUNtRyxJQUFJLEVBQUVRLFFBQVEsQ0FBQztRQUFBO01BQUEsR0FBQUgsT0FBQTtJQUFBLENBQ3ZCO0lBQUEsU0E1QnFCTSxrQkFBa0JBLENBQUFDLEVBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7TUFBQSxPQUFBWCxtQkFBQSxDQUFBL0QsS0FBQSxPQUFBRCxTQUFBO0lBQUE7SUFBQSxPQUFsQnVFLGtCQUFrQjtFQUFBO0FBNkJ6QztBQUVBLFNBQVNWLGtCQUFrQkEsQ0FBU0gsT0FBZ0IsRUFBRWpCLEtBQXdCLEVBQW1CO0VBQ2hHLElBQU1tQixJQUFxQixHQUFHLENBQUMsQ0FBQzs7RUFFaEM7RUFDQTtFQUFBLElBQUFnQixTQUFBLEdBQUF0SSwwQkFBQSxDQUNvQm9ILE9BQU87SUFBQW1CLEtBQUE7RUFBQTtJQUEzQixLQUFBRCxTQUFBLENBQUExSCxDQUFBLE1BQUEySCxLQUFBLEdBQUFELFNBQUEsQ0FBQXpILENBQUEsSUFBQUMsSUFBQSxHQUE2QjtNQUFBLElBQWxCMEgsS0FBSyxHQUFBRCxLQUFBLENBQUF4SCxLQUFBO01BQ2Y7TUFDQSxJQUFNMEgsSUFBSSxHQUFHRCxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUU7TUFFM0IsUUFBUUQsS0FBSyxDQUFDRSxFQUFFO1FBQ2YsS0FBSyxTQUFTO1VBQUU7WUFDZjtZQUNBcEIsSUFBSSxDQUFDbUIsSUFBSSxDQUFDLEdBQUd0QyxLQUFLLENBQUNzQyxJQUFJLENBQUM7WUFFeEI7VUFDRDtRQUNBLEtBQUssS0FBSztVQUFFO1lBQ1g7WUFDQW5CLElBQUksQ0FBQ21CLElBQUksQ0FBQyxHQUFHdEMsS0FBSyxDQUFDc0MsSUFBSSxDQUFDO1lBRXhCO1VBQ0Q7UUFDQSxLQUFLLFFBQVE7VUFBRTtZQUNkO1lBQ0EsT0FBT25CLElBQUksQ0FBQ21CLElBQUksQ0FBQztZQUVqQjtVQUNEO01BQ0Q7SUFDRDtJQUNBO0lBQ0E7RUFBQSxTQUFBRSxHQUFBO0lBQUFMLFNBQUEsQ0FBQXBJLENBQUEsQ0FBQXlJLEdBQUE7RUFBQTtJQUFBTCxTQUFBLENBQUF0SCxDQUFBO0VBQUE7RUFFQSxPQUFPc0csSUFBSTtBQUNaIiwiaWdub3JlTGlzdCI6W119
@@ -1,5 +1,5 @@
1
1
  import { type Draft, type Immutable } from "immer";
2
- import { type Dispatch, type InitFunction, type Message } from "../Types";
2
+ import type { Dispatch, InitFunction, Message } from "../Types";
3
3
  import type { Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
4
4
  /**
5
5
  * Options for the `useElmish` hook.
@@ -10,11 +10,8 @@ var _react = require("react");
10
10
  var _Common = require("../Common");
11
11
  var _fakeOptions = require("../fakeOptions");
12
12
  var _Init = require("../Init");
13
- var _reduxDevTools = require("../reduxDevTools");
14
- var _Types = require("../Types");
15
13
  var _createCallBase = require("./createCallBase");
16
14
  var _createDefer3 = require("./createDefer");
17
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
18
15
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
19
16
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
17
  function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
@@ -25,7 +22,7 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
25
22
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
26
23
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27
24
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
28
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disable react-hooks/exhaustive-deps */
25
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
29
26
  /**
30
27
  * Options for the `useElmish` hook.
31
28
  * @interface UseElmishOptions
@@ -42,133 +39,49 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disabl
42
39
  * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
43
40
  */
44
41
  function useElmish(_ref) {
45
- var _fakeOptions$dispatch;
46
42
  var name = _ref.name,
47
43
  props = _ref.props,
48
44
  reInitOn = _ref.reInitOn,
49
45
  init = _ref.init,
50
46
  update = _ref.update,
51
47
  subscription = _ref.subscription;
52
- var running = false;
53
- var buffer = [];
54
- var firstCallRef = (0, _react.useRef)(true);
55
48
  var _useState = (0, _react.useState)(null),
56
49
  _useState2 = _slicedToArray(_useState, 2),
57
50
  model = _useState2[0],
58
51
  setModel = _useState2[1];
59
52
  var propsRef = (0, _react.useRef)(props);
60
- var isMountedRef = (0, _react.useRef)(true);
61
- var devTools = (0, _react.useRef)(null);
62
- (0, _react.useEffect)(function () {
63
- var reduxUnsubscribe;
64
- if (_Init.Services.enableDevTools === true && (0, _reduxDevTools.isReduxDevToolsEnabled)(window)) {
65
- // eslint-disable-next-line no-underscore-dangle
66
- devTools.current = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
67
- name: name,
68
- serialize: {
69
- options: true
70
- }
71
- });
72
- reduxUnsubscribe = devTools.current.subscribe(function (message) {
73
- if (message.type === "DISPATCH" && message.payload.type === "JUMP_TO_ACTION") {
74
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
75
- setModel(JSON.parse(message.state));
76
- }
77
- });
78
- }
79
- isMountedRef.current = true;
80
- return function () {
81
- var _reduxUnsubscribe;
82
- isMountedRef.current = false;
83
- (_reduxUnsubscribe = reduxUnsubscribe) === null || _reduxUnsubscribe === void 0 || _reduxUnsubscribe();
84
- };
85
- }, [name]);
53
+ var devToolsRef = (0, _Common.useRedux)(name, setModel);
54
+ var isMountedRef = (0, _Common.useIsMounted)();
86
55
  var currentModel = model;
87
56
  if (propsRef.current !== props) {
88
57
  propsRef.current = props;
89
58
  }
90
59
  var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
91
- var dispatch = (0, _react.useCallback)((_fakeOptions$dispatch = fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch) !== null && _fakeOptions$dispatch !== void 0 ? _fakeOptions$dispatch : function (msg) {
92
- if (running) {
93
- buffer.push(msg);
60
+
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
62
+ var dispatch = (0, _react.useCallback)((0, _Common.getDispatch)(handleMessage, function () {
63
+ if (!isMountedRef.current) {
94
64
  return;
95
65
  }
96
- running = true;
97
- var nextMsg = msg;
98
- var modified = false;
99
- do {
100
- if (handleMessage(nextMsg)) {
101
- modified = true;
102
- }
103
- if (devTools.current) {
104
- devTools.current.send(nextMsg.name, currentModel);
105
- }
106
- nextMsg = buffer.shift();
107
- } while (nextMsg);
108
- running = false;
109
- if (isMountedRef.current && modified) {
110
- setModel(function () {
111
- var _Services$logger;
112
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, currentModel);
113
- return currentModel;
114
- });
115
- }
116
- }, []);
117
- var initializedModel = model;
66
+ setModel(function () {
67
+ var _Services$logger;
68
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, currentModel);
69
+ return currentModel;
70
+ });
71
+ }, function (msg) {
72
+ var _devToolsRef$current;
73
+ (_devToolsRef$current = devToolsRef.current) === null || _devToolsRef$current === void 0 || _devToolsRef$current.send(msg.name, currentModel);
74
+ }, fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch), []);
75
+ var initializedModel = currentModel;
118
76
  if (!initializedModel) {
119
- var _devTools$current, _Services$logger2;
120
77
  (0, _immer.enablePatches)();
121
- var _ref2 = fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.model ? [fakeOptions.model] : init(props),
122
- _ref3 = _toArray(_ref2),
123
- initModel = _ref3[0],
124
- initCommands = _ref3.slice(1);
125
- initializedModel = (0, _immer.castImmutable)((0, _immer.freeze)(initModel, true));
126
- currentModel = initializedModel;
127
- setModel(initializedModel);
128
- (_devTools$current = devTools.current) === null || _devTools$current === void 0 || _devTools$current.init(initializedModel);
129
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, initializedModel);
130
- _Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
78
+ initializedModel = (0, _immer.castImmutable)((0, _Common.runInit)(name, init, props, function (initModel) {
79
+ currentModel = (0, _immer.castImmutable)((0, _immer.freeze)(initModel, true));
80
+ setModel(currentModel);
81
+ }, dispatch, devToolsRef.current, fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.model));
131
82
  }
132
- (0, _react.useEffect)(function () {
133
- if (firstCallRef.current) {
134
- firstCallRef.current = false;
135
- return;
136
- }
137
- setModel(null);
138
- // biome-ignore lint/correctness/useExhaustiveDependencies: We only want to reinitialize when the reInitOn dependencies change
139
- }, reInitOn !== null && reInitOn !== void 0 ? reInitOn : []);
140
- (0, _react.useEffect)(function () {
141
- if (subscription) {
142
- var subscriptionResult = subscription(initializedModel, props);
143
- if ((0, _Types.subscriptionIsFunctionArray)(subscriptionResult)) {
144
- var destructors = subscriptionResult.map(function (sub) {
145
- return sub(dispatch);
146
- }).filter(function (destructor) {
147
- return destructor !== undefined;
148
- });
149
- return function combinedDestructor() {
150
- var _iterator = _createForOfIteratorHelper(destructors),
151
- _step;
152
- try {
153
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
154
- var _destructor = _step.value;
155
- _destructor();
156
- }
157
- } catch (err) {
158
- _iterator.e(err);
159
- } finally {
160
- _iterator.f();
161
- }
162
- };
163
- }
164
- var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
165
- subCmd = _subscriptionResult[0],
166
- destructor = _subscriptionResult[1];
167
- (0, _Common.execCmd)(dispatch, subCmd);
168
- return destructor;
169
- }
170
- // biome-ignore lint/correctness/useExhaustiveDependencies: We only want to reinitialize when the reInitOn dependencies change
171
- }, reInitOn !== null && reInitOn !== void 0 ? reInitOn : []);
83
+ (0, _Common.useReInit)(setModel, reInitOn);
84
+ (0, _Common.useSubscription)(subscription, initializedModel, props, dispatch, reInitOn);
172
85
  return [initializedModel, dispatch];
173
86
  function handleMessage(nextMsg) {
174
87
  if (!currentModel) {
@@ -214,4 +127,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
214
127
  var msgName = msg.name;
215
128
  return updateMap[msgName](msg, model, props, options);
216
129
  }
217
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0NvbW1vbiIsIl9mYWtlT3B0aW9ucyIsIl9Jbml0IiwiX3JlZHV4RGV2VG9vbHMiLCJfVHlwZXMiLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXIzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsIiwiaSIsIk9iamVjdCIsInB1c2giLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJyZUluaXRPbiIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJydW5uaW5nIiwiYnVmZmVyIiwiZmlyc3RDYWxsUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwiaXNNb3VudGVkUmVmIiwiZGV2VG9vbHMiLCJ1c2VFZmZlY3QiLCJyZWR1eFVuc3Vic2NyaWJlIiwiU2VydmljZXMiLCJlbmFibGVEZXZUb29scyIsImlzUmVkdXhEZXZUb29sc0VuYWJsZWQiLCJ3aW5kb3ciLCJjdXJyZW50IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJzZXJpYWxpemUiLCJvcHRpb25zIiwic3Vic2NyaWJlIiwibWVzc2FnZSIsInR5cGUiLCJwYXlsb2FkIiwiSlNPTiIsInBhcnNlIiwic3RhdGUiLCJfcmVkdXhVbnN1YnNjcmliZSIsImN1cnJlbnRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImhhbmRsZU1lc3NhZ2UiLCJzZW5kIiwic2hpZnQiLCJfU2VydmljZXMkbG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJpbml0aWFsaXplZE1vZGVsIiwiX2RldlRvb2xzJGN1cnJlbnQiLCJfU2VydmljZXMkbG9nZ2VyMiIsImVuYWJsZVBhdGNoZXMiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiY2FzdEltbXV0YWJsZSIsImZyZWV6ZSIsImV4ZWNDbWQiLCJhcHBseSIsImNvbmNhdCIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsInN1YkNtZCIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsInVwZGF0ZWRNb2RlbCIsImNvbW1hbmRzIiwiZGVmZXJyZWRDb21tYW5kcyIsInByb2R1Y2UiLCJkcmFmdCIsImNhbGxVcGRhdGVNYXAiLCJwYXRjaGVzIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbW11dGFibGUvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgY2FzdEltbXV0YWJsZSwgdHlwZSBEcmFmdCwgZW5hYmxlUGF0Y2hlcywgZnJlZXplLCB0eXBlIEltbXV0YWJsZSwgcHJvZHVjZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSB9IGZyb20gXCIuLi9Db21tb25cIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4uL3JlZHV4RGV2VG9vbHNcIjtcbmltcG9ydCB7IHR5cGUgQ21kLCB0eXBlIERpc3BhdGNoLCB0eXBlIEluaXRGdW5jdGlvbiwgdHlwZSBNZXNzYWdlLCB0eXBlIE51bGxhYmxlLCBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkgfSBmcm9tIFwiLi4vVHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBBcnJheSBvZiB2YWx1ZXMgdGhhdCB0cmlnZ2VyIGEgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cblx0ICovXG5cdHJlSW5pdE9uPzogdW5rbm93bltdO1xuXHQvKipcblx0ICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuXHQgKi9cblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRyZUluaXRPbixcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbSW1tdXRhYmxlPFRNb2RlbD4sIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcnVubmluZyA9IGZhbHNlO1xuXHRjb25zdCBidWZmZXI6IFRNZXNzYWdlW10gPSBbXTtcblxuXHRjb25zdCBmaXJzdENhbGxSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8SW1tdXRhYmxlPFRNb2RlbD4+PihudWxsKTtcblx0Y29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cblx0Y29uc3QgZGV2VG9vbHMgPSB1c2VSZWY8UmVkdXhEZXZUb29scyB8IG51bGw+KG51bGwpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0bGV0IHJlZHV4VW5zdWJzY3JpYmU6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuXHRcdGlmIChTZXJ2aWNlcy5lbmFibGVEZXZUb29scyA9PT0gdHJ1ZSAmJiBpc1JlZHV4RGV2VG9vbHNFbmFibGVkKHdpbmRvdykpIHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuXHRcdFx0ZGV2VG9vbHMuY3VycmVudCA9IHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3QoeyBuYW1lLCBzZXJpYWxpemU6IHsgb3B0aW9uczogdHJ1ZSB9IH0pO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlID0gZGV2VG9vbHMuY3VycmVudC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcblx0XHRcdFx0aWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJESVNQQVRDSFwiICYmIG1lc3NhZ2UucGF5bG9hZC50eXBlID09PSBcIkpVTVBfVE9fQUNUSU9OXCIpIHtcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS10eXBlLWFzc2VydGlvblxuXHRcdFx0XHRcdHNldE1vZGVsKEpTT04ucGFyc2UobWVzc2FnZS5zdGF0ZSkgYXMgSW1tdXRhYmxlPFRNb2RlbD4pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZT8uKCk7XG5cdFx0fTtcblx0fSwgW25hbWVdKTtcblxuXHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkZXZUb29scy5jdXJyZW50KSB7XG5cdFx0XHRcdFx0XHRkZXZUb29scy5jdXJyZW50LnNlbmQobmV4dE1zZy5uYW1lLCBjdXJyZW50TW9kZWwpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiBtb2RpZmllZCkge1xuXHRcdFx0XHRcdHNldE1vZGVsKCgpID0+IHtcblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIGN1cnJlbnRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdHJldHVybiBjdXJyZW50TW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0ZW5hYmxlUGF0Y2hlcygpO1xuXG5cdFx0Y29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBjYXN0SW1tdXRhYmxlKGZyZWV6ZShpbml0TW9kZWwsIHRydWUpKTtcblx0XHRjdXJyZW50TW9kZWwgPSBpbml0aWFsaXplZE1vZGVsO1xuXHRcdHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZGV2VG9vbHMuY3VycmVudD8uaW5pdChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChmaXJzdENhbGxSZWYuY3VycmVudCkge1xuXHRcdFx0Zmlyc3RDYWxsUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHNldE1vZGVsKG51bGwpO1xuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIG9ubHkgd2FudCB0byByZWluaXRpYWxpemUgd2hlbiB0aGUgcmVJbml0T24gZGVwZW5kZW5jaWVzIGNoYW5nZVxuXHR9LCByZUluaXRPbiA/PyBbXSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBzdWJzY3JpcHRpb25SZXN1bHQgPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRpZiAoc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvblJlc3VsdCkpIHtcblx0XHRcdFx0Y29uc3QgZGVzdHJ1Y3RvcnMgPSBzdWJzY3JpcHRpb25SZXN1bHQubWFwKChzdWIpID0+IHN1YihkaXNwYXRjaCkpLmZpbHRlcigoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKTtcblxuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24gY29tYmluZWREZXN0cnVjdG9yKCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZGVzdHJ1Y3RvciBvZiBkZXN0cnVjdG9ycykge1xuXHRcdFx0XHRcdFx0ZGVzdHJ1Y3RvcigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb25SZXN1bHQ7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSBvbmx5IHdhbnQgdG8gcmVpbml0aWFsaXplIHdoZW4gdGhlIHJlSW5pdE9uIGRlcGVuZGVuY2llcyBjaGFuZ2Vcblx0fSwgcmVJbml0T24gPz8gW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWN1cnJlbnRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2U8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPihuZXh0TXNnLCBjdXJyZW50TW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbW9kaWZpZWQsIHVwZGF0ZWRNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIGN1cnJlbnRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwge1xuXHRcdFx0ZGVmZXIsXG5cdFx0XHRjYWxsQmFzZSxcblx0XHR9KTtcblxuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y3VycmVudE1vZGVsID0gdXBkYXRlZE1vZGVsO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogW2Jvb2xlYW4sIEltbXV0YWJsZTxUTW9kZWw+LCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV0ge1xuXHRjb25zdCBjb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10gPSBbXTtcblx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0bW9kZWwsXG5cdFx0KGRyYWZ0OiBEcmFmdDxUTW9kZWw+KSA9PiB7XG5cdFx0XHRpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdGNvbW1hbmRzLnB1c2goLi4udXBkYXRlKGRyYWZ0LCBtc2csIHByb3BzLCBvcHRpb25zKSk7XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdH0sXG5cdFx0KHBhdGNoZXMpID0+IHtcblx0XHRcdG1vZGlmaWVkID0gcGF0Y2hlcy5sZW5ndGggPiAwO1xuXHRcdH0sXG5cdCk7XG5cblx0cmV0dXJuIFttb2RpZmllZCwgdXBkYXRlZE1vZGVsLCAuLi5jb21tYW5kc107XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBEcmFmdDxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1lc3NhZ2U+IHtcblx0Y29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cblx0cmV0dXJuIHVwZGF0ZU1hcFttc2dOYW1lXShtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIHsgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUE0QyxTQUFBUywyQkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEseUJBQUFDLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxDQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVC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
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0NvbW1vbiIsIl9mYWtlT3B0aW9ucyIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbmd0aCIsIm4iLCJsIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiZGV2VG9vbHNSZWYiLCJ1c2VSZWR1eCIsImlzTW91bnRlZFJlZiIsInVzZUlzTW91bnRlZCIsImN1cnJlbnRNb2RlbCIsImN1cnJlbnQiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJnZXREaXNwYXRjaCIsImhhbmRsZU1lc3NhZ2UiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsIm1zZyIsIl9kZXZUb29sc1JlZiRjdXJyZW50Iiwic2VuZCIsImluaXRpYWxpemVkTW9kZWwiLCJlbmFibGVQYXRjaGVzIiwiY2FzdEltbXV0YWJsZSIsInJ1bkluaXQiLCJpbml0TW9kZWwiLCJmcmVlemUiLCJ1c2VSZUluaXQiLCJ1c2VTdWJzY3JpcHRpb24iLCJuZXh0TXNnIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibW9kaWZpZWQiLCJ1cGRhdGVkTW9kZWwiLCJjb21tYW5kcyIsImRlZmVycmVkQ29tbWFuZHMiLCJleGVjQ21kIiwiYXBwbHkiLCJjb25jYXQiLCJvcHRpb25zIiwicHJvZHVjZSIsImRyYWZ0IiwiY2FsbFVwZGF0ZU1hcCIsInBhdGNoZXMiLCJ1cGRhdGVNYXAiLCJtc2dOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltbXV0YWJsZS91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FzdEltbXV0YWJsZSwgdHlwZSBEcmFmdCwgZW5hYmxlUGF0Y2hlcywgZnJlZXplLCB0eXBlIEltbXV0YWJsZSwgcHJvZHVjZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGdldERpc3BhdGNoLCBsb2dNZXNzYWdlLCBydW5Jbml0LCB1c2VJc01vdW50ZWQsIHVzZVJlZHV4LCB1c2VSZUluaXQsIHVzZVN1YnNjcmlwdGlvbiB9IGZyb20gXCIuLi9Db21tb25cIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIERpc3BhdGNoLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucywgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogQXJyYXkgb2YgdmFsdWVzIHRoYXQgdHJpZ2dlciBhIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRyZUluaXRPbj86IHVua25vd25bXTtcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0cmVJbml0T24sXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW0ltbXV0YWJsZTxUTW9kZWw+LCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxJbW11dGFibGU8VE1vZGVsPj4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGRldlRvb2xzUmVmID0gdXNlUmVkdXgobmFtZSwgc2V0TW9kZWwpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VJc01vdW50ZWQoKTtcblxuXHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0Z2V0RGlzcGF0Y2goXG5cdFx0XHRoYW5kbGVNZXNzYWdlLFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRpZiAoIWlzTW91bnRlZFJlZi5jdXJyZW50KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2V0TW9kZWwoKCkgPT4ge1xuXHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIGN1cnJlbnRNb2RlbCk7XG5cblx0XHRcdFx0XHRyZXR1cm4gY3VycmVudE1vZGVsO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHQobXNnKSA9PiB7XG5cdFx0XHRcdGRldlRvb2xzUmVmLmN1cnJlbnQ/LnNlbmQobXNnLm5hbWUsIGN1cnJlbnRNb2RlbCk7XG5cdFx0XHR9LFxuXHRcdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoLFxuXHRcdCksXG5cdFx0W10sXG5cdCk7XG5cblx0bGV0IGluaXRpYWxpemVkTW9kZWwgPSBjdXJyZW50TW9kZWw7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0ZW5hYmxlUGF0Y2hlcygpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGNhc3RJbW11dGFibGUoXG5cdFx0XHRydW5Jbml0KFxuXHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRpbml0LFxuXHRcdFx0XHRwcm9wcyxcblx0XHRcdFx0KGluaXRNb2RlbCkgPT4ge1xuXHRcdFx0XHRcdGN1cnJlbnRNb2RlbCA9IGNhc3RJbW11dGFibGUoZnJlZXplKGluaXRNb2RlbCwgdHJ1ZSkpO1xuXHRcdFx0XHRcdHNldE1vZGVsKGN1cnJlbnRNb2RlbCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRpc3BhdGNoLFxuXHRcdFx0XHRkZXZUb29sc1JlZi5jdXJyZW50LFxuXHRcdFx0XHRmYWtlT3B0aW9ucz8ubW9kZWwsXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH1cblxuXHR1c2VSZUluaXQoc2V0TW9kZWwsIHJlSW5pdE9uKTtcblx0dXNlU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbiwgaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMsIGRpc3BhdGNoLCByZUluaXRPbik7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghY3VycmVudE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuXHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KG5leHRNc2csIGN1cnJlbnRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciB9KTtcblxuXHRcdGNvbnN0IFttb2RpZmllZCwgdXBkYXRlZE1vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgY3VycmVudE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7XG5cdFx0XHRkZWZlcixcblx0XHRcdGNhbGxCYXNlLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgZGVmZXJyZWRDb21tYW5kcyA9IGdldERlZmVycmVkKCk7XG5cblx0XHRjdXJyZW50TW9kZWwgPSB1cGRhdGVkTW9kZWw7XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gbW9kaWZpZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBbYm9vbGVhbiwgSW1tdXRhYmxlPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXSB7XG5cdGNvbnN0IGNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblx0Y29uc3QgdXBkYXRlZE1vZGVsID0gcHJvZHVjZShcblx0XHRtb2RlbCxcblx0XHQoZHJhZnQ6IERyYWZ0PFRNb2RlbD4pID0+IHtcblx0XHRcdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdFx0Y29tbWFuZHMucHVzaCguLi51cGRhdGUoZHJhZnQsIG1zZywgcHJvcHMsIG9wdGlvbnMpKTtcblxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbW1hbmRzLnB1c2goLi4uY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgZHJhZnQsIHByb3BzLCBvcHRpb25zKSk7XG5cdFx0fSxcblx0XHQocGF0Y2hlcykgPT4ge1xuXHRcdFx0bW9kaWZpZWQgPSBwYXRjaGVzLmxlbmd0aCA+IDA7XG5cdFx0fSxcblx0KTtcblxuXHRyZXR1cm4gW21vZGlmaWVkLCB1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IERyYWZ0PFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQTRDLFNBQUFPLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxDQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxDQUFBLFVBQUFRLGlCQUFBLENBQUFSLENBQUE7QUFBQSxTQUFBUyxTQUFBVCxDQUFBLFdBQUFVLGVBQUEsQ0FBQVYsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQVcsZ0JBQUE7QUFBQSxTQUFBVCxpQkFBQUYsQ0FBQSw4QkFBQVksTUFBQSxZQUFBWixDQUFBLENBQUFZLE1BQUEsQ0FBQUMsUUFBQSxhQUFBYixDQUFBLHVCQUFBTSxLQUFBLENBQUFRLElBQUEsQ0FBQWQsQ0FBQTtBQUFB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
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { cmd } from "./cmd";
2
2
  export { ElmComponent } from "./ElmComponent";
3
- export { errorHandler, errorMsg, handleError, type ErrorMessage } from "./ErrorHandling";
4
- export { init, type ElmOptions, type Logger } from "./Init";
3
+ export { type ErrorMessage, errorHandler, errorMsg, handleError } from "./ErrorHandling";
4
+ export { type ElmOptions, init, type Logger } from "./Init";
5
5
  export { mergeSubscriptions } from "./mergeSubscriptions";
6
6
  export type { Cmd, Dispatch, InitResult, Message, MsgSource, Subscription, SubscriptionResult, UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
7
- export { useElmish, type UseElmishOptions } from "./useElmish";
7
+ export { type UseElmishOptions, useElmish } from "./useElmish";
package/dist/index.js CHANGED
@@ -57,4 +57,4 @@ var _ErrorHandling = require("./ErrorHandling");
57
57
  var _Init = require("./Init");
58
58
  var _mergeSubscriptions = require("./mergeSubscriptions");
59
59
  var _useElmish = require("./useElmish");
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FbG1Db21wb25lbnQiLCJfRXJyb3JIYW5kbGluZyIsIl9Jbml0IiwiX21lcmdlU3Vic2NyaXB0aW9ucyIsIl91c2VFbG1pc2giXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4vY21kXCI7XG5leHBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmV4cG9ydCB7IGVycm9ySGFuZGxlciwgZXJyb3JNc2csIGhhbmRsZUVycm9yLCB0eXBlIEVycm9yTWVzc2FnZSB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IGluaXQsIHR5cGUgRWxtT3B0aW9ucywgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5leHBvcnQgeyBtZXJnZVN1YnNjcmlwdGlvbnMgfSBmcm9tIFwiLi9tZXJnZVN1YnNjcmlwdGlvbnNcIjtcbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHRTdWJzY3JpcHRpb24sXG5cdFN1YnNjcmlwdGlvblJlc3VsdCxcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5leHBvcnQgeyB1c2VFbG1pc2gsIHR5cGUgVXNlRWxtaXNoT3B0aW9ucyB9IGZyb20gXCIuL3VzZUVsbWlzaFwiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFKLE9BQUE7QUFhQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FbG1Db21wb25lbnQiLCJfRXJyb3JIYW5kbGluZyIsIl9Jbml0IiwiX21lcmdlU3Vic2NyaXB0aW9ucyIsIl91c2VFbG1pc2giXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4vY21kXCI7XG5leHBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmV4cG9ydCB7IHR5cGUgRXJyb3JNZXNzYWdlLCBlcnJvckhhbmRsZXIsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IHR5cGUgRWxtT3B0aW9ucywgaW5pdCwgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5leHBvcnQgeyBtZXJnZVN1YnNjcmlwdGlvbnMgfSBmcm9tIFwiLi9tZXJnZVN1YnNjcmlwdGlvbnNcIjtcbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHRTdWJzY3JpcHRpb24sXG5cdFN1YnNjcmlwdGlvblJlc3VsdCxcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5leHBvcnQgeyB0eXBlIFVzZUVsbWlzaE9wdGlvbnMsIHVzZUVsbWlzaCB9IGZyb20gXCIuL3VzZUVsbWlzaFwiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFKLE9BQUE7QUFhQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=