occam-nominal 1.0.287 → 1.0.289
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/element/schema.js +4 -5
- package/package.json +1 -1
- package/src/element/schema.js +2 -2
package/lib/element/schema.js
CHANGED
|
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
|
|
13
13
|
const _context = require("../utilities/context");
|
|
14
|
-
const _breakPoint = require("../utilities/breakPoint");
|
|
15
14
|
const _string = require("../utilities/string");
|
|
16
15
|
const _json = require("../utilities/json");
|
|
17
16
|
function _getRequireWildcardCache(nodeInterop) {
|
|
@@ -55,7 +54,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
55
54
|
}
|
|
56
55
|
return newObj;
|
|
57
56
|
}
|
|
58
|
-
const { asyncForwardsEvery } = _occamlanguages.asynchronousUtilities;
|
|
57
|
+
const { asyncForwardsEvery } = _occamlanguages.asynchronousUtilities, { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
|
|
59
58
|
const _default = (0, _elements.define)(class Schema extends _occamlanguages.Element {
|
|
60
59
|
constructor(context, string, node, breakPoint, label, suppositions, deduction, proof, constraints){
|
|
61
60
|
super(context, string, node, breakPoint);
|
|
@@ -295,7 +294,7 @@ const _default = (0, _elements.define)(class Schema extends _occamlanguages.Elem
|
|
|
295
294
|
const labelJSON = (0, _json.labelToLabelJSON)(this.label), deductionJSON = (0, _json.deductionToDeductionJSON)(this.deduction), suppositionsJSON = (0, _json.suppositionsToSuppositionsJSON)(this.suppositions), constraintsJSON = (0, _json.constraintsToConstraintsJSON)(this.constraints), string = this.getString();
|
|
296
295
|
let breakPoint;
|
|
297
296
|
breakPoint = this.getBreakPoint();
|
|
298
|
-
const breakPointJSON =
|
|
297
|
+
const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
|
|
299
298
|
breakPoint = breakPointJSON; ///
|
|
300
299
|
const label = labelJSON, deduction = deductionJSON, suppositions = suppositionsJSON, constraints = constraintsJSON, json = {
|
|
301
300
|
string,
|
|
@@ -309,7 +308,7 @@ const _default = (0, _elements.define)(class Schema extends _occamlanguages.Elem
|
|
|
309
308
|
}
|
|
310
309
|
static name = "Schema";
|
|
311
310
|
static fromJSON(json, context) {
|
|
312
|
-
const label = (0, _json.labelFromJSON)(json, context), deduction = (0, _json.deductionFromJSON)(json, context), suppositions = (0, _json.suppositionsFromJSON)(json, context), constraints = (0, _json.constraintsFromJSON)(json, context), string = (0, _string.schemaStringFromLabelSuppositionsAndDeduction)(label, suppositions, deduction), node = null, breakPoint =
|
|
311
|
+
const label = (0, _json.labelFromJSON)(json, context), deduction = (0, _json.deductionFromJSON)(json, context), suppositions = (0, _json.suppositionsFromJSON)(json, context), constraints = (0, _json.constraintsFromJSON)(json, context), string = (0, _string.schemaStringFromLabelSuppositionsAndDeduction)(label, suppositions, deduction), node = null, breakPoint = breakPointFromJSON(json), proof = null, schema = new Schema(context, string, node, breakPoint, label, suppositions, deduction, proof, constraints);
|
|
313
312
|
return schema;
|
|
314
313
|
}
|
|
315
314
|
});
|
|
@@ -323,4 +322,4 @@ function subproofAssertionFromStatement(statement, context) {
|
|
|
323
322
|
return subproofAssertion;
|
|
324
323
|
}
|
|
325
324
|
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NjaGVtYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgcmVjb25jaWxlLCBlbmNhcHN1bGF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuaW1wb3J0IHsgc2NoZW1hU3RyaW5nRnJvbUxhYmVsU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGxhYmVsRnJvbUpTT04sXG4gICAgICAgICBsYWJlbFRvTGFiZWxKU09OLFxuICAgICAgICAgZGVkdWN0aW9uRnJvbUpTT04sXG4gICAgICAgICBjb25zdHJhaW50c0Zyb21KU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zRnJvbUpTT04sXG4gICAgICAgICBkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04sXG4gICAgICAgICBjb25zdHJhaW50c1RvQ29uc3RyYWludHNKU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgYXN5bmNGb3J3YXJkc0V2ZXJ5IH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTY2hlbWEgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24sIHByb29mLCBjb25zdHJhaW50cykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5zdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnM7XG4gICAgdGhpcy5kZWR1Y3Rpb24gPSBkZWR1Y3Rpb247XG4gICAgdGhpcy5wcm9vZiA9IHByb29mO1xuICAgIHRoaXMuY29uc3RyYWludHMgPSBjb25zdHJhaW50cztcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1cHBvc2l0aW9ucztcbiAgfVxuXG4gIGdldERlZHVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWR1Y3Rpb247XG4gIH1cblxuICBnZXRQcm9vZigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9vZjtcbiAgfVxuXG4gIGdldE1Db25zdHJhaW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRzO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb24oaW5kZXgpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHRoaXMuc3VwcG9zaXRpb25zW2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICB9XG5cbiAgaXNDb25kaXRpb25hbCgpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnNMZW5ndGggPSB0aGlzLnN1cHBvc2l0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgY29uZGl0aW9uYWwgPSAoc3VwcG9zaXRpb25zTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uYWw7XG4gIH1cblxuICBjb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRMYWJlbCgpLFxuICAgICAgICAgIGxhYmVsQ29tcGFyZXNUb1JlZmZlcmVuY2UgPSBsYWJlbC5jb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSksXG4gICAgICAgICAgY29tcGFyZXNUb1JlZmVyZW5jZSA9IGxhYmVsQ29tcGFyZXNUb1JlZmZlcmVuY2U7ICAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUmVmZXJlbmNlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXM7XG5cbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS4uLmApO1xuXG4gICAgYXdhaXQgZW5jYXBzdWxhdGUoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsVmVyaWZpZXMgPSB0aGlzLnZlcmlmeUxhYmVsKGNvbnRleHQpO1xuXG4gICAgICBpZiAobGFiZWxWZXJpZmllcykge1xuICAgICAgICBjb25zdCBzdXBwb3NpdGlvbnNWZXJpZnkgPSBhd2FpdCB0aGlzLnZlcmlmeVN1cHBvc2l0aW9ucyhjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICAgICAgY29uc3QgZGVkdWN0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnZlcmlmeURlZHVjdGlvbihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChkZWR1Y3Rpb25WZXJpZmllcykge1xuICAgICAgICAgICAgY29uc3QgcHJvb2ZWZXJpZmllcyA9IGF3YWl0IHRoaXMudmVyaWZ5UHJvb2YoY29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChwcm9vZlZlcmlmaWVzKSB7XG4gICAgICAgICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB0aGlzLmNvbnN0cmFpbnRzLCBjb250ZXh0KTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpczsgLy8vXG5cbiAgICAgIGNvbnRleHQuYWRkU2NoZW1hKHNjaGVtYSk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5TGFiZWwoY29udGV4dCkge1xuICAgIGxldCBsYWJlbFZlcmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5sYWJlbC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hJ3MgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgbGFiZWxWZXJpZmllcyA9IHRoaXMubGFiZWwudmVyaWZ5KCk7XG5cbiAgICBpZiAobGFiZWxWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVsVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlQcm9vZihjb250ZXh0KSB7XG4gICAgbGV0IHByb29mVmVyaWZpZXM7XG5cbiAgICBjb25zdCBzY2hlbWFTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzIHByb29mLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmRlZHVjdGlvbi5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIHByb29mVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnByb29mLnZlcmlmeShzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHByb29mVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEncyBwcm9vZi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvb2ZWZXJpZmllcztcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeURlZHVjdGlvbihjb250ZXh0KSB7XG4gICAgbGV0IGRlZHVjdGlvblZlcmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vXG4gICAgICAgICAgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5kZWR1Y3Rpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHRvcCBsZXZlbCBtZXRhIGFzc2VydGlvbidzICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgZGVkdWN0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLmRlZHVjdGlvbi52ZXJpZnkoY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyB0b3AgbGV2ZWwgbWV0YSBhc3NlcnRpb24ncyAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZHVjdGlvblZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zaXRpb25WZXJpZmllcztcblxuICAgIGNvbnN0IHNjaGVtYVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHN1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEncyAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCk7XG5cbiAgICBzdXBwb3NpdGlvblZlcmlmaWVzID0gYXdhaXQgc3VwcG9zaXRpb24udmVyaWZ5KGNvbnRleHQpXG5cbiAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllcykge1xuICAgICAgY29uc3Qgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uID0gc3VwcG9zaXRpb247ICAvLy8vXG5cbiAgICAgIGNvbnRleHQuYXNzaWduQXNzaWdubWVudHMoKTtcblxuICAgICAgY29udGV4dC5hZGRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlTdXBwb3NpdGlvbnMoY29udGV4dCkge1xuICAgIGxldCBzdXBwb3NpdGlvbnNWZXJpZnk7XG5cbiAgICBjb25zdCBzY2hlbWFTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzIHN1cHBvc2l0aW9ucy4uLmApO1xuXG4gICAgc3VwcG9zaXRpb25zVmVyaWZ5ID0gYXdhaXQgYXN5bmNGb3J3YXJkc0V2ZXJ5KHRoaXMuc3VwcG9zaXRpb25zLCBhc3luYyAoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hJ3Mgc3VwcG9zaXRpb25zLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBwb3NpdGlvbnNWZXJpZnk7XG4gIH1cblxuICB1bmlmeUp1ZGdlbWVudChqdWRnZW1lbnQsIGNvbnRleHQpIHtcbiAgICBsZXQganVkZ2VtZW50VW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIGp1ZGdlbWVudFN0cmluZyA9IGp1ZGdlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQgd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGp1ZGdlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSB0aGlzLnVuaWZ5UmVmZXJlbmNlKHJlZmVyZW5jZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWZlcmVuY2VVbmlmaWVzKSB7XG4gICAgICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0ganVkZ2VtZW50LmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgICBjb25kaXRpb25hbCA9IHRoaXMuaXNDb25kaXRpb25hbCgpLFxuICAgICAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IHN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChjb25kaXRpb25hbCkge1xuICAgICAgICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgc3VicHJvb2Zhc3NlcnRpb25VbmlmaWVzID0gdGhpcy51bmlmeVN1YnByb29mQXNzZXJ0aW9uKHN1YnByb29mQXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1YnByb29mYXNzZXJ0aW9uVW5pZmllcykge1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBkZWR1Y2VkU3RhdG1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICAgICAgICAgIGRlZHVjZWRTdGF0bWVudFVuZmlmaWVzID0gdGhpcy51bmlmeURlZHVjZWRTdGF0ZW1lbnQoZGVkdWNlZFN0YXRtZW50LCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGRlZHVjZWRTdGF0bWVudFVuZmlmaWVzKSB7XG4gICAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgY29uc3QgYXNzdW1wdGlvbnMgPSBqdWRnZW1lbnQuZ2V0QXNzdW1wdGlvbnMoY29udGV4dCksXG4gICAgICAgICAgICAgICAgYXNzdW1wdGlvbnNVbmlmeSA9IHRoaXMudW5pZnlBc3N1bXB0aW9ucyhhc3N1bXB0aW9ucywgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoYXNzdW1wdGlvbnNVbmlmeSkge1xuICAgICAgICAgICAganVkZ2VtZW50VW5pZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAoanVkZ2VtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IHdpdGggdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50VW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5UmVmZXJlbmNlKHJlZmVyZW5jZSwgY29udGV4dCkge1xuICAgIGxldCByZWZlcmVuY2VVbmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICByZWZlcmVuY2VVbmlmaWVzID0gdGhpcy5sYWJlbC51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlZmVyZW5jZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSB3aXRoIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb25zKGFzc3VtcHRpb25zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnNVbmlmeSA9IHRoaXMuY29uc3RyYWludHMuZXZlcnkoKGNvbnN0cmFpbnQpID0+IHtcbiAgICAgIGNvbnN0IGFzc3VtcHRpb25zVW5pZnkgPSBjb25zdHJhaW50LnVuaWZ5QXNzdW1wdGlvbnMoYXNzdW1wdGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoYXNzdW1wdGlvbnNVbmlmeSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uc1VuaWZ5O1xuICB9XG5cbiAgdW5pZnlEZWR1Y2VkU3RhdGVtZW50KGRlZHVjZWRTdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlZHVjdGlvblN0cmluZyA9IHRoaXMuZGVkdWN0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRTdHJpbmcgPSBkZWR1Y2VkU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpbm8uLi5gKTtcblxuICAgIGNvbnN0IGRlZHVjdGlvbkNvbnRleHQgPSB0aGlzLmRlZHVjdGlvbi5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudCA9IGRlZHVjZWRTdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gZGVkdWN0aW9uQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0aGlzLmRlZHVjdGlvbi51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGRlZHVjZWRTdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb25gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVkdWNlZFN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1YnByb29mQXNzZXJ0aW9uKHN1YnByb29mQXNzZXJ0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mQXNzZXJ0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uU3RyaW5nID0gc3VicHJvb2ZBc3NlcnRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24gd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICBjb25zdCBkZWR1Y2VkU3RhdGVtZW50ID0gc3VicHJvb2ZBc3NlcnRpb24uZ2V0RGVkdWNlZFN0YXRlbWVudCgpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy51bmlmeURlZHVjZWRTdGF0ZW1lbnQoZGVkdWNlZFN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGNvbnN0IHN1cHBvc2VkU3RhdGVtZW50cyA9IHN1YnByb29mQXNzZXJ0aW9uLmdldFN1cHBvc2VkU3RhdGVtZW50cygpLFxuICAgICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkgPSB0aGlzLnVuaWZ5U3VwcG9zZWRTdGF0ZW1lbnRzKHN1cHBvc2VkU3RhdGVtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdXBwb3NlZFN0YXRlbWVudHNVbmlmeSkge1xuICAgICAgICBzdWJwcm9vZkFzc2VydGlvblVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uIHdpdGggdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NlZFN0YXRlbWVudChzdXBwb3NlZFN0YXRlbWVudCwgaW5kZXgsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zZWRTdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHRoaXMuZ2V0U3VwcG9zaXRpb24oaW5kZXgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nID0gc3VwcG9zaXRpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmcgPSBzdXBwb3NlZFN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdXBwb3NlZFN0YXRlbWVudFN0cmluZ30nIHN1cHBvc2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbkNvbnRleHQgPSBzdXBwb3NpdGlvbi5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudCA9IHN1cHBvc2VkU3RhdGVtZW50LCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IHN1cHBvc2l0aW9uQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBzdXBwb3NpdGlvbi51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmd9JyBzdXBwb3NlZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBwb3NlZFN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1cHBvc2VkU3RhdGVtZW50cyhzdXBwb3NlZFN0YXRlbWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uc0xlbmd0aCA9IHRoaXMuc3VwcG9zaXRpb25zLmxlbmd0aCxcbiAgICAgICAgICBzdXBwb3NlZFN0YXRlbWVudHNMZW5ndGggPSBzdXBwb3NlZFN0YXRlbWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc0xlbmd0aCA9PT0gc3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoKSB7XG4gICAgICBzdXBwb3NlZFN0YXRlbWVudHNVbmlmeSA9IHN1cHBvc2VkU3RhdGVtZW50cy5ldmVyeSgoc3VwcG9zZWRTdGF0ZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdXBwb3NlZFN0YXRlbWVudChzdXBwb3NlZFN0YXRlbWVudCwgaW5kZXgsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdXBwb3NlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cHBvc2VkU3RhdGVtZW50c1VuaWZ5O1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgZGVkdWN0aW9uSlNPTiA9IGRlZHVjdGlvblRvRGVkdWN0aW9uSlNPTih0aGlzLmRlZHVjdGlvbiksXG4gICAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTih0aGlzLnN1cHBvc2l0aW9ucyksXG4gICAgICAgICAgY29uc3RyYWludHNKU09OID0gY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTih0aGlzLmNvbnN0cmFpbnRzKSxcbiAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIGRlZHVjdGlvbiA9IGRlZHVjdGlvbkpTT04sICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLCAgLy8vXG4gICAgICAgICAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgZGVkdWN0aW9uLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25zLFxuICAgICAgICAgICAgY29uc3RyYWludHNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2NoZW1hXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgZGVkdWN0aW9uID0gZGVkdWN0aW9uRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHNjaGVtYVN0cmluZ0Zyb21MYWJlbFN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbihsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24pLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgcHJvb2YgPSBudWxsLFxuICAgICAgICAgIHNjaGVtYSA9IG5ldyBTY2hlbWEoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24sIHByb29mLCBjb25zdHJhaW50cyk7XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBsZXQgc3VicHJvb2ZBc3NlcnRpb247XG5cbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHM7XG5cbiAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgc3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcblxufVxuIl0sIm5hbWVzIjpbImFzeW5jRm9yd2FyZHNFdmVyeSIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImRlZmluZSIsIlNjaGVtYSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJsYWJlbCIsInN1cHBvc2l0aW9ucyIsImRlZHVjdGlvbiIsInByb29mIiwiY29uc3RyYWludHMiLCJnZXRMYWJlbCIsImdldFN1cHBvc2l0aW9ucyIsImdldERlZHVjdGlvbiIsImdldFByb29mIiwiZ2V0TUNvbnN0cmFpbnQiLCJnZXRTdXBwb3NpdGlvbiIsImluZGV4Iiwic3VwcG9zaXRpb24iLCJpc0NvbmRpdGlvbmFsIiwic3VwcG9zaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwiY29uZGl0aW9uYWwiLCJjb21wYXJlUmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibGFiZWxDb21wYXJlc1RvUmVmZmVyZW5jZSIsImNvbXBhcmVzVG9SZWZlcmVuY2UiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImJyZWFrIiwic2NoZW1hU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJlbmNhcHN1bGF0ZSIsImxhYmVsVmVyaWZpZXMiLCJ2ZXJpZnlMYWJlbCIsInN1cHBvc2l0aW9uc1ZlcmlmeSIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImRlZHVjdGlvblZlcmlmaWVzIiwidmVyaWZ5RGVkdWN0aW9uIiwicHJvb2ZWZXJpZmllcyIsInZlcmlmeVByb29mIiwic2NoZW1hIiwiYWRkU2NoZW1hIiwiZGVidWciLCJsYWJlbFN0cmluZyIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImRlZHVjdGlvblN0cmluZyIsInZlcmlmeVN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25WZXJpZmllcyIsInN1cHBvc2l0aW9uU3RyaW5nIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwiYXNzaWduQXNzaWdubWVudHMiLCJhZGRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24iLCJ1bmlmeUp1ZGdlbWVudCIsImp1ZGdlbWVudCIsImp1ZGdlbWVudFVuaWZpZXMiLCJqdWRnZW1lbnRTdHJpbmciLCJyZWNvbmNpbGUiLCJnZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2VVbmlmaWVzIiwidW5pZnlSZWZlcmVuY2UiLCJzdGF0ZW1lbnRVbmlmaWVzIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJzdWJwcm9vZmFzc2VydGlvblVuaWZpZXMiLCJ1bmlmeVN1YnByb29mQXNzZXJ0aW9uIiwiZGVkdWNlZFN0YXRtZW50IiwiZGVkdWNlZFN0YXRtZW50VW5maWZpZXMiLCJ1bmlmeURlZHVjZWRTdGF0ZW1lbnQiLCJhc3N1bXB0aW9ucyIsImdldEFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnNVbmlmeSIsInVuaWZ5QXNzdW1wdGlvbnMiLCJyZWZlcmVuY2VTdHJpbmciLCJldmVyeSIsImNvbnN0cmFpbnQiLCJkZWR1Y2VkU3RhdGVtZW50IiwiZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMiLCJkZWR1Y2VkU3RhdGVtZW50U3RyaW5nIiwiZGVkdWN0aW9uQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInVuaWZ5U3RhdGVtZW50Iiwic3VicHJvb2ZBc3NlcnRpb25VbmlmaWVzIiwic3VicHJvb2ZBc3NlcnRpb25TdHJpbmciLCJnZXREZWR1Y2VkU3RhdGVtZW50Iiwic3VwcG9zZWRTdGF0ZW1lbnRzIiwiZ2V0U3VwcG9zZWRTdGF0ZW1lbnRzIiwic3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkiLCJ1bmlmeVN1cHBvc2VkU3RhdGVtZW50cyIsInVuaWZ5U3VwcG9zZWRTdGF0ZW1lbnQiLCJzdXBwb3NlZFN0YXRlbWVudCIsInN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyIsInN1cHBvc2VkU3RhdGVtZW50U3RyaW5nIiwic3VwcG9zaXRpb25Db250ZXh0Iiwic3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoIiwidG9KU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsImRlZHVjdGlvbkpTT04iLCJkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04iLCJzdXBwb3NpdGlvbnNKU09OIiwic3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OIiwiY29uc3RyYWludHNKU09OIiwiY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImxhYmVsRnJvbUpTT04iLCJkZWR1Y3Rpb25Gcm9tSlNPTiIsInN1cHBvc2l0aW9uc0Zyb21KU09OIiwiY29uc3RyYWludHNGcm9tSlNPTiIsInNjaGVtYVN0cmluZ0Zyb21MYWJlbFN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbiIsImJyZWFrUG9pbnRGcm9tSlNPTiIsIlN1YnByb29mQXNzZXJ0aW9uIiwiZWxlbWVudHMiLCJmcm9tU3RhdGVtZW50IiwidmFsaWRhdGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXFCQTs7O2VBQUE7OztnQ0FuQm9FO2tFQUUvQzt5QkFHa0I7NEJBQ3dCO3dCQUNEO3NCQVFmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFcEQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxlQUFlQyx1QkFBTztJQUNoRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxDQUFFO1FBQ2pHLEtBQUssQ0FBQ1IsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO1FBQ3BCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDTCxLQUFLO0lBQ25CO0lBRUFNLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0wsWUFBWTtJQUMxQjtJQUVBTSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNMLFNBQVM7SUFDdkI7SUFFQU0sV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDTCxLQUFLO0lBQ25CO0lBRUFNLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDTCxXQUFXO0lBQ3pCO0lBRUFNLGVBQWVDLEtBQUssRUFBRTtRQUNwQixNQUFNQyxjQUFjLElBQUksQ0FBQ1gsWUFBWSxDQUFDVSxNQUFNLElBQUk7UUFFaEQsT0FBT0M7SUFDVDtJ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
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NjaGVtYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgcmVjb25jaWxlLCBlbmNhcHN1bGF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgc2NoZW1hU3RyaW5nRnJvbUxhYmVsU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGxhYmVsRnJvbUpTT04sXG4gICAgICAgICBsYWJlbFRvTGFiZWxKU09OLFxuICAgICAgICAgZGVkdWN0aW9uRnJvbUpTT04sXG4gICAgICAgICBjb25zdHJhaW50c0Zyb21KU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zRnJvbUpTT04sXG4gICAgICAgICBkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04sXG4gICAgICAgICBjb25zdHJhaW50c1RvQ29uc3RyYWludHNKU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgYXN5bmNGb3J3YXJkc0V2ZXJ5IH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTY2hlbWEgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24sIHByb29mLCBjb25zdHJhaW50cykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5zdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnM7XG4gICAgdGhpcy5kZWR1Y3Rpb24gPSBkZWR1Y3Rpb247XG4gICAgdGhpcy5wcm9vZiA9IHByb29mO1xuICAgIHRoaXMuY29uc3RyYWludHMgPSBjb25zdHJhaW50cztcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1cHBvc2l0aW9ucztcbiAgfVxuXG4gIGdldERlZHVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWR1Y3Rpb247XG4gIH1cblxuICBnZXRQcm9vZigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9vZjtcbiAgfVxuXG4gIGdldE1Db25zdHJhaW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRzO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb24oaW5kZXgpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHRoaXMuc3VwcG9zaXRpb25zW2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICB9XG5cbiAgaXNDb25kaXRpb25hbCgpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnNMZW5ndGggPSB0aGlzLnN1cHBvc2l0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgY29uZGl0aW9uYWwgPSAoc3VwcG9zaXRpb25zTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uYWw7XG4gIH1cblxuICBjb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRMYWJlbCgpLFxuICAgICAgICAgIGxhYmVsQ29tcGFyZXNUb1JlZmZlcmVuY2UgPSBsYWJlbC5jb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSksXG4gICAgICAgICAgY29tcGFyZXNUb1JlZmVyZW5jZSA9IGxhYmVsQ29tcGFyZXNUb1JlZmZlcmVuY2U7ICAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUmVmZXJlbmNlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXM7XG5cbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS4uLmApO1xuXG4gICAgYXdhaXQgZW5jYXBzdWxhdGUoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsVmVyaWZpZXMgPSB0aGlzLnZlcmlmeUxhYmVsKGNvbnRleHQpO1xuXG4gICAgICBpZiAobGFiZWxWZXJpZmllcykge1xuICAgICAgICBjb25zdCBzdXBwb3NpdGlvbnNWZXJpZnkgPSBhd2FpdCB0aGlzLnZlcmlmeVN1cHBvc2l0aW9ucyhjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICAgICAgY29uc3QgZGVkdWN0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnZlcmlmeURlZHVjdGlvbihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChkZWR1Y3Rpb25WZXJpZmllcykge1xuICAgICAgICAgICAgY29uc3QgcHJvb2ZWZXJpZmllcyA9IGF3YWl0IHRoaXMudmVyaWZ5UHJvb2YoY29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChwcm9vZlZlcmlmaWVzKSB7XG4gICAgICAgICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB0aGlzLmNvbnN0cmFpbnRzLCBjb250ZXh0KTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpczsgLy8vXG5cbiAgICAgIGNvbnRleHQuYWRkU2NoZW1hKHNjaGVtYSk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5TGFiZWwoY29udGV4dCkge1xuICAgIGxldCBsYWJlbFZlcmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5sYWJlbC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hJ3MgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgbGFiZWxWZXJpZmllcyA9IHRoaXMubGFiZWwudmVyaWZ5KCk7XG5cbiAgICBpZiAobGFiZWxWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVsVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlQcm9vZihjb250ZXh0KSB7XG4gICAgbGV0IHByb29mVmVyaWZpZXM7XG5cbiAgICBjb25zdCBzY2hlbWFTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzIHByb29mLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmRlZHVjdGlvbi5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIHByb29mVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnByb29mLnZlcmlmeShzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHByb29mVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEncyBwcm9vZi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvb2ZWZXJpZmllcztcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeURlZHVjdGlvbihjb250ZXh0KSB7XG4gICAgbGV0IGRlZHVjdGlvblZlcmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vXG4gICAgICAgICAgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5kZWR1Y3Rpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHRvcCBsZXZlbCBtZXRhIGFzc2VydGlvbidzICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgZGVkdWN0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLmRlZHVjdGlvbi52ZXJpZnkoY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyB0b3AgbGV2ZWwgbWV0YSBhc3NlcnRpb24ncyAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZHVjdGlvblZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zaXRpb25WZXJpZmllcztcblxuICAgIGNvbnN0IHNjaGVtYVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHN1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEncyAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCk7XG5cbiAgICBzdXBwb3NpdGlvblZlcmlmaWVzID0gYXdhaXQgc3VwcG9zaXRpb24udmVyaWZ5KGNvbnRleHQpXG5cbiAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllcykge1xuICAgICAgY29uc3Qgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uID0gc3VwcG9zaXRpb247ICAvLy8vXG5cbiAgICAgIGNvbnRleHQuYXNzaWduQXNzaWdubWVudHMoKTtcblxuICAgICAgY29udGV4dC5hZGRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlTdXBwb3NpdGlvbnMoY29udGV4dCkge1xuICAgIGxldCBzdXBwb3NpdGlvbnNWZXJpZnk7XG5cbiAgICBjb25zdCBzY2hlbWFTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSdzIHN1cHBvc2l0aW9ucy4uLmApO1xuXG4gICAgc3VwcG9zaXRpb25zVmVyaWZ5ID0gYXdhaXQgYXN5bmNGb3J3YXJkc0V2ZXJ5KHRoaXMuc3VwcG9zaXRpb25zLCBhc3luYyAoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZXMgPSBhd2FpdCB0aGlzLnZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hJ3Mgc3VwcG9zaXRpb25zLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBwb3NpdGlvbnNWZXJpZnk7XG4gIH1cblxuICB1bmlmeUp1ZGdlbWVudChqdWRnZW1lbnQsIGNvbnRleHQpIHtcbiAgICBsZXQganVkZ2VtZW50VW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIGp1ZGdlbWVudFN0cmluZyA9IGp1ZGdlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQgd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGp1ZGdlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSB0aGlzLnVuaWZ5UmVmZXJlbmNlKHJlZmVyZW5jZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWZlcmVuY2VVbmlmaWVzKSB7XG4gICAgICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0ganVkZ2VtZW50LmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgICBjb25kaXRpb25hbCA9IHRoaXMuaXNDb25kaXRpb25hbCgpLFxuICAgICAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IHN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChjb25kaXRpb25hbCkge1xuICAgICAgICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgc3VicHJvb2Zhc3NlcnRpb25VbmlmaWVzID0gdGhpcy51bmlmeVN1YnByb29mQXNzZXJ0aW9uKHN1YnByb29mQXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1YnByb29mYXNzZXJ0aW9uVW5pZmllcykge1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBkZWR1Y2VkU3RhdG1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICAgICAgICAgIGRlZHVjZWRTdGF0bWVudFVuZmlmaWVzID0gdGhpcy51bmlmeURlZHVjZWRTdGF0ZW1lbnQoZGVkdWNlZFN0YXRtZW50LCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGRlZHVjZWRTdGF0bWVudFVuZmlmaWVzKSB7XG4gICAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgY29uc3QgYXNzdW1wdGlvbnMgPSBqdWRnZW1lbnQuZ2V0QXNzdW1wdGlvbnMoY29udGV4dCksXG4gICAgICAgICAgICAgICAgYXNzdW1wdGlvbnNVbmlmeSA9IHRoaXMudW5pZnlBc3N1bXB0aW9ucyhhc3N1bXB0aW9ucywgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoYXNzdW1wdGlvbnNVbmlmeSkge1xuICAgICAgICAgICAganVkZ2VtZW50VW5pZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAoanVkZ2VtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IHdpdGggdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50VW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5UmVmZXJlbmNlKHJlZmVyZW5jZSwgY29udGV4dCkge1xuICAgIGxldCByZWZlcmVuY2VVbmlmaWVzO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICByZWZlcmVuY2VVbmlmaWVzID0gdGhpcy5sYWJlbC51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlZmVyZW5jZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSB3aXRoIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb25zKGFzc3VtcHRpb25zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnNVbmlmeSA9IHRoaXMuY29uc3RyYWludHMuZXZlcnkoKGNvbnN0cmFpbnQpID0+IHtcbiAgICAgIGNvbnN0IGFzc3VtcHRpb25zVW5pZnkgPSBjb25zdHJhaW50LnVuaWZ5QXNzdW1wdGlvbnMoYXNzdW1wdGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoYXNzdW1wdGlvbnNVbmlmeSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uc1VuaWZ5O1xuICB9XG5cbiAgdW5pZnlEZWR1Y2VkU3RhdGVtZW50KGRlZHVjZWRTdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlZHVjdGlvblN0cmluZyA9IHRoaXMuZGVkdWN0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRTdHJpbmcgPSBkZWR1Y2VkU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpbm8uLi5gKTtcblxuICAgIGNvbnN0IGRlZHVjdGlvbkNvbnRleHQgPSB0aGlzLmRlZHVjdGlvbi5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudCA9IGRlZHVjZWRTdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gZGVkdWN0aW9uQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0aGlzLmRlZHVjdGlvbi51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGRlZHVjZWRTdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb25gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVkdWNlZFN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1YnByb29mQXNzZXJ0aW9uKHN1YnByb29mQXNzZXJ0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mQXNzZXJ0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2NoZW1hU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uU3RyaW5nID0gc3VicHJvb2ZBc3NlcnRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24gd2l0aCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hLi4uYCk7XG5cbiAgICBjb25zdCBkZWR1Y2VkU3RhdGVtZW50ID0gc3VicHJvb2ZBc3NlcnRpb24uZ2V0RGVkdWNlZFN0YXRlbWVudCgpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy51bmlmeURlZHVjZWRTdGF0ZW1lbnQoZGVkdWNlZFN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGNvbnN0IHN1cHBvc2VkU3RhdGVtZW50cyA9IHN1YnByb29mQXNzZXJ0aW9uLmdldFN1cHBvc2VkU3RhdGVtZW50cygpLFxuICAgICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkgPSB0aGlzLnVuaWZ5U3VwcG9zZWRTdGF0ZW1lbnRzKHN1cHBvc2VkU3RhdGVtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdXBwb3NlZFN0YXRlbWVudHNVbmlmeSkge1xuICAgICAgICBzdWJwcm9vZkFzc2VydGlvblVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uIHdpdGggdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NlZFN0YXRlbWVudChzdXBwb3NlZFN0YXRlbWVudCwgaW5kZXgsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zZWRTdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHRoaXMuZ2V0U3VwcG9zaXRpb24oaW5kZXgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nID0gc3VwcG9zaXRpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmcgPSBzdXBwb3NlZFN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdXBwb3NlZFN0YXRlbWVudFN0cmluZ30nIHN1cHBvc2VkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbkNvbnRleHQgPSBzdXBwb3NpdGlvbi5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudCA9IHN1cHBvc2VkU3RhdGVtZW50LCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IHN1cHBvc2l0aW9uQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBzdXBwb3NpdGlvbi51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmd9JyBzdXBwb3NlZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBwb3NlZFN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1cHBvc2VkU3RhdGVtZW50cyhzdXBwb3NlZFN0YXRlbWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uc0xlbmd0aCA9IHRoaXMuc3VwcG9zaXRpb25zLmxlbmd0aCxcbiAgICAgICAgICBzdXBwb3NlZFN0YXRlbWVudHNMZW5ndGggPSBzdXBwb3NlZFN0YXRlbWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc0xlbmd0aCA9PT0gc3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoKSB7XG4gICAgICBzdXBwb3NlZFN0YXRlbWVudHNVbmlmeSA9IHN1cHBvc2VkU3RhdGVtZW50cy5ldmVyeSgoc3VwcG9zZWRTdGF0ZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdXBwb3NlZFN0YXRlbWVudChzdXBwb3NlZFN0YXRlbWVudCwgaW5kZXgsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdXBwb3NlZFN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cHBvc2VkU3RhdGVtZW50c1VuaWZ5O1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgZGVkdWN0aW9uSlNPTiA9IGRlZHVjdGlvblRvRGVkdWN0aW9uSlNPTih0aGlzLmRlZHVjdGlvbiksXG4gICAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTih0aGlzLnN1cHBvc2l0aW9ucyksXG4gICAgICAgICAgY29uc3RyYWludHNKU09OID0gY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTih0aGlzLmNvbnN0cmFpbnRzKSxcbiAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIGRlZHVjdGlvbiA9IGRlZHVjdGlvbkpTT04sICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLCAgLy8vXG4gICAgICAgICAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgZGVkdWN0aW9uLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25zLFxuICAgICAgICAgICAgY29uc3RyYWludHNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2NoZW1hXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgZGVkdWN0aW9uID0gZGVkdWN0aW9uRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHNjaGVtYVN0cmluZ0Zyb21MYWJlbFN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbihsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24pLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgcHJvb2YgPSBudWxsLFxuICAgICAgICAgIHNjaGVtYSA9IG5ldyBTY2hlbWEoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24sIHByb29mLCBjb25zdHJhaW50cyk7XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBsZXQgc3VicHJvb2ZBc3NlcnRpb247XG5cbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHM7XG5cbiAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgc3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcblxufVxuIl0sIm5hbWVzIjpbImFzeW5jRm9yd2FyZHNFdmVyeSIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlNjaGVtYSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJsYWJlbCIsInN1cHBvc2l0aW9ucyIsImRlZHVjdGlvbiIsInByb29mIiwiY29uc3RyYWludHMiLCJnZXRMYWJlbCIsImdldFN1cHBvc2l0aW9ucyIsImdldERlZHVjdGlvbiIsImdldFByb29mIiwiZ2V0TUNvbnN0cmFpbnQiLCJnZXRTdXBwb3NpdGlvbiIsImluZGV4Iiwic3VwcG9zaXRpb24iLCJpc0NvbmRpdGlvbmFsIiwic3VwcG9zaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwiY29uZGl0aW9uYWwiLCJjb21wYXJlUmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibGFiZWxDb21wYXJlc1RvUmVmZmVyZW5jZSIsImNvbXBhcmVzVG9SZWZlcmVuY2UiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImJyZWFrIiwic2NoZW1hU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJlbmNhcHN1bGF0ZSIsImxhYmVsVmVyaWZpZXMiLCJ2ZXJpZnlMYWJlbCIsInN1cHBvc2l0aW9uc1ZlcmlmeSIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImRlZHVjdGlvblZlcmlmaWVzIiwidmVyaWZ5RGVkdWN0aW9uIiwicHJvb2ZWZXJpZmllcyIsInZlcmlmeVByb29mIiwic2NoZW1hIiwiYWRkU2NoZW1hIiwiZGVidWciLCJsYWJlbFN0cmluZyIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImRlZHVjdGlvblN0cmluZyIsInZlcmlmeVN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25WZXJpZmllcyIsInN1cHBvc2l0aW9uU3RyaW5nIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwiYXNzaWduQXNzaWdubWVudHMiLCJhZGRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24iLCJ1bmlmeUp1ZGdlbWVudCIsImp1ZGdlbWVudCIsImp1ZGdlbWVudFVuaWZpZXMiLCJqdWRnZW1lbnRTdHJpbmciLCJyZWNvbmNpbGUiLCJnZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2VVbmlmaWVzIiwidW5pZnlSZWZlcmVuY2UiLCJzdGF0ZW1lbnRVbmlmaWVzIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJzdWJwcm9vZmFzc2VydGlvblVuaWZpZXMiLCJ1bmlmeVN1YnByb29mQXNzZXJ0aW9uIiwiZGVkdWNlZFN0YXRtZW50IiwiZGVkdWNlZFN0YXRtZW50VW5maWZpZXMiLCJ1bmlmeURlZHVjZWRTdGF0ZW1lbnQiLCJhc3N1bXB0aW9ucyIsImdldEFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnNVbmlmeSIsInVuaWZ5QXNzdW1wdGlvbnMiLCJyZWZlcmVuY2VTdHJpbmciLCJldmVyeSIsImNvbnN0cmFpbnQiLCJkZWR1Y2VkU3RhdGVtZW50IiwiZGVkdWNlZFN0YXRlbWVudFVuaWZpZXMiLCJkZWR1Y2VkU3RhdGVtZW50U3RyaW5nIiwiZGVkdWN0aW9uQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInVuaWZ5U3RhdGVtZW50Iiwic3VicHJvb2ZBc3NlcnRpb25VbmlmaWVzIiwic3VicHJvb2ZBc3NlcnRpb25TdHJpbmciLCJnZXREZWR1Y2VkU3RhdGVtZW50Iiwic3VwcG9zZWRTdGF0ZW1lbnRzIiwiZ2V0U3VwcG9zZWRTdGF0ZW1lbnRzIiwic3VwcG9zZWRTdGF0ZW1lbnRzVW5pZnkiLCJ1bmlmeVN1cHBvc2VkU3RhdGVtZW50cyIsInVuaWZ5U3VwcG9zZWRTdGF0ZW1lbnQiLCJzdXBwb3NlZFN0YXRlbWVudCIsInN1cHBvc2VkU3RhdGVtZW50VW5pZmllcyIsInN1cHBvc2VkU3RhdGVtZW50U3RyaW5nIiwic3VwcG9zaXRpb25Db250ZXh0Iiwic3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoIiwidG9KU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsImRlZHVjdGlvbkpTT04iLCJkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04iLCJzdXBwb3NpdGlvbnNKU09OIiwic3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OIiwiY29uc3RyYWludHNKU09OIiwiY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJsYWJlbEZyb21KU09OIiwiZGVkdWN0aW9uRnJvbUpTT04iLCJzdXBwb3NpdGlvbnNGcm9tSlNPTiIsImNvbnN0cmFpbnRzRnJvbUpTT04iLCJzY2hlbWFTdHJpbmdGcm9tTGFiZWxTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24iLCJTdWJwcm9vZkFzc2VydGlvbiIsImVsZW1lbnRzIiwiZnJvbVN0YXRlbWVudCIsInZhbGlkYXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFxQkE7OztlQUFBOzs7Z0NBbkJvRTtrRUFFL0M7eUJBR2tCO3dCQUN1QjtzQkFRZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9DLE1BQU0sRUFBRUEsa0JBQWtCLEVBQUUsR0FBR0MscUNBQXFCLEVBQzlDLEVBQUVDLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFOUUsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxlQUFlQyx1QkFBTztJQUNoRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxDQUFFO1FBQ2pHLEtBQUssQ0FBQ1IsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO1FBQ3BCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDTCxLQUFLO0lBQ25CO0lBRUFNLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0wsWUFBWTtJQUMxQjtJQUVBTSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNMLFNBQVM7SUFDdkI7SUFFQU0sV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDTCxLQUFLO0lBQ25CO0lBRUFNLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDTCxXQUFXO0lBQ3pCO0lBRUFNLGVBQWVDLEtBQUssRUFBRTtRQUNwQixNQUFNQyxj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
|
package/package.json
CHANGED
package/src/element/schema.js
CHANGED
|
@@ -6,7 +6,6 @@ import elements from "../elements";
|
|
|
6
6
|
|
|
7
7
|
import { define } from "../elements";
|
|
8
8
|
import { reconcile, encapsulate } from "../utilities/context";
|
|
9
|
-
import { breakPointFromJSON, breakPointToBreakPointJSON } from "../utilities/breakPoint";
|
|
10
9
|
import { schemaStringFromLabelSuppositionsAndDeduction } from "../utilities/string";
|
|
11
10
|
import { labelFromJSON,
|
|
12
11
|
labelToLabelJSON,
|
|
@@ -17,7 +16,8 @@ import { labelFromJSON,
|
|
|
17
16
|
constraintsToConstraintsJSON,
|
|
18
17
|
suppositionsToSuppositionsJSON } from "../utilities/json";
|
|
19
18
|
|
|
20
|
-
const { asyncForwardsEvery } = asynchronousUtilities
|
|
19
|
+
const { asyncForwardsEvery } = asynchronousUtilities,
|
|
20
|
+
{ breakPointFromJSON, breakPointToBreakPointJSON } = breakPointUtilities;
|
|
21
21
|
|
|
22
22
|
export default define(class Schema extends Element {
|
|
23
23
|
constructor(context, string, node, breakPoint, label, suppositions, deduction, proof, constraints) {
|