occam-verify-cli 0.0.915 → 0.0.917

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.
Files changed (57) hide show
  1. package/lib/assignment/judgement.js +62 -0
  2. package/lib/axiom.js +11 -24
  3. package/lib/conjecture.js +11 -24
  4. package/lib/constants.js +9 -1
  5. package/lib/constructor/bracketed.js +11 -24
  6. package/lib/context/file.js +5 -5
  7. package/lib/context/local/metaLevel.js +46 -54
  8. package/lib/judgement.js +87 -0
  9. package/lib/lemma.js +11 -24
  10. package/lib/metaLemma.js +11 -24
  11. package/lib/metaType/frame.js +11 -24
  12. package/lib/metaType/reference.js +11 -24
  13. package/lib/metaType/statement.js +11 -24
  14. package/lib/metatheorem.js +11 -24
  15. package/lib/ocmbinator/bracketed.js +11 -24
  16. package/lib/substitution/metastatementForMetavariable.js +11 -24
  17. package/lib/substitution/statementForMetavariable.js +11 -24
  18. package/lib/substitution/termForVariable.js +11 -24
  19. package/lib/theorem.js +11 -24
  20. package/lib/type.js +11 -24
  21. package/lib/utilities/verify.js +7 -7
  22. package/lib/verifier/node/metaLevel.js +11 -24
  23. package/lib/verifier/node/statementAsCombinator.js +11 -24
  24. package/lib/verifier/node/termAsConstructor.js +11 -24
  25. package/lib/verifier/nodes/equality.js +11 -24
  26. package/lib/verifier/nodes/intrinsicLevel.js +11 -24
  27. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +11 -24
  28. package/lib/verifier/nodes/metaLevel.js +11 -24
  29. package/lib/verifier/nodes/statementAgainstCombinator.js +11 -24
  30. package/lib/verifier/nodes/termAgainstConstructor.js +11 -24
  31. package/lib/verify/frame.js +6 -6
  32. package/lib/verify/judgement.js +121 -0
  33. package/lib/verify/metastatement.js +20 -16
  34. package/lib/verify/statement.js +45 -46
  35. package/lib/verify/statementAsContainedAssertion.js +93 -0
  36. package/lib/verify/statementAsDefinedAssertion.js +111 -0
  37. package/package.json +2 -2
  38. package/src/assignment/judgement.js +30 -0
  39. package/src/constants.js +2 -0
  40. package/src/context/file.js +3 -3
  41. package/src/context/local/metaLevel.js +35 -35
  42. package/src/{frameAssertion.js → judgement.js} +5 -5
  43. package/src/utilities/verify.js +5 -5
  44. package/src/verify/frame.js +5 -5
  45. package/src/verify/{frameAssertion.js → judgement.js} +46 -46
  46. package/src/verify/metastatement.js +23 -15
  47. package/src/verify/statement.js +70 -70
  48. package/src/verify/statementAsContainedAssertion.js +112 -0
  49. package/src/verify/statementAsDefinedAssertion.js +136 -0
  50. package/lib/assignment/frameAssertion.js +0 -62
  51. package/lib/frameAssertion.js +0 -87
  52. package/lib/verify/containedAssertion.js +0 -93
  53. package/lib/verify/definedAssertion.js +0 -111
  54. package/lib/verify/frameAssertion.js +0 -121
  55. package/src/assignment/frameAssertion.js +0 -30
  56. package/src/verify/containedAssertion.js +0 -112
  57. package/src/verify/definedAssertion.js +0 -137
@@ -0,0 +1,121 @@
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 verifyJudgement;
9
+ }
10
+ });
11
+ var _judgement = /*#__PURE__*/ _interop_require_default(require("../judgement"));
12
+ var _frame = /*#__PURE__*/ _interop_require_default(require("../verify/frame"));
13
+ var _frame1 = /*#__PURE__*/ _interop_require_default(require("../metaType/frame"));
14
+ var _judgement1 = /*#__PURE__*/ _interop_require_default(require("../assignment/judgement"));
15
+ var _array = require("../utilities/array");
16
+ var _query = require("../utilities/query");
17
+ function _interop_require_default(obj) {
18
+ return obj && obj.__esModule ? obj : {
19
+ default: obj
20
+ };
21
+ }
22
+ var frameNodeQuery = (0, _query.nodeQuery)("/judgement/frame!"), metavariableNodeQuery = (0, _query.nodeQuery)("/judgement/metavariable!");
23
+ function verifyJudgement(judgementNode, assignments, derived, localContext) {
24
+ var judgementVerified;
25
+ var judgementString = localContext.nodeAsString(judgementNode);
26
+ localContext.trace("Verifying the '".concat(judgementString, "' judgement..."), judgementNode);
27
+ var verifyJudgementFunctions = [
28
+ verifyDerivedJudgement,
29
+ verifyStatedJudgement
30
+ ];
31
+ judgementVerified = verifyJudgementFunctions.some(function(verifyJudgementFunction) {
32
+ var judgementVerified = verifyJudgementFunction(judgementNode, assignments, derived, localContext);
33
+ if (judgementVerified) {
34
+ return true;
35
+ }
36
+ });
37
+ if (judgementVerified) {
38
+ localContext.debug("...verified the '".concat(judgementString, "' judgement."), judgementNode);
39
+ }
40
+ return judgementVerified;
41
+ }
42
+ function verifyDerivedJudgement(judgementNode, assignments, derived, localContext) {
43
+ var derivedJudgementVerified = false;
44
+ if (derived) {
45
+ var judgementString = localContext.nodeAsString(judgementNode);
46
+ localContext.trace("Verifying the '".concat(judgementString, "' derived judgement..."), judgementNode);
47
+ var metavariableNode = metavariableNodeQuery(judgementNode), metavariableVerified = verifyMetavariable(metavariableNode, localContext);
48
+ if (metavariableVerified) {
49
+ var judgement = localContext.findJudgementByMetavariableNode(metavariableNode);
50
+ if (judgement !== null) {
51
+ var frames = [], frameNode = frameNodeQuery(judgementNode), frameVerified = (0, _frame.default)(frameNode, frames, assignments, derived, localContext);
52
+ if (frameVerified) {
53
+ var firstFrame = (0, _array.first)(frames), frame = firstFrame, frameSingular = frame.isSingular();
54
+ if (frameSingular) {
55
+ var declaration = frame.getDeclaration(), metavariableNode1 = declaration.getMetavariableNode(), metaLemma = localContext.findMetaLemmaByMetavariableNode(metavariableNode1), metatheorem = localContext.findMetatheoremByMetavariableNode(metavariableNode1), metaLemmaMetatheorem = metaLemma || metatheorem; ///
56
+ if (metaLemmaMetatheorem !== null) {
57
+ var declarationMatchesMetaLemmaMetatheorem = declaration.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem), judgementMatchesMetaLemmaMetatheorem = judgement.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem);
58
+ derivedJudgementVerified = declarationMatchesMetaLemmaMetatheorem && judgementMatchesMetaLemmaMetatheorem;
59
+ } else {
60
+ var metavariableString = localContext.nodeAsString(metavariableNode1);
61
+ localContext.debug("There are no meta-lemmas or metatheorems corresponding to the '".concat(metavariableString, "' metavariable."), judgementNode);
62
+ }
63
+ } else {
64
+ var frameString = localContext.nodeAsString(frameNode);
65
+ localContext.debug("The '".concat(frameString, "' is not singular."), judgementNode);
66
+ }
67
+ }
68
+ } else {
69
+ var metavariableString1 = localContext.nodeAsString(metavariableNode);
70
+ localContext.debug("There is no judgement present for the '".concat(metavariableString1, "' metavariable."), judgementNode);
71
+ }
72
+ }
73
+ if (derivedJudgementVerified) {
74
+ localContext.debug("...verified the '".concat(judgementString, "' derived judgement."), judgementNode);
75
+ }
76
+ }
77
+ return derivedJudgementVerified;
78
+ }
79
+ function verifyStatedJudgement(judgementNode, assignments, derived, localContext) {
80
+ var statedJudgementVerified = false;
81
+ if (!derived) {
82
+ var judgementString = localContext.nodeAsString(judgementNode);
83
+ localContext.trace("Verifying the '".concat(judgementString, "' stated judgement..."), judgementNode);
84
+ var metavariableNode = metavariableNodeQuery(judgementNode), metavariableVerified = verifyMetavariable(metavariableNode, localContext);
85
+ if (metavariableVerified) {
86
+ var frames = [], frameNode = frameNodeQuery(judgementNode), frameVerified = (0, _frame.default)(frameNode, frames, assignments, derived, localContext);
87
+ if (frameVerified) {
88
+ var firstFrame = (0, _array.first)(frames), frame = firstFrame, judgement = _judgement.default.fromJudgementNodeFrameAndMetavariableNode(judgementNode, frame, metavariableNode), judgementAssignment = _judgement1.default.fromJudgement(judgement), assignment = judgementAssignment;
89
+ assignments.push(assignment);
90
+ statedJudgementVerified = true;
91
+ }
92
+ }
93
+ if (statedJudgementVerified) {
94
+ localContext.debug("...verified the '".concat(judgementString, "' stated judgement."), judgementNode);
95
+ }
96
+ }
97
+ return statedJudgementVerified;
98
+ }
99
+ function verifyMetavariable(metavariableNode, localContext) {
100
+ var metavariableVerified = false;
101
+ var metavariableString = localContext.nodeAsString(metavariableNode);
102
+ localContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."), metavariableNode);
103
+ var metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode, localContext);
104
+ if (metavariable !== null) {
105
+ var metaType = metavariable.getMetaType();
106
+ if (metaType === _frame1.default) {
107
+ metavariableVerified = true;
108
+ } else {
109
+ var frameMetaTypeName = _frame1.default.getName(), metaTypeString = metaType.asString();
110
+ localContext.debug("The '".concat(metavariableString, "' metavariable's meta-type is '").concat(metaTypeString, "' when it should be '").concat(frameMetaTypeName, "'."), metavariableNode);
111
+ }
112
+ } else {
113
+ localContext.debug("The '".concat(metavariableString, "' metavariable is not present'."), metavariableNode);
114
+ }
115
+ if (metavariableVerified) {
116
+ localContext.debug("...verified the '".concat(metavariableString, "' metavariable."), metavariableNode);
117
+ }
118
+ return metavariableVerified;
119
+ }
120
+
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvanVkZ2VtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgSnVkZ2VtZW50IGZyb20gXCIuLi9qdWRnZW1lbnRcIjtcbmltcG9ydCB2ZXJpZnlGcmFtZSBmcm9tIFwiLi4vdmVyaWZ5L2ZyYW1lXCI7XG5pbXBvcnQgZnJhbWVNZXRhVHlwZSBmcm9tIFwiLi4vbWV0YVR5cGUvZnJhbWVcIjtcbmltcG9ydCBKdWRnZW1lbnRBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L2p1ZGdlbWVudFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZnJhbWVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvanVkZ2VtZW50L2ZyYW1lIVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9qdWRnZW1lbnQvbWV0YXZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGp1ZGdlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoanVkZ2VtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC4uLmAsIGp1ZGdlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeUp1ZGdlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkSnVkZ2VtZW50LFxuICAgIHZlcmlmeVN0YXRlZEp1ZGdlbWVudFxuICBdO1xuXG4gIGp1ZGdlbWVudFZlcmlmaWVkID0gdmVyaWZ5SnVkZ2VtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeUp1ZGdlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QganVkZ2VtZW50VmVyaWZpZWQgPSB2ZXJpZnlKdWRnZW1lbnRGdW5jdGlvbihqdWRnZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChqdWRnZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoanVkZ2VtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuYCwganVkZ2VtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4ganVkZ2VtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRKdWRnZW1lbnQoanVkZ2VtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZEp1ZGdlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGp1ZGdlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50Li4uYCwganVkZ2VtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGp1ZGdlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGp1ZGdlbWVudCA9IGxvY2FsQ29udGV4dC5maW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAoanVkZ2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lcyA9IFtdLFxuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBmcmFtZU5vZGVRdWVyeShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IGZpcnN0RnJhbWUgPSBmaXJzdChmcmFtZXMpLFxuICAgICAgICAgICAgICAgIGZyYW1lID0gZmlyc3RGcmFtZSwgLy8vXG4gICAgICAgICAgICAgICAgZnJhbWVTaW5ndWxhciA9IGZyYW1lLmlzU2luZ3VsYXIoKTtcblxuICAgICAgICAgIGlmIChmcmFtZVNpbmd1bGFyKSB7XG4gICAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGZyYW1lLmdldERlY2xhcmF0aW9uKCksXG4gICAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZGVjbGFyYXRpb24uZ2V0TWV0YXZhcmlhYmxlTm9kZSgpLFxuICAgICAgICAgICAgICAgICAgbWV0YUxlbW1hID0gbG9jYWxDb250ZXh0LmZpbmRNZXRhTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgICAgICBtZXRhdGhlb3JlbSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgICAgICBtZXRhTGVtbWFNZXRhdGhlb3JlbSA9IChtZXRhTGVtbWEgfHwgbWV0YXRoZW9yZW0pOyAgLy8vXG5cbiAgICAgICAgICAgIGlmIChtZXRhTGVtbWFNZXRhdGhlb3JlbSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSA9IGRlY2xhcmF0aW9uLm1hdGNoTWV0YUxlbW1hT3JNZXRhVGhlb3JlbShtZXRhTGVtbWFNZXRhdGhlb3JlbSksXG4gICAgICAgICAgICAgICAgICAgIGp1ZGdlbWVudE1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSA9IGp1ZGdlbWVudC5tYXRjaE1ldGFMZW1tYU9yTWV0YVRoZW9yZW0obWV0YUxlbW1hTWV0YXRoZW9yZW0pO1xuXG4gICAgICAgICAgICAgIGRlcml2ZWRKdWRnZW1lbnRWZXJpZmllZCA9IChkZWNsYXJhdGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSAmJiBqdWRnZW1lbnRNYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICAgICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZXJlIGFyZSBubyBtZXRhLWxlbW1hcyBvciBtZXRhdGhlb3JlbXMgY29ycmVzcG9uZGluZyB0byB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIGp1ZGdlbWVudE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBmcmFtZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVOb2RlKTtcblxuICAgICAgICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7ZnJhbWVTdHJpbmd9JyBpcyBub3Qgc2luZ3VsYXIuYCwganVkZ2VtZW50Tm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlcmUgaXMgbm8ganVkZ2VtZW50IHByZXNlbnQgZm9yIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwganVkZ2VtZW50Tm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWRKdWRnZW1lbnRWZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgZGVyaXZlZCBqdWRnZW1lbnQuYCwganVkZ2VtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRKdWRnZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkSnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3QganVkZ2VtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhqdWRnZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBzdGF0ZWQganVkZ2VtZW50Li4uYCwganVkZ2VtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGp1ZGdlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZyYW1lcyA9IFtdLFxuICAgICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoanVkZ2VtZW50Tm9kZSksXG4gICAgICAgICAgICBmcmFtZVZlcmlmaWVkID0gdmVyaWZ5RnJhbWUoZnJhbWVOb2RlLCBmcmFtZXMsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoZnJhbWVWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBmaXJzdEZyYW1lID0gZmlyc3QoZnJhbWVzKSxcbiAgICAgICAgICAgICAgZnJhbWUgPSBmaXJzdEZyYW1lLCAvLy9cbiAgICAgICAgICAgICAganVkZ2VtZW50ID0gSnVkZ2VtZW50LmZyb21KdWRnZW1lbnROb2RlRnJhbWVBbmRNZXRhdmFyaWFibGVOb2RlKGp1ZGdlbWVudE5vZGUsIGZyYW1lLCBtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAganVkZ2VtZW50QXNzaWdubWVudCA9IEp1ZGdlbWVudEFzc2lnbm1lbnQuZnJvbUp1ZGdlbWVudChqdWRnZW1lbnQpLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50ID0ganVkZ2VtZW50QXNzaWdubWVudDtcblxuICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuXG4gICAgICAgIHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkSnVkZ2VtZW50VmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuYCwganVkZ2VtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFUeXBlID0gbWV0YXZhcmlhYmxlLmdldE1ldGFUeXBlKCk7XG5cbiAgICBpZiAobWV0YVR5cGUgPT09IGZyYW1lTWV0YVR5cGUpIHtcbiAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZnJhbWVNZXRhVHlwZU5hbWUgPSBmcmFtZU1ldGFUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIG1ldGFUeXBlU3RyaW5nID0gbWV0YVR5cGUuYXNTdHJpbmcoKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlJ3MgbWV0YS10eXBlIGlzICcke21ldGFUeXBlU3RyaW5nfScgd2hlbiBpdCBzaG91bGQgYmUgJyR7ZnJhbWVNZXRhVHlwZU5hbWV9Jy5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGlzIG5vdCBwcmVzZW50Jy5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlKdWRnZW1lbnQiLCJmcmFtZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImp1ZGdlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJqdWRnZW1lbnRWZXJpZmllZCIsImp1ZGdlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5SnVkZ2VtZW50RnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZEp1ZGdlbWVudCIsInZlcmlmeVN0YXRlZEp1ZGdlbWVudCIsInNvbWUiLCJ2ZXJpZnlKdWRnZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZEp1ZGdlbWVudFZlcmlmaWVkIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5TWV0YXZhcmlhYmxlIiwianVkZ2VtZW50IiwiZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTm9kZSIsImZyYW1lcyIsImZyYW1lTm9kZSIsImZyYW1lVmVyaWZpZWQiLCJ2ZXJpZnlGcmFtZSIsImZpcnN0RnJhbWUiLCJmaXJzdCIsImZyYW1lIiwiZnJhbWVTaW5ndWxhciIsImlzU2luZ3VsYXIiLCJkZWNsYXJhdGlvbiIsImdldERlY2xhcmF0aW9uIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFMZW1tYSIsImZpbmRNZXRhTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdGhlb3JlbSIsImZpbmRNZXRhdGhlb3JlbUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFMZW1tYU1ldGF0aGVvcmVtIiwiZGVjbGFyYXRpb25NYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJtYXRjaE1ldGFMZW1tYU9yTWV0YVRoZW9yZW0iLCJqdWRnZW1lbnRNYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJtZXRhdmFyaWFibGVTdHJpbmciLCJmcmFtZVN0cmluZyIsInN0YXRlZEp1ZGdlbWVudFZlcmlmaWVkIiwiSnVkZ2VtZW50IiwiZnJvbUp1ZGdlbWVudE5vZGVGcmFtZUFuZE1ldGF2YXJpYWJsZU5vZGUiLCJqdWRnZW1lbnRBc3NpZ25tZW50IiwiSnVkZ2VtZW50QXNzaWdubWVudCIsImZyb21KdWRnZW1lbnQiLCJhc3NpZ25tZW50IiwicHVzaCIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZSIsImdldE1ldGFUeXBlIiwiZnJhbWVNZXRhVHlwZSIsImZyYW1lTWV0YVR5cGVOYW1lIiwiZ2V0TmFtZSIsIm1ldGFUeXBlU3RyaW5nIiwiYXNTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBd0JBOzs7Z0VBWEY7NERBQ0U7NkRBQ0U7aUVBQ007cUJBRVY7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsc0JBQzNCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFekIsU0FBU0YsZ0JBQWdCSSxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ3ZGLElBQUlDO0lBRUosSUFBTUMsa0JBQWtCRixhQUFhRyxZQUFZLENBQUNOO0lBRWxERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJGLGlCQUFnQixtQkFBaUJMO0lBRXRFLElBQU1RLDJCQUEy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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _frameAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/frameAssertion"));
11
+ var _judgement = /*#__PURE__*/ _interop_require_default(require("../verify/judgement"));
12
12
  var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
13
13
  var _query = require("../utilities/query");
14
14
  function _interop_require_default(obj) {
@@ -16,13 +16,13 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- var frameAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/frameAssertion!");
19
+ var judgementNodeQuery = (0, _query.nodeQuery)("/metastatement/judgement!");
20
20
  function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
21
21
  var metastatementVerified;
22
22
  var metastatementString = localContext.nodeAsString(metastatementNode);
23
23
  localContext.trace("Verifying the '".concat(metastatementString, "' metastatement..."), metastatementNode);
24
24
  var verifyMetaStatementFunctions = [
25
- verifyMetastatementAsFrameAssertion,
25
+ verifyMetastatementAsJudgement,
26
26
  verifyMetastatementAsIs
27
27
  ];
28
28
  metastatementVerified = verifyMetaStatementFunctions.some(function(verifyStatementFunction) {
@@ -40,24 +40,24 @@ Object.assign(_metaLevel.default, {
40
40
  verifyMetastatement: verifyMetastatement
41
41
  });
42
42
  var _default = verifyMetastatement;
43
- function verifyMetastatementAsFrameAssertion(metastatementNode, assignments, derived, localContext) {
44
- var metastatementVerifiedAsFrameAssertion = false;
45
- var frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
46
- if (frameAssertionNode !== null) {
43
+ function verifyMetastatementAsJudgement(metastatementNode, assignments, derived, localContext) {
44
+ var metastatementVerifiedAsJudgement = false;
45
+ var metastatementJudgement = isMetastatementJudgement(metastatementNode);
46
+ if (metastatementJudgement) {
47
47
  var metastatementString = localContext.nodeAsString(metastatementNode);
48
- localContext.trace("Verifying the '".concat(metastatementString, "' metastatement as a frame assertion..."), metastatementNode);
49
- var frameAssertionVerified = (0, _frameAssertion.default)(frameAssertionNode, assignments, derived, localContext);
50
- metastatementVerifiedAsFrameAssertion = frameAssertionVerified; ///
51
- if (metastatementVerifiedAsFrameAssertion) {
52
- localContext.debug("...verified the '".concat(metastatementString, "' metastatement as a frame assertion."), metastatementNode);
48
+ localContext.trace("Verifying the '".concat(metastatementString, "' metastatement as a judgement..."), metastatementNode);
49
+ var judgementNode = judgementNodeQuery(metastatementNode), judgementVerified = (0, _judgement.default)(judgementNode, assignments, derived, localContext);
50
+ metastatementVerifiedAsJudgement = judgementVerified; ///
51
+ if (metastatementVerifiedAsJudgement) {
52
+ localContext.debug("...verified the '".concat(metastatementString, "' metastatement as a judgement."), metastatementNode);
53
53
  }
54
54
  }
55
- return metastatementVerifiedAsFrameAssertion;
55
+ return metastatementVerifiedAsJudgement;
56
56
  }
57
57
  function verifyMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
58
58
  var metastatementVerifiedAsIs;
59
- var frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
60
- if (frameAssertionNode === null) {
59
+ var metastatementJudgement = isMetastatementJudgement(metastatementNode);
60
+ if (!metastatementJudgement) {
61
61
  var metastatementString = localContext.nodeAsString(metastatementNode);
62
62
  localContext.trace("Verifying the '".concat(metastatementString, "' metastatement as is..."), metastatementNode);
63
63
  var verifyMetastatementAsIsFunctions = [
@@ -100,5 +100,9 @@ function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived,
100
100
  }
101
101
  return statedMetastatementVerifiedAsIs;
102
102
  }
103
+ function isMetastatementJudgement(metastatementNode) {
104
+ var judgementNode = judgementNodeQuery(metastatementNode), metastatementJudgement = judgementNode !== null;
105
+ return metastatementJudgement;
106
+ }
103
107
 
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUZyYW1lQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZnJhbWVBc3NlcnRpb25cIjtcbmltcG9ydCBtZXRhTGV2ZWxOb2RlVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGUvbWV0YUxldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZnJhbWVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9mcmFtZUFzc2VydGlvbiFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50Li4uYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeU1ldGFTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5TWV0YXN0YXRlbWVudEFzRnJhbWVBc3NlcnRpb24sXG4gICAgdmVyaWZ5TWV0YXN0YXRlbWVudEFzSXNcbiAgXTtcblxuICBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhU3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24obWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihtZXRhTGV2ZWxOb2RlVmVyaWZpZXIsIHtcbiAgdmVyaWZ5TWV0YXN0YXRlbWVudFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeU1ldGFzdGF0ZW1lbnQ7XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0ZyYW1lQXNzZXJ0aW9uKG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0ZyYW1lQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgZnJhbWVBc3NlcnRpb25Ob2RlID0gZnJhbWVBc3NlcnRpb25Ob2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChmcmFtZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgYSBmcmFtZSBhc3NlcnRpb24uLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBmcmFtZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RnJhbWVBc3NlcnRpb24oZnJhbWVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRnJhbWVBc3NlcnRpb24gPSBmcmFtZUFzc2VydGlvblZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNGcmFtZUFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgYSBmcmFtZSBhc3NlcnRpb24uYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0ZyYW1lQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhc3RhdGVtZW50QXNJcyhtZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcztcblxuICBjb25zdCBmcmFtZUFzc2VydGlvbk5vZGUgPSBmcmFtZUFzc2VydGlvbk5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGZyYW1lQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudCBhcyBpcy4uLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb25zID0gW1xuICAgICAgdmVyaWZ5RGVyaXZlZE1ldGFzdGF0ZW1lbnRBc0lzLFxuICAgICAgdmVyaWZ5U3RhdGVkTWV0YXN0YXRlbWVudEFzSXNcbiAgICBdO1xuXG4gICAgbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb25zLnNvbWUoKHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSB2ZXJpZnlNZXRhc3RhdGVtZW50QXNJc0Z1bmN0aW9uKG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcykge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkTWV0YXN0YXRlbWVudEFzSXMobWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQuZGVidWcoYENhbm5vdCB2ZXJpZnkgdGhlIGRlcml2ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRNZXRhc3RhdGVtZW50QXNJcyhtZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBzdGF0ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBtZXRhTGV2ZWxOb2RlVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7ICAvLy9cblxuICAgIGlmIChzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuIl0sIm5hbWVzIjpbImZyYW1lQXNzZXJ0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmVyaWZ5TWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwibWV0YXN0YXRlbWVudFZlcmlmaWVkIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5TWV0YVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeU1ldGFzdGF0ZW1lbnRBc0ZyYW1lQXNzZXJ0aW9uIiwidmVyaWZ5TWV0YXN0YXRlbWVudEFzSXMiLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsIm1ldGFMZXZlbE5vZGVWZXJpZmllciIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRnJhbWVBc3NlcnRpb24iLCJmcmFtZUFzc2VydGlvbk5vZGUiLCJmcmFtZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5RnJhbWVBc3NlcnRpb24iLCJtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzIiwidmVyaWZ5TWV0YXN0YXRlbWVudEFzSXNGdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkTWV0YXN0YXRlbWVudEFzSXMiLCJ2ZXJpZnlTdGF0ZWRNZXRhc3RhdGVtZW50QXNJcyIsInZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb24iLCJkZXJpdmVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyIsInN0YXRlZE1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsInZlcmlmaWVkQWhlYWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdDQTs7O2VBQUE7OztxRUF0Q2lDO2dFQUNDO3FCQUVSOzs7Ozs7QUFFMUIsSUFBTUEsMEJBQTBCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRTFDLFNBQVNDLG9CQUFvQkMsaUJBQWlCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDO0lBRUosSUFBTUMsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO0lBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQix1QkFBcUJMO0lBRTlFLElBQU1RLCtCQUErQjtRQUNuQ0M7UUFDQUM7S0FDRDtJQUVETix3QkFBd0JJLDZCQUE2QkcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pELElBQU1SLHdCQUF3QlEsd0JBQXdCWixtQkFBbUJDLGFBQWFDLFNBQVNDO1FBRS9GLElBQUlDLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLHVCQUF1QjtRQUN6QkQsYUFBYVUsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0IscUJBQW1CTDtJQUNoRjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQVUsT0FBT0MsTUFBTSxDQUFDQyxrQkFBcUIsRUFBRTtJQUNuQ2pCLHFCQUFBQTtBQUNGO0lBRUEsV0FBZUE7QUFFZixTQUFTVSxvQ0FBb0NULGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNoRyxJQUFJYyx3Q0FBd0M7SUFFNUMsSUFBTUMscUJBQXFCckIsd0JBQXdCRztJQUVuRCxJQUFJa0IsdUJBQXVCLE1BQU07UUFDL0IsSUFBTWIsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO1FBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQiw0Q0FBMENMO1FBRW5HLElBQU1tQix5QkFBeUJDLElBQUFBLHVCQUFvQixFQUFDRixvQkFBb0JqQixhQUFhQyxTQUFTQztRQUU5RmMsd0NBQXdDRSx3QkFBeUIsR0FBRztRQUVwRSxJQUFJRix1Q0FBdUM7WUFDekNkLGFBQWFVLEtBQUssQ0FBQyxBQUFDLG9CQUF1QyxPQUFwQlIscUJBQW9CLDBDQUF3Q0w7UUFDckc7SUFDRjtJQUVBLE9BQU9pQjtBQUNUO0FBRUEsU0FBU1Asd0JBQXdCVixpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDcEYsSUFBSWtCO0lBRUosSUFBTUgscUJBQXFCckIsd0JBQXdCRztJQUVuRCxJQUFJa0IsdUJBQXVCLE1BQU07UUFDL0IsSUFBTWIsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO1FBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQiw2QkFBMkJMO1FBRXBGLElBQU1zQixtQ0FBbUM7WUFDdkNDO1lBQ0FDO1NBQ0Q7UUFFREgsNEJBQTRCQyxpQ0FBaUNYLElBQUksQ0FBQyxTQUFDYztZQUNqRSxJQUFNSiw0QkFBNEJJLGdDQUFnQ3pCLG1CQUFtQkMsYUFBYUMsU0FBU0M7WUFFM0csSUFBSWtCLDJCQUEyQjtnQkFDN0IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxJQUFJQSwyQkFBMkI7WUFDN0JsQixhQUFhVSxLQUFLLENBQUMsQUFBQyxvQkFBdUMsT0FBcEJSLHFCQUFvQiwyQkFBeUJMO1FBQ3RGO0lBQ0Y7SUFFQSxPQUFPcUI7QUFDVDtBQUVBLFNBQVNFLCtCQUErQnZCLGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUMzRixJQUFJdUIsbUNBQW1DO0lBRXZDLElBQUl4QixTQUFTO1FBQ1gsSUFBTUcsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO1FBRXRERyxhQUFhVSxLQUFLLENBQUMsQUFBQyw4QkFBaUQsT0FBcEJSLHFCQUFvQiwyQkFBeUJMO0lBQ2hHO0lBRUEsT0FBTzBCO0FBQ1Q7QUFFQSxTQUFTRiw4QkFBOEJ4QixpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDMUYsSUFBSXdCLGtDQUFrQztJQUV0QyxJQUFJLENBQUN6QixTQUFTO1FBQ1osSUFBTUcsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO1FBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyx5QkFBNEMsT0FBcEJGLHFCQUFvQiw2QkFBMkJMO1FBRTNGLElBQU00QixrQkFBa0I1QixtQkFDbEI2QiwwQkFBMEJiLGtCQUFxQixDQUFDYyxxQkFBcUIsQ0FBQ0YsaUJBQWlCekIsY0FBYztZQUNuRyxJQUFNNEIsZ0JBQWdCO1lBRXRCLE9BQU9BO1FBQ1Q7UUFFTkosa0NBQWtDRSx5QkFBMEIsR0FBRztRQUUvRCxJQUFJRixpQ0FBaUM7WUFDbkN4QixhQUFhVSxLQUFLLENBQUMsQUFBQywyQkFBOEMsT0FBcEJSLHFCQUFvQiwyQkFBeUJMO1FBQzdGO0lBQ0Y7SUFFQSxPQUFPMkI7QUFDVCJ9
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUp1ZGdlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L2p1ZGdlbWVudFwiO1xuaW1wb3J0IG1ldGFMZXZlbE5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBqdWRnZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9qdWRnZW1lbnQhXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudC4uLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB2ZXJpZnlNZXRhU3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0p1ZGdlbWVudCxcbiAgICB2ZXJpZnlNZXRhc3RhdGVtZW50QXNJc1xuICBdO1xuXG4gIG1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeU1ldGFTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbihtZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChtZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudC5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKG1ldGFMZXZlbE5vZGVWZXJpZmllciwge1xuICB2ZXJpZnlNZXRhc3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5TWV0YXN0YXRlbWVudDtcblxuZnVuY3Rpb24gdmVyaWZ5TWV0YXN0YXRlbWVudEFzSnVkZ2VtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFzdGF0ZW1lbnRKdWRnZW1lbnQgPSBpc01ldGFzdGF0ZW1lbnRKdWRnZW1lbnQobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChtZXRhc3RhdGVtZW50SnVkZ2VtZW50KSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEganVkZ2VtZW50Li4uYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAganVkZ2VtZW50VmVyaWZpZWQgPSB2ZXJpZnlKdWRnZW1lbnQoanVkZ2VtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCA9IGp1ZGdlbWVudFZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzKG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xuXG4gIGNvbnN0IG1ldGFzdGF0ZW1lbnRKdWRnZW1lbnQgPSBpc01ldGFzdGF0ZW1lbnRKdWRnZW1lbnQobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICghbWV0YXN0YXRlbWVudEp1ZGdlbWVudCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudCBhcyBpcy4uLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb25zID0gW1xuICAgICAgdmVyaWZ5RGVyaXZlZE1ldGFzdGF0ZW1lbnRBc0lzLFxuICAgICAgdmVyaWZ5U3RhdGVkTWV0YXN0YXRlbWVudEFzSXNcbiAgICBdO1xuXG4gICAgbWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb25zLnNvbWUoKHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSB2ZXJpZnlNZXRhc3RhdGVtZW50QXNJc0Z1bmN0aW9uKG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcykge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkTWV0YXN0YXRlbWVudEFzSXMobWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQuZGVidWcoYENhbm5vdCB2ZXJpZnkgdGhlIGRlcml2ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRNZXRhc3RhdGVtZW50QXNJcyhtZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBzdGF0ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBtZXRhTGV2ZWxOb2RlVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7ICAvLy9cblxuICAgIGlmIChzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgaXMuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzO1xufVxuXG5mdW5jdGlvbiBpc01ldGFzdGF0ZW1lbnRKdWRnZW1lbnQobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnRKdWRnZW1lbnQgPSAoanVkZ2VtZW50Tm9kZSAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIG1ldGFzdGF0ZW1lbnRKdWRnZW1lbnQ7XG59Il0sIm5hbWVzIjpbImp1ZGdlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeU1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeU1ldGFTdGF0ZW1lbnRGdW5jdGlvbnMiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50QXNKdWRnZW1lbnQiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50QXNJcyIsInNvbWUiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwibWV0YXN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQiLCJtZXRhc3RhdGVtZW50SnVkZ2VtZW50IiwiaXNNZXRhc3RhdGVtZW50SnVkZ2VtZW50IiwianVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5SnVkZ2VtZW50IiwibWV0YXN0YXRlbWVudFZlcmlmaWVkQXNJcyIsInZlcmlmeU1ldGFzdGF0ZW1lbnRBc0lzRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZE1ldGFzdGF0ZW1lbnRBc0lzIiwidmVyaWZ5U3RhdGVkTWV0YXN0YXRlbWVudEFzSXMiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50QXNJc0Z1bmN0aW9uIiwiZGVyaXZlZE1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzSXMiLCJzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0lzIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3Q0E7OztlQUFBOzs7Z0VBdEM0QjtnRUFDTTtxQkFFUjs7Ozs7O0FBRTFCLElBQU1BLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQyxTQUFTQyxvQkFBb0JDLGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNoRixJQUFJQztJQUVKLElBQU1DLHNCQUFzQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUV0REcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0IsdUJBQXFCTDtJQUU5RSxJQUFNUSwrQkFBK0I7UUFDbkNDO1FBQ0FDO0tBQ0Q7SUFFRE4sd0JBQXdCSSw2QkFBNkJHLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNUix3QkFBd0JRLHdCQUF3QlosbUJBQW1CQyxhQUFhQyxTQUFTQztRQUUvRixJQUFJQyx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSx1QkFBdUI7UUFDekJELGFBQWFVLEtBQUssQ0FBQyxBQUFDLG9CQUF1QyxPQUFwQlIscUJBQW9CLHFCQUFtQkw7SUFDaEY7SUFFQSxPQUFPSTtBQUNUO0FBRUFVLE9BQU9DLE1BQU0sQ0FBQ0Msa0JBQXFCLEVB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
@@ -25,9 +25,10 @@ _export(exports, {
25
25
  var _equality = /*#__PURE__*/ _interop_require_default(require("../verify/equality"));
26
26
  var _bracketed = /*#__PURE__*/ _interop_require_default(require("../ocmbinator/bracketed"));
27
27
  var _typeAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/typeAssertion"));
28
- var _definedAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/definedAssertion"));
29
- var _containedAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/containedAssertion"));
28
+ var _statementAsDefinedAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/statementAsDefinedAssertion"));
29
+ var _statementAsContainedAssertion = /*#__PURE__*/ _interop_require_default(require("../verify/statementAsContainedAssertion"));
30
30
  var _statementAgainstCombinator = /*#__PURE__*/ _interop_require_default(require("../verifier/nodes/statementAgainstCombinator"));
31
+ var _constants = require("../constants");
31
32
  var _query = require("../utilities/query");
32
33
  function _array_like_to_array(arr, len) {
33
34
  if (len == null || len > arr.length) len = arr.length;
@@ -59,7 +60,7 @@ function _unsupported_iterable_to_array(o, minLen) {
59
60
  if (n === "Map" || n === "Set") return Array.from(n);
60
61
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
61
62
  }
62
- var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion!"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion!");
63
+ var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!"), operatorTerminalNodesQuery = (0, _query.nodesQuery)("/statement/@operator");
63
64
  function verifyStatement(statementNode, assignments, derived, localContext) {
64
65
  var statementVerified;
65
66
  var statementString = localContext.nodeAsString(statementNode);
@@ -67,8 +68,8 @@ function verifyStatement(statementNode, assignments, derived, localContext) {
67
68
  var verifyStatementFunctions = [
68
69
  verifyStatementAsEquality,
69
70
  verifyStatementAsTypeAssertion,
70
- verifyStatementAsDefinedAssertion,
71
- verifyStatementAsContainedAssertion,
71
+ _statementAsDefinedAssertion.default,
72
+ _statementAsContainedAssertion.default,
72
73
  verifyStatementAgainstCombinators
73
74
  ];
74
75
  statementVerified = verifyStatementFunctions.some(function(verifyStatementFunction) {
@@ -102,70 +103,42 @@ Object.assign(_statementAgainstCombinator.default, {
102
103
  var _default = verifyStatement;
103
104
  function verifyStatementAsEquality(statementNode, assignments, derived, localContext) {
104
105
  var statementVerifiedAsEquality = false;
105
- var equalityNode = equalityNodeQuery(statementNode);
106
- if (equalityNode !== null) {
106
+ var statementEquality = isStatementEquality(statementNode);
107
+ if (statementEquality) {
107
108
  var statementString = localContext.nodeAsString(statementNode);
108
- localContext.trace("Verifying the '".concat(statementString, "' statement as an equality..."), equalityNode);
109
- var equalityVerified = (0, _equality.default)(equalityNode, assignments, derived, localContext, function() {
109
+ localContext.trace("Verifying the '".concat(statementString, "' statement as an equality..."), statementNode);
110
+ var equalityNode = equalityNodeQuery(statementNode), equalityVerified = (0, _equality.default)(equalityNode, assignments, derived, localContext, function() {
110
111
  var verifiedAhead = true;
111
112
  return verifiedAhead;
112
113
  });
113
114
  statementVerifiedAsEquality = equalityVerified; ///
114
115
  if (statementVerifiedAsEquality) {
115
- localContext.debug("...verified the '".concat(statementString, "' statement as an equality."), equalityNode);
116
+ localContext.debug("...verified the '".concat(statementString, "' statement as an equality."), statementNode);
116
117
  }
117
118
  }
118
119
  return statementVerifiedAsEquality;
119
120
  }
120
121
  function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext) {
121
122
  var statementVerifiedAsTypeAssertion = false;
122
- var typeAssertionNode = typeAssertionNodeQuery(statementNode);
123
- if (typeAssertionNode !== null) {
123
+ var statementTypeAssertion = isStatementTypeAssertion(statementNode);
124
+ if (statementTypeAssertion) {
124
125
  var statementString = localContext.nodeAsString(statementNode);
125
- localContext.trace("Verifying the '".concat(statementString, "' statement as a type assertion..."), typeAssertionNode);
126
- var typeAssertionVerified = (0, _typeAssertion.default)(typeAssertionNode, assignments, derived, localContext, function() {
126
+ localContext.trace("Verifying the '".concat(statementString, "' statement as a type assertion..."), statementNode);
127
+ var typeAssertionNode = typeAssertionNodeQuery(statementNode), typeAssertionVerified = (0, _typeAssertion.default)(typeAssertionNode, assignments, derived, localContext, function() {
127
128
  var verifiedAhead = true;
128
129
  return verifiedAhead;
129
130
  });
130
131
  statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
131
132
  if (statementVerifiedAsTypeAssertion) {
132
- localContext.debug("...verified the '".concat(statementString, "' statement as a type assertion."), typeAssertionNode);
133
+ localContext.debug("...verified the '".concat(statementString, "' statement as a type assertion."), statementNode);
133
134
  }
134
135
  }
135
136
  return statementVerifiedAsTypeAssertion;
136
137
  }
137
- function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
138
- var statementVerifiedAsDefinedAssertion = false;
139
- var definedAssertionNode = definedAssertionNodeQuery(statementNode);
140
- if (definedAssertionNode !== null) {
141
- var statementString = localContext.nodeAsString(statementNode);
142
- localContext.trace("Verifying the '".concat(statementString, "' statement as a defined assertion..."), definedAssertionNode);
143
- var definedAssertionVerified = (0, _definedAssertion.default)(definedAssertionNode, assignments, derived, localContext);
144
- statementVerifiedAsDefinedAssertion = definedAssertionVerified; ///
145
- if (statementVerifiedAsDefinedAssertion) {
146
- localContext.debug("...verified the '".concat(statementString, "' statement as a defined assertion."), definedAssertionNode);
147
- }
148
- }
149
- return statementVerifiedAsDefinedAssertion;
150
- }
151
- function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
152
- var statementVerifiedAsContainedAssertion = false;
153
- var containedAssertionNode = containedAssertionNodeQuery(statementNode);
154
- if (containedAssertionNode !== null) {
155
- var statementString = localContext.nodeAsString(statementNode);
156
- localContext.trace("Verifying the '".concat(statementString, "' statement as a contained assertion..."), containedAssertionNode);
157
- var containedAssertionVerified = (0, _containedAssertion.default)(containedAssertionNode, assignments, derived, localContext);
158
- statementVerifiedAsContainedAssertion = containedAssertionVerified; ///
159
- if (statementVerifiedAsContainedAssertion) {
160
- localContext.debug("...verified the '".concat(statementString, "' statement as a contained assertion."), containedAssertionNode);
161
- }
162
- }
163
- return statementVerifiedAsContainedAssertion;
164
- }
165
138
  function verifyStatementAgainstCombinators(statementNode, assignments, derived, localContext) {
166
139
  var statementVerifiedAgainstCombinators = false;
167
- var equalityNode = equalityNodeQuery(statementNode), typeAssertionNode = typeAssertionNodeQuery(statementNode), definedAssertionNode = definedAssertionNodeQuery(statementNode), containedAssertionNode = containedAssertionNodeQuery(statementNode);
168
- if (equalityNode === null && typeAssertionNode === null && definedAssertionNode === null && containedAssertionNode === null) {
140
+ var statementEquality = isStatementEquality(statementNode), statementTypeAssertion = isStatementTypeAssertion(statementNode), statementDefinedAssertion = isStatementDefinedAssertion(statementNode), statementContainedAssertion = isStatementContainedAssertion(statementNode);
141
+ if (!statementEquality && !statementTypeAssertion && !statementDefinedAssertion && !statementContainedAssertion) {
169
142
  var combinators = localContext.getCombinators();
170
143
  combinators = [
171
144
  _bracketed.default
@@ -193,5 +166,31 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
193
166
  }
194
167
  return statementVerifiedAgainstCombinator;
195
168
  }
169
+ function isStatementEquality(statementNode) {
170
+ var equalityNode = equalityNodeQuery(statementNode), statementEquality = equalityNode !== null;
171
+ return statementEquality;
172
+ }
173
+ function isStatementTypeAssertion(statementNode) {
174
+ var typeAssertionNode = typeAssertionNodeQuery(statementNode), statementTypeAssertion = typeAssertionNode === null;
175
+ return statementTypeAssertion;
176
+ }
177
+ function isStatementDefinedAssertion(statementNode) {
178
+ var operatorTerminalNodes = operatorTerminalNodesQuery(statementNode), statementDefinedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
179
+ var content = operatorTerminalNode.getContent(), contentDefined = content === _constants.DEFINED;
180
+ if (contentDefined) {
181
+ return true;
182
+ }
183
+ });
184
+ return statementDefinedAssertion;
185
+ }
186
+ function isStatementContainedAssertion(statementNode) {
187
+ var operatorTerminalNodes = operatorTerminalNodesQuery(statementNode), statementContainedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
188
+ var content = operatorTerminalNode.getContent(), contentContained = content === _constants.CONTAINED;
189
+ if (contentContained) {
190
+ return true;
191
+ }
192
+ });
193
+ return statementContainedAssertion;
194
+ }
196
195
 
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVmaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbnRhaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkKTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5U3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5U3RhdGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgZXF1YWxpdHlOb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICgoZXF1YWxpdHlOb2RlID09PSBudWxsKSAmJiAodHlwZUFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPT09IG51bGwpKSB7XG4gICAgbGV0IGNvbWJpbmF0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbWJpbmF0b3JzKCk7XG5cbiAgICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgICBicmFja2V0ZWRDb21iaW5hdG9yLFxuICAgICAgLi4uY29tYmluYXRvcnNcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGFuZGFsb25lU3RhdGVtZW50IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsInZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbiIsImVxdWFsaXR5Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzIiwic29tZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRDb21iaW5hdG9ycyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yIiwiY29tYmluYXRvclN0cmluZyIsImdldFN0cmluZyIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJB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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24gZnJvbSBcIi4uL3ZlcmlmeS9zdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uXCI7XG5pbXBvcnQgc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2Rlcy9zdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclwiO1xuXG5pbXBvcnQgeyBERUZJTkVELCBDT05UQUlORUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVxdWFsaXR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9lcXVhbGl0eSFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKSxcbiAgICAgIG9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdGF0ZW1lbnQvQG9wZXJhdG9yXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHksXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnNcbiAgXTtcblxuICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhbmRhbG9uZVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGFuZGFsb25lIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gIH1cblxuICBpZiAoc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciwge1xuICB2ZXJpZnlTdGF0ZW1lbnRcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB2ZXJpZnlTdGF0ZW1lbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudEVxdWFsaXR5ID0gaXNTdGF0ZW1lbnRFcXVhbGl0eShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50RXF1YWxpdHkpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudFR5cGVBc3NlcnRpb24gPSBpc1N0YXRlbWVudFR5cGVBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudFR5cGVBc3NlcnRpb24pIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudEVxdWFsaXR5ID0gaXNTdGF0ZW1lbnRFcXVhbGl0eShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50VHlwZUFzc2VydGlvbiA9IGlzU3RhdGVtZW50VHlwZUFzc2VydGlvbihzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbiA9IGlzU3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uID0gaXNTdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCFzdGF0ZW1lbnRFcXVhbGl0eSAmJiAhc3RhdGVtZW50VHlwZUFzc2VydGlvbiAmJiAhc3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbiAmJiAhc3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgbGV0IGNvbWJpbmF0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbWJpbmF0b3JzKCk7XG5cbiAgICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgICBicmFja2V0ZWRDb21iaW5hdG9yLFxuICAgICAgLi4uY29tYmluYXRvcnNcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gaXNTdGF0ZW1lbnRFcXVhbGl0eShzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IGVxdWFsaXR5Tm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBzdGF0ZW1lbnRFcXVhbGl0eSA9IChlcXVhbGl0eU5vZGUgIT09IG51bGwpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gaXNTdGF0ZW1lbnRUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBzdGF0ZW1lbnRUeXBlQXNzZXJ0aW9uID0gKHR5cGVBc3NlcnRpb25Ob2RlID09PSBudWxsKTtcblxuICByZXR1cm4gc3RhdGVtZW50VHlwZUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3Qgb3BlcmF0b3JUZXJtaW5hbE5vZGVzID0gb3BlcmF0b3JUZXJtaW5hbE5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudERlZmluZWRBc3NlcnRpb24gPSBvcGVyYXRvclRlcm1pbmFsTm9kZXMuc29tZSgob3BlcmF0b3JUZXJtaW5hbE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gb3BlcmF0b3JUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnREZWZpbmVkID0gKGNvbnRlbnQgPT09IERFRklORUQpO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnREZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiBpc1N0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IG9wZXJhdG9yVGVybWluYWxOb2RlcyA9IG9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBzdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24gPSBvcGVyYXRvclRlcm1pbmFsTm9kZXMuc29tZSgob3BlcmF0b3JUZXJtaW5hbE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gb3BlcmF0b3JUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250YWluZWQgPSAoY29udGVudCA9PT0gQ09OVEFJTkVEKTtcblxuICAgICAgICAgIGlmIChjb250ZW50Q29udGFpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb247XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhbmRhbG9uZVN0YXRlbWVudCIsInZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJlcXVhbGl0eU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJvcGVyYXRvclRlcm1pbmFsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzIiwic29tZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJzdGF0ZW1lbnRFcXVhbGl0eSIsImlzU3RhdGVtZW50RXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInN0YXRlbWVudFR5cGVBc3NlcnRpb24iLCJpc1N0YXRlbWVudFR5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsInN0YXRlbWVudERlZmluZWRBc3NlcnRpb24iLCJpc1N0YXRlbWVudERlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24iLCJpc1N0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbiIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwib3BlcmF0b3JUZXJtaW5hbE5vZGVzIiwib3BlcmF0b3JUZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImNvbnRlbnREZWZpbmVkIiwiREVGSU5FRCIsImNvbnRlbnRDb250YWluZWQiLCJDT05UQUlORUQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTBFQSxPQUErQjtlQUEvQjs7SUE1QmdCQSx5QkFBeUI7ZUFBekJBOztJQThCQUMseUJBQXlCO2VBQXpCQTs7SUEyQkFDLDhCQUE4QjtlQUE5QkE7OzsrREFyR1c7Z0VBQ0s7b0VBQ0E7a0ZBQ2M7b0ZBQ0U7aUZBQ0k7eUJBRWpCO3FCQUNHOzs7Ozs7Ozs7Ozs7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
@@ -0,0 +1,93 @@
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 verifyStatementAsContainedAssertion;
9
+ }
10
+ });
11
+ var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
12
+ var _verify = require("../utilities/verify");
13
+ var _query = require("../utilities/query");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ var variableNodeQuery = (0, _query.nodeQuery)("/statement/term/variable!"), metastatementVariableNodesQuery = (0, _query.nodesQuery)("/statement/statement//variable");
20
+ function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
21
+ var statementVerifiedAsContainedAssertion;
22
+ var statementString = localContext.nodeAsString(statementNode);
23
+ localContext.trace("Verifying the '".concat(statementString, "' statement as a contained assertion..."), statementNode);
24
+ var statementFunctions = [
25
+ verifyStatementAsDerivedContainedAssertion,
26
+ verifyStatementAsStatedContainedAssertion
27
+ ];
28
+ statementVerifiedAsContainedAssertion = statementFunctions.some(function(statementFunction) {
29
+ var statementVerifiedAsContainedAssertion = statementFunction(statementNode, assignments, derived, localContext);
30
+ if (statementVerifiedAsContainedAssertion) {
31
+ return true;
32
+ }
33
+ });
34
+ if (statementVerifiedAsContainedAssertion) {
35
+ localContext.debug("...verified the '".concat(statementString, "' statement as a contained assertion."), statementNode);
36
+ }
37
+ return statementVerifiedAsContainedAssertion;
38
+ }
39
+ function verifyStatementAsDerivedContainedAssertion(statementNode, assignments, derived, localContext) {
40
+ var statementVerifiedAsDefinedContainedAssertion = false;
41
+ if (derived) {
42
+ var statementString = localContext.nodeAsString(statementNode);
43
+ localContext.trace("Verifying the derived '".concat(statementString, "' statement as a contained assertion..."), statementNode);
44
+ var statementNegated = (0, _verify.isAssertionNegated)(statementNode), variableNode = variableNodeQuery(statementNode), negated = statementNegated; ///
45
+ if (false) {
46
+ ///
47
+ } else if (variableNode !== null) {
48
+ var metastatementVariableNodes = metastatementVariableNodesQuery(statementNode), variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some(function(metastatementVariableNode) {
49
+ var variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
50
+ if (variableNodeMatchesMetaArgumentVariableNode) {
51
+ return true;
52
+ }
53
+ });
54
+ if (!negated) {
55
+ if (variableNodeMatchesMetaArgumentVariableNode) {
56
+ statementVerifiedAsDefinedContainedAssertion = true;
57
+ }
58
+ }
59
+ if (negated) {
60
+ if (!variableNodeMatchesMetaArgumentVariableNode) {
61
+ statementVerifiedAsDefinedContainedAssertion = true;
62
+ }
63
+ }
64
+ }
65
+ if (statementVerifiedAsDefinedContainedAssertion) {
66
+ localContext.debug("...verified the derived '".concat(statementString, "' statement as a contained assertion."), statementNode);
67
+ }
68
+ }
69
+ return statementVerifiedAsDefinedContainedAssertion;
70
+ }
71
+ function verifyStatementAsStatedContainedAssertion(statementNode, assignments, derived, localContext) {
72
+ var statementVerifiedAsStatedContainedAssertion = false;
73
+ if (!derived) {
74
+ var statementString = localContext.nodeAsString(statementNode);
75
+ localContext.trace("Verifying the stated '".concat(statementString, "' statement as a contained assertion..."), statementNode);
76
+ var intrinsicLevel = localContext.isIntrinsicLevel();
77
+ if (intrinsicLevel) {
78
+ localContext.debug("The stated '".concat(statementString, "' statement as a contained assertion cannot be verified at intrinsic level."), statementNode);
79
+ } else {
80
+ var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
81
+ var verifiedAhead = true;
82
+ return verifiedAhead;
83
+ });
84
+ statementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
85
+ }
86
+ if (statementVerifiedAsStatedContainedAssertion) {
87
+ localContext.debug("...verified the stated '".concat(statementString, "' statement as a contained assertion."), statementNode);
88
+ }
89
+ }
90
+ return statementVerifiedAsStatedContainedAssertion;
91
+ }
92
+
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBtZXRhTGV2ZWxOb2RlVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGUvbWV0YUxldmVsXCI7XG5cbmltcG9ydCB7IGlzQXNzZXJ0aW9uTmVnYXRlZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N0YXRlbWVudC9zdGF0ZW1lbnQvL3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBzdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKChzdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBzdGF0ZW1lbnRGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0Rlcml2ZWRDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgZGVyaXZlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG5lZ2F0ZWQgPSBzdGF0ZW1lbnROZWdhdGVkOyAgLy8vXG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlcyA9IG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gbWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXMuc29tZSgobWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlLm1hdGNoKG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZENvbnRhaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKCF2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbiBjYW5ub3QgYmUgdmVyaWZpZWQgYXQgaW50cmluc2ljIGxldmVsLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbWV0YUxldmVsTm9kZVZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNTdGF0ZWRDb250YWluZWRBc3NlcnRpb24iLCJzb21lIiwic3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsInN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50TmVnYXRlZCIsImlzQXNzZXJ0aW9uTmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsIm5lZ2F0ZWQiLCJtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlcyIsInZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUiLCJtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlIiwibWF0Y2giLCJzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW50cmluc2ljTGV2ZWwiLCJpc0ludHJpbnNpY0xldmVsIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJtZXRhTGV2ZWxOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O2dFQVJVO3NCQUVDO3FCQUNHOzs7Ozs7QUFFdEMsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLDhCQUM5QkMsa0NBQWtDQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXBDLFNBQVNKLG9DQUFv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