occam-verify-cli 0.0.972 → 0.0.974
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/context/file.js +1 -8
- package/lib/resolve/complexSubstitutionAgainstSimpleSubstitution.js +76 -0
- package/lib/resolve/substitution.js +27 -0
- package/lib/resolve/substitutions.js +8 -70
- package/lib/substitution/statementForMetavariable.js +2 -2
- package/lib/substitution.js +8 -1
- package/lib/substitutions.js +19 -7
- package/lib/type.js +3 -3
- package/lib/unify/complexSubstitutionStatementWithSimpleSubstitutionStatement.js +26 -0
- package/lib/unify/qualifiedStatement.js +117 -0
- package/lib/unify/statementWithCombinator.js +29 -0
- package/lib/unify/statementWithCombinators.js +4 -14
- package/lib/unify/termWithBracketedConstructor.js +3 -3
- package/lib/unify/termWithConstructor.js +37 -0
- package/lib/unify/termWithConstructors.js +6 -33
- package/lib/unify/unqualifiedStatement.js +25 -0
- package/lib/verifier/statementAsCombinator.js +2 -2
- package/lib/verify/assertion/contained.js +2 -2
- package/lib/verify/assertion/defined.js +5 -3
- package/lib/verify/assertion/type.js +5 -3
- package/lib/verify/conclusion.js +2 -2
- package/lib/verify/consequent.js +2 -2
- package/lib/verify/declaration.js +3 -3
- package/lib/verify/equality.js +11 -7
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +36 -28
- package/lib/verify/premise.js +3 -3
- package/lib/verify/statement/qualified.js +3 -3
- package/lib/verify/statement/unqualified.js +9 -53
- package/lib/verify/statement.js +8 -47
- package/lib/verify/term.js +11 -5
- package/package.json +1 -1
- package/src/context/file.js +0 -6
- package/src/resolve/complexSubstitutionAgainstSimpleSubstitution.js +94 -0
- package/src/resolve/substitution.js +19 -0
- package/src/resolve/substitutions.js +9 -112
- package/src/substitution/statementForMetavariable.js +1 -1
- package/src/substitution.js +6 -0
- package/src/substitutions.js +17 -6
- package/src/type.js +3 -3
- package/src/unify/complexSubstitutionStatementWithSimpleSubstitutionStatement.js +18 -0
- package/src/unify/{statement/qualified.js → qualifiedStatement.js} +1 -1
- package/src/unify/statementWithCombinator.js +22 -0
- package/src/unify/statementWithCombinators.js +3 -20
- package/src/unify/termWithBracketedConstructor.js +1 -1
- package/src/unify/termWithConstructor.js +39 -0
- package/src/unify/termWithConstructors.js +1 -37
- package/src/unify/{statement/unqualified.js → unqualifiedStatement.js} +1 -1
- package/src/verifier/statementAsCombinator.js +2 -2
- package/src/verify/assertion/contained.js +1 -1
- package/src/verify/assertion/defined.js +7 -2
- package/src/verify/assertion/type.js +6 -4
- package/src/verify/conclusion.js +1 -1
- package/src/verify/consequent.js +1 -1
- package/src/verify/declaration.js +2 -2
- package/src/verify/equality.js +12 -8
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +57 -49
- package/src/verify/premise.js +3 -3
- package/src/verify/statement/qualified.js +1 -1
- package/src/verify/statement/unqualified.js +8 -13
- package/src/verify/statement.js +3 -56
- package/src/verify/term.js +13 -6
- package/lib/unify/statement/qualified.js +0 -117
- package/lib/unify/statement/unqualified.js +0 -25
package/src/verify/statement.js
CHANGED
|
@@ -18,7 +18,6 @@ const frameNodeQuery = nodeQuery("/statement/frame!"),
|
|
|
18
18
|
equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
19
19
|
judgementNodeQuery = nodeQuery("/statement/judgement!"),
|
|
20
20
|
declarationNodeQuery = nodeQuery("/statement/declaration!"),
|
|
21
|
-
substitutionNodeQuery = nodeQuery("/statement/substitution!"),
|
|
22
21
|
metavariableNodeQuery = nodeQuery("/statement/metavariable!"),
|
|
23
22
|
typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
|
|
24
23
|
definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
|
|
@@ -26,15 +25,15 @@ const frameNodeQuery = nodeQuery("/statement/frame!"),
|
|
|
26
25
|
containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
|
|
27
26
|
|
|
28
27
|
const unifyStatementFunctions = [
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
unifyStatementWithBracketedCombinator,
|
|
29
|
+
unifyStatementWithCombinators
|
|
31
30
|
],
|
|
32
31
|
verifyStatementFunctions = [
|
|
32
|
+
verifyStatementAsMetavariable,
|
|
33
33
|
verifyStatementAsEquality,
|
|
34
34
|
verifyStatementAsFrame,
|
|
35
35
|
verifyStatementAsJudgement,
|
|
36
36
|
verifyStatementAsDeclaration,
|
|
37
|
-
verifyStatementAsSubstitution,
|
|
38
37
|
verifyStatementAsTypeAssertion,
|
|
39
38
|
verifyStatementAsDefinedAssertion,
|
|
40
39
|
verifyStatementAsSubproofAssertion,
|
|
@@ -48,12 +47,6 @@ function verifyStatement(statementNode, assignments, stated, localContext) {
|
|
|
48
47
|
|
|
49
48
|
localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
|
|
50
49
|
|
|
51
|
-
if (!statementVerified) {
|
|
52
|
-
const statementVerifiedAsMetavariable = verifyStatementAsMetavariable(statementNode, assignments, stated, localContext);
|
|
53
|
-
|
|
54
|
-
statementVerified = statementVerifiedAsMetavariable; ///
|
|
55
|
-
}
|
|
56
|
-
|
|
57
50
|
if (!statementVerified) {
|
|
58
51
|
const statementUnified = unifyStatementFunctions.some((unifyStatementFunction) => {
|
|
59
52
|
const statementUnified = unifyStatementFunction(statementNode, assignments, stated, localContext);
|
|
@@ -89,30 +82,6 @@ Object.assign(shim, {
|
|
|
89
82
|
|
|
90
83
|
export default verifyStatement;
|
|
91
84
|
|
|
92
|
-
export function verifyStatementTrivially(statementNode, localContext) {
|
|
93
|
-
let statementVerifiedTrivially = false;
|
|
94
|
-
|
|
95
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
96
|
-
|
|
97
|
-
localContext.trace(`Verifying the '${statementString}' statement trivially...`, statementNode);
|
|
98
|
-
|
|
99
|
-
const equalityNode = equalityNodeQuery(statementNode),
|
|
100
|
-
judgementNode = judgementNodeQuery(statementNode),
|
|
101
|
-
typeAssertionNode = typeAssertionNodeQuery(statementNode),
|
|
102
|
-
definedAssertionNode = definedAssertionNodeQuery(statementNode),
|
|
103
|
-
containedAssertionNode = containedAssertionNodeQuery(statementNode);
|
|
104
|
-
|
|
105
|
-
if ((equalityNode !== null) || (judgementNode !== null) || (typeAssertionNode !== null) || (definedAssertionNode !== null) || (containedAssertionNode !== null)) {
|
|
106
|
-
statementVerifiedTrivially = true;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (statementVerifiedTrivially) {
|
|
110
|
-
localContext.debug(`...verified the '${statementString}' statement trivially.`, statementNode);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return statementVerifiedTrivially;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
85
|
function verifyStatementAsMetavariable(statementNode, assignments, stated, localContext) {
|
|
117
86
|
let statementVerifiedAsMetavariable = false;
|
|
118
87
|
|
|
@@ -223,28 +192,6 @@ function verifyStatementAsDeclaration(statementNode, assignments, stated, localC
|
|
|
223
192
|
return statementVerifiedAsDeclaration;
|
|
224
193
|
}
|
|
225
194
|
|
|
226
|
-
function verifyStatementAsSubstitution(statementNode, assignments, stated, localContext) {
|
|
227
|
-
let statementVerifiedAsSubstitution = false;
|
|
228
|
-
|
|
229
|
-
const substitutionNode = substitutionNodeQuery(statementNode);
|
|
230
|
-
|
|
231
|
-
if (substitutionNode !== null) {
|
|
232
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
233
|
-
|
|
234
|
-
localContext.trace(`Verifying the '${statementString}' statement as a substitution...`, statementNode);
|
|
235
|
-
|
|
236
|
-
const substitutionVerified = verifySubstitution(substitutionNode, assignments, stated, localContext);
|
|
237
|
-
|
|
238
|
-
statementVerifiedAsSubstitution = substitutionVerified; ///
|
|
239
|
-
|
|
240
|
-
if (statementVerifiedAsSubstitution) {
|
|
241
|
-
localContext.debug(`...verified the '${statementString}' statement as a substitution.`, statementNode);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return statementVerifiedAsSubstitution;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
195
|
function verifyStatementAsTypeAssertion(statementNode, assignments, stated, localContext) {
|
|
249
196
|
let statementVerifiedAsTypeAssertion = false;
|
|
250
197
|
|
package/src/verify/term.js
CHANGED
|
@@ -13,6 +13,9 @@ const variableNodeQuery = nodeQuery("/term/variable!");
|
|
|
13
13
|
const unifyTermFunctions = [
|
|
14
14
|
unifyTermWithBracketedConstructor,
|
|
15
15
|
unifyTermWithConstructors,
|
|
16
|
+
],
|
|
17
|
+
verifyTermFunctions = [
|
|
18
|
+
verifyTermAsVariable
|
|
16
19
|
];
|
|
17
20
|
|
|
18
21
|
function verifyTerm(termNode, terms, localContext, verifyAhead) {
|
|
@@ -22,12 +25,6 @@ function verifyTerm(termNode, terms, localContext, verifyAhead) {
|
|
|
22
25
|
|
|
23
26
|
localContext.trace(`Verifying the '${termString}' term...`, termNode);
|
|
24
27
|
|
|
25
|
-
if (!termVerified) {
|
|
26
|
-
const termVerifiedAsVariable = verifyTermAsVariable(termNode, terms, localContext, verifyAhead);
|
|
27
|
-
|
|
28
|
-
termVerified = termVerifiedAsVariable; ///
|
|
29
|
-
}
|
|
30
|
-
|
|
31
28
|
if (!termVerified) {
|
|
32
29
|
const termUnified = unifyTermFunctions.some((unifyTermFunction) => {
|
|
33
30
|
const termUnified = unifyTermFunction(termNode, terms, localContext, verifyAhead);
|
|
@@ -40,6 +37,16 @@ function verifyTerm(termNode, terms, localContext, verifyAhead) {
|
|
|
40
37
|
termVerified = termUnified; ///
|
|
41
38
|
}
|
|
42
39
|
|
|
40
|
+
if (!termVerified) {
|
|
41
|
+
termVerified = verifyTermFunctions.some((verifyTermFunction) => {
|
|
42
|
+
const termVerified = verifyTermFunction(termNode, terms, localContext, verifyAhead);
|
|
43
|
+
|
|
44
|
+
if (termVerified) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
43
50
|
if (termVerified) {
|
|
44
51
|
localContext.debug(`...verified the '${termString}' term.`, termNode);
|
|
45
52
|
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return unifyQualifiedStatement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _query = require("../../utilities/query");
|
|
12
|
-
var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), metavariableNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/reference/metavariable!");
|
|
13
|
-
var unifyQualifiedStatementFunctions = [
|
|
14
|
-
unifyQualifiedStatementAWithRule,
|
|
15
|
-
unifyQualifiedStatementAWithAxiom,
|
|
16
|
-
unifyQualifiedStatementAWithLemma,
|
|
17
|
-
unifyQualifiedStatementAWithTheorem,
|
|
18
|
-
unifyQualifiedStatementAWithConjecture,
|
|
19
|
-
unifyQualifiedStatementAWithReference
|
|
20
|
-
];
|
|
21
|
-
function unifyQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
|
|
22
|
-
var qualifiedStatementUnified;
|
|
23
|
-
var qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
24
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement..."), qualifiedStatementNode);
|
|
25
|
-
qualifiedStatementUnified = unifyQualifiedStatementFunctions.some(function(unifyQualifiedStatementFunction) {
|
|
26
|
-
var qualifiedStatementUnified = unifyQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
|
|
27
|
-
return qualifiedStatementUnified;
|
|
28
|
-
});
|
|
29
|
-
if (qualifiedStatementUnified) {
|
|
30
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement."), qualifiedStatementNode);
|
|
31
|
-
}
|
|
32
|
-
return qualifiedStatementUnified;
|
|
33
|
-
}
|
|
34
|
-
function unifyQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
|
|
35
|
-
var qualifiedStatementUnifiedWithRule = false;
|
|
36
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), rule = localContext.findRuleByMetavariableNode(metavariableNode);
|
|
37
|
-
if (rule !== null) {
|
|
38
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
39
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' rule..."), qualifiedStatementNode);
|
|
40
|
-
var statementUnified = rule.unifyStatement(statementNode, localContext);
|
|
41
|
-
qualifiedStatementUnifiedWithRule = statementUnified; ///
|
|
42
|
-
if (qualifiedStatementUnifiedWithRule) {
|
|
43
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' rule."), qualifiedStatementNode);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return qualifiedStatementUnifiedWithRule;
|
|
47
|
-
}
|
|
48
|
-
function unifyQualifiedStatementAWithAxiom(qualifiedStatementNode, substitutions, localContext) {
|
|
49
|
-
var qualifiedStatementUnifiedWithAxiom = false;
|
|
50
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), axiom = localContext.findAxiomByMetavariableNode(metavariableNode);
|
|
51
|
-
if (axiom !== null) {
|
|
52
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
53
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' axiom..."), qualifiedStatementNode);
|
|
54
|
-
var statementUnified = axiom.unifyStatement(statementNode, localContext);
|
|
55
|
-
qualifiedStatementUnifiedWithAxiom = statementUnified; ///
|
|
56
|
-
if (qualifiedStatementUnifiedWithAxiom) {
|
|
57
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' axiom."), qualifiedStatementNode);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return qualifiedStatementUnifiedWithAxiom;
|
|
61
|
-
}
|
|
62
|
-
function unifyQualifiedStatementAWithLemma(qualifiedStatementNode, substitutions, localContext) {
|
|
63
|
-
var qualifiedStatementUnifiedWithLemma = false;
|
|
64
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), lemma = localContext.findLemmaByMetavariableNode(metavariableNode);
|
|
65
|
-
if (lemma !== null) {
|
|
66
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
67
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' lemma..."), qualifiedStatementNode);
|
|
68
|
-
var statementUnified = lemma.unifyStatement(statementNode, localContext);
|
|
69
|
-
qualifiedStatementUnifiedWithLemma = statementUnified; ///
|
|
70
|
-
if (qualifiedStatementUnifiedWithLemma) {
|
|
71
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' lemma."), qualifiedStatementNode);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return qualifiedStatementUnifiedWithLemma;
|
|
75
|
-
}
|
|
76
|
-
function unifyQualifiedStatementAWithTheorem(qualifiedStatementNode, substitutions, localContext) {
|
|
77
|
-
var qualifiedStatementUnifiedWithTheorem = false;
|
|
78
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), theorem = localContext.findTheoremByMetavariableNode(metavariableNode);
|
|
79
|
-
if (theorem !== null) {
|
|
80
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
81
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' theorem..."), qualifiedStatementNode);
|
|
82
|
-
var statementUnified = theorem.unifyStatement(statementNode, localContext);
|
|
83
|
-
qualifiedStatementUnifiedWithTheorem = statementUnified; ///
|
|
84
|
-
if (qualifiedStatementUnifiedWithTheorem) {
|
|
85
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' theorem."), qualifiedStatementNode);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return qualifiedStatementUnifiedWithTheorem;
|
|
89
|
-
}
|
|
90
|
-
function unifyQualifiedStatementAWithConjecture(qualifiedStatementNode, substitutions, localContext) {
|
|
91
|
-
var qualifiedStatementUnifiedWithConjecture = false;
|
|
92
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), conjecture = localContext.findConjectureByMetavariableNode(metavariableNode);
|
|
93
|
-
if (conjecture !== null) {
|
|
94
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
95
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' conjecture..."), qualifiedStatementNode);
|
|
96
|
-
var statementUnified = conjecture.unifyStatement(statementNode, localContext);
|
|
97
|
-
qualifiedStatementUnifiedWithConjecture = statementUnified; ///
|
|
98
|
-
if (qualifiedStatementUnifiedWithConjecture) {
|
|
99
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' conjecture."), qualifiedStatementNode);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return qualifiedStatementUnifiedWithConjecture;
|
|
103
|
-
}
|
|
104
|
-
function unifyQualifiedStatementAWithReference(qualifiedStatementNode, substitutions, localContext) {
|
|
105
|
-
var qualifiedStatementUnifiedWithReference = false;
|
|
106
|
-
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
107
|
-
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' reference..."), qualifiedStatementNode);
|
|
108
|
-
if (metavariablePresent) {
|
|
109
|
-
debugger;
|
|
110
|
-
}
|
|
111
|
-
if (qualifiedStatementUnifiedWithReference) {
|
|
112
|
-
localContext.debug("...unified the '".concat(qualifiedStatementString, "' qualified statement with the '").concat(metavariableString, "' reference."), qualifiedStatementNode);
|
|
113
|
-
}
|
|
114
|
-
return qualifiedStatementUnifiedWithReference;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnQvcXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcmVmZXJlbmNlL21ldGF2YXJpYWJsZSFcIik7XG5cbmNvbnN0IHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoUnVsZSxcbiAgdW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aEF4aW9tLFxuICB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoTGVtbWEsXG4gIHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50QVdpdGhUaGVvcmVtLFxuICB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZSxcbiAgdW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZVxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQgPSB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh1bmlmeVF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xuICB9KTtcblxuICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xufVxuXG5mdW5jdGlvbiB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoUnVsZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHJ1bGUgPSBsb2NhbENvbnRleHQuZmluZFJ1bGVCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcnVsZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IHJ1bGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSA9IHN0YXRlbWVudFVuaWZpZWQ7ICAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBydWxlLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGU7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb20gPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBheGlvbSA9IGxvY2FsQ29udGV4dC5maW5kQXhpb21CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKGF4aW9tICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gYXhpb20udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb20gPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgYXhpb20uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb207XG59XG5cbmZ1bmN0aW9uIHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50QVdpdGhMZW1tYShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWEgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBsZW1tYSA9IGxvY2FsQ29udGV4dC5maW5kTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKGxlbW1hICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGxlbW1hLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gbGVtbWEudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWEgPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbGVtbWEuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWE7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50QVdpdGhUaGVvcmVtKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgdGhlb3JlbSA9IGxvY2FsQ29udGV4dC5maW5kVGhlb3JlbUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAodGhlb3JlbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyB0aGVvcmVtLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gdGhlb3JlbS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgdGhlb3JlbS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtO1xufVxuXG5mdW5jdGlvbiB1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbmplY3R1cmUgPSBsb2NhbENvbnRleHQuZmluZENvbmplY3R1cmVCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKGNvbmplY3R1cmUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgY29uamVjdHVyZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGNvbmplY3R1cmUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGNvbmplY3R1cmUuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGxvY2FsQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyByZWZlcmVuY2UuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuXG4gICAgZGVidWdnZXJcblxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHJlZmVyZW5jZS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZTtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zIiwidW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJ1bGUiLCJ1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoQXhpb20iLCJ1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoTGVtbWEiLCJ1bmlmeVF1YWxpZmllZFN0YXRlbWVudEFXaXRoVGhlb3JlbSIsInVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50QVdpdGhDb25qZWN0dXJlIiwidW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0IiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCIsInF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic29tZSIsInVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsInF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwic3RhdGVtZW50VW5pZmllZCIsInVuaWZ5U3RhdGVtZW50IiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlNZXRhdmFyaWFibGVOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYSIsImxlbW1hIiwiZmluZExlbW1hQnlNZXRhdmFyaWFibGVOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlNZXRhdmFyaWFibGVOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlIiwiY29uamVjdHVyZSIsImZpbmRDb25qZWN0dXJlQnlNZXRhdmFyaWFibGVOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUF3QkE7OztxQkFkRTtBQUUxQixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsbUNBQy9CQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFeEMsSUFBTUUsbUNBQW1DO0lBQ3ZDQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztDQUNEO0FBRWMsU0FBU1Ysd0JBQXdCVyxzQkFBc0IsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ2pHLElBQUlDO0lBRUosSUFBTUMsMkJBQTJCRixhQUFhRyxZQUFZLENBQUNMO0lBRTNERSxhQUFhSSxLQUFLLENBQUMsQUFBQyxpQkFBeUMsT0FBekJGLDBCQUF5Qiw2QkFBMkJKO0lBRXhGRyw0QkFBNEJWLGlDQUFpQ2MsSUFBSSxDQUFDLFNBQUNDO1FBQ2pFLElBQU1MLDRCQUE0QkssZ0NBQWdDUix3QkFBd0JDLGVBQWVDO1FBRXpHLE9BQU9DO0lBQ1Q7SUFFQSxJQUFJQSwyQkFBMkI7UUFDN0JELGFBQWFPLEtBQUssQ0FBQyxBQUFDLG1CQUEyQyxPQUF6QkwsMEJBQXlCLDJCQUF5Qko7SUFDMUY7SUFFQSxPQUFPRztB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
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return unifyUnqualifiedStatement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _query = require("../../utilities/query");
|
|
12
|
-
var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!");
|
|
13
|
-
function unifyUnqualifiedStatement(unqualifiedStatementNode, localContext) {
|
|
14
|
-
var unqualifiedStatementUnified;
|
|
15
|
-
var unqualifiedStatementString = localContext.nodeAsString(unqualifiedStatementNode);
|
|
16
|
-
localContext.trace("Unifying the '".concat(unqualifiedStatementString, "' unqualified statement..."), unqualifiedStatementNode);
|
|
17
|
-
var statementNode = statementNodeQuery(unqualifiedStatementNode), statementUnified = localContext.unifyStatement(statementNode, localContext);
|
|
18
|
-
unqualifiedStatementUnified = statementUnified; ///
|
|
19
|
-
if (unqualifiedStatementUnified) {
|
|
20
|
-
localContext.debug("...unified the '".concat(unqualifiedStatementString, "' unqualified statement."), unqualifiedStatementNode);
|
|
21
|
-
}
|
|
22
|
-
return unqualifiedStatementUnified;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnQvdW5xdWFsaWZpZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZDtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC4uLmAsIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbG9jYWxDb250ZXh0LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZDsgIC8vL1xuXG4gIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgdW5xdWFsaWZpZWQgc3RhdGVtZW50LmAsIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gdW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJsb2NhbENvbnRleHQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O3FCQUpFO0FBRTFCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwwQkFBMEJHLHdCQUF3QixFQUFFQyxZQUFZO0lBQ3RGLElBQUlDO0lBRUosSUFBTUMsNkJBQTZCRixhQUFhRyxZQUFZLENBQUNKO0lBRTdEQyxhQUFhSSxLQUFLLENBQUMsQUFBQyxpQkFBMkMsT0FBM0JGLDRCQUEyQiwrQkFBNkJIO0lBRTVGLElBQU1NLGdCQUFnQlIsbUJBQW1CRSwyQkFDbkNPLG1CQUFtQk4sYUFBYU8sY0FBYyxDQUFDRixlQUFlTDtJQUVwRUMsOEJBQThCSyxrQkFBbUIsR0FBRztJQUVwRCxJQUFJTCw2QkFBNkI7UUFDL0JELGFBQWFRLEtBQUssQ0FBQyxBQUFDLG1CQUE2QyxPQUEzQk4sNEJBQTJCLDZCQUEyQkg7SUFDOUY7SUFFQSxPQUFPRTtBQUNUIn0=
|