occam-nominal 1.0.475 → 1.0.477
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/declaration/type.js +2 -2
- package/lib/element/equality.js +2 -2
- package/lib/process/validate.js +4 -4
- package/lib/process/validation.js +2 -2
- package/package.json +3 -3
- package/src/element/declaration/type.js +1 -1
- package/src/element/equality.js +1 -1
- package/src/process/validate.js +3 -3
- package/src/process/validation.js +1 -1
|
@@ -50,7 +50,7 @@ const _default = (0, _elements.define)(class TypeDeclaration extends _declaratio
|
|
|
50
50
|
verifyType,
|
|
51
51
|
verifySuperTypes,
|
|
52
52
|
verifyTypePrefix
|
|
53
|
-
], context, (back)=>{
|
|
53
|
+
], context, (context, back)=>{
|
|
54
54
|
const properties = this.getProperties(), typePrefix = context.getTypePrefix(), prefixName = typePrefix !== null ? typePrefix.getPrefixName() : null;
|
|
55
55
|
this.type.setProvisional(this.provisional);
|
|
56
56
|
this.type.setProperties(properties);
|
|
@@ -140,4 +140,4 @@ const _default = (0, _elements.define)(class TypeDeclaration extends _declaratio
|
|
|
140
140
|
static name = "TypeDeclaration";
|
|
141
141
|
});
|
|
142
142
|
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3R5cGVcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXMsXG4gICAgICB7IGFsbCwgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBzdXBlclR5cGVzLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0U3VwZXJUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGVzO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm92aXNpb25hbDtcbiAgfVxuXG4gIGdldHR5cGVEZWNsYXJhdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHR5cGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiB0eXBlRGVjbGFyYXRpb25Ob2RlO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcygpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICByZXR1cm4gcHJvcGVydGllcztcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgdmVyaWZ5VHlwZSA9IHRoaXMudmVyaWZ5VHlwZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZlcmlmeVN1cGVyVHlwZXMgPSB0aGlzLnZlcmlmeVN1cGVyVHlwZXMuYmluZCh0aGlzKSxcbiAgICAgICAgICB2ZXJpZnlUeXBlUHJlZml4ID0gdGhpcy52ZXJpZnlUeXBlUHJlZml4LmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gYWxsKFtcbiAgICAgIHZlcmlmeVR5cGUsXG4gICAgICB2ZXJpZnlTdXBlclR5cGVzLFxuICAgICAgdmVyaWZ5VHlwZVByZWZpeFxuICAgIF0sIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0aWVzKCksXG4gICAgICAgICAgICB0eXBlUHJlZml4ID0gY29udGV4dC5nZXRUeXBlUHJlZml4KCksXG4gICAgICAgICAgICBwcmVmaXhOYW1lID0gKHR5cGVQcmVmaXggIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXguZ2V0UHJlZml4TmFtZSgpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICAgICAgdGhpcy50eXBlLnNldFByb3Zpc2lvbmFsKHRoaXMucHJvdmlzaW9uYWwpO1xuXG4gICAgICB0aGlzLnR5cGUuc2V0UHJvcGVydGllcyhwcm9wZXJ0aWVzKTtcblxuICAgICAgdGhpcy50eXBlLnNldFByZWZpeE5hbWUocHJlZml4TmFtZSk7XG5cbiAgICAgIGNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH0pO1xuXG4gIHZlcmlmeVR5cGUoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZS4uLmApO1xuXG4gICAgbGV0IHR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFR5cGVOYW1lID0gdHlwZU5hbWUsIC8vL1xuICAgICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVByZWZpeGVkVHlwZU5hbWUocHJlZml4ZWRUeXBlTmFtZSk7XG5cbiAgICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgICAgdHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKCF0eXBlVmVyaWZpZXMpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZWApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB2ZXJpZnlUeXBlUHJlZml4KGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgIHR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlRGVjbGFyYXRpb25TdHJpbmd9JyB0eXBlIGRlY2xhcmF0aW9uJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUncyBwcmVmaXguLi5gKTtcblxuICAgIGxldCB0eXBlUHJlZml4VmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVQcmVmaXhlZCA9IHRoaXMudHlwZS5pc1ByZWZpeGVkKCk7XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhlZCkge1xuICAgICAgdHlwZVByZWZpeFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVmaXhlZC5gKTtcbiAgICB9XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhWZXJpZmllcykge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlJ3MgcHJlZml4LmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGVzKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzIHN1cGVyLXR5cGVzLi4uYCk7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgIHN1cGVyVHl1cGUgPSBiYXNlVHlwZTsgIC8vL1xuXG4gICAgICB0aGlzLnR5cGUuc2V0U3VwZXJUeXBlKHN1cGVyVHl1cGUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdXBlclR5cGVzID0gW107IC8vL1xuXG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMuc3VwZXJUeXBlcywgKHN1cGVyVHlwZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5U3VwZXJUeXBlKHN1cGVyVHlwZSwgc3VwZXJUeXBlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIHRoaXMudHlwZS5zZXRTdXBlclR5cGVzKHN1cGVyVHlwZXMpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzIHN1cGVyLXR5cGVzLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUsIHN1cGVyVHlwZXMsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdXBlclR5cGVTdHJpbmcgPSBzdXBlclR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlLi4uYCk7XG5cbiAgICBsZXQgc3VwZXJUeXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICB0eXBlTmFtZSA9IG5vbWluYWxUeXBlTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZUNvbXBhcmVzVG9UeXBlTmFtZSA9IHRoaXMudHlwZS5jb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgaWYgKCF0eXBlQ29tcGFyZXNUb1R5cGVOYW1lKSB7XG4gICAgICBzdXBlclR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSAhPT0gbnVsbCkge1xuICAgICAgICBzdXBlclR5cGVzLnB1c2goc3VwZXJUeXBlKTtcblxuICAgICAgICBzdXBlclR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUncyBuYW1lIGNvbXBhcmVzIHRvIHRoZSAke3R5cGVOYW1lfScgdHlwZSdzIG5hbWUuYCk7XG4gICAgfVxuXG4gICAgaWYgKCFzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUeXBlRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJhbGwiLCJldmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlR5cGVEZWNsYXJhdGlvbiIsIkRlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInN1cGVyVHlwZXMiLCJwcm92aXNpb25hbCIsImdldFR5cGUiLCJnZXRTdXBlclR5cGVzIiwiaXNQcm92aXNpb25hbCIsImdldHR5cGVEZWNsYXJhdGlvbk5vZGUiLCJnZXROb2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsImdldFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwidmVyaWZ5IiwiZm9yd2FyZCIsImJhY2siLCJ0eXBlRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVR5cGUiLCJiaW5kIiwidmVyaWZ5U3VwZXJUeXBlcyIsInZlcmlmeVR5cGVQcmVmaXgiLCJ0eXBlUHJlZml4IiwiZ2V0VHlwZVByZWZpeCIsInByZWZpeE5hbWUiLCJnZXRQcmVmaXhOYW1lIiwic2V0UHJvdmlzaW9uYWwiLCJzZXRQcm9wZXJ0aWVzIiwic2V0UHJlZml4TmFtZSIsImFkZFR5cGUiLCJkZWJ1ZyIsInR5cGVTdHJpbmciLCJ0eXBlVmVyaWZpZXMiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJpbmNsdWRlUmVsZWFzZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZSIsInR5cGVQcmVmaXhWZXJpZmllcyIsInR5cGVQcmVmaXhlZCIsImlzUHJlZml4ZWQiLCJzdXBlclR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiYmFzZVR5cGUiLCJiYXNlVHlwZUZyb21Ob3RoaW5nIiwic3VwZXJUeXVwZSIsInNldFN1cGVyVHlwZSIsInN1cGVyVHlwZSIsInZlcmlmeVN1cGVyVHlwZSIsInNldFN1cGVyVHlwZXMiLCJzdXBlclR5cGVTdHJpbmciLCJzdXBlclR5cGVWZXJpZmllcyIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsInR5cGVDb21wYXJlc1RvVHlwZU5hbWUiLCJjb21wYXJlVHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwicHVzaCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVYyRDtvRUFFbkM7MEJBRUQ7c0JBQ2E7Ozs7OztBQUVwQyxNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUIsRUFDbkMsRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUUsR0FBR0MscUNBQXFCO01BRTVDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyxvQkFBVztJQUM3RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxXQUFXLENBQUU7UUFDNUUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsVUFBVTtJQUN4QjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsV0FBVztJQUN6QjtJQUVBSSx5QkFBeUI7UUFDdkIsTUFBTVIsT0FBTyxJQUFJLENBQUNTLE9BQU8sSUFDbkJDLHNCQUFzQlYsTUFBTSxHQUFHO1FBRXJDLE9BQU9VO0lBQ1Q7SUFFQUMsZ0JBQWdCO1FBQ2QsTUFBTUMsYUFBYSxFQUFFO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsU0FBU3ZCLFVBQVUsU0FBVVEsT0FBTyxFQUFFZ0IsT0FBTyxFQUFFQyxJQUFJO1FBQ2pELE1BQU1DLHdCQUF3QixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRXBEbkIsUUFBUW9CLEtBQUssQ0FBQyxDQUFD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
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3R5cGVcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXMsXG4gICAgICB7IGFsbCwgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBzdXBlclR5cGVzLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0U3VwZXJUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGVzO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm92aXNpb25hbDtcbiAgfVxuXG4gIGdldHR5cGVEZWNsYXJhdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHR5cGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiB0eXBlRGVjbGFyYXRpb25Ob2RlO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcygpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICByZXR1cm4gcHJvcGVydGllcztcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgdmVyaWZ5VHlwZSA9IHRoaXMudmVyaWZ5VHlwZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZlcmlmeVN1cGVyVHlwZXMgPSB0aGlzLnZlcmlmeVN1cGVyVHlwZXMuYmluZCh0aGlzKSxcbiAgICAgICAgICB2ZXJpZnlUeXBlUHJlZml4ID0gdGhpcy52ZXJpZnlUeXBlUHJlZml4LmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gYWxsKFtcbiAgICAgIHZlcmlmeVR5cGUsXG4gICAgICB2ZXJpZnlTdXBlclR5cGVzLFxuICAgICAgdmVyaWZ5VHlwZVByZWZpeFxuICAgIF0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0aWVzKCksXG4gICAgICAgICAgICB0eXBlUHJlZml4ID0gY29udGV4dC5nZXRUeXBlUHJlZml4KCksXG4gICAgICAgICAgICBwcmVmaXhOYW1lID0gKHR5cGVQcmVmaXggIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXguZ2V0UHJlZml4TmFtZSgpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICAgICAgdGhpcy50eXBlLnNldFByb3Zpc2lvbmFsKHRoaXMucHJvdmlzaW9uYWwpO1xuXG4gICAgICB0aGlzLnR5cGUuc2V0UHJvcGVydGllcyhwcm9wZXJ0aWVzKTtcblxuICAgICAgdGhpcy50eXBlLnNldFByZWZpeE5hbWUocHJlZml4TmFtZSk7XG5cbiAgICAgIGNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH0pO1xuXG4gIHZlcmlmeVR5cGUoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZS4uLmApO1xuXG4gICAgbGV0IHR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFR5cGVOYW1lID0gdHlwZU5hbWUsIC8vL1xuICAgICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVByZWZpeGVkVHlwZU5hbWUocHJlZml4ZWRUeXBlTmFtZSk7XG5cbiAgICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgICAgdHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKCF0eXBlVmVyaWZpZXMpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZWApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB2ZXJpZnlUeXBlUHJlZml4KGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgIHR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlRGVjbGFyYXRpb25TdHJpbmd9JyB0eXBlIGRlY2xhcmF0aW9uJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUncyBwcmVmaXguLi5gKTtcblxuICAgIGxldCB0eXBlUHJlZml4VmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVQcmVmaXhlZCA9IHRoaXMudHlwZS5pc1ByZWZpeGVkKCk7XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhlZCkge1xuICAgICAgdHlwZVByZWZpeFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVmaXhlZC5gKTtcbiAgICB9XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhWZXJpZmllcykge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlJ3MgcHJlZml4LmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGVzKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzIHN1cGVyLXR5cGVzLi4uYCk7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgIHN1cGVyVHl1cGUgPSBiYXNlVHlwZTsgIC8vL1xuXG4gICAgICB0aGlzLnR5cGUuc2V0U3VwZXJUeXBlKHN1cGVyVHl1cGUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdXBlclR5cGVzID0gW107IC8vL1xuXG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMuc3VwZXJUeXBlcywgKHN1cGVyVHlwZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5U3VwZXJUeXBlKHN1cGVyVHlwZSwgc3VwZXJUeXBlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIHRoaXMudHlwZS5zZXRTdXBlclR5cGVzKHN1cGVyVHlwZXMpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzIHN1cGVyLXR5cGVzLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUsIHN1cGVyVHlwZXMsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzdXBlclR5cGVTdHJpbmcgPSBzdXBlclR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24ncyAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlLi4uYCk7XG5cbiAgICBsZXQgc3VwZXJUeXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICB0eXBlTmFtZSA9IG5vbWluYWxUeXBlTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZUNvbXBhcmVzVG9UeXBlTmFtZSA9IHRoaXMudHlwZS5jb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgaWYgKCF0eXBlQ29tcGFyZXNUb1R5cGVOYW1lKSB7XG4gICAgICBzdXBlclR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSAhPT0gbnVsbCkge1xuICAgICAgICBzdXBlclR5cGVzLnB1c2goc3VwZXJUeXBlKTtcblxuICAgICAgICBzdXBlclR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUncyBuYW1lIGNvbXBhcmVzIHRvIHRoZSAke3R5cGVOYW1lfScgdHlwZSdzIG5hbWUuYCk7XG4gICAgfVxuXG4gICAgaWYgKCFzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbidzICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUeXBlRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJhbGwiLCJldmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlR5cGVEZWNsYXJhdGlvbiIsIkRlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInN1cGVyVHlwZXMiLCJwcm92aXNpb25hbCIsImdldFR5cGUiLCJnZXRTdXBlclR5cGVzIiwiaXNQcm92aXNpb25hbCIsImdldHR5cGVEZWNsYXJhdGlvbk5vZGUiLCJnZXROb2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsImdldFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwidmVyaWZ5IiwiZm9yd2FyZCIsImJhY2siLCJ0eXBlRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVR5cGUiLCJiaW5kIiwidmVyaWZ5U3VwZXJUeXBlcyIsInZlcmlmeVR5cGVQcmVmaXgiLCJ0eXBlUHJlZml4IiwiZ2V0VHlwZVByZWZpeCIsInByZWZpeE5hbWUiLCJnZXRQcmVmaXhOYW1lIiwic2V0UHJvdmlzaW9uYWwiLCJzZXRQcm9wZXJ0aWVzIiwic2V0UHJlZml4TmFtZSIsImFkZFR5cGUiLCJkZWJ1ZyIsInR5cGVTdHJpbmciLCJ0eXBlVmVyaWZpZXMiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJpbmNsdWRlUmVsZWFzZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZSIsInR5cGVQcmVmaXhWZXJpZmllcyIsInR5cGVQcmVmaXhlZCIsImlzUHJlZml4ZWQiLCJzdXBlclR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiYmFzZVR5cGUiLCJiYXNlVHlwZUZyb21Ob3RoaW5nIiwic3VwZXJUeXVwZSIsInNldFN1cGVyVHlwZSIsInN1cGVyVHlwZSIsInZlcmlmeVN1cGVyVHlwZSIsInNldFN1cGVyVHlwZXMiLCJzdXBlclR5cGVTdHJpbmciLCJzdXBlclR5cGVWZXJpZmllcyIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsInR5cGVDb21wYXJlc1RvVHlwZU5hbWUiLCJjb21wYXJlVHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwicHVzaCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVYyRDtvRUFFbkM7MEJBRUQ7c0JBQ2E7Ozs7OztBQUVwQyxNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUIsRUFDbkMsRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUUsR0FBR0MscUNBQXFCO01BRTVDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyxvQkFBVztJQUM3RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxXQUFXLENBQUU7UUFDNUUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsVUFBVTtJQUN4QjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsV0FBVztJQUN6QjtJQUVBSSx5QkFBeUI7UUFDdkIsTUFBTVIsT0FBTyxJQUFJLENBQUNTLE9BQU8sSUFDbkJDLHNCQUFzQlYsTUFBTSxHQUFHO1FBRXJDLE9BQU9VO0lBQ1Q7SUFFQUMsZ0JBQWdCO1FBQ2QsTUFBTUMsYUFBYSxFQUFFO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsU0FBU3ZCLFVBQVUsU0FBVVEsT0FBTyxFQUFFZ0IsT0FBTyxFQUFFQyxJQUFJO1FBQ2pELE1BQU1DLHdCQUF3QixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRXBEbkIsUUFBUW9CLEtBQUss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
|
package/lib/element/equality.js
CHANGED
|
@@ -83,7 +83,7 @@ const _default = (0, _elements.define)(class Equality extends _occamlanguages.El
|
|
|
83
83
|
validateWhenDerived
|
|
84
84
|
], state, context, (state, context, back)=>{
|
|
85
85
|
equality = this; ///
|
|
86
|
-
this.assign(
|
|
86
|
+
this.assign(state, context);
|
|
87
87
|
context.addEquality(equality);
|
|
88
88
|
context.debug(`...validated the '${equalityString}equality.`);
|
|
89
89
|
return forward(equality, context, back);
|
|
@@ -190,4 +190,4 @@ function rightTermFromEqualityNode(equalityNode, context) {
|
|
|
190
190
|
return rightTerm;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWFsaXR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgZXF1YXRlVGVybXMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9lcXVhdGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUVxdWFsaXR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGVxdWFsaXR5RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGlzRGVyaXZlZCwgaXNEZWNsYXJlZCwgaXNUcmFuc2llbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0YXRlXCI7XG5pbXBvcnQgeyBlcXVhbGl0eUFzc2lnbm1lbnRGcm9tRXF1YWxpdHksIGxlZnRWYXJpYWJsZUFzc2lnbm1lbnRGcm9tRXF1YWxpdHksIHJpZ2h0VmFyaWFibGVBc3NpZ25tZW50RnJvbUVxdWFsaXR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvYXNzaWduXCI7XG5cbmNvbnN0IHsgYWxsLCBleGlzdHMgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVxdWFsaXR5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcbiAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZ2V0RXF1YWxpdHlOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBlcXVhbGl0eU5kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5TmRlO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm1Ob2RlKCkge1xuICAgIGNvbnN0IGxlZnRUZXJtTm9kZSA9IHRoaXMubGVmdFRlcm0uZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIGxlZnRUZXJtTm9kZTtcbiAgfVxuXG4gIGdldFJpZ2h0VGVybU5vZGUoKSB7XG4gICAgY29uc3QgcmlnaHRUZXJtTm9kZSA9IHRoaXMucmlnaHRUZXJtLmdldE5vZGUoKTtcblxuICAgIHJldHVybiByaWdodFRlcm1Ob2RlO1xuICB9XG5cbiAgZ2V0VGVybXMoKSB7XG4gICAgY29uc3QgdGVybXMgPSBbXG4gICAgICB0aGlzLmxlZnRUZXJtLFxuICAgICAgdGhpcy5yaWdodFRlcm1cbiAgICBdO1xuXG4gICAgcmV0dXJuIHRlcm1zO1xuICB9XG5cbiAgbWF0Y2hFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGVxdWFsaXR5Tm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBlcXVhbGl0eU5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBpc0VxdWFsVG8oZXF1YWxpdHkpIHtcbiAgICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eS5nZXROb2RlKCksXG4gICAgICAgICAgZXF1YWxpdHlOb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0gZXF1YWxpdHlOb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBmaW5kRXF1YWxpdHkoY29udGV4dCkge1xuICAgIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IHRoaXMuZ2V0RXF1YWxpdHlOb2RlKCksXG4gICAgICAgICAgZXF1YWxpdHkgPSBjb250ZXh0LmZpbmRFcXVhbGl0eUJ5RXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHk7XG4gIH1cblxuICB2YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCBlcXVhbGl0eTtcblxuICAgIGNvbnN0IGVxdWFsaXR5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS4uLmApO1xuXG4gICAgZXF1YWxpdHkgPSB0aGlzLmZpbmRFcXVhbGl0eShjb250ZXh0KTtcblxuICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChlcXVhbGl0eSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGVUZXJtcyA9IHRoaXMudmFsaWRhdGVUZXJtcy5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIGFsbChbXG4gICAgICB2YWxpZGF0ZVRlcm1zXG4gICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVXaGVuRGVjbGFyZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlY2xhcmVkLmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVdoZW5EZXJpdmVkID0gdGhpcy52YWxpZGF0ZVdoZW5EZXJpdmVkLmJpbmQodGhpcyk7XG5cbiAgICAgIHJldHVybiBleGlzdHMoW1xuICAgICAgICB2YWxpZGF0ZVdoZW5EZWNsYXJlZCxcbiAgICAgICAgdmFsaWRhdGVXaGVuRGVyaXZlZFxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICBlcXVhbGl0eSA9IHRoaXM7IC8vL1xuXG4gICAgICAgIHRoaXMuYXNzaWduKGNvbnRleHQsIGJhY2spO1xuXG4gICAgICAgIGNvbnRleHQuYWRkRXF1YWxpdHkoZXF1YWxpdHkpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9ZXF1YWxpdHkuYCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoZXF1YWxpdHksIGNvbnRleHQsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG5cbiAgfVxuXG4gIHZhbGlkYXRlVGVybXMoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eSdzIHRlcm1zLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5sZWZ0VGVybS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKGxlZnRUZXJtLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yaWdodFRlcm0udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChyaWdodFRlcm0sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgbGVmdFRlcm1UeXBlID0gbGVmdFRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFRlcm1UeXBlID0gcmlnaHRUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgbGVmdFRlcm1UeXBlQmFzZVR5cGUgPSBsZWZ0VGVybVR5cGUuaXNCYXNlVHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFRlcm1UeXBlQmFzZVR5cGUgPSByaWdodFRlcm1UeXBlLmlzQmFzZVR5cGUoKSxcbiAgICAgICAgICAgICAgbGVmdFRlcm1UeXBlSm9pbmVkVG9SaWdodFRlcm1UeXBlID0gbGVmdFRlcm1UeXBlLmlzSm9pbmVkVG8ocmlnaHRUZXJtVHlwZSk7XG5cbiAgICAgICAgaWYgKCFsZWZ0VGVybVR5cGVCYXNlVHlwZSAmJiAhcmlnaHRUZXJtVHlwZUJhc2VUeXBlICYmICFsZWZ0VGVybVR5cGVKb2luZWRUb1JpZ2h0VGVybVR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sZWZ0VGVybSA9IGxlZnRUZXJtO1xuXG4gICAgICAgIHRoaXMucmlnaHRUZXJtID0gcmlnaHRUZXJtO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eSdzIHRlcm1zLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuRGVjbGFyZWQoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBkZWNsYXJlZCA9IGlzRGVjbGFyZWQoc3RhdGUpO1xuXG4gICAgaWYgKCFkZWNsYXJlZCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBkZWNsYXJlZCBlcXVhbGl0eS4uLmApO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlY2xhcmVkIGVxdWFsaXR5LmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuRGVyaXZlZChzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGRlcml2ZWQgPSBpc0Rlcml2ZWQoc3RhdGUpO1xuXG4gICAgaWYgKCFkZXJpdmVkKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGVxdWFsaXR5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlcml2ZWQgZXF1YWxpdHkuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1zRXF1YXRlID0gZXF1YXRlVGVybXModGhpcy5sZWZ0VGVybSwgdGhpcy5yaWdodFRlcm0sIGNvbnRleHQpO1xuXG4gICAgaWYgKCh0aGlzLm5lZ2F0ZWQgJiYgdGVybXNFcXVhdGUpIHx8ICghdGhpcy5uZWdhdGVkICYmICF0ZXJtc0VxdWF0ZSkpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlcml2ZWQgZXF1YWxpdHkuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gIH1cblxuICBhc3NpZ24oc3RhdGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0cmFuc2llbnQgPSBpc1RyYW5zaWVudChzdGF0ZSk7XG5cbiAgICBpZiAodHJhbnNpZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmVnYXRlZCA9IHRoaXMuaXNOZWdhdGVkKCk7XG5cbiAgICBpZiAobmVnYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVxdWFsaXR5ID0gdGhpczsgIC8vL1xuXG4gICAgY29uc3QgZXF1YWxpdHlBc3NpZ25tZW50ID0gZXF1YWxpdHlBc3NpZ25tZW50RnJvbUVxdWFsaXR5KGVxdWFsaXR5LCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuYWRkQXNzaWdubWVudChlcXVhbGl0eUFzc2lnbm1lbnQpO1xuXG4gICAgY29uc3QgZGVyaXZlZCA9IGlzRGVyaXZlZChzdGF0ZSk7XG5cbiAgICBpZiAoZGVyaXZlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxlZnRWYXJpYWJsZUFzc2lnbm1lbnQgPSBsZWZ0VmFyaWFibGVBc3NpZ25tZW50RnJvbUVxdWFsaXR5KGVxdWFsaXR5LCBjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhcmlhYmxlQXNzaWdubWVudCA9IHJpZ2h0VmFyaWFibGVBc3NpZ25tZW50RnJvbUVxdWFsaXR5KGVxdWFsaXR5LCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuYWRkQXNzaWdubWVudChsZWZ0VmFyaWFibGVBc3NpZ25tZW50KTtcblxuICAgIGNvbnRleHQuYWRkQXNzaWdubWVudChyaWdodFZhcmlhYmxlQXNzaWdubWVudCk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXF1YWxpdHlcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBlcXVhbGl0eTtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIGVxdWFsaXR5Tm9kZSA9IGluc3RhbnRpYXRlRXF1YWxpdHkoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBlcXVhbGl0eU5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBuZWdhdGVkID0gbmVnYXRlZEZyb21FcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGxlZnRUZXJtID0gbGVmdFRlcm1Gcm9tRXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICByaWdodFRlcm0gPSByaWdodFRlcm1Gcm9tRXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBlcXVhbGl0eSA9IG5ldyBFcXVhbGl0eShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5lZ2F0ZWQsIGxlZnRUZXJtLCByaWdodFRlcm0pO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgZXF1YWxpdHkgPSBlcXVhbGl0eUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5O1xuICB9XG59KTtcblxuZnVuY3Rpb24gbmVnYXRlZEZyb21FcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IG5lZ2F0ZWQgPSBlcXVhbGl0eU5vZGUuaXNOZWdhdGVkKCk7XG5cbiAgcmV0dXJuIG5lZ2F0ZWQ7XG59XG5cbmZ1bmN0aW9uIGxlZnRUZXJtRnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgbGVmdFRlcm1Ob2RlID0gZXF1YWxpdHlOb2RlLmdldExlZnRUZXJtTm9kZSgpLFxuICAgICAgICBsZWZ0VGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKGxlZnRUZXJtTm9kZSk7XG5cbiAgcmV0dXJuIGxlZnRUZXJtO1xufVxuXG5mdW5jdGlvbiByaWdodFRlcm1Gcm9tRXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCByaWdodFRlcm1Ob2RlID0gZXF1YWxpdHlOb2RlLmdldExlZnRUZXJtTm9kZSgpLFxuICAgICAgICByaWdodFRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZShyaWdodFRlcm1Ob2RlKTtcblxuICByZXR1cm4gcmlnaHRUZXJtO1xufVxuIl0sIm5hbWVzIjpbImFsbCIsImV4aXN0cyIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkVxdWFsaXR5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5lZ2F0ZWQiLCJsZWZ0VGVybSIsInJpZ2h0VGVybSIsImlzTmVnYXRlZCIsImdldExlZnRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwiZ2V0RXF1YWxpdHlOb2RlIiwiZ2V0Tm9kZSIsImVxdWFsaXR5TmRlIiwiZ2V0TGVmdFRlcm1Ob2RlIiwibGVmdFRlcm1Ob2RlIiwiZ2V0UmlnaHRUZXJtTm9kZSIsInJpZ2h0VGVybU5vZGUiLCJnZXRUZXJtcyIsInRlcm1zIiwibWF0Y2hFcXVhbGl0eU5vZGUiLCJlcXVhbGl0eU5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImVxdWFsaXR5Tm9kZU1hdGNoZXMiLCJpc0VxdWFsVG8iLCJlcXVhbGl0eSIsImVxdWFsVG8iLCJmaW5kRXF1YWxpdHkiLCJmaW5kRXF1YWxpdHlCeUVxdWFsaXR5Tm9kZSIsInZhbGlkYXRlIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImVxdWFsaXR5U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWJ1ZyIsInZhbGlkYXRlVGVybXMiLCJiaW5kIiwidmFsaWRhdGVXaGVuRGVjbGFyZWQiLCJ2YWxpZGF0ZVdoZW5EZXJpdmVkIiwiYXNzaWduIiwiYWRkRXF1YWxpdHkiLCJsZWZ0VGVybVR5cGUiLCJnZXRUeXBlIiwicmlnaHRUZXJtVHlwZSIsImxlZnRUZXJtVHlwZUJhc2VUeXBlIiwiaXNCYXNlVHlwZSIsInJpZ2h0VGVybVR5cGVCYXNlVHlwZSIsImxlZnRUZXJtVHlwZUpvaW5lZFRvUmlnaHRUZXJtVHlwZSIsImlzSm9pbmVkVG8iLCJkZWNsYXJlZCIsImlzRGVjbGFyZWQiLCJkZXJpdmVkIiwiaXNEZXJpdmVkIiwidGVybXNFcXVhdGUiLCJlcXVhdGVUZXJtcyIsInRyYW5zaWVudCIsImlzVHJhbnNpZW50IiwiZXF1YWxpdHlBc3NpZ25tZW50IiwiZXF1YWxpdHlBc3NpZ25tZW50RnJvbUVxdWFsaXR5IiwiYWRkQXNzaWdubWVudCIsImxlZnRWYXJpYWJsZUFzc2lnbm1lbnQiLCJsZWZ0VmFyaWFibGVBc3NpZ25tZW50RnJvbUVxdWFsaXR5IiwicmlnaHRWYXJpYWJsZUFzc2lnbm1lbnQiLCJyaWdodFZhcmlhYmxlQXNzaWdubWVudEZyb21FcXVhbGl0eSIsInRvSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsImluc3RhbnRpYXRlRXF1YWxpdHkiLCJuZWdhdGVkRnJvbUVxdWFsaXR5Tm9kZSIsImxlZnRUZXJtRnJvbUVxdWFsaXR5Tm9kZSIsInJpZ2h0VGVybUZyb21FcXVhbGl0eU5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImVxdWFsaXR5RnJvbVN0YXRlbWVudE5vZGUiLCJmaW5kVGVybUJ5VGVybU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBQTs7O2dDQWJvRTswQkFFN0M7d0JBQ0s7eUJBQ0E7NkJBQ1E7eUJBQ007dUJBQ1M7d0JBQ3FFO0FBRXhILE1BQU0sRUFBRUEsR0FBRyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MscUNBQXFCLEVBQ3ZDLEVBQUVDLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFOUUsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxpQkFBaUJDLHVCQUFPO0lBQ2xELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUMzRSxLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxPQUFPO0lBQ3JCO0lBRUFJLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0gsUUFBUTtJQUN0QjtJQUVBSSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNILFNBQVM7SUFDdkI7SUFFQUksa0JBQWtCO1FBQ2hCLE1BQU1SLE9BQU8sSUFBSSxDQUFDUyxPQUFPLElBQ25CQyxjQUFjVixNQUFNLEdBQUc7UUFFN0IsT0FBT1U7SUFDVDtJQUVBQyxrQkFBa0I7UUFDaEIsTUFBTUMsZUFBZSxJQUFJLENBQUNULFFBQVEsQ0FBQ00sT0FBTztRQUUxQyxPQUFPRztJQUNUO0lBRUFDLG1CQUFtQjtRQUNqQixNQUFNQyxnQkFBZ0IsSUFBSSxDQUFDVixTQUFTLENBQUNLLE9BQU87UUFFNUMsT0FBT0s7SUFDVDtJQUVBQyxXQUFXO1FBQ1QsTUFBTUMsUUFBUTtZQUNaLElBQUksQ0FBQ2IsUUFBUTtZQUNiLElBQUksQ0FBQ0MsU0FBUztTQUNmO1FBRUQsT0FBT1k7SUFDVDtJQUVBQyxrQkFBa0JDLFlBQVksRUFBRTtRQUM5QixNQUFNbEIsT0FBT2tCLGNBQ1BDLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNwQixPQUM3QnFCLHNCQUFzQkYsYUFBYSxHQUFHO1FBRTVDLE9BQU9FO0lBQ1Q7SUFFQUMsVUFBVUMsUUFBUSxFQUFFO1FBQ2xCLE1BQU1MLGVBQWVLLFNBQVNkLE9BQU8sSUFDL0JZLHNCQUFzQixJQUFJLENBQUNKLGlCQUFpQixDQUFDQyxlQUM3Q00sVUFBVUgscUJBQXNCLEdBQUc7UUFFekMsT0FBT0c7SUFDVDtJQUVBQyxhQUFhM0IsT0FBTyxFQUFFO1FBQ3BCLE1BQU1vQixlQUFlLElBQUksQ0FBQ1YsZUFBZSxJQUNuQ2UsV0FBV3pCLFFBQVE0QiwwQkFBMEIsQ0FBQ1I7UUFFcEQsT0FBT0s7SUFDVDtJQUVBSSxTQUFTQyxLQUFLLEVBQUU5QixPQUFPLEVBQUUrQixPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN0QyxJQUFJUDtRQUVKLE1BQU1RLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDbEMsUUFBUW1DLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLGFBQWEsQ0FBQztRQUU5RFIsV0FBVyxJQUFJLENBQUNFLFlBQVksQ0FBQzNCO1FBRTdCLElBQUl5QixhQUFhLE1BQU07WUFDckJ6QixRQUFRb0MsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFSCxlQUFlLDhCQUE4QixDQUFDO1lBRXBFLE9BQU9GLFFBQVFOLFVBQVV6QjtRQUMzQjtRQUVBLE1BQU1xQyxnQkFBZ0IsSUFBSSxDQUFDQSxhQUFhLENBQUNDLElBQUksQ0FBQyxJQUFJO1FBRWxELE9BQU8vQyxJQUFJO1lBQ1Q4QztTQUNELEVBQUVQLE9BQU85QixTQUFTLENBQUM4QixPQUFPOUIsU0FBU2dDO1lBQ2xDLE1BQU1PLHVCQUF1QixJQUFJLENBQUNBLG9CQUFvQixDQUFDRCxJQUFJLENBQUMsSUFBSSxHQUMxREUsc0JBQXNCLElBQUksQ0FBQ0EsbUJBQW1CLENBQUNGLElBQUksQ0FBQyxJQUFJO1lBRTlELE9BQU85QyxPQUFPO2dCQUNaK0M7Z0JBQ0FDO2FBQ0QsRUFBRVYsT0FBTzlCLFNBQVMsQ0FBQzhCLE9BQU85QixTQUFTZ0M7Z0JBQ2xDUCxXQUFXLElBQUksRUFBRSxHQUFHO2dCQUVwQixJQUFJLENBQUNnQixNQUFNLENBQUN6QyxTQUFTZ0M7Z0JBRXJCaEMsUUFBUTBDLFdBQVcsQ0FBQ2pCO2dCQUVwQnpCLFFBQVFvQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUgsZUFBZSxTQUFTLENBQUM7Z0JBRTVELE9BQU9GLFFBQVFOLFVBQVV6QixTQUFTZ0M7WUFDcEMsR0FBR0E7UUFDTCxHQUFHQTtJQUVMO0lBRUFLLGNBQWNQLEtBQUssRUFBRTlCLE9BQU8sRUFBRStCLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQzNDLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTVDbEMsUUFBUW1DLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLHFCQUFxQixDQUFDO1FBRXRFLE9BQU8sSUFBSSxDQUFDNUIsUUFBUSxDQUFDd0IsUUFBUSxDQUFDQyxPQUFPOUIsU0FBUyxDQUFDSyxVQUFVTCxTQUFTZ0M7WUFDaEUsT0FBTyxJQUFJLENBQUMxQixTQUFTLENBQUN1QixRQUFRLENBQUNDLE9BQU85QixTQUFTLENBQUNNLFdBQVdOLFNBQVNnQztnQkFDbEUsTUFBTVcsZUFBZXRDLFNBQVN1QyxPQUFPLElBQy9CQyxnQkFBZ0J2QyxVQUFVc0MsT0FBTyxJQUNqQ0UsdUJBQXVCSCxhQUFhSSxVQUFVLElBQzlDQyx3QkFBd0JILGNBQWNFLFVBQVUsSUFDaERFLG9DQUFvQ04sYUFBYU8sVUFBVSxDQUFDTDtnQkFFbEUsSUFBSSxDQUFDQyx3QkFBd0IsQ0FBQ0UseUJBQXlCLENBQUNDLG1DQUFtQztvQkFDekYsT0FBT2pCO2dCQUNUO2dCQUVBLElBQUksQ0FBQzNCLFFBQVEsR0FBR0E7Z0JBRWhCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtnQkFFakJOLFFBQVFvQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUgsZUFBZSxtQkFBbUIsQ0FBQztnQkFFdEUsT0FBT0YsUUFBUUQsT0FBTzlCLFNBQVNnQztZQUNqQyxHQUFHQTtRQUNMLEdBQUdBO0lBQ0w7SUFFQU8scUJBQXFCVCxLQUFLLEVBQUU5QixPQUFPLEVBQUUrQixPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNsRCxNQUFNbUIsV0FBV0MsSUFBQUEsaUJBQVUsRUFBQ3RCO1FBRTVCLElBQUksQ0FBQ3FCLFVBQVU7WUFDYixPQUFPbkI7UUFDVDtRQUVBLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTVDbEMsUUFBUW1DLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLHNCQUFzQixDQUFDO1FBRXZFakMsUUFBUW9DLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFSCxlQUFlLG9CQUFvQixDQUFDO1FBRXZFLE9BQU9GLFFBQVFELE9BQU85QixTQUFTZ0M7SUFDakM7SUFFQVEsb0JBQW9CVixLQUFLLEVBQUU5QixPQUFPLEVBQUUrQixPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqRCxNQUFNcUIsVUFBVUMsSUFBQUEsZ0JBQVMsRUFBQ3hCO1FBRTFCLElBQUksQ0FBQ3VCLFNBQVM7WUFDWixPQUFPckI7UUFDVDtRQUVBLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTVDbEMsUUFBUW1DLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLHFCQUFxQixDQUFDO1FBRXRFLE1BQU1zQixjQUFjQyxJQUFBQSxtQkFBVyxFQUFDLElBQUksQ0FBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUNDLFNBQVMsRUFBRU47UUFFL0QsSUFBSSxBQUFDLElBQUksQ0FBQ0ksT0FBTyxJQUFJbUQsZUFBaUIsQ0FBQyxJQUFJLENBQUNuRCxPQUFPLElBQUksQ0FBQ21ELGFBQWM7WUFDcEUsT0FBT3ZCO1FBQ1Q7UUFFQWhDLFFBQVFvQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUgsZUFBZSxtQkFBbUIsQ0FBQztRQUV0RSxPQUFPRixRQUFRRCxPQUFPOUIsU0FBU2dDO0lBQ2pDO0lBRUFTLE9BQU9YLEtBQUssRUFBRTlCLE9BQU8sRUFBRTtRQUNyQixNQUFNeUQsWUFBWUMsSUFBQUEsa0JBQVcsRUFBQzVCO1FBRTlCLElBQUkyQixXQUFXO1lBQ2I7UUFDRjtRQUVBLE1BQU1yRCxVQUFVLElBQUksQ0FBQ0csU0FBUztRQUU5QixJQUFJSCxTQUFTO1lBQ1g7UUFDRjtRQUVBLE1BQU1xQixXQUFXLElBQUksRUFBRyxHQUFHO1FBRTNCLE1BQU1rQyxxQkFBcUJDLElBQUFBLHNDQUE4QixFQUFDbkMsVUFBVXpCO1FBRXBFQSxRQUFRNkQsYUFBYSxDQUFDRjtRQUV0QixNQUFNTixVQUFVQyxJQUFBQSxnQkFBUyxFQUFDeEI7UUFFMUIsSUFBSXVCLFNBQVM7WUFDWDtRQUNGO1FBRUEsTUFBTVMseUJBQXlCQyxJQUFBQSwwQ0FBa0MsRUFBQ3RDLFVBQVV6QixVQUN0RWdFLDBCQUEwQkMsSUFBQUEsMkNBQW1DLEVBQUN4QyxVQUFVekI7UUFFOUVBLFFBQVE2RCxhQUFhLENBQUNDO1FBRXRCOUQsUUFBUTZELGFBQWEsQ0FBQ0c7SUFDeEI7SUFFQUUsU0FBUztRQUNQLE1BQU1qRSxTQUFTLElBQUksQ0FBQ2lDLFNBQVM7UUFFN0IsSUFBSS9CO1FBRUpBLGFBQWEsSUFBSSxDQUFDZ0UsYUFBYTtRQUUvQixNQUFNQyxpQkFBaUJ6RSwyQkFBMkJRO1FBRWxEQSxhQUFhaUUsZ0JBQWlCLEdBQUc7UUFFakMsTUFBTUMsT0FBTztZQUNYcEU7WUFDQUU7UUFDRjtRQUVBLE9BQU9rRTtJQUNUO0lBRUEsT0FBT0MsT0FBTyxXQUFXO0lBRXpCLE9BQU9DLFNBQVNGLElBQUksRUFBRXJFLE9BQU8sRUFBRTtRQUM3QixJQUFJeUI7UUFFSitDLElBQUFBLG9CQUFXLEVBQUMsQ0FBQ3hFO1lBQ1gsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR29FLE1BQ2JqRCxlQUFlcUQsSUFBQUEsZ0NBQW1CLEVBQUN4RSxRQUFRRCxVQUMzQ0UsT0FBT2tCLGNBQ1BqQixhQUFhVCxtQkFBbUIyRSxPQUNoQ2pFLFVBQVVzRSx3QkFBd0J0RCxjQUFjcEIsVUFDaERLLFdBQVdzRSx5QkFBeUJ2RCxjQUFjcEIsVUFDbERNLFlBQVlzRSwwQkFBMEJ4RCxjQUFjcEI7WUFFMURBLFVBQVU7WUFFVnlCLFdBQVcsSUFBSTNCLFNBQVNFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLFNBQVNDLFVBQVVDO1FBQ2hGLEdBQUdOO1FBRUgsT0FBT3lCO0lBQ1Q7SUFFQSxPQUFPb0QsY0FBY0MsU0FBUyxFQUFFOUUsT0FBTyxFQUFFO1FBQ3ZDLE1BQU0rRSxnQkFBZ0JELFVBQVVuRSxPQUFPLElBQ2pDYyxXQUFXdUQsSUFBQUEsa0NBQXlCLEVBQUNELGVBQWUvRTtRQUUxRCxPQUFPeUI7SUFDVDtBQUNGO0FBRUEsU0FBU2lELHdCQUF3QnRELFlBQVksRUFBRXBCLE9BQU87SUFDcEQsTUFBTUksVUFBVWdCLGFBQWFiLFNBQVM7SUFFdEMsT0FBT0g7QUFDVDtBQUVBLFNBQVN1RSx5QkFBeUJ2RCxZQUFZLEVBQUVwQixPQUFPO0lBQ3JELE1BQU1jLGVBQWVNLGFBQWFQLGVBQWUsSUFDM0NSLFdBQVdMLFFBQVFpRixrQkFBa0IsQ0FBQ25FO0lBRTVDLE9BQU9UO0FBQ1Q7QUFFQSxTQUFTdUUsMEJBQTBCeEQsWUFBWSxFQUFFcEIsT0FBTztJQUN0RCxNQUFNZ0IsZ0JBQWdCSSxhQUFhUCxlQUFlLElBQzVDUCxZQUFZTixRQUFRaUYsa0JBQWtCLENBQUNqRTtJQUU3QyxPQUFPVjtBQUNUIn0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWFsaXR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgZXF1YXRlVGVybXMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9lcXVhdGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUVxdWFsaXR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGVxdWFsaXR5RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGlzRGVyaXZlZCwgaXNEZWNsYXJlZCwgaXNUcmFuc2llbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0YXRlXCI7XG5pbXBvcnQgeyBlcXVhbGl0eUFzc2lnbm1lbnRGcm9tRXF1YWxpdHksIGxlZnRWYXJpYWJsZUFzc2lnbm1lbnRGcm9tRXF1YWxpdHksIHJpZ2h0VmFyaWFibGVBc3NpZ25tZW50RnJvbUVxdWFsaXR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvYXNzaWduXCI7XG5cbmNvbnN0IHsgYWxsLCBleGlzdHMgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVxdWFsaXR5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcbiAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZ2V0RXF1YWxpdHlOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBlcXVhbGl0eU5kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5TmRlO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm1Ob2RlKCkge1xuICAgIGNvbnN0IGxlZnRUZXJtTm9kZSA9IHRoaXMubGVmdFRlcm0uZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIGxlZnRUZXJtTm9kZTtcbiAgfVxuXG4gIGdldFJpZ2h0VGVybU5vZGUoKSB7XG4gICAgY29uc3QgcmlnaHRUZXJtTm9kZSA9IHRoaXMucmlnaHRUZXJtLmdldE5vZGUoKTtcblxuICAgIHJldHVybiByaWdodFRlcm1Ob2RlO1xuICB9XG5cbiAgZ2V0VGVybXMoKSB7XG4gICAgY29uc3QgdGVybXMgPSBbXG4gICAgICB0aGlzLmxlZnRUZXJtLFxuICAgICAgdGhpcy5yaWdodFRlcm1cbiAgICBdO1xuXG4gICAgcmV0dXJuIHRlcm1zO1xuICB9XG5cbiAgbWF0Y2hFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGVxdWFsaXR5Tm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBlcXVhbGl0eU5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBpc0VxdWFsVG8oZXF1YWxpdHkpIHtcbiAgICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eS5nZXROb2RlKCksXG4gICAgICAgICAgZXF1YWxpdHlOb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0gZXF1YWxpdHlOb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBmaW5kRXF1YWxpdHkoY29udGV4dCkge1xuICAgIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IHRoaXMuZ2V0RXF1YWxpdHlOb2RlKCksXG4gICAgICAgICAgZXF1YWxpdHkgPSBjb250ZXh0LmZpbmRFcXVhbGl0eUJ5RXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHk7XG4gIH1cblxuICB2YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCBlcXVhbGl0eTtcblxuICAgIGNvbnN0IGVxdWFsaXR5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS4uLmApO1xuXG4gICAgZXF1YWxpdHkgPSB0aGlzLmZpbmRFcXVhbGl0eShjb250ZXh0KTtcblxuICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChlcXVhbGl0eSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGVUZXJtcyA9IHRoaXMudmFsaWRhdGVUZXJtcy5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIGFsbChbXG4gICAgICB2YWxpZGF0ZVRlcm1zXG4gICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVXaGVuRGVjbGFyZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlY2xhcmVkLmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVdoZW5EZXJpdmVkID0gdGhpcy52YWxpZGF0ZVdoZW5EZXJpdmVkLmJpbmQodGhpcyk7XG5cbiAgICAgIHJldHVybiBleGlzdHMoW1xuICAgICAgICB2YWxpZGF0ZVdoZW5EZWNsYXJlZCxcbiAgICAgICAgdmFsaWRhdGVXaGVuRGVyaXZlZFxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICBlcXVhbGl0eSA9IHRoaXM7IC8vL1xuXG4gICAgICAgIHRoaXMuYXNzaWduKHN0YXRlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0LmFkZEVxdWFsaXR5KGVxdWFsaXR5KTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2VxdWFsaXR5U3RyaW5nfWVxdWFsaXR5LmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGVxdWFsaXR5LCBjb250ZXh0LCBiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuXG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkncyB0ZXJtcy4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm0udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChsZWZ0VGVybSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAocmlnaHRUZXJtLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IGxlZnRUZXJtVHlwZSA9IGxlZnRUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgcmlnaHRUZXJtVHlwZSA9IHJpZ2h0VGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIGxlZnRUZXJtVHlwZUJhc2VUeXBlID0gbGVmdFRlcm1UeXBlLmlzQmFzZVR5cGUoKSxcbiAgICAgICAgICAgICAgcmlnaHRUZXJtVHlwZUJhc2VUeXBlID0gcmlnaHRUZXJtVHlwZS5pc0Jhc2VUeXBlKCksXG4gICAgICAgICAgICAgIGxlZnRUZXJtVHlwZUpvaW5lZFRvUmlnaHRUZXJtVHlwZSA9IGxlZnRUZXJtVHlwZS5pc0pvaW5lZFRvKHJpZ2h0VGVybVR5cGUpO1xuXG4gICAgICAgIGlmICghbGVmdFRlcm1UeXBlQmFzZVR5cGUgJiYgIXJpZ2h0VGVybVR5cGVCYXNlVHlwZSAmJiAhbGVmdFRlcm1UeXBlSm9pbmVkVG9SaWdodFRlcm1UeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcblxuICAgICAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkncyB0ZXJtcy5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZChzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlV2hlbkRlY2xhcmVkKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgZGVjbGFyZWQgPSBpc0RlY2xhcmVkKHN0YXRlKTtcblxuICAgIGlmICghZGVjbGFyZWQpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZGVjbGFyZWQgZXF1YWxpdHkuLi5gKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBkZWNsYXJlZCBlcXVhbGl0eS5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlV2hlbkRlcml2ZWQoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBkZXJpdmVkID0gaXNEZXJpdmVkKHN0YXRlKTtcblxuICAgIGlmICghZGVyaXZlZCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBkZXJpdmVkIGVxdWFsaXR5Li4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0VxdWF0ZSA9IGVxdWF0ZVRlcm1zKHRoaXMubGVmdFRlcm0sIHRoaXMucmlnaHRUZXJtLCBjb250ZXh0KTtcblxuICAgIGlmICgodGhpcy5uZWdhdGVkICYmIHRlcm1zRXF1YXRlKSB8fCAoIXRoaXMubmVnYXRlZCAmJiAhdGVybXNFcXVhdGUpKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBkZXJpdmVkIGVxdWFsaXR5LmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9XG5cbiAgYXNzaWduKHN0YXRlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHJhbnNpZW50ID0gaXNUcmFuc2llbnQoc3RhdGUpO1xuXG4gICAgaWYgKHRyYW5zaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5lZ2F0ZWQgPSB0aGlzLmlzTmVnYXRlZCgpO1xuXG4gICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcXVhbGl0eSA9IHRoaXM7ICAvLy9cblxuICAgIGNvbnN0IGVxdWFsaXR5QXNzaWdubWVudCA9IGVxdWFsaXR5QXNzaWdubWVudEZyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2lnbm1lbnQoZXF1YWxpdHlBc3NpZ25tZW50KTtcblxuICAgIGNvbnN0IGRlcml2ZWQgPSBpc0Rlcml2ZWQoc3RhdGUpO1xuXG4gICAgaWYgKGRlcml2ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VmFyaWFibGVBc3NpZ25tZW50ID0gbGVmdFZhcmlhYmxlQXNzaWdubWVudEZyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCksXG4gICAgICAgICAgcmlnaHRWYXJpYWJsZUFzc2lnbm1lbnQgPSByaWdodFZhcmlhYmxlQXNzaWdubWVudEZyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2lnbm1lbnQobGVmdFZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2lnbm1lbnQocmlnaHRWYXJpYWJsZUFzc2lnbm1lbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkVxdWFsaXR5XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgZXF1YWxpdHk7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBlcXVhbGl0eU5vZGUgPSBpbnN0YW50aWF0ZUVxdWFsaXR5KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gZXF1YWxpdHlOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgbmVnYXRlZCA9IG5lZ2F0ZWRGcm9tRXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBsZWZ0VGVybSA9IGxlZnRUZXJtRnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgcmlnaHRUZXJtID0gcmlnaHRUZXJtRnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgZXF1YWxpdHkgPSBuZXcgRXF1YWxpdHkoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuZWdhdGVkLCBsZWZ0VGVybSwgcmlnaHRUZXJtKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBlcXVhbGl0eTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGVxdWFsaXR5ID0gZXF1YWxpdHlGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBlcXVhbGl0eTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIG5lZ2F0ZWRGcm9tRXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCBuZWdhdGVkID0gZXF1YWxpdHlOb2RlLmlzTmVnYXRlZCgpO1xuXG4gIHJldHVybiBuZWdhdGVkO1xufVxuXG5mdW5jdGlvbiBsZWZ0VGVybUZyb21FcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxlZnRUZXJtTm9kZSA9IGVxdWFsaXR5Tm9kZS5nZXRMZWZ0VGVybU5vZGUoKSxcbiAgICAgICAgbGVmdFRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZShsZWZ0VGVybU5vZGUpO1xuXG4gIHJldHVybiBsZWZ0VGVybTtcbn1cblxuZnVuY3Rpb24gcmlnaHRUZXJtRnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgcmlnaHRUZXJtTm9kZSA9IGVxdWFsaXR5Tm9kZS5nZXRMZWZ0VGVybU5vZGUoKSxcbiAgICAgICAgcmlnaHRUZXJtID0gY29udGV4dC5maW5kVGVybUJ5VGVybU5vZGUocmlnaHRUZXJtTm9kZSk7XG5cbiAgcmV0dXJuIHJpZ2h0VGVybTtcbn1cbiJdLCJuYW1lcyI6WyJhbGwiLCJleGlzdHMiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJFcXVhbGl0eSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuZWdhdGVkIiwibGVmdFRlcm0iLCJyaWdodFRlcm0iLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0VGVybSIsImdldFJpZ2h0VGVybSIsImdldEVxdWFsaXR5Tm9kZSIsImdldE5vZGUiLCJlcXVhbGl0eU5kZSIsImdldExlZnRUZXJtTm9kZSIsImxlZnRUZXJtTm9kZSIsImdldFJpZ2h0VGVybU5vZGUiLCJyaWdodFRlcm1Ob2RlIiwiZ2V0VGVybXMiLCJ0ZXJtcyIsIm1hdGNoRXF1YWxpdHlOb2RlIiwiZXF1YWxpdHlOb2RlIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJlcXVhbGl0eU5vZGVNYXRjaGVzIiwiaXNFcXVhbFRvIiwiZXF1YWxpdHkiLCJlcXVhbFRvIiwiZmluZEVxdWFsaXR5IiwiZmluZEVxdWFsaXR5QnlFcXVhbGl0eU5vZGUiLCJ2YWxpZGF0ZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJlcXVhbGl0eVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiZGVidWciLCJ2YWxpZGF0ZVRlcm1zIiwiYmluZCIsInZhbGlkYXRlV2hlbkRlY2xhcmVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImFzc2lnbiIsImFkZEVxdWFsaXR5IiwibGVmdFRlcm1UeXBlIiwiZ2V0VHlwZSIsInJpZ2h0VGVybVR5cGUiLCJsZWZ0VGVybVR5cGVCYXNlVHlwZSIsImlzQmFzZVR5cGUiLCJyaWdodFRlcm1UeXBlQmFzZVR5cGUiLCJsZWZ0VGVybVR5cGVKb2luZWRUb1JpZ2h0VGVybVR5cGUiLCJpc0pvaW5lZFRvIiwiZGVjbGFyZWQiLCJpc0RlY2xhcmVkIiwiZGVyaXZlZCIsImlzRGVyaXZlZCIsInRlcm1zRXF1YXRlIiwiZXF1YXRlVGVybXMiLCJ0cmFuc2llbnQiLCJpc1RyYW5zaWVudCIsImVxdWFsaXR5QXNzaWdubWVudCIsImVxdWFsaXR5QXNzaWdubWVudEZyb21FcXVhbGl0eSIsImFkZEFzc2lnbm1lbnQiLCJsZWZ0VmFyaWFibGVBc3NpZ25tZW50IiwibGVmdFZhcmlhYmxlQXNzaWdubWVudEZyb21FcXVhbGl0eSIsInJpZ2h0VmFyaWFibGVBc3NpZ25tZW50IiwicmlnaHRWYXJpYWJsZUFzc2lnbm1lbnRGcm9tRXF1YWxpdHkiLCJ0b0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZUVxdWFsaXR5IiwibmVnYXRlZEZyb21FcXVhbGl0eU5vZGUiLCJsZWZ0VGVybUZyb21FcXVhbGl0eU5vZGUiLCJyaWdodFRlcm1Gcm9tRXF1YWxpdHlOb2RlIiwiZnJvbVN0YXRlbWVudCIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJlcXVhbGl0eUZyb21TdGF0ZW1lbnROb2RlIiwiZmluZFRlcm1CeVRlcm1Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQUE7OztnQ0Fib0U7MEJBRTdDO3dCQUNLO3lCQUNBOzZCQUNRO3lCQUNNO3VCQUNTO3dCQUNxRTtBQUV4SCxNQUFNLEVBQUVBLEdBQUcsRUFBRUMsTUFBTSxFQUFFLEdBQUdDLHFDQUFxQixFQUN2QyxFQUFFQyxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLENBQUU7UUFDM0UsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLE9BQU8sR0FBR0E7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
|
package/lib/process/validate.js
CHANGED
|
@@ -92,19 +92,19 @@ class ValidateStatementPass extends _occamlanguages.ContinuationPass {
|
|
|
92
92
|
const validateTermPass = new ValidateTermPass(), validateStatementPass = new ValidateStatementPass();
|
|
93
93
|
function validateTermAsProperty(term, context, forward, back) {
|
|
94
94
|
const termNode = term.getNode(), termChildNodes = termNode.getChildNodes(); ///
|
|
95
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
95
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
96
96
|
}
|
|
97
97
|
function validateTermAsGenerator(term, context, forward, back) {
|
|
98
98
|
const termNode = term.getNode(), termChildNodes = termNode.getChildNodes(); ///
|
|
99
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
99
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
100
100
|
}
|
|
101
101
|
function validateTermAsConstructor(term, context, forward, back) {
|
|
102
102
|
const termNode = term.getNode(), termChildNodes = termNode.getChildNodes(); ///
|
|
103
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
103
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
104
104
|
}
|
|
105
105
|
function validateStatementAsCombinator(statement, context, forward, back) {
|
|
106
106
|
const statementNode = statement.getNode(), statementChildNodes = statementNode.getChildNodes(); ///
|
|
107
107
|
return validateStatementPass.descend(statementChildNodes, context, forward, back);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBxdWVyeVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1xdWVyeVwiO1xuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVjbGFyZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgbm9kZVF1ZXJ5IH0gPSBxdWVyeVV0aWxpdGllcztcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudFwiKTtcblxuY2xhc3MgVmFsaWRhdGVUZXJtUGFzcyBleHRlbmRzIENvbnRpbnVhdGlvblBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0ZXJtTm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGRlY2xhcmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRlcm0udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsICh0ZXJtLCBjb250ZXh0LCBiY2FrKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICAgICAgICB9LCBiYWNrKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlTm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBWYWxpZGF0ZVN0YXRlbWVudFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICBydW46IChzdGF0ZW1lbnROb2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdGF0ZW1lbnQudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChzdGF0ZW1lbnQsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgICAgIH0sIGJhY2spO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHRlcm1Ob2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gZGVjbGFyZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGVybS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHRlcm0sIGNvbnRleHQsIGJhY2spID0+
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBxdWVyeVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1xdWVyeVwiO1xuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVjbGFyZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgbm9kZVF1ZXJ5IH0gPSBxdWVyeVV0aWxpdGllcztcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudFwiKTtcblxuY2xhc3MgVmFsaWRhdGVUZXJtUGFzcyBleHRlbmRzIENvbnRpbnVhdGlvblBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0ZXJtTm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGRlY2xhcmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRlcm0udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsICh0ZXJtLCBjb250ZXh0LCBiY2FrKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICAgICAgICB9LCBiYWNrKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlTm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBWYWxpZGF0ZVN0YXRlbWVudFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICBydW46IChzdGF0ZW1lbnROb2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdGF0ZW1lbnQudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChzdGF0ZW1lbnQsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgICAgIH0sIGJhY2spO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHRlcm1Ob2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gZGVjbGFyZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGVybS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHRlcm0sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHR5cGVOb2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKCF0eXBlUHJlc2VudCkge1xuICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHZhbGlkYXRlVGVybVBhc3MgPSBuZXcgVmFsaWRhdGVUZXJtUGFzcygpLFxuICAgICAgdmFsaWRhdGVTdGF0ZW1lbnRQYXNzID0gbmV3IFZhbGlkYXRlU3RhdGVtZW50UGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSh0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIHRlcm1DaGlsZE5vZGVzID0gdGVybU5vZGUuZ2V0Q2hpbGROb2RlcygpOyAgLy8vXG5cbiAgcmV0dXJuIHZhbGlkYXRlVGVybVBhc3MuZGVzY2VuZCh0ZXJtQ2hpbGROb2RlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlcm1Bc0dlbmVyYXRvcih0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIHRlcm1DaGlsZE5vZGVzID0gdGVybU5vZGUuZ2V0Q2hpbGROb2RlcygpOyAgLy8vXG5cbiAgcmV0dXJuIHZhbGlkYXRlVGVybVBhc3MuZGVzY2VuZCh0ZXJtQ2hpbGROb2RlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yKHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdGVybUNoaWxkTm9kZXMgPSB0ZXJtTm9kZS5nZXRDaGlsZE5vZGVzKCk7ICAvLy9cblxuICByZXR1cm4gdmFsaWRhdGVUZXJtUGFzcy5kZXNjZW5kKHRlcm1DaGlsZE5vZGVzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yKHN0YXRlbWVudCwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50Q2hpbGROb2RlcyA9IHN0YXRlbWVudE5vZGUuZ2V0Q2hpbGROb2RlcygpOyAgLy8vXG5cbiAgcmV0dXJuIHZhbGlkYXRlU3RhdGVtZW50UGFzcy5kZXNjZW5kKHN0YXRlbWVudENoaWxkTm9kZXMsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xufVxuIl0sIm5hbWVzIjpbInZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yIiwidmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvciIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yIiwidmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSIsIm5vZGVRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwidGVybU5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJWYWxpZGF0ZVRlcm1QYXNzIiwiQ29udGludWF0aW9uUGFzcyIsIm1hcHMiLCJydW4iLCJ0ZXJtTm9kZSIsImNvbnRleHQiLCJmb3J3YXJkIiwiYmFjayIsInRlcm0iLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwiZGVjbGFyZSIsInN0YXRlIiwidmFsaWRhdGUiLCJiY2FrIiwidHlwZU5vZGUiLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZSIsIlZhbGlkYXRlU3RhdGVtZW50UGFzcyIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnQiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsInZhbGlkYXRlVGVybVBhc3MiLCJ2YWxpZGF0ZVN0YXRlbWVudFBhc3MiLCJnZXROb2RlIiwidGVybUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiZGVzY2VuZCIsInN0YXRlbWVudENoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQThHZ0JBO2VBQUFBOztRQVBBQztlQUFBQTs7UUFQQUM7ZUFBQUE7O1FBUEFDO2VBQUFBOzs7NEJBdkZlO2dDQUNFO3VCQUVUO3lCQUNxQztBQUU3RCxNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHQywwQkFBYztBQUVwQyxN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
|
|
@@ -116,7 +116,7 @@ function unifyStatementWithCombinators(statement, state, context, forward, back)
|
|
|
116
116
|
context.trace(`Unifying the '${statementString}' statement with combinators...`);
|
|
117
117
|
return some(combinators, (combinator, context, forward, back)=>{
|
|
118
118
|
return combinator.unifyStatement(statement, context, forward, back);
|
|
119
|
-
}, (back)=>{
|
|
119
|
+
}, context, (context, back)=>{
|
|
120
120
|
context.debug(`...unified the '${statementString}' statement with combinators.`);
|
|
121
121
|
return forward(statement, state, context, back);
|
|
122
122
|
}, back);
|
|
@@ -253,4 +253,4 @@ function validateSubstitution(statement, context, forward, back) {
|
|
|
253
253
|
});
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBjaG9vc2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGRlc2lzdCwgZGVjbGFyZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcsIGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvaW5zdGFuY2VcIjtcblxuY29uc3QgeyBzb21lIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gIGlmICh2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZS5nZXRJZGVudGlmaWVyKCksXG4gICAgICAgIGRlY2xhcmVkVmFyaWFibGVzID0gY29udGV4dC5maW5kRGVjbGFyZWRWYXJpYWJsZXNCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpLFxuICAgICAgICBkZWNsYXJlZFZhcmlhYmxlc0xlbmd0aCA9IGRlY2xhcmVkVmFyaWFibGVzLmxlbmd0aDtcblxuICBpZiAoZGVjbGFyZWRWYXJpYWJsZXNMZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgcmV0dXJuIHNvbWUoZGVjbGFyZWRWYXJpYWJsZXMsIChkZWNsYXJlZFZhcmlhYmxlLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBkZWNsYXJlZFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IGRlY2xhcmVkVmFyaWFibGUuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgcmV0dXJuIGNob29zZSgoY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHZhcmlhYmxlLnZhbGlkYXRlKHR5cGUsIHByb3Zpc2lvbmFsLCBzdGF0ZSwgY29udGV4dCwgKHZhcmlhYmxlLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgIHRlcm0uc2V0VHlwZSh0eXBlKTtcblxuICAgICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoR2VuZXJhdG9ycyh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCBnZW5lcmF0b3JzID0gY29udGV4dC5nZXRHZW5lcmF0b3JzKCksXG4gICAgICAgIGdlbmVyYXRvcnNMZW5ndGggPSBnZW5lcmF0b3JzLmxlbmd0aDtcblxuICBpZiAoZ2VuZXJhdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCBnZW5lcmF0b3JzLi4uYCk7XG5cbiAgcmV0dXJuIHNvbWUoZ2VuZXJhdG9ycywgKGdlbmVyYXRvciwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIHJldHVybiBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBnZW5lcmF0b3IudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQpO1xuICB9LCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIGdlbmVyYXRvcnMuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKCksXG4gICAgICAgIGNvbnN0cnVjdG9yc0xlbmd0aCA9IGNvbnN0cnVjdG9ycy5sZW5ndGg7XG5cbiAgaWYgKGNvbnN0cnVjdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCBjb25zdHJ1Y3RvcnMuLi5gKTtcblxuICByZXR1cm4gc29tZShjb25zdHJ1Y3RvcnMsIChjb25zdHJ1Y3RvciwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIHJldHVybiBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBjb25zdHJ1Y3Rvci51bmlmeVRlcm0odGVybSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgY29udGV4dCk7XG4gIH0sIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggY29uc3RydWN0b3JzLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodGVybSwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5pZnlUZXJtV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yID0gYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZygpO1xuXG4gIHJldHVybiBicmFja2V0ZWRDb25zdHJ1Y3Rvci51bmlmeVRlcm0odGVybSwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAobWV0YXZhcmlhYmxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gKTtcblxuICBjb25zdCBzdHJpY3QgPSB0cnVlOyAgLy8vXG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZS52YWxpZGF0ZShzdHJpY3QsIHN0YXRlLCBjb250ZXh0LCAobWV0YXZhcmlhYmxlLCBjb250ZXh0KSA9PiB7XG4gICAgcmV0dXJuIHZhbGlkYXRlU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSwgYmFjayk7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgY29tYmluYXRvcnMgPSBjb250ZXh0LmdldENvbWJpbmF0b3JzKCksXG4gICAgICAgIGNvbWJpbmF0b3JzTGVuZ3RoID0gY29tYmluYXRvcnMubGVuZ3RoO1xuXG4gIGlmIChjb21iaW5hdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIGNvbWJpbmF0b3JzLi4uYCk7XG5cbiAgcmV0dXJuIHNvbWUoY29tYmluYXRvcnMsIChjb21iaW5hdG9yLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgcmV0dXJuIGNvbWJpbmF0b3IudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgfSwgKGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCBjb21iaW5hdG9ycy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGJyYWNrZXRlZENvbWJpbmF0b3IgPSBicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmcoKTtcblxuICByZXR1cm4gYnJhY2tldGVkQ29tYmluYXRvci51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChlcXVhbGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5LnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoZXF1YWxpdHksIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50LCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB7IFR5cGVBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uID0gVHlwZUFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsICh0eXBlQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB7IERlZmluZWRBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uID0gRGVmaW5lZEFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKGRlZmluZWRBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChkZWZpbmVkQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBQcm9wZXJ0eUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gUHJvcGVydHlBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChwcm9wZXJ0eUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHByb3BlcnR5QXNzZXJ0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAocHJvcGVydHlBc3NlcnRpb24sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHByb3BlcnR5IGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1N1YnByb29mQXNzZXJ0aW9uKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3VicHJvb2ZBc3NlcnRpb24sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgQ29udGFpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gQ29udGFpbmVkQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvbi52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKGNvbnRhaW5lZEFzc2VydGlvbiwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1NpZ25hdHVyZUFzc2VydGlvbihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgU2lnbmF0dXJlQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gU2lnbmF0dXJlQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoc2lnbmF0dXJlQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbi52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVGVybXMgPSBbXG4gIHZhbGlkYXRlVGVybUFzVmFyaWFibGUsXG4gIHVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzLFxuICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzLFxuICB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3Jcbl07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudHMgPSBbXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUsXG4gIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzLFxuICB1bmlmeVN0YXRlbWVudFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHksXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb25cbl07XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVRlcm1XaXRoUHJvcGVydGllcyh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvcGVydGllcyA9IGNvbnRleHQuZ2V0UHJvcGVydGllcygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHByb3BlcnRpZXMuLi5gKTtcblxuICByZXR1cm4gc29tZShwcm9wZXJ0aWVzLCAocHJvcGVydHksIGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICByZXR1cm4gY2hvb3NlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcGVydHkudW5pZnlUZXJtKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSwgY29udGV4dCwgKGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHByb3BlcnRpZXMuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1YnN0aXR1dGlvbihzdGF0ZW1lbnQsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3RhdGVtZW50LmdldFN1YnN0aXR1dGlvbigpO1xuXG4gIGlmIChzdWJzdGl0dXRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgfVxuXG4gIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgIHJldHVybiBkZXNpc3QoKHN0YXRlKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3Vic3RpdHV0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgc3RhdGUpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVRlcm1XaXRoUHJvcGVydGllcyIsInZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUiLCJ2YWxpZGF0ZVN0YXRlbWVudHMiLCJ2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlIiwidmFsaWRhdGVUZXJtcyIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ0ZXJtIiwic3RhdGUiLCJjb250ZXh0IiwiZm9yd2FyZCIsImJhY2siLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwidmFyaWFibGUiLCJmcm9tVGVybSIsInZhcmlhYmxlSWRlbnRpZmllciIsImdldElkZW50aWZpZXIiLCJkZWNsYXJlZFZhcmlhYmxlcyIsImZpbmREZWNsYXJlZFZhcmlhYmxlc0J5VmFyaWFibGVJZGVudGlmaWVyIiwiZGVjbGFyZWRWYXJpYWJsZXNMZW5ndGgiLCJsZW5ndGgiLCJkZWNsYXJlZFZhcmlhYmxlIiwidHlwZSIsImdldFR5cGUiLCJwcm92aXNpb25hbCIsImlzUHJvdmlzaW9uYWwiLCJjaG9vc2UiLCJ2YWxpZGF0ZSIsInNldFR5cGUiLCJzZXRQcm92aXNpb25hbCIsInVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzTGVuZ3RoIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiZ2VuZXJhdG9yIiwidW5pZnlUZXJtIiwiZGVidWciLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzTGVuZ3RoIiwiY29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmciLCJzdGF0ZW1lbnQiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50U3RyaW5nIiwic3RyaWN0IiwidmFsaWRhdGVTdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9yc0xlbmd0aCIsImNvbWJpbmF0b3IiLCJ1bmlmeVN0YXRlbWVudCIsInVuaWZ5U3RhdGVtZW50V2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nIiwidmFsaWRhdGVTdGF0ZW1lbnRBc0VxdWFsaXR5IiwiRXF1YWxpdHkiLCJlcXVhbGl0eSIsInZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsIkRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uIiwiUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNTdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1NpZ25hdHVyZUFzc2VydGlvbiIsIlNpZ25hdHVyZUFzc2VydGlvbiIsInNpZ25hdHVyZUFzc2VydGlvbiIsInByb3BlcnRpZXMiLCJnZXRQcm9wZXJ0aWVzIiwicHJvcGVydHkiLCJzdWJzdGl0dXRpb24iLCJnZXRTdWJzdGl0dXRpb24iLCJkZWNsYXJlIiwiZGVzaXN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEyU2dCQTtlQUFBQTs7UUEzTUFDO2VBQUFBOztRQThMSEM7ZUFBQUE7O1FBbFJHQztlQUFBQTs7UUEyUUhDO2VBQUFBOzs7Z0NBclJ5QjtpRUFFakI7eUJBRUU7dUJBQ1M7MEJBQ2dEOzs7Ozs7QUFFaEYsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MscUNBQXFCO0FBRS9CLFNBQVNILHVCQUF1QkksSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxJQUFJO0lBQ3hFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3ZCQyxXQUFXRixTQUFTRyxRQUFRLENBQUNSLE1BQU1FO0lBRXpDLElBQUlLLGFBQWEsTUFBTTtRQUNyQixPQUFPSDtJQUNUO0lBRUEsTUFBTUsscUJBQXFCRixTQUFTRyxhQUFhLElBQzNDQyxvQkFBb0JULFFBQVFVLHlDQUF5QyxDQUFDSCxxQkFDdEVJLDBCQUEwQkYsa0JB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
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBjaG9vc2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGRlc2lzdCwgZGVjbGFyZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcsIGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvaW5zdGFuY2VcIjtcblxuY29uc3QgeyBzb21lIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gIGlmICh2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZS5nZXRJZGVudGlmaWVyKCksXG4gICAgICAgIGRlY2xhcmVkVmFyaWFibGVzID0gY29udGV4dC5maW5kRGVjbGFyZWRWYXJpYWJsZXNCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpLFxuICAgICAgICBkZWNsYXJlZFZhcmlhYmxlc0xlbmd0aCA9IGRlY2xhcmVkVmFyaWFibGVzLmxlbmd0aDtcblxuICBpZiAoZGVjbGFyZWRWYXJpYWJsZXNMZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgcmV0dXJuIHNvbWUoZGVjbGFyZWRWYXJpYWJsZXMsIChkZWNsYXJlZFZhcmlhYmxlLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBkZWNsYXJlZFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IGRlY2xhcmVkVmFyaWFibGUuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgcmV0dXJuIGNob29zZSgoY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHZhcmlhYmxlLnZhbGlkYXRlKHR5cGUsIHByb3Zpc2lvbmFsLCBzdGF0ZSwgY29udGV4dCwgKHZhcmlhYmxlLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgIHRlcm0uc2V0VHlwZSh0eXBlKTtcblxuICAgICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoR2VuZXJhdG9ycyh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCBnZW5lcmF0b3JzID0gY29udGV4dC5nZXRHZW5lcmF0b3JzKCksXG4gICAgICAgIGdlbmVyYXRvcnNMZW5ndGggPSBnZW5lcmF0b3JzLmxlbmd0aDtcblxuICBpZiAoZ2VuZXJhdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCBnZW5lcmF0b3JzLi4uYCk7XG5cbiAgcmV0dXJuIHNvbWUoZ2VuZXJhdG9ycywgKGdlbmVyYXRvciwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIHJldHVybiBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBnZW5lcmF0b3IudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQpO1xuICB9LCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIGdlbmVyYXRvcnMuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKCksXG4gICAgICAgIGNvbnN0cnVjdG9yc0xlbmd0aCA9IGNvbnN0cnVjdG9ycy5sZW5ndGg7XG5cbiAgaWYgKGNvbnN0cnVjdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCBjb25zdHJ1Y3RvcnMuLi5gKTtcblxuICByZXR1cm4gc29tZShjb25zdHJ1Y3RvcnMsIChjb25zdHJ1Y3RvciwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgIHJldHVybiBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBjb25zdHJ1Y3Rvci51bmlmeVRlcm0odGVybSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgY29udGV4dCk7XG4gIH0sIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggY29uc3RydWN0b3JzLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodGVybSwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5pZnlUZXJtV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yID0gYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZygpO1xuXG4gIHJldHVybiBicmFja2V0ZWRDb25zdHJ1Y3Rvci51bmlmeVRlcm0odGVybSwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAobWV0YXZhcmlhYmxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gKTtcblxuICBjb25zdCBzdHJpY3QgPSB0cnVlOyAgLy8vXG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZS52YWxpZGF0ZShzdHJpY3QsIHN0YXRlLCBjb250ZXh0LCAobWV0YXZhcmlhYmxlLCBjb250ZXh0KSA9PiB7XG4gICAgcmV0dXJuIHZhbGlkYXRlU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSwgYmFjayk7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgY29tYmluYXRvcnMgPSBjb250ZXh0LmdldENvbWJpbmF0b3JzKCksXG4gICAgICAgIGNvbWJpbmF0b3JzTGVuZ3RoID0gY29tYmluYXRvcnMubGVuZ3RoO1xuXG4gIGlmIChjb21iaW5hdG9yc0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIGNvbWJpbmF0b3JzLi4uYCk7XG5cbiAgcmV0dXJuIHNvbWUoY29tYmluYXRvcnMsIChjb21iaW5hdG9yLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgcmV0dXJuIGNvbWJpbmF0b3IudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgfSwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCBjb21iaW5hdG9ycy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IGJyYWNrZXRlZENvbWJpbmF0b3IgPSBicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmcoKTtcblxuICByZXR1cm4gYnJhY2tldGVkQ29tYmluYXRvci51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChlcXVhbGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5LnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoZXF1YWxpdHksIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50LCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB7IFR5cGVBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uID0gVHlwZUFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsICh0eXBlQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB7IERlZmluZWRBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uID0gRGVmaW5lZEFzc2VydGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKGRlZmluZWRBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChkZWZpbmVkQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBQcm9wZXJ0eUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gUHJvcGVydHlBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChwcm9wZXJ0eUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHByb3BlcnR5QXNzZXJ0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAocHJvcGVydHlBc3NlcnRpb24sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHByb3BlcnR5IGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1N1YnByb29mQXNzZXJ0aW9uKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3VicHJvb2ZBc3NlcnRpb24sIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgQ29udGFpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gQ29udGFpbmVkQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvbi52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKGNvbnRhaW5lZEFzc2VydGlvbiwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc1NpZ25hdHVyZUFzc2VydGlvbihzdGF0ZW1lbnQsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gIGNvbnN0IHsgU2lnbmF0dXJlQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gU2lnbmF0dXJlQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoc2lnbmF0dXJlQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbi52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHN0YXRlbWVudCwgc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICB9LCBiYWNrKTtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVGVybXMgPSBbXG4gIHZhbGlkYXRlVGVybUFzVmFyaWFibGUsXG4gIHVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzLFxuICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzLFxuICB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3Jcbl07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudHMgPSBbXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUsXG4gIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzLFxuICB1bmlmeVN0YXRlbWVudFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHksXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb25cbl07XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVRlcm1XaXRoUHJvcGVydGllcyh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvcGVydGllcyA9IGNvbnRleHQuZ2V0UHJvcGVydGllcygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHByb3BlcnRpZXMuLi5gKTtcblxuICByZXR1cm4gc29tZShwcm9wZXJ0aWVzLCAocHJvcGVydHksIGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICByZXR1cm4gY2hvb3NlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcGVydHkudW5pZnlUZXJtKHRlcm0sIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSwgY29udGV4dCwgKGJhY2spID0+IHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHByb3BlcnRpZXMuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh0ZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1YnN0aXR1dGlvbihzdGF0ZW1lbnQsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3RhdGVtZW50LmdldFN1YnN0aXR1dGlvbigpO1xuXG4gIGlmIChzdWJzdGl0dXRpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgfVxuXG4gIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgIHJldHVybiBkZXNpc3QoKHN0YXRlKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3Vic3RpdHV0aW9uLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgc3RhdGUpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVRlcm1XaXRoUHJvcGVydGllcyIsInZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUiLCJ2YWxpZGF0ZVN0YXRlbWVudHMiLCJ2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlIiwidmFsaWRhdGVUZXJtcyIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ0ZXJtIiwic3RhdGUiLCJjb250ZXh0IiwiZm9yd2FyZCIsImJhY2siLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwidmFyaWFibGUiLCJmcm9tVGVybSIsInZhcmlhYmxlSWRlbnRpZmllciIsImdldElkZW50aWZpZXIiLCJkZWNsYXJlZFZhcmlhYmxlcyIsImZpbmREZWNsYXJlZFZhcmlhYmxlc0J5VmFyaWFibGVJZGVudGlmaWVyIiwiZGVjbGFyZWRWYXJpYWJsZXNMZW5ndGgiLCJsZW5ndGgiLCJkZWNsYXJlZFZhcmlhYmxlIiwidHlwZSIsImdldFR5cGUiLCJwcm92aXNpb25hbCIsImlzUHJvdmlzaW9uYWwiLCJjaG9vc2UiLCJ2YWxpZGF0ZSIsInNldFR5cGUiLCJzZXRQcm92aXNpb25hbCIsInVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzTGVuZ3RoIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiZ2VuZXJhdG9yIiwidW5pZnlUZXJtIiwiZGVidWciLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzTGVuZ3RoIiwiY29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmciLCJzdGF0ZW1lbnQiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50U3RyaW5nIiwic3RyaWN0IiwidmFsaWRhdGVTdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9yc0xlbmd0aCIsImNvbWJpbmF0b3IiLCJ1bmlmeVN0YXRlbWVudCIsInVuaWZ5U3RhdGVtZW50V2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nIiwidmFsaWRhdGVTdGF0ZW1lbnRBc0VxdWFsaXR5IiwiRXF1YWxpdHkiLCJlcXVhbGl0eSIsInZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsIkRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uIiwiUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNTdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1NpZ25hdHVyZUFzc2VydGlvbiIsIlNpZ25hdHVyZUFzc2VydGlvbiIsInNpZ25hdHVyZUFzc2VydGlvbiIsInByb3BlcnRpZXMiLCJnZXRQcm9wZXJ0aWVzIiwicHJvcGVydHkiLCJzdWJzdGl0dXRpb24iLCJnZXRTdWJzdGl0dXRpb24iLCJkZWNsYXJlIiwiZGVzaXN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEyU2dCQTtlQUFBQTs7UUEzTUFDO2VBQUFBOztRQThMSEM7ZUFBQUE7O1FBbFJHQztlQUFBQTs7UUEyUUhDO2VBQUFBOzs7Z0NBclJ5QjtpRUFFakI7eUJBRUU7dUJBQ1M7MEJBQ2dEOzs7Ozs7QUFFaEYsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MscUNBQXFCO0FBRS9CLFNBQVNILHVCQUF1QkksSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxJQUFJO0lBQ3hFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3ZCQyxXQUFXRixTQUFTRyxRQUFRLENBQUNSLE1BQU1FO0lBRXpDLElBQUlLLGFBQWEsTUFBTTtRQUNyQixPQUFPSDtJQUNUO0lBRUEsTUFBTUsscUJBQXFCRixTQUFTRyxhQUFhLElBQzNDQyxvQkFBb0JULFFBQVFVLHlDQUF5QyxDQUFDSCxx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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-nominal",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.477",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-nominal",
|
|
7
7
|
"description": "Occam's Nominal language.",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^17.6.3",
|
|
14
|
-
"occam-furtle": "^3.0.
|
|
14
|
+
"occam-furtle": "^3.0.478",
|
|
15
15
|
"occam-grammar-utilities": "^8.1.22",
|
|
16
|
-
"occam-languages": "^3.0.
|
|
16
|
+
"occam-languages": "^3.0.38",
|
|
17
17
|
"occam-query": "^4.1.206"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
@@ -57,7 +57,7 @@ export default define(class TypeDeclaration extends Declaration {
|
|
|
57
57
|
verifyType,
|
|
58
58
|
verifySuperTypes,
|
|
59
59
|
verifyTypePrefix
|
|
60
|
-
], context, (back) => {
|
|
60
|
+
], context, (context, back) => {
|
|
61
61
|
const properties = this.getProperties(),
|
|
62
62
|
typePrefix = context.getTypePrefix(),
|
|
63
63
|
prefixName = (typePrefix !== null) ?
|
package/src/element/equality.js
CHANGED
package/src/process/validate.js
CHANGED
|
@@ -91,21 +91,21 @@ export function validateTermAsProperty(term, context, forward, back) {
|
|
|
91
91
|
const termNode = term.getNode(),
|
|
92
92
|
termChildNodes = termNode.getChildNodes(); ///
|
|
93
93
|
|
|
94
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
94
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
export function validateTermAsGenerator(term, context, forward, back) {
|
|
98
98
|
const termNode = term.getNode(),
|
|
99
99
|
termChildNodes = termNode.getChildNodes(); ///
|
|
100
100
|
|
|
101
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
101
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
export function validateTermAsConstructor(term, context, forward, back) {
|
|
105
105
|
const termNode = term.getNode(),
|
|
106
106
|
termChildNodes = termNode.getChildNodes(); ///
|
|
107
107
|
|
|
108
|
-
return validateTermPass.descend(termChildNodes, context, forward, back
|
|
108
|
+
return validateTermPass.descend(termChildNodes, context, forward, back);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export function validateStatementAsCombinator(statement, context, forward, back) {
|
|
@@ -131,7 +131,7 @@ function unifyStatementWithCombinators(statement, state, context, forward, back)
|
|
|
131
131
|
|
|
132
132
|
return some(combinators, (combinator, context, forward, back) => {
|
|
133
133
|
return combinator.unifyStatement(statement, context, forward, back);
|
|
134
|
-
}, (back) => {
|
|
134
|
+
}, context, (context, back) => {
|
|
135
135
|
context.debug(`...unified the '${statementString}' statement with combinators.`);
|
|
136
136
|
|
|
137
137
|
return forward(statement, state, context, back);
|