occam-verify-cli 0.0.679 → 0.0.680
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 +3 -3
- package/lib/conclusion.js +9 -3
- package/lib/consequent.js +5 -2
- package/lib/context/file.js +2 -2
- package/lib/equality.js +13 -199
- package/lib/premise.js +17 -5
- package/lib/supposition.js +9 -3
- package/lib/utilities/array.js +5 -2
- package/lib/verifier/node/metastatement.js +9 -6
- package/lib/verifier/node/termAsConstructor.js +2 -2
- package/lib/verifier/nodes/equality.js +155 -0
- package/lib/verifier/nodes/metastatementForMetavariable.js +8 -8
- package/lib/verifier/nodes/statement.js +6 -5
- package/lib/verifier/nodes/term.js +3 -5
- package/lib/verifier/nodes/termForVariable.js +24 -16
- package/lib/verify/file.js +2 -2
- package/lib/verify/label.js +2 -2
- package/lib/verify/metastatement.js +8 -5
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/statement.js +39 -80
- package/lib/verify/term.js +16 -8
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/terms.js +45 -0
- package/lib/verify/type.js +3 -3
- package/lib/verify/typeAssertion.js +124 -0
- package/lib/verify/variable.js +3 -3
- package/package.json +2 -2
- package/src/axiomLemmaTheoremConjecture.js +2 -2
- package/src/conclusion.js +10 -2
- package/src/consequent.js +7 -1
- package/src/context/file.js +2 -2
- package/src/equality.js +15 -141
- package/src/premise.js +20 -4
- package/src/supposition.js +10 -2
- package/src/utilities/array.js +1 -1
- package/src/verifier/node/metastatement.js +9 -5
- package/src/verifier/node/termAsConstructor.js +1 -1
- package/src/verifier/nodes/equality.js +68 -0
- package/src/verifier/nodes/metastatementForMetavariable.js +7 -7
- package/src/verifier/nodes/statement.js +6 -4
- package/src/verifier/nodes/term.js +1 -6
- package/src/verifier/nodes/termForVariable.js +34 -22
- package/src/verify/file.js +1 -1
- package/src/verify/label.js +1 -1
- package/src/verify/metastatement.js +8 -4
- package/src/verify/metavariable.js +1 -1
- package/src/verify/statement.js +50 -119
- package/src/verify/term.js +20 -12
- package/src/verify/termAsConstructor.js +1 -1
- package/src/verify/terms.js +54 -0
- package/src/verify/type.js +2 -2
- package/src/verify/typeAssertion.js +164 -0
- package/src/verify/variable.js +2 -2
- package/lib/node/statement/combinator/equality.js +0 -21
- package/lib/ocmbinator/equality.js +0 -126
- package/lib/tokens/statement/combinator/equality.js +0 -17
- package/lib/verify/assertion/type.js +0 -125
- package/lib/verify/typeInference.js +0 -132
- package/src/node/statement/combinator/equality.js +0 -9
- package/src/ocmbinator/equality.js +0 -23
- package/src/tokens/statement/combinator/equality.js +0 -10
- package/src/verify/assertion/type.js +0 -169
- package/src/verify/typeInference.js +0 -146
|
@@ -138,20 +138,20 @@ var TermForVariableNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
|
138
138
|
_create_class(TermForVariableNodesVerifier, [
|
|
139
139
|
{
|
|
140
140
|
key: "verifyNonTerminalNode",
|
|
141
|
-
value: function verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB) {
|
|
141
|
+
value: function verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB, verifyAhead) {
|
|
142
142
|
var nonTerminalNodeVerified = false;
|
|
143
143
|
var nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
|
|
144
144
|
if (nonTerminalNodeBRuleName === nonTerminalNodeARuleName) {
|
|
145
145
|
var nonTerminalNodeARuleNameTermRuleName = nonTerminalNodeARuleName === _ruleNames.TERM_RULE_NAME, nonTerminalNodeBRuleNameTermRuleName = nonTerminalNodeBRuleName === _ruleNames.TERM_RULE_NAME;
|
|
146
146
|
if (nonTerminalNodeARuleNameTermRuleName && nonTerminalNodeBRuleNameTermRuleName) {
|
|
147
|
-
var termNodeA = nonTerminalNodeA, termNodeB = nonTerminalNodeB, termNodeVerified = this.verifyTermNode(termNodeA, termNodeB, substitutions, proofContextA, proofContextB);
|
|
147
|
+
var termNodeA = nonTerminalNodeA, termNodeB = nonTerminalNodeB, termNodeVerified = this.verifyTermNode(termNodeA, termNodeB, substitutions, proofContextA, proofContextB, verifyAhead);
|
|
148
148
|
if (termNodeVerified) {
|
|
149
149
|
nonTerminalNodeVerified = true; ///
|
|
150
150
|
} else {
|
|
151
|
-
nonTerminalNodeVerified = _get(_get_prototype_of(TermForVariableNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB);
|
|
151
|
+
nonTerminalNodeVerified = _get(_get_prototype_of(TermForVariableNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB, verifyAhead);
|
|
152
152
|
}
|
|
153
153
|
} else {
|
|
154
|
-
nonTerminalNodeVerified = _get(_get_prototype_of(TermForVariableNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB);
|
|
154
|
+
nonTerminalNodeVerified = _get(_get_prototype_of(TermForVariableNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB, verifyAhead);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
return nonTerminalNodeVerified;
|
|
@@ -159,11 +159,11 @@ var TermForVariableNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
key: "verifyTermNode",
|
|
162
|
-
value: function verifyTermNode(termNodeA, termNodeB, substitutions, proofContextA, proofContextB) {
|
|
162
|
+
value: function verifyTermNode(termNodeA, termNodeB, substitutions, proofContextA, proofContextB, verifyAhead) {
|
|
163
163
|
var termNodeVerified = false;
|
|
164
164
|
var variableNodeA = variableNodeQuery(termNodeA);
|
|
165
165
|
if (variableNodeA !== null) {
|
|
166
|
-
var variableVerified = this.verifyVariableNode(variableNodeA, termNodeB, substitutions, proofContextA, proofContextB);
|
|
166
|
+
var variableVerified = this.verifyVariableNode(variableNodeA, termNodeB, substitutions, proofContextA, proofContextB, verifyAhead);
|
|
167
167
|
termNodeVerified = variableVerified; ///
|
|
168
168
|
}
|
|
169
169
|
return termNodeVerified;
|
|
@@ -171,8 +171,8 @@ var TermForVariableNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
key: "verifyVariableNode",
|
|
174
|
-
value: function verifyVariableNode(variableNodeA, termNodeB, substitutions, proofContextA, proofContextB) {
|
|
175
|
-
var variableVerified;
|
|
174
|
+
value: function verifyVariableNode(variableNodeA, termNodeB, substitutions, proofContextA, proofContextB, verifyAhead) {
|
|
175
|
+
var variableVerified = false;
|
|
176
176
|
var variableNameA = (0, _query.variableNameFromVariableNode)(variableNodeA), substitution = substitutions.find(function(substitution) {
|
|
177
177
|
var variableName = substitution.getVariableName();
|
|
178
178
|
if (variableName === variableNameA) {
|
|
@@ -181,21 +181,29 @@ var TermForVariableNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
|
181
181
|
}) || null;
|
|
182
182
|
if (substitution !== null) {
|
|
183
183
|
var termNode = termNodeB, substitutionNodesVerified = substitution.matchTermNode(termNode);
|
|
184
|
-
|
|
184
|
+
if (substitutionNodesVerified) {
|
|
185
|
+
var verifiedAhead = verifyAhead();
|
|
186
|
+
variableVerified = verifiedAhead; ///
|
|
187
|
+
}
|
|
185
188
|
} else {
|
|
186
189
|
var createSubstitutions = this.constructor.createSubstitutions;
|
|
187
190
|
if (createSubstitutions) {
|
|
188
191
|
var variableName = variableNameA, proofContext = proofContextA, variable = proofContext.findVariableByVariableName(variableName);
|
|
189
192
|
if (variable !== null) {
|
|
190
|
-
var types = [], context = proofContextB, termNode1 = termNodeB, termVerified = (0, _term.default)(termNode1, types, context,
|
|
191
|
-
|
|
193
|
+
var types = [], context = proofContextB, termNode1 = termNodeB, termVerified = (0, _term.default)(termNode1, types, context, function() {
|
|
194
|
+
var verifiedAhead = false;
|
|
192
195
|
var firstType = (0, _array.first)(types), termType = firstType, variableType = variable.getType(), variableTypeEqualToOrSuperTypeOfTermType = variableType.isEqualToOrSuperTypeOf(termType);
|
|
193
196
|
if (variableTypeEqualToOrSuperTypeOfTermType) {
|
|
194
|
-
var termForVariableSubstitution = _termForVariable.default.fromVariableNameAndTermNode(variableName, termNode1),
|
|
195
|
-
substitutions.push(
|
|
196
|
-
|
|
197
|
+
var termForVariableSubstitution = _termForVariable.default.fromVariableNameAndTermNode(variableName, termNode1), substitution = termForVariableSubstitution; ///
|
|
198
|
+
substitutions.push(substitution);
|
|
199
|
+
verifiedAhead = verifyAhead();
|
|
200
|
+
if (!verifiedAhead) {
|
|
201
|
+
substitutions.pop();
|
|
202
|
+
}
|
|
197
203
|
}
|
|
198
|
-
|
|
204
|
+
return verifiedAhead;
|
|
205
|
+
});
|
|
206
|
+
variableVerified = termVerified; ///
|
|
199
207
|
}
|
|
200
208
|
}
|
|
201
209
|
}
|
|
@@ -206,4 +214,4 @@ var TermForVariableNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
|
206
214
|
return TermForVariableNodesVerifier;
|
|
207
215
|
}(_nodes.default);
|
|
208
216
|
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy90ZXJtRm9yVmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVzXCI7XG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgVEVSTV9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeSgnL3Rlcm0vdmFyaWFibGUhJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1Gb3JWYXJpYWJsZU5vZGVzVmVyaWZpZXIgZXh0ZW5kcyBOb2Rlc1ZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIHByb29mQ29udGV4dEEsIHByb29mQ29udGV4dEIpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBpZiAobm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lID09PSBub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZVRlcm1SdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUgPT09IFRFUk1fUlVMRV9OQU1FKSxcbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZVRlcm1SdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUgPT09IFRFUk1fUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZVRlcm1SdWxlTmFtZSAmJiBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWVUZXJtUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgdGVybU5vZGVBID0gbm9uVGVybWluYWxOb2RlQSwgIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZUIgPSBub25UZXJtaW5hbE5vZGVCLCAgLy8vXG4gICAgICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVRlcm1Ob2RlKHRlcm1Ob2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBwcm9vZkNvbnRleHRBLCBwcm9vZkNvbnRleHRCKTtcblxuICAgICAgICBpZiAodGVybU5vZGVWZXJpZmllZCkge1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdHJ1ZTsgIC8vL1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3VwZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIHByb29mQ29udGV4dEEsIHByb29mQ29udGV4dEIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN1cGVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBwcm9vZkNvbnRleHRBLCBwcm9vZkNvbnRleHRCKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgcHJvb2ZDb250ZXh0QSwgcHJvb2ZDb250ZXh0Qikge1xuICAgIGxldCB0ZXJtTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGVBID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGVBKTtcblxuICAgIGlmICh2YXJpYWJsZU5vZGVBICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBwcm9vZkNvbnRleHRBLCBwcm9vZkNvbnRleHRCKTtcblxuICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHZhcmlhYmxlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgcHJvb2ZDb250ZXh0QSwgcHJvb2ZDb250ZXh0Qikge1xuICAgIGxldCB2YXJpYWJsZVZlcmlmaWVkO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lQSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlQSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHN1YnN0aXR1dGlvbi5nZXRWYXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlTmFtZSA9PT0gdmFyaWFibGVOYW1lQSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZXNWZXJpZmllZCA9IHN1YnN0aXR1dGlvbi5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHN1YnN0aXR1dGlvbk5vZGVzVmVyaWZpZWQ7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBjcmVhdGVTdWJzdGl0dXRpb25zIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgICBpZiAoY3JlYXRlU3Vic3RpdHV0aW9ucykge1xuICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVBLCAvLy9cbiAgICAgICAgICAgICAgcHJvb2ZDb250ZXh0ID0gcHJvb2ZDb250ZXh0QSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlID0gcHJvb2ZDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICAgICAgICBjb250ZXh0ID0gcHJvb2ZDb250ZXh0QiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHR5cGVzLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgIGlmICh2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tVmFyaWFibGVOYW1lQW5kVGVybU5vZGUodmFyaWFibGVOYW1lLCB0ZXJtTm9kZSksXG4gICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgICAgICAgICAgIHZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZVZlcmlmaWVkO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVGVybUZvclZhcmlhYmxlTm9kZXNWZXJpZmllciIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJzdWJzdGl0dXRpb25zIiwicHJvb2ZDb250ZXh0QSIsInByb29mQ29udGV4dEIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lVGVybVJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJub25UZXJtaW5hbE5vZGVCUnVsZU5hbWVUZXJtUnVsZU5hbWUiLCJ0ZXJtTm9kZUEiLCJ0ZXJtTm9kZUIiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybU5vZGUiLCJ2YXJpYWJsZU5vZGVBIiwidmFyaWFibGVWZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTmFtZUEiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uIiwiZmluZCIsInZhcmlhYmxlTmFtZSIsImdldFZhcmlhYmxlTmFtZSIsInRlcm1Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZXNWZXJpZmllZCIsIm1hdGNoVGVybU5vZGUiLCJjcmVhdGVTdWJzdGl0dXRpb25zIiwiY29uc3RydWN0b3IiLCJwcm9vZkNvbnRleHQiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwidHlwZXMiLCJjb250ZXh0IiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmeUFoZWFkIiwiZmlyc3RUeXBlIiwiZmlyc3QiLCJ0ZXJtVHlwZSIsInZhcmlhYmxlVHlwZSIsImdldFR5cGUiLCJ2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsInRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsIlRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21WYXJpYWJsZU5hbWVBbmRUZXJtTm9kZSIsInB1c2giLCJOb2Rlc1ZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQWFxQkE7OzsyREFYRTs0REFDRztzRUFDYztxQkFFbEI7cUJBQ0k7eUJBQ0s7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUcvQixJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFckIsSUFBQSxBQUFNRiw2Q0FBTjtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkcsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQkMsZ0JBQWdCLEVBQUVDLGdCQUFnQixFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtnQkFDbkcsSUFBSUMsMEJBQTBCO2dCQUU5QixJQUFNQywyQkFBMkJOLGlCQUFpQk8sV0FBVyxJQUN2REMsMkJBQTJCUCxpQkFBaUJNLFdBQVc7Z0JBRTdELElBQUlDLDZCQUE2QkYsMEJBQTBCO29CQUN6RCxJQUFNRyx1Q0FBd0NILDZCQUE2QkkseUJBQWMsRUFDbkZDLHVDQUF3Q0gsNkJBQTZCRSx5QkFBYztvQkFFekYsSUFBSUQsd0NBQXdDRSxzQ0FBc0M7d0JBQ2hGLElBQU1DLFlBQVlaLGtCQUNaYSxZQUFZWixrQkFDWmEsbUJBQW1CLElBQUksQ0FBQ0MsY0FBYyxDQUFDSCxXQUFXQyxXQUFXWCxlQUFlQyxlQUFlQzt3QkFFakcsSUFBSVUsa0JBQWtCOzRCQUNwQlQsMEJBQTBCLE1BQU8sR0FBRzt3QkFDdEMsT0FBTzs0QkFDTEEsMEJBQTBCLHVCQW5CZlQseUNBbUJxQkcseUJBQU4sSUFBSyxhQUF1QkMsa0JBQWtCQyxrQkFBa0JDLGVBQWVDLGVBQWVDO3dCQUMxSDtvQkFDRixPQUFPO3dCQUNMQywwQkFBMEIsdUJBdEJiVCx5Q0FzQm1CRyx5QkFBTixJQUFLLGFBQXVCQyxrQkFBa0JDLGtCQUFrQkMsZUFBZUMsZUFBZUM7b0JBQzFIO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUgsU0FBUyxFQUFFQyxTQUFTLEVBQUVYLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO2dCQUM5RSxJQUFJVSxtQkFBbUI7Z0JBRXZCLElBQU1FLGdCQUFnQm5CLGtCQUFrQmU7Z0JBRXhDLElBQUlJLGtCQUFrQixNQUFNO29CQUMxQixJQUFNQyxtQkFBbUIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ0YsZUFBZUgsV0FBV1gsZUFBZUMsZUFBZUM7b0JBRXpHVSxtQkFBbUJHLGtCQUFrQixHQUFHO2dCQUMxQztnQkFFQSxPQUFPSDtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkYsYUFBYSxFQUFFSCxTQUFTLEVBQUVYLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO2dCQUN0RixJQUFJYTtnQkFFSixJQUFNRSxnQkFBZ0JDLElBQUFBLG1DQUE0QixFQUFDSixnQkFDN0NLLGVBQWVuQixjQUFjb0IsSUFBSSxDQUFDLFNBQUNEO29CQUNqQyxJQUFNRSxlQUFlRixhQUFhRyxlQUFlO29CQUVqRCxJQUFJRCxpQkFBaUJKLGVBQWU7d0JBQ2xDLE9BQU87b0JBQ1Q7Z0JBQ0YsTUFBTTtnQkFFWixJQUFJRSxpQkFBaUIsTUFBTTtvQkFDekIsSUFBTUksV0FBV1osV0FDWGEsNEJBQTRCTCxhQUFhTSxhQUFhLENBQUNGO29CQUU3RFIsbUJBQW1CUywyQkFBNEIsR0FBRztnQkFDcEQsT0FBTztvQkFDTCxJQUFNLEFBQUVFLHNCQUF3QixJQUFJLENBQUNDLFdBQVcsQ0FBeENEO29CQUVSLElBQUlBLHFCQUFxQjt3QkFDdkIsSUFBTUwsZUFBZUosZUFDZlcsZUFBZTNCLGVBQ2Y0QixXQUFXRCxhQUFhRSwwQkFBMEIsQ0FBQ1Q7d0JBRXpELElBQUlRLGFBQWEsTUFBTTs0QkFDckIsSUFBTUUsUUFBUSxFQUFFLEVBQ1ZDLFVBQVU5QixlQUNWcUIsWUFBV1osV0FDWHNCLGVBQWVDLElBQUFBLGFBQVUsRUFBQ1gsV0FBVVEsT0FBT0MsU0FBU0c7NEJBRTFELElBQUlGLGNBQWM7Z0NBQ2hCLElBQU1HLFlBQVlDLElBQUFBLFlBQUssRUFBQ04sUUFDbEJPLFdBQVdGLFdBQ1hHLGVBQWVWLFNBQVNXLE9BQU8sSUFDL0JDLDJDQUEyQ0YsYUFBYUcsc0JBQXNCLENBQUNKO2dDQUVyRixJQUFJRywwQ0FBMEM7b0NBQzVDLElBQU1FLDhCQUE4QkMsd0JBQTJCLENBQUNDLDJCQUEyQixDQUFDeEIsY0FBY0UsWUFDcEdKLGdCQUFld0IsNkJBQThCLEdBQUc7b0NBRXREM0MsY0FBYzhDLElBQUksQ0FBQzNCO29DQUVuQkosbUJBQW1CO2dDQUNyQjs0QkFDRjt3QkFDRjtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPQTtZQUNUOzs7V0E5Rm1CckI7RUFBcUNxRCxjQUFhIn0=
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy90ZXJtRm9yVmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVzXCI7XG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgVEVSTV9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeSgnL3Rlcm0vdmFyaWFibGUhJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1Gb3JWYXJpYWJsZU5vZGVzVmVyaWZpZXIgZXh0ZW5kcyBOb2Rlc1ZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIHByb29mQ29udGV4dEEsIHByb29mQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGVBLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlQi5nZXRSdWxlTmFtZSgpO1xuXG4gICAgaWYgKG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSA9PT0gbm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBUnVsZU5hbWVUZXJtUnVsZU5hbWUgPSAobm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lID09PSBURVJNX1JVTEVfTkFNRSksXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWVUZXJtUnVsZU5hbWUgPSAobm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lID09PSBURVJNX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChub25UZXJtaW5hbE5vZGVBUnVsZU5hbWVUZXJtUnVsZU5hbWUgJiYgbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lVGVybVJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsICAvLy9cbiAgICAgICAgICAgICAgdGVybU5vZGVCID0gbm9uVGVybWluYWxOb2RlQiwgIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgcHJvb2ZDb250ZXh0QSwgcHJvb2ZDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIGlmICh0ZXJtTm9kZVZlcmlmaWVkKSB7XG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB0cnVlOyAgLy8vXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgcHJvb2ZDb250ZXh0QSwgcHJvb2ZDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN1cGVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBwcm9vZkNvbnRleHRBLCBwcm9vZkNvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VGVybU5vZGUodGVybU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIHByb29mQ29udGV4dEEsIHByb29mQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IHRlcm1Ob2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlTm9kZUEgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZUEpO1xuXG4gICAgaWYgKHZhcmlhYmxlTm9kZUEgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIHByb29mQ29udGV4dEEsIHByb29mQ29udGV4dEIsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHZhcmlhYmxlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgcHJvb2ZDb250ZXh0QSwgcHJvb2ZDb250ZXh0QiwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lQSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlQSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHN1YnN0aXR1dGlvbi5nZXRWYXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlTmFtZSA9PT0gdmFyaWFibGVOYW1lQSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZXNWZXJpZmllZCA9IHN1YnN0aXR1dGlvbi5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbk5vZGVzVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7ICAvLy9cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBjcmVhdGVTdWJzdGl0dXRpb25zIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgICBpZiAoY3JlYXRlU3Vic3RpdHV0aW9ucykge1xuICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVBLCAvLy9cbiAgICAgICAgICAgICAgcHJvb2ZDb250ZXh0ID0gcHJvb2ZDb250ZXh0QSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlID0gcHJvb2ZDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICAgICAgICBjb250ZXh0ID0gcHJvb2ZDb250ZXh0QiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHR5cGVzLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tVmFyaWFibGVOYW1lQW5kVGVybU5vZGUodmFyaWFibGVOYW1lLCB0ZXJtTm9kZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXJpYWJsZVZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVWZXJpZmllZDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRlcm1Gb3JWYXJpYWJsZU5vZGVzVmVyaWZpZXIiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwic3Vic3RpdHV0aW9ucyIsInByb29mQ29udGV4dEEiLCJwcm9vZkNvbnRleHRCIiwidmVyaWZ5QWhlYWQiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lVGVybVJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJub25UZXJtaW5hbE5vZGVCUnVsZU5hbWVUZXJtUnVsZU5hbWUiLCJ0ZXJtTm9kZUEiLCJ0ZXJtTm9kZUIiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybU5vZGUiLCJ2YXJpYWJsZU5vZGVBIiwidmFyaWFibGVWZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTmFtZUEiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uIiwiZmluZCIsInZhcmlhYmxlTmFtZSIsImdldFZhcmlhYmxlTmFtZSIsInRlcm1Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZXNWZXJpZmllZCIsIm1hdGNoVGVybU5vZGUiLCJ2ZXJpZmllZEFoZWFkIiwiY3JlYXRlU3Vic3RpdHV0aW9ucyIsImNvbnN0cnVjdG9yIiwicHJvb2ZDb250ZXh0IiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInR5cGVzIiwiY29udGV4dCIsInRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJmaXJzdFR5cGUiLCJmaXJzdCIsInRlcm1UeXBlIiwidmFyaWFibGVUeXBlIiwiZ2V0VHlwZSIsInZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwidGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVZhcmlhYmxlTmFtZUFuZFRlcm1Ob2RlIiwicHVzaCIsInBvcCIsIk5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBYXFCQTs7OzJEQVhFOzREQUNHO3NFQUNjO3FCQUVsQjtxQkFDSTt5QkFDSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRy9CLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixJQUFBLEFBQU1GLDZDQUFOO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CRyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLFdBQVc7Z0JBQ2hILElBQUlDLDBC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
|
package/lib/verify/file.js
CHANGED
|
@@ -26,7 +26,7 @@ function verifyFile(filePath, releaseContext) {
|
|
|
26
26
|
} else {
|
|
27
27
|
var errorNodes = errorNodesQuery(node), errorNodesLength = errorNodes.length;
|
|
28
28
|
if (errorNodesLength > 0) {
|
|
29
|
-
releaseContext.
|
|
29
|
+
releaseContext.warning("The '".concat(filePath, "' file cannot be verified because it contains errors."));
|
|
30
30
|
} else {
|
|
31
31
|
var topLevelDeclarationNodes = topLevelDeclarationNodesQuery(node), topLevelDeclarationsVerified = topLevelDeclarationNodes.every(function(topLevelDeclarationNode) {
|
|
32
32
|
var topLevelDeclarationVerified = (0, _topLevel.default)(topLevelDeclarationNode, fileContext);
|
|
@@ -46,4 +46,4 @@ function verifyFile(filePath, releaseContext) {
|
|
|
46
46
|
return fileVerified;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIGZyb20gXCIuL2RlY2xhcmF0aW9uL3RvcExldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvZXJyb3JcIiksXG4gICAgICB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvdG9wTGV2ZWxEZWNsYXJhdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RmlsZShmaWxlUGF0aCwgcmVsZWFzZUNvbnRleHQpIHtcbiAgbGV0IGZpbGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHJlbGVhc2VDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2ZpbGVQYXRofScgZmlsZS4uLmApO1xuXG4gIGNvbnN0IGZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGVQYXRoQW5kUmVsZWFzZUNvbnRleHQoZmlsZVBhdGgsIHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgbm9kZSA9IGZpbGVDb250ZXh0LmdldE5vZGUoKTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgIGZpbGVWZXJpZmllZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZXJyb3JOb2RlcyA9IGVycm9yTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgICBlcnJvck5vZGVzTGVuZ3RoID0gZXJyb3JOb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoZXJyb3JOb2Rlc0xlbmd0aCA+
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIGZyb20gXCIuL2RlY2xhcmF0aW9uL3RvcExldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvZXJyb3JcIiksXG4gICAgICB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvdG9wTGV2ZWxEZWNsYXJhdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RmlsZShmaWxlUGF0aCwgcmVsZWFzZUNvbnRleHQpIHtcbiAgbGV0IGZpbGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHJlbGVhc2VDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2ZpbGVQYXRofScgZmlsZS4uLmApO1xuXG4gIGNvbnN0IGZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGVQYXRoQW5kUmVsZWFzZUNvbnRleHQoZmlsZVBhdGgsIHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgbm9kZSA9IGZpbGVDb250ZXh0LmdldE5vZGUoKTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgIGZpbGVWZXJpZmllZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZXJyb3JOb2RlcyA9IGVycm9yTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgICBlcnJvck5vZGVzTGVuZ3RoID0gZXJyb3JOb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoZXJyb3JOb2Rlc0xlbmd0aCA+IDApIHtcbiAgICAgIHJlbGVhc2VDb250ZXh0Lndhcm5pbmcoYFRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY2Fubm90IGJlIHZlcmlmaWVkIGJlY2F1c2UgaXQgY29udGFpbnMgZXJyb3JzLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMgPSB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgICAgIHRvcExldmVsRGVjbGFyYXRpb25zVmVyaWZpZWQgPSB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMuZXZlcnkoKHRvcExldmVsRGVjbGFyYXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeVRvcExldmVsRGVjbGFyYXRpb24odG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgICAgICBpZiAodG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodG9wTGV2ZWxEZWNsYXJhdGlvbnNWZXJpZmllZCkge1xuICAgICAgICByZWxlYXNlQ29udGV4dC5hZGRGaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgZmlsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZmlsZVZlcmlmaWVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke2ZpbGVQYXRofScgZmlsZS5gKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RmlsZSIsImVycm9yTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeSIsImZpbGVQYXRoIiwicmVsZWFzZUNvbnRleHQiLCJmaWxlVmVyaWZpZWQiLCJkZWJ1ZyIsImZpbGVDb250ZXh0IiwiRmlsZUNvbnRleHQiLCJmcm9tRmlsZVBhdGhBbmRSZWxlYXNlQ29udGV4dCIsIm5vZGUiLCJnZXROb2RlIiwiZXJyb3JOb2RlcyIsImVycm9yTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJ3YXJuaW5nIiwidG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGVzIiwidG9wTGV2ZWxEZWNsYXJhdGlvbnNWZXJpZmllZCIsImV2ZXJ5IiwidG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGUiLCJ0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIiwiYWRkRmlsZUNvbnRleHQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7OzJEQVJBOytEQUNjO3FCQUVYOzs7Ozs7QUFFM0IsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG9CQUM3QkMsZ0NBQWdDRCxJQUFBQSxpQkFBVSxFQUFDO0FBRWxDLFNBQVNGLFdBQVdJLFFBQVEsRUFBRUMsY0FBYztJQUN6RCxJQUFJQyxlQUFlO0lBRW5CRCxlQUFlRSxLQUFLLENBQUMsQUFBQyxrQkFBMEIsT0FBVEgsVUFBUztJQUVoRCxJQUFNSSxjQUFjQyxhQUFXLENBQUNDLDZCQUE2QixDQUFDTixVQUFVQyxpQkFDbEVNLE9BQU9ILFlBQVlJLE9BQU87SUFFaEMsSUFBSUQsU0FBUyxNQUFNO1FBQ2pCTCxlQUFlO0lBQ2pCLE9BQU87UUFDTCxJQUFNTyxhQUFhWixnQkFBZ0JVLE9BQzdCRyxtQkFBbUJELFdBQVdFLE1BQU07UUFFMUMsSUFBSUQsbUJBQW1CLEdBQUc7WUFDeEJULGVBQWVXLE9BQU8sQ0FBQyxBQUFDLFFBQWdCLE9BQVRaLFVBQVM7UUFDMUMsT0FBTztZQUNMLElBQU1hLDJCQUEyQmQsOEJBQThCUSxPQUN6RE8sK0JBQStCRCx5QkFBeUJFLEtBQUssQ0FBQyxTQUFDQztnQkFDN0QsSUFBTUMsOEJBQThCQyxJQUFBQSxpQkFBeUIsRUFBQ0YseUJBQXlCWjtnQkFFdkYsSUFBSWEsNkJBQTZCO29CQUMvQixPQUFPO2dCQUNUO1lBQ0Y7WUFFTixJQUFJSCw4QkFBOEI7Z0JBQ2hDYixlQUFla0IsY0FBYyxDQUFDZjtnQkFFOUJGLGVBQWU7WUFDakI7UUFDRjtJQUNGO0lBRUEsSUFBSUEsY0FBYztRQUNoQkQsZUFBZW1CLElBQUksQ0FBQyxBQUFDLG9CQUE0QixPQUFUcEIsVUFBUztJQUNuRDtJQUVBLE9BQU9FO0FBQ1QifQ==
|
package/lib/verify/label.js
CHANGED
|
@@ -22,7 +22,7 @@ function verifyLabel(labelNode, labels, fileContext) {
|
|
|
22
22
|
var labelPresent = fileContext.isLabelPresentByLabelName(labelName);
|
|
23
23
|
if (labelPresent) {
|
|
24
24
|
var labelString1 = fileContext.nodeAsString(labelNode);
|
|
25
|
-
fileContext.
|
|
25
|
+
fileContext.debug("The '".concat(labelString1, "' label is already present."), labelNode);
|
|
26
26
|
} else {
|
|
27
27
|
var label = _label.default.fromLabelNode(labelNode);
|
|
28
28
|
labels.push(label);
|
|
@@ -34,4 +34,4 @@ function verifyLabel(labelNode, labels, fileContext) {
|
|
|
34
34
|
return labelVerified;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbGFiZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMYWJlbCBmcm9tIFwiLi4vbGFiZWxcIjtcblxuaW1wb3J0IHsgbGFiZWxOYW1lRnJvbUxhYmVsTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5TGFiZWwobGFiZWxOb2RlLCBsYWJlbHMsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBsYWJlbFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOYW1lID0gbGFiZWxOYW1lRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhsYWJlbE5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gLCBsYWJlbE5vZGUpO1xuXG4gIGNvbnN0IGxhYmVsUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5hbWUobGFiZWxOYW1lKTtcblxuICBpZiAobGFiZWxQcmVzZW50KSB7XG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobGFiZWxOb2RlKTtcblxuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbGFiZWxOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBsYWJlbCA9IExhYmVsLmZyb21MYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgIGxhYmVscy5wdXNoKGxhYmVsKTtcblxuICAgIGxhYmVsVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGxhYmVsVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCwgbGFiZWxOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBsYWJlbFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUxhYmVsIiwibGFiZWxOb2RlIiwibGFiZWxzIiwiZmlsZUNvbnRleHQiLCJsYWJlbFZlcmlmaWVkIiwibGFiZWxOYW1lIiwibGFiZWxOYW1lRnJvbUxhYmVsTm9kZSIsImxhYmVsU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJsYWJlbFByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOYW1lIiwiZGVidWciLCJsYWJlbCIsIkxhYmVsIiwiZnJvbUxhYmVsTm9kZSIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBd0JBOzs7NERBSk47cUJBRXFCOzs7Ozs7QUFFeEIsU0FBU0EsWUFBWUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVc7SUFDaEUsSUFBSUMsZ0JBQWdCO0lBRXBCLElBQU1DLFlBQVlDLElBQUFBLDZCQUFzQixFQUFDTCxZQUNuQ00sY0FBY0osWUFBWUssWUFBWSxDQUFDUDtJQUU3Q0UsWUFBWU0sS0FBSyxDQUFDLEFBQUMsa0JBQTZCLE9BQVpGLGFBQVksZUFBYU47SUFFN0QsSUFBTVMsZUFBZVAsWUFBWVEseUJBQXlCLENBQUNOO0lBRTNELElBQUlLLGNBQWM7UUFDaEIsSUFBTUgsZUFBY0osWUFBWUssWUFBWSxDQUFDUDtRQUU3Q0UsWUFBWVMsS0FBSyxDQUFDLEFBQUMsUUFBbUIsT0FBWkwsY0FBWSxnQ0FBOEJOO0lBQ3RFLE9BQU87UUFDTCxJQUFNWSxRQUFRQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ2Q7UUFFbENDLE9BQU9jLElBQUksQ0FBQ0g7UUFFWlQsZ0JBQWdCO0lBQ2xCO0lBRUEsSUFBSUEsZUFBZTtRQUNqQkQsWUFBWVMsS0FBSyxDQUFDLEFBQUMsb0JBQStCLE9BQVpMLGFBQVksYUFBV047SUFDL0Q7SUFFQSxPQUFPRztBQUNUIn0=
|
|
@@ -14,7 +14,7 @@ function _interop_require_default(obj) {
|
|
|
14
14
|
default: obj
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function verifyMetastatement(metastatementNode, derived, metaproofContext
|
|
17
|
+
function verifyMetastatement(metastatementNode, derived, metaproofContext) {
|
|
18
18
|
var metastatementVerified;
|
|
19
19
|
var metastatementString = metaproofContext.nodeAsString(metastatementNode);
|
|
20
20
|
metaproofContext.trace("Verifying the '".concat(metastatementString, "' metastatement..."), metastatementNode);
|
|
@@ -22,7 +22,7 @@ function verifyMetastatement(metastatementNode, derived, metaproofContext, verif
|
|
|
22
22
|
verifyStandaloneMetastatement
|
|
23
23
|
];
|
|
24
24
|
metastatementVerified = verifyMetastatementFunctions.some(function(verifyStatementFunction) {
|
|
25
|
-
var metastatementVerified = verifyStatementFunction(metastatementNode, derived, metaproofContext
|
|
25
|
+
var metastatementVerified = verifyStatementFunction(metastatementNode, derived, metaproofContext);
|
|
26
26
|
if (metastatementVerified) {
|
|
27
27
|
return true;
|
|
28
28
|
}
|
|
@@ -36,11 +36,14 @@ Object.assign(verifyMetastatement, {
|
|
|
36
36
|
metastatementNodeVerifier: _metastatement.default
|
|
37
37
|
});
|
|
38
38
|
var _default = verifyMetastatement;
|
|
39
|
-
function verifyStandaloneMetastatement(metastatementNode, derived, metaproofContext
|
|
39
|
+
function verifyStandaloneMetastatement(metastatementNode, derived, metaproofContext) {
|
|
40
40
|
var standaloneMetastatementVerified;
|
|
41
41
|
var metastatementString = metaproofContext.nodeAsString(metastatementNode);
|
|
42
42
|
metaproofContext.trace("Verifying the '".concat(metastatementString, "' standalone metastatement..."), metastatementNode);
|
|
43
|
-
var nonTerminalNode = metastatementNode, nonTerminalNodeVerified = _metastatement.default.verifyNonTerminalNode(nonTerminalNode, metaproofContext)
|
|
43
|
+
var nonTerminalNode = metastatementNode, nonTerminalNodeVerified = _metastatement.default.verifyNonTerminalNode(nonTerminalNode, metaproofContext, function() {
|
|
44
|
+
var verifiedAhead = true;
|
|
45
|
+
return verifiedAhead;
|
|
46
|
+
});
|
|
44
47
|
standaloneMetastatementVerified = nonTerminalNodeVerified; ///
|
|
45
48
|
if (standaloneMetastatementVerified) {
|
|
46
49
|
metaproofContext.debug("...verified the '".concat(metastatementString, "' standalone metastatement."), metastatementNode);
|
|
@@ -48,4 +51,4 @@ function verifyStandaloneMetastatement(metastatementNode, derived, metaproofCont
|
|
|
48
51
|
return standaloneMetastatementVerified;
|
|
49
52
|
}
|
|
50
53
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGUvbWV0YXN0YXRlbWVudFwiO1xuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG1ldGFwcm9vZkNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBtZXRhcHJvb2ZDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50Li4uYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeU1ldGFzdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5U3RhbmRhbG9uZU1ldGFzdGF0ZW1lbnRcbiAgXTtcblxuICBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhc3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24obWV0YXN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbWV0YXByb29mQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50LmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24odmVyaWZ5TWV0YXN0YXRlbWVudCwge1xuICBtZXRhc3RhdGVtZW50Tm9kZVZlcmlmaWVyXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5TWV0YXN0YXRlbWVudDtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhbmRhbG9uZU1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHN0YW5kYWxvbmVNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG1ldGFwcm9vZkNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBtZXRhcHJvb2ZDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBzdGFuZGFsb25lIG1ldGFzdGF0ZW1lbnQuLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgbWV0YXByb29mQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHN0YW5kYWxvbmVNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbWV0YXByb29mQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBzdGFuZGFsb25lIG1ldGFzdGF0ZW1lbnQuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbn0iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwiZGVyaXZlZCIsIm1ldGFwcm9vZkNvbnRleHQiLCJtZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhbmRhbG9uZU1ldGFzdGF0ZW1lbnQiLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsIm1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIiLCJzdGFuZGFsb25lTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQ0E7OztlQUFBOzs7b0VBaENzQzs7Ozs7O0FBRXRDLFNBQVNBLG9CQUFvQkMsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQ3ZFLElBQUlDO0lBRUosSUFBTUMsc0JBQXNCRixpQkFBaUJHLFlBQVksQ0FBQ0w7SUFFMURFLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0IsdUJBQXFCSjtJQUVsRixJQUFNTywrQkFBK0I7UUFDbkNDO0tBQ0Q7SUFFREwsd0JBQXdCSSw2QkFBNkJFLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNUCx3QkFBd0JPLHdCQUF3QlYsbUJBQW1CQyxTQUFTQztRQUVsRixJQUFJQyx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSx1QkFBdUI7UUFDekJELGlCQUFpQlMsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUCxxQkFBb0IscUJBQW1CSjtJQUNwRjtJQUVBLE9BQU9HO0FBQ1Q7QUFFQVMsT0FBT0MsTUFBTSxDQUFDZCxxQkFBcUI7SUFDakNlLDJCQUFBQSxzQkFBeUI7QUFDM0I7SUFFQSxXQUFlZjtBQUVmLFNBQVNTLDhCQUE4QlIsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQ2pGLElBQUlhO0lBRUosSUFBTVgsc0JBQXNCRixpQkFBaUJHLFlBQVksQ0FBQ0w7SUFFMURFLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0Isa0NBQWdDSjtJQUU3RixJQUFNZ0Isa0JBQWtCaEIsbUJBQ2xCaUIsMEJBQTBCSCxzQkFBeUIsQ0FBQ0kscUJBQXFCLENBQUNGLGlCQUFpQmQsa0JBQWtCO1FBQzNHLElBQU1pQixnQkFBZ0I7UUFFdEIsT0FBT0E7SUFDVDtJQUVOSixrQ0FBa0NFLHlCQUEwQixHQUFHO0lBRS9ELElBQUlGLGlDQUFpQztRQUNuQ2IsaUJBQWlCUyxLQUFLLENBQUMsQUFBQyxvQkFBdUMsT0FBcEJQLHFCQUFvQixnQ0FBOEJKO0lBQy9GO0lBRUEsT0FBT2U7QUFFVCJ9
|
|
@@ -21,7 +21,7 @@ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
|
|
|
21
21
|
fileContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."), metavariableNode);
|
|
22
22
|
var metavariableName = (0, _query.metavariableNameFromMetavariableNode)(metavariableNode), metavariablePresent = fileContext.isMetavariablePresentByMetavariableName(metavariableName);
|
|
23
23
|
if (metavariablePresent) {
|
|
24
|
-
fileContext.
|
|
24
|
+
fileContext.debug("The metavariable '".concat(metavariableName, "' is already present."), metavariableNode);
|
|
25
25
|
} else {
|
|
26
26
|
var metaTypeName = (0, _query.metaTypeNameFromMetaTypeNode)(metaTypeNode), metaType = fileContext.findMetaTypeByMetaTypeName(metaTypeName), name = metavariableName, metavariable = _metavariable.default.fromNameAndMetaType(name, metaType);
|
|
27
27
|
fileContext.addMetavariable(metavariable);
|
|
@@ -33,4 +33,4 @@ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
|
|
|
33
33
|
return metavariableVerified;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSwgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZU5hbWV9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWV0YVR5cGVOYW1lID0gbWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZShtZXRhVHlwZU5vZGUpLFxuICAgICAgICAgIG1ldGFUeXBlID0gZmlsZUNvbnRleHQuZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKSxcbiAgICAgICAgICBuYW1lID0gbWV0YXZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTmFtZUFuZE1ldGFUeXBlKG5hbWUsIG1ldGFUeXBlKTtcblxuICAgIGZpbGVDb250ZXh0LmFkZE1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpO1xuXG4gICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlTm9kZSIsImZpbGVDb250ZXh0IiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwiZGVidWciLCJtZXRhVHlwZU5hbWUiLCJtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlIiwibWV0YVR5cGUiLCJmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZSIsIm5hbWUiLCJtZXRhdmFyaWFibGUiLCJNZXRhdmFyaWFibGUiLCJmcm9tTmFtZUFuZE1ldGFUeXBlIiwiYWRkTWV0YXZhcmlhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O21FQUpDO3FCQUUwRDs7Ozs7O0FBRXBFLFNBQVNBLG1CQUFtQkMsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUNwRixJQUFJQyx1QkFBdUI7SUFFM0IsSUFBTUMscUJBQXFCRixZQUFZRyxZQUFZLENBQUNMO0lBRXBERSxZQUFZSSxLQUFLLENBQUMsQUFBQyxrQkFBb0MsT0FBbkJGLG9CQUFtQixzQkFBb0JKO0lBRTNFLElBQU1PLG1CQUFtQkMsSUFBQUEsMkNBQW9DLEVBQUNSLG1CQUN4RFMsc0JBQXNCUCxZQUFZUSx1Q0FBdUMsQ0FBQ0g7SUFFaEYsSUFBSUUscUJBQXFCO1FBQ3ZCUCxZQUFZUyxLQUFLLENBQUMsQUFBQyxxQkFBcUMsT0FBakJKLGtCQUFpQiwwQkFBd0JQO0lBQ2xGLE9BQU87UUFDTCxJQUFNWSxlQUFlQyxJQUFBQSxtQ0FBNEIsRUFBQ1osZUFDNUNhLFdBQVdaLFlBQVlhLDBCQUEwQixDQUFDSCxlQUNsREksT0FBT1Qsa0JBQ1BVLGVBQWVDLHFCQUFZLENBQUNDLG1CQUFtQixDQUFDSCxNQUFNRjtRQUU1RFosWUFBWWtCLGVBQWUsQ0FBQ0g7UUFFNUJkLHVCQUF1QjtJQUN6QjtJQUVBLElBQUlBLHNCQUFzQjtRQUN4QkQsWUFBWVMsS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CUCxvQkFBbUIsb0JBQWtCSjtJQUM3RTtJQUVBLE9BQU9HO0FBQ1QifQ==
|
package/lib/verify/statement.js
CHANGED
|
@@ -12,22 +12,16 @@ _export(exports, {
|
|
|
12
12
|
default: function() {
|
|
13
13
|
return _default;
|
|
14
14
|
},
|
|
15
|
-
verifyStatementAgainstCombinator: function() {
|
|
16
|
-
return verifyStatementAgainstCombinator;
|
|
17
|
-
},
|
|
18
15
|
verifyStatementAgainstCombinators: function() {
|
|
19
16
|
return verifyStatementAgainstCombinators;
|
|
20
17
|
}
|
|
21
18
|
});
|
|
22
19
|
var _equality = /*#__PURE__*/ _interop_require_default(require("../equality"));
|
|
23
|
-
var
|
|
24
|
-
var _equality1 = /*#__PURE__*/ _interop_require_default(require("../ocmbinator/equality"));
|
|
20
|
+
var _terms = /*#__PURE__*/ _interop_require_default(require("../verify/terms"));
|
|
25
21
|
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../ocmbinator/bracketed"));
|
|
26
|
-
var
|
|
27
|
-
var _type = /*#__PURE__*/ _interop_require_default(require("../verify/assertion/type"));
|
|
22
|
+
var _typeAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/typeAssertion"));
|
|
28
23
|
var _statement = /*#__PURE__*/ _interop_require_default(require("../verifier/nodes/statement"));
|
|
29
24
|
var _query = require("../utilities/query");
|
|
30
|
-
var _array = require("../utilities/array");
|
|
31
25
|
function _array_like_to_array(arr, len) {
|
|
32
26
|
if (len == null || len > arr.length) len = arr.length;
|
|
33
27
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -58,14 +52,13 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
58
52
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
59
53
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
60
54
|
}
|
|
61
|
-
var
|
|
55
|
+
var typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!");
|
|
62
56
|
function verifyStatement(statementNode, assignments, derived, context, verifyAhead) {
|
|
63
57
|
var statementVerified;
|
|
64
58
|
var statementString = context.nodeAsString(statementNode);
|
|
65
59
|
context.trace("Verifying the '".concat(statementString, "' statement..."), statementNode);
|
|
66
60
|
var verifyStatementFunctions = [
|
|
67
61
|
verifyStatementAsEquality,
|
|
68
|
-
verifyStatementAsTypeInference,
|
|
69
62
|
verifyStatementAsTypeAssertion,
|
|
70
63
|
verifyStatementAgainstCombinators
|
|
71
64
|
];
|
|
@@ -109,101 +102,67 @@ function verifyStatementAgainstCombinator(statementNode, combinator, context, ve
|
|
|
109
102
|
}
|
|
110
103
|
return statementVerifiedAgainstCombinator;
|
|
111
104
|
}
|
|
112
|
-
function verifyStatementAsTypeInference(statementNode, assignments, derived, context, verifyAhead) {
|
|
113
|
-
var statementVerifiedAsTypeInference = false;
|
|
114
|
-
var statementString = context.nodeAsString(statementNode);
|
|
115
|
-
context.trace("Verifying the '".concat(statementString, "' statement as a type inference..."), statementNode);
|
|
116
|
-
var typeInferenceNode = typeInferenceNodeQuery(statementNode);
|
|
117
|
-
if (typeInferenceNode !== null) {
|
|
118
|
-
if (!derived) {
|
|
119
|
-
var typeInferenceString = context.nodeAsString(typeInferenceNode);
|
|
120
|
-
context.info("The '".concat(typeInferenceString, "' type inference can only be derived."), typeInferenceNode);
|
|
121
|
-
} else {
|
|
122
|
-
var typeInferenceVerified = (0, _typeInference.default)(typeInferenceNode, context, verifyAhead);
|
|
123
|
-
statementVerifiedAsTypeInference = typeInferenceVerified; ///
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (statementVerifiedAsTypeInference) {
|
|
127
|
-
context.debug("...verified the '".concat(statementString, "' statement as a type inference."), statementNode);
|
|
128
|
-
}
|
|
129
|
-
return statementVerifiedAsTypeInference;
|
|
130
|
-
}
|
|
131
105
|
function verifyStatementAsTypeAssertion(statementNode, assignments, derived, context, verifyAhead) {
|
|
132
106
|
var statementVerifiedAsTypeAssertion = false;
|
|
133
|
-
var statementString = context.nodeAsString(statementNode);
|
|
134
|
-
context.trace("Verifying the '".concat(statementString, "' statement as a type assertion..."), statementNode);
|
|
135
107
|
var typeAssertionNode = typeAssertionNodeQuery(statementNode);
|
|
136
108
|
if (typeAssertionNode !== null) {
|
|
137
|
-
var
|
|
109
|
+
var statementString = context.nodeAsString(statementNode);
|
|
110
|
+
context.trace("Verifying the '".concat(statementString, "' statement as a type assertion..."), statementNode);
|
|
111
|
+
var typeAssertionVerified = (0, _typeAssertion.default)(typeAssertionNode, assignments, derived, context, verifyAhead);
|
|
138
112
|
statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
113
|
+
if (statementVerifiedAsTypeAssertion) {
|
|
114
|
+
context.debug("...verified the '".concat(statementString, "' statement as a type assertion."), statementNode);
|
|
115
|
+
}
|
|
142
116
|
}
|
|
143
117
|
return statementVerifiedAsTypeAssertion;
|
|
144
118
|
}
|
|
145
119
|
function verifyStatementAsEquality(statementNode, assignments, derived, context, verifyAhead) {
|
|
146
|
-
var statementVerifiedAsEquality;
|
|
147
|
-
var
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
120
|
+
var statementVerifiedAsEquality = false;
|
|
121
|
+
var equality = _equality.default.fromStatementNode(statementNode);
|
|
122
|
+
if (equality !== null) {
|
|
123
|
+
var statementString = context.nodeAsString(statementNode);
|
|
124
|
+
context.trace("Verifying the '".concat(statementString, "' statement as an equality..."), statementNode);
|
|
151
125
|
var verifyStatementAsEqualityFunctions = [
|
|
152
126
|
verifyStatementAsDerivedEquality,
|
|
153
|
-
|
|
127
|
+
verifyStatementAsStandaloneEquality
|
|
154
128
|
];
|
|
155
|
-
|
|
156
|
-
var statementVerified = verifyStatementAsEqualityFunction(statementNode, derived, context, verifyAhead);
|
|
129
|
+
statementVerifiedAsEquality = verifyStatementAsEqualityFunctions.some(function(verifyStatementAsEqualityFunction) {
|
|
130
|
+
var statementVerified = verifyStatementAsEqualityFunction(statementNode, equality, derived, context, verifyAhead);
|
|
157
131
|
if (statementVerified) {
|
|
158
132
|
return true;
|
|
159
133
|
}
|
|
160
134
|
});
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (statementVerifiedAsEquality) {
|
|
165
|
-
context.debug("...verified the '".concat(statementString, "' statement as an equality."), statementNode);
|
|
135
|
+
if (statementVerifiedAsEquality) {
|
|
136
|
+
context.debug("...verified the '".concat(statementString, "' statement as an equality."), statementNode);
|
|
137
|
+
}
|
|
166
138
|
}
|
|
167
139
|
return statementVerifiedAsEquality;
|
|
168
140
|
}
|
|
169
|
-
function verifyStatementAsDerivedEquality(statementNode, derived, context, verifyAhead) {
|
|
141
|
+
function verifyStatementAsDerivedEquality(statementNode, equality, derived, context, verifyAhead) {
|
|
170
142
|
var verifiedStatementAsDerivedEquality = false;
|
|
171
|
-
var statementString = context.nodeAsString(statementNode);
|
|
172
|
-
context.trace("Verifying the '".concat(statementString, "' statement as a derived equality..."), statementNode);
|
|
173
143
|
if (derived) {
|
|
174
|
-
var
|
|
144
|
+
var statementString = context.nodeAsString(statementNode);
|
|
145
|
+
context.trace("Verifying the '".concat(statementString, "' derived equality..."), statementNode);
|
|
146
|
+
var equalities = context.getEqualities(), equalityVerified = equality.verify(equalities, context, verifyAhead);
|
|
175
147
|
verifiedStatementAsDerivedEquality = equalityVerified; ///
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
148
|
+
if (verifiedStatementAsDerivedEquality) {
|
|
149
|
+
context.debug("...verified the '".concat(statementString, "' derived equality."), statementNode);
|
|
150
|
+
}
|
|
179
151
|
}
|
|
180
152
|
return verifiedStatementAsDerivedEquality;
|
|
181
153
|
}
|
|
182
|
-
function
|
|
183
|
-
var
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
var leftTypeName = leftType.getName(), rightTypeName = rightType.getName(), leftTermString = context.nodeAsString(leftTermNode), rightTermString = context.nodeAsString(rightTermNode);
|
|
193
|
-
context.info("The left '".concat(leftTermString, "' term's '").concat(leftTypeName, "' type is not equal to, a sub-type of nor a super-type of the right '").concat(rightTermString, "' term's '").concat(rightTypeName, "' type."), statementNode);
|
|
194
|
-
} else {
|
|
195
|
-
verifiedAhead = verifyAhead();
|
|
196
|
-
}
|
|
197
|
-
return verifiedAhead;
|
|
198
|
-
});
|
|
199
|
-
verifiedAhead = rightTermVerified; ///
|
|
200
|
-
return verifiedAhead;
|
|
201
|
-
});
|
|
202
|
-
statementVerifiedAsEqualTerms = leftTermVerified; ///
|
|
203
|
-
if (statementVerifiedAsEqualTerms) {
|
|
204
|
-
context.trace("...verified the '".concat(statementString, "' statement as equal terms."), statementNode);
|
|
154
|
+
function verifyStatementAsStandaloneEquality(statementNode, equality, derived, context, verifyAhead) {
|
|
155
|
+
var statementVerifiedAsStandaloneEquality = false;
|
|
156
|
+
if (!derived) {
|
|
157
|
+
var statementString = context.nodeAsString(statementNode);
|
|
158
|
+
context.trace("Verifying the '".concat(statementString, "' statement as a standalone equality..."), statementNode);
|
|
159
|
+
var leftTermNode = equality.getLeftTermNode(), rightTermNode = equality.getRightTermNode(), termsVerified = (0, _terms.default)(leftTermNode, rightTermNode, context, verifyAhead);
|
|
160
|
+
statementVerifiedAsStandaloneEquality = termsVerified; ///
|
|
161
|
+
if (statementVerifiedAsStandaloneEquality) {
|
|
162
|
+
context.trace("...verified the '".concat(statementString, "' statement as a standalone equality."), statementNode);
|
|
163
|
+
}
|
|
205
164
|
}
|
|
206
|
-
return
|
|
165
|
+
return statementVerifiedAsStandaloneEquality;
|
|
207
166
|
}
|
|
208
167
|
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBlcXVhbGl0eUNvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvZXF1YWxpdHlcIjtcbmltcG9ydCBicmFja2V0ZWRDb21iaW5hdG9yIGZyb20gXCIuLi9vY21iaW5hdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IHZlcmlmeVR5cGVJbmZlcmVuY2UgZnJvbSBcIi4uL3ZlcmlmeS90eXBlSW5mZXJlbmNlXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi90eXBlXCI7XG5pbXBvcnQgc3RhdGVtZW50Tm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmNvbnN0IGxlZnRUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9hcmd1bWVudFswXS90ZXJtIVwiKSxcbiAgICAgIHJpZ2h0VGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvYXJndW1lbnRbMV0vdGVybSFcIiksXG4gICAgICB0eXBlSW5mZXJlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlSW5mZXJlbmNlIVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUluZmVyZW5jZSxcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbih2ZXJpZnlTdGF0ZW1lbnQsIHtcbiAgc3RhdGVtZW50Tm9kZXNWZXJpZmllclxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVN0YXRlbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gY29tYmluYXRvcnMuc29tZSgoY29tYmluYXRvcikgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tYmluYXRvclN0cmluZyA9IGNvbWJpbmF0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3RhdGVtZW50Tm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVJbmZlcmVuY2Uoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUluZmVyZW5jZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBpbmZlcmVuY2UuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB0eXBlSW5mZXJlbmNlTm9kZSA9IHR5cGVJbmZlcmVuY2VOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHR5cGVJbmZlcmVuY2VOb2RlICE9PSBudWxsKSB7XG4gICAgaWYgKCFkZXJpdmVkKSB7XG4gICAgICBjb25zdCB0eXBlSW5mZXJlbmNlU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUluZmVyZW5jZU5vZGUpO1xuXG4gICAgICBjb250ZXh0LmluZm8oYFRoZSAnJHt0eXBlSW5mZXJlbmNlU3RyaW5nfScgdHlwZSBpbmZlcmVuY2UgY2FuIG9ubHkgYmUgZGVyaXZlZC5gLCB0eXBlSW5mZXJlbmNlTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVJbmZlcmVuY2VWZXJpZmllZCA9IHZlcmlmeVR5cGVJbmZlcmVuY2UodHlwZUluZmVyZW5jZU5vZGUsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVJbmZlcmVuY2UgPSB0eXBlSW5mZXJlbmNlVmVyaWZpZWQ7IC8vL1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUluZmVyZW5jZSkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGluZmVyZW5jZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUluZmVyZW5jZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gIH1cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBjb21iaW5hdG9yID0gZXF1YWxpdHlDb21iaW5hdG9yLCAgLy8vXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICBjb25zdCB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5RnVuY3Rpb25zID0gW1xuICAgICAgICAgICAgdmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHksXG4gICAgICAgICAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsVGVybXNcbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHlGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eUZ1bmN0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHlGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yOyAvLy9cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB2ZXJpZmllZFN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5ID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZXJpdmVkIGVxdWFsaXR5Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBlcXVhbGl0eSA9IEVxdWFsaXR5LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIGVxdWFsaXRpZXMgPSBjb250ZXh0LmdldEVxdWFsaXRpZXMoKSxcbiAgICAgICAgICBlcXVhbGl0eVZlcmlmaWVkID0gZXF1YWxpdHkudmVyaWZ5KGVxdWFsaXRpZXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHZlcmlmaWVkU3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHkgPSBlcXVhbGl0eVZlcmlmaWVkOyAgLy8vXG4gIH1cblxuICBpZiAodmVyaWZpZWRTdGF0ZW1lbnRBc0Rlcml2ZWRFcXVhbGl0eSkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZXJpdmVkIGVxdWFsaXR5LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkU3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHk7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxUZXJtcyhzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsVGVybXM7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgZXF1YWwgdGVybXMuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB0eXBlcyA9IFtdLFxuICAgICAgICBsZWZ0VGVybU5vZGUgPSBsZWZ0VGVybU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgbGVmdFRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0obGVmdFRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgICAgY29uc3QgcmlnaHRUZXJtTm9kZSA9IHJpZ2h0VGVybU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgICByaWdodFRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZFR5cGUgPSBzZWNvbmQodHlwZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFR5cGUgPSBmaXJzdFR5cGUsIC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRUeXBlID0gc2Vjb25kVHlwZSwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0VHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFR5cGUgPSBsZWZ0VHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YocmlnaHRUeXBlKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCFsZWZ0VHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFR5cGVOYW1lID0gbGVmdFR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodFR5cGVOYW1lID0gcmlnaHRUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhsZWZ0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhyaWdodFRlcm1Ob2RlKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmluZm8oYFRoZSBsZWZ0ICcke2xlZnRUZXJtU3RyaW5nfScgdGVybSdzICcke2xlZnRUeXBlTmFtZX0nIHR5cGUgaXMgbm90IGVxdWFsIHRvLCBhIHN1Yi10eXBlIG9mIG5vciBhIHN1cGVyLXR5cGUgb2YgdGhlIHJpZ2h0ICcke3JpZ2h0VGVybVN0cmluZ30nIHRlcm0ncyAnJHtyaWdodFR5cGVOYW1lfScgdHlwZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSByaWdodFRlcm1WZXJpZmllZDsgIC8vL1xuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbFRlcm1zID0gbGVmdFRlcm1WZXJpZmllZDsgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbFRlcm1zKSB7XG4gICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBlcXVhbCB0ZXJtcy5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxUZXJtcztcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsImxlZnRUZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicmlnaHRUZXJtTm9kZVF1ZXJ5IiwidHlwZUluZmVyZW5jZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVJbmZlcmVuY2UiLCJ2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlbWVudE5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlSW5mZXJlbmNlIiwidHlwZUluZmVyZW5jZU5vZGUiLCJ0eXBlSW5mZXJlbmNlU3RyaW5nIiwiaW5mbyIsInR5cGVJbmZlcmVuY2VWZXJpZmllZCIsInZlcmlmeVR5cGVJbmZlcmVuY2UiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSIsImVxdWFsaXR5Q29tYmluYXRvciIsInZlcmlmaWVkQWhlYWQiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsVGVybXMiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5RnVuY3Rpb24iLCJ2ZXJpZmllZFN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5IiwiZXF1YWxpdHkiLCJFcXVhbGl0eSIsImZyb21TdGF0ZW1lbnROb2RlIiwiZXF1YWxpdGllcyIsImdldEVxdWFsaXRpZXMiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5Iiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsVGVybXMiLCJ0eXBlcyIsImxlZnRUZXJtTm9kZSIsImxlZnRUZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwicmlnaHRUZXJtTm9kZSIsInJpZ2h0VGVybVZlcmlmaWVkIiwiZmlyc3RUeXBlIiwiZmlyc3QiLCJzZWNvbmRUeXBlIiwic2Vjb25kIiwibGVmdFR5cGUiLCJyaWdodFR5cGUiLCJsZWZ0VHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YiLCJsZWZ0VHlwZU5hbWUiLCJnZXROYW1lIiwicmlnaHRUeXBlTmFtZSIsImxlZnRUZXJtU3RyaW5nIiwicmlnaHRUZXJtU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFtREEsT0FBK0I7ZUFBL0I7O0lBdUJnQkEsZ0NBQWdDO2VBQWhDQTs7SUFyQkFDLGlDQUFpQztlQUFqQ0E7OzsrREFuREs7MkRBQ0U7Z0VBQ1E7Z0VBQ0M7b0VBQ0E7MkRBQ0E7Z0VBQ0c7cUJBRVQ7cUJBQ0k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLGlDQUM5QkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDLGlDQUMvQkUseUJBQXlCRixJQUFBQSxnQkFBUyxFQUFDLDhCQUNu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
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgdmVyaWZ5VGVybXMgZnJvbSBcIi4uL3ZlcmlmeS90ZXJtc1wiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCBzdGF0ZW1lbnROb2Rlc1ZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2Rlcy9zdGF0ZW1lbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSxcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbih2ZXJpZnlTdGF0ZW1lbnQsIHtcbiAgc3RhdGVtZW50Tm9kZXNWZXJpZmllclxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVN0YXRlbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gY29tYmluYXRvcnMuc29tZSgoY29tYmluYXRvcikgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvci5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUEgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdGF0ZW1lbnROb2Rlc1ZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3I7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdHlwZUFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbikge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGVxdWFsaXR5ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eUZ1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeVN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5LFxuICAgICAgdmVyaWZ5U3RhdGVtZW50QXNTdGFuZGFsb25lRXF1YWxpdHlcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eUZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5RnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eUZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGVxdWFsaXR5LCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgZXF1YWxpdHksIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB2ZXJpZmllZFN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5ID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBlcXVhbGl0eS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdGllcyA9IGNvbnRleHQuZ2V0RXF1YWxpdGllcygpLFxuICAgICAgICAgIGVxdWFsaXR5VmVyaWZpZWQgPSBlcXVhbGl0eS52ZXJpZnkoZXF1YWxpdGllcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgdmVyaWZpZWRTdGF0ZW1lbnRBc0Rlcml2ZWRFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7ICAvLy9cblxuICAgIGlmICh2ZXJpZmllZFN0YXRlbWVudEFzRGVyaXZlZEVxdWFsaXR5KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBlcXVhbGl0eS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRTdGF0ZW1lbnRBc0Rlcml2ZWRFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNTdGFuZGFsb25lRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgZXF1YWxpdHksIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhbmRhbG9uZUVxdWFsaXR5ID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN0YW5kYWxvbmUgZXF1YWxpdHkuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGxlZnRUZXJtTm9kZSA9IGVxdWFsaXR5LmdldExlZnRUZXJtTm9kZSgpLFxuICAgICAgICAgIHJpZ2h0VGVybU5vZGUgPSBlcXVhbGl0eS5nZXRSaWdodFRlcm1Ob2RlKCksXG4gICAgICAgICAgdGVybXNWZXJpZmllZCA9IHZlcmlmeVRlcm1zKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1N0YW5kYWxvbmVFcXVhbGl0eSA9IHRlcm1zVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNTdGFuZGFsb25lRXF1YWxpdHkpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdGFuZGFsb25lIGVxdWFsaXR5LmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhbmRhbG9uZUVxdWFsaXR5O1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlbWVudE5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwic3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eSIsIkVxdWFsaXR5IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc1N0YW5kYWxvbmVFcXVhbGl0eSIsInZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHlGdW5jdGlvbiIsInZlcmlmaWVkU3RhdGVtZW50QXNEZXJpdmVkRXF1YWxpdHkiLCJlcXVhbGl0aWVzIiwiZ2V0RXF1YWxpdGllcyIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzU3RhbmRhbG9uZUVxdWFsaXR5IiwibGVmdFRlcm1Ob2RlIiwiZ2V0TGVmdFRlcm1Ob2RlIiwicmlnaHRUZXJtTm9kZSIsImdldFJpZ2h0VGVybU5vZGUiLCJ0ZXJtc1ZlcmlmaWVkIiwidmVyaWZ5VGVybXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTRDQSxPQUErQjtlQUEvQjs7SUFFZ0JBLGlDQUFpQztlQUFqQ0E7OzsrREE1Q0s7NERBQ0c7Z0VBQ1E7b0VBQ0E7Z0VBQ0c7cUJBRVQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUMseUJBQXlCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXpDLFNBQVNDLGdCQUFnQkMsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9B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
|