occam-verify-cli 0.0.1234 → 0.0.1236
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dom/conclusion.js +2 -2
- package/lib/dom/consequent.js +2 -2
- package/lib/dom/frame.js +2 -16
- package/lib/dom/premise.js +2 -10
- package/lib/dom/statement.js +7 -58
- package/lib/dom/supposition.js +2 -10
- package/lib/dom/term.js +2 -17
- package/lib/index.js +1 -2
- package/lib/mixins/statement/verify.js +1 -16
- package/lib/utilities/verification.js +1 -9
- package/package.json +5 -5
- package/src/dom/conclusion.js +2 -2
- package/src/dom/consequent.js +2 -2
- package/src/dom/frame.js +1 -19
- package/src/dom/premise.js +4 -13
- package/src/dom/statement.js +8 -82
- package/src/dom/supposition.js +4 -13
- package/src/dom/term.js +1 -23
- package/src/index.js +0 -1
- package/src/mixins/statement/verify.js +1 -25
- package/src/utilities/verification.js +0 -10
- package/lib/dom/assertion/contained.js +0 -287
- package/src/dom/assertion/contained.js +0 -233
package/src/dom/statement.js
CHANGED
|
@@ -8,22 +8,19 @@ import verifyMixins from "../mixins/statement/verify";
|
|
|
8
8
|
import combinatorVerifier from "../verifier/combinator";
|
|
9
9
|
import StatementPartialContext from "../context/partial/statement";
|
|
10
10
|
|
|
11
|
+
import { nodeQuery } from "../utilities/query";
|
|
11
12
|
import { domAssigned } from "../dom";
|
|
12
13
|
import { unifyStatement } from "../utilities/unification";
|
|
13
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
14
14
|
import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
15
|
-
import { definedAssertionFromStatement, subproofAssertionFromStatement
|
|
15
|
+
import { definedAssertionFromStatement, subproofAssertionFromStatement } from "../utilities/verification";
|
|
16
16
|
|
|
17
17
|
const { match, backwardsSome } = arrayUtilities;
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
statementFrameNodesQuery = nodesQuery("/statement//frame"),
|
|
21
|
-
premiseStatementNodeQuery = nodeQuery("/premise/statement"),
|
|
19
|
+
const premiseStatementNodeQuery = nodeQuery("/premise/statement"),
|
|
22
20
|
proofStepStatementNodeQuery = nodeQuery("/proofStep/statement"),
|
|
23
21
|
conclusionStatementNodeQuery = nodeQuery("/conclusion/statement"),
|
|
24
22
|
consequentStatementNodeQuery = nodeQuery("/consequent/statement"),
|
|
25
|
-
suppositionStatementNodeQuery = nodeQuery("/supposition/statement")
|
|
26
|
-
containedAssertionStatementNodeQuery = nodeQuery("/containedAssertion/statement");
|
|
23
|
+
suppositionStatementNodeQuery = nodeQuery("/supposition/statement");
|
|
27
24
|
|
|
28
25
|
export default domAssigned(class Statement {
|
|
29
26
|
constructor(string, node, tokens) {
|
|
@@ -51,60 +48,6 @@ export default domAssigned(class Statement {
|
|
|
51
48
|
return equalTo;
|
|
52
49
|
}
|
|
53
50
|
|
|
54
|
-
isTermContained(term, context) {
|
|
55
|
-
let termContained;
|
|
56
|
-
|
|
57
|
-
const termString = term.getString(),
|
|
58
|
-
statementString = this.string; ///
|
|
59
|
-
|
|
60
|
-
context.trace(`Is the '${termString}' term contained in the '${statementString}' statement...`);
|
|
61
|
-
|
|
62
|
-
const termNode = term.getNode(),
|
|
63
|
-
statementNode = this.node,
|
|
64
|
-
statementTermNodes = statementTermNodesQuery(statementNode);
|
|
65
|
-
|
|
66
|
-
termContained = statementTermNodes.some((statementTermNode) => { ///
|
|
67
|
-
const termNodeMatchesStatementVariableNode = termNode.match(statementTermNode);
|
|
68
|
-
|
|
69
|
-
if (termNodeMatchesStatementVariableNode) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
if (termContained) {
|
|
75
|
-
context.debug(`...the '${termString}' term is contained in the '${statementString}' statement.`);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return termContained;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
isFrameContained(frame, context) {
|
|
82
|
-
let frameContained;
|
|
83
|
-
|
|
84
|
-
const frameString = frame.getString(),
|
|
85
|
-
statementString = this.string; ///
|
|
86
|
-
|
|
87
|
-
context.trace(`Is the '${frameString}' frame contained in the '${statementString}' statement...`);
|
|
88
|
-
|
|
89
|
-
const frameNode = frame.getNode(),
|
|
90
|
-
statementNode = this.node,
|
|
91
|
-
statementFrameNodes = statementFrameNodesQuery(statementNode);
|
|
92
|
-
|
|
93
|
-
frameContained = statementFrameNodes.some((statementFrameNode) => { ///
|
|
94
|
-
const frameNodeMatchesStatementMetavariableNode = frameNode.match(statementFrameNode);
|
|
95
|
-
|
|
96
|
-
if (frameNodeMatchesStatementMetavariableNode) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
if (frameContained) {
|
|
102
|
-
context.debug(`...the '${frameString}' frame is contained in the '${statementString}' statement.`);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return frameContained;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
51
|
matchStatementNode(statementNode) {
|
|
109
52
|
const statementNodeMatches = this.node.match(statementNode);
|
|
110
53
|
|
|
@@ -170,25 +113,16 @@ export default domAssigned(class Statement {
|
|
|
170
113
|
const context = specificContext, ///
|
|
171
114
|
statement = this; ///
|
|
172
115
|
|
|
173
|
-
const definedAssertion = definedAssertionFromStatement(statement, context)
|
|
174
|
-
containedAssertion = containedAssertionFromStatement(statement, context);
|
|
116
|
+
const definedAssertion = definedAssertionFromStatement(statement, context);
|
|
175
117
|
|
|
176
|
-
if (
|
|
118
|
+
if (definedAssertion !== null) {
|
|
177
119
|
const statementString = this.string;
|
|
178
120
|
|
|
179
121
|
specificContext.trace(`Unifying the '${statementString}' statement independently...`);
|
|
180
122
|
|
|
181
|
-
|
|
182
|
-
const definedAssertionUnifiedIndependently = definedAssertion.unifyIndependently(substitutions, context);
|
|
183
|
-
|
|
184
|
-
unifiedIndependently = definedAssertionUnifiedIndependently; ///
|
|
185
|
-
}
|
|
123
|
+
const definedAssertionUnifiedIndependently = definedAssertion.unifyIndependently(substitutions, context);
|
|
186
124
|
|
|
187
|
-
|
|
188
|
-
const containedAssertionUnifiedIndependently = containedAssertion.unifyIndependently(substitutions, context);
|
|
189
|
-
|
|
190
|
-
unifiedIndependently = containedAssertionUnifiedIndependently; ///
|
|
191
|
-
}
|
|
125
|
+
unifiedIndependently = definedAssertionUnifiedIndependently; ///
|
|
192
126
|
|
|
193
127
|
if (unifiedIndependently) {
|
|
194
128
|
specificContext.debug(`...unified the '${statementString}' statement independently.`);
|
|
@@ -382,14 +316,6 @@ export default domAssigned(class Statement {
|
|
|
382
316
|
|
|
383
317
|
return statement;
|
|
384
318
|
}
|
|
385
|
-
|
|
386
|
-
static fromContainedAssertionNode(containedAssertionNode, context) {
|
|
387
|
-
const containedAssertionStatementNode = containedAssertionStatementNodeQuery(containedAssertionNode),
|
|
388
|
-
statementNode = containedAssertionStatementNode, ///
|
|
389
|
-
statement = statementFromStatementNode(statementNode, context);
|
|
390
|
-
|
|
391
|
-
return statement;
|
|
392
|
-
}
|
|
393
319
|
});
|
|
394
320
|
|
|
395
321
|
function statementFromStatementNode(statementNode, context) {
|
package/src/dom/supposition.js
CHANGED
|
@@ -217,20 +217,11 @@ export default domAssigned(class Supposition {
|
|
|
217
217
|
|
|
218
218
|
static fromSuppositionNode(suppositionNode, fileContext) {
|
|
219
219
|
const { Statement, ProcedureCall } = dom,
|
|
220
|
+
node = suppositionNode, ///
|
|
221
|
+
string = fileContext.nodeAsString(node),
|
|
220
222
|
statement = Statement.fromSuppositionNode(suppositionNode, fileContext),
|
|
221
|
-
procedureCall = ProcedureCall.fromSuppositionNode(suppositionNode, fileContext)
|
|
222
|
-
|
|
223
|
-
let string;
|
|
224
|
-
|
|
225
|
-
if (statement !== null) {
|
|
226
|
-
string = statement.getString();
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
if (procedureCall !== null) {
|
|
230
|
-
string = procedureCall.getString();
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
const supposition = new Supposition(string, statement, procedureCall);
|
|
223
|
+
procedureCall = ProcedureCall.fromSuppositionNode(suppositionNode, fileContext),
|
|
224
|
+
supposition = new Supposition(string, statement, procedureCall);
|
|
234
225
|
|
|
235
226
|
return supposition
|
|
236
227
|
}
|
package/src/dom/term.js
CHANGED
|
@@ -17,8 +17,7 @@ const { filter, compress } = arrayUtilities;
|
|
|
17
17
|
|
|
18
18
|
const variableNodesQuery = nodesQuery("//variable"),
|
|
19
19
|
termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
20
|
-
definedAssertionTermNodeQuery = nodeQuery("/definedAssertion/term")
|
|
21
|
-
containedAssertionTermNodeQuery = nodeQuery("/containedAssertion/term");
|
|
20
|
+
definedAssertionTermNodeQuery = nodeQuery("/definedAssertion/term");
|
|
22
21
|
|
|
23
22
|
export default domAssigned(class Term {
|
|
24
23
|
constructor(string, node, type) {
|
|
@@ -299,25 +298,4 @@ export default domAssigned(class Term {
|
|
|
299
298
|
|
|
300
299
|
return term;
|
|
301
300
|
}
|
|
302
|
-
|
|
303
|
-
static fromContainedAssertionNode(containedAssertionNode, context) {
|
|
304
|
-
let term = null;
|
|
305
|
-
|
|
306
|
-
const containedAssertionTermNode = containedAssertionTermNodeQuery(containedAssertionNode);
|
|
307
|
-
|
|
308
|
-
if (containedAssertionTermNode !== null) {
|
|
309
|
-
const termNode = containedAssertionTermNode, ///
|
|
310
|
-
termVariableNode = termVariableNodeQuery(termNode);
|
|
311
|
-
|
|
312
|
-
if (termVariableNode !== null) {
|
|
313
|
-
const node = termNode, ///
|
|
314
|
-
string = context.nodeAsString(node),
|
|
315
|
-
type = null;
|
|
316
|
-
|
|
317
|
-
term = new Term(string, node, type);
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
return term;
|
|
322
|
-
}
|
|
323
301
|
});
|
package/src/index.js
CHANGED
|
@@ -35,7 +35,6 @@ import TypeAssertion from "./dom/assertion/type";
|
|
|
35
35
|
import TypeDeclaration from "./dom/declaration/type";
|
|
36
36
|
import DefinedAssertion from "./dom/assertion/defined";
|
|
37
37
|
import SubproofAssertion from "./dom/assertion/subproof";
|
|
38
|
-
import ContainedAssertion from "./dom/assertion/contained";
|
|
39
38
|
import VariableDeclaration from "./dom/declaration/variable";
|
|
40
39
|
import CombinatorDeclaration from "./dom/declaration/combinator";
|
|
41
40
|
import ConstructorDeclaration from "./dom/declaration/constructor";
|
|
@@ -7,8 +7,7 @@ import { equalityFromStatement,
|
|
|
7
7
|
metavariableFromStatement,
|
|
8
8
|
typeAssertionFromStatement,
|
|
9
9
|
definedAssertionFromStatement,
|
|
10
|
-
subproofAssertionFromStatement
|
|
11
|
-
containedAssertionFromStatement } from "../../utilities/verification";
|
|
10
|
+
subproofAssertionFromStatement } from "../../utilities/verification";
|
|
12
11
|
|
|
13
12
|
function verifyAsMetavariable(statement, assignments, stated, context) {
|
|
14
13
|
let verifiedAsMetavariable = false;
|
|
@@ -120,28 +119,6 @@ function verifyAsDefinedAssertion(statement, assignments, stated, context) {
|
|
|
120
119
|
return verifiedAsDefinedAssertion;
|
|
121
120
|
}
|
|
122
121
|
|
|
123
|
-
function verifyAsContainedAssertion(statement, assignments, stated, context) {
|
|
124
|
-
let verifiedAsContainedAssertion = false;
|
|
125
|
-
|
|
126
|
-
const containedAssertion = containedAssertionFromStatement(statement, context);
|
|
127
|
-
|
|
128
|
-
if (containedAssertion !== null) {
|
|
129
|
-
const statementString = statement.getString();
|
|
130
|
-
|
|
131
|
-
context.trace(`Verifying the '${statementString}' statement as a contained assertion...`);
|
|
132
|
-
|
|
133
|
-
const containedAssertionVerified = containedAssertion.verify(assignments, stated, context);
|
|
134
|
-
|
|
135
|
-
verifiedAsContainedAssertion = containedAssertionVerified; ///
|
|
136
|
-
|
|
137
|
-
if (verifiedAsContainedAssertion) {
|
|
138
|
-
context.debug(`...verified the '${statementString}' statement as a contained assertion.`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return verifiedAsContainedAssertion;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
122
|
function verifyAsSubproofAssertion(statement, assignments, stated, context) {
|
|
146
123
|
let verifiedAsSubproofAssertion = false;
|
|
147
124
|
|
|
@@ -199,7 +176,6 @@ const verifyMixins = [
|
|
|
199
176
|
verifyAsTypeAssertion,
|
|
200
177
|
verifyAsDefinedAssertion,
|
|
201
178
|
verifyAsSubproofAssertion,
|
|
202
|
-
verifyAsContainedAssertion,
|
|
203
179
|
unifyWithBracketedCombinator,
|
|
204
180
|
unifyWithCombinators
|
|
205
181
|
];
|
|
@@ -73,16 +73,6 @@ export function subproofAssertionFromStatement(statement, context) {
|
|
|
73
73
|
return subproofAssertion;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export function containedAssertionFromStatement(statement, context) {
|
|
77
|
-
context = contextFromStatement(statement, context); ///
|
|
78
|
-
|
|
79
|
-
const { ContainedAssertion } = dom,
|
|
80
|
-
statementNode = statement.getNode(),
|
|
81
|
-
containedAssertion = ContainedAssertion.fromStatementNode(statementNode, context);
|
|
82
|
-
|
|
83
|
-
return containedAssertion;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
76
|
function contextFromFrame(frame, context) {
|
|
87
77
|
const frameTokens = frame.getTokens(),
|
|
88
78
|
tokens = frameTokens, ///
|
|
@@ -1,287 +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 _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
|
|
12
|
-
var _local = /*#__PURE__*/ _interop_require_default(require("../../context/local"));
|
|
13
|
-
var _query = require("../../utilities/query");
|
|
14
|
-
var _assertion = require("../../utilities/assertion");
|
|
15
|
-
var _substitutions = require("../../utilities/substitutions");
|
|
16
|
-
function _class_call_check(instance, Constructor) {
|
|
17
|
-
if (!(instance instanceof Constructor)) {
|
|
18
|
-
throw new TypeError("Cannot call a class as a function");
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function _defineProperties(target, props) {
|
|
22
|
-
for(var i = 0; i < props.length; i++){
|
|
23
|
-
var descriptor = props[i];
|
|
24
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
-
descriptor.configurable = true;
|
|
26
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
-
return Constructor;
|
|
34
|
-
}
|
|
35
|
-
function _define_property(obj, key, value) {
|
|
36
|
-
if (key in obj) {
|
|
37
|
-
Object.defineProperty(obj, key, {
|
|
38
|
-
value: value,
|
|
39
|
-
enumerable: true,
|
|
40
|
-
configurable: true,
|
|
41
|
-
writable: true
|
|
42
|
-
});
|
|
43
|
-
} else {
|
|
44
|
-
obj[key] = value;
|
|
45
|
-
}
|
|
46
|
-
return obj;
|
|
47
|
-
}
|
|
48
|
-
function _interop_require_default(obj) {
|
|
49
|
-
return obj && obj.__esModule ? obj : {
|
|
50
|
-
default: obj
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
54
|
-
if (typeof WeakMap !== "function") return null;
|
|
55
|
-
var cacheBabelInterop = new WeakMap();
|
|
56
|
-
var cacheNodeInterop = new WeakMap();
|
|
57
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
58
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
59
|
-
})(nodeInterop);
|
|
60
|
-
}
|
|
61
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
62
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
63
|
-
return obj;
|
|
64
|
-
}
|
|
65
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
66
|
-
return {
|
|
67
|
-
default: obj
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
71
|
-
if (cache && cache.has(obj)) {
|
|
72
|
-
return cache.get(obj);
|
|
73
|
-
}
|
|
74
|
-
var newObj = {
|
|
75
|
-
__proto__: null
|
|
76
|
-
};
|
|
77
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
78
|
-
for(var key in obj){
|
|
79
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
80
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
81
|
-
if (desc && (desc.get || desc.set)) {
|
|
82
|
-
Object.defineProperty(newObj, key, desc);
|
|
83
|
-
} else {
|
|
84
|
-
newObj[key] = obj[key];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
newObj.default = obj;
|
|
89
|
-
if (cache) {
|
|
90
|
-
cache.set(obj, newObj);
|
|
91
|
-
}
|
|
92
|
-
return newObj;
|
|
93
|
-
}
|
|
94
|
-
var _ContainedAssertion;
|
|
95
|
-
var containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion");
|
|
96
|
-
var _default = (0, _dom.domAssigned)((_ContainedAssertion = /*#__PURE__*/ function() {
|
|
97
|
-
function ContainedAssertion(string, node, tokens, term, frame, negated, statement) {
|
|
98
|
-
_class_call_check(this, ContainedAssertion);
|
|
99
|
-
this.string = string;
|
|
100
|
-
this.node = node;
|
|
101
|
-
this.tokens = tokens;
|
|
102
|
-
this.term = term;
|
|
103
|
-
this.frame = frame;
|
|
104
|
-
this.negated = negated;
|
|
105
|
-
this.statement = statement;
|
|
106
|
-
}
|
|
107
|
-
_create_class(ContainedAssertion, [
|
|
108
|
-
{
|
|
109
|
-
key: "getString",
|
|
110
|
-
value: function getString() {
|
|
111
|
-
return this.string;
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
key: "getNode",
|
|
116
|
-
value: function getNode() {
|
|
117
|
-
return this.node;
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
key: "getTokens",
|
|
122
|
-
value: function getTokens() {
|
|
123
|
-
return this.tokens;
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
key: "getTerm",
|
|
128
|
-
value: function getTerm() {
|
|
129
|
-
return this.term;
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
key: "getFrame",
|
|
134
|
-
value: function getFrame() {
|
|
135
|
-
return this.frame;
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
key: "isNegated",
|
|
140
|
-
value: function isNegated() {
|
|
141
|
-
return this.negated;
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
key: "getStatement",
|
|
146
|
-
value: function getStatement() {
|
|
147
|
-
return this.statement;
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
key: "verify",
|
|
152
|
-
value: function verify(assignments, stated, context) {
|
|
153
|
-
var verified = false;
|
|
154
|
-
var containedAssertionString = this.string; ///
|
|
155
|
-
context.trace("Verifying the '".concat(containedAssertionString, "' contained assertion..."));
|
|
156
|
-
var termVerified = false, frameVerified = false, statementVerified = false;
|
|
157
|
-
if (this.term !== null) {
|
|
158
|
-
termVerified = this.term.verify(context, function() {
|
|
159
|
-
var verifiedAhead = true;
|
|
160
|
-
return verifiedAhead;
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
if (this.frame !== null) {
|
|
164
|
-
frameVerified = this.verifyFrame(this.frame, assignments, stated, context);
|
|
165
|
-
}
|
|
166
|
-
if (this.statement !== null) {
|
|
167
|
-
statementVerified = this.verifyStatement(this.statement, assignments, stated, context);
|
|
168
|
-
}
|
|
169
|
-
if (termVerified || frameVerified || statementVerified) {
|
|
170
|
-
var verifiedWhenStated = false, verifiedWhenDerived = false;
|
|
171
|
-
if (stated) {
|
|
172
|
-
verifiedWhenStated = this.verifyWhenStated(assignments, context);
|
|
173
|
-
} else {
|
|
174
|
-
verifiedWhenDerived = this.verifyWhenDerived(context);
|
|
175
|
-
}
|
|
176
|
-
if (verifiedWhenStated || verifiedWhenDerived) {
|
|
177
|
-
verified = true;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
if (verified) {
|
|
181
|
-
context.debug("...verified the '".concat(containedAssertionString, "' contained assertion."));
|
|
182
|
-
}
|
|
183
|
-
return verified;
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
key: "verifyFrame",
|
|
188
|
-
value: function verifyFrame(frame, assignments, stated, context) {
|
|
189
|
-
stated = true; ///
|
|
190
|
-
assignments = null; ///
|
|
191
|
-
var frameVerified = frame.verify(assignments, stated, context);
|
|
192
|
-
return frameVerified;
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
key: "verifyStatement",
|
|
197
|
-
value: function verifyStatement(statement, assignments, stated, context) {
|
|
198
|
-
stated = true; ///
|
|
199
|
-
assignments = null; ///
|
|
200
|
-
var statementVerified = statement.verify(assignments, stated, context);
|
|
201
|
-
return statementVerified;
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
key: "verifyWhenStated",
|
|
206
|
-
value: function verifyWhenStated(assignments, context) {
|
|
207
|
-
var verifiedWhenStated;
|
|
208
|
-
var containedAssertionString = this.string; ///
|
|
209
|
-
context.trace("Verifying the '".concat(containedAssertionString, "' stated contained assertion..."));
|
|
210
|
-
verifiedWhenStated = true;
|
|
211
|
-
if (verifiedWhenStated) {
|
|
212
|
-
context.debug("...verified the '".concat(containedAssertionString, "' stated contained assertion."));
|
|
213
|
-
}
|
|
214
|
-
return verifiedWhenStated;
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
key: "verifyWhenDerived",
|
|
219
|
-
value: function verifyWhenDerived1(context) {
|
|
220
|
-
var verifiedWhenDerived;
|
|
221
|
-
var containedAssertionString = this.string; ///
|
|
222
|
-
context.trace("Verifying the '".concat(containedAssertionString, "' derived contained assertion..."));
|
|
223
|
-
verifiedWhenDerived = verifyWhenDerived(this.term, this.frame, this.statement, this.negated, context);
|
|
224
|
-
if (verifiedWhenDerived) {
|
|
225
|
-
context.debug("...verified the '".concat(containedAssertionString, "' derived contained assertion."));
|
|
226
|
-
}
|
|
227
|
-
return verifiedWhenDerived;
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
key: "unifyIndependently",
|
|
232
|
-
value: function unifyIndependently(substitutions, context) {
|
|
233
|
-
var unifiedIndependently;
|
|
234
|
-
var containedAssertionString = this.string; ///
|
|
235
|
-
context.trace("Unifying the '".concat(containedAssertionString, "' contained assertion independently..."));
|
|
236
|
-
var localContext = _local.default.fromContextAndTokens(context, this.tokens);
|
|
237
|
-
context = localContext; ///
|
|
238
|
-
var term = (0, _substitutions.termFromTermAndSubstitutions)(this.term, substitutions, context), frame = (0, _substitutions.frameFromFrameAndSubstitutions)(this.frame, substitutions, context), statement = (0, _substitutions.statementFromStatementAndSubstitutions)(this.statement, substitutions, context), verifiedWhenDerived = verifyWhenDerived(term, frame, statement, this.negated, context);
|
|
239
|
-
unifiedIndependently = verifiedWhenDerived; ///
|
|
240
|
-
if (unifiedIndependently) {
|
|
241
|
-
context.debug("...unified the '".concat(containedAssertionString, "' contained assertion independently."));
|
|
242
|
-
}
|
|
243
|
-
return unifiedIndependently;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
], [
|
|
247
|
-
{
|
|
248
|
-
key: "fromStatementNode",
|
|
249
|
-
value: function fromStatementNode(statementNode, context) {
|
|
250
|
-
var containedAssertion = null;
|
|
251
|
-
var containedAssertionNode = containedAssertionNodeQuery(statementNode);
|
|
252
|
-
if (containedAssertionNode !== null) {
|
|
253
|
-
var Term = _dom.default.Term, Frame = _dom.default.Frame, Statement = _dom.default.Statement, node = containedAssertionNode, string = context.nodeAsString(node), tokens = context.nodeAsTokens(node), term = Term.fromContainedAssertionNode(containedAssertionNode, context), frame = Frame.fromContainedAssertionNode(containedAssertionNode, context), statement = Statement.fromContainedAssertionNode(containedAssertionNode, context), containedAssertionNegated = (0, _assertion.isAssertionNegated)(containedAssertionNode), negated = containedAssertionNegated; ///
|
|
254
|
-
containedAssertion = new ContainedAssertion(string, node, tokens, term, frame, negated, statement);
|
|
255
|
-
}
|
|
256
|
-
return containedAssertion;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
]);
|
|
260
|
-
return ContainedAssertion;
|
|
261
|
-
}(), _define_property(_ContainedAssertion, "name", "ContainedAssertion"), _ContainedAssertion));
|
|
262
|
-
function verifyWhenDerived(term, frame, statement, negated, context) {
|
|
263
|
-
var verifiedWhenDerived = false;
|
|
264
|
-
if (statement !== null) {
|
|
265
|
-
if (term !== null) {
|
|
266
|
-
var termContained = statement.isTermContained(term, context);
|
|
267
|
-
if (!negated && termContained) {
|
|
268
|
-
verifiedWhenDerived = true;
|
|
269
|
-
}
|
|
270
|
-
if (negated && !termContained) {
|
|
271
|
-
verifiedWhenDerived = true;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
if (frame !== null) {
|
|
275
|
-
var frameContained = statement.isFrameContained(frame, context);
|
|
276
|
-
if (!negated && frameContained) {
|
|
277
|
-
verifiedWhenDerived = true;
|
|
278
|
-
}
|
|
279
|
-
if (negated && !frameContained) {
|
|
280
|
-
verifiedWhenDerived = true;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return verifiedWhenDerived;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vYXNzZXJ0aW9uL2NvbnRhaW5lZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuaW1wb3J0IHsgaXNBc3NlcnRpb25OZWdhdGVkIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hc3NlcnRpb25cIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybUFuZFN1YnN0aXR1dGlvbnMsIGZyYW1lRnJvbUZyYW1lQW5kU3Vic3RpdHV0aW9ucywgc3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N1YnN0aXR1dGlvbnNcIjtcblxuY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9jb250YWluZWRBc3NlcnRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbnRhaW5lZEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbm9kZSwgdG9rZW5zLCB0ZXJtLCBmcmFtZSwgbmVnYXRlZCwgc3RhdGVtZW50KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFtZTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIHZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICAgIGxldCB0ZXJtVmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgZnJhbWVWZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdGVybVZlcmlmaWVkID0gdGhpcy50ZXJtLnZlcmlmeShjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZnJhbWUgIT09IG51bGwpIHtcbiAgICAgIGZyYW1lVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUZyYW1lKHRoaXMuZnJhbWUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnZlcmlmeVN0YXRlbWVudCh0aGlzLnN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHRlcm1WZXJpZmllZCB8fCBmcmFtZVZlcmlmaWVkIHx8IHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBsZXQgdmVyaWZpZWRXaGVuU3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVkKSB7XG4gICAgICAgIHZlcmlmaWVkV2hlblN0YXRlZCA9IHRoaXMudmVyaWZ5V2hlblN0YXRlZChhc3NpZ25tZW50cywgY29udGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJpZmllZFdoZW5EZXJpdmVkID0gdGhpcy52ZXJpZnlXaGVuRGVyaXZlZChjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZlcmlmaWVkV2hlblN0YXRlZCB8fCB2ZXJpZmllZFdoZW5EZXJpdmVkKSB7XG4gICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeUZyYW1lKGZyYW1lLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgc3RhdGVkID0gdHJ1ZTsgIC8vL1xuXG4gICAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICAgIGNvbnN0IGZyYW1lVmVyaWZpZWQgPSBmcmFtZS52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnJhbWVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBzdGF0ZWQgPSB0cnVlOyAgLy8vXG5cbiAgICBhc3NpZ25tZW50cyA9IG51bGw7IC8vL1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnQudmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5V2hlblN0YXRlZChhc3NpZ25tZW50cywgY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZFdoZW5TdGF0ZWQ7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlZCBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICB2ZXJpZmllZFdoZW5TdGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHZlcmlmaWVkV2hlblN0YXRlZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlZCBjb250YWluZWQgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZFdoZW5TdGF0ZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVyaXZlZChjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkV2hlbkRlcml2ZWQ7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHZlcmlmeVdoZW5EZXJpdmVkKHRoaXMudGVybSwgdGhpcy5mcmFtZSwgdGhpcy5zdGF0ZW1lbnQsIHRoaXMubmVnYXRlZCwgY29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuRGVyaXZlZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgY29udGFpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRXaGVuRGVyaXZlZDtcbiAgfVxuXG4gIHVuaWZ5SW5kZXBlbmRlbnRseShzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZWRJbmRlcGVuZGVudGx5O1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24gaW5kZXBlbmRlbnRseS4uLmApO1xuXG4gICAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0QW5kVG9rZW5zKGNvbnRleHQsIHRoaXMudG9rZW5zKTtcblxuICAgIGNvbnRleHQgPSBsb2NhbENvbnRleHQ7IC8vL1xuXG4gICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tVGVybUFuZFN1YnN0aXR1dGlvbnModGhpcy50ZXJtLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSxcbiAgICAgICAgICBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lQW5kU3Vic3RpdHV0aW9ucyh0aGlzLmZyYW1lLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyh0aGlzLnN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgY29udGV4dCksXG4gICAgICAgICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHZlcmlmeVdoZW5EZXJpdmVkKHRlcm0sIGZyYW1lLCBzdGF0ZW1lbnQsIHRoaXMubmVnYXRlZCwgY29udGV4dCk7XG5cbiAgICB1bmlmaWVkSW5kZXBlbmRlbnRseSA9IHZlcmlmaWVkV2hlbkRlcml2ZWQ7IC8vL1xuXG4gICAgaWYgKHVuaWZpZWRJbmRlcGVuZGVudGx5KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uIGluZGVwZW5kZW50bHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaWZpZWRJbmRlcGVuZGVudGx5O1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnRhaW5lZEFzc2VydGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbnRhaW5lZEFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgVGVybSwgRnJhbWUsIFN0YXRlbWVudCB9ID0gZG9tLFxuICAgICAgICAgICAgbm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUNvbnRhaW5lZEFzc2VydGlvbk5vZGUoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbUNvbnRhaW5lZEFzc2VydGlvbk5vZGUoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgbmVnYXRlZCA9IGNvbnRhaW5lZEFzc2VydGlvbk5lZ2F0ZWQ7ICAvLy9cblxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gbmV3IENvbnRhaW5lZEFzc2VydGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgdGVybSwgZnJhbWUsIG5lZ2F0ZWQsIHN0YXRlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvbjtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZlcmlmeVdoZW5EZXJpdmVkKHRlcm0sIGZyYW1lLCBzdGF0ZW1lbnQsIG5lZ2F0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1Db250YWluZWQgPSBzdGF0ZW1lbnQuaXNUZXJtQ29udGFpbmVkKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQgJiYgdGVybUNvbnRhaW5lZCkge1xuICAgICAgICB2ZXJpZmllZFdoZW5EZXJpdmVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQgJiYgIXRlcm1Db250YWluZWQpIHtcbiAgICAgICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYW1lICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmcmFtZUNvbnRhaW5lZCA9IHN0YXRlbWVudC5pc0ZyYW1lQ29udGFpbmVkKGZyYW1lLCBjb250ZXh0KTtcblxuICAgICAgaWYgKCFuZWdhdGVkICYmIGZyYW1lQ29udGFpbmVkKSB7XG4gICAgICAgIHZlcmlmaWVkV2hlbkRlcml2ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobmVnYXRlZCAmJiAhZnJhbWVDb250YWluZWQpIHtcbiAgICAgICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkV2hlbkRlcml2ZWQ7XG59XG4iXSwibmFtZXMiOlsiY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJDb250YWluZWRBc3NlcnRpb24iLCJzdHJpbmciLCJub2RlIiwidG9rZW5zIiwidGVybSIsImZyYW1lIiwibmVnYXRlZCIsInN0YXRlbWVudCIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXRUZXJtIiwiZ2V0RnJhbWUiLCJpc05lZ2F0ZWQiLCJnZXRTdGF0ZW1lbnQiLCJ2ZXJpZnkiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImNvbnRleHQiLCJ2ZXJpZmllZCIsImNvbnRhaW5lZEFzc2VydGlvblN0cmluZyIsInRyYWNlIiwidGVybVZlcmlmaWVkIiwiZnJhbWVWZXJpZmllZCIsInN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsInZlcmlmeUZyYW1lIiwidmVyaWZ5U3RhdGVtZW50IiwidmVyaWZpZWRXaGVuU3RhdGVkIiwidmVyaWZpZWRXaGVuRGVyaXZlZCIsInZlcmlmeVdoZW5TdGF0ZWQiLCJ2ZXJpZnlXaGVuRGVyaXZlZCIsImRlYnVnIiwidW5pZnlJbmRlcGVuZGVudGx5Iiwic3Vic3RpdHV0aW9ucyIsInVuaWZpZWRJbmRlcGVuZGVudGx5IiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHRBbmRUb2tlbnMiLCJ0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zIiwiZnJhbWVGcm9tRnJhbWVBbmRTdWJzdGl0dXRpb25zIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnMiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJjb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiVGVybSIsImRvbSIsIkZyYW1lIiwiU3RhdGVtZW50Iiwibm9kZUFzU3RyaW5nIiwibm9kZUFzVG9rZW5zIiwiZnJvbUNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJjb250YWluZWRBc3NlcnRpb25OZWdhdGVkIiwiaXNBc3NlcnRpb25OZWdhdGVkIiwibmFtZSIsInRlcm1Db250YWluZWQiLCJpc1Rlcm1Db250YWluZWQiLCJmcmFtZUNvbnRhaW5lZCIsImlzRnJhbWVDb250YWluZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7OzJEQVZnQjs0REFDUztxQkFFQzt5QkFFUzs2QkFDa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJILElBQU1BLDhCQUE4QkMsSUFBQUEsZ0JBQVMsRUFBQztJQUU5QyxXQUFlQyxJQUFBQSxnQkFBVyx1Q0FBQzthQUFNQyxtQkFDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFNBQVM7Z0NB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
|