occam-verify-cli 0.0.870 → 0.0.872
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/axiomLemmaTheoremConjecture.js +13 -13
- package/lib/context/file.js +94 -71
- package/lib/label.js +5 -6
- package/lib/metaLemmaMetatheorem.js +13 -13
- package/lib/metaType/context.js +124 -0
- package/lib/metaType/label.js +124 -0
- package/lib/metaType/statement.js +124 -0
- package/lib/metaType.js +1 -112
- package/lib/metaTypeNames.js +6 -2
- package/lib/metaTypes.js +12 -4
- package/lib/metavariable.js +49 -9
- package/lib/mixins/context.js +36 -28
- package/lib/rule.js +13 -13
- package/lib/ruleNames.js +4 -4
- package/lib/utilities/name.js +8 -8
- package/lib/utilities/node.js +14 -14
- package/lib/utilities/query.js +4 -9
- package/lib/utilities/tokens.js +6 -6
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/label.js +8 -9
- package/lib/verify/labels.js +15 -8
- package/lib/verify/lemma.js +4 -4
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metastatement/qualified.js +3 -3
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/metavariable.js +35 -9
- package/lib/verify/rule.js +4 -4
- package/lib/verify/statement/qualified.js +29 -29
- package/lib/verify/theorem.js +4 -4
- package/package.json +1 -1
- package/src/axiomLemmaTheoremConjecture.js +13 -13
- package/src/context/file.js +98 -72
- package/src/label.js +6 -7
- package/src/metaLemmaMetatheorem.js +13 -13
- package/src/metaType/context.js +18 -0
- package/src/metaType/label.js +18 -0
- package/src/metaType/statement.js +18 -0
- package/src/metaType.js +0 -23
- package/src/metaTypeNames.js +2 -1
- package/src/metaTypes.js +4 -1
- package/src/metavariable.js +60 -10
- package/src/mixins/context.js +23 -17
- package/src/rule.js +13 -13
- package/src/ruleNames.js +1 -1
- package/src/utilities/name.js +7 -7
- package/src/utilities/node.js +13 -13
- package/src/utilities/query.js +3 -9
- package/src/utilities/tokens.js +4 -4
- package/src/verify/axiom.js +4 -4
- package/src/verify/conjecture.js +4 -4
- package/src/verify/label.js +8 -9
- package/src/verify/labels.js +17 -7
- package/src/verify/lemma.js +4 -4
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metastatement/qualified.js +5 -4
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/metavariable.js +59 -11
- package/src/verify/rule.js +4 -4
- package/src/verify/statement/qualified.js +35 -30
- package/src/verify/theorem.js +4 -4
|
@@ -18,24 +18,36 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
var _metavariable = /*#__PURE__*/ _interop_require_default(require("../metavariable"));
|
|
20
20
|
var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("../assignment/metavariable"));
|
|
21
|
+
var _array = require("../utilities/array");
|
|
21
22
|
var _query = require("../utilities/query");
|
|
23
|
+
var _name = require("../utilities/name");
|
|
22
24
|
function _interop_require_default(obj) {
|
|
23
25
|
return obj && obj.__esModule ? obj : {
|
|
24
26
|
default: obj
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
|
-
var typeNodeQuery = (0, _query.nodeQuery)("/argument/type"), argumentNodeQuery = (0, _query.nodeQuery)("/metavariable/argument!");
|
|
29
|
+
var termNodeQuery = (0, _query.nodeQuery)("/argument/term"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type"), argumentNodeQuery = (0, _query.nodeQuery)("/metavariable/argument!");
|
|
28
30
|
function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
|
|
29
31
|
var metavariableVerified = false;
|
|
30
32
|
var metavariableString = fileContext.nodeAsString(metavariableNode);
|
|
31
33
|
fileContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."), metavariableNode);
|
|
32
|
-
var metavariablePresent = fileContext.
|
|
34
|
+
var name = (0, _name.nameFromMetavariableNode)(metavariableNode), metavariablePresent = fileContext.isMetavariablePresentByName(name);
|
|
33
35
|
if (metavariablePresent) {
|
|
34
36
|
fileContext.debug("The metavariable '".concat(metavariableString, "' is already present."), metavariableNode);
|
|
35
37
|
} else {
|
|
36
|
-
var argumentNode = argumentNodeQuery(metavariableNode), argumentVerified = verifyArgument(
|
|
37
|
-
if (argumentVerified) {
|
|
38
|
-
var
|
|
38
|
+
var termTypes = [], metaTypes = [], argumentNode = argumentNodeQuery(metavariableNode), argumentVerified = verifyArgument(argumentNode, termTypes, fileContext), metaTypeVerified = verifyMetaType(metaTypeNode, metaTypes, fileContext);
|
|
39
|
+
if (argumentVerified && metaTypeVerified) {
|
|
40
|
+
var termType, metaType;
|
|
41
|
+
var firstMetaType = (0, _array.first)(metaTypes);
|
|
42
|
+
metaType = firstMetaType; ///
|
|
43
|
+
var termTypesLength = termTypes.length;
|
|
44
|
+
if (termTypesLength === 0) {
|
|
45
|
+
termType = null;
|
|
46
|
+
} else {
|
|
47
|
+
var firstTermType = (0, _array.first)(termTypes);
|
|
48
|
+
termType = firstTermType; ///
|
|
49
|
+
}
|
|
50
|
+
var node = metavariableNode, metavariable = _metavariable.default.fromNodeNameTermTypeAndMetaType(node, name, termType, metaType), metavariableAssignment = _metavariable1.default.fromMetavariable(metavariable), metavariableAssigned = metavariableAssignment.assign(fileContext);
|
|
39
51
|
if (metavariableAssigned) {
|
|
40
52
|
metavariableVerified = true;
|
|
41
53
|
}
|
|
@@ -60,23 +72,37 @@ function verifyStandaloneMetavariable(metavariableNode, localMetaContext, verify
|
|
|
60
72
|
}
|
|
61
73
|
return standaloneMetavariableVerified;
|
|
62
74
|
}
|
|
63
|
-
function verifyArgument(
|
|
75
|
+
function verifyArgument(argumentNode, termTypes, fileContext) {
|
|
64
76
|
var argumentVerified = false;
|
|
65
77
|
if (argumentNode === null) {
|
|
66
78
|
argumentVerified = true;
|
|
67
79
|
} else {
|
|
80
|
+
var termNode = termNodeQuery(argumentNode);
|
|
81
|
+
if (termNode === null) {} else {
|
|
82
|
+
var termString = fileContext.nodeAsString(termNode);
|
|
83
|
+
fileContext.debug("The '".concat(termString, "' term was found when a type should have been present."), termNode);
|
|
84
|
+
}
|
|
68
85
|
var typeNode = typeNodeQuery(argumentNode);
|
|
69
86
|
if (typeNode !== null) {
|
|
70
87
|
var type = fileContext.findTypeByTypeNode(typeNode);
|
|
71
88
|
if (type !== null) {
|
|
89
|
+
var termType = type; ///
|
|
90
|
+
termTypes.push(termType);
|
|
72
91
|
argumentVerified = true;
|
|
73
92
|
} else {
|
|
74
|
-
var typeString = fileContext.nodeAsString(typeNode)
|
|
75
|
-
fileContext.debug("The '".concat(
|
|
93
|
+
var typeString = fileContext.nodeAsString(typeNode);
|
|
94
|
+
fileContext.debug("The '".concat(typeString, "' type is not present."), typeNode);
|
|
76
95
|
}
|
|
77
96
|
}
|
|
78
97
|
}
|
|
79
98
|
return argumentVerified;
|
|
80
99
|
}
|
|
100
|
+
function verifyMetaType(metaTypeNode, metaTypes, fileContext) {
|
|
101
|
+
var metaTypeVerified;
|
|
102
|
+
var metaType = fileContext.findMetaTypeByMetaTypeNode(metaTypeNode);
|
|
103
|
+
metaTypes.push(metaType);
|
|
104
|
+
metaTypeVerified = true;
|
|
105
|
+
return metaTypeVerified;
|
|
106
|
+
}
|
|
81
107
|
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdHlwZVwiKSxcbiAgICAgIGFyZ3VtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZS9hcmd1bWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSBtZXRhdmFyaWFibGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgaXMgYWxyZWFkeSBwcmVzZW50LmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFyZ3VtZW50Tm9kZSA9IGFyZ3VtZW50Tm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB2ZXJpZnlBcmd1bWVudChtZXRhdmFyaWFibGVOb2RlLCBhcmd1bWVudE5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChhcmd1bWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBtZXRhVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOb2RlKG1ldGFUeXBlTm9kZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25tZW50ID0gTWV0YXZhcmlhYmxlQXNzaWdubWVudC5mcm9tTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25lZCA9IG1ldGF2YXJpYWJsZUFzc2lnbm1lbnQuYXNzaWduKGZpbGVDb250ZXh0KTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZUFzc2lnbmVkKSB7XG4gICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgc3RhbmRhbG9uZSBtZXRhdmFyaWFibGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVQcmVzZW50ID0gbG9jYWxNZXRhQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBzdGFuZGFsb25lIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50KG1ldGF2YXJpYWJsZU5vZGUsIGFyZ3VtZW50Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGFyZ3VtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoYXJndW1lbnROb2RlID09PSBudWxsKSB7XG4gICAgYXJndW1lbnRWZXJpZmllZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSk7XG5cbiAgICBpZiAodHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRWZXJpZmllZDtcbn0iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwidmVyaWZ5U3RhbmRhbG9uZU1ldGF2YXJpYWJsZSIsInR5cGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJhcmd1bWVudE5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZU5vZGUiLCJmaWxlQ29udGV4dCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwiZGVidWciLCJhcmd1bWVudE5vZGUiLCJhcmd1bWVudFZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnQiLCJtZXRhVHlwZSIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIiwibG9jYWxNZXRhQ29udGV4dCIsInZlcmlmeUFoZWFkIiwic3RhbmRhbG9uZU1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVVBLE9BZ0NDO2VBaEN1QkE7O0lBa0NSQyw0QkFBNEI7ZUFBNUJBOzs7bUVBMUNTO29FQUNVO3FCQUVUOzs7Ozs7QUFFMUIsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNILG1CQUFtQkssZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUNwRixJQUFJQyx1QkFBdUI7SUFFM0IsSUFBTUMscUJBQXFCRixZQUFZRyxZQUFZLENBQUNMO0lBRXBERSxZQUFZSSxLQUFLLENBQUMsQUFBQyxrQkFBb0MsT0FBbkJGLG9CQUFtQixzQkFBb0JKO0lBRTNFLElBQU1PLHNCQUFzQkwsWUFBWU0sdUNBQXVDLENBQUNSO0lBRWhGLElBQUlPLHFCQUFxQjtRQUN2QkwsWUFBWU8sS0FBSyxDQUFDLEFBQUMscUJBQXVDLE9BQW5CTCxvQkFBbUIsMEJBQXdCSjtJQUNwRixPQUFPO1FBQ0wsSUFBTVUsZUFBZVgsa0JBQWtCQyxtQkFDakNXLG1CQUFtQkMsZUFBZVosa0JBQWtCVSxjQUFjUjtRQUV4RSxJQUFJUyxrQkFBa0I7WUFDcEIsSUFBTUUsV0FBV1gsWUFBWVksMEJBQTBCLENBQUNiLGVBQ2xEYyxlQUFlQyxxQkFBWSxDQUFDQywrQkFBK0IsQ0FBQ2pCLGtCQUFrQmEsV0FDOUVLLHlCQUF5QkMsc0JBQXNCLENBQUNDLGdCQUFnQixDQUFDTCxlQUNqRU0sdUJBQXVCSCx1QkFBdUJJLE1BQU0sQ0FBQ3BCO1lBRTNELElBQUltQixzQkFBc0I7Z0JBQ3hCbEIsdUJBQXVCO1lBQ3pCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLHNCQUFzQjtRQUN4QkQsWUFBWU8sS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CTCxvQkFBbUIsb0JBQWtCSjtJQUM3RTtJQUVBLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTUCw2QkFBNkJJLGdCQUFnQixFQUFFdUIsZ0JBQWdCLEVBQUVDLFdBQVc7SUFDMUYsSUFBSUMsaUNBQWlDO0lBRXJDLElBQU1yQixxQkFBcUJtQixpQkFBaUJsQixZQUFZLENBQUNMO0lBRXpEdUIsaUJBQWlCakIsS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5CRixvQkFBbUIsaUNBQStCSjtJQUUzRixJQUFNTyxzQkFBc0JnQixpQkFBaUJmLHVDQUF1QyxDQUFDUjtJQUVyRixJQUFJTyxxQkFBcUI7UUFDdkIsSUFBTW1CLGdCQUFnQkY7UUFFdEJDLGlDQUFpQ0MsZUFBZSxHQUFHO0lBQ3JEO0lBRUEsSUFBSUQsZ0NBQWdDO1FBQ2xDRixpQkFBaUJkLEtBQUssQ0FBQyxBQUFDLG9CQUFzQyxPQUFuQkwsb0JBQW1CLCtCQUE2Qko7SUFDN0Y7SUFFQSxPQUFPeUI7QUFDVDtBQUVBLFNBQVNiLGVBQWVaLGdCQUFnQixFQUFFVSxZQUFZLEVBQUVSLFdBQVc7SUFDakUsSUFBSVMsbUJBQW1CO0lBRXZCLElBQUlELGlCQUFpQixNQUFNO1FBQ3pCQyxtQkFBbUI7SUFDckIsT0FBTztRQUNMLElBQU1nQixXQUFXOUIsY0FBY2E7UUFFL0IsSUFBSWlCLGFBQWEsTUFBTTtZQUNyQixJQUFNQyxPQUFPMUIsWUFBWTJCLGtCQUFrQixDQUFDRjtZQUU1QyxJQUFJQyxTQUFTLE1BQU07Z0JBQ2pCakIsbUJBQW1CO1lBQ3JCLE9BQU87Z0JBQ0wsSUFBTW1CLGFBQWE1QixZQUFZRyxZQUFZLENBQUNzQixXQUN0Q3ZCLHFCQUFxQkYsWUFBWUcsWUFBWSxDQUFDTDtnQkFFcERFLFlBQVlPLEtBQUssQ0FBQyxBQUFDLFFBQThDcUIsT0FBdkMxQixvQkFBbUIsc0JBQStCLE9BQVgwQixZQUFXLDJCQUF5QjlCO1lBQ3ZHO1FBQ0Y7SUFDRjtJQUVBLE9BQU9XO0FBQ1QifQ==
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGVcIiksXG4gICAgICBhcmd1bWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbmFtZSA9IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TmFtZShuYW1lKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtVHlwZXMgPSBbXSxcbiAgICAgICAgICBtZXRhVHlwZXMgPSBbXSxcbiAgICAgICAgICBhcmd1bWVudE5vZGUgPSBhcmd1bWVudE5vZGVRdWVyeShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCB0ZXJtVHlwZXMsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBtZXRhVHlwZVZlcmlmaWVkID0gdmVyaWZ5TWV0YVR5cGUobWV0YVR5cGVOb2RlLCBtZXRhVHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChhcmd1bWVudFZlcmlmaWVkICYmIG1ldGFUeXBlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB0ZXJtVHlwZSxcbiAgICAgICAgICBtZXRhVHlwZTtcblxuICAgICAgY29uc3QgZmlyc3RNZXRhVHlwZSA9IGZpcnN0KG1ldGFUeXBlcyk7XG5cbiAgICAgIG1ldGFUeXBlID0gZmlyc3RNZXRhVHlwZTsgLy8vXG5cbiAgICAgIGNvbnN0IHRlcm1UeXBlc0xlbmd0aCA9IHRlcm1UeXBlcy5sZW5ndGg7XG5cbiAgICAgIGlmICh0ZXJtVHlwZXNMZW5ndGggPT09IDApIHtcbiAgICAgICAgdGVybVR5cGUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlyc3RUZXJtVHlwZSA9IGZpcnN0KHRlcm1UeXBlcyk7XG5cbiAgICAgICAgdGVybVR5cGUgPSBmaXJzdFRlcm1UeXBlOyAvLy9cbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9kZSA9IG1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTm9kZU5hbWVUZXJtVHlwZUFuZE1ldGFUeXBlKG5vZGUsIG5hbWUsIHRlcm1UeXBlLCBtZXRhVHlwZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25tZW50ID0gTWV0YXZhcmlhYmxlQXNzaWdubWVudC5mcm9tTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25lZCA9IG1ldGF2YXJpYWJsZUFzc2lnbm1lbnQuYXNzaWduKGZpbGVDb250ZXh0KTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZUFzc2lnbmVkKSB7XG4gICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgc3RhbmRhbG9uZSBtZXRhdmFyaWFibGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVQcmVzZW50ID0gbG9jYWxNZXRhQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBzdGFuZGFsb25lIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCkge1xuICBsZXQgYXJndW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChhcmd1bWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIGEgdHlwZSBzaG91bGQgaGF2ZSBiZWVuIHByZXNlbnQuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRlcm1UeXBlID0gdHlwZTsgIC8vL1xuXG4gICAgICAgIHRlcm1UeXBlcy5wdXNoKHRlcm1UeXBlKTtcblxuICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmd1bWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhVHlwZShtZXRhVHlwZU5vZGUsIG1ldGFUeXBlcywgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG1ldGFUeXBlVmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTm9kZShtZXRhVHlwZU5vZGUpO1xuXG4gIG1ldGFUeXBlcy5wdXNoKG1ldGFUeXBlKTtcblxuICBtZXRhVHlwZVZlcmlmaWVkID0gdHJ1ZTtcblxuICByZXR1cm4gbWV0YVR5cGVWZXJpZmllZDtcbn0iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwidmVyaWZ5U3RhbmRhbG9uZU1ldGF2YXJpYWJsZSIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwiYXJndW1lbnROb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YVR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVWZXJpZmllZCIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwibmFtZSIsIm5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc01ldGF2YXJpYWJsZVByZXNlbnRCeU5hbWUiLCJkZWJ1ZyIsInRlcm1UeXBlcyIsIm1ldGFUeXBlcyIsImFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50VmVyaWZpZWQiLCJ2ZXJpZnlBcmd1bWVudCIsIm1ldGFUeXBlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhVHlwZSIsInRlcm1UeXBlIiwibWV0YVR5cGUiLCJmaXJzdE1ldGFUeXBlIiwiZmlyc3QiLCJ0ZXJtVHlwZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFRlcm1UeXBlIiwibm9kZSIsIm1ldGF2YXJpYWJsZSIsIk1ldGF2YXJpYWJsZSIsImZyb21Ob2RlTmFtZVRlcm1UeXBlQW5kTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiTWV0YXZhcmlhYmxlQXNzaWdubWVudCIsImZyb21NZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVBc3NpZ25lZCIsImFzc2lnbiIsImxvY2FsTWV0YUNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsInZlcmlmaWVkQWhlYWQiLCJ0ZXJtTm9kZSIsInRlcm1TdHJpbmciLCJ0eXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5vZGUiLCJwdXNoIiwidHlwZVN0cmluZyIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVO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
|
package/lib/verify/rule.js
CHANGED
|
@@ -21,12 +21,12 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
var
|
|
24
|
+
var labelsNodeQuery = (0, _query.nodeQuery)("/rule/labels!"), premisesNodeQuery = (0, _query.nodesQuery)("/rule/premise"), ruleProofNodeQuery = (0, _query.nodeQuery)("/rule/ruleProof!"), conclusionNodeQuery = (0, _query.nodeQuery)("/rule/conclusion!");
|
|
25
25
|
function verifyRule(ruleNode, fileContext) {
|
|
26
26
|
var ruleVerified = false;
|
|
27
|
-
var
|
|
27
|
+
var labelsNode = labelsNodeQuery(ruleNode), labelsString = fileContext.nodeAsString(labelsNode), localMetaContext = _localMeta.default.fromFileContext(fileContext);
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' rule..."), ruleNode);
|
|
29
|
-
var labels = [], labelsVerified = (0, _labels.default)(
|
|
29
|
+
var labels = [], labelsVerified = (0, _labels.default)(labelsNode, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
var premises = [], premiseNodes = premisesNodeQuery(ruleNode), premisesVerified = (0, _premises.default)(premiseNodes, premises, localMetaContext);
|
|
32
32
|
if (premisesVerified) {
|
|
@@ -51,4 +51,4 @@ function verifyRule(ruleNode, fileContext) {
|
|
|
51
51
|
return ruleVerified;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlcyBmcm9tIFwiLi4vdmVyaWZ5L3ByZW1pc2VzXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVByb29mIGZyb20gXCIuLi92ZXJpZnkvcnVsZVByb29mXCI7XG5pbXBvcnQgTG9jYWxNZXRhQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbE1ldGFcIjtcbmltcG9ydCB2ZXJpZnlDb25jbHVzaW9uIGZyb20gXCIuLi92ZXJpZnkvY29uY2x1c2lvblwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbGFiZWxzTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGUvbGFiZWxzIVwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxzTm9kZSA9IGxhYmVsc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhsYWJlbHNOb2RlKSxcbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dCA9IExvY2FsTWV0YUNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBydWxlLi4uYCwgcnVsZU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbHNOb2RlLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBwcmVtaXNlcyA9IFtdLFxuICAgICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VzTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICBwcmVtaXNlc1ZlcmlmaWVkID0gdmVyaWZ5UHJlbWlzZXMocHJlbWlzZU5vZGVzLCBwcmVtaXNlcywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uY2x1c2lvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob2RlID0gY29uY2x1c2lvbk5vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgICBjb25jbHVzaW9uVmVyaWZpZWQgPSB2ZXJpZnlDb25jbHVzaW9uKGNvbmNsdXNpb25Ob2RlLCBjb25jbHVzaW9ucywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25jbHVzaW9uVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcnVsZVByb29mTm9kZSA9IHJ1bGVQcm9vZk5vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uY2x1c2lvbiA9IGZpcnN0KGNvbmNsdXNpb25zKSxcbiAgICAgICAgICAgICAgY29uY2x1c2lvbiA9IGZpcnN0Q29uY2x1c2lvbjsgLy8vXG5cbiAgICAgICAgbGV0IHJ1bGVQcm9vZlZlcmlmaWVkID0gdHJ1ZTsgLy8vXG5cbiAgICAgICAgaWYgKHJ1bGVQcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBydWxlUHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVQcm9vZihydWxlUHJvb2ZOb2RlLCBjb25jbHVzaW9uLCBsb2NhbE1ldGFDb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChydWxlUHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHJ1bGUgPSBSdWxlLmZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dChsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRSdWxlKHJ1bGUpO1xuXG4gICAgICAgICAgcnVsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChydWxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHJ1bGUuYCwgcnVsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHJ1bGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlIiwibGFiZWxzTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicHJlbWlzZXNOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicnVsZVByb29mTm9kZVF1ZXJ5IiwiY29uY2x1c2lvbk5vZGVRdWVyeSIsInJ1bGVOb2RlIiwiZmlsZUNvbnRleHQiLCJydWxlVmVyaWZpZWQiLCJsYWJlbHNOb2RlIiwibGFiZWxzU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibG9jYWxNZXRhQ29udGV4dCIsIkxvY2FsTWV0YUNvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJjb25jbHVzaW9ucyIsImNvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvblZlcmlmaWVkIiwidmVyaWZ5Q29uY2x1c2lvbiIsInJ1bGVQcm9vZk5vZGUiLCJmaXJzdENvbmNsdXNpb24iLCJmaXJzdCIsImNvbmNsdXNpb24iLCJydWxlUHJvb2ZWZXJpZmllZCIsInZlcmlmeVJ1bGVQcm9vZiIsInJ1bGUiLCJSdWxlIiwiZnJvbUxhYmVsc1ByZW1pc2VzQ29uY2x1c2lvbkFuZEZpbGVDb250ZXh0IiwiYWRkUnVsZSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUF3QkE7OzsyREFmUDs2REFDUTsrREFDRTtnRUFDQztnRUFDQztpRUFDQTtxQkFFUDtxQkFDZ0I7Ozs7OztBQUV0QyxJQUFNQyxrQkFBa0JDLElBQUFBLGdCQUFTLEVBQUMsa0JBQzVCQyxvQkFBb0JDLElBQUFBLGlCQUFVLEVBQUMsa0JBQy9CQyxxQkFBcUJILElBQUFBLGdCQUFTLEVBQUMscUJBQy9CSSxzQkFBc0JKLElBQUFBLGdCQUFTLEVBQUM7QUFFdkIsU0FBU0YsV0FBV08sUUFBUSxFQUFFQyxXQUFXO0lBQ3RELElBQUlDLGVBQWU7SUFFbkIsSUFBTUMsYUFBYVQsZ0JBQWdCTSxXQUM3QkksZUFBZUgsWUFBWUksWUFBWSxDQUFDRixhQUN4Q0csbUJBQW1CQyxrQkFBZ0IsQ0FBQ0MsZUFBZSxDQUFDUDtJQUUxREEsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJMLGNBQWEsY0FBWUo7SUFFN0QsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsV0FBVyxFQUFFLEVBQ2JDLGVBQWVsQixrQkFBa0JJLFdBQ2pDZSxtQkFBbUJDLElBQUFBLGlCQUFjLEVBQUNGLGNBQWNELFVBQVVQO1FBRWhFLElBQUlTLGtCQUFrQjtZQUNwQixJQUFNRSxjQUFjLEVBQUUsRUFDaEJDLGlCQUFpQm5CLG9CQUFvQkMsV0FDckNtQixxQkFBcUJDLElBQUFBLG1CQUFnQixFQUFDRixnQkFBZ0JELGFBQWFYO1lBRXpFLElBQUlhLG9CQUFvQjtnQkFDdEIsSUFBTUUsZ0JBQWdCdkIsbUJBQW1CRSxXQUNuQ3NCLGtCQUFrQkMsSUFBQUEsWUFBSyxFQUFDTixjQUN4Qk8sYUFBYUYsaUJBQWlCLEdBQUc7Z0JBRXZDLElBQUlHLG9CQUFvQixNQUFNLEdBQUc7Z0JBRWpDLElBQUlKLGtCQUFrQixNQUFNO29CQUMxQkksb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDTCxlQUFlRyxZQUFZbEI7Z0JBQ2pFO2dCQUVBLElBQUltQixtQkFBbUI7b0JBQ3JCLElBQU1FLE9BQU9DLGFBQUksQ0FBQ0MsMENBQTBDLENBQUNuQixRQUFRRyxVQUFVVyxZQUFZdkI7b0JBRTNGQSxZQUFZNkIsT0FBTyxDQUFDSDtvQkFFcEJ6QixlQUFlO2dCQUNqQjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGNBQWM7UUFDaEJELFlBQVk4QixLQUFLLENBQUMsQUFBQyxvQkFBZ0MsT0FBYjNCLGNBQWEsWUFBVUo7SUFDL0Q7SUFFQSxPQUFPRTtBQUNUIn0=
|
|
@@ -16,14 +16,14 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
default: obj
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
var
|
|
19
|
+
var equalityNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement/equality!"), statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement/typeAssertion!"), referenceMetavariableNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/reference!/metavariable!");
|
|
20
20
|
function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived, localContext) {
|
|
21
21
|
var qualifiedStatementVerified = false;
|
|
22
22
|
var statementNode = statementNodeQuery(qualifiedStatementNode);
|
|
23
23
|
if (statementNode !== null) {
|
|
24
24
|
var qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
25
25
|
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement..."), qualifiedStatementNode);
|
|
26
|
-
var
|
|
26
|
+
var referenceMetavariableNode = referenceMetavariableNodeQuery(qualifiedStatementNode), verifyQualifiedStatementFunctions = [
|
|
27
27
|
verifyQualifiedStatementAAgainstRule,
|
|
28
28
|
verifyQualifiedStatementAAgainstAxiom,
|
|
29
29
|
verifyQualifiedStatementAAgainstLemma,
|
|
@@ -31,7 +31,7 @@ function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived,
|
|
|
31
31
|
verifyQualifiedStatementAAgainstConjecture
|
|
32
32
|
];
|
|
33
33
|
qualifiedStatementVerified = verifyQualifiedStatementFunctions.some(function(verifyQualifiedStatementFunction) {
|
|
34
|
-
var qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode,
|
|
34
|
+
var qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, referenceMetavariableNode, localContext);
|
|
35
35
|
if (qualifiedStatementVerified) {
|
|
36
36
|
return true;
|
|
37
37
|
}
|
|
@@ -58,72 +58,72 @@ function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived,
|
|
|
58
58
|
}
|
|
59
59
|
return qualifiedStatementVerified;
|
|
60
60
|
}
|
|
61
|
-
function verifyQualifiedStatementAAgainstRule(qualifiedStatementNode,
|
|
61
|
+
function verifyQualifiedStatementAAgainstRule(qualifiedStatementNode, referenceMetavariableNode, localContext) {
|
|
62
62
|
var qualifiedStatementVerifiedAgainstRule = false;
|
|
63
|
-
var rule = localContext.
|
|
63
|
+
var labelMetavariableNode = referenceMetavariableNode, rule = localContext.findRuleByLabelMetavariableNode(labelMetavariableNode);
|
|
64
64
|
if (rule !== null) {
|
|
65
|
-
var
|
|
66
|
-
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
65
|
+
var referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode), statementNode = statementNodeQuery(qualifiedStatementNode), statementLocalContext = localContext, qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
66
|
+
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' rule..."), statementNode);
|
|
67
67
|
var ruleMatchesStatement = rule.matchStatement(statementNode, statementLocalContext);
|
|
68
68
|
qualifiedStatementVerifiedAgainstRule = ruleMatchesStatement; ///
|
|
69
69
|
if (qualifiedStatementVerifiedAgainstRule) {
|
|
70
|
-
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
70
|
+
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' rule."), statementNode);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
return qualifiedStatementVerifiedAgainstRule;
|
|
74
74
|
}
|
|
75
|
-
function verifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode,
|
|
75
|
+
function verifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, referenceMetavariableNode, localContext) {
|
|
76
76
|
var qualifiedStatementVerifiedAgainstAxiom = false;
|
|
77
|
-
var axiom = localContext.
|
|
77
|
+
var labelMetavariableNode = referenceMetavariableNode, axiom = localContext.findAxiomByLabelMetavariableNode(labelMetavariableNode);
|
|
78
78
|
if (axiom !== null) {
|
|
79
|
-
var
|
|
80
|
-
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
79
|
+
var referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode), statementNode = statementNodeQuery(qualifiedStatementNode), statementLocalContext = localContext, qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
80
|
+
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' axiom..."), statementNode);
|
|
81
81
|
var axiomMatchesStatement = axiom.matchStatement(statementNode, statementLocalContext);
|
|
82
82
|
qualifiedStatementVerifiedAgainstAxiom = axiomMatchesStatement; ///
|
|
83
83
|
if (qualifiedStatementVerifiedAgainstAxiom) {
|
|
84
|
-
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
84
|
+
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' axiom."), statementNode);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
return qualifiedStatementVerifiedAgainstAxiom;
|
|
88
88
|
}
|
|
89
|
-
function verifyQualifiedStatementAAgainstLemma(qualifiedStatementNode,
|
|
89
|
+
function verifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, referenceMetavariableNode, localContext) {
|
|
90
90
|
var qualifiedStatementVerifiedAgainstLemma = false;
|
|
91
|
-
var lemma = localContext.
|
|
91
|
+
var labelMetavariableNode = referenceMetavariableNode, lemma = localContext.findLemmaByLabelMetavariableNode(labelMetavariableNode);
|
|
92
92
|
if (lemma !== null) {
|
|
93
|
-
var
|
|
94
|
-
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
93
|
+
var referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode), statementNode = statementNodeQuery(qualifiedStatementNode), statementLocalContext = localContext, qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
94
|
+
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' lemma..."), statementNode);
|
|
95
95
|
var lemmaMatchesStatement = lemma.matchStatement(statementNode, statementLocalContext);
|
|
96
96
|
qualifiedStatementVerifiedAgainstLemma = lemmaMatchesStatement; ///
|
|
97
97
|
if (qualifiedStatementVerifiedAgainstLemma) {
|
|
98
|
-
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
98
|
+
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' lemma."), statementNode);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
return qualifiedStatementVerifiedAgainstLemma;
|
|
102
102
|
}
|
|
103
|
-
function verifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode,
|
|
103
|
+
function verifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, referenceMetavariableNode, localContext) {
|
|
104
104
|
var qualifiedStatementVerifiedAgainstTheorem = false;
|
|
105
|
-
var theorem = localContext.
|
|
105
|
+
var labelMetavariableNode = referenceMetavariableNode, theorem = localContext.findTheoremByLabelMetavariableNode(labelMetavariableNode);
|
|
106
106
|
if (theorem !== null) {
|
|
107
|
-
var
|
|
108
|
-
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
107
|
+
var referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode), statementNode = statementNodeQuery(qualifiedStatementNode), statementLocalContext = localContext, qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
108
|
+
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' theorem..."), statementNode);
|
|
109
109
|
var theoremMatchesStatement = theorem.matchStatement(statementNode, statementLocalContext);
|
|
110
110
|
qualifiedStatementVerifiedAgainstTheorem = theoremMatchesStatement; ///
|
|
111
111
|
if (qualifiedStatementVerifiedAgainstTheorem) {
|
|
112
|
-
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
112
|
+
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' theorem."), statementNode);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
return qualifiedStatementVerifiedAgainstTheorem;
|
|
116
116
|
}
|
|
117
|
-
function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode,
|
|
117
|
+
function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, referenceMetavariableNode, localContext) {
|
|
118
118
|
var qualifiedStatementVerifiedAgainstConjecture = false;
|
|
119
|
-
var conjecture = localContext.
|
|
119
|
+
var labelMetavariableNode = referenceMetavariableNode, conjecture = localContext.findConjectureByLabelMetavariableNode(labelMetavariableNode);
|
|
120
120
|
if (conjecture !== null) {
|
|
121
|
-
var
|
|
122
|
-
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
121
|
+
var referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode), statementNode = statementNodeQuery(qualifiedStatementNode), statementLocalContext = localContext, qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
122
|
+
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' conjecture..."), statementNode);
|
|
123
123
|
var conjectureMatchesStatement = conjecture.matchStatement(statementNode, statementLocalContext);
|
|
124
124
|
qualifiedStatementVerifiedAgainstConjecture = conjectureMatchesStatement; ///
|
|
125
125
|
if (qualifiedStatementVerifiedAgainstConjecture) {
|
|
126
|
-
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(
|
|
126
|
+
localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement against the '").concat(referenceMetavariableString, "' conjecture."), statementNode);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
return qualifiedStatementVerifiedAgainstConjecture;
|
|
@@ -157,4 +157,4 @@ function verifyQualifiedStatementAsTypeAssertion(qualifiedStatementNode, assignm
|
|
|
157
157
|
return statementVerifiedAsTypeAssertion;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUVxdWFsaXR5IGZyb20gXCIuLi9lcXVhbGl0eVwiO1xuaW1wb3J0IHZlcmlmeVR5cGVBc3NlcnRpb24gZnJvbSBcIi4uL3R5cGVBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBsYWJlbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvbGFiZWwhXCIpLFxuICAgICAgZXF1YWxpdHlOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudC9lcXVhbGl0eSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGxhYmVsTm9kZSA9IGxhYmVsTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0UnVsZSxcbiAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0QXhpb20sXG4gICAgICAgICAgICB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdExlbW1hLFxuICAgICAgICAgICAgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RUaGVvcmVtLFxuICAgICAgICAgICAgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RDb25qZWN0dXJlXG4gICAgICAgICAgXTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7ICAvLy9cbiAgICAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgbGFiZWxOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGRlcml2ZWQgPSBmYWxzZTsgIC8vL1xuXG4gICAgICBjb25zdCB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFzRXF1YWxpdHksXG4gICAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFzVHlwZUFzc2VydGlvblxuICAgICAgICAgICAgXTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbnMuZXZlcnkoKHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7IC8vL1xuICAgICAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50LmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RSdWxlKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGxhYmVsTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RSdWxlID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZSA9IGxvY2FsQ29udGV4dC5maW5kUnVsZUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSk7XG5cbiAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobGFiZWxOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2xhYmVsU3RyaW5nfScgcnVsZS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgcnVsZU1hdGNoZXNTdGF0ZW1lbnQgPSBydWxlLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RSdWxlID0gcnVsZU1hdGNoZXNTdGF0ZW1lbnQ7ICAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RSdWxlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2xhYmVsU3RyaW5nfScgcnVsZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0UnVsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RBeGlvbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBsYWJlbE5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0QXhpb20gPSBmYWxzZTtcblxuICBjb25zdCBheGlvbSA9IGxvY2FsQ29udGV4dC5maW5kQXhpb21CeUxhYmVsTm9kZShsYWJlbE5vZGUpO1xuXG4gIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGxhYmVsU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhsYWJlbE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50TG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBheGlvbS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgYXhpb21NYXRjaGVzU3RhdGVtZW50ID0gYXhpb20ubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdEF4aW9tID0gYXhpb21NYXRjaGVzU3RhdGVtZW50OyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RBeGlvbSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtsYWJlbFN0cmluZ30nIGF4aW9tLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RBeGlvbTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RMZW1tYShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBsYWJlbE5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TGVtbWEgPSBmYWxzZTtcblxuICBjb25zdCBsZW1tYSA9IGxvY2FsQ29udGV4dC5maW5kTGVtbWFCeUxhYmVsTm9kZShsYWJlbE5vZGUpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGxhYmVsU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhsYWJlbE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50TG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsZW1tYS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgbGVtbWFNYXRjaGVzU3RhdGVtZW50ID0gbGVtbWEubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdExlbW1hID0gbGVtbWFNYXRjaGVzU3RhdGVtZW50OyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RMZW1tYSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtsYWJlbFN0cmluZ30nIGxlbW1hLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RMZW1tYTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RUaGVvcmVtKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGxhYmVsTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtID0gZmFsc2U7XG5cbiAgY29uc3QgdGhlb3JlbSA9IGxvY2FsQ29udGV4dC5maW5kVGhlb3JlbUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSk7XG5cbiAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobGFiZWxOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2xhYmVsU3RyaW5nfScgdGhlb3JlbS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQgPSB0aGVvcmVtLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtID0gdGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFRoZW9yZW0pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7bGFiZWxTdHJpbmd9JyB0aGVvcmVtLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdENvbmplY3R1cmUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgbGFiZWxOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCBjb25qZWN0dXJlID0gbG9jYWxDb250ZXh0LmZpbmRDb25qZWN0dXJlQnlMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICBpZiAoY29uamVjdHVyZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGxhYmVsU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhsYWJlbE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50TG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBjb25qZWN0dXJlLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBjb25qZWN0dXJlTWF0Y2hlc1N0YXRlbWVudCA9IGNvbmplY3R1cmUubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmUgPSBjb25qZWN0dXJlTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG5cbiAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29uamVjdHVyZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtsYWJlbFN0cmluZ30nIGNvbmplY3R1cmUuYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFzRXF1YWxpdHkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7IC8vL1xuXG4gIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IGVxdWFsaXR5Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChlcXVhbGl0eU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdHJ1ZTsgIC8vL1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAodHlwZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImxhYmVsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZXF1YWxpdHlOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwic3RhdGVtZW50Tm9kZSIsInF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwibGFiZWxOb2RlIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RSdWxlIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RBeGlvbSIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0TGVtbWEiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdFRoZW9yZW0iLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdENvbmplY3R1cmUiLCJzb21lIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24iLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc0VxdWFsaXR5IiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiZXZlcnkiLCJ2ZXJpZmllZEFoZWFkIiwiZGVidWciLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RSdWxlIiwicnVsZSIsImZpbmRSdWxlQnlMYWJlbE5vZGUiLCJsYWJlbFN0cmluZyIsInN0YXRlbWVudExvY2FsQ29udGV4dCIsInJ1bGVNYXRjaGVzU3RhdGVtZW50IiwibWF0Y2hTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlMYWJlbE5vZGUiLCJheGlvbU1hdGNoZXNTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RMZW1tYSIsImxlbW1hIiwiZmluZExlbW1hQnlMYWJlbE5vZGUiLCJsZW1tYU1hdGNoZXNTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlMYWJlbE5vZGUiLCJ0aGVvcmVtTWF0Y2hlc1N0YXRlbWVudCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmUiLCJjb25qZWN0dXJlIiwiZmluZENvbmplY3R1cmVCeUxhYmVsTm9kZSIsImNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50IiwidmVyaWZ5QWhlYWQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUF3QkE7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
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUVxdWFsaXR5IGZyb20gXCIuLi9lcXVhbGl0eVwiO1xuaW1wb3J0IHZlcmlmeVR5cGVBc3NlcnRpb24gZnJvbSBcIi4uL3R5cGVBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50L2VxdWFsaXR5IVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKSxcbiAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcmVmZXJlbmNlIS9tZXRhdmFyaWFibGUhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0UnVsZSxcbiAgICAgICAgICAgIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0QXhpb20sXG4gICAgICAgICAgICB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdExlbW1hLFxuICAgICAgICAgICAgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RUaGVvcmVtLFxuICAgICAgICAgICAgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RDb25qZWN0dXJlXG4gICAgICAgICAgXTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7ICAvLy9cbiAgICAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBkZXJpdmVkID0gZmFsc2U7ICAvLy9cblxuICAgICAgY29uc3QgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgICAgICAgICAgICB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgICAgICAgICAgICB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb25cbiAgICAgICAgICAgIF07XG5cbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zLmV2ZXJ5KCh2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbikgPT4geyAvLy9cbiAgICAgICAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbihxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0UnVsZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFJ1bGUgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIHJ1bGUgPSBsb2NhbENvbnRleHQuZmluZFJ1bGVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIHJ1bGUuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHJ1bGVNYXRjaGVzU3RhdGVtZW50ID0gcnVsZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0UnVsZSA9IHJ1bGVNYXRjaGVzU3RhdGVtZW50OyAgLy8vXG5cbiAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0UnVsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtyZWZlcmVuY2VNZXRhdmFyaWFibGVTdHJpbmd9JyBydWxlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RSdWxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdEF4aW9tKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0QXhpb20gPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIGF4aW9tID0gbG9jYWxDb250ZXh0LmZpbmRBeGlvbUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlKGxhYmVsTWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKGF4aW9tICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBheGlvbU1hdGNoZXNTdGF0ZW1lbnQgPSBheGlvbS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0QXhpb20gPSBheGlvbU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdEF4aW9tKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RBeGlvbTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RMZW1tYShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdExlbW1hID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBsZW1tYSA9IGxvY2FsQ29udGV4dC5maW5kTGVtbWFCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnRMb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtyZWZlcmVuY2VNZXRhdmFyaWFibGVTdHJpbmd9JyBsZW1tYS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgbGVtbWFNYXRjaGVzU3RhdGVtZW50ID0gbGVtbWEubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdExlbW1hID0gbGVtbWFNYXRjaGVzU3RhdGVtZW50OyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RMZW1tYSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtyZWZlcmVuY2VNZXRhdmFyaWFibGVTdHJpbmd9JyBsZW1tYS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TGVtbWE7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0VGhlb3JlbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFRoZW9yZW0gPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIHRoZW9yZW0gPSBsb2NhbENvbnRleHQuZmluZFRoZW9yZW1CeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmICh0aGVvcmVtICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIHRoZW9yZW0uLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHRoZW9yZW1NYXRjaGVzU3RhdGVtZW50ID0gdGhlb3JlbS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0VGhlb3JlbSA9IHRoZW9yZW1NYXRjaGVzU3RhdGVtZW50OyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIHRoZW9yZW0uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFRoZW9yZW07XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0Q29uamVjdHVyZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIGNvbmplY3R1cmUgPSBsb2NhbENvbnRleHQuZmluZENvbmplY3R1cmVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudExvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIGNvbmplY3R1cmUuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50ID0gY29uamVjdHVyZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29uamVjdHVyZSA9IGNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50OyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb25qZWN0dXJlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke3JlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZ30nIGNvbmplY3R1cmUuYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFzRXF1YWxpdHkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7IC8vL1xuXG4gIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IGVxdWFsaXR5Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChlcXVhbGl0eU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdHJ1ZTsgIC8vL1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAodHlwZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImVxdWFsaXR5Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbnMiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdFJ1bGUiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBQWdhaW5zdEF4aW9tIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50QUFnYWluc3RMZW1tYSIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0VGhlb3JlbSIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFBZ2FpbnN0Q29uamVjdHVyZSIsInNvbWUiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbiIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudEFzRXF1YWxpdHkiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJldmVyeSIsInZlcmlmaWVkQWhlYWQiLCJkZWJ1ZyIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFJ1bGUiLCJsYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZVN0cmluZyIsInN0YXRlbWVudExvY2FsQ29udGV4dCIsInJ1bGVNYXRjaGVzU3RhdGVtZW50IiwibWF0Y2hTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJheGlvbU1hdGNoZXNTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RMZW1tYSIsImxlbW1hIiwiZmluZExlbW1hQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJsZW1tYU1hdGNoZXNTdGF0ZW1lbnQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJ0aGVvcmVtTWF0Y2hlc1N0YXRlbWVudCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbmplY3R1cmUiLCJjb25qZWN0dXJlIiwiZmluZENvbmplY3R1cmVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsImNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50IiwidmVyaWZ5QWhlYWQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUF3QkE7OzsrREFWRztvRUFDSztxQkFFTjs7Ozs7O0FBRTFCLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyw0Q0FDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQyxtQ0FDL0JFLHlCQUF5QkYsSUFBQUEsZ0JBQVMsRUFBQyxpREFDbkNHLGlDQUFpQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVsQyxTQUFTRix5QkFBeUJNLHNCQUFzQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN6RyxJQUFJQyw2QkFBNkI7SUFFakMsSUFBTUMsZ0JBQWdCUixtQkFBbUJHO0lBRXpDLElBQUlLLGtCQUFrQixNQUFNO1FBQzFCLElBQU1DLDJCQUEyQkgsYUFBYUksWUFBWSxDQUFDUDtRQUUzREcsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQTBDLE9BQXpCRiwwQkFBeUIsNkJBQTJCTjtRQUV6RixJQUFNUyw0QkFBNEJWLCtCQUErQkMseUJBQzNEVSxvQ0FBb0M7WUFDbENDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1NBQ0Q7UUFFUFgsNkJBQTZCTSxrQ0FBa0NNLElBQUksQ0FBQyxTQUFDQztZQUNuRSxJQUFNYiw2QkFBNkJhLGlDQUFpQ2pCLHdCQUF3QlMsMkJBQTJCTjtZQUV2SCxJQUFJQyw0QkFBNEI7Z0JBQzlCLE9BQU87WUFDVDtRQUNGO1FBRUEsSUFBSUEsNEJBQTRCO1lBQzlCRixVQUFVLE9BQVEsR0FBRztZQUVyQixJQUFNUSxxQ0FBb0M7Z0JBQ2xDUTtnQkFDQUM7YUFDRDtZQUVQZiw2QkFBNkJNLG1DQUFrQ1UsS0FBSyxDQUFDLFNBQUNIO2dCQUNwRSxJQUFNYiw2QkFBNkJhLGlDQUFpQ2pCLHdCQUF3QkMsYUFBYUMsU0FBU0MsY0FBYztvQkFDOUgsSUFBTWtCLGdCQUFnQjtvQkFFdEIsT0FBT0E7Z0JBQ1Q7Z0JBRUEsSUFBSWpCLDRCQUE0QjtvQkFDOUIsT0FBTztnQkFDVDtZQUNGO1FBQ0Y7UUFFQSxJQUFJQSw0QkFBNEI7WUFDOUJELGFBQWFtQixLQUFLLENBQUMsQUFBQyxvQkFBNEMsT0FBekJoQiwwQkFBeUIsMkJBQXlCTjtRQUMzRjtJQUNGO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNPLHFDQUFxQ1gsc0JBQXNCLEVBQUVTLHlCQUF5QixFQUFFTixZQUFZO0lBQzNHLElBQUlvQix3Q0FBd0M7SUFFNUMsSUFBTUMsd0JBQXdCZiwyQkFDeEJnQixPQUFPdEIsYUFBYXVCLCtCQUErQixDQUFDRjtJQUUxRCxJQUFJQyxTQUFTLE1BQU07UUFDakIsSUFBTUUsOEJBQThCeEIsYUFBYUksWUFBWSxDQUFDRSw0QkFDeERKLGdCQUFnQlIsbUJBQW1CRyx5QkFDbkM0Qix3QkFBd0J6QixjQUN4QkcsMkJBQTJCSCxhQUFhSSxZQUFZLENBQUNQO1FBRTNERyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBK0VtQixPQUE5RHJCLDBCQUF5Qix1Q0FBaUUsT0FBNUJxQiw2QkFBNEIsY0FBWXRCO1FBRTNJLElBQU13Qix1QkFBdUJKLEtBQUtLLGNBQWMsQ0FBQ3pCLGVBQWV1QjtRQUVoRUwsd0NBQXdDTSxzQkFBdUIsR0FBRztRQUVsRSxJQUFJTix1Q0FBdUM7WUFDekNwQixhQUFhbUIsS0FBSyxDQUFDLEFBQUMsb0JBQWlGSyxPQUE5RHJCLDBCQUF5Qix1Q0FBaUUsT0FBNUJxQiw2QkFBNEIsWUFBVXRCO1FBQzdJO0lBQ0Y7SUFFQSxPQUFPa0I7QUFDVDtBQUVBLFNBQVNYLHNDQUFzQ1osc0JBQXNCLEVBQUVTLHlCQUF5QixFQUFFTixZQUFZO0lBQzVHLElBQUk0Qix5Q0FBeUM7SUFFN0MsSUFBTVAsd0JBQXdCZiwyQkFDeEJ1QixRQUFRN0IsYUFBYThCLGdDQUFnQyxDQUFDVDtJQUU1RCxJQUFJUSxVQUFVLE1BQU07UUFDbEIsSUFBTUwsOEJBQThCeEIsYUFBYUksWUFBWSxDQUFDRSw0QkFDeERKLGdCQUFnQlIsbUJBQW1CRyx5QkFDbkM0Qix3QkFBd0J6QixjQUN4QkcsMkJBQTJCSCxhQUFhSSxZQUFZLENBQUNQO1FBRTNERyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBK0VtQixPQUE5RHJCLDBCQUF5Qix1Q0FBaUUsT0FBNUJxQiw2QkFBNEIsZUFBYXRCO1FBRTVJLElBQU02Qix3QkFBd0JGLE1BQU1GLGNBQWMsQ0FBQ3pCLGVBQWV1QjtRQUVsRUcseUNBQXlDRyx1QkFBdUIsR0FBRztRQUVuRSxJQUFJSCx3Q0FBd0M7WUFDMUM1QixhQUFhbUIsS0FBSyxDQUFDLEFBQUMsb0JBQWlGSyxPQUE5RHJCLDBCQUF5Qix1Q0FBaUUsT0FBNUJxQiw2QkFBNEIsYUFBV3RCO1FBQzlJO0lBQ0Y7SUFFQSxPQUFPMEI7QUFDVDtBQUVBLFNBQVNsQixzQ0FBc0NiLHNCQUFzQixFQUFFUyx5QkFBeUIsRUFBRU4sWUFBWTtJQUM1RyxJQUFJZ0MseUNBQXlDO0lBRTdDLElBQU1YLHdCQUF3QmYsMkJBQ3hCMkIsUUFBUWpDLGFBQWFrQyxnQ0FBZ0MsQ0FBQ2I7SUFFNUQsSUFBSVksVUFBVSxNQUFNO1FBQ2xCLElBQU1ULDhCQUE4QnhCLGFBQWFJLFlBQVksQ0FBQ0UsNEJBQ3hESixnQkFBZ0JSLG1CQUFtQkcseUJBQ25DNEIsd0JBQXdCekIsY0FDeEJHLDJCQUEyQkgsYUFBYUksWUFBWSxDQUFDUDtRQUUzREcsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQStFbUIsT0FBOURyQiwwQkFBeUIsdUNBQWlFLE9BQTVCcUIsNkJBQTRCLGVBQWF0QjtRQUU1SSxJQUFNaUMsd0JBQXdCRixNQUFNTixjQUFjLENBQUN6QixlQUFldUI7UUFFbEVPLHlDQUF5Q0csdUJBQXVCLEdBQUc7UUFFbkUsSUFBSUgsd0NBQXdDO1lBQzFDaEMsYUFBYW1CLEtBQUssQ0FBQyxBQUFDLG9CQUFpRkssT0FBOURyQiwwQkFBeUIsdUNBQWlFLE9BQTVCcUIsNkJBQTRCLGFBQVd0QjtRQUM5STtJQUNGO0lBRUEsT0FBTzhCO0FBQ1Q7QUFFQSxTQUFTckIsd0NBQXdDZCxzQkFBc0IsRUFBRVMseUJBQXlCLEVBQUVOLFlBQVk7SUFDOUcsSUFBSW9DLDJDQUEyQztJQUUvQyxJQUFNZix3QkFBd0JmLDJCQUN4QitCLFVBQVVyQyxhQUFhc0Msa0NBQWtDLENBQUNqQjtJQUVoRSxJQUFJZ0IsWUFBWSxNQUFNO1FBQ3BCLElBQU1iLDhCQUE4QnhCLGFBQWFJLFlBQVksQ0FBQ0UsNEJBQ3hESixnQkFBZ0JSLG1CQUFtQkcseUJBQ25DNEIsd0JBQXdCekIsY0FDeEJHLDJCQUEyQkgsYUFBYUksWUFBWSxDQUFDUDtRQUUzREcsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQStFbUIsT0FBOURyQiwwQkFBeUIsdUNBQWlFLE9BQTVCcUIsNkJBQTRCLGlCQUFldEI7UUFFOUksSUFBTXFDLDBCQUEwQkYsUUFBUVYsY0FBYyxDQUFDekIsZUFBZXVCO1FBRXRFVywyQ0FBMkNHLHlCQUF5QixHQUFHO1FBRXZFLElBQUlILDBDQUEwQztZQUM1Q3BDLGFBQWFtQixLQUFLLENBQUMsQUFBQyxvQkFBaUZLLE9BQTlEckIsMEJBQXlCLHVDQUFpRSxPQUE1QnFCLDZCQUE0QixlQUFhdEI7UUFDaEo7SUFDRjtJQUVBLE9BQU9rQztBQUNUO0FBRUEsU0FBU3hCLDJDQUEyQ2Ysc0JBQXNCLEVBQUVTLHlCQUF5QixFQUFFTixZQUFZO0lBQ2pILElBQUl3Qyw4Q0FBOEM7SUFFbEQsSUFBTW5CLHdCQUF3QmYsMkJBQ3hCbUMsYUFBYXpDLGFBQWEwQyxxQ0FBcUMsQ0FBQ3JCO0lBRXRFLElBQUlvQixlQUFlLE1BQU07UUFDdkIsSUFBTWpCLDhCQUE4QnhCLGFBQWFJLFlBQVksQ0FBQ0UsNEJBQ3hESixnQkFBZ0JSLG1CQUFtQkcseUJBQ25DNEIsd0JBQXdCekIsY0FDeEJHLDJCQUEyQkgsYUFBYUksWUFBWSxDQUFDUDtRQUUzREcsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQStFbUIsT0FBOURyQiwwQkFBeUIsdUNBQWlFLE9BQTVCcUIsNkJBQTRCLG9CQUFrQnRCO1FBRWpKLElBQU15Qyw2QkFBNkJGLFdBQVdkLGNBQWMsQ0FBQ3pCLGVBQWV1QjtRQUU1RWUsOENBQThDRyw0QkFBNEIsR0FBRztRQUU3RSxJQUFJSCw2Q0FBNkM7WUFDL0N4QyxhQUFhbUIsS0FBSyxDQUFDLEFBQUMsb0JBQWlGSyxPQUE5RHJCLDBCQUF5Qix1Q0FBaUUsT0FBNUJxQiw2QkFBNEIsa0JBQWdCdEI7UUFDbko7SUFDRjtJQUVBLE9BQU9zQztBQUNUO0FBRUEsU0FBU3pCLG1DQUFtQ2xCLHNCQUFzQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFNEMsV0FBVztJQUNqSCxJQUFJQyw4QkFBOEIsTUFBTSxHQUFHO0lBRTNDLElBQU1DLGVBQWV0RCxrQkFBa0JLO0lBRXZDLElBQUlpRCxpQkFBaUIsTUFBTTtRQUN6QixJQUFNM0MsMkJBQTJCSCxhQUFhSSxZQUFZLENBQUNQO1FBRTNERyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5Qiw0Q0FBMENOO1FBRXhHLElBQU1rRCxtQkFBbUJDLElBQUFBLGlCQUFjLEVBQUNGLGNBQWNoRCxhQUFhQyxTQUFTQyxjQUFjNEM7UUFFMUZDLDhCQUE4QkUsa0JBQWtCLEdBQUc7UUFFbkQsSUFBSUYsNkJBQTZCO1lBQy9CN0MsYUFBYW1CLEtBQUssQ0FBQyxBQUFDLG9CQUE0QyxPQUF6QmhCLDBCQUF5QiwwQ0FBd0NOO1FBQzFHO0lBQ0Y7SUFFQSxPQUFPZ0Q7QUFDVDtBQUVBLFNBQVM3Qix3Q0FBd0NuQixzQkFBc0IsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRTRDLFdBQVc7SUFDdEgsSUFBSUssbUNBQW1DLE1BQU8sR0FBRztJQUVqRCxJQUFNQyxvQkFBb0J2RCx1QkFBdUJFO0lBRWpELElBQUlxRCxzQkFBc0IsTUFBTTtRQUM5QixJQUFNL0MsMkJBQTJCSCxhQUFhSSxZQUFZLENBQUNQO1FBRTNERyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5QixpREFBK0NOO1FBRTdHLElBQU1zRCx3QkFBd0JDLElBQUFBLHNCQUFtQixFQUFDRixtQkFBbUJwRCxhQUFhQyxTQUFTQyxjQUFjNEM7UUFFekdLLG1DQUFtQ0UsdUJBQXVCLEdBQUc7UUFFN0QsSUFBSUYsa0NBQWtDO1lBQ3BDakQsYUFBYW1CLEtBQUssQ0FBQyxBQUFDLG9CQUE0QyxPQUF6QmhCLDBCQUF5QiwrQ0FBNkNOO1FBQy9HO0lBQ0Y7SUFFQSxPQUFPb0Q7QUFDVCJ9
|
package/lib/verify/theorem.js
CHANGED
|
@@ -21,12 +21,12 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"),
|
|
24
|
+
var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"), labelsNodeQuery = (0, _query.nodeQuery)("/theorem/labels!"), consequentNodeQuery = (0, _query.nodeQuery)("/theorem/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/theorem/supposition");
|
|
25
25
|
function verifyTheorem(theoremNode, fileContext) {
|
|
26
26
|
var theoremVerified = false;
|
|
27
|
-
var
|
|
27
|
+
var labelsNode = labelsNodeQuery(theoremNode), labelsString = fileContext.nodeAsString(labelsNode), localContext = _local.default.fromFileContext(fileContext);
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' theorem..."), theoremNode);
|
|
29
|
-
var labels = [], labelsVerified = (0, _labels.default)(
|
|
29
|
+
var labels = [], labelsVerified = (0, _labels.default)(labelsNode, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
var suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
|
|
32
32
|
if (suppositionsVerified) {
|
|
@@ -47,4 +47,4 @@ function verifyTheorem(theoremNode, fileContext) {
|
|
|
47
47
|
return theoremVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vcHJvb2YhXCIpLFxuICAgICAgbGFiZWxzTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vbGFiZWxzIVwiKSxcbiAgICAgIGNvbnNlcXVlbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGhlb3JlbSh0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRoZW9yZW1WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsc05vZGUgPSBsYWJlbHNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobGFiZWxzTm9kZSksXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uLi5gLCB0aGVvcmVtTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsc05vZGUsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9uTm9kZXMsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dChsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgICB0aGVvcmVtVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS5gLCB0aGVvcmVtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRoZW9yZW0iLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsc05vZGVRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwidGhlb3JlbU5vZGUiLCJmaWxlQ29udGV4dCIsInRoZW9yZW1WZXJpZmllZCIsImxhYmVsc05vZGUiLCJsYWJlbHNTdHJpbmciLCJub2RlQXNTdHJpbmciLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb25zIiwiY29uc2VxdWVudHMiLCJjb25zZXF1ZW50Tm9kZSIsImNvbnNlcXVlbnRWZXJpZmllZCIsInZlcmlmeUNvbnNlcXVlbnQiLCJwcm9vZk5vZGUiLCJmaXJzdENvbnNlcXVlbnQiLCJmaXJzdCIsImNvbnNlcXVlbnQiLCJwcm9vZlZlcmlmaWVkIiwidmVyaWZ5UHJvb2YiLCJ0aGVvcmVtIiwiVGhlb3JlbSIsImZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0IiwiYWRkVGhlb3JlbSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUF3QkE7Ozs4REFmSjs0REFDSTs0REFDQzs2REFDQTtpRUFDSTttRUFDRTtxQkFFVDtxQkFDZ0I7Ozs7OztBQUV0QyxJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsb0JBQzNCQyxrQkFBa0JELElBQUFBLGdCQUFTLEVBQUMscUJBQzVCRSxzQkFBc0JGLElBQUFBLGdCQUFTLEVBQUMseUJBQ2hDRyx3QkFBd0JDLElBQUFBLGlCQUFVLEVBQUM7QUFFMUIsU0FBU04sY0FBY08sV0FBVyxFQUFFQyxXQUFXO0lBQzVELElBQUlDLGtCQUFrQjtJQUV0QixJQUFNQyxhQUFhUCxnQkFBZ0JJLGNBQzdCSSxlQUFlSCxZQUFZSSxZQUFZLENBQUNGLGFBQ3hDRyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ1A7SUFFbERBLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhLGlCQUFlSjtJQUVoRSxJQUFNVSxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNULFlBQVlPLFFBQVFUO0lBRXhELElBQUlVLGdCQUFnQjtRQUNsQixJQUFNRSxlQUFlLEVBQUUsRUFDakJDLG1CQUFtQmhCLHNCQUFzQkUsY0FDekNlLHVCQUF1QkMsSUFBQUEscUJBQWtCLEVBQUNGLGtCQUFrQkQsY0FBY1A7UUFFaEYsSUFBSVMsc0JBQXNCO1lBQ3hCLElBQU1FLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCckIsb0JBQW9CRyxjQUNyQ21CLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYVg7WUFFekUsSUFBSWEsb0JBQW9CO2dCQUN0QixJQUFNRSxZQUFZM0IsZUFBZU0sY0FDM0JzQixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUNiRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csWUFBWWxCO2dCQUV6RCxJQUFJbUIsZUFBZTtvQkFDakIsSUFBTUUsVUFBVUMsZ0JBQU8sQ0FBQ0MsK0NBQStDLENBQUNuQixRQUFRRyxjQUFjVyxZQUFZbEI7b0JBRTFHTCxZQUFZNkIsVUFBVSxDQUFDSDtvQkFFdkJ6QixrQkFBa0I7Z0JBQ3BCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsaUJBQWlCO1FBQ25CRCxZQUFZOEIsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWIzQixjQUFhLGVBQWFKO0lBQ2xFO0lBRUEsT0FBT0U7QUFDVCJ9
|
package/package.json
CHANGED
|
@@ -32,19 +32,6 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
32
32
|
return this.localContext;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
matchLabelNode(labelNode) {
|
|
36
|
-
const labelNodeMatches = this.labels.some((label) => {
|
|
37
|
-
const node = labelNode, ///
|
|
38
|
-
labelMatchesNode = label.matchNode(node);
|
|
39
|
-
|
|
40
|
-
if (labelMatchesNode) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
return labelNodeMatches;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
35
|
matchStatement(statementNode, statementLocalContext) {
|
|
49
36
|
let statementNatches;
|
|
50
37
|
|
|
@@ -79,6 +66,19 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
79
66
|
return statementNatches;
|
|
80
67
|
}
|
|
81
68
|
|
|
69
|
+
matchLabelMetavariableNode(labelMetavariableNode) {
|
|
70
|
+
const labelMetavariableNodeMatches = this.labels.some((label) => {
|
|
71
|
+
const node = labelMetavariableNode, ///
|
|
72
|
+
labelMatchesNode = label.matchNode(node);
|
|
73
|
+
|
|
74
|
+
if (labelMatchesNode) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return labelMetavariableNodeMatches;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
82
|
toJSON(tokens) {
|
|
83
83
|
const labelsJSON = this.labels.map((label) => {
|
|
84
84
|
const labelJSON = label.toJSON(tokens);
|