occam-verify-cli 0.0.374 → 0.0.376
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/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 +12 -13
- package/lib/context/release/directory.js +32 -26
- package/lib/context/release/file.js +94 -56
- package/lib/context/release.js +8 -8
- 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 +9 -1
- package/lib/type.js +19 -8
- package/lib/verify/release.js +4 -6
- 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 +13 -16
- package/src/context/release/directory.js +36 -24
- package/src/context/release/file.js +130 -49
- package/src/context/release.js +6 -6
- 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 +2 -0
- package/src/type.js +19 -2
- package/src/verify/release.js +6 -8
|
@@ -104,10 +104,10 @@ function _createSuper(Derived) {
|
|
|
104
104
|
var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
105
105
|
_inherits(DirectoryReleaseContext, ReleaseContext);
|
|
106
106
|
var _super = _createSuper(DirectoryReleaseContext);
|
|
107
|
-
function DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
107
|
+
function DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts) {
|
|
108
108
|
_classCallCheck(this, DirectoryReleaseContext);
|
|
109
109
|
var _this;
|
|
110
|
-
_this = _super.call(this, log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
110
|
+
_this = _super.call(this, log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
|
|
111
111
|
_this.fileContexts = fileContexts;
|
|
112
112
|
return _this;
|
|
113
113
|
}
|
|
@@ -119,43 +119,45 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
119
119
|
}
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
key: "
|
|
123
|
-
value: function
|
|
122
|
+
key: "getTypes",
|
|
123
|
+
value: function getTypes() {
|
|
124
124
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
125
|
-
var
|
|
125
|
+
var types = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
126
126
|
if (!releaseNamesIncludesReleaseName) {
|
|
127
127
|
releaseNames.push(releaseName);
|
|
128
128
|
var bubble = false;
|
|
129
129
|
this.fileContexts.forEach(function(fileContext) {
|
|
130
|
-
var
|
|
131
|
-
(0, _array.push)(
|
|
130
|
+
var fileContextTypes = fileContext.getTypes(bubble);
|
|
131
|
+
(0, _array.push)(types, fileContextTypes);
|
|
132
132
|
});
|
|
133
|
-
this.
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
134
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
135
|
+
var releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
136
|
+
(0, _array.push)(types, releaseContextTypes);
|
|
136
137
|
});
|
|
137
138
|
}
|
|
138
|
-
return
|
|
139
|
+
return types;
|
|
139
140
|
}
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
|
-
key: "
|
|
143
|
-
value: function
|
|
143
|
+
key: "getRules",
|
|
144
|
+
value: function getRules() {
|
|
144
145
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
145
|
-
var
|
|
146
|
+
var rules = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
146
147
|
if (!releaseNamesIncludesReleaseName) {
|
|
147
148
|
releaseNames.push(releaseName);
|
|
148
149
|
var bubble = false;
|
|
149
150
|
this.fileContexts.forEach(function(fileContext) {
|
|
150
|
-
var
|
|
151
|
-
(0, _array.push)(
|
|
151
|
+
var fileContextRules = fileContext.getRules(bubble);
|
|
152
|
+
(0, _array.push)(rules, fileContextRules);
|
|
152
153
|
});
|
|
153
|
-
this.
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
155
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
156
|
+
var releaseContextRules = releaseContext.getRules(releaseNames);
|
|
157
|
+
(0, _array.push)(rules, releaseContextRules);
|
|
156
158
|
});
|
|
157
159
|
}
|
|
158
|
-
return
|
|
160
|
+
return rules;
|
|
159
161
|
}
|
|
160
162
|
},
|
|
161
163
|
{
|
|
@@ -170,7 +172,8 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
170
172
|
var fileContextAxioms = fileContext.getAxioms(bubble);
|
|
171
173
|
(0, _array.push)(axioms, fileContextAxioms);
|
|
172
174
|
});
|
|
173
|
-
this.
|
|
175
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
176
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
174
177
|
var releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
175
178
|
(0, _array.push)(axioms, releaseContextAxioms);
|
|
176
179
|
});
|
|
@@ -190,7 +193,8 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
190
193
|
var fileContextLabels = fileContext.getLabels(bubble);
|
|
191
194
|
(0, _array.push)(labels, fileContextLabels);
|
|
192
195
|
});
|
|
193
|
-
this.
|
|
196
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
197
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
194
198
|
var releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
195
199
|
(0, _array.push)(labels, releaseContextLabels);
|
|
196
200
|
});
|
|
@@ -210,7 +214,8 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
210
214
|
var fileContextCombinators = fileContext.getCombinators(bubble);
|
|
211
215
|
(0, _array.push)(combinators, fileContextCombinators);
|
|
212
216
|
});
|
|
213
|
-
this.
|
|
217
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
218
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
214
219
|
var releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
215
220
|
(0, _array.push)(combinators, releaseContextCombinators);
|
|
216
221
|
});
|
|
@@ -230,7 +235,8 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
230
235
|
var fileContextConstructors = fileContext.getConstructors(bubble);
|
|
231
236
|
(0, _array.push)(constructors, fileContextConstructors);
|
|
232
237
|
});
|
|
233
|
-
this.
|
|
238
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
239
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
234
240
|
var releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
235
241
|
(0, _array.push)(constructors, releaseContextConstructors);
|
|
236
242
|
});
|
|
@@ -259,7 +265,7 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
259
265
|
{
|
|
260
266
|
key: "fromLogNameEntriesAndCallbacks",
|
|
261
267
|
value: function fromLogNameEntriesAndCallbacks(log, name, entries, callbacks) {
|
|
262
|
-
var verified = false, customGrammar = (0, _customGrammar.customGrammarFromNameAndEntries)(name, entries), florenceLexer = null, florenceParser = null,
|
|
268
|
+
var verified = false, customGrammar = (0, _customGrammar.customGrammarFromNameAndEntries)(name, entries), florenceLexer = null, florenceParser = null, dependencyReleaseContexts = null, fileContexts = [], directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts);
|
|
263
269
|
return directoryReleaseContext;
|
|
264
270
|
}
|
|
265
271
|
}
|
|
@@ -267,4 +273,4 @@ var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
267
273
|
return DirectoryReleaseContext;
|
|
268
274
|
}(_release.default);
|
|
269
275
|
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZGlyZWN0b3J5LmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUmVsZWFzZUNvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvcmVsZWFzZVwiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXJlY3RvcnlSZWxlYXNlQ29udGV4dCBleHRlbmRzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgcmVsZWFzZUNvbnRleHRzLCBmaWxlQ29udGV4dHMpIHtcbiAgICBzdXBlcihsb2csIG5hbWUsIGVudHJpZXMsIGNhbGxiYWNrcywgdmVyaWZpZWQsIGN1c3RvbUdyYW1tYXIsIGZsb3JlbmNlTGV4ZXIsIGZsb3JlbmNlUGFyc2VyLCByZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMgPSBmaWxlQ29udGV4dHM7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0UnVsZXMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBydWxlcyA9IFtdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dFJ1bGVzID0gZmlsZUNvbnRleHQuZ2V0UnVsZXMoYnViYmxlKTtcblxuICAgICAgICBwdXNoKHJ1bGVzLCBmaWxlQ29udGV4dFJ1bGVzKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKHJ1bGVzLCByZWxlYXNlQ29udGV4dFJ1bGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldFR5cGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgcmVsZWFzZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRBeGlvbXMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRBeGlvbXMgPSBmaWxlQ29udGV4dC5nZXRBeGlvbXMoYnViYmxlKTtcblxuICAgICAgICBwdXNoKGF4aW9tcywgZmlsZUNvbnRleHRBeGlvbXMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMYWJlbHMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRMYWJlbHMgPSBmaWxlQ29udGV4dC5nZXRMYWJlbHMoYnViYmxlKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgZmlsZUNvbnRleHRMYWJlbHMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0TGFiZWxzID0gcmVsZWFzZUNvbnRleHQuZ2V0TGFiZWxzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIHJlbGVhc2VDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0Q29tYmluYXRvcnMgPSBmaWxlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIGZpbGVDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMgPSByZWxlYXNlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goY29uc3RydWN0b3JzLCByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgYWRkRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0cy5wdXNoKGZpbGVDb250ZXh0KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBqc29uID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHRKU09OID0gZmlsZUNvbnRleHQudG9KU09OKCk7XG5cbiAgICAgIHB1c2goanNvbiwgZmlsZUNvbnRleHRKU09OKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Mb2dOYW1lRW50cmllc0FuZENhbGxiYWNrcyhsb2csIG5hbWUsIGVudHJpZXMsIGNhbGxiYWNrcykge1xuICAgIGNvbnN0IHZlcmlmaWVkID0gZmFsc2UsXG4gICAgICAgICAgY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXJGcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyksXG4gICAgICAgICAgZmxvcmVuY2VMZXhlciA9IG51bGwsXG4gICAgICAgICAgZmxvcmVuY2VQYXJzZXIgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgZmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgZGlyZWN0b3J5UmVsZWFzZUNvbnRleHQgPSBuZXcgRGlyZWN0b3J5UmVsZWFzZUNvbnRleHQobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgcmVsZWFzZUNvbnRleHRzLCBmaWxlQ29udGV4dHMpO1xuXG4gICAgcmV0dXJuIGRpcmVjdG9yeVJlbGVhc2VDb250ZXh0O1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkRpcmVjdG9yeVJlbGVhc2VDb250ZXh0IiwibG9nIiwibmFtZSIsImVudHJpZXMiLCJjYWxsYmFja3MiLCJ2ZXJpZmllZCIsImN1c3RvbUdyYW1tYXIiLCJmbG9yZW5jZUxleGVyIiwiZmxvcmVuY2VQYXJzZXIiLCJyZWxlYXNlQ29udGV4dHMiLCJmaWxlQ29udGV4dHMiLCJnZXRGaWxlQ29udGV4dHMiLCJnZXRSdWxlcyIsInJlbGVhc2VOYW1lcyIsInJ1bGVzIiwicmVsZWFzZU5hbWUiLCJnZXRSZWxlYXNlTmFtZSIsInJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUiLCJpbmNsdWRlcyIsInB1c2giLCJidWJibGUiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dFJ1bGVzIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExhYmVscyIsImxhYmVscyIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiYWRkRmlsZUNvbnRleHQiLCJ0b0pTT04iLCJqc29uIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ05hbWVFbnRyaWVzQW5kQ2FsbGJhY2tzIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsImRpcmVjdG9yeVJlbGVhc2VDb250ZXh0IiwiUmVsZWFzZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7OzREQUxNO3FCQUVOOzZCQUMyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQyxJQUFBLEFBQU1BLHdDQUFOO2NBQU1BOzhCQUFBQTthQUFBQSx3QkFDUEMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGVBQWUsRUFBRUMsWUFBWTs4QkFEN0dWOztrQ0FFWEMsS0FBS0MsTUFBTUMsU0FBU0MsV0FBV0MsVUFBVUMsZUFBZUMsZUFBZUMsZ0JBQWdCQztRQUU3RixNQUFLQyxZQUFZLEdBQUdBOzs7aUJBSkhWOztZQU9uQlcsS0FBQUE7bUJBQUFBLFNBQUFBLGtCQUFrQjtnQkFDaEIsT0FBTyxJQUFJLENBQUNELFlBQVk7WUFDMUI7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsV0FBNEI7b0JBQW5CQyxlQUFBQSxpRUFBZSxFQUFFO2dCQUN4QixJQUFNQyxRQUFRLEVBQUUsRUFDVkMsY0FBYyxJQUFJLENBQUNDLGNBQWMsSUFDakNDLGtDQUFrQ0osYUFBYUssUUFBUSxDQUFDSDtnQkFFOUQsSUFBSSxDQUFDRSxpQ0FBaUM7b0JBQ3BDSixhQUFhTSxJQUFJLENBQUNKO29CQUVsQixJQUFNSyxTQUFTLEtBQUs7b0JBRXBCLElBQUksQ0FBQ1YsWUFBWSxDQUFDVyxPQUFPLENBQUMsU0FBQ0MsYUFBZ0I7d0JBQ3pDLElBQU1DLG1CQUFtQkQsWUFBWVYsUUFBUSxDQUFDUTt3QkFFOUNELElBQUFBLFdBQUksRUFBQ0wsT0FBT1M7b0JBQ2Q7b0JBRUEsSUFBSSxDQUFDZCxlQUFlLENBQUNZLE9BQU8sQ0FBQyxTQUFDRyxnQkFBbUI7d0JBQy9DLElBQU1DLHNCQUFzQkQsZUFBZVosUUFBUSxDQUFDQzt3QkFFcERNLElBQUFBLFdBQUksRUFBQ0wsT0FBT1c7b0JBQ2Q7Z0JBQ0YsQ0FBQztnQkFFRCxPQUFPWDtZQUNUOzs7WUFFQVksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQTRCO29CQUFuQmIsZUFBQUEsaUVBQWUsRUFBRTtnQkFDeEIsSUFBTWMsUUFBUSxFQUFFLEVBQ1ZaLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNTSxtQkFBbUJOLFlBQVlJLFFBQVEsQ0FBQ047d0JBRTlDRCxJQUFBQSxXQUFJLEVBQUNRLE9BQU9DO29CQUNkO29CQUVBLElBQUksQ0FBQ25CLGVBQWUsQ0FBQ1ksT0FBTyxDQUFDLFNBQUNHLGdCQUFtQjt3QkFDL0MsSUFBTUssc0JBQXNCTCxlQUFlRSxRQUFRLENBQUNiO3dCQUVwRE0sSUFBQUEsV0FBSSxFQUFDUSxPQUFPRTtvQkFDZDtnQkFDRixDQUFDO2dCQUVELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBNkI7b0JBQW5CakIsZUFBQUEsaUVBQWUsRUFBRTtnQkFDekIsSUFBTWtCLFNBQVMsRUFBRSxFQUNYaEIsY0FBYyxJQUFJLENBQUNDLGNBQWMsSUFDakNDLGtDQUFrQ0osYUFBYUssUUFBUSxDQUFDSDtnQkFFOUQsSUFBSSxDQUFDRSxpQ0FBaUM7b0JBQ3BDSixhQUFhTSxJQUFJLENBQUNKO29CQUVsQixJQUFNSyxTQUFTLEtBQUs7b0JBRXBCLElBQUksQ0FBQ1YsWUFBWSxDQUFDVyxPQUFPLENBQUMsU0FBQ0MsYUFBZ0I7d0JBQ3pDLElBQU1VLG9CQUFvQlYsWUFBWVEsU0FBUyxDQUFDVjt3QkFFaERELElBQUFBLFdBQUksRUFBQ1ksUUFBUUM7b0JBQ2Y7b0JBRUEsSUFBSSxDQUFDdkIsZUFBZSxDQUFDWSxPQUFPLENBQUMsU0FBQ0csZ0JBQW1CO3dCQUMvQyxJQUFNUyx1QkFBdUJULGVBQWVNLFNBQVMsQ0FBQ2pCO3dCQUV0RE0sSUFBQUEsV0FBSSxFQUFDWSxRQUFRRTtvQkFDZjtnQkFDRixDQUFDO2dCQUVELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBNkI7b0JBQW5CckIsZUFBQUEsaUVBQWUsRUFBRTtnQkFDekIsSUFBTXNCLFNBQVMsRUFBRSxFQUNYcEIsY0FBYyxJQUFJLENBQUNDLGNBQWMsSUFDakNDLGtDQUFrQ0osYUFBYUssUUFBUSxDQUFDSDtnQkFFOUQsSUFBSSxDQUFDRSxpQ0FBaUM7b0JBQ3BDSixhQUFhTSxJQUFJLENBQUNKO29CQUVsQixJQUFNSyxTQUFTLEtBQUs7b0JBRXBCLElBQUksQ0FBQ1YsWUFBWSxDQUFDVyxPQUFPLENBQUMsU0FBQ0MsYUFBZ0I7d0JBQ3pDLElBQU1jLG9CQUFvQmQsWUFBWVksU0FBUyxDQUFDZDt3QkFFaERELElBQUFBLFdBQUksRUFBQ2dCLFFBQVFDO29CQUNmO29CQUVBLElBQUksQ0FBQzNCLGVBQWUsQ0FBQ1ksT0FBTyxDQUFDLFNBQUNHLGdCQUFtQjt3QkFDL0MsSUFBTWEsdUJBQXVCYixlQUFlVSxTQUFTLENBQUNyQjt3QkFFdERNLElBQUFBLFdBQUksRUFBQ2dCLFFBQVFFO29CQUNmO2dCQUNGLENBQUM7Z0JBRUQsT0FBT0Y7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBa0M7b0JBQW5CekIsZUFBQUEsaUVBQWUsRUFBRTtnQkFDOUIsSUFBTTBCLGNBQWMsRUFBRSxFQUNoQnhCLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNa0IseUJBQXlCbEIsWUFBWWdCLGNBQWMsQ0FBQ2xCO3dCQUUxREQsSUFBQUEsV0FBSSxFQUFDb0IsYUFBYUM7b0JBQ3BCO29CQUVBLElBQUksQ0FBQy9CLGVBQWUsQ0FBQ1ksT0FBTyxDQUFDLFNBQUNHLGdCQUFtQjt3QkFDL0MsSUFBTWlCLDRCQUE0QmpCLGVBQWVjLGNBQWMsQ0FBQ3pCO3dCQUVoRU0sSUFBQUEsV0FBSSxFQUFDb0IsYUFBYUU7b0JBQ3BCO2dCQUNGLENBQUM7Z0JBRUQsT0FBT0Y7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBbUM7b0JBQW5CN0IsZUFBQUEsaUVBQWUsRUFBRTtnQkFDL0IsSUFBTThCLGVBQWUsRUFBRSxFQUNqQjVCLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNc0IsMEJBQTBCdEIsWUFBWW9CLGVBQWUsQ0FBQ3RCO3dCQUU1REQsSUFBQUEsV0FBSSxFQUFDd0IsY0FBY0M7b0JBQ3JCO29CQUVBLElBQUksQ0FBQ25DLGVBQWUsQ0FBQ1ksT0FBTyxDQUFDLFNBQUNHLGdCQUFtQjt3QkFDL0MsSUFBTXFCLDZCQUE2QnJCLGVBQWVrQixlQUFlLENBQUM3Qjt3QkFFbEVNLElBQUFBLFdBQUksRUFBQ3dCLGNBQWNFO29CQUNyQjtnQkFDRixDQUFDO2dCQUVELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZXhCLFdBQVcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDWixZQUFZLENBQUNTLElBQUksQ0FBQ0c7WUFDekI7OztZQUVBeUIsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUMsT0FBTyxFQUFFO2dCQUVmLElBQUksQ0FBQ3RDLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO29CQUN6QyxJQUFNMkIsa0JBQWtCM0IsWUFBWXlCLE1BQU07b0JBRTFDNUIsSUFBQUEsV0FBSSxFQUFDNkIsTUFBTUM7Z0JBQ2I7Z0JBRUEsT0FBT0Q7WUFDVDs7OztZQUVPRSxLQUFBQTttQkFBUCxTQUFPQSwrQkFBK0JqRCxHQUFHLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUU7Z0JBQ25FLElBQU1DLFdBQVcsS0FBSyxFQUNoQkMsZ0JBQWdCNkMsSUFBQUEsOENBQStCLEVBQUNqRCxNQUFNQyxVQUN0REksZ0JBQWdCLElBQUksRUFDcEJDLGlCQUFpQixJQUFJLEVBQ3JCQyxrQkFBa0IsSUFBSSxFQUN0QkMsZUFBZSxFQUFFLEVBQ2pCMEMsMEJBQTBCLElBOUxmcEQsd0JBOEwyQ0MsS0FBS0MsTUFBTUMsU0FBU0MsV0FBV0MsVUFBVUMsZUFBZUMsZUFBZUMsZ0JBQWdCQyxpQkFBaUJDO2dCQUVwSyxPQUFPMEM7WUFDVDs7O1dBak1tQnBEO0VBQWdDcUQsZ0JBQWMifQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZGlyZWN0b3J5LmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUmVsZWFzZUNvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvcmVsZWFzZVwiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXJlY3RvcnlSZWxlYXNlQ29udGV4dCBleHRlbmRzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cywgZmlsZUNvbnRleHRzKSB7XG4gICAgc3VwZXIobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0cygpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dHM7XG4gIH1cblxuICBnZXRUeXBlcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0VHlwZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlcyhidWJibGUpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIGZpbGVDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFR5cGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldFJ1bGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgcnVsZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRSdWxlcyA9IGZpbGVDb250ZXh0LmdldFJ1bGVzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChydWxlcywgZmlsZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0UnVsZXMgPSByZWxlYXNlQ29udGV4dC5nZXRSdWxlcyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2gocnVsZXMsIHJlbGVhc2VDb250ZXh0UnVsZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG5cbiAgZ2V0QXhpb21zKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgYXhpb21zID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0QXhpb21zID0gZmlsZUNvbnRleHQuZ2V0QXhpb21zKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIGZpbGVDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRBeGlvbXMgPSByZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGF4aW9tcywgcmVsZWFzZUNvbnRleHRBeGlvbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF4aW9tcztcbiAgfVxuXG4gIGdldExhYmVscyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dExhYmVscyA9IGZpbGVDb250ZXh0LmdldExhYmVscyhidWJibGUpO1xuXG4gICAgICAgIHB1c2gobGFiZWxzLCBmaWxlQ29udGV4dExhYmVscyk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0TGFiZWxzID0gcmVsZWFzZUNvbnRleHQuZ2V0TGFiZWxzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIHJlbGVhc2VDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0Q29tYmluYXRvcnMgPSBmaWxlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIGZpbGVDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGNvbWJpbmF0b3JzLCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5hdG9ycztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dENvbnN0cnVjdG9ycyA9IGZpbGVDb250ZXh0LmdldENvbnN0cnVjdG9ycyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goY29uc3RydWN0b3JzLCBmaWxlQ29udGV4dENvbnN0cnVjdG9ycyk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBhZGRGaWxlQ29udGV4dChmaWxlQ29udGV4dCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGpzb24gPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgcHVzaChqc29uLCBmaWxlQ29udGV4dEpTT04pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVFbnRyaWVzQW5kQ2FsbGJhY2tzKGxvZywgbmFtZSwgZW50cmllcywgY2FsbGJhY2tzKSB7XG4gICAgY29uc3QgdmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgICBjdXN0b21HcmFtbWFyID0gY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSxcbiAgICAgICAgICBmbG9yZW5jZUxleGVyID0gbnVsbCxcbiAgICAgICAgICBmbG9yZW5jZVBhcnNlciA9IG51bGwsXG4gICAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgZmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgZGlyZWN0b3J5UmVsZWFzZUNvbnRleHQgPSBuZXcgRGlyZWN0b3J5UmVsZWFzZUNvbnRleHQobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cywgZmlsZUNvbnRleHRzKTtcblxuICAgIHJldHVybiBkaXJlY3RvcnlSZWxlYXNlQ29udGV4dDtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJEaXJlY3RvcnlSZWxlYXNlQ29udGV4dCIsImxvZyIsIm5hbWUiLCJlbnRyaWVzIiwiY2FsbGJhY2tzIiwidmVyaWZpZWQiLCJjdXN0b21HcmFtbWFyIiwiZmxvcmVuY2VMZXhlciIsImZsb3JlbmNlUGFyc2VyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImZpbGVDb250ZXh0cyIsImdldEZpbGVDb250ZXh0cyIsImdldFR5cGVzIiwicmVsZWFzZU5hbWVzIiwidHlwZXMiLCJyZWxlYXNlTmFtZSIsImdldFJlbGVhc2VOYW1lIiwicmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSIsImluY2x1ZGVzIiwicHVzaCIsImJ1YmJsZSIsImZvckVhY2giLCJmaWxlQ29udGV4dCIsImZpbGVDb250ZXh0VHlwZXMiLCJnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImZpbGVDb250ZXh0UnVsZXMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExhYmVscyIsImxhYmVscyIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiYWRkRmlsZUNvbnRleHQiLCJ0b0pTT04iLCJqc29uIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ05hbWVFbnRyaWVzQW5kQ2FsbGJhY2tzIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsImRpcmVjdG9yeVJlbGVhc2VDb250ZXh0IiwiUmVsZWFzZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7OzREQUxNO3FCQUVOOzZCQUMyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQyxJQUFBLEFBQU1BLHdDQUFOO2NBQU1BOzhCQUFBQTthQUFBQSx3QkFDUEMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLHlCQUF5QixFQUFFQyxZQUFZOzhCQUR2SFY7O2tDQUVYQyxLQUFLQyxNQUFNQyxTQUFTQyxXQUFXQyxVQUFVQyxlQUFlQyxlQUFlQyxnQkFBZ0JDO1FBRTdGLE1BQUtDLFlBQVksR0FBR0E7OztpQkFKSFY7O1lBT25CVyxLQUFBQTttQkFBQUEsU0FBQUEsa0JBQWtCO2dCQUNoQixPQUFPLElBQUksQ0FBQ0QsWUFBWTtZQUMxQjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxXQUE0QjtvQkFBbkJDLGVBQUFBLGlFQUFlLEVBQUU7Z0JBQ3hCLElBQU1DLFFBQVEsRUFBRSxFQUNWQyxjQUFjLElBQUksQ0FBQ0MsY0FBYyxJQUNqQ0Msa0NBQWtDSixhQUFhSyxRQUFRLENBQUNIO2dCQUU5RCxJQUFJLENBQUNFLGlDQUFpQztvQkFDcENKLGFBQWFNLElBQUksQ0FBQ0o7b0JBRWxCLElBQU1LLFNBQVMsS0FBSztvQkFFcEIsSUFBSSxDQUFDVixZQUFZLENBQUNXLE9BQU8sQ0FBQyxTQUFDQyxhQUFnQjt3QkFDekMsSUFBTUMsbUJBQW1CRCxZQUFZVixRQUFRLENBQUNRO3dCQUU5Q0QsSUFBQUEsV0FBSSxFQUFDTCxPQUFPUztvQkFDZDtvQkFFQSxJQUFNZCw0QkFBNEIsSUFBSSxDQUFDZSw0QkFBNEI7b0JBRW5FZiwwQkFBMEJZLE9BQU8sQ0FBQyxTQUFDSSxnQkFBbUI7d0JBQ3BELElBQU1DLHNCQUFzQkQsZUFBZWIsUUFBUSxDQUFDQzt3QkFFcERNLElBQUFBLFdBQUksRUFBQ0wsT0FBT1k7b0JBQ2Q7Z0JBQ0YsQ0FBQztnQkFFRCxPQUFPWjtZQUNUOzs7WUFFQWEsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQTRCO29CQUFuQmQsZUFBQUEsaUVBQWUsRUFBRTtnQkFDeEIsSUFBTWUsUUFBUSxFQUFFLEVBQ1ZiLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNTyxtQkFBbUJQLFlBQVlLLFFBQVEsQ0FBQ1A7d0JBRTlDRCxJQUFBQSxXQUFJLEVBQUNTLE9BQU9DO29CQUNkO29CQUVBLElBQU1wQiw0QkFBNEIsSUFBSSxDQUFDZSw0QkFBNEI7b0JBRW5FZiwwQkFBMEJZLE9BQU8sQ0FBQyxTQUFDSSxnQkFBbUI7d0JBQ3BELElBQU1LLHNCQUFzQkwsZUFBZUUsUUFBUSxDQUFDZDt3QkFFcERNLElBQUFBLFdBQUksRUFBQ1MsT0FBT0U7b0JBQ2Q7Z0JBQ0YsQ0FBQztnQkFFRCxPQUFPRjtZQUNUOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQTZCO29CQUFuQmxCLGVBQUFBLGlFQUFlLEVBQUU7Z0JBQ3pCLElBQU1tQixTQUFTLEVBQUUsRUFDWGpCLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNVyxvQkFBb0JYLFlBQVlTLFNBQVMsQ0FBQ1g7d0JBRWhERCxJQUFBQSxXQUFJLEVBQUNhLFFBQVFDO29CQUNmO29CQUVBLElBQU14Qiw0QkFBNEIsSUFBSSxDQUFDZSw0QkFBNEI7b0JBRW5FZiwwQkFBMEJZLE9BQU8sQ0FBQyxTQUFDSSxnQkFBbUI7d0JBQ3BELElBQU1TLHVCQUF1QlQsZUFBZU0sU0FBUyxDQUFDbEI7d0JBRXRETSxJQUFBQSxXQUFJLEVBQUNhLFFBQVFFO29CQUNmO2dCQUNGLENBQUM7Z0JBRUQsT0FBT0Y7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxZQUE2QjtvQkFBbkJ0QixlQUFBQSxpRUFBZSxFQUFFO2dCQUN6QixJQUFNdUIsU0FBUyxFQUFFLEVBQ1hyQixjQUFjLElBQUksQ0FBQ0MsY0FBYyxJQUNqQ0Msa0NBQWtDSixhQUFhSyxRQUFRLENBQUNIO2dCQUU5RCxJQUFJLENBQUNFLGlDQUFpQztvQkFDcENKLGFBQWFNLElBQUksQ0FBQ0o7b0JBRWxCLElBQU1LLFNBQVMsS0FBSztvQkFFcEIsSUFBSSxDQUFDVixZQUFZLENBQUNXLE9BQU8sQ0FBQyxTQUFDQyxhQUFnQjt3QkFDekMsSUFBTWUsb0JBQW9CZixZQUFZYSxTQUFTLENBQUNmO3dCQUVoREQsSUFBQUEsV0FBSSxFQUFDaUIsUUFBUUM7b0JBQ2Y7b0JBRUEsSUFBTTVCLDRCQUE0QixJQUFJLENBQUNlLDRCQUE0QjtvQkFFbkVmLDBCQUEwQlksT0FBTyxDQUFDLFNBQUNJLGdCQUFtQjt3QkFDcEQsSUFBTWEsdUJBQXVCYixlQUFlVSxTQUFTLENBQUN0Qjt3QkFFdERNLElBQUFBLFdBQUksRUFBQ2lCLFFBQVFFO29CQUNmO2dCQUNGLENBQUM7Z0JBRUQsT0FBT0Y7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBa0M7b0JBQW5CMUIsZUFBQUEsaUVBQWUsRUFBRTtnQkFDOUIsSUFBTTJCLGNBQWMsRUFBRSxFQUNoQnpCLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQ0FBa0NKLGFBQWFLLFFBQVEsQ0FBQ0g7Z0JBRTlELElBQUksQ0FBQ0UsaUNBQWlDO29CQUNwQ0osYUFBYU0sSUFBSSxDQUFDSjtvQkFFbEIsSUFBTUssU0FBUyxLQUFLO29CQUVwQixJQUFJLENBQUNWLFlBQVksQ0FBQ1csT0FBTyxDQUFDLFNBQUNDLGFBQWdCO3dCQUN6QyxJQUFNbUIseUJBQXlCbkIsWUFBWWlCLGNBQWMsQ0FBQ25CO3dCQUUxREQsSUFBQUEsV0FBSSxFQUFDcUIsYUFBYUM7b0JBQ3BCO29CQUVBLElBQU1oQyw0QkFBNEIsSUFBSSxDQUFDZSw0QkFBNEI7b0JBRW5FZiwwQkFBMEJZLE9BQU8sQ0FBQyxTQUFDSSxnQkFBbUI7d0JBQ3BELElBQU1pQiw0QkFBNEJqQixlQUFlYyxjQUFjLENBQUMxQjt3QkFFaEVNLElBQUFBLFdBQUksRUFBQ3FCLGFBQWFFO29CQUNwQjtnQkFDRixDQUFDO2dCQUVELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsa0JBQW1DO29CQUFuQjlCLGVBQUFBLGlFQUFlLEVBQUU7Z0JBQy9CLElBQU0rQixlQUFlLEVBQUUsRUFDakI3QixjQUFjLElBQUksQ0FBQ0MsY0FBYyxJQUNqQ0Msa0NBQWtDSixhQUFhSyxRQUFRLENBQUNIO2dCQUU5RCxJQUFJLENBQUNFLGlDQUFpQztvQkFDcENKLGFBQWFNLElBQUksQ0FBQ0o7b0JBRWxCLElBQU1LLFNBQVMsS0FBSztvQkFFcEIsSUFBSSxDQUFDVixZQUFZLENBQUNXLE9BQU8sQ0FBQyxTQUFDQyxhQUFnQjt3QkFDekMsSUFBTXVCLDBCQUEwQnZCLFlBQVlxQixlQUFlLENBQUN2Qjt3QkFFNURELElBQUFBLFdBQUksRUFBQ3lCLGNBQWNDO29CQUNyQjtvQkFFQSxJQUFNcEMsNEJBQTRCLElBQUksQ0FBQ2UsNEJBQTRCO29CQUVuRWYsMEJBQTBCWSxPQUFPLENBQUMsU0FBQ0ksZ0JBQW1CO3dCQUNwRCxJQUFNcUIsNkJBQTZCckIsZUFBZWtCLGVBQWUsQ0FBQzlCO3dCQUVsRU0sSUFBQUEsV0FBSSxFQUFDeUIsY0FBY0U7b0JBQ3JCO2dCQUNGLENBQUM7Z0JBRUQsT0FBT0Y7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlekIsV0FBVyxFQUFFO2dCQUMxQixJQUFJLENBQUNaLFlBQVksQ0FBQ1MsSUFBSSxDQUFDRztZQUN6Qjs7O1lBRUEwQixLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNQyxPQUFPLEVBQUU7Z0JBRWYsSUFBSSxDQUFDdkMsWUFBWSxDQUFDVyxPQUFPLENBQUMsU0FBQ0MsYUFBZ0I7b0JBQ3pDLElBQU00QixrQkFBa0I1QixZQUFZMEIsTUFBTTtvQkFFMUM3QixJQUFBQSxXQUFJLEVBQUM4QixNQUFNQztnQkFDYjtnQkFFQSxPQUFPRDtZQUNUOzs7O1lBRU9FLEtBQUFBO21CQUFQLFNBQU9BLCtCQUErQmxELEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRTtnQkFDbkUsSUFBTUMsV0FBVyxLQUFLLEVBQ2hCQyxnQkFBZ0I4QyxJQUFBQSw4Q0FBK0IsRUFBQ2xELE1BQU1DLFVBQ3RESSxnQkFBZ0IsSUFBSSxFQUNwQkMsaUJBQWlCLElBQUksRUFDckJDLDRCQUE0QixJQUFJLEVBQ2hDQyxlQUFlLEVBQUUsRUFDakIyQywwQkFBMEIsSUExTWZyRCx3QkEwTTJDQyxLQUFLQyxNQUFNQyxTQUFTQyxXQUFXQyxVQUFVQyxlQUFlQyxlQUFlQyxnQkFBZ0JDLDJCQUEyQkM7Z0JBRTlLLE9BQU8yQztZQUNUOzs7V0E3TW1CckQ7RUFBZ0NzRCxnQkFBYyJ9
|
|
@@ -9,16 +9,14 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _release = /*#__PURE__*/ _interopRequireDefault(require("../../context/release"));
|
|
12
|
+
var _rule = /*#__PURE__*/ _interopRequireDefault(require("../../rule"));
|
|
13
|
+
var _type = /*#__PURE__*/ _interopRequireDefault(require("../../type"));
|
|
14
|
+
var _axiom = /*#__PURE__*/ _interopRequireDefault(require("../../axiom"));
|
|
15
|
+
var _combinator = /*#__PURE__*/ _interopRequireDefault(require("../../combinator"));
|
|
16
|
+
var _constructor = /*#__PURE__*/ _interopRequireDefault(require("../../constructor"));
|
|
12
17
|
var _array = require("../../utilities/array");
|
|
13
18
|
var _customGrammar = require("../../utilities/customGrammar");
|
|
14
|
-
|
|
15
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
16
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
17
|
-
return arr2;
|
|
18
|
-
}
|
|
19
|
-
function _arrayWithoutHoles(arr) {
|
|
20
|
-
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
21
|
-
}
|
|
19
|
+
var _kinds = require("../../kinds");
|
|
22
20
|
function _assertThisInitialized(self) {
|
|
23
21
|
if (self === void 0) {
|
|
24
22
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -84,12 +82,6 @@ function _interopRequireDefault(obj) {
|
|
|
84
82
|
default: obj
|
|
85
83
|
};
|
|
86
84
|
}
|
|
87
|
-
function _iterableToArray(iter) {
|
|
88
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
89
|
-
}
|
|
90
|
-
function _nonIterableSpread() {
|
|
91
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
92
|
-
}
|
|
93
85
|
function _possibleConstructorReturn(self, call) {
|
|
94
86
|
if (call && (_typeof(call) === "object" || typeof call === "function")) {
|
|
95
87
|
return call;
|
|
@@ -110,21 +102,10 @@ function _superPropBase(object, property) {
|
|
|
110
102
|
}
|
|
111
103
|
return object;
|
|
112
104
|
}
|
|
113
|
-
function _toConsumableArray(arr) {
|
|
114
|
-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
115
|
-
}
|
|
116
105
|
var _typeof = function(obj) {
|
|
117
106
|
"@swc/helpers - typeof";
|
|
118
107
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
119
108
|
};
|
|
120
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
121
|
-
if (!o) return;
|
|
122
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
123
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
124
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
125
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
126
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
127
|
-
}
|
|
128
109
|
function _isNativeReflectConstruct() {
|
|
129
110
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
130
111
|
if (Reflect.construct.sham) return false;
|
|
@@ -152,14 +133,13 @@ function _createSuper(Derived) {
|
|
|
152
133
|
var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
153
134
|
_inherits(FileReleaseContext, ReleaseContext);
|
|
154
135
|
var _super = _createSuper(FileReleaseContext);
|
|
155
|
-
function FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
136
|
+
function FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors) {
|
|
156
137
|
_classCallCheck(this, FileReleaseContext);
|
|
157
138
|
var _this;
|
|
158
|
-
_this = _super.call(this, log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
159
|
-
_this.rules = rules;
|
|
139
|
+
_this = _super.call(this, log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
|
|
160
140
|
_this.types = types;
|
|
141
|
+
_this.rules = rules;
|
|
161
142
|
_this.axioms = axioms;
|
|
162
|
-
_this.labels = labels;
|
|
163
143
|
_this.combinators = combinators;
|
|
164
144
|
_this.constructors = constructors;
|
|
165
145
|
_this.contextJSON = contextJSON;
|
|
@@ -173,43 +153,49 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
173
153
|
}
|
|
174
154
|
},
|
|
175
155
|
{
|
|
176
|
-
key: "
|
|
177
|
-
value: function
|
|
156
|
+
key: "getTypes",
|
|
157
|
+
value: function getTypes() {
|
|
178
158
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
179
|
-
var
|
|
159
|
+
var types = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
180
160
|
if (!releaseNamesIncludesReleaseName) {
|
|
181
161
|
releaseNames.push(releaseName);
|
|
182
|
-
this.
|
|
183
|
-
|
|
184
|
-
|
|
162
|
+
(0, _array.push)(types, this.types);
|
|
163
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
164
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
165
|
+
var releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
166
|
+
(0, _array.push)(types, releaseContextTypes);
|
|
185
167
|
});
|
|
186
168
|
}
|
|
187
|
-
return
|
|
169
|
+
return types;
|
|
188
170
|
}
|
|
189
171
|
},
|
|
190
172
|
{
|
|
191
|
-
key: "
|
|
192
|
-
value: function
|
|
173
|
+
key: "getRules",
|
|
174
|
+
value: function getRules() {
|
|
193
175
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
194
|
-
var
|
|
176
|
+
var rules = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
195
177
|
if (!releaseNamesIncludesReleaseName) {
|
|
196
178
|
releaseNames.push(releaseName);
|
|
197
|
-
this.
|
|
198
|
-
|
|
199
|
-
|
|
179
|
+
(0, _array.push)(rules, this.rules);
|
|
180
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
181
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
182
|
+
var releaseContextRules = releaseContext.getRules(releaseNames);
|
|
183
|
+
(0, _array.push)(rules, releaseContextRules);
|
|
200
184
|
});
|
|
201
185
|
}
|
|
202
|
-
return
|
|
186
|
+
return rules;
|
|
203
187
|
}
|
|
204
188
|
},
|
|
205
189
|
{
|
|
206
190
|
key: "getAxioms",
|
|
207
191
|
value: function getAxioms() {
|
|
208
192
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
209
|
-
var axioms =
|
|
193
|
+
var axioms = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
210
194
|
if (!releaseNamesIncludesReleaseName) {
|
|
211
195
|
releaseNames.push(releaseName);
|
|
212
|
-
this.
|
|
196
|
+
(0, _array.push)(axioms, this.axioms);
|
|
197
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
198
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
213
199
|
var releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
214
200
|
(0, _array.push)(axioms, releaseContextAxioms);
|
|
215
201
|
});
|
|
@@ -221,12 +207,21 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
221
207
|
key: "getLabels",
|
|
222
208
|
value: function getLabels() {
|
|
223
209
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
224
|
-
var labels =
|
|
210
|
+
var labels = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
225
211
|
if (!releaseNamesIncludesReleaseName) {
|
|
226
212
|
releaseNames.push(releaseName);
|
|
227
|
-
this.
|
|
228
|
-
var
|
|
229
|
-
(0, _array.push)(labels,
|
|
213
|
+
this.rules.forEach(function(rule) {
|
|
214
|
+
var ruleLabels = rule.getLabels();
|
|
215
|
+
(0, _array.push)(labels, ruleLabels);
|
|
216
|
+
});
|
|
217
|
+
this.axioms.forEach(function(axiom) {
|
|
218
|
+
var axiomLabels = axiom.getLabels();
|
|
219
|
+
(0, _array.push)(labels, axiomLabels);
|
|
220
|
+
});
|
|
221
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
222
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
223
|
+
var releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
224
|
+
(0, _array.push)(labels, releaseContextAxioms);
|
|
230
225
|
});
|
|
231
226
|
}
|
|
232
227
|
return labels;
|
|
@@ -236,10 +231,12 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
236
231
|
key: "getCombinators",
|
|
237
232
|
value: function getCombinators() {
|
|
238
233
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
239
|
-
var combinators =
|
|
234
|
+
var combinators = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
240
235
|
if (!releaseNamesIncludesReleaseName) {
|
|
241
236
|
releaseNames.push(releaseName);
|
|
242
|
-
this.
|
|
237
|
+
(0, _array.push)(combinators, this.combinators);
|
|
238
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
239
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
243
240
|
var releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
244
241
|
(0, _array.push)(combinators, releaseContextCombinators);
|
|
245
242
|
});
|
|
@@ -251,10 +248,12 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
251
248
|
key: "getConstructors",
|
|
252
249
|
value: function getConstructors() {
|
|
253
250
|
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
254
|
-
var constructors =
|
|
251
|
+
var constructors = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
255
252
|
if (!releaseNamesIncludesReleaseName) {
|
|
256
253
|
releaseNames.push(releaseName);
|
|
257
|
-
this.
|
|
254
|
+
(0, _array.push)(constructors, this.constructors);
|
|
255
|
+
var dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
256
|
+
dependencyReleaseContexts.forEach(function(releaseContext) {
|
|
258
257
|
var releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
259
258
|
(0, _array.push)(constructors, releaseContextConstructors);
|
|
260
259
|
});
|
|
@@ -265,15 +264,54 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
265
264
|
{
|
|
266
265
|
key: "initialise",
|
|
267
266
|
value: function initialise(dependencyReleaseContexts) {
|
|
267
|
+
var _this = this;
|
|
268
268
|
_get(_getPrototypeOf(FileReleaseContext.prototype), "initialise", this).call(this, dependencyReleaseContexts);
|
|
269
|
-
|
|
269
|
+
var jsonArray = this.contextJSON, callback = function(content, ruleName) {
|
|
270
|
+
var ruleMap = _this.florenceParser.getRuleMap(), tokens = _this.florenceLexer.tokenise(content), rule = ruleMap[ruleName], node = _this.florenceParser.parse(tokens, rule);
|
|
271
|
+
return node;
|
|
272
|
+
};
|
|
273
|
+
jsonArray.forEach(function(json) {
|
|
274
|
+
var kind = json.kind;
|
|
275
|
+
switch(kind){
|
|
276
|
+
case _kinds.TYPE_KIND:
|
|
277
|
+
{
|
|
278
|
+
var type = _type.default.fromJSON(json);
|
|
279
|
+
_this.types.push(type);
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
case _kinds.RULE_KIND:
|
|
283
|
+
{
|
|
284
|
+
var rule = _rule.default.fromJSON(json, callback);
|
|
285
|
+
_this.rules.push(rule);
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
case _kinds.AXIOM_KIND:
|
|
289
|
+
{
|
|
290
|
+
var axiom = _axiom.default.fromJSON(json, callback);
|
|
291
|
+
_this.axioms.push(axiom);
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
case _kinds.COMBINATOR_KIND:
|
|
295
|
+
{
|
|
296
|
+
var combinator = _combinator.default.fromJSON(json, callback);
|
|
297
|
+
_this.combinators.push(combinator);
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
case _kinds.CONSTRUCTOR_KIND:
|
|
301
|
+
{
|
|
302
|
+
var constructor = _constructor.default.fromJSON(json, callback);
|
|
303
|
+
_this.constructors.push(constructor);
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
});
|
|
270
308
|
}
|
|
271
309
|
}
|
|
272
310
|
], [
|
|
273
311
|
{
|
|
274
312
|
key: "fromLogNameEntriesCallbacksAndContextJSON",
|
|
275
313
|
value: function fromLogNameEntriesCallbacksAndContextJSON(log, name, entries, callbacks, contextJSON) {
|
|
276
|
-
var verified =
|
|
314
|
+
var verified = true, customGrammar = (0, _customGrammar.customGrammarFromNameAndEntries)(name, entries), florenceLexer = null, florenceParser = null, dependencyReleaseContexts = null, types = [], rules = [], axioms = [], combinators = [], constructors = [], releaseContext = new FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors);
|
|
277
315
|
return releaseContext;
|
|
278
316
|
}
|
|
279
317
|
}
|
|
@@ -281,4 +319,4 @@ var FileReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
|
281
319
|
return FileReleaseContext;
|
|
282
320
|
}(_release.default);
|
|
283
321
|
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZmlsZS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJlbGVhc2VDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7Y29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cywgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllc30gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVSZWxlYXNlQ29udGV4dCBleHRlbmRzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgcmVsZWFzZUNvbnRleHRzLCBjb250ZXh0SlNPTiwgcnVsZXMsIHR5cGVzLCBheGlvbXMsIGxhYmVscywgY29tYmluYXRvcnMsIGNvbnN0cnVjdG9ycykge1xuICAgIHN1cGVyKGxvZywgbmFtZSwgZW50cmllcywgY2FsbGJhY2tzLCB2ZXJpZmllZCwgY3VzdG9tR3JhbW1hciwgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLnJ1bGVzID0gcnVsZXM7XG4gICAgdGhpcy50eXBlcyA9IHR5cGVzO1xuICAgIHRoaXMuYXhpb21zID0gYXhpb21zO1xuICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgIHRoaXMuY29tYmluYXRvcnMgPSBjb21iaW5hdG9ycztcbiAgICB0aGlzLmNvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycztcbiAgICB0aGlzLmNvbnRleHRKU09OID0gY29udGV4dEpTT047XG4gIH1cblxuICBnZXRDb250ZXh0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0SlNPTjtcbiAgfVxuXG4gIGdldFJ1bGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgcnVsZXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLnJ1bGVzXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKHJ1bGVzLCByZWxlYXNlQ29udGV4dFJ1bGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldFR5cGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLnR5cGVzXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFR5cGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldEF4aW9tcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGF4aW9tcyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuYXhpb21zXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dEF4aW9tcyA9IHJlbGVhc2VDb250ZXh0LmdldEF4aW9tcyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGFiZWxzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW1xuICAgICAgICAgICAgLi4udGhpcy5sYWJlbHNcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0TGFiZWxzID0gcmVsZWFzZUNvbnRleHQuZ2V0TGFiZWxzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIHJlbGVhc2VDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW1xuICAgICAgICAgICAgLi4udGhpcy5jb21iaW5hdG9yc1xuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbWJpbmF0b3JzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcnMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmNvbnN0cnVjdG9yc1xuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMgPSByZWxlYXNlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGluaXRpYWxpc2UoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cykge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICBkZWJ1Z2dlclxuICB9XG5cbiAgc3RhdGljIGZyb21Mb2dOYW1lRW50cmllc0NhbGxiYWNrc0FuZENvbnRleHRKU09OKGxvZywgbmFtZSwgZW50cmllcywgY2FsbGJhY2tzLCBjb250ZXh0SlNPTikge1xuICAgIGNvbnN0IHZlcmlmaWVkID0gZmFsc2UsIC8vL1xuICAgICAgICAgIGN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyRnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpLFxuICAgICAgICAgIGZsb3JlbmNlTGV4ZXIgPSBudWxsLFxuICAgICAgICAgIGZsb3JlbmNlUGFyc2VyID0gbnVsbCxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dHMgPSBudWxsLFxuICAgICAgICAgIHJ1bGVzID0gbnVsbCxcbiAgICAgICAgICB0eXBlcyA9IG51bGwsXG4gICAgICAgICAgYXhpb21zID0gbnVsbCxcbiAgICAgICAgICBsYWJlbHMgPSBudWxsLFxuICAgICAgICAgIGNvbWJpbmF0b3JzID0gbnVsbCxcbiAgICAgICAgICBjb25zdHJ1Y3RvcnMgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gbmV3IEZpbGVSZWxlYXNlQ29udGV4dChsb2csIG5hbWUsIGVudHJpZXMsIGNhbGxiYWNrcywgdmVyaWZpZWQsIGN1c3RvbUdyYW1tYXIsIGZsb3JlbmNlTGV4ZXIsIGZsb3JlbmNlUGFyc2VyLCByZWxlYXNlQ29udGV4dHMsIGNvbnRleHRKU09OLCBydWxlcywgdHlwZXMsIGF4aW9tcywgbGFiZWxzLCBjb21iaW5hdG9ycywgY29uc3RydWN0b3JzKTtcblxuICAgIHJldHVybiByZWxlYXNlQ29udGV4dDtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJGaWxlUmVsZWFzZUNvbnRleHQiLCJsb2ciLCJuYW1lIiwiZW50cmllcyIsImNhbGxiYWNrcyIsInZlcmlmaWVkIiwiY3VzdG9tR3JhbW1hciIsImZsb3JlbmNlTGV4ZXIiLCJmbG9yZW5jZVBhcnNlciIsInJlbGVhc2VDb250ZXh0cyIsImNvbnRleHRKU09OIiwicnVsZXMiLCJ0eXBlcyIsImF4aW9tcyIsImxhYmVscyIsImNvbWJpbmF0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0Q29udGV4dEpTT04iLCJnZXRSdWxlcyIsInJlbGVhc2VOYW1lcyIsInJlbGVhc2VOYW1lIiwiZ2V0UmVsZWFzZU5hbWUiLCJyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lIiwiaW5jbHVkZXMiLCJwdXNoIiwiZm9yRWFjaCIsInJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRSdWxlcyIsImdldFR5cGVzIiwicmVsZWFzZUNvbnRleHRUeXBlcyIsImdldEF4aW9tcyIsInJlbGVhc2VDb250ZXh0QXhpb21zIiwiZ2V0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImluaXRpYWxpc2UiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiZnJvbUxvZ05hbWVFbnRyaWVzQ2FsbGJhY2tzQW5kQ29udGV4dEpTT04iLCJjdXN0b21HcmFtbWFyRnJvbU5hbWVBbmRFbnRyaWVzIiwiUmVsZWFzZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7OzREQUxNO3FCQUVOOzZCQUNtRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RSxJQUFBLEFBQU1BLG1DQUFOO2NBQU1BOzhCQUFBQTthQUFBQSxtQkFDUEMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGVBQWUsRUFB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
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZmlsZS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJlbGVhc2VDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uLy4uL3J1bGVcIjtcbmltcG9ydCBUeXBlIGZyb20gXCIuLi8uLi90eXBlXCI7XG5pbXBvcnQgQXhpb20gZnJvbSBcIi4uLy4uL2F4aW9tXCI7XG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IENvbnN0cnVjdG9yIGZyb20gXCIuLi8uLi9jb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuaW1wb3J0IHsgUlVMRV9LSU5ELCBUWVBFX0tJTkQsIEFYSU9NX0tJTkQsIENPTUJJTkFUT1JfS0lORCwgQ09OU1RSVUNUT1JfS0lORCB9IGZyb20gXCIuLi8uLi9raW5kc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlUmVsZWFzZUNvbnRleHQgZXh0ZW5kcyBSZWxlYXNlQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGxvZywgbmFtZSwgZW50cmllcywgY2FsbGJhY2tzLCB2ZXJpZmllZCwgY3VzdG9tR3JhbW1hciwgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMsIGNvbnRleHRKU09OLCB0eXBlcywgcnVsZXMsIGF4aW9tcywgY29tYmluYXRvcnMsIGNvbnN0cnVjdG9ycykge1xuICAgIHN1cGVyKGxvZywgbmFtZSwgZW50cmllcywgY2FsbGJhY2tzLCB2ZXJpZmllZCwgY3VzdG9tR3JhbW1hciwgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgdGhpcy50eXBlcyA9IHR5cGVzO1xuICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICB0aGlzLmF4aW9tcyA9IGF4aW9tcztcbiAgICB0aGlzLmNvbWJpbmF0b3JzID0gY29tYmluYXRvcnM7XG4gICAgdGhpcy5jb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnM7XG4gICAgdGhpcy5jb250ZXh0SlNPTiA9IGNvbnRleHRKU09OO1xuICB9XG5cbiAgZ2V0Q29udGV4dEpTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dEpTT047XG4gIH1cblxuICBnZXRUeXBlcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgcHVzaCh0eXBlcywgdGhpcy50eXBlcyk7XG5cbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFR5cGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldFJ1bGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgcnVsZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBwdXNoKHJ1bGVzLCB0aGlzLnJ1bGVzKTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0UnVsZXMgPSByZWxlYXNlQ29udGV4dC5nZXRSdWxlcyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2gocnVsZXMsIHJlbGVhc2VDb250ZXh0UnVsZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG5cbiAgZ2V0QXhpb21zKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgYXhpb21zID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgcHVzaChheGlvbXMsIHRoaXMuYXhpb21zKTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMYWJlbHMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICB0aGlzLnJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgcnVsZUxhYmVscyA9IHJ1bGUuZ2V0TGFiZWxzKCk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIHJ1bGVMYWJlbHMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYXhpb21zLmZvckVhY2goKGF4aW9tKSA9PiB7XG4gICAgICAgIGNvbnN0IGF4aW9tTGFiZWxzID0gYXhpb20uZ2V0TGFiZWxzKCk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIGF4aW9tTGFiZWxzKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRBeGlvbXMgPSByZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRBeGlvbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29tYmluYXRvcnMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCB0aGlzLmNvbWJpbmF0b3JzKTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMgPSByZWxlYXNlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHRoaXMuY29uc3RydWN0b3JzKTtcblxuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBpbml0aWFsaXNlKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpIHtcbiAgICBzdXBlci5pbml0aWFsaXNlKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgY29uc3QganNvbkFycmF5ID0gdGhpcy5jb250ZXh0SlNPTiwgIC8vL1xuICAgICAgICAgIGNhbGxiYWNrID0gKGNvbnRlbnQsIHJ1bGVOYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydWxlTWFwID0gdGhpcy5mbG9yZW5jZVBhcnNlci5nZXRSdWxlTWFwKCksXG4gICAgICAgICAgICAgICAgICB0b2tlbnMgPSB0aGlzLmZsb3JlbmNlTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICAgICAgICBydWxlID0gcnVsZU1hcFtydWxlTmFtZV0sXG4gICAgICAgICAgICAgICAgICBub2RlID0gdGhpcy5mbG9yZW5jZVBhcnNlci5wYXJzZSh0b2tlbnMsIHJ1bGUpO1xuXG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICB9O1xuXG4gICAganNvbkFycmF5LmZvckVhY2goKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHsga2luZCB9ID0ganNvbjtcblxuICAgICAgc3dpdGNoIChraW5kKSB7XG4gICAgICAgIGNhc2UgVFlQRV9LSU5EOiB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IFR5cGUuZnJvbUpTT04oanNvbik7XG5cbiAgICAgICAgICB0aGlzLnR5cGVzLnB1c2godHlwZSk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgUlVMRV9LSU5EOiB7XG4gICAgICAgICAgY29uc3QgcnVsZSA9IFJ1bGUuZnJvbUpTT04oanNvbiwgY2FsbGJhY2spO1xuXG4gICAgICAgICAgdGhpcy5ydWxlcy5wdXNoKHJ1bGUpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIEFYSU9NX0tJTkQ6IHtcbiAgICAgICAgICBjb25zdCBheGlvbSA9IEF4aW9tLmZyb21KU09OKGpzb24sIGNhbGxiYWNrKTtcblxuICAgICAgICAgIHRoaXMuYXhpb21zLnB1c2goYXhpb20pO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIENPTUJJTkFUT1JfS0lORDoge1xuICAgICAgICAgIGNvbnN0IGNvbWJpbmF0b3IgPSBDb21iaW5hdG9yLmZyb21KU09OKGpzb24sIGNhbGxiYWNrKTtcblxuICAgICAgICAgIHRoaXMuY29tYmluYXRvcnMucHVzaChjb21iaW5hdG9yKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBDT05TVFJVQ1RPUl9LSU5EOiB7XG4gICAgICAgICAgY29uc3QgY29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5mcm9tSlNPTihqc29uLCBjYWxsYmFjayk7XG5cbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9ycy5wdXNoKGNvbnN0cnVjdG9yKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVFbnRyaWVzQ2FsbGJhY2tzQW5kQ29udGV4dEpTT04obG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIGNvbnRleHRKU09OKSB7XG4gICAgY29uc3QgdmVyaWZpZWQgPSB0cnVlLFxuICAgICAgICAgIGN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyRnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpLFxuICAgICAgICAgIGZsb3JlbmNlTGV4ZXIgPSBudWxsLFxuICAgICAgICAgIGZsb3JlbmNlUGFyc2VyID0gbnVsbCxcbiAgICAgICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gbnVsbCxcbiAgICAgICAgICB0eXBlcyA9IFtdLFxuICAgICAgICAgIHJ1bGVzID0gW10sXG4gICAgICAgICAgYXhpb21zID0gW10sXG4gICAgICAgICAgY29tYmluYXRvcnMgPSBbXSxcbiAgICAgICAgICBjb25zdHJ1Y3RvcnMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IG5ldyBGaWxlUmVsZWFzZUNvbnRleHQobG9nLCBuYW1lLCBlbnRyaWVzLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cywgY29udGV4dEpTT04sIHR5cGVzLCBydWxlcywgYXhpb21zLCBjb21iaW5hdG9ycywgY29uc3RydWN0b3JzKTtcblxuICAgIHJldHVybiByZWxlYXNlQ29udGV4dDtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJGaWxlUmVsZWFzZUNvbnRleHQiLCJsb2ciLCJuYW1lIiwiZW50cmllcyIsImNhbGxiYWNrcyIsInZlcmlmaWVkIiwiY3VzdG9tR3JhbW1hciIsImZsb3JlbmNlTGV4ZXIiLCJmbG9yZW5jZVBhcnNlciIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJjb250ZXh0SlNPTiIsInR5cGVzIiwicnVsZXMiLCJheGlvbXMiLCJjb21iaW5hdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnRleHRKU09OIiwiZ2V0VHlwZXMiLCJyZWxlYXNlTmFtZXMiLCJyZWxlYXNlTmFtZSIsImdldFJlbGVhc2VOYW1lIiwicmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSIsImluY2x1ZGVzIiwicHVzaCIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJmb3JFYWNoIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0UnVsZXMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0QXhpb21zIiwicmVsZWFzZUNvbnRleHRBeGlvbXMiLCJnZXRMYWJlbHMiLCJsYWJlbHMiLCJydWxlIiwicnVsZUxhYmVscyIsImF4aW9tIiwiYXhpb21MYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImluaXRpYWxpc2UiLCJqc29uQXJyYXkiLCJjYWxsYmFjayIsImNvbnRlbnQiLCJydWxlTmFtZSIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwidG9rZW5zIiwidG9rZW5pc2UiLCJub2RlIiwicGFyc2UiLCJqc29uIiwia2luZCIsIlRZUEVfS0lORCIsInR5cGUiLCJUeXBlIiwiZnJvbUpTT04iLCJSVUxFX0tJTkQiLCJSdWxlIiwiQVhJT01fS0lORCIsIkF4aW9tIiwiQ09NQklOQVRPUl9LSU5EIiwiY29tYmluYXRvciIsIkNvbWJpbmF0b3IiLCJDT05TVFJVQ1RPUl9LSU5EIiwiY29uc3RydWN0b3IiLCJDb25zdHJ1Y3RvciIsImZyb21Mb2dOYW1lRW50cmllc0NhbGxiYWNrc0FuZENvbnRleHRKU09OIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsIlJlbGVhc2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQWNxQkE7Ozs0REFaTTt5REFFVjt5REFDQTswREFDQzsrREFDSztnRUFDQztxQkFFSDs2QkFDMkI7cUJBQ29DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckUsSUFBQSxBQUFNQSxtQ0FBTjtjQUFNQTs4QkFBQUE7YUFBQUEsbUJBQ1BDLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxFQUFFQyx5QkFBeUIsRUFBRUMsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLFlBQVk7OEJBRHZLZjs7a0NBRVhDLEtBQUtDLE1BQU1DLFNBQVNDLFdBQVdDLFVBQVVDLGVBQWVDLGVBQWVDLGdCQUFnQkM7UUFFN0Ys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
|