occam-verify-cli 0.0.373 → 0.0.375
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/main.js +3 -1
- package/bin/utilities/fileSystem.js +10 -8
- package/lib/axiom.js +45 -12
- package/lib/combinator.js +13 -7
- package/lib/conclusion.js +8 -1
- package/lib/constructor.js +24 -8
- package/lib/context/file.js +6 -6
- package/lib/context/release/directory.js +19 -19
- package/lib/context/release/file.js +336 -0
- package/lib/context/release.js +11 -6
- package/lib/index.js +5 -1
- package/lib/kinds.js +5 -5
- package/lib/label.js +16 -1
- package/lib/premise.js +8 -1
- package/lib/rule.js +39 -12
- package/lib/ruleNames.js +5 -1
- package/lib/type.js +19 -8
- package/lib/utilities/releaseContext.js +36 -2
- package/lib/verify/release.js +3 -20
- package/package.json +1 -1
- package/src/axiom.js +62 -13
- package/src/combinator.js +14 -2
- package/src/conclusion.js +11 -0
- package/src/constructor.js +23 -2
- package/src/context/file.js +5 -5
- package/src/context/release/directory.js +26 -26
- package/src/context/release/file.js +236 -0
- package/src/context/release.js +14 -7
- package/src/index.js +1 -0
- package/src/kinds.js +1 -1
- package/src/label.js +17 -0
- package/src/premise.js +11 -0
- package/src/rule.js +44 -12
- package/src/ruleNames.js +1 -0
- package/src/type.js +19 -2
- package/src/utilities/releaseContext.js +51 -1
- package/src/verify/release.js +2 -34
package/bin/main.js
CHANGED
|
@@ -9,7 +9,7 @@ const { DEFAULT_LOG_LEVEL } = require("./defaults"),
|
|
|
9
9
|
const { log } = loggingUtilities,
|
|
10
10
|
{ first } = arrayUtilities,
|
|
11
11
|
{ setLogLevel } = log,
|
|
12
|
-
{ createReleaseContext } = releaseContextUtilities;
|
|
12
|
+
{ createReleaseContext, initialiseReleaseContexts } = releaseContextUtilities;
|
|
13
13
|
|
|
14
14
|
function main(commands, options) {
|
|
15
15
|
const firstCommand = first(commands),
|
|
@@ -31,6 +31,8 @@ function main(commands, options) {
|
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
initialiseReleaseContexts(releaseName, releaseContextMap);
|
|
35
|
+
|
|
34
36
|
const releaseVerified = verifyRelease(releaseName, releaseContextMap);
|
|
35
37
|
|
|
36
38
|
if (releaseVerified) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const { DirectoryReleaseContext } = require("../../lib/index"), ///
|
|
3
|
+
const { FileReleaseContext, DirectoryReleaseContext } = require("../../lib/index"), ///
|
|
4
4
|
{ Entries, fileSystemUtilities : occamFileSystemUtilities } = require("occam-file-system"),
|
|
5
5
|
{ loggingUtilities, fileSystemUtilities : necessaryFileSystemUtilities } = require("necessary");
|
|
6
6
|
|
|
@@ -15,8 +15,8 @@ function releaseContextFromReleaseName(name, context, callback) {
|
|
|
15
15
|
entryPath = `${projectsDirectoryPath}/${name}`,
|
|
16
16
|
entryFile = isEntryFile(entryPath),
|
|
17
17
|
releaseContext = entryFile ?
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
fileReleaseContextFromNameAndProjectsDirectoryPath(name, projectsDirectoryPath) :
|
|
19
|
+
directoryReleaseContextFromNameAndProjectsDirectoryPath(name, projectsDirectoryPath);
|
|
20
20
|
|
|
21
21
|
callback(releaseContext);
|
|
22
22
|
}
|
|
@@ -25,13 +25,13 @@ module.exports = {
|
|
|
25
25
|
releaseContextFromReleaseName
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
function
|
|
29
|
-
let releaseContext = null;
|
|
30
|
-
|
|
28
|
+
function fileReleaseContextFromNameAndProjectsDirectoryPath(name, projectsDirectoryPath) {
|
|
31
29
|
const filePath = `${projectsDirectoryPath}/${name}`,
|
|
32
30
|
content = readFile(filePath),
|
|
33
31
|
releaseJSONString = content, ///
|
|
34
|
-
releaseJSON = JSON.parse(releaseJSONString)
|
|
32
|
+
releaseJSON = JSON.parse(releaseJSONString),
|
|
33
|
+
{ context } = releaseJSON,
|
|
34
|
+
contextJSON = context; ///
|
|
35
35
|
|
|
36
36
|
let { entries } = releaseJSON;
|
|
37
37
|
|
|
@@ -39,11 +39,13 @@ function releaseContextFromFile(name, projectsDirectoryPath) {
|
|
|
39
39
|
|
|
40
40
|
entries = Entries.fromJSON(json);
|
|
41
41
|
|
|
42
|
+
const fileReleaseContext = FileReleaseContext.fromLogNameEntriesCallbacksAndContextJSON(log, name, entries, callbacks, contextJSON),
|
|
43
|
+
releaseContext = fileReleaseContext; ///
|
|
42
44
|
|
|
43
45
|
return releaseContext;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
function
|
|
48
|
+
function directoryReleaseContextFromNameAndProjectsDirectoryPath(name, projectsDirectoryPath) {
|
|
47
49
|
let releaseContext = null;
|
|
48
50
|
|
|
49
51
|
const topmostDirectoryName = name, ///
|
package/lib/axiom.js
CHANGED
|
@@ -8,8 +8,10 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Axiom;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _label = /*#__PURE__*/ _interopRequireDefault(require("./label"));
|
|
11
12
|
var _kinds = require("./kinds");
|
|
12
13
|
var _string = require("./utilities/string");
|
|
14
|
+
var _ruleNames = require("occam-custom-grammars/lib/ruleNames");
|
|
13
15
|
function _classCallCheck(instance, Constructor) {
|
|
14
16
|
if (!(instance instanceof Constructor)) {
|
|
15
17
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -29,6 +31,11 @@ function _createClass(Constructor, protoProps, staticProps) {
|
|
|
29
31
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
32
|
return Constructor;
|
|
31
33
|
}
|
|
34
|
+
function _interopRequireDefault(obj) {
|
|
35
|
+
return obj && obj.__esModule ? obj : {
|
|
36
|
+
default: obj
|
|
37
|
+
};
|
|
38
|
+
}
|
|
32
39
|
var Axiom = /*#__PURE__*/ function() {
|
|
33
40
|
function Axiom(labels, statementNode, suppositionStatementNode, consequentStatementNode) {
|
|
34
41
|
_classCallCheck(this, Axiom);
|
|
@@ -77,21 +84,47 @@ var Axiom = /*#__PURE__*/ function() {
|
|
|
77
84
|
{
|
|
78
85
|
key: "toJSON",
|
|
79
86
|
value: function toJSON() {
|
|
80
|
-
var
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
});
|
|
87
|
+
var labelsJSON = this.labels.map(function(label) {
|
|
88
|
+
var labelJSON = label.toJSON();
|
|
89
|
+
return labelJSON;
|
|
90
|
+
}), statementString = (0, _string.nodeAsString)(this.statementNode), consequentStatementString = (0, _string.nodeAsString)(this.consequentStatementNode), suppositionStatementString = (0, _string.nodeAsString)(this.suppositionStatementNode), kind = _kinds.AXIOM_KIND, labels = labelsJSON, statement = statementString, consequent = consequentStatementString, supposition = suppositionStatementString, json = {
|
|
91
|
+
kind: kind,
|
|
92
|
+
labels: labels,
|
|
93
|
+
statement: statement,
|
|
94
|
+
consequent: consequent,
|
|
95
|
+
supposition: supposition
|
|
96
|
+
};
|
|
91
97
|
return json;
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
100
|
], [
|
|
101
|
+
{
|
|
102
|
+
key: "fromJSON",
|
|
103
|
+
value: function fromJSON(json, callback) {
|
|
104
|
+
var labels = json.labels;
|
|
105
|
+
var statement = json.statement, consequent = json.consequent, supposition = json.supposition;
|
|
106
|
+
labels = labels.map(function(label) {
|
|
107
|
+
var _$json = label; ///
|
|
108
|
+
label = _label.default.fromJSON(_$json);
|
|
109
|
+
return label;
|
|
110
|
+
});
|
|
111
|
+
var statementNode = null, consequentNode = null, suppositionNode = null;
|
|
112
|
+
if (statement !== null) {
|
|
113
|
+
var content = statement, ruleName = _ruleNames.STATEMENT_RULE_NAME, node = callback(content, ruleName);
|
|
114
|
+
statementNode = node; ///
|
|
115
|
+
}
|
|
116
|
+
if (consequent !== null) {
|
|
117
|
+
var content1 = consequent, ruleName1 = _ruleNames.STATEMENT_RULE_NAME, node1 = callback(content1, ruleName1);
|
|
118
|
+
consequentNode = node1; ///
|
|
119
|
+
}
|
|
120
|
+
if (supposition !== null) {
|
|
121
|
+
var content2 = supposition, ruleName2 = _ruleNames.STATEMENT_RULE_NAME, node2 = callback(content2, ruleName2);
|
|
122
|
+
suppositionNode = node2; ///
|
|
123
|
+
}
|
|
124
|
+
var axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
|
|
125
|
+
return axiom;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
95
128
|
{
|
|
96
129
|
key: "fromStatementNodeAndLabels",
|
|
97
130
|
value: function fromStatementNodeAndLabels(statementNode, labels) {
|
|
@@ -110,4 +143,4 @@ var Axiom = /*#__PURE__*/ function() {
|
|
|
110
143
|
return Axiom;
|
|
111
144
|
}();
|
|
112
145
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5cbmltcG9ydCB7IEFYSU9NX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnMvbGliL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBeGlvbSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgc3RhdGVtZW50Tm9kZSwgc3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlLCBjb25zZXF1ZW50U3RhdGVtZW50Tm9kZSkge1xuICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgIHRoaXMuc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5zdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5jb25zZXF1ZW50U3RhdGVtZW50Tm9kZSA9IGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0TGFiZWxzKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVscztcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIGdldFN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3NpdGlvblN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRDb25zZXF1ZW50U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zZXF1ZW50U3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5zdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBjb25zZXF1ZW50U3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuY29uc2VxdWVudFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBraW5kID0gQVhJT01fS0lORCxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAgY29uc2VxdWVudCA9IGNvbnNlcXVlbnRTdGF0ZW1lbnRTdHJpbmcsIC8vL1xuICAgICAgICAgIHN1cHBvc2l0aW9uID0gc3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmcsIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgc3RhdGVtZW50LFxuICAgICAgICAgICAgY29uc2VxdWVudCxcbiAgICAgICAgICAgIHN1cHBvc2l0aW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNhbGxiYWNrKSB7XG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBzdGF0ZW1lbnQsIGNvbnNlcXVlbnQsIHN1cHBvc2l0aW9uIH0gPSBqc29uO1xuXG4gICAgbGFiZWxzID0gbGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBsYWJlbDsgLy8vXG5cbiAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbik7XG5cbiAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9KTtcblxuICAgIGxldCBzdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgY29uc2VxdWVudE5vZGUgPSBudWxsLFxuICAgICAgICBzdXBwb3NpdGlvbk5vZGUgPSBudWxsO1xuXG4gICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgY29udGVudCA9IHN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgICAgcnVsZU5hbWUgPSBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKTtcblxuICAgICAgc3RhdGVtZW50Tm9kZSA9IG5vZGU7IC8vL1xuICAgIH1cblxuICAgIGlmIChjb25zZXF1ZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gY29uc2VxdWVudCwgIC8vL1xuICAgICAgICAgICAgcnVsZU5hbWUgPSBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKTtcblxuICAgICAgY29uc2VxdWVudE5vZGUgPSBub2RlOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3VwcG9zaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdXBwb3NpdGlvbiwgIC8vL1xuICAgICAgICAgICAgcnVsZU5hbWUgPSBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKTtcblxuICAgICAgc3VwcG9zaXRpb25Ob2RlID0gbm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgYXhpb20gPSBuZXcgQXhpb20obGFiZWxzLCBzdGF0ZW1lbnROb2RlLCBjb25zZXF1ZW50Tm9kZSwgc3VwcG9zaXRpb25Ob2RlKTtcblxuICAgIHJldHVybiBheGlvbTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdXBwb3NpdGlvblN0YXRlbWVudE5vZGVDb25zZXF1ZW50U3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkF4aW9tIiwibGFiZWxzIiwic3RhdGVtZW50Tm9kZSIsInN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwiZ2V0TGFiZWxzIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdldFN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImdldENvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwibWF0Y2hMYWJlbE5hbWUiLCJsYWJlbE5hbWUiLCJtYXRjaGVzTGFiZWxOYW1lIiwic29tZSIsImxhYmVsIiwibmFtZSIsImxhYmVsTWF0Y2hlc05hbWUiLCJtYXRjaE5hbWUiLCJ0b0pTT04iLCJsYWJlbHNKU09OIiwibWFwIiwibGFiZWxKU09OIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29uc2VxdWVudFN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nIiwia2luZCIsIkFYSU9NX0tJTkQiLCJzdGF0ZW1lbnQiLCJjb25zZXF1ZW50Iiwic3VwcG9zaXRpb24iLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsIkxhYmVsIiwiY29uc2VxdWVudE5vZGUiLCJzdXBwb3NpdGlvbk5vZGUiLCJjb250ZW50IiwicnVsZU5hbWUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwibm9kZSIsImF4aW9tIiwiZnJvbVN0YXRlbWVudE5vZGVBbmRMYWJlbHMiLCJmcm9tU3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlQ29uc2VxdWVudFN0YXRlbWVudE5vZGVBbmRMYWJlbHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7OzBEQU5IO3FCQUVTO3NCQUNFO3lCQUNPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FB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
|
package/lib/combinator.js
CHANGED
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _string = require("./utilities/string");
|
|
12
12
|
var _kinds = require("./kinds");
|
|
13
|
+
var _ruleNames = require("./ruleNames");
|
|
13
14
|
function _classCallCheck(instance, Constructor) {
|
|
14
15
|
if (!(instance instanceof Constructor)) {
|
|
15
16
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -47,16 +48,21 @@ var Combinator = /*#__PURE__*/ function() {
|
|
|
47
48
|
{
|
|
48
49
|
key: "toJSON",
|
|
49
50
|
value: function toJSON() {
|
|
50
|
-
var statementString = (0, _string.nodeAsString)(this.statementNode), kind = _kinds.COMBINATOR_KIND, statement = statementString, json =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
];
|
|
51
|
+
var statementString = (0, _string.nodeAsString)(this.statementNode), kind = _kinds.COMBINATOR_KIND, statement = statementString, json = {
|
|
52
|
+
kind: kind,
|
|
53
|
+
statement: statement
|
|
54
|
+
};
|
|
56
55
|
return json;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
], [
|
|
59
|
+
{
|
|
60
|
+
key: "fromJSON",
|
|
61
|
+
value: function fromJSON(json, callback) {
|
|
62
|
+
var statement = json.statement, content = statement, ruleName = _ruleNames.STATEMENT_RULE_NAME, node = callback(content, ruleName), statementNode = node, combinator = new Combinator(statementNode);
|
|
63
|
+
return combinator;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
60
66
|
{
|
|
61
67
|
key: "fromStatementNode",
|
|
62
68
|
value: function fromStatementNode(statementNode) {
|
|
@@ -68,4 +74,4 @@ var Combinator = /*#__PURE__*/ function() {
|
|
|
68
74
|
return Combinator;
|
|
69
75
|
}();
|
|
70
76
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBDT01CSU5BVE9SX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5hdG9yIHtcbiAgY29uc3RydWN0b3Ioc3RhdGVtZW50Tm9kZSkge1xuICAgIHRoaXMuc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBzdHJpbmcgPSBgJHtzdGF0ZW1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAga2luZCA9IENPTUJJTkFUT1JfS0lORCxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRTdHJpbmcsICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIHN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHsgc3RhdGVtZW50IH0gPSBqc29uLFxuICAgICAgICAgIGNvbnRlbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgY29tYmluYXRvciA9IG5ldyBDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3IgPSBuZXcgQ29tYmluYXRvcihzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkNvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0b0pTT04iLCJraW5kIiwiQ09NQklOQVRPUl9LSU5EIiwic3RhdGVtZW50IiwianNvbiIsImZyb21KU09OIiwiY2FsbGJhY2siLCJjb250ZW50IiwicnVsZU5hbWUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwibm9kZSIsImNvbWJpbmF0b3IiLCJmcm9tU3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7c0JBSlE7cUJBQ0c7eUJBQ0k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLElBQUEsQUFBTUEsMkJBQU47YUFBTUEsV0FDUEMsYUFBYTs4QkFETkQ7UUFFakIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBOztpQkFGSkQ7O1lBS25CRSxLQUFBQTttQkFBQUEsU0FBQUEsV0FBVztnQkFDVCxJQUFJQztnQkFFSixJQUFNQyxrQkFBa0JDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDSixhQUFhO2dCQUV2REUsU0FBUyxBQUFDLEdBQWtCLE9BQWhCQztnQkFFWixPQUFPRDtZQUNUOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUYsa0JBQWtCQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ0osYUFBYSxHQUNqRE0sT0FBT0Msc0JBQWUsRUFDdEJDLFlBQVlMLGlCQUNaTSxPQUFPO29CQUNMSCxNQUFBQTtvQkFDQUUsV0FBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT0M7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFFBQVEsRUFBRTtnQkFDOUIsSUFBTSxBQUFFSCxZQUFjQyxLQUFkRCxXQUNGSSxVQUFVSixXQUNWSyxXQUFXQyw4QkFBbUIsRUFDOUJDLE9BQU9KLFNBQVNDLFNBQVNDLFdBQ3pCYixnQkFBZ0JlLE1BQ2hCQyxhQUFhLElBakNGakIsV0FpQ2lCQztnQkFFbEMsT0FBT2dCO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxrQkFBa0JqQixhQUFhLEVBQUU7Z0JBQ3RDLElBQU1nQixhQUFhLElBdkNGakIsV0F1Q2lCQztnQkFFbEMsT0FBT2dCO1lBQ1Q7OztXQTFDbUJqQiJ9
|
package/lib/conclusion.js
CHANGED
|
@@ -60,6 +60,13 @@ var Conclusion = /*#__PURE__*/ function() {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
], [
|
|
63
|
+
{
|
|
64
|
+
key: "fromJSON",
|
|
65
|
+
value: function fromJSON(json, callback) {
|
|
66
|
+
var metastatement = json.metastatement, ruleName = _ruleNames.METASTATEMENT_RULE_NAME, content = metastatement, node = callback(content, ruleName), metastatementNode = node, conclusion = new Conclusion(metastatementNode);
|
|
67
|
+
return conclusion;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
63
70
|
{
|
|
64
71
|
key: "fromMetastatementNode",
|
|
65
72
|
value: function fromMetastatementNode(metastatementNode) {
|
|
@@ -147,4 +154,4 @@ function matchConclusionMetastatementNode(conclusionMetastatementNode, metastate
|
|
|
147
154
|
return conclusionMetastatementNodeMatches;
|
|
148
155
|
}
|
|
149
156
|
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25jbHVzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25jbHVzaW9uIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBtZXRhc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbmNsdXNpb24gPSBuZXcgQ29uY2x1c2lvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29uY2x1c2lvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2RlKGNvbmNsdXNpb25Ob2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlID0gY29uY2x1c2lvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBjb25jbHVzaW9uTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUoY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGNvbmNsdXNpb25Ob2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2Rlcyhjb25jbHVzaW9uTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBjb25jbHVzaW9uTm9kZXNMZW5ndGggPSBjb25jbHVzaW9uTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gY29uY2x1c2lvbk5vZGVzTGVuZ3RoKSB7XG4gICAgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9kZShjb25jbHVzaW9uTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG5cbiAgY29uc3QgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NZXRhdmFyaWFibGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUoY29uY2x1c2lvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gY29uY2x1c2lvblRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpLFxuICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZShjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIGNvbmNsdXNpb25SdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBjb25jbHVzaW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbk5vZGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk5vZGVzKGNvbmNsdXNpb25Ob2Rlcywgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXNNYXRjaGVzOyAvLy9cblxuICAgIGlmICghY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lID0gKHJ1bGVOYW1lID09PSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZShjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCA9IGNvbmNsdXNpb25DaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZXNMZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBmaXJzdENvbmNsdXNpb25DaGlsZE5vZGUgPSBmaXJzdChjb25jbHVzaW9uQ2hpbGROb2RlcyksXG4gICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZSA9IGZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uQ2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlID0gY29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUgPSAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPT09IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgY29uY2x1c2lvbk1ldGFWYXJpYWJsZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhdmFyaWFibGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25NZXRhVmFyaWFibGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJDb25jbHVzaW9uIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3Vic3RpdHV0aW9ucyIsIm5vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsInRvSlNPTiIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhc3RhdGVtZW50IiwianNvbiIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsImNvbmNsdXNpb24iLCJtYXRjaENvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvbk5vZGUiLCJub2RlIiwiY29uY2x1c2lvbk5vZGVNYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwicnVsZU5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uVGVybWluYWxOb2RlIiwiY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUiLCJtYXRjaENvbmNsdXNpb25Ob2RlcyIsImNvbmNsdXNpb25Ob2RlcyIsIm5vZGVzIiwiY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiY29uY2x1c2lvbk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZSIsImNvbmNsdXNpb25NZXRhdmFyaWFibGVOb2RlIiwiY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXMiLCJjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFTdWJzdGl0dXRpb24iLCJmaW5kIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCIsIm1hdGNoTm9kZXMiLCJtYXRjaGVzIiwibWF0Y2giLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiY29uY2x1c2lvblJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb25jbHVzaW9uQ2hpbGROb2RlcyIsImNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyIsInJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCIsImZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSIsImZpcnN0IiwiY29uY2x1c2lvbkNoaWxkTm9kZSIsImNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJjb25jbHVzaW9uTWV0YVZhcmlhYmxlTWF0Y2hlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFPcUJBOzs7cUJBTEM7c0JBQ087cUJBQ3dCO3lCQUNXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqRCxJQUFBLEFBQU1BLDJCQW1DbEIsQUFuQ1k7YUFBTUEsV0FDUEMsaUJBQWlCOzhCQURWRDtRQUVqQixJQUFJLENBQUNDLGlCQUFpQixHQUFHQTs7aUJBRlJEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QjtnQkFDckIsT0FBTyxJQUFJLENBQUNELGlCQUFpQjtZQUMvQjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUJGLGlCQUFpQixFQUFFRyxpQkFBaUIsRUFBRTtnQkFDM0QsSUFBTUMsa0JBQWtCSixtQkFDbEJLLDRCQUE0QixJQUFJLENBQUNMLGlCQUFpQixFQUNsRE0sbUNBQW1DQywrQkFBK0JGLDJCQUEyQkQsaUJBQWlCRCxvQkFDOUdLLDJCQUEyQkYsa0NB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
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25jbHVzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25jbHVzaW9uIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBtZXRhc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgeyBtZXRhc3RhdGVtZW50IH0gPSBqc29uLFxuICAgICAgICAgIHJ1bGVOYW1lID0gTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgY29udGVudCA9IG1ldGFzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBub2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbiA9IG5ldyBDb25jbHVzaW9uKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBjb25jbHVzaW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbmNsdXNpb24gPSBuZXcgQ29uY2x1c2lvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29uY2x1c2lvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2RlKGNvbmNsdXNpb25Ob2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlID0gY29uY2x1c2lvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBjb25jbHVzaW9uTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUoY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGNvbmNsdXNpb25Ob2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2Rlcyhjb25jbHVzaW9uTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBjb25jbHVzaW9uTm9kZXNMZW5ndGggPSBjb25jbHVzaW9uTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gY29uY2x1c2lvbk5vZGVzTGVuZ3RoKSB7XG4gICAgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9kZShjb25jbHVzaW9uTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG5cbiAgY29uc3QgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NZXRhdmFyaWFibGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUoY29uY2x1c2lvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gY29uY2x1c2lvblRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpLFxuICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZShjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIGNvbmNsdXNpb25SdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBjb25jbHVzaW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbk5vZGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk5vZGVzKGNvbmNsdXNpb25Ob2Rlcywgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXNNYXRjaGVzOyAvLy9cblxuICAgIGlmICghY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lID0gKHJ1bGVOYW1lID09PSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZShjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCA9IGNvbmNsdXNpb25DaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZXNMZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBmaXJzdENvbmNsdXNpb25DaGlsZE5vZGUgPSBmaXJzdChjb25jbHVzaW9uQ2hpbGROb2RlcyksXG4gICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZSA9IGZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uQ2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlID0gY29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUgPSAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPT09IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgY29uY2x1c2lvbk1ldGFWYXJpYWJsZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhdmFyaWFibGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25NZXRhVmFyaWFibGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJDb25jbHVzaW9uIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3Vic3RpdHV0aW9ucyIsIm5vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsInRvSlNPTiIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhc3RhdGVtZW50IiwianNvbiIsImZyb21KU09OIiwiY2FsbGJhY2siLCJydWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiY29udGVudCIsIm5vZGUiLCJjb25jbHVzaW9uIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hDb25jbHVzaW9uTm9kZSIsImNvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvbk5vZGVNYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwicnVsZU5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uVGVybWluYWxOb2RlIiwiY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUiLCJtYXRjaENvbmNsdXNpb25Ob2RlcyIsImNvbmNsdXNpb25Ob2RlcyIsIm5vZGVzIiwiY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiY29uY2x1c2lvbk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZSIsImNvbmNsdXNpb25NZXRhdmFyaWFibGVOb2RlIiwiY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXMiLCJjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFTdWJzdGl0dXRpb24iLCJmaW5kIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCIsIm1hdGNoTm9kZXMiLCJtYXRjaGVzIiwibWF0Y2giLCJnZXRSdWxlTmFtZSIsImNvbmNsdXNpb25SdWxlTmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY29uY2x1c2lvbkNoaWxkTm9kZXMiLCJjb25jbHVzaW9uQ2hpbGROb2Rlc01hdGNoZXMiLCJydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSIsImNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsImNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsImNvbmNsdXNpb25DaGlsZE5vZGVzTGVuZ3RoIiwiZmlyc3RDb25jbHVzaW9uQ2hpbGROb2RlIiwiZmlyc3QiLCJjb25jbHVzaW9uQ2hpbGROb2RlIiwiY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsImNvbmNsdXNpb25NZXRhVmFyaWFibGVNYXRjaGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7OztxQkFMQztzQkFDTztxQkFDd0I7eUJBQ1c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpELElBQUEsQUFBTUEsMkJBOENsQixBQTlDWTthQUFNQSxXQUNQQyxpQkFBaUI7OEJBRFZEO1FBRWpCLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBOztpQkFGUkQ7O1lBS25CRSxLQUFBQTttQkFBQUEsU0FBQUEsdUJBQXVCO2dCQUNyQixPQUFPLElBQUksQ0FBQ0QsaUJBQWlCO1lBQy9COzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QkYsaUJBQWlCLEVBQUVHLGlCQUFpQixFQUFFO2dCQUMzRCxJQUFNQyxrQkFBa0JKLG1CQUNsQkssNEJBQTRCLElBQUksQ0FBQ0wsaUJBQWlCLEVBQ2xETSxtQ0FBbUNDLCtCQUErQkYsMkJBQTJCRCxpQkFBaUJELG9CQUM5R0ssMkJBQTJCRixrQ0FBa0MsR0FBRztnQkFFdEUsT0FBT0U7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNYLGlCQUFpQixHQUN6RFksZ0JBQWdCRixxQkFDaEJHLE9BQU87b0JBQ0xELGVBQUFBO2dCQUNGO2dCQUVOLE9BQU9DO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFRSxRQUFRLEVBQUU7Z0JBQzlCLElBQU0sQUFBRUgsZ0JBQWtCQyxLQUFsQkQsZUFDRkksV0FBV0Msa0NBQXVCLEVBQ2xDQyxVQUFVTixlQUNWTyxPQUFPSixTQUFTRyxTQUFTRixXQUN6QmhCLG9CQUFvQm1CLE1BQ3BCQyxhQUFhLElBbENGckIsV0FrQ2lCQztnQkFFbEMsT0FBT29CO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxzQkFBc0JyQixpQkFBaUIsRUFBRTtnQkFDOUMsSUFBTW9CLGFBQWEsSUF4Q0ZyQixXQXdDaUJDO2dCQUVsQyxPQUFPb0I7WUFDVDs7O1dBM0NtQnJCOztBQThDckIsU0FBU3VCLG9CQUFvQkMsY0FBYyxFQUFFSixJQUFJLEVBQUVoQixpQkFBaUIsRUFBRTtJQUNwRSxJQUFJcUIsd0JBQXdCLEtBQUs7SUFFakMsSUFBTUMsbUJBQW1CTixLQUFLTyxjQUFjLElBQ3RDQyx1QkFBdUJKLGVBQWVHLGNBQWM7SUFFMUQsSUFBSUQscUJBQXFCRSxzQkFBc0I7UUFDN0MsSUFBSUYsa0JBQWtCO1lBQ3BCLElBQU1HLGVBQWVULE1BQ2ZVLHlCQUF5Qk4sZ0JBQ3pCTyxnQ0FBZ0NDLDRCQUE0QkYsd0JBQXdCRCxjQUFjekI7WUFFeEdxQix3QkFBd0JNLCtCQUFnQyxHQUFHO1FBQzdELE9BQU87WUFDTCxJQUFNMUIsa0JBQWtCZSxNQUNsQmQsNEJBQTRCa0IsZ0JBQzVCakIsbUNBQW1DQywrQkFBK0JGLDJCQUEyQkQsaUJBQWlCRDtZQUVwSHFCLHdCQUF3QmxCLGtDQUFrQyxHQUFHO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT2tCO0FBQ1Q7QUFFQSxTQUFTUSxxQkFBcUJDLGVBQWUsRUFBRUMsS0FBSyxFQUFFL0IsaUJBQWlCLEVBQUU7SUFDdkUsSUFBSWdDLHlCQUF5QixLQUFLO0lBRWxDLElBQU1DLGNBQWNGLE1BQU1HLE1BQU0sRUFDMUJDLHdCQUF3QkwsZ0JBQWdCSSxNQUFNO0lBRXBELElBQUlELGdCQUFnQkUsdUJBQXVCO1FBQ3pDSCx5QkFBeUJELE1BQU1LLEtBQUssQ0FBQyxTQUFDcEIsTUFBTXFCLE9BQVU7WUFDcEQsSUFBTWpCLGlCQUFpQlUsZUFBZSxDQUFDTyxNQUFNLEVBQ3ZDaEIsd0JBQXdCRixvQkFBb0JDLGdCQUFnQkosTUFBTWhCO1lBRXhFLElBQUlxQix1QkFBdUI7Z0JBQ3pCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPVztBQUNUO0FBRUEsU0FBU00sNEJBQTRCQywwQkFBMEIsRUFBRVIsS0FBSyxFQUFFL0IsaUJBQWlCLEVBQUU7SUFDekYsSUFBSXdDLGdDQUFnQyxJQUFJO0lBRXhDLElBQU1DLDZCQUE2QkMsSUFBQUEsMkNBQW9DLEVBQUNILDZCQUNsRUksbUJBQW1CM0Msa0JBQWtCNEMsSUFBSSxDQUFDLFNBQUNELGtCQUFxQjtRQUM5RCxJQUFNRSxtQkFBbUJGLGlCQUFpQkcsbUJBQW1CO1FBRTdELElBQUlELHFCQUFxQkosNEJBQTRCO1lBQ25ELE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSCxNQUFNLElBQUk7SUFFaEIsSUFBSUUscUJBQXFCLElBQUksRUFBRTtRQUM3QixJQUFNSSw2QkFBNkJKLGlCQUFpQkssVUFBVSxDQUFDakI7UUFFL0RTLGdDQUFnQ08sNEJBQTZCLEdBQUc7SUFDbEUsQ0FBQztJQUVELE9BQU9QO0FBQ1Q7QUFFQSxTQUFTWiw0QkFBNEJGLHNCQUFzQixFQUFFRCxZQUFZLEVBQUV6QixpQkFBaUIsRUFBRTtJQUM1RixJQUFNaUQsVUFBVXZCLHVCQUF1QndCLEtBQUssQ0FBQ3pCLGVBQ3ZDRSxnQ0FBZ0NzQixTQUFVLEdBQUc7SUFFbkQsT0FBT3RCO0FBQ1Q7QUFFQSxTQUFTdkIsK0JBQStCRix5QkFBeUIsRUFBRUQsZUFBZSxFQUFFRCxpQkFBaUIsRUFBRTtJQUNyRyxJQUFJRyxtQ0FBbUMsS0FBSztJQUU1QyxJQUFNVSxXQUFXWixnQkFBZ0JrRCxXQUFXLElBQ3RDQyxxQkFBcUJsRCwwQkFBMEJpRCxXQUFXLElBQUksR0FBRztJQUV2RSxJQUFJdEMsYUFBYXVDLG9CQUFvQjtRQUNuQyxJQUFNQyxhQUFhcEQsZ0JBQWdCcUQsYUFBYSxJQUMxQ0MsdUJBQXVCckQsMEJBQTBCb0QsYUFBYSxJQUM5RHZCLFFBQVFzQixZQUNSdkIsa0JBQWtCeUIsc0JBQ2xCQyw4QkFBOEIzQixxQkFBcUJDLGlCQUFpQkMsT0FBTy9CO1FBRWpGRyxtQ0FBbUNxRCw2QkFBNkIsR0FBRztRQUVuRSxJQUFJLENBQUNyRCxrQ0FBa0M7WUFDckMsSUFBTXNELGdDQUFpQzVDLGFBQWFDLGtDQUF1QjtZQUUzRSxJQUFJMkMsK0JBQStCO2dCQUNqQyxJQUFNNUQsb0JBQW9CSSxpQkFDcEJ5RCw4QkFBOEJ4RCwyQkFDOUJ5RCxxQ0FBcUNDLGlDQUFpQ0YsNkJBQTZCN0QsbUJBQW1CRztnQkFFNUhHLG1DQUFtQ3dELG9DQUFvQyxHQUFHO1lBQzVFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU94RDtBQUNUO0FBRUEsU0FBU3lELGlDQUFpQ0YsMkJBQTJCLEVBQUU3RCxpQkFBaUIsRUFBRUcsaUJBQWlCLEVBQUU7SUFDM0csSUFBSTJELHFDQUFxQyxLQUFLO0lBRTlDLElBQU16RCw0QkFBNEJ3RCw2QkFDNUJILHVCQUF1QnJELDBCQUEwQm9ELGFBQWEsSUFDOURPLDZCQUE2Qk4scUJBQXFCckIsTUFBTTtJQUU5RCxJQUFJMkIsK0JBQStCLEdBQUc7UUFDcEMsSUFBTUMsMkJBQTJCQyxJQUFBQSxZQUFLLEVBQUNSLHVCQUNqQ1Msc0JBQXNCRiwwQkFDdEJHLHFDQUFxQ0Qsb0JBQW9CRSxpQkFBaUI7UUFFaEYsSUFBSUQsb0NBQW9DO1lBQ3RDLElBQU1FLGlDQUFpQ0gscUJBQ2pDSSx5Q0FBeUNELCtCQUErQmhCLFdBQVcsSUFDbkZrQiw2REFBOERELDJDQUEyQ0UsaUNBQXNCO1lBRXJJLElBQUlELDREQUE0RDtnQkFDOUQsSUFBTTlCLDZCQUE2QjRCLGdDQUM3QmxFLGtCQUFrQkosbUJBQ2xCd0QsYUFBYXBELGdCQUFnQnFELGFBQWEsSUFDMUN2QixRQUFRc0IsWUFDUmtCLGdDQUFnQ2pDLDRCQUE0QkMsNEJBQTRCUixPQUFPL0I7Z0JBRXJHMkQscUNBQXFDWSwrQkFBK0IsR0FBRztZQUN6RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPWjtBQUNUIn0=
|
package/lib/constructor.js
CHANGED
|
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Constructor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _type = /*#__PURE__*/ _interopRequireDefault(require("./type"));
|
|
11
12
|
var _string = require("./utilities/string");
|
|
13
|
+
var _ruleNames = require("./ruleNames");
|
|
12
14
|
var _kinds = require("./kinds");
|
|
13
15
|
function _classCallCheck(instance, Constructor) {
|
|
14
16
|
if (!(instance instanceof Constructor)) {
|
|
@@ -29,6 +31,11 @@ function _createClass(Constructor, protoProps, staticProps) {
|
|
|
29
31
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
32
|
return Constructor;
|
|
31
33
|
}
|
|
34
|
+
function _interopRequireDefault(obj) {
|
|
35
|
+
return obj && obj.__esModule ? obj : {
|
|
36
|
+
default: obj
|
|
37
|
+
};
|
|
38
|
+
}
|
|
32
39
|
var Constructor = /*#__PURE__*/ function() {
|
|
33
40
|
function Constructor(termNode, type) {
|
|
34
41
|
_classCallCheck(this, Constructor);
|
|
@@ -65,17 +72,26 @@ var Constructor = /*#__PURE__*/ function() {
|
|
|
65
72
|
{
|
|
66
73
|
key: "toJSON",
|
|
67
74
|
value: function toJSON() {
|
|
68
|
-
var termString = (0, _string.nodeAsString)(this.termNode), typeJSON = this.type === null ? null : this.type.toJSON(), kind = _kinds.CONSTRUCTOR_KIND, term = termString, type = typeJSON, json =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
];
|
|
75
|
+
var termString = (0, _string.nodeAsString)(this.termNode), typeJSON = this.type === null ? null : this.type.toJSON(), kind = _kinds.CONSTRUCTOR_KIND, term = termString, type = typeJSON, json = {
|
|
76
|
+
kind: kind,
|
|
77
|
+
term: term,
|
|
78
|
+
type: type
|
|
79
|
+
};
|
|
75
80
|
return json;
|
|
76
81
|
}
|
|
77
82
|
}
|
|
78
83
|
], [
|
|
84
|
+
{
|
|
85
|
+
key: "fromJSON",
|
|
86
|
+
value: function fromJSON(json, callback) {
|
|
87
|
+
var type = json.type;
|
|
88
|
+
var term = json.term, content = term, ruleName = _ruleNames.TERM_RULE_NAME, node = callback(content, ruleName), termNode = node; ///
|
|
89
|
+
json = type; ///
|
|
90
|
+
type = _type.default.fromJSON(json);
|
|
91
|
+
var constructor = new Constructor(termNode, type);
|
|
92
|
+
return constructor;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
79
95
|
{
|
|
80
96
|
key: "fromTermNodeAndType",
|
|
81
97
|
value: function fromTermNodeAndType(termNode, type) {
|
|
@@ -87,4 +103,4 @@ var Constructor = /*#__PURE__*/ function() {
|
|
|
87
103
|
return Constructor;
|
|
88
104
|
}();
|
|
89
105
|
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3Rvci5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3Rvci5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vdHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBURVJNX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgQ09OU1RSVUNUT1JfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnN0cnVjdG9yIHtcbiAgY29uc3RydWN0b3IodGVybU5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnRlcm1Ob2RlID0gdGVybU5vZGU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFRlcm1Ob2RlKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1Ob2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBudWxsKSB7XG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vU3VwZXJUeXBlID0gdHJ1ZSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuYXNTdHJpbmcobm9TdXBlclR5cGUpO1xuXG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfToke3R5cGVTdHJpbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSksXG4gICAgICAgICAgdHlwZUpTT04gPSAodGhpcy50eXBlID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlLnRvSlNPTigpLFxuICAgICAgICAgIGtpbmQgPSBDT05TVFJVQ1RPUl9LSU5ELFxuICAgICAgICAgIHRlcm0gPSB0ZXJtU3RyaW5nLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICB0ZXJtLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGxldCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICBjb25zdCB7IHRlcm0gfSA9IGpzb24sXG4gICAgICAgICAgY29udGVudCA9IHRlcm0sICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgIG5vZGUgPSBjYWxsYmFjayhjb250ZW50LCBydWxlTmFtZSksXG4gICAgICAgICAgdGVybU5vZGUgPSBub2RlOyAvLy9cblxuICAgIGpzb24gPSB0eXBlOyAgLy8vXG5cbiAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uKTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3IgPSBuZXcgQ29uc3RydWN0b3IodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkNvbnN0cnVjdG9yIiwidGVybU5vZGUiLCJ0eXBlIiwiZ2V0VGVybU5vZGUiLCJnZXRUeXBlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibm9TdXBlclR5cGUiLCJ0eXBlU3RyaW5nIiwidG9KU09OIiwidHlwZUpTT04iLCJraW5kIiwiQ09OU1RSVUNUT1JfS0lORCIsInRlcm0iLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsImNvbnRlbnQiLCJydWxlTmFtZSIsIlRFUk1fUlVMRV9OQU1FIiwibm9kZSIsIlR5cGUiLCJjb25zdHJ1Y3RvciIsImZyb21UZXJtTm9kZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O3lEQU5KO3NCQUVZO3lCQUNFO3FCQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxCLElBQUEsQUFBTUEsNEJBQU47YUFBTUEsWUFDUEMsUUFBUSxFQUFFQyxJQUFJOzhCQURQRjtRQUVqQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBOztpQkFIS0Y7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBYztnQkFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtZQUN0Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVO2dCQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVc7Z0JBQ1QsSUFBSUM7Z0JBRUosSUFBTUMsYUFBYUMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNQLFFBQVE7Z0JBRTdDLElBQUksSUFBSSxDQUFDQyxJQUFJLEtBQUssSUFBSSxFQUFFO29CQUN0QkksU0FBUyxBQUFDLEdBQWEsT0FBWEM7Z0JBQ2QsT0FBTztvQkFDTCxJQUFNRSxjQUFjLElBQUksRUFDbEJDLGFBQWEsSUFBSSxDQUFDUixJQUFJLENBQUNHLFFBQVEsQ0FBQ0k7b0JBRXRDSCxTQUFTLEFBQUMsR0FBZ0JJLE9BQWRILFlBQVcsS0FBYyxPQUFYRztnQkFDNUIsQ0FBQztnQkFFRCxPQUFPSjtZQUNUOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUosYUFBYUMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNQLFFBQVEsR0FDdkNXLFdBQVcsQUFBQyxJQUFJLENBQUNWLElBQUksS0FBSyxJQUFJLEdBQ2hCLElBQUksR0FDRixJQUFJLENBQUNBLElBQUksQ0FBQ1MsTUFBTSxFQUFFLEVBQ2xDRSxPQUFPQyx1QkFBZ0IsRUFDdkJDLE9BQU9SLFlBQ1BMLE9BQU9VLFVBQ1BJLE9BQU87b0JBQ0xILE1BQUFBO29CQUNBRSxNQUFBQTtvQkFDQWIsTUFBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT2M7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFFBQVEsRUFBRTtnQkFDOUIsSUFBSSxBQUFFaEIsT0FBU2MsS0FBVGQ7Z0JBRU4sSUFBTSxBQUFFYSxPQUFTQyxLQUFURCxNQUNGSSxVQUFVSixNQUNWSyxXQUFXQyx5QkFBYyxFQUN6QkMsT0FBT0osU0FBU0MsU0FBU0MsV0FDekJuQixXQUFXcUIsTUFBTSxHQUFHO2dCQUUxQk4sT0FBT2QsTUFBTyxHQUFHO2dCQUVqQkEsT0FBT3FCLGFBQUksQ0FBQ04sUUFBUSxDQUFDRDtnQkFFckIsSUFBTVEsY0FBYyxJQTdESHhCLFlBNkRtQkMsVUFBVUM7Z0JBRTlDLE9BQU9zQjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0Esb0JBQW9CeEIsUUFBUSxFQUFFQyxJQUFJLEVBQUU7Z0JBQ3pDLElBQU1zQixjQUFjLElBbkVIeEIsWUFtRW1CQyxVQUFVQztnQkFFOUMsT0FBT3NCO1lBQ1Q7OztXQXRFbUJ4QiJ9
|
package/lib/context/file.js
CHANGED
|
@@ -375,23 +375,23 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
375
375
|
var json = [];
|
|
376
376
|
this.rules.forEach(function(rule) {
|
|
377
377
|
var ruleJSON = rule.toJSON();
|
|
378
|
-
|
|
378
|
+
json.push(ruleJSON);
|
|
379
379
|
});
|
|
380
380
|
this.types.forEach(function(type) {
|
|
381
381
|
var typeJSON = type.toJSON();
|
|
382
|
-
|
|
382
|
+
json.push(typeJSON);
|
|
383
383
|
});
|
|
384
384
|
this.axioms.forEach(function(axiom) {
|
|
385
385
|
var axiomJSON = axiom.toJSON();
|
|
386
|
-
|
|
386
|
+
json.push(axiomJSON);
|
|
387
387
|
});
|
|
388
388
|
this.combinators.forEach(function(combinator) {
|
|
389
389
|
var combinatorJSON = combinator.toJSON();
|
|
390
|
-
|
|
390
|
+
json.push(combinatorJSON);
|
|
391
391
|
});
|
|
392
392
|
this.constructors.forEach(function(constructor) {
|
|
393
393
|
var constructorJSON = constructor.toJSON();
|
|
394
|
-
|
|
394
|
+
json.push(constructorJSON);
|
|
395
395
|
});
|
|
396
396
|
return json;
|
|
397
397
|
}
|
|
@@ -410,4 +410,4 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
410
410
|
return FileContext;
|
|
411
411
|
}();
|
|
412
412
|
|
|
413
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHJld3JpdGVOb2RlcyB9IGZyb20gXCJvY2NhbS1ncmFtbWFyLXV0aWxpdGllc1wiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbGVhc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucywgZ3JlYXRlc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdG9rZW5zXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocmVsZWFzZUNvbnRleHQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIHJ1bGVzLCB0eXBlcywgYXhpb21zLCB2YXJpYWJsZXMsIGNvbWJpbmF0b3JzLCBjb25zdHJ1Y3RvcnMpIHtcbiAgICB0aGlzLnJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5ydWxlcyA9IHJ1bGVzO1xuICAgIHRoaXMudHlwZXMgPSB0eXBlcztcbiAgICB0aGlzLmF4aW9tcyA9IGF4aW9tcztcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgICB0aGlzLmNvbWJpbmF0b3JzID0gY29tYmluYXRvcnM7XG4gICAgdGhpcy5jb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRSZWxlYXNlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlQ29udGV4dDtcbiAgfVxuXG4gIGdldEZpbGVQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVQYXRoO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZXM7XG4gIH1cblxuICBnZXRMYWJlbHMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgaWYgKGJ1YmJsZSkge1xuICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRMYWJlbHMgPSB0aGlzLnJlbGVhc2VDb250ZXh0LmdldExhYmVscygpO1xuXG4gICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5nZXRSdWxlcygpLFxuICAgICAgICAgIGF4aW9tcyA9IHRoaXMuZ2V0QXhpb21zKCk7XG5cbiAgICBydWxlcy5mb3JFYWNoKChydWxlKSA9PiB7XG4gICAgICBjb25zdCBydWxlTGFiZWxzID0gcnVsZS5nZXRMYWJlbHMoKTtcblxuICAgICAgcHVzaChsYWJlbHMsIHJ1bGVMYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgYXhpb21zLmZvckVhY2goKGF4aW9tKSA9PiB7XG4gICAgICBjb25zdCBheGlvbUxhYmVscyA9IGF4aW9tLmdldExhYmVscygpO1xuXG4gICAgICBwdXNoKGxhYmVscywgYXhpb21MYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFJ1bGVzKGJ1YmJsZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtcbiAgICAgIC4uLnRoaXMucnVsZXNcbiAgICBdO1xuXG4gICAgaWYgKGJ1YmJsZSkge1xuICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRSdWxlcyA9IHRoaXMucmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoKTtcblxuICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG5cbiAgZ2V0VHlwZXMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgLi4udGhpcy50eXBlc1xuICAgIF07XG5cbiAgICBpZiAoYnViYmxlKSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dFR5cGVzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRUeXBlcygpO1xuXG4gICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGF4aW9tcyA9IFtcbiAgICAgIC4uLnRoaXMuYXhpb21zXG4gICAgXTtcblxuICAgIGlmIChidWJibGUpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0QXhpb21zID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMoKTtcblxuICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW1xuICAgICAgLi4udGhpcy5jb21iaW5hdG9yc1xuICAgIF07XG5cbiAgICBpZiAoYnViYmxlKSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcnMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0b3JzXG4gICAgXTtcblxuICAgIGlmIChidWJibGUpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucygpIHtcbiAgICBjb25zdCBhc3NlcnRpb25zID0gW107ICAvLy9cblxuICAgIHJldHVybiBhc3NlcnRpb25zO1xuICB9XG5cbiAgZ2V0TWV0YUFzc2VydGlvbnMoKSB7XG4gICAgY29uc3QgbWV0YUFzc2VydGlvbnMgPSBbXTsgIC8vL1xuXG4gICAgcmV0dXJuIG1ldGFBc3NlcnRpb25zO1xuICB9XG5cbiAgZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLmdldFR5cGVzKCksXG4gICAgICAgICAgdHlwZSA9IHR5cGVzLmZpbmQoKHR5cGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB0eXBlLm1hdGNoVHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBmaW5kTGFiZWxCeUxhYmVsTmFtZShsYWJlbE5hbWUpIHtcbiAgICBjb25zdCBuYW1lID0gbGFiZWxOYW1lLCAgLy8vXG4gICAgICAgICAgbGFiZWxzID0gdGhpcy5nZXRMYWJlbHMoKSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVscy5maW5kKChsYWJlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxhYmVsLm1hdGNoTmFtZShuYW1lKTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIGZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHtcbiAgICBjb25zdCBsYWJlbE5hbWUgPSByZWZlcmVuY2VOYW1lLCAgLy8vXG4gICAgICAgICAgcnVsZXMgPSB0aGlzLmdldFJ1bGVzKCksXG4gICAgICAgICAgcnVsZSA9IHJ1bGVzLmZpbmQoKHJ1bGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzTGFiZWxOYW1lID0gcnVsZS5tYXRjaExhYmVsTmFtZShsYWJlbE5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocnVsZU1hdGNoZXNMYWJlbE5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHtcbiAgICBjb25zdCBsYWJlbE5hbWUgPSByZWZlcmVuY2VOYW1lLCAgLy8vXG4gICAgICAgICAgYXhpb21zID0gdGhpcy5nZXRBeGlvbXMoKSxcbiAgICAgICAgICBheGlvbSA9IGF4aW9tcy5maW5kKChheGlvbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXhpb21NYXRjaGVzTGFiZWxOYW1lID0gYXhpb20ubWF0Y2hMYWJlbE5hbWUobGFiZWxOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGF4aW9tTWF0Y2hlc0xhYmVsTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YXJpYWJsZS5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSAodHlwZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdHlwZVByZXNlbnQ7XG4gIH1cblxuICBpc0xhYmVsUHJlc2VudEJ5TGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5maW5kTGFiZWxCeUxhYmVsTmFtZShsYWJlbE5hbWUpLFxuICAgICAgICAgIGxhYmVsUHJlc2VudCA9IChsYWJlbCAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gbGFiZWxQcmVzZW50O1xuICB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSAodmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGFkZFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZXMucHVzaCh0eXBlKTtcbiAgfVxuXG4gIGFkZFJ1bGUocnVsZSkge1xuICAgIHRoaXMucnVsZXMucHVzaChydWxlKTtcbiAgfVxuXG4gIGFkZEF4aW9tKGF4aW9tKSB7XG4gICAgdGhpcy5heGlvbXMucHVzaChheGlvbSk7XG4gIH1cblxuICBhZGRWYXJpYWJsZSh2YXJpYWJsZSkge1xuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuICB9XG5cbiAgYWRkQ29tYmluYXRvcihjb21iaW5hdG9yKSB7XG4gICAgdGhpcy5jb21iaW5hdG9ycy5wdXNoKGNvbWJpbmF0b3IpO1xuICB9XG5cbiAgYWRkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpIHtcbiAgICB0aGlzLmNvbnN0cnVjdG9ycy5wdXNoKGNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIHRyYWNlKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC50cmFjZShtZXNzYWdlKTsgfVxuXG4gIGRlYnVnKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC5kZWJ1ZyhtZXNzYWdlKTsgfVxuXG4gIGluZm8obWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmluZm8obWVzc2FnZSk7IH1cblxuICB3YXJuaW5nKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC53YXJuaW5nKG1lc3NhZ2UpOyB9XG5cbiAgZXJyb3IobWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmVycm9yKG1lc3NhZ2UpOyB9XG5cbiAgZmF0YWwobWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmZhdGFsKG1lc3NhZ2UpOyB9XG5cbiAgaGFsdChub2RlKSB7XG4gICAgY29uc3QgbGVhc3RMaW5lSW5kZXggPSBsZWFzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKSxcbiAgICAgICAgICBncmVhdGVzdExpbmVJbmRleCA9IGdyZWF0ZXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dC5oYWx0KHRoaXMuZmlsZVBhdGgsIGxlYXN0TGluZUluZGV4LCBncmVhdGVzdExpbmVJbmRleCk7XG4gIH1cblxuICBiZWdpbihub2RlKSB7XG4gICAgY29uc3QgbGVhc3RMaW5lSW5kZXggPSBsZWFzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKSxcbiAgICAgICAgICBncmVhdGVzdExpbmVJbmRleCA9IGdyZWF0ZXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dC5iZWdpbih0aGlzLmZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpO1xuICB9XG5cbiAgY29tcGxldGUobm9kZSkge1xuICAgIGNvbnN0IGxlYXN0TGluZUluZGV4ID0gbGVhc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0aGlzLnRva2VucyksXG4gICAgICAgICAgZ3JlYXRlc3RMaW5lSW5kZXggPSBncmVhdGVzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKTtcblxuICAgIHRoaXMucmVsZWFzZUNvbnRleHQuY29tcGxldGUodGhpcy5maWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBqc29uID0gW107XG5cbiAgICB0aGlzLnJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHtcbiAgICAgIGNvbnN0IHJ1bGVKU09OID0gcnVsZS50b0pTT04oKTtcblxuICAgICAgcHVzaChqc29uLCBydWxlSlNPTik7XG4gICAgfSk7XG5cbiAgICB0aGlzLnR5cGVzLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHR5cGVKU09OID0gdHlwZS50b0pTT04oKTtcblxuICAgICAgcHVzaChqc29uLCB0eXBlSlNPTik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmF4aW9tcy5mb3JFYWNoKChheGlvbSkgPT4ge1xuICAgICAgY29uc3QgYXhpb21KU09OID0gYXhpb20udG9KU09OKCk7XG5cbiAgICAgIHB1c2goanNvbiwgYXhpb21KU09OKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tYmluYXRvcnMuZm9yRWFjaCgoY29tYmluYXRvcikgPT4ge1xuICAgICAgY29uc3QgY29tYmluYXRvckpTT04gPSBjb21iaW5hdG9yLnRvSlNPTigpO1xuXG4gICAgICBwdXNoKGpzb24sIGNvbWJpbmF0b3JKU09OKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29uc3RydWN0b3JzLmZvckVhY2goKGNvbnN0cnVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RvckpTT04gPSBjb25zdHJ1Y3Rvci50b0pTT04oKTtcblxuICAgICAgcHVzaChqc29uLCBjb25zdHJ1Y3RvckpTT04pXG4gICAgfSk7XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVsZWFzZUNvbnRleHRBbmRGaWxlUGF0aChyZWxlYXNlQ29udGV4dCwgZmlsZVBhdGgpIHtcbiAgICBjb25zdCBmaWxlID0gcmVsZWFzZUNvbnRleHQuZ2V0RmlsZShmaWxlUGF0aCksXG4gICAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IHJlbGVhc2VDb250ZXh0LnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICAgIG5vZGUgPSByZWxlYXNlQ29udGV4dC5wYXJzZSh0b2tlbnMpO1xuXG4gICAgcmV3cml0ZU5vZGVzKG5vZGUpO1xuXG4gICAgY29uc3QgcnVsZXMgPSBbXSxcbiAgICAgICAgICB0eXBlcyA9IFtdLFxuICAgICAgICAgIGF4aW9tcyA9IFtdLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIGNvbWJpbmF0b3JzID0gW10sXG4gICAgICAgICAgY29uc3RydWN0b3JzID0gW10sXG4gICAgICAgICAgZmlsZUNvbnRleHQgPSBuZXcgRmlsZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIHJ1bGVzLCB0eXBlcywgYXhpb21zLCB2YXJpYWJsZXMsIGNvbWJpbmF0b3JzLCBjb25zdHJ1Y3RvcnMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkZpbGVDb250ZXh0IiwicmVsZWFzZUNvbnRleHQiLCJmaWxlUGF0aCIsInRva2VucyIsIm5vZGUiLCJydWxlcyIsInR5cGVzIiwiYXhpb21zIiwidmFyaWFibGVzIiwiY29tYmluYXRvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRSZWxlYXNlQ29udGV4dCIsImdldEZpbGVQYXRoIiwiZ2V0VG9rZW5zIiwiZ2V0Tm9kZSIsImdldFZhcmlhYmxlcyIsImdldExhYmVscyIsImJ1YmJsZSIsImxhYmVscyIsInJlbGVhc2VDb250ZXh0TGFiZWxzIiwicHVzaCIsImdldFJ1bGVzIiwiZ2V0QXhpb21zIiwiZm9yRWFjaCIsInJ1bGUiLCJydWxlTGFiZWxzIiwiYXhpb20iLCJheGlvbUxhYmVscyIsInJlbGVhc2VDb250ZXh0UnVsZXMiLCJnZXRUeXBlcyIsInJlbGVhc2VDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldENvbWJpbmF0b3JzIiwicmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyIsImdldENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiZ2V0QXNzZXJ0aW9ucyIsImFzc2VydGlvbnMiLCJnZXRNZXRhQXNzZXJ0aW9ucyIsIm1ldGFBc3NlcnRpb25zIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwidHlwZU5hbWUiLCJ0eXBlIiwiZmluZCIsIm1hdGNoZXMiLCJtYXRjaFR5cGVOYW1lIiwiZmluZExhYmVsQnlMYWJlbE5hbWUiLCJsYWJlbE5hbWUiLCJuYW1lIiwibGFiZWwiLCJtYXRjaE5hbWUiLCJmaW5kUnVsZUJ5UmVmZXJlbmNlTmFtZSIsInJlZmVyZW5jZU5hbWUiLCJydWxlTWF0Y2hlc0xhYmVsTmFtZSIsIm1hdGNoTGFiZWxOYW1lIiwiZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lIiwiYXhpb21NYXRjaGVzTGFiZWxOYW1lIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZSIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOYW1lIiwibGFiZWxQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlUHJlc2VudCIsImFkZFR5cGUiLCJhZGRSdWxlIiwiYWRkQXhpb20iLCJhZGRWYXJpYWJsZSIsImFkZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwiYWRkQ29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvciIsInRyYWNlIiwibWVzc2FnZSIsImRlYnVnIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImZhdGFsIiwiaGFsdCIsImxlYXN0TGluZUluZGV4IiwibGVhc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsImdyZWF0ZXN0TGluZUluZGV4IiwiZ3JlYXRlc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsImJlZ2luIiwiY29tcGxldGUiLCJ0b0pTT04iLCJqc29uIiwicnVsZUpTT04iLCJ0eXBlSlNPTiIsImF4aW9tSlNPTiIsImNvbWJpbmF0b3JKU09OIiwiY29uc3RydWN0b3JKU09OIiwiZnJvbVJlbGVhc2VDb250ZXh0QW5kRmlsZVBhdGgiLCJmaWxlIiwiZ2V0RmlsZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5pc2UiLCJwYXJzZSIsInJld3JpdGVOb2RlcyIsImZpbGVDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7OztxQ0FMUTtxQkFFUjtzQkFDK0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRSxJQUFBLEFBQU1BLDRCQUFOO2FBQU1BLFlBQ1BDLGNBQWMsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLFlBQVk7OEJBRDNGVjtRQUVqQixJQUFJLENBQUNDLGNBQWMsR0FBR0E7UUFDdEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxZQUFZLEdBQUdBOztpQkFYSFY7O1lBY25CVyxLQUFBQTttQkFBQUEsU0FBQUEsb0JBQW9CO2dCQUNsQixPQUFPLElBQUksQ0FBQ1YsY0FBYztZQUM1Qjs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjO2dCQUNaLE9BQU8sSUFBSSxDQUFDVixRQUFRO1lBQ3RCOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQVk7Z0JBQ1YsT0FBTyxJQUFJLENBQUNWLE1BQU07WUFDcEI7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVTtnQkFDUixPQUFPLElBQUksQ0FBQ1YsSUFBSTtZQUNsQjs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlO2dCQUNiLE9BQU8sSUFBSSxDQUFDUCxTQUFTO1lBQ3ZCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQXlCO29CQUFmQyxTQUFBQSxpRUFBUyxJQUFJO2dCQUNyQixJQUFNQyxTQUFTLEVBQUU7Z0JBRWpCLElBQUlELFFBQVE7b0JBQ1YsSUFBTUUsdUJBQXVCLElBQUksQ0FBQ2xCLGNBQWMsQ0FBQ2UsU0FBUztvQkFFMURJLElBQUFBLFdBQUksRUFBQ0YsUUFBUUM7Z0JBQ2YsQ0FBQztnQkFFRCxJQUFNZCxRQUFRLElBQUksQ0FBQ2dCLFFBQVEsSUFDckJkLFNBQVMsSUFBSSxDQUFDZSxTQUFTO2dCQUU3QmpCLE1BQU1rQixPQUFPLENBQUMsU0FBQ0MsTUFBUztvQkFDdEIsSUFBTUMsYUFBYUQsS0FBS1IsU0FBUztvQkFFakNJLElBQUFBLFdBQUksRUFBQ0YsUUFBUU87Z0JBQ2Y7Z0JBRUFsQixPQUFPZ0IsT0FBTyxDQUFDLFNBQUNHLE9BQVU7b0JBQ3hCLElBQU1DLGNBQWNELE1BQU1WLFNBQVM7b0JBRW5DSSxJQUFBQSxXQUFJLEVBQUNGLFFBQVFTO2dCQUNmO2dCQUVBLE9BQU9UO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBd0I7b0JBQWZKLFNBQUFBLGlFQUFTLElBQUk7Z0JBQ3BCLElBQU1aLFFBQ0osbUJBQUcsSUFBSSxDQUFDQSxLQUFLO2dCQUdmLElBQUlZLFFBQVE7b0JBQ1YsSUFBTVcsc0JBQXNCLElBQUksQ0FBQzNCLGNBQWMsQ0FBQ29CLFFBQVE7b0JBRXhERCxJQUFBQSxXQUFJLEVBQUNmLE9BQU91QjtnQkFDZCxDQUFDO2dCQUVELE9BQU92QjtZQUNUOzs7WUFFQXdCLEtBQUFBO21CQUFBQSxTQUFBQSxXQUF3QjtvQkFBZlosU0FBQUEsaUVBQVMsSUFBSTtnQkFDcEIsSUFBTVgsUUFDSixtQkFBRyxJQUFJLENBQUNBLEtBQUs7Z0JBR2YsSUFBSVcsUUFBUTtvQkFDVixJQUFNYSxzQkFBc0IsSUFBSSxDQUFDN0IsY0FBYyxDQUFDNEIsUUFBUTtvQkFFeERULElBQUFBLFdBQUksRUFBQ2QsT0FBT3dCO2dCQUNkLENBQUM7Z0JBRUQsT0FBT3hCO1lBQ1Q7OztZQUVBZ0IsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQXlCO29CQUFmTCxTQUFBQSxpRUFBUyxJQUFJO2dCQUNyQixJQUFNVixTQUNKLG1CQUFHLElBQUksQ0FBQ0EsTUFBTTtnQkFHaEIsSUFBSVUsUUFBUTtvQkFDVixJQUFNYyx1QkFBdUIsSUFBSSxDQUFDOUIsY0FBYyxDQUFDcUIsU0FBUztvQkFFMURGLElBQUFBLFdBQUksRUFBQ2IsUUFBUXdCO2dCQUNmLENBQUM7Z0JBRUQsT0FBT3hCO1lBQ1Q7OztZQUVBeUIsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUE4QjtvQkFBZmYsU0FBQUEsaUVBQVMsSUFBSTtnQkFDMUIsSUFBTVIsY0FDSixtQkFBRyxJQUFJLENBQUNBLFdBQVc7Z0JBR3JCLElBQUlRLFFBQVE7b0JBQ1YsSUFBTWdCLDRCQUE0QixJQUFJLENBQUNoQyxjQUFjLENBQUMrQixjQUFjO29CQUVwRVosSUFBQUEsV0FBSSxFQUFDWCxhQUFhd0I7Z0JBQ3BCLENBQUM7Z0JBRUQsT0FBT3hCO1lBQ1Q7OztZQUVBeUIsS0FBQUE7bUJBQUFBLFNBQUFBLGtCQUErQjtvQkFBZmpCLFNBQUFBLGlFQUFTLElBQUk7Z0JBQzNCLElBQU1QLGVBQ0osbUJBQUcsSUFBSSxDQUFDQSxZQUFZO2dCQUd0QixJQUFJTyxRQUFRO29CQUNWLElBQU1rQiw2QkFBNkIsSUFBSSxDQUFDbEMsY0FBYyxDQUFDaUMsZUFBZTtvQkFFdEVkLElBQUFBLFdBQUksRUFBQ1YsY0FBY3lCO2dCQUNyQixDQUFDO2dCQUVELE9BQU96QjtZQUNUOzs7WUFFQTBCLEtBQUFBO21CQUFBQSxTQUFBQSxnQkFBZ0I7Z0JBQ2QsSUFBTUMsYUFBYSxFQUFFLEVBQUcsR0FBRztnQkFFM0IsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0I7Z0JBQ2xCLElBQU1DLGlCQUFpQixFQUFFLEVBQUcsR0FBRztnQkFFL0IsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxtQkFBbUJDLFFBQVEsRUFBRTtnQkFDM0IsSUFBTW5DLFFBQVEsSUFBSSxDQUFDdUIsUUFBUSxJQUNyQmEsT0FBT3BDLE1BQU1xQyxJQUFJLENBQUMsU0FBQ0QsTUFBUztvQkFDMUIsSUFBTUUsVUFBVUYsS0FBS0csYUFBYSxDQUFDSjtvQkFFbkMsSUFBSUcsU0FBUzt3QkFDWCxPQUFPLElBQUk7b0JBQ2IsQ0FBQztnQkFDSCxNQUFNLElBQUk7Z0JBRWhCLE9BQU9GO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQyxTQUFTLEVBQUU7Z0JBQzlCLElBQU1DLE9BQU9ELFdBQ1A3QixTQUFTLElBQUksQ0FBQ0YsU0FBUyxJQUN2QmlDLFFBQVEvQixPQUFPeUIsSUFBSSxDQUFDLFNBQUNNLE9BQVU7b0JBQzdCLElBQU1MLFVBQVVLLE1BQU1DLFNBQVMsQ0FBQ0Y7b0JBRWhDLElBQUlKLFNBQVM7d0JBQ1gsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0gsTUFBTSxJQUFJO2dCQUVoQixPQUFPSztZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLHdCQUF3QkMsYUFBYSxFQUFFO2dCQUNyQyxJQUFNTCxZQUFZSyxlQUNaL0MsUUFBUSxJQUFJLENBQUNnQixRQUFRLElBQ3JCRyxPQUFPbkIsTUFBTXNDLElBQUksQ0FBQyxTQUFDbkIsTUFBUztvQkFDMUIsSUFBTTZCLHVCQUF1QjdCLEtBQUs4QixjQUFjLENBQUNQO29CQUVqRCxJQUFJTSxzQkFBc0I7d0JBQ3hCLE9BQU8sSUFBSTtvQkFDYixDQUFDO2dCQUNILE1BQU0sSUFBSTtnQkFFaEIsT0FBTzdCO1lBQ1Q7OztZQUVBK0IsS0FBQUE7bUJBQUFBLFNBQUFBLHlCQUF5QkgsYUFBYSxFQUFFO2dCQUN0QyxJQUFNTCxZQUFZSyxlQUNaN0MsU0FBUyxJQUFJLENBQUNlLFNBQVMsSUFDdkJJLFFBQVFuQixPQUFPb0MsSUFBSSxDQUFDLFNBQUNqQixPQUFVO29CQUM3QixJQUFNOEIsd0JBQXdCOUIsTUFBTTRCLGNBQWMsQ0FBQ1A7b0JBRW5ELElBQUlTLHVCQUF1Qjt3QkFDekIsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0gsTUFBTSxJQUFJO2dCQUVoQixPQUFPOUI7WUFDVDs7O1lBRUErQixLQUFBQTttQkFBQUEsU0FBQUEsMkJBQTJCQyxZQUFZLEVBQUU7Z0JBQ3ZDLElBQU1WLE9BQU9VLGNBQ1BsRCxZQUFZLElBQUksQ0FBQ08sWUFBWSxJQUM3QjRDLFdBQVduRCxVQUFVbUMsSUFBSSxDQUFDLFNBQUNnQixVQUFhO29CQUN0QyxJQUFNZixVQUFVZSxTQUFTVCxTQUFTLENBQUNGO29CQUVuQyxJQUFJSixTQUFTO3dCQUNYLE9BQU8sSUFBSTtvQkFDYixDQUFDO2dCQUNILE1BQU0sSUFBSTtnQkFFaEIsT0FBT2U7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSx3QkFBd0JuQixRQUFRLEVBQUU7Z0JBQ2hDLElBQU1DLE9BQU8sSUFBSSxDQUFDRixrQkFBa0IsQ0FBQ0MsV0FDL0JvQixjQUFlbkIsU0FBUyxJQUFJO2dCQUVsQyxPQUFPbUI7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSwwQkFBMEJmLFNBQVMsRUFBRTtnQkFDbkMsSUFBTUUsUUFBUSxJQUFJLENBQUNILG9CQUFvQixDQUFDQyxZQUNsQ2dCLGVBQWdCZCxVQUFVLElBQUk7Z0JBRXBDLE9BQU9jO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsZ0NBQWdDTixZQUFZLEVBQUU7Z0JBQzVDLElBQU1DLFdBQVcsSUFBSSxDQUFDRiwwQkFBMEIsQ0FBQ0MsZUFDM0NPLGtCQUFtQk4sYUFBYSxJQUFJO2dCQUUxQyxPQUFPTTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVF4QixJQUFJLEVBQUU7Z0JBQ1osSUFBSSxDQUFDcEMsS0FBSyxDQUFDYyxJQUFJLENBQUNzQjtZQUNsQjs7O1lBRUF5QixLQUFBQTttQkFBQUEsU0FBQUEsUUFBUTNDLElBQUksRUFBRTtnQkFDWixJQUFJLENBQUNuQixLQUFLLENBQUNlLElBQUksQ0FBQ0k7WUFDbEI7OztZQUVBNEMsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVMxQyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDbkIsTUFBTSxDQUFDYSxJQUFJLENBQUNNO1lBQ25COzs7WUFFQTJDLEtBQUFBO21CQUFBQSxTQUFBQSxZQUFZVixRQUFRLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQ25ELFNBQVMsQ0FBQ1ksSUFBSSxDQUFDdUM7WUFDdEI7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY0MsVUFBVSxFQUFFO2dCQUN4QixJQUFJLENBQUM5RCxXQUFXLENBQUNXLElBQUksQ0FBQ21EO1lBQ3hCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVDLFdBQVcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDL0QsWUFBWSxDQUFDVSxJQUFJLENBQUNxRDtZQUN6Qjs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDeUUsS0FBSyxDQUFDQztZQUFVOzs7WUFFckRDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNRCxPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDMkUsS0FBSyxDQUFDRDtZQUFVOzs7WUFFckRFLEtBQUFBO21CQUFBQSxTQUFBQSxLQUFLRixPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDNEUsSUFBSSxDQUFDRjtZQUFVOzs7WUFFbkRHLEtBQUFBO21CQUFBQSxTQUFBQSxRQUFRSCxPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDNkUsT0FBTyxDQUFDSDtZQUFVOzs7WUFFekRJLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNSixPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDOEUsS0FBSyxDQUFDSjtZQUFVOzs7WUFFckRLLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNTCxPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDMUUsY0FBYyxDQUFDK0UsS0FBSyxDQUFDTDtZQUFVOzs7WUFFckRNLEtBQUFBO21CQUFBQSxTQUFBQSxLQUFLN0UsSUFBSSxFQUFFO2dCQUNULElBQU04RSxpQkFBaUJDLElBQUFBLHVDQUErQixFQUFDL0UsTUFBTSxJQUFJLENBQUNELE1BQU0sR0FDbEVpRixvQkFBb0JDLElBQUFBLDBDQUFrQyxFQUFDakYsTUFBTSxJQUFJLENBQUNELE1BQU07Z0JBRTlFLElBQUksQ0FBQ0YsY0FBYyxDQUFDZ0YsSUFBSSxDQUFDLElBQUksQ0FBQy9FLFFBQVEsRUFBRWdGLGdCQUFnQkU7WUFDMUQ7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTWxGLElBQUksRUFBRTtnQkFDVixJQUFNOEUsaUJBQWlCQyxJQUFBQSx1Q0FBK0IsRUFBQy9FLE1BQU0sSUFBSSxDQUFDRCxNQUFNLEdBQ2xFaUYsb0JBQW9CQyxJQUFBQSwwQ0FBa0MsRUFBQ2pGLE1BQU0sSUFBSSxDQUFDRCxNQUFNO2dCQUU5RSxJQUFJLENBQUNGLGNBQWMsQ0FBQ3FGLEtBQUssQ0FBQyxJQUFJLENBQUNwRixRQUFRLEVBQUVnRixnQkFBZ0JFO1lBQzNEOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNuRixJQUFJLEVBQUU7Z0JBQ2IsSUFBTThFLGlCQUFpQkMsSUFBQUEsdUNBQStCLEVBQUMvRSxNQUFNLElBQUksQ0FBQ0QsTUFBTSxHQUNsRWlGLG9CQUFvQkMsSUFBQUEsMENBQWtDLEVBQUNqRixNQUFNLElBQUksQ0FBQ0QsTUFBTTtnQkFFOUUsSUFBSSxDQUFDRixjQUFjLENBQUNzRixRQUFRLENBQUMsSUFBSSxDQUFDckYsUUFBUSxFQUFFZ0YsZ0JBQWdCRTtZQUM5RDs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1DLE9BQU8sRUFBRTtnQkFFZixJQUFJLENBQUNwRixLQUFLLENBQUNrQixPQUFPLENBQUMsU0FBQ0MsTUFBUztvQkFDM0IsSUFBTWtFLFdBQVdsRSxLQUFLZ0UsTUFBTTtvQkFFNUJwRSxJQUFBQSxXQUFJLEVBQUNxRSxNQUFNQztnQkFDYjtnQkFFQSxJQUFJLENBQUNwRixLQUFLLENBQUNpQixPQUFPLENBQUMsU0FBQ21CLE1BQVM7b0JBQzNCLElBQU1pRCxXQUFXakQsS0FBSzhDLE1BQU07b0JBRTVCcEUsSUFBQUEsV0FBSSxFQUFDcUUsTUFBTUU7Z0JBQ2I7Z0JBRUEsSUFBSSxDQUFDcEYsTUFBTSxDQUFDZ0IsT0FBTyxDQUFDLFNBQUNHLE9BQVU7b0JBQzdCLElBQU1rRSxZQUFZbEUsTUFBTThELE1BQU07b0JBRTlCcEUsSUFBQUEsV0FBSSxFQUFDcUUsTUFBTUc7Z0JBQ2I7Z0JBRUEsSUFBSSxDQUFDbkYsV0FBVyxDQUFDYyxPQUFPLENBQUMsU0FBQ2dELFlBQWU7b0JBQ3ZDLElBQU1zQixpQkFBaUJ0QixXQUFXaUIsTUFBTTtvQkFFeENwRSxJQUFBQSxXQUFJLEVBQUNxRSxNQUFNSTtnQkFDYjtnQkFFQSxJQUFJLENBQUNuRixZQUFZLENBQUNhLE9BQU8sQ0FBQyxTQUFDa0QsYUFBZ0I7b0JBQ3pDLElBQU1xQixrQkFBa0JyQixZQUFZZSxNQUFNO29CQUUxQ3BFLElBQUFBLFdBQUksRUFBQ3FFLE1BQU1LO2dCQUNiO2dCQUVBLE9BQU9MO1lBQ1Q7Ozs7WUFFT00sS0FBQUE7bUJBQVAsU0FBT0EsOEJBQThCOUYsY0FBYyxFQUFFQyxRQUFRLEVBQUU7Z0JBQzdELElBQU04RixPQUFPL0YsZUFBZWdHLE9BQU8sQ0FBQy9GLFdBQzlCZ0csVUFBVUYsS0FBS0csVUFBVSxJQUN6QmhHLFNBQVNGLGVBQWVtRyxRQUFRLENBQUNGLFVBQ2pDOUYsT0FBT0gsZUFBZW9HLEtBQUssQ0FBQ2xHO2dCQUVsQ21HLElBQUFBLG1DQUFZLEVBQUNsRztnQkFFYixJQUFNQyxRQUFRLEVBQUUsRUFDVkMsUUFBUSxFQUFFLEVBQ1ZDLFNBQVMsRUFBRSxFQUNYQyxZQUFZLEVBQUUsRUFDZEMsY0FBYyxFQUFFLEVBQ2hCQyxlQUFlLEVBQUUsRUFDakI2RixjQUFjLElBcFZIdkcsWUFvVm1CQyxnQkFBZ0JDLFVBQVVDLFFBQVFDLE1BQU1DLE9BQU9DLE9BQU9DLFFBQVFDLFdBQVdDLGFBQWFDO2dCQUUxSCxPQUFPNkY7WUFDVDs7O1dBdlZtQnZHIn0=
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHJld3JpdGVOb2RlcyB9IGZyb20gXCJvY2NhbS1ncmFtbWFyLXV0aWxpdGllc1wiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbGVhc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucywgZ3JlYXRlc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdG9rZW5zXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocmVsZWFzZUNvbnRleHQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIHJ1bGVzLCB0eXBlcywgYXhpb21zLCB2YXJpYWJsZXMsIGNvbWJpbmF0b3JzLCBjb25zdHJ1Y3RvcnMpIHtcbiAgICB0aGlzLnJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5ydWxlcyA9IHJ1bGVzO1xuICAgIHRoaXMudHlwZXMgPSB0eXBlcztcbiAgICB0aGlzLmF4aW9tcyA9IGF4aW9tcztcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgICB0aGlzLmNvbWJpbmF0b3JzID0gY29tYmluYXRvcnM7XG4gICAgdGhpcy5jb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRSZWxlYXNlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlQ29udGV4dDtcbiAgfVxuXG4gIGdldEZpbGVQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVQYXRoO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZXM7XG4gIH1cblxuICBnZXRMYWJlbHMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgaWYgKGJ1YmJsZSkge1xuICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRMYWJlbHMgPSB0aGlzLnJlbGVhc2VDb250ZXh0LmdldExhYmVscygpO1xuXG4gICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5nZXRSdWxlcygpLFxuICAgICAgICAgIGF4aW9tcyA9IHRoaXMuZ2V0QXhpb21zKCk7XG5cbiAgICBydWxlcy5mb3JFYWNoKChydWxlKSA9PiB7XG4gICAgICBjb25zdCBydWxlTGFiZWxzID0gcnVsZS5nZXRMYWJlbHMoKTtcblxuICAgICAgcHVzaChsYWJlbHMsIHJ1bGVMYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgYXhpb21zLmZvckVhY2goKGF4aW9tKSA9PiB7XG4gICAgICBjb25zdCBheGlvbUxhYmVscyA9IGF4aW9tLmdldExhYmVscygpO1xuXG4gICAgICBwdXNoKGxhYmVscywgYXhpb21MYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFJ1bGVzKGJ1YmJsZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtcbiAgICAgIC4uLnRoaXMucnVsZXNcbiAgICBdO1xuXG4gICAgaWYgKGJ1YmJsZSkge1xuICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRSdWxlcyA9IHRoaXMucmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoKTtcblxuICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG5cbiAgZ2V0VHlwZXMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgLi4udGhpcy50eXBlc1xuICAgIF07XG5cbiAgICBpZiAoYnViYmxlKSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dFR5cGVzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRUeXBlcygpO1xuXG4gICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGF4aW9tcyA9IFtcbiAgICAgIC4uLnRoaXMuYXhpb21zXG4gICAgXTtcblxuICAgIGlmIChidWJibGUpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0QXhpb21zID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMoKTtcblxuICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW1xuICAgICAgLi4udGhpcy5jb21iaW5hdG9yc1xuICAgIF07XG5cbiAgICBpZiAoYnViYmxlKSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcnMoYnViYmxlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0b3JzXG4gICAgXTtcblxuICAgIGlmIChidWJibGUpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gdGhpcy5yZWxlYXNlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucygpIHtcbiAgICBjb25zdCBhc3NlcnRpb25zID0gW107ICAvLy9cblxuICAgIHJldHVybiBhc3NlcnRpb25zO1xuICB9XG5cbiAgZ2V0TWV0YUFzc2VydGlvbnMoKSB7XG4gICAgY29uc3QgbWV0YUFzc2VydGlvbnMgPSBbXTsgIC8vL1xuXG4gICAgcmV0dXJuIG1ldGFBc3NlcnRpb25zO1xuICB9XG5cbiAgZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLmdldFR5cGVzKCksXG4gICAgICAgICAgdHlwZSA9IHR5cGVzLmZpbmQoKHR5cGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB0eXBlLm1hdGNoVHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBmaW5kTGFiZWxCeUxhYmVsTmFtZShsYWJlbE5hbWUpIHtcbiAgICBjb25zdCBuYW1lID0gbGFiZWxOYW1lLCAgLy8vXG4gICAgICAgICAgbGFiZWxzID0gdGhpcy5nZXRMYWJlbHMoKSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVscy5maW5kKChsYWJlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGxhYmVsLm1hdGNoTmFtZShuYW1lKTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIGZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHtcbiAgICBjb25zdCBsYWJlbE5hbWUgPSByZWZlcmVuY2VOYW1lLCAgLy8vXG4gICAgICAgICAgcnVsZXMgPSB0aGlzLmdldFJ1bGVzKCksXG4gICAgICAgICAgcnVsZSA9IHJ1bGVzLmZpbmQoKHJ1bGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzTGFiZWxOYW1lID0gcnVsZS5tYXRjaExhYmVsTmFtZShsYWJlbE5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocnVsZU1hdGNoZXNMYWJlbE5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHtcbiAgICBjb25zdCBsYWJlbE5hbWUgPSByZWZlcmVuY2VOYW1lLCAgLy8vXG4gICAgICAgICAgYXhpb21zID0gdGhpcy5nZXRBeGlvbXMoKSxcbiAgICAgICAgICBheGlvbSA9IGF4aW9tcy5maW5kKChheGlvbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXhpb21NYXRjaGVzTGFiZWxOYW1lID0gYXhpb20ubWF0Y2hMYWJlbE5hbWUobGFiZWxOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGF4aW9tTWF0Y2hlc0xhYmVsTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YXJpYWJsZS5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSAodHlwZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdHlwZVByZXNlbnQ7XG4gIH1cblxuICBpc0xhYmVsUHJlc2VudEJ5TGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5maW5kTGFiZWxCeUxhYmVsTmFtZShsYWJlbE5hbWUpLFxuICAgICAgICAgIGxhYmVsUHJlc2VudCA9IChsYWJlbCAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gbGFiZWxQcmVzZW50O1xuICB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSAodmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGFkZFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZXMucHVzaCh0eXBlKTtcbiAgfVxuXG4gIGFkZFJ1bGUocnVsZSkge1xuICAgIHRoaXMucnVsZXMucHVzaChydWxlKTtcbiAgfVxuXG4gIGFkZEF4aW9tKGF4aW9tKSB7XG4gICAgdGhpcy5heGlvbXMucHVzaChheGlvbSk7XG4gIH1cblxuICBhZGRWYXJpYWJsZSh2YXJpYWJsZSkge1xuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuICB9XG5cbiAgYWRkQ29tYmluYXRvcihjb21iaW5hdG9yKSB7XG4gICAgdGhpcy5jb21iaW5hdG9ycy5wdXNoKGNvbWJpbmF0b3IpO1xuICB9XG5cbiAgYWRkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpIHtcbiAgICB0aGlzLmNvbnN0cnVjdG9ycy5wdXNoKGNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIHRyYWNlKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC50cmFjZShtZXNzYWdlKTsgfVxuXG4gIGRlYnVnKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC5kZWJ1ZyhtZXNzYWdlKTsgfVxuXG4gIGluZm8obWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmluZm8obWVzc2FnZSk7IH1cblxuICB3YXJuaW5nKG1lc3NhZ2UpIHsgdGhpcy5yZWxlYXNlQ29udGV4dC53YXJuaW5nKG1lc3NhZ2UpOyB9XG5cbiAgZXJyb3IobWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmVycm9yKG1lc3NhZ2UpOyB9XG5cbiAgZmF0YWwobWVzc2FnZSkgeyB0aGlzLnJlbGVhc2VDb250ZXh0LmZhdGFsKG1lc3NhZ2UpOyB9XG5cbiAgaGFsdChub2RlKSB7XG4gICAgY29uc3QgbGVhc3RMaW5lSW5kZXggPSBsZWFzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKSxcbiAgICAgICAgICBncmVhdGVzdExpbmVJbmRleCA9IGdyZWF0ZXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dC5oYWx0KHRoaXMuZmlsZVBhdGgsIGxlYXN0TGluZUluZGV4LCBncmVhdGVzdExpbmVJbmRleCk7XG4gIH1cblxuICBiZWdpbihub2RlKSB7XG4gICAgY29uc3QgbGVhc3RMaW5lSW5kZXggPSBsZWFzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKSxcbiAgICAgICAgICBncmVhdGVzdExpbmVJbmRleCA9IGdyZWF0ZXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dC5iZWdpbih0aGlzLmZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpO1xuICB9XG5cbiAgY29tcGxldGUobm9kZSkge1xuICAgIGNvbnN0IGxlYXN0TGluZUluZGV4ID0gbGVhc3RMaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0aGlzLnRva2VucyksXG4gICAgICAgICAgZ3JlYXRlc3RMaW5lSW5kZXggPSBncmVhdGVzdExpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zKTtcblxuICAgIHRoaXMucmVsZWFzZUNvbnRleHQuY29tcGxldGUodGhpcy5maWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBqc29uID0gW107XG5cbiAgICB0aGlzLnJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHtcbiAgICAgIGNvbnN0IHJ1bGVKU09OID0gcnVsZS50b0pTT04oKTtcblxuICAgICAganNvbi5wdXNoKHJ1bGVKU09OKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgY29uc3QgdHlwZUpTT04gPSB0eXBlLnRvSlNPTigpO1xuXG4gICAgICBqc29uLnB1c2godHlwZUpTT04pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5heGlvbXMuZm9yRWFjaCgoYXhpb20pID0+IHtcbiAgICAgIGNvbnN0IGF4aW9tSlNPTiA9IGF4aW9tLnRvSlNPTigpO1xuXG4gICAgICBqc29uLnB1c2goYXhpb21KU09OKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tYmluYXRvcnMuZm9yRWFjaCgoY29tYmluYXRvcikgPT4ge1xuICAgICAgY29uc3QgY29tYmluYXRvckpTT04gPSBjb21iaW5hdG9yLnRvSlNPTigpO1xuXG4gICAgICBqc29uLnB1c2goY29tYmluYXRvckpTT04pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25zdHJ1Y3RvcnMuZm9yRWFjaCgoY29uc3RydWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9ySlNPTiA9IGNvbnN0cnVjdG9yLnRvSlNPTigpO1xuXG4gICAgICBqc29uLnB1c2goY29uc3RydWN0b3JKU09OKVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlbGVhc2VDb250ZXh0QW5kRmlsZVBhdGgocmVsZWFzZUNvbnRleHQsIGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZSA9IHJlbGVhc2VDb250ZXh0LmdldEZpbGUoZmlsZVBhdGgpLFxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICB0b2tlbnMgPSByZWxlYXNlQ29udGV4dC50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgICBub2RlID0gcmVsZWFzZUNvbnRleHQucGFyc2UodG9rZW5zKTtcblxuICAgIHJld3JpdGVOb2Rlcyhub2RlKTtcblxuICAgIGNvbnN0IHJ1bGVzID0gW10sXG4gICAgICAgICAgdHlwZXMgPSBbXSxcbiAgICAgICAgICBheGlvbXMgPSBbXSxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBjb21iaW5hdG9ycyA9IFtdLFxuICAgICAgICAgIGNvbnN0cnVjdG9ycyA9IFtdLFxuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IEZpbGVDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBydWxlcywgdHlwZXMsIGF4aW9tcywgdmFyaWFibGVzLCBjb21iaW5hdG9ycywgY29uc3RydWN0b3JzKTtcblxuICAgIHJldHVybiBmaWxlQ29udGV4dDtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsInJlbGVhc2VDb250ZXh0IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwicnVsZXMiLCJ0eXBlcyIsImF4aW9tcyIsInZhcmlhYmxlcyIsImNvbWJpbmF0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJnZXRGaWxlUGF0aCIsImdldFRva2VucyIsImdldE5vZGUiLCJnZXRWYXJpYWJsZXMiLCJnZXRMYWJlbHMiLCJidWJibGUiLCJsYWJlbHMiLCJyZWxlYXNlQ29udGV4dExhYmVscyIsInB1c2giLCJnZXRSdWxlcyIsImdldEF4aW9tcyIsImZvckVhY2giLCJydWxlIiwicnVsZUxhYmVscyIsImF4aW9tIiwiYXhpb21MYWJlbHMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwicmVsZWFzZUNvbnRleHRBeGlvbXMiLCJnZXRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImdldEFzc2VydGlvbnMiLCJhc3NlcnRpb25zIiwiZ2V0TWV0YUFzc2VydGlvbnMiLCJtZXRhQXNzZXJ0aW9ucyIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwidHlwZSIsImZpbmQiLCJtYXRjaGVzIiwibWF0Y2hUeXBlTmFtZSIsImZpbmRMYWJlbEJ5TGFiZWxOYW1lIiwibGFiZWxOYW1lIiwibmFtZSIsImxhYmVsIiwibWF0Y2hOYW1lIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lIiwicnVsZU1hdGNoZXNMYWJlbE5hbWUiLCJtYXRjaExhYmVsTmFtZSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlTmFtZSIsImF4aW9tTWF0Y2hlc0xhYmVsTmFtZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGUiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsInR5cGVQcmVzZW50IiwiaXNMYWJlbFByZXNlbnRCeUxhYmVsTmFtZSIsImxhYmVsUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZVByZXNlbnQiLCJhZGRUeXBlIiwiYWRkUnVsZSIsImFkZEF4aW9tIiwiYWRkVmFyaWFibGUiLCJhZGRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsImFkZENvbnN0cnVjdG9yIiwiY29uc3RydWN0b3IiLCJ0cmFjZSIsIm1lc3NhZ2UiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJmYXRhbCIsImhhbHQiLCJsZWFzdExpbmVJbmRleCIsImxlYXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJncmVhdGVzdExpbmVJbmRleCIsImdyZWF0ZXN0TGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJiZWdpbiIsImNvbXBsZXRlIiwidG9KU09OIiwianNvbiIsInJ1bGVKU09OIiwidHlwZUpTT04iLCJheGlvbUpTT04iLCJjb21iaW5hdG9ySlNPTiIsImNvbnN0cnVjdG9ySlNPTiIsImZyb21SZWxlYXNlQ29udGV4dEFuZEZpbGVQYXRoIiwiZmlsZSIsImdldEZpbGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInRva2VuaXNlIiwicGFyc2UiLCJyZXdyaXRl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
|