occam-verify-cli 0.0.1188 → 0.0.1190
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/dom/assertion/subproof.js +10 -9
- package/lib/dom/declaration/metavariable.js +6 -2
- package/lib/dom/derivation.js +9 -5
- package/lib/dom/equality.js +10 -2
- package/lib/dom/frame.js +16 -8
- package/lib/dom/judgement.js +10 -2
- package/lib/dom/procedureCall.js +11 -3
- package/lib/dom/rule.js +24 -8
- package/lib/dom/subDerivation.js +9 -5
- package/lib/dom/subproof.js +13 -5
- package/lib/dom/term.js +10 -16
- package/lib/dom/topLevelAssertion.js +24 -8
- package/lib/dom/type.js +10 -2
- package/lib/dom/variable.js +6 -2
- package/package.json +2 -2
- package/src/dom/assertion/subproof.js +16 -15
- package/src/dom/declaration/metavariable.js +10 -3
- package/src/dom/derivation.js +15 -9
- package/src/dom/equality.js +20 -7
- package/src/dom/frame.js +27 -14
- package/src/dom/judgement.js +19 -6
- package/src/dom/procedureCall.js +11 -3
- package/src/dom/rule.js +44 -17
- package/src/dom/subDerivation.js +15 -9
- package/src/dom/subproof.js +23 -10
- package/src/dom/term.js +14 -23
- package/src/dom/topLevelAssertion.js +44 -17
- package/src/dom/type.js +18 -6
- package/src/dom/variable.js +12 -6
- package/lib/dom/proofStep.old.js +0 -246
- package/src/dom/proofStep.old.js +0 -183
package/lib/dom/type.js
CHANGED
|
@@ -265,7 +265,7 @@ var Type = /*#__PURE__*/ function() {
|
|
|
265
265
|
{
|
|
266
266
|
key: "fromTypeDeclarationNode",
|
|
267
267
|
value: function fromTypeDeclarationNode(typeDeclarationNode, fileContext) {
|
|
268
|
-
var
|
|
268
|
+
var typeName = typeNameFromTypeDeclarationNode(typeDeclarationNode, fileContext), superType = superTypeFromTypeDeclarationNode(typeDeclarationNode, fileContext), string = stringFromTypeNameAndSuperType(typeName, superType), name = typeName, type = new Type(string, name, superType);
|
|
269
269
|
return type;
|
|
270
270
|
}
|
|
271
271
|
},
|
|
@@ -294,6 +294,14 @@ function stringFromTypeNameAndSuperType(typeName, superType) {
|
|
|
294
294
|
}
|
|
295
295
|
return string;
|
|
296
296
|
}
|
|
297
|
+
function typeNameFromTypeDeclarationNode(typeDeclarationNode, fileContext) {
|
|
298
|
+
var typeDeclarationTypeNode = typeDeclarationTypeNodeQuery(typeDeclarationNode), typeNode = typeDeclarationTypeNode, typeName = (0, _name.typeNameFromTypeNode)(typeNode);
|
|
299
|
+
return typeName;
|
|
300
|
+
}
|
|
301
|
+
function superTypeFromTypeDeclarationNode(typeDeclarationNode, fileContext) {
|
|
302
|
+
var typeDeclarationSuperTypeNode = typeDeclarationSuperTypeNodeQuery(typeDeclarationNode), superTypeNode = typeDeclarationSuperTypeNode, superType = Type.fromTypeNode(superTypeNode);
|
|
303
|
+
return superType;
|
|
304
|
+
}
|
|
297
305
|
var ObjectType = /*#__PURE__*/ function(Type) {
|
|
298
306
|
_inherits(ObjectType, Type);
|
|
299
307
|
function ObjectType() {
|
|
@@ -324,4 +332,4 @@ var ObjectType = /*#__PURE__*/ function(Type) {
|
|
|
324
332
|
}(Type);
|
|
325
333
|
var objectType = ObjectType.fromNothing();
|
|
326
334
|
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBPQkpFQ1RfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHN1cGVyVHlwZUZyb21KU09OLCBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVswXVwiKSxcbiAgICAgIHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVsxXVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGVEZWNsYXJhdGlvbi9tZXRhdmFyaWFibGUvdHlwZVwiKTtcblxuY2xhc3MgVHlwZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRTdXBlclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VwZXJUeXBlO1xuICB9XG5cbiAgaXNFcXVhbFRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gKHRoaXMgPT09IHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc1N1YlR5cGVPZih0eXBlKSB7XG4gICAgbGV0IHN1YlR5cGVPZjtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBzdWJUeXBlT2YgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3VwZXJUeXBlID09PSB0eXBlKSB7XG4gICAgICBzdWJUeXBlT2YgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJUeXBlT2YgPSB0aGlzLnN1cGVyVHlwZS5pc1N1YlR5cGVPZih0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViVHlwZU9mO1xuICB9XG5cbiAgaXNTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3Qgc3ViVHlwZU9mID0gdHlwZS5pc1N1YlR5cGVPZih0aGlzKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHN1YlR5cGVPZjsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cGVyVHlwZU9mO1xuICB9XG5cbiAgaXNDb21wYXJhYmxlVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGNvbXBhcmFibGVUbyA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZiB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gY29tcGFyYWJsZVRvO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1YlR5cGVPZiA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3ViVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1cGVyVHlwZU9mID0gKGVxdWFsVG8gfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBub2RlTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IHR5cGVOYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTmFtZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFR5cGVOb2RlKHR5cGVOb2RlKSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgdHlwZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaFR5cGVOYW1lKHR5cGVOYW1lKSxcbiAgICAgICAgICB0eXBlTm9kZU1hdGNoZXMgPSB0eXBlTmFtZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiB0eXBlTm9kZU1hdGNoZXM7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSB3aGVuIGRlY2xhcmVkLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlRGVjbGFyZWQgPSBmaWxlQ29udGV4dC5pc1R5cGVEZWNsYXJlZEJ5VHlwZU5hbWUodGhpcy5uYW1lKTtcblxuICAgIGlmICh0eXBlRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgdHlwZSAnJHt0eXBlU3RyaW5nfScgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHRoaXMuc3VwZXJUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZShzdXBlclR5cGVOYW1lKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVTdHJpbmcgPSB0aGlzLnN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIHN1cGVyLXR5cGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcblxuICAgICAgICB2ZXJpZmllZFdoZW5EZWNsYXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIHdoZW4gZGVjbGFyZWQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkV2hlbkRlY2xhcmVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04odGhpcy5zdXBlclR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZSA9IHN1cGVyVHlwZUpTT04sICAvLy9cbiAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgc3VwZXJUeXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb24sXG4gICAgICAgICAgdHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVOb2RlKHR5cGVOb2RlKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAodHlwZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBvYmplY3RUeXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSh0eXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICAgIHN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAvLy9cbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICBzdXBlclR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZShzdXBlclR5cGVOb2RlKSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSksXG4gICAgICAgICAgbmFtZSA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB0eXBlID0gbnVsbDtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUgPSBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlTm9kZSA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKFR5cGUpO1xuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSkge1xuICBsZXQgc3RyaW5nID0gdHlwZU5hbWU7ICAvLy9cblxuICBpZiAoKHN1cGVyVHlwZSAhPT0gbnVsbCkgJiYgKHN1cGVyVHlwZSAhPT0gb2JqZWN0VHlwZSkpIHtcbiAgICBjb25zdCB0eXBlU3RyaW5nID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROYW1lKCk7XG5cbiAgICBzdHJpbmcgPSBgJHt0eXBlU3RyaW5nfToke3N1cGVyVHlwZU5hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmNsYXNzIE9iamVjdFR5cGUgZXh0ZW5kcyBUeXBlIHtcbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN1cGVyVHlwZSA9IG51bGwsXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBuYW1lID0gT0JKRUNUX1RZUEVfTkFNRSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy9cbiAgICAgICAgICBzdXBlclR5cGUgPSBudWxsLFxuICAgICAgICAgIG9iamVjdFR5cGUgPSBuZXcgT2JqZWN0VHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSk7XG5cbiAgICByZXR1cm4gb2JqZWN0VHlwZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgb2JqZWN0VHlwZSA9IE9iamVjdFR5cGUuZnJvbU5vdGhpbmcoKTtcbiJdLCJuYW1lcyI6WyJvYmplY3RUeXBlIiwidHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsIlR5cGUiLCJzdHJpbmciLCJuYW1lIiwic3VwZXJUeXBlIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZSIsImdldFN1cGVyVHlwZSIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwiaXNTdWJUeXBlT2YiLCJzdWJUeXBlT2YiLCJpc1N1cGVyVHlwZU9mIiwic3VwZXJUeXBlT2YiLCJpc0NvbXBhcmFibGVUbyIsImNvbXBhcmFibGVUbyIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiZXF1YWxUb09yU3ViVHlwZU9mIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsImVxdWFsVG9PclN1cGVyVHlwZU9mIiwibWF0Y2hOYW1lIiwibm9kZU1hdGNoZXMiLCJtYXRjaFR5cGVOYW1lIiwidHlwZU5hbWUiLCJ0eXBlTmFtZU1hdGNoZXMiLCJtYXRjaFR5cGVOb2RlIiwidHlwZU5vZGUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGVOb2RlTWF0Y2hlcyIsInZlcmlmeVdoZW5EZWNsYXJlZCIsImZpbGVDb250ZXh0IiwidmVyaWZpZWRXaGVuRGVjbGFyZWQiLCJ0eXBlU3RyaW5nIiwidHJhY2UiLCJ0eXBlRGVjbGFyZWQiLCJpc1R5cGVEZWNsYXJlZEJ5VHlwZU5hbWUiLCJkZWJ1ZyIsInN1cGVyVHlwZU5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdXBlclR5cGVTdHJpbmciLCJ0b0pTT04iLCJzdXBlclR5cGVKU09OIiwic3VwZXJUeXBlVG9TdXBlclR5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwic3VwZXJUeXBlRnJvbUpTT04iLCJzdHJpbmdGcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUiLCJmcm9tVHlwZU5vZGUiLCJmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUiLCJkb21Bc3NpZ25lZCIsIk9iamVjdFR5cGUiLCJmcm9tTm90aGluZyIsIk9CSkVDVF9UWVBFX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWlOQSxPQUFpQztlQUFqQzs7SUFxQ2FBLFVBQVU7ZUFBVkE7OztxQkFwUGE7bUJBQ0U7eUJBQ0s7b0JBQ0k7b0JBQ3VCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUQsSUFBTUMsK0JBQStCQyxJQUFBQSxnQkFBUyxFQUFDLDZCQUN6Q0Msb0NBQW9DRCxJQUFBQSxnQkFBUyxFQUFDLDZCQUM5Q0UsdUNBQXVDRixJQUFBQSxnQkFBUyxFQUFDO0FBRXZELElBQUEsQUFBTUcscUJBQU47YUFBTUEsS0FDUUMsTUFBTSxF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
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBPQkpFQ1RfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHN1cGVyVHlwZUZyb21KU09OLCBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVswXVwiKSxcbiAgICAgIHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVsxXVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGVEZWNsYXJhdGlvbi9tZXRhdmFyaWFibGUvdHlwZVwiKTtcblxuY2xhc3MgVHlwZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRTdXBlclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VwZXJUeXBlO1xuICB9XG5cbiAgaXNFcXVhbFRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gKHRoaXMgPT09IHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc1N1YlR5cGVPZih0eXBlKSB7XG4gICAgbGV0IHN1YlR5cGVPZjtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBzdWJUeXBlT2YgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3VwZXJUeXBlID09PSB0eXBlKSB7XG4gICAgICBzdWJUeXBlT2YgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJUeXBlT2YgPSB0aGlzLnN1cGVyVHlwZS5pc1N1YlR5cGVPZih0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViVHlwZU9mO1xuICB9XG5cbiAgaXNTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3Qgc3ViVHlwZU9mID0gdHlwZS5pc1N1YlR5cGVPZih0aGlzKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHN1YlR5cGVPZjsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cGVyVHlwZU9mO1xuICB9XG5cbiAgaXNDb21wYXJhYmxlVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGNvbXBhcmFibGVUbyA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZiB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gY29tcGFyYWJsZVRvO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1YlR5cGVPZiA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3ViVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1cGVyVHlwZU9mID0gKGVxdWFsVG8gfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBub2RlTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IHR5cGVOYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTmFtZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFR5cGVOb2RlKHR5cGVOb2RlKSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgdHlwZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaFR5cGVOYW1lKHR5cGVOYW1lKSxcbiAgICAgICAgICB0eXBlTm9kZU1hdGNoZXMgPSB0eXBlTmFtZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiB0eXBlTm9kZU1hdGNoZXM7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSB3aGVuIGRlY2xhcmVkLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlRGVjbGFyZWQgPSBmaWxlQ29udGV4dC5pc1R5cGVEZWNsYXJlZEJ5VHlwZU5hbWUodGhpcy5uYW1lKTtcblxuICAgIGlmICh0eXBlRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgdHlwZSAnJHt0eXBlU3RyaW5nfScgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHRoaXMuc3VwZXJUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZShzdXBlclR5cGVOYW1lKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVTdHJpbmcgPSB0aGlzLnN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIHN1cGVyLXR5cGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcblxuICAgICAgICB2ZXJpZmllZFdoZW5EZWNsYXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIHdoZW4gZGVjbGFyZWQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkV2hlbkRlY2xhcmVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04odGhpcy5zdXBlclR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZSA9IHN1cGVyVHlwZUpTT04sICAvLy9cbiAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgc3VwZXJUeXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb24sXG4gICAgICAgICAgdHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVOb2RlKHR5cGVOb2RlKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAodHlwZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBvYmplY3RUeXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSxcbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHR5cGUgPSBudWxsO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVOb2RlID0gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoVHlwZSk7XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSB7XG4gIGxldCBzdHJpbmcgPSB0eXBlTmFtZTsgIC8vL1xuXG4gIGlmICgoc3VwZXJUeXBlICE9PSBudWxsKSAmJiAoc3VwZXJUeXBlICE9PSBvYmplY3RUeXBlKSkge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBzdHJpbmcsICAvLy9cbiAgICAgICAgICBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgIHN0cmluZyA9IGAke3R5cGVTdHJpbmd9OiR7c3VwZXJUeXBlTmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gdHlwZU5hbWVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICByZXR1cm4gdHlwZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHN1cGVyVHlwZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAvLy9cbiAgICAgICAgc3VwZXJUeXBlID0gVHlwZS5mcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZTtcbn1cblxuY2xhc3MgT2JqZWN0VHlwZSBleHRlbmRzIFR5cGUge1xuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3VwZXJUeXBlID0gbnVsbCxcbiAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgc3VwZXJUeXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5hbWUgPSBPQkpFQ1RfVFlQRV9OQU1FLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvL1xuICAgICAgICAgIHN1cGVyVHlwZSA9IG51bGwsXG4gICAgICAgICAgb2JqZWN0VHlwZSA9IG5ldyBPYmplY3RUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKTtcblxuICAgIHJldHVybiBvYmplY3RUeXBlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBvYmplY3RUeXBlID0gT2JqZWN0VHlwZS5mcm9tTm90aGluZygpO1xuIl0sIm5hbWVzIjpbIm9iamVjdFR5cGUiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5IiwiVHlwZSIsInN0cmluZyIsIm5hbWUiLCJzdXBlclR5cGUiLCJnZXRTdHJpbmciLCJnZXROYW1lIiwiZ2V0U3VwZXJUeXBlIiwiaXNFcXVhbFRvIiwidHlwZSIsImVxdWFsVG8iLCJpc1N1YlR5cGVPZiIsInN1YlR5cGVPZiIsImlzU3VwZXJUeXBlT2YiLCJzdXBlclR5cGVPZiIsImlzQ29tcGFyYWJsZVRvIiwiY29tcGFyYWJsZVRvIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJlcXVhbFRvT3JTdWJUeXBlT2YiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwiZXF1YWxUb09yU3VwZXJUeXBlT2YiLCJtYXRjaE5hbWUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoVHlwZU5hbWUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lTWF0Y2hlcyIsIm1hdGNoVHlwZU5vZGUiLCJ0eXBlTm9kZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZU5vZGVNYXRjaGVzIiwidmVyaWZ5V2hlbkRlY2xhcmVkIiwiZmlsZUNvbnRleHQiLCJ2ZXJpZmllZFdoZW5EZWNsYXJlZCIsInR5cGVTdHJpbmciLCJ0cmFjZSIsInR5cGVEZWNsYXJlZCIsImlzVHlwZURlY2xhcmVkQnlUeXBlTmFtZSIsImRlYnVnIiwic3VwZXJUeXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInN1cGVyVHlwZVN0cmluZyIsInRvSlNPTiIsInN1cGVyVHlwZUpTT04iLCJzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJzdXBlclR5cGVGcm9tSlNPTiIsInN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSIsImZyb21UeXBlTm9kZSIsImZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVOYW1lRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJzdXBlclR5cGVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsImZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlIiwiZG9tQXNzaWduZWQiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiT2JqZWN0VHlwZSIsImZyb21Ob3RoaW5nIiwiT0JKRUNUX1RZUEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBNk1BLE9BQWlDO2VBQWpDOztJQXFEYUEsVUFBVTtlQUFWQTs7O3FCQWhRYTttQkFDRTt5QkFDSztvQkFDSTtvQkFDdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCxJQUFNQywrQkFBK0JDLElBQUFBLGdCQUFTLEVBQUMsNkJBQ3pDQyxvQ0FBb0NELElBQUFBLGdCQUFTLEVBQUMsNkJBQzlDRSx1Q0FBdUNGLElBQUFBLGdCQUFTLEVBQUM7QUFFdkQsSUFBQSxBQUFNRyxxQkFBTjthQUFNQSxLQUNRQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsU0FBUztnQ0FEL0JIO1FBRUYsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxTQUFTLEdBQUdBOztrQkFKZkg7O1lBT0pJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsU0FBUztZQUN2Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxJQUFJO2dCQUNaLElBQU1DLFVBQVcsSUFBSSxLQUFLRDtnQkFFMUIsT0FBT0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxZQUFZRixJQUFJO2dCQUNkLElBQUlHO2dCQUVKLElBQUksT0FBTztnQkFD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
|
package/lib/dom/variable.js
CHANGED
|
@@ -316,12 +316,16 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
316
316
|
{
|
|
317
317
|
key: "fromVariableDeclarationNode",
|
|
318
318
|
value: function fromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
|
319
|
-
var
|
|
319
|
+
var variableDeclarationVariableNode = variableDeclarationVariableNodeQuery(variableDeclarationNode), variableNode = variableDeclarationVariableNode, variableName = (0, _name.variableNameFromVariableNode)(variableNode), variableString = fileContext.nodeAsString(variableNode), string = variableString, node = variableNode, name = variableName, type = typeFromVariableDeclarationNode(variableDeclarationNode, fileContext), variable = new Variable(string, node, name, type);
|
|
320
320
|
return variable;
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
]);
|
|
324
324
|
return Variable;
|
|
325
325
|
}(), _define_property(_Variable, "name", "Variable"), _Variable));
|
|
326
|
+
function typeFromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
|
327
|
+
var Type = _dom.default.Type, variableDeclarationTypeNode = variableDeclarationTypeNodeQuery(variableDeclarationNode), typeNode = variableDeclarationTypeNode, context = _local.default.fromFileContext(fileContext), type = Type.fromTypeNode(typeNode, context);
|
|
328
|
+
return type;
|
|
329
|
+
}
|
|
326
330
|
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyB9IGZyb20gXCIuLi9jb250ZXh0L3BhcnRpYWwvdmFyaWFibGVcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIG1hdGNoVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IG5hbWVNYXRjaGVzID0gKHZhcmlhYmxlTmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIGlzRXF1YWxUbyh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZXF1YWxUbyA9ICh2YXJpYWJsZVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc0VmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0odGVybSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dEZpbGVQYXRoID0gZ2VuZXJhbENvbnRleHQuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCA9IHNwZWNpZmljQ29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgaWYgKGdlbmVyYWxDb250ZXh0RmlsZVBhdGggPT09IHNwZWNpZmljQ29udGV4dEZpbGVQYXRoKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgICAgaWYgKHRlcm1TdHJpbmcgPT09IHRoaXMuc3RyaW5nKSB7XG4gICAgICAgIGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlZmZlY3RpdmVseUVxdWFsVG9UZXJtO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZShmaWxlQ29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQ7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbWlzc2luZy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVdoZW5EZWNsYXJlZChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZFdoZW5EZWNsYXJlZDtcblxuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB3aGVuIGRlY2xhcmVkLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlRGVjbGFyZWQgPSBmaWxlQ29udGV4dC5pc1ZhcmlhYmxlRGVjbGFyZWRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJlZCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlRGVjbGFyZWRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVEZWNsYXJlZCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgQSAnJHttZXRhdmFyaWFibGVOYW1lfScgdmFyaWFibGUgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZShmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB3aGVuIGRlY2xhcmVkLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZFdoZW5EZWNsYXJlZDtcbiAgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0c1JldmVyc2VkID0gZmFsc2UpIHtcbiAgICBsZXQgdGVybVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IHRoaXMuaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0pIHtcbiAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgIHN1YnN0aXR1dGlvblByZXNlbnQgPSBzdWJzdGl0dXRpb25zLmlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5VmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uUHJlc2VudCkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uLmlzVGVybUVxdWFsVG8odGVybSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSkge1xuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSBjb250ZXh0c1JldmVyc2VkID9cbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWxDb250ZXh0IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWNDb250ZXh0O1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uID0gVGVybVN1YnN0aXR1dGlvbi5mcm9tVGVybkFuZFZhcmlhYmxlKHRlcm0sIHZhcmlhYmxlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIHNwZWNpZmljQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBzdHJpbmcsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLFxuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtVmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICAgIGlmICh0ZXJtVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lOyAgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBjb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJ0ZXJtVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJzZXRUeXBlIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lTWF0Y2hlcyIsImlzRXF1YWxUbyIsInZhcmlhYmxlIiwidmFyaWFibGVTdHJpbmciLCJlcXVhbFRvIiwiaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtIiwidGVybSIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwiZWZmZWN0aXZlbHlFcXVhbFRvVGVybSIsImdlbmVyYWxDb250ZXh0RmlsZVBhdGgiLCJnZXRGaWxlUGF0aCIsInNwZWNpZmljQ29udGV4dEZpbGVQYXRoIiwidGVybVN0cmluZyIsInZlcmlmeSIsImNvbnRleHQiLCJ2ZXJpZmllZCIsInRyYWNlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJkZWJ1ZyIsInZlcmlmeVR5cGUiLCJmaWxlQ29udGV4dCIsInR5cGVWZXJpZmllZCIsIm9iamVjdFR5cGUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInZlcmlmeVdoZW5EZWNsYXJlZCIsInZlcmlmaWVkV2hlbkRlY2xhcmVkIiwidmFyaWFibGVEZWNsYXJlZCIsImlzVmFyaWFibGVEZWNsYXJlZEJ5VmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZURlY2xhcmVkIiwiaXNNZXRhdmFyaWFibGVEZWNsYXJlZEJ5TWV0YXZhcmlhYmxlTmFtZSIsInVuaWZ5VGVybSIsInN1YnN0aXR1dGlvbnMiLCJjb250ZXh0c1JldmVyc2VkIiwidGVybVVuaWZpZWQiLCJzdWJzdGl0dXRpb25QcmVzZW50IiwiaXNTdWJzdGl0dXRpb25QcmVzZW50QnlWYXJpYWJsZSIsInN1YnN0aXR1dGlvbiIsImZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtIiwiaXNUZXJtRXF1YWxUbyIsInRlcm1TdWJzdGl0dXRpb24iLCJUZXJtU3Vic3RpdHV0aW9uIiwiZnJvbVRlcm5BbmRWYXJpYWJsZSIsImFkZFN1YnN0aXR1dGlvbiIsInRvSlNPTiIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidHlwZUZyb21KU09OIiwiZnJvbVRlcm1Ob2RlIiwidGVybU5vZGUiLCJ0ZXJtVmFyaWFibGVOb2RlIiwibm9kZUFzU3RyaW5nIiwiZnJvbVZhcmlhYmxlTm9kZSIsImZyb21WYXJpYWJsZU5vZGVBbmRUeXBlIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJUeXBlIiwiZG9tIiwidmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZSIsInR5cGVOb2RlIiwiZnJvbVR5cGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7MkRBZmdCOzREQUNTOzJEQUNJO3FCQUVIO29CQUNDO29CQUVrQjtvQkFDQTt3QkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyB9IGZyb20gXCIuLi9jb250ZXh0L3BhcnRpYWwvdmFyaWFibGVcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIG1hdGNoVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IG5hbWVNYXRjaGVzID0gKHZhcmlhYmxlTmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIGlzRXF1YWxUbyh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZXF1YWxUbyA9ICh2YXJpYWJsZVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc0VmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0odGVybSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dEZpbGVQYXRoID0gZ2VuZXJhbENvbnRleHQuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCA9IHNwZWNpZmljQ29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgaWYgKGdlbmVyYWxDb250ZXh0RmlsZVBhdGggPT09IHNwZWNpZmljQ29udGV4dEZpbGVQYXRoKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgICAgaWYgKHRlcm1TdHJpbmcgPT09IHRoaXMuc3RyaW5nKSB7XG4gICAgICAgIGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlZmZlY3RpdmVseUVxdWFsVG9UZXJtO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZShmaWxlQ29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQ7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbWlzc2luZy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVdoZW5EZWNsYXJlZChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZFdoZW5EZWNsYXJlZDtcblxuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB3aGVuIGRlY2xhcmVkLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlRGVjbGFyZWQgPSBmaWxlQ29udGV4dC5pc1ZhcmlhYmxlRGVjbGFyZWRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJlZCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlRGVjbGFyZWRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVEZWNsYXJlZCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgQSAnJHttZXRhdmFyaWFibGVOYW1lfScgdmFyaWFibGUgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZShmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB3aGVuIGRlY2xhcmVkLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZFdoZW5EZWNsYXJlZDtcbiAgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0c1JldmVyc2VkID0gZmFsc2UpIHtcbiAgICBsZXQgdGVybVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IHRoaXMuaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0pIHtcbiAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgIHN1YnN0aXR1dGlvblByZXNlbnQgPSBzdWJzdGl0dXRpb25zLmlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5VmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uUHJlc2VudCkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uLmlzVGVybUVxdWFsVG8odGVybSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSkge1xuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSBjb250ZXh0c1JldmVyc2VkID9cbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWxDb250ZXh0IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWNDb250ZXh0O1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uID0gVGVybVN1YnN0aXR1dGlvbi5mcm9tVGVybkFuZFZhcmlhYmxlKHRlcm0sIHZhcmlhYmxlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIHNwZWNpZmljQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBzdHJpbmcsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLFxuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtVmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICAgIGlmICh0ZXJtVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lOyAgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlID0gdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZywgIC8vL1xuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59KTtcblxuZnVuY3Rpb24gdHlwZUZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgeyBUeXBlIH0gPSBkb20sXG4gICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgdHlwZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICBjb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgIHR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZSh0eXBlTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHR5cGU7XG59XG4iXSwibmFtZXMiOlsidGVybVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlZhcmlhYmxlIiwic3RyaW5nIiwibm9kZSIsIm5hbWUiLCJ0eXBlIiwiZ2V0U3RyaW5nIiwiZ2V0Tm9kZSIsImdldE5hbWUiLCJnZXRUeXBlIiwic2V0VHlwZSIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwibmFtZU1hdGNoZXMiLCJpc0VxdWFsVG8iLCJ2YXJpYWJsZSIsInZhcmlhYmxlU3RyaW5nIiwiZXF1YWxUbyIsImlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsImVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0iLCJnZW5lcmFsQ29udGV4dEZpbGVQYXRoIiwiZ2V0RmlsZVBhdGgiLCJzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCIsInRlcm1TdHJpbmciLCJ2ZXJpZnkiLCJjb250ZXh0IiwidmVyaWZpZWQiLCJ0cmFjZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZGVidWciLCJ2ZXJpZnlUeXBlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJvYmplY3RUeXBlIiwidHlwZU5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ2ZXJpZnlXaGVuRGVjbGFyZWQiLCJ2ZXJpZmllZFdoZW5EZWNsYXJlZCIsInZhcmlhYmxlRGVjbGFyZWQiLCJpc1ZhcmlhYmxlRGVjbGFyZWRCeVZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVEZWNsYXJlZCIsImlzTWV0YXZhcmlhYmxlRGVjbGFyZWRCeU1ldGF2YXJpYWJsZU5hbWUiLCJ1bmlmeVRlcm0iLCJzdWJzdGl0dXRpb25zIiwiY29udGV4dHNSZXZlcnNlZCIsInRlcm1VbmlmaWVkIiwic3Vic3RpdHV0aW9uUHJlc2VudCIsImlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZSIsInN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSIsImlzVGVybUVxdWFsVG8iLCJ0ZXJtU3Vic3RpdHV0aW9uIiwiVGVybVN1YnN0aXR1dGlvbiIsImZyb21UZXJuQW5kVmFyaWFibGUiLCJhZGRTdWJzdGl0dXRpb24iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSIsInR5cGVGcm9tSlNPTiIsImZyb21UZXJtTm9kZSIsInRlcm1Ob2RlIiwidGVybVZhcmlhYmxlTm9kZSIsIm5vZGVBc1N0cmluZyIsImZyb21WYXJpYWJsZU5vZGUiLCJmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSIsImZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZSIsInR5cGVGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJUeXBlIiwiZG9tIiwidmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlIiwidHlwZU5vZGUiLCJmcm9tVHlwZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQUE7OzsyREFmZ0I7NERBQ1M7MkRBQ0k7cUJBRUg7b0JBQ0M7b0JBRWtCO29CQUNBO3dCQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQyxJQUFNQSx3QkFBd0JDLElBQUFBLGdCQUFTLEVBQUMsb0JBQ2xDQyxtQ0FBbUNELElBQUFBLGdCQUFTLEVBQUMsOEJBQzdDRSx1Q0FBdUNGLElBQUFBLGdCQUFTLEVBQUM7SUFFdkQsV0FBZUcsSUFBQUEsZ0JBQVcsNkJBQUM7YUFBTUMsU0FDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRExKO1FBRTdCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7OztZQUdkQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLElBQUk7WUFDbEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLElBQUk7WUFDbEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLElBQUk7WUFDbEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUwsSUFBSTtnQkFDVixJQUFJLENBQUNBLElBQUksR0FBR0E7WUFDZDs7O1lBRUFNLEtB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1190",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.32",
|
|
14
14
|
"necessary": "^14.2.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.976",
|
|
16
16
|
"occam-entities": "^1.0.234",
|
|
17
17
|
"occam-file-system": "^6.0.262",
|
|
18
18
|
"occam-furtle": "^1.0.38",
|
|
@@ -103,16 +103,11 @@ export default domAssigned(class SubproofAssertion {
|
|
|
103
103
|
|
|
104
104
|
if (subproofAssertionNode !== null) {
|
|
105
105
|
const { Statement } = dom,
|
|
106
|
-
statementNodes = statementNodesQuery(subproofAssertionNode),
|
|
107
106
|
statement = Statement.fromStatementNode(statementNode, context),
|
|
108
107
|
statementString = statement.getString(),
|
|
109
|
-
|
|
110
|
-
const statement = Statement.fromStatementNode(statementNode, context);
|
|
111
|
-
|
|
112
|
-
return statement;
|
|
113
|
-
}),
|
|
108
|
+
string = statementString, ///
|
|
114
109
|
node = subproofAssertionNode, ///
|
|
115
|
-
|
|
110
|
+
statements = statementsFromSubproofAssertionNode(subproofAssertionNode, context);
|
|
116
111
|
|
|
117
112
|
subproofAssertion = new SubproofAssertion(string, node, statements);
|
|
118
113
|
}
|
|
@@ -124,14 +119,8 @@ export default domAssigned(class SubproofAssertion {
|
|
|
124
119
|
let subproofAssertion = null;
|
|
125
120
|
|
|
126
121
|
if (subproofAssertionNode !== null) {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
statements = statementNodes.map((statementNode) => {
|
|
130
|
-
const statement = Statement.fromStatementNode(statementNode, context);
|
|
131
|
-
|
|
132
|
-
return statement;
|
|
133
|
-
}),
|
|
134
|
-
node = subproofAssertionNode, ///
|
|
122
|
+
const node = subproofAssertionNode, ///
|
|
123
|
+
statements = statementsFromSubproofAssertionNode(subproofAssertionNode, context),
|
|
135
124
|
string = stringFromStatements(statements);
|
|
136
125
|
|
|
137
126
|
subproofAssertion = new SubproofAssertion(string, node, statements);
|
|
@@ -151,6 +140,18 @@ function stringFromStatements(statements) {
|
|
|
151
140
|
return string;
|
|
152
141
|
}
|
|
153
142
|
|
|
143
|
+
function statementsFromSubproofAssertionNode(subproofAssertionNode, context) {
|
|
144
|
+
const { Statement } = dom,
|
|
145
|
+
statementNodes = statementNodesQuery(subproofAssertionNode),
|
|
146
|
+
statements = statementNodes.map((statementNode) => {
|
|
147
|
+
const statement = Statement.fromStatementNode(statementNode, context);
|
|
148
|
+
|
|
149
|
+
return statement;
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
return statements;
|
|
153
|
+
}
|
|
154
|
+
|
|
154
155
|
function statementsStringFromStatements(statements) {
|
|
155
156
|
const statementsString = statements.reduce((statementsString, statement) => {
|
|
156
157
|
const statementString = statement.getString();
|
|
@@ -51,9 +51,8 @@ export default domAssigned(class MetavariableDeclaration {
|
|
|
51
51
|
static name = "MetavariableDeclaration";
|
|
52
52
|
|
|
53
53
|
static fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
|
|
54
|
-
const {
|
|
55
|
-
|
|
56
|
-
metaType = MetaType.fromMetaTypeNode(metaTypeNode, fileContext),
|
|
54
|
+
const { Metavariable } = dom,
|
|
55
|
+
metaType = metaTypeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext),
|
|
57
56
|
metavariable = Metavariable.fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext),
|
|
58
57
|
string = stringFromMetavariableAndMetaType(metavariable, metaType),
|
|
59
58
|
metavariableDeclaration = new MetavariableDeclaration(fileContext, string, metavariable);
|
|
@@ -77,3 +76,11 @@ function stringFromMetavariableAndMetaType(metavariable, metaType) {
|
|
|
77
76
|
|
|
78
77
|
return string;
|
|
79
78
|
}
|
|
79
|
+
|
|
80
|
+
function metaTypeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
|
|
81
|
+
const { MetaType } = dom,
|
|
82
|
+
metaTypeNode = metaTypeNodeQuery(metavariableDeclarationNode),
|
|
83
|
+
metaType = MetaType.fromMetaTypeNode(metaTypeNode, fileContext);
|
|
84
|
+
|
|
85
|
+
return metaType;
|
|
86
|
+
}
|
package/src/dom/derivation.js
CHANGED
|
@@ -44,17 +44,23 @@ export default domAssigned(class Derivation {
|
|
|
44
44
|
static name = "Derivation";
|
|
45
45
|
|
|
46
46
|
static fromDerivationNode(derivationNode, fileContext) {
|
|
47
|
-
const
|
|
48
|
-
proofStepSubproofNodes = proofStepSubproofNodesQuery(derivationNode),
|
|
49
|
-
proofStepSubproofs = proofStepSubproofNodes.map((proofStepSubproofNode) => {
|
|
50
|
-
const subproof = Subproof.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
51
|
-
proofStep = ProofStep.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
52
|
-
proofStepSubproof = (proofStep || subproof);
|
|
53
|
-
|
|
54
|
-
return proofStepSubproof;
|
|
55
|
-
}),
|
|
47
|
+
const proofStepSubproofs = proofStepSubproofsFromDerivationNode(derivationNode, fileContext),
|
|
56
48
|
derivation = new Derivation(proofStepSubproofs);
|
|
57
49
|
|
|
58
50
|
return derivation;
|
|
59
51
|
}
|
|
60
52
|
});
|
|
53
|
+
|
|
54
|
+
function proofStepSubproofsFromDerivationNode(derivationNode, fileContext) {
|
|
55
|
+
const { ProofStep, Subproof } = dom,
|
|
56
|
+
proofStepSubproofNodes = proofStepSubproofNodesQuery(derivationNode),
|
|
57
|
+
proofStepSubproofs = proofStepSubproofNodes.map((proofStepSubproofNode) => {
|
|
58
|
+
const subproof = Subproof.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
59
|
+
proofStep = ProofStep.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
60
|
+
proofStepSubproof = (proofStep || subproof);
|
|
61
|
+
|
|
62
|
+
return proofStepSubproof;
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return proofStepSubproofs;
|
|
66
|
+
}
|
package/src/dom/equality.js
CHANGED
|
@@ -212,13 +212,10 @@ export default domAssigned(class Equality {
|
|
|
212
212
|
const equalityNode = equalityNodeQuery(statementNode);
|
|
213
213
|
|
|
214
214
|
if (equalityNode !== null) {
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
rightTerm = Term.fromTermNode(rightTermNode, context),
|
|
220
|
-
node = equalityNode, ///
|
|
221
|
-
string = context.nodeAsString(node);
|
|
215
|
+
const node = equalityNode, ///
|
|
216
|
+
string = context.nodeAsString(node),
|
|
217
|
+
leftTerm = leftTermFromEqualityNode(equalityNode, context),
|
|
218
|
+
rightTerm = rightTermFromEqualityNode(equalityNode, context);
|
|
222
219
|
|
|
223
220
|
equality = new Equality(string, leftTerm, rightTerm);
|
|
224
221
|
}
|
|
@@ -226,3 +223,19 @@ export default domAssigned(class Equality {
|
|
|
226
223
|
return equality;
|
|
227
224
|
}
|
|
228
225
|
});
|
|
226
|
+
|
|
227
|
+
function leftTermFromEqualityNode(equalityNode, context) {
|
|
228
|
+
const { Term } = dom,
|
|
229
|
+
leftTermNode = leftTermNodeQuery(equalityNode),
|
|
230
|
+
leftTerm = Term.fromTermNode(leftTermNode, context);
|
|
231
|
+
|
|
232
|
+
return leftTerm;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function rightTermFromEqualityNode(equalityNode, context) {
|
|
236
|
+
const { Term } = dom,
|
|
237
|
+
rightTermNode = rightTermNodeQuery(equalityNode),
|
|
238
|
+
rightTerm = Term.fromTermNode(rightTermNode, context);
|
|
239
|
+
|
|
240
|
+
return rightTerm;
|
|
241
|
+
}
|
package/src/dom/frame.js
CHANGED
|
@@ -283,22 +283,11 @@ export default domAssigned(class Frame {
|
|
|
283
283
|
let frame = null;
|
|
284
284
|
|
|
285
285
|
if (frameNode !== null) {
|
|
286
|
-
const
|
|
287
|
-
node = frameNode, ///
|
|
286
|
+
const node = frameNode, ///
|
|
288
287
|
string = context.nodeAsString(node),
|
|
289
288
|
tokens = context.nodeAsTokens(node),
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
declarations = declarationNodes.map((declarationNode) => {
|
|
293
|
-
const declaration = Declaration.fromDeclarationNode(declarationNode, context);
|
|
294
|
-
|
|
295
|
-
return declaration;
|
|
296
|
-
}),
|
|
297
|
-
metavariables = metavariableNodes.map((metavariableNode) => {
|
|
298
|
-
const metavariable = Metavariable.fromMetavariableNode(metavariableNode, context);
|
|
299
|
-
|
|
300
|
-
return metavariable;
|
|
301
|
-
});
|
|
289
|
+
declarations = declarationsFromFrameNode(frameNode, context),
|
|
290
|
+
metavariables = metavariablesFromFrameNode(frameNode, context);
|
|
302
291
|
|
|
303
292
|
frame = new Frame(string, node, tokens, declarations, metavariables);
|
|
304
293
|
}
|
|
@@ -358,3 +347,27 @@ export default domAssigned(class Frame {
|
|
|
358
347
|
return frame;
|
|
359
348
|
}
|
|
360
349
|
});
|
|
350
|
+
|
|
351
|
+
function declarationsFromFrameNode(frameNode, context) {
|
|
352
|
+
const { Declaration } = dom,
|
|
353
|
+
declarationNodes = declarationNodesQuery(frameNode),
|
|
354
|
+
declarations = declarationNodes.map((declarationNode) => {
|
|
355
|
+
const declaration = Declaration.fromDeclarationNode(declarationNode, context);
|
|
356
|
+
|
|
357
|
+
return declaration;
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
return declarations;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
function metavariablesFromFrameNode(frameNode, context) {
|
|
364
|
+
const { Metavariable } = dom,
|
|
365
|
+
metavariableNodes = metavariableNodesQuery(frameNode),
|
|
366
|
+
metavariables = metavariableNodes.map((metavariableNode) => {
|
|
367
|
+
const metavariable = Metavariable.fromMetavariableNode(metavariableNode, context);
|
|
368
|
+
|
|
369
|
+
return metavariable;
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
return metavariables;
|
|
373
|
+
}
|
package/src/dom/judgement.js
CHANGED
|
@@ -112,13 +112,10 @@ export default domAssigned(class Judgement {
|
|
|
112
112
|
const judgementNode = judgementNodeQuery(statementNode);
|
|
113
113
|
|
|
114
114
|
if (judgementNode !== null) {
|
|
115
|
-
const
|
|
116
|
-
frameNode = frameNodeQuery(judgementNode),
|
|
117
|
-
declarationNode = declarationNodeQuery(judgementNode),
|
|
118
|
-
node = judgementNode, ///
|
|
119
|
-
frame = Frame.fromFrameNode(frameNode, context),
|
|
115
|
+
const node = judgementNode, ///
|
|
120
116
|
string = context.nodeAsString(node),
|
|
121
|
-
|
|
117
|
+
frame = frameFromJudgementNode(judgementNode, context),
|
|
118
|
+
declaration = declarationFromJudgementNode(judgementNode, context);
|
|
122
119
|
|
|
123
120
|
judgement = new Judgement(string, frame, declaration);
|
|
124
121
|
}
|
|
@@ -126,3 +123,19 @@ export default domAssigned(class Judgement {
|
|
|
126
123
|
return judgement;
|
|
127
124
|
}
|
|
128
125
|
});
|
|
126
|
+
|
|
127
|
+
function frameFromJudgementNode(judgementNode, context) {
|
|
128
|
+
const { Frame } = dom,
|
|
129
|
+
frameNode = frameNodeQuery(judgementNode),
|
|
130
|
+
frame = Frame.fromFrameNode(frameNode, context);
|
|
131
|
+
|
|
132
|
+
return frame;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function declarationFromJudgementNode(judgementNode, context) {
|
|
136
|
+
const { Declaration } = dom,
|
|
137
|
+
declarationNode = declarationNodeQuery(judgementNode),
|
|
138
|
+
declaration = Declaration.fromDeclarationNode(declarationNode, context);
|
|
139
|
+
|
|
140
|
+
return declaration;
|
|
141
|
+
}
|
package/src/dom/procedureCall.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {nodeQuery, nodesQuery} from "../utilities/query";
|
|
4
4
|
import { domAssigned } from "../dom";
|
|
5
5
|
|
|
6
|
-
const
|
|
6
|
+
const parameterNodesQuery = nodesQuery("/procedureCall/parameter"),
|
|
7
|
+
procedureCallNodeQuery = nodeQuery("/statement/procedureCall");
|
|
7
8
|
|
|
8
9
|
export default domAssigned(class ProcedureCall {
|
|
9
|
-
constructor(reference) {
|
|
10
|
+
constructor(reference, parameters) {
|
|
10
11
|
this.reference = reference;
|
|
12
|
+
this.parameters = parameters;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
getReference() {
|
|
14
16
|
return this.reference;
|
|
15
17
|
}
|
|
16
18
|
|
|
19
|
+
getParameters() {
|
|
20
|
+
return this.parameters;
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
verify(assignments, stated, context) {
|
|
18
24
|
let verified = false;
|
|
19
25
|
|
|
@@ -21,6 +27,8 @@ export default domAssigned(class ProcedureCall {
|
|
|
21
27
|
|
|
22
28
|
context.trace(`Verifying the '${procedureCallString}' procedure call...`);
|
|
23
29
|
|
|
30
|
+
debugger
|
|
31
|
+
|
|
24
32
|
if (verified) {
|
|
25
33
|
context.debug(`...verified the '${procedureCallString}' procedure call.`);
|
|
26
34
|
}
|
package/src/dom/rule.js
CHANGED
|
@@ -237,26 +237,53 @@ export default domAssigned(class Rule {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
static fromRuleNode(ruleNode, fileContext) {
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
conclusionNode = conclusionNodeQuery(ruleNode),
|
|
245
|
-
labels = labelNodes.map((labelNode) => {
|
|
246
|
-
const label = Label.fromLabelNode(labelNode, fileContext);
|
|
247
|
-
|
|
248
|
-
return label;
|
|
249
|
-
}),
|
|
250
|
-
premises = premiseNodes.map((premiseNode) => {
|
|
251
|
-
const premise = Premise.fromPremiseNode(premiseNode, fileContext);
|
|
252
|
-
|
|
253
|
-
return premise;
|
|
254
|
-
}),
|
|
255
|
-
conclusion = Conclusion.fromConclusionNode(conclusionNode, fileContext),
|
|
240
|
+
const labels = labelsFromRuleNode(ruleNode, fileContext),
|
|
241
|
+
premises = premisesFromRuleNode(ruleNode, fileContext),
|
|
242
|
+
conclusion = conclusionFromRuleNode(ruleNode, fileContext),
|
|
243
|
+
proof = proofFromRuleNode(ruleNode, fileContext),
|
|
256
244
|
string = stringFromLabels(labels),
|
|
257
|
-
proof = Proof.fromProofNode(proofNode, fileContext),
|
|
258
245
|
rule = new Rule(fileContext, string, labels, premises, conclusion, proof);
|
|
259
246
|
|
|
260
247
|
return rule;
|
|
261
248
|
}
|
|
262
249
|
});
|
|
250
|
+
|
|
251
|
+
function proofFromRuleNode(ruleNode, fileContext) {
|
|
252
|
+
const { Proof } = dom,
|
|
253
|
+
proofNode = proofNodeQuery(ruleNode),
|
|
254
|
+
proof = Proof.fromProofNode(proofNode, fileContext);
|
|
255
|
+
|
|
256
|
+
return proof;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function labelsFromRuleNode(ruleNode, fileContext) {
|
|
260
|
+
const { Label } = dom,
|
|
261
|
+
labelNodes = labelNodesQuery(ruleNode),
|
|
262
|
+
labels = labelNodes.map((labelNode) => {
|
|
263
|
+
const label = Label.fromLabelNode(labelNode, fileContext);
|
|
264
|
+
|
|
265
|
+
return label;
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
return labels;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function premisesFromRuleNode(ruleNode, fileContext) {
|
|
272
|
+
const { Premise } = dom,
|
|
273
|
+
premiseNodes = premiseNodesQuery(ruleNode),
|
|
274
|
+
premises = premiseNodes.map((premiseNode) => {
|
|
275
|
+
const premise = Premise.fromPremiseNode(premiseNode, fileContext);
|
|
276
|
+
|
|
277
|
+
return premise;
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
return premises;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
function conclusionFromRuleNode(ruleNode, fileContext) {
|
|
284
|
+
const { Conclusion } = dom,
|
|
285
|
+
conclusionNode = conclusionNodeQuery(ruleNode),
|
|
286
|
+
conclusion = Conclusion.fromConclusionNode(conclusionNode, fileContext);
|
|
287
|
+
|
|
288
|
+
return conclusion;
|
|
289
|
+
}
|
package/src/dom/subDerivation.js
CHANGED
|
@@ -44,17 +44,23 @@ export default domAssigned(class SubDerivation {
|
|
|
44
44
|
static name = "SubDerivation";
|
|
45
45
|
|
|
46
46
|
static fromSubDerivationNode(subDerivationNode, fileContext) {
|
|
47
|
-
const
|
|
48
|
-
proofStepSubproofNodes = proofStepSubproofNodesQuery(subDerivationNode),
|
|
49
|
-
proofStepSubproofs = proofStepSubproofNodes.map((proofStepSubproofNode) => {
|
|
50
|
-
const subproof = Subproof.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
51
|
-
proofStep = ProofStep.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
52
|
-
proofStepSubproof = (proofStep || subproof);
|
|
53
|
-
|
|
54
|
-
return proofStepSubproof;
|
|
55
|
-
}),
|
|
47
|
+
const proofStepSubproofs = proofStepSubproofFromSubDerivationNode(subDerivationNode, fileContext),
|
|
56
48
|
subDerivation = new SubDerivation(proofStepSubproofs);
|
|
57
49
|
|
|
58
50
|
return subDerivation;
|
|
59
51
|
}
|
|
60
52
|
});
|
|
53
|
+
|
|
54
|
+
function proofStepSubproofFromSubDerivationNode(subDerivationNode, fileContext) {
|
|
55
|
+
const { ProofStep, Subproof } = dom,
|
|
56
|
+
proofStepSubproofNodes = proofStepSubproofNodesQuery(subDerivationNode),
|
|
57
|
+
proofStepSubproofs = proofStepSubproofNodes.map((proofStepSubproofNode) => {
|
|
58
|
+
const subproof = Subproof.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
59
|
+
proofStep = ProofStep.fromProofStepSubproofNode(proofStepSubproofNode, fileContext),
|
|
60
|
+
proofStepSubproof = (proofStep || subproof);
|
|
61
|
+
|
|
62
|
+
return proofStepSubproof;
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return proofStepSubproofs;
|
|
66
|
+
}
|