occam-nominal 1.0.310 → 1.0.317
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/context/liminal.js +17 -15
- package/lib/context/phaneric.js +3 -3
- package/lib/context.js +3 -3
- package/lib/element/assertion/contained.js +19 -17
- package/lib/element/assertion/defined.js +16 -14
- package/lib/element/conclusion.js +10 -11
- package/lib/element/declaration/variable.js +2 -2
- package/lib/element/deduction.js +7 -7
- package/lib/element/equality.js +3 -3
- package/lib/element/frame.js +8 -3
- package/lib/element/goal.js +7 -8
- package/lib/element/judgement.js +8 -10
- package/lib/element/metavariable.js +44 -40
- package/lib/element/proof.js +2 -2
- package/lib/element/proofAssertion/premise.js +17 -21
- package/lib/element/proofAssertion/step.js +5 -5
- package/lib/element/proofAssertion/supposition.js +39 -35
- package/lib/element/rule.js +24 -22
- package/lib/element/statement.js +56 -32
- package/lib/element/substitution/frame.js +71 -62
- package/lib/element/substitution/reference.js +21 -21
- package/lib/element/substitution/statement.js +81 -98
- package/lib/element/substitution/term.js +76 -67
- package/lib/element/substitution.js +5 -5
- package/lib/element/term.js +2 -2
- package/lib/element/topLevelAssertion/axiom.js +4 -5
- package/lib/element/topLevelAssertion/conjecture.js +3 -3
- package/lib/element/topLevelAssertion/lemma.js +3 -3
- package/lib/element/topLevelAssertion/theorem.js +3 -3
- package/lib/element/topLevelAssertion.js +59 -69
- package/lib/node/metavariable.js +18 -1
- package/lib/process/unify.js +5 -7
- package/lib/process/validation.js +5 -2
- package/lib/utilities/element.js +34 -56
- package/package.json +2 -2
- package/src/context/liminal.js +18 -16
- package/src/context/phaneric.js +3 -3
- package/src/context.js +2 -2
- package/src/element/assertion/contained.js +19 -18
- package/src/element/assertion/defined.js +16 -16
- package/src/element/conclusion.js +9 -11
- package/src/element/declaration/variable.js +1 -1
- package/src/element/deduction.js +6 -6
- package/src/element/equality.js +2 -2
- package/src/element/frame.js +10 -2
- package/src/element/goal.js +6 -8
- package/src/element/judgement.js +7 -11
- package/src/element/metavariable.js +56 -52
- package/src/element/proof.js +1 -1
- package/src/element/proofAssertion/premise.js +17 -25
- package/src/element/proofAssertion/step.js +4 -4
- package/src/element/proofAssertion/supposition.js +44 -43
- package/src/element/rule.js +27 -25
- package/src/element/statement.js +71 -41
- package/src/element/substitution/frame.js +88 -82
- package/src/element/substitution/reference.js +30 -32
- package/src/element/substitution/statement.js +97 -132
- package/src/element/substitution/term.js +95 -89
- package/src/element/substitution.js +6 -6
- package/src/element/term.js +1 -1
- package/src/element/topLevelAssertion/axiom.js +3 -5
- package/src/element/topLevelAssertion/conjecture.js +2 -2
- package/src/element/topLevelAssertion/lemma.js +2 -2
- package/src/element/topLevelAssertion/theorem.js +2 -2
- package/src/element/topLevelAssertion.js +61 -80
- package/src/node/metavariable.js +28 -1
- package/src/process/unify.js +7 -16
- package/src/process/validation.js +5 -4
- package/src/utilities/element.js +49 -64
|
@@ -60,11 +60,10 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
60
60
|
if (nonsensical) {
|
|
61
61
|
const verifies = false;
|
|
62
62
|
context.debug(`Unable to verify the '${premiseString}' premise because it is nonsense.`);
|
|
63
|
-
continuation(verifies);
|
|
64
|
-
return;
|
|
63
|
+
return continuation(verifies);
|
|
65
64
|
}
|
|
66
65
|
(0, _context.declare)((context)=>{
|
|
67
|
-
this.validate(context, (validates)=>{
|
|
66
|
+
return this.validate(context, (validates)=>{
|
|
68
67
|
let verifies = false;
|
|
69
68
|
if (validates) {
|
|
70
69
|
verifies = true;
|
|
@@ -72,7 +71,7 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
72
71
|
if (verifies) {
|
|
73
72
|
context.debug(`...verified the '${premiseString}' premise.`);
|
|
74
73
|
}
|
|
75
|
-
continuation(verifies);
|
|
74
|
+
return continuation(verifies);
|
|
76
75
|
});
|
|
77
76
|
}, context);
|
|
78
77
|
});
|
|
@@ -81,7 +80,7 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
81
80
|
context.trace(`Validatting the '${premiseString}' premise...`);
|
|
82
81
|
(0, _context.attempt)((context)=>{
|
|
83
82
|
const validateStatement = this.validateStatement.bind(this), validateProcedureCall = this.validateProcedureCall.bind(this);
|
|
84
|
-
(0, _continuation.exists)([
|
|
83
|
+
return (0, _continuation.exists)([
|
|
85
84
|
validateStatement,
|
|
86
85
|
validateProcedureCall
|
|
87
86
|
], context, (validates)=>{
|
|
@@ -91,7 +90,7 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
91
90
|
if (validates) {
|
|
92
91
|
context.debug(`...validated the '${premiseString}' premise.`);
|
|
93
92
|
}
|
|
94
|
-
continuation(validates);
|
|
93
|
+
return continuation(validates);
|
|
95
94
|
});
|
|
96
95
|
}, context);
|
|
97
96
|
}
|
|
@@ -99,12 +98,11 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
99
98
|
const statement = this.getStatement();
|
|
100
99
|
if (statement === null) {
|
|
101
100
|
const statementValidates = false;
|
|
102
|
-
continuation(statementValidates);
|
|
103
|
-
return;
|
|
101
|
+
return continuation(statementValidates);
|
|
104
102
|
}
|
|
105
103
|
const premiseString = this.getString();
|
|
106
104
|
context.trace(`Validating the '${premiseString}' premise's statsement...`);
|
|
107
|
-
statement.validate(context, (statement)=>{
|
|
105
|
+
return statement.validate(context, (statement)=>{
|
|
108
106
|
let statementValidates = false;
|
|
109
107
|
if (statement !== null) {
|
|
110
108
|
statementValidates = true;
|
|
@@ -112,23 +110,22 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
112
110
|
if (statementValidates) {
|
|
113
111
|
context.debug(`...validated the '${premiseString}' premise's statement.`);
|
|
114
112
|
}
|
|
115
|
-
continuation(statementValidates);
|
|
113
|
+
return continuation(statementValidates);
|
|
116
114
|
});
|
|
117
115
|
}
|
|
118
116
|
validateProcedureCall(context, continuation) {
|
|
119
117
|
const procedureCall = this.getProcedureCall();
|
|
120
118
|
if (procedureCall === null) {
|
|
121
119
|
const procedureCallValidates = false;
|
|
122
|
-
continuation(procedureCallValidates);
|
|
123
|
-
return;
|
|
120
|
+
return continuation(procedureCallValidates);
|
|
124
121
|
}
|
|
125
122
|
const premiseString = this.getString();
|
|
126
123
|
context.trace(`Validatting the '${premiseString}' premise's procedure call...`);
|
|
127
|
-
|
|
124
|
+
return procedureCall.validate(context, (procedureCallValidates)=>{
|
|
128
125
|
if (procedureCallValidates) {
|
|
129
126
|
context.debug(`...validated the '${premiseString}' premise's procedure call.`);
|
|
130
127
|
}
|
|
131
|
-
continuation(procedureCallValidates);
|
|
128
|
+
return continuation(procedureCallValidates);
|
|
132
129
|
});
|
|
133
130
|
}
|
|
134
131
|
unifyIndependently(context, continuation) {
|
|
@@ -169,19 +166,18 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
169
166
|
const subproofAssertion = this.findSubproofAssertion();
|
|
170
167
|
if (subproofAssertion === null) {
|
|
171
168
|
const subproofUnifies = false;
|
|
172
|
-
continuation(subproofUnifies);
|
|
173
|
-
return;
|
|
169
|
+
return continuation(subproofUnifies);
|
|
174
170
|
}
|
|
175
171
|
const premiseContext = this.getContext(), generalContext = premiseContext, specificContext = context; ///
|
|
176
172
|
(0, _context.reconcile)((context)=>{
|
|
177
|
-
subproofAssertion.unifySubproof(subproof, generalContext, specificContext, (subproofUnifies)=>{
|
|
173
|
+
return subproofAssertion.unifySubproof(subproof, generalContext, specificContext, (subproofUnifies)=>{
|
|
178
174
|
if (subproofUnifies) {
|
|
179
175
|
context.commit();
|
|
180
176
|
}
|
|
181
177
|
if (subproofUnifies) {
|
|
182
178
|
context.debug(`...unified the '${subproofString}' subproof with the '${premiseString}' premise.`);
|
|
183
179
|
}
|
|
184
|
-
continuation(subproofUnifies);
|
|
180
|
+
return continuation(subproofUnifies);
|
|
185
181
|
});
|
|
186
182
|
}, context);
|
|
187
183
|
}
|
|
@@ -191,7 +187,7 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
191
187
|
const proofAssertionContext = proofAssertion.getContext(), premiseContext = this.getContext(), generalContext = premiseContext, specificContext = proofAssertionContext; ///
|
|
192
188
|
(0, _context.reconcile)((specificContext)=>{
|
|
193
189
|
const statement = proofAssertion.getStatement();
|
|
194
|
-
this.unifyStatement(statement, generalContext, specificContext, (statementUnifies)=>{
|
|
190
|
+
return this.unifyStatement(statement, generalContext, specificContext, (statementUnifies)=>{
|
|
195
191
|
let proofAssertionUnifies = false;
|
|
196
192
|
if (statementUnifies) {
|
|
197
193
|
proofAssertionUnifies = true;
|
|
@@ -200,7 +196,7 @@ const _default = (0, _elements.define)(class Premise extends _proofAssertion.def
|
|
|
200
196
|
if (proofAssertionUnifies) {
|
|
201
197
|
context.debug(`...unified the '${proofAssertionString}' proof assertion with the '${premiseString}' premise.`);
|
|
202
198
|
}
|
|
203
|
-
continuation(proofAssertionUnifies);
|
|
199
|
+
return continuation(proofAssertionUnifies);
|
|
204
200
|
});
|
|
205
201
|
}, specificContext);
|
|
206
202
|
}
|
|
@@ -246,4 +242,4 @@ function statementFromPremiseNode(premiseNode, context) {
|
|
|
246
242
|
return statement;
|
|
247
243
|
}
|
|
248
244
|
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Byb29mQXNzZXJ0aW9uL3ByZW1pc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IFByb29mQXNzZXJ0aW9uIGZyb20gXCIuLi9wcm9vZkFzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGV4aXN0cyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVByZW1pc2UgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlQ2FsbEZyb21QcmVtaXNlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgZGVjbGFyZSwgYXR0ZW1wdCwgcmVjb25jaWxlLCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSwgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByZW1pc2UgZXh0ZW5kcyBQcm9vZkFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50LCBwcm9jZWR1cmVDYWxsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdGF0ZW1lbnQpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldFByZW1pc2VOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBwcmVtaXNlTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHByZW1pc2VOb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBwcmVtaXNlTm9kZSA9IHRoaXMuZ2V0UHJlbWlzZU5vZGUoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gcHJlbWlzZU5vZGUuZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBmaW5kU3VicHJvb2ZBc3NlcnRpb24oKSB7XG4gICAgbGV0IHN1YnByb29mQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSB0aGlzLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldFN1YnByb29mQXNzZXJ0aW9uTm9kZSgpO1xuXG4gICAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IGNvbnRleHQuZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZShzdWJwcm9vZkFzc2VydGlvbk5vZGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcbiAgfVxuXG4gIGlzTm9uc2Vuc2ljYWwoKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gdGhpcy5nZXRQcm9jZWR1cmVDYWxsKCksXG4gICAgICAgICAgbm9uc2Vuc2ljYWwgPSAoKHN0YXRlbWVudCA9PT0gbnVsbCkgJiYgKHByb2NlZHVyZUNhbGwgPT09IG51bGwpKTtcblxuICAgIHJldHVybiBub25zZW5zaWNhbDtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcHJlbWlzZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgICBjb25zdCBub25zZW5zaWNhbCA9IHRoaXMuaXNOb25zZW5zaWNhbCgpO1xuXG4gICAgaWYgKG5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuXG4gICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGVjbGFyZSgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZShjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dCk7XG4gIH0pO1xuXG4gIHZhbGlkYXRlKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXR0aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVTdGF0ZW1lbnQgPSB0aGlzLnZhbGlkYXRlU3RhdGVtZW50LmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVByb2NlZHVyZUNhbGwgPSB0aGlzLnZhbGlkYXRlUHJvY2VkdXJlQ2FsbC5iaW5kKHRoaXMpO1xuXG4gICAgICBleGlzdHMoW1xuICAgICAgICB2YWxpZGF0ZVN0YXRlbWVudCxcbiAgICAgICAgdmFsaWRhdGVQcm9jZWR1cmVDYWxsXG4gICAgICBdLCBjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWF0aW9uKHZhbGlkYXRlcyk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBpZiAoc3RhdGVtZW50ID09PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlJ3Mgc3RhdHNlbWVudC4uLmApO1xuXG4gICAgc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQsIChzdGF0ZW1lbnQpID0+IHtcbiAgICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UncyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVQcm9jZWR1cmVDYWxsKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByb2NlZHVyZUNhbGwgPSB0aGlzLmdldFByb2NlZHVyZUNhbGwoKTtcblxuICAgIGlmIChwcm9jZWR1cmVDYWxsID09PSBudWxsKSB7XG4gICAgICBjb25zdCBwcm9jZWR1cmVDYWxsVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihwcm9jZWR1cmVDYWxsVmFsaWRhdGVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdHRpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlJ3MgcHJvY2VkdXJlIGNhbGwuLi5gKTtcblxuICAgIHRoaXMucHJvY2VkdXJlQ2FsbC52YWxpZGF0ZShjb250ZXh0LCAocHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykgPT4ge1xuICAgICAgaWYgKHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSdzIHByb2NlZHVyZSBjYWxsLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocHJvY2VkdXJlQ2FsbFZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bmlmeUluZGVwZW5kZW50bHkoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcHJlbWlzZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlIGluZGVwZW5kZW50bHkuLi5gKTtcblxuICAgIHJlY29uY2lsZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgIHByb2NlZHVyZUNhbGwgPSB0aGlzLmdldFByb2NlZHVyZUNhbGwoKTtcblxuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcmVtaXNlQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAvLy9cbiAgICAgICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcmVtaXNlQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHN0YXRlbWVudC51bmlmeUluZGVwZW5kZW50bHkoZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5KSA9PiB7XG4gICAgICAgICAgbGV0IHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoc3RhdGVtZW50VW5pZmllc0luZGVwZW5kZW50bHkpIHtcbiAgICAgICAgICAgIHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodW5pZmllc0luZGVwZW5kZW50bHkpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlIGluZGVwZW5kZW50bHkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih1bmlmaWVzSW5kZXBlbmRlbnRseSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbC51bmlmeUluZGVwZW5kZW50bHkoY29udGV4dCwgKHByb2NlZHVyZUNhbGxSZXNvbHZlZEluZGVwZW5kZW50bHkpID0+IHtcbiAgICAgICAgICBsZXQgdW5pZmllc0luZGVwZW5kZW50bHkgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgICAgICB1bmlmaWVzSW5kZXBlbmRlbnRseSA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHVuaWZpZXNJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSBpbmRlcGVuZGVudGx5LmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24odW5pZmllc0luZGVwZW5kZW50bHkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBzdWJwcm9vZlN0cmluZyA9IHN1YnByb29mLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuLi5gKTtcblxuICAgIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uID0gdGhpcy5maW5kU3VicHJvb2ZBc3NlcnRpb24oKTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZVbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWJwcm9vZlVuaWZpZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJlbWlzZUNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcmVtaXNlQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChzdWJwcm9vZlVuaWZpZXMpID0+IHtcbiAgICAgICAgaWYgKHN1YnByb29mVW5pZmllcykge1xuICAgICAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VicHJvb2ZVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVhdGlvbihzdWJwcm9vZlVuaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB1bmlmeVByb29mQXNzZXJ0aW9uKHByb29mQXNzZXJ0aW9uLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25TdHJpbmcgPSBwcm9vZkFzc2VydGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIHByb29mIGFzc2VydGlvbiB3aXRoIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmApO1xuXG4gICAgY29uc3QgcHJvb2ZBc3NlcnRpb25Db250ZXh0ID0gcHJvb2ZBc3NlcnRpb24uZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByZW1pc2VDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gcHJlbWlzZUNvbnRleHQsIC8vL1xuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IHByb29mQXNzZXJ0aW9uQ29udGV4dDsgIC8vL1xuXG4gICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXMpID0+IHtcbiAgICAgICAgbGV0IHByb29mQXNzZXJ0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25VbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvb2ZBc3NlcnRpb25VbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBwcm9vZiBhc3NlcnRpb24gd2l0aCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24ocHJvb2ZBc3NlcnRpb25VbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gIH1cblxuICB1bmlmeVN1YnByb29mT3JQcm9vZkFzc2VydGlvbihzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvblByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLmlzUHJvb2ZBc3NlcnRpb24oKTtcblxuICAgIGlmIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25Qcm9vZkFzc2VydGlvbikge1xuICAgICAgY29uc3QgcHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb247ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudW5pZnlQcm9vZkFzc2VydGlvbihwcm9vZkFzc2VydGlvbiwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJwcm9vZiA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbjsgIC8vL1xuXG4gICAgcmV0dXJuIHRoaXMudW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICByZXR1cm4gc2VyaWFsaXNlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgICAgY29uc3QganNvbiA9IHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBicmVha1BvaW50XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcmVtaXNlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgcHJlbWlzZTtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgcHJlbWlzZU5vZGUgPSBpbnN0YW50aWF0ZVByZW1pc2Uoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHByZW1pc2VOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21QcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsRnJvbVByZW1pc2VOb2RlKHByZW1pc2VOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBwcmVtaXNlID0gbmV3IFByZW1pc2UoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdGF0ZW1lbnQsIHByb2NlZHVyZUNhbGwpO1xuICAgICAgfSwganNvbiwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHN0YXRlbWVudEZyb21QcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gcHJlbWlzZU5vZGUuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnQgPSBjb250ZXh0LmZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcmVtaXNlIiwiUHJvb2ZBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdGF0ZW1lbnQiLCJwcm9jZWR1cmVDYWxsIiwiZ2V0UHJvY2VkdXJlQ2FsbCIsImdldFByZW1pc2VOb2RlIiwiZ2V0Tm9kZSIsInByZW1pc2VOb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJmaW5kU3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uTm9kZSIsImdldFN1YnByb29mQXNzZXJ0aW9uTm9kZSIsImdldENvbnRleHQiLCJmaW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlIiwiaXNOb25zZW5zaWNhbCIsImdldFN0YXRlbWVudCIsIm5vbnNlbnNpY2FsIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwicHJlbWlzZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZpZXMiLCJkZWJ1ZyIsImRlY2xhcmUiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsImF0dGVtcHQiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsImJpbmQiLCJ2YWxpZGF0ZVByb2NlZHVyZUNhbGwiLCJleGlzdHMiLCJjb21taXQiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJwcm9jZWR1cmVDYWxsVmFsaWRhdGVzIiwidW5pZnlJbmRlcGVuZGVudGx5IiwicmVjb25jaWxlIiwicHJlbWlzZUNvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5IiwidW5pZmllc0luZGVwZW5kZW50bHkiLCJwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5IiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3VicHJvb2ZTdHJpbmciLCJzdWJwcm9vZlVuaWZpZXMiLCJ1bmlmeVByb29mQXNzZXJ0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJwcm9vZkFzc2VydGlvblN0cmluZyIsInByb29mQXNzZXJ0aW9uQ29udGV4dCIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50VW5pZmllcyIsInByb29mQXNzZXJ0aW9uVW5pZmllcyIsInVuaWZ5U3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uUHJvb2ZBc3NlcnRpb24iLCJpc1Byb29mQXNzZXJ0aW9uIiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsInByZW1pc2UiLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVQcmVtaXNlIiwic3RhdGVtZW50RnJvbVByZW1pc2VOb2RlIiwicHJvY2VkdXJlQ2FsbEZyb21QcmVtaXNlTm9kZSIsImZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVoyRDt1RUFFaEM7MEJBRUo7OEJBQ0E7NkJBQ1k7eUJBQ1U7eUJBQ29DOzs7Ozs7QUFFakYsTUFBTSxFQUFFQSxTQUFTLEVBQUVDLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekYsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQkFBZ0JDLHVCQUFjO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLENBQUU7UUFDdkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUV6QyxJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRCxhQUFhO0lBQzNCO0lBRUFFLGlCQUFpQjtRQUNmLE1BQU1MLE9BQU8sSUFBSSxDQUFDTSxPQUFPLElBQ25CQyxjQUFjUCxNQUFNLEdBQUc7UUFFN0IsT0FBT087SUFDVDtJQUVBQyxtQkFBbUI7UUFDakIsTUFBTUQsY0FBYyxJQUFJLENBQUNGLGNBQWMsSUFDakNJLGdCQUFnQkYsWUFBWUMsZ0JBQWdCO1FBRWxELE9BQU9DO0lBQ1Q7SUFFQUMsd0JBQXdCO1FBQ3RCLElBQUlDLG9CQUFvQjtRQUV4QixNQUFNRixnQkFBZ0IsSUFBSSxDQUFDRCxnQkFBZ0I7UUFFM0MsSUFBSUMsa0JBQWtCLE1BQU07WUFDMUIsTUFBTUcsd0JBQXdC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
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Byb29mQXNzZXJ0aW9uL3ByZW1pc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBQcm9vZkFzc2VydGlvbiBmcm9tIFwiLi4vcHJvb2ZBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBleGlzdHMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVQcmVtaXNlIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHByb2NlZHVyZUNhbGxGcm9tUHJlbWlzZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGRlY2xhcmUsIGF0dGVtcHQsIHJlY29uY2lsZSwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBicmVha2FibGUsIGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcmVtaXNlIGV4dGVuZHMgUHJvb2ZBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCwgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KTtcblxuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRQcmVtaXNlTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgcHJlbWlzZU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBwcmVtaXNlTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgY29uc3QgcHJlbWlzZU5vZGUgPSB0aGlzLmdldFByZW1pc2VOb2RlKCksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHByZW1pc2VOb2RlLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZmluZFN1YnByb29mQXNzZXJ0aW9uKCkge1xuICAgIGxldCBzdWJwcm9vZkFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gdGhpcy5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUoKTtcblxuICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBjb250ZXh0LmZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUoc3VicHJvb2ZBc3NlcnRpb25Ob2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb247XG4gIH1cblxuICBpc05vbnNlbnNpY2FsKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgcHJvY2VkdXJlQ2FsbCA9IHRoaXMuZ2V0UHJvY2VkdXJlQ2FsbCgpLFxuICAgICAgICAgIG5vbnNlbnNpY2FsID0gKChzdGF0ZW1lbnQgPT09IG51bGwpICYmIChwcm9jZWR1cmVDYWxsID09PSBudWxsKSk7XG5cbiAgICByZXR1cm4gbm9uc2Vuc2ljYWw7XG4gIH1cblxuICB2ZXJpZnkgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmApO1xuXG4gICAgY29uc3Qgbm9uc2Vuc2ljYWwgPSB0aGlzLmlzTm9uc2Vuc2ljYWwoKTtcblxuICAgIGlmIChub25zZW5zaWNhbCkge1xuICAgICAgY29uc3QgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UgYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gKTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgfVxuXG4gICAgZGVjbGFyZSgoY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGUoY29udGV4dCwgKHZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgdmFsaWRhdGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcHJlbWlzZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdHRpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudCA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZhbGlkYXRlUHJvY2VkdXJlQ2FsbCA9IHRoaXMudmFsaWRhdGVQcm9jZWR1cmVDYWxsLmJpbmQodGhpcyk7XG5cbiAgICAgIHJldHVybiBleGlzdHMoW1xuICAgICAgICB2YWxpZGF0ZVN0YXRlbWVudCxcbiAgICAgICAgdmFsaWRhdGVQcm9jZWR1cmVDYWxsXG4gICAgICBdLCBjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpO1xuXG4gICAgaWYgKHN0YXRlbWVudCA9PT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlJ3Mgc3RhdHNlbWVudC4uLmApO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoc3RhdGVtZW50KSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlJ3Mgc3RhdGVtZW50LmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb2NlZHVyZUNhbGwoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlQ2FsbCA9IHRoaXMuZ2V0UHJvY2VkdXJlQ2FsbCgpO1xuXG4gICAgaWYgKHByb2NlZHVyZUNhbGwgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihwcm9jZWR1cmVDYWxsVmFsaWRhdGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXR0aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSdzIHByb2NlZHVyZSBjYWxsLi4uYCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbC52YWxpZGF0ZShjb250ZXh0LCAocHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykgPT4ge1xuICAgICAgaWYgKHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSdzIHByb2NlZHVyZSBjYWxsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlJbmRlcGVuZGVudGx5KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSBpbmRlcGVuZGVudGx5Li4uYCk7XG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gdGhpcy5nZXRQcm9jZWR1cmVDYWxsKCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcHJlbWlzZUNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gcHJlbWlzZUNvbnRleHQsICAvLy9cbiAgICAgICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgICAgIHJldHVybiBzdGF0ZW1lbnQudW5pZnlJbmRlcGVuZGVudGx5KGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChzdGF0ZW1lbnRVbmlmaWVzSW5kZXBlbmRlbnRseSkgPT4ge1xuICAgICAgICAgIGxldCB1bmlmaWVzSW5kZXBlbmRlbnRseSA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgICAgICB1bmlmaWVzSW5kZXBlbmRlbnRseSA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHVuaWZpZXNJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZSBpbmRlcGVuZGVudGx5LmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24odW5pZmllc0luZGVwZW5kZW50bHkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHByb2NlZHVyZUNhbGwudW5pZnlJbmRlcGVuZGVudGx5KGNvbnRleHQsIChwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5KSA9PiB7XG4gICAgICAgICAgbGV0IHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAocHJvY2VkdXJlQ2FsbFJlc29sdmVkSW5kZXBlbmRlbnRseSkge1xuICAgICAgICAgICAgdW5pZmllc0luZGVwZW5kZW50bHkgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1bmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UgaW5kZXBlbmRlbnRseS5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHVuaWZpZXNJbmRlcGVuZGVudGx5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB1bmlmeVN1YnByb29mKHN1YnByb29mLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvbiA9IHRoaXMuZmluZFN1YnByb29mQXNzZXJ0aW9uKCk7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN1YnByb29mVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1YnByb29mVW5pZmllcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlbWlzZUNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcmVtaXNlQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbi51bmlmeVN1YnByb29mKHN1YnByb29mLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAoc3VicHJvb2ZVbmlmaWVzKSA9PiB7XG4gICAgICAgIGlmIChzdWJwcm9vZlVuaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnByb29mVW5pZmllcykge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1YnByb29mVW5pZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5UHJvb2ZBc3NlcnRpb24ocHJvb2ZBc3NlcnRpb24sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBwcm9vZkFzc2VydGlvblN0cmluZyA9IHByb29mQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Byb29mQXNzZXJ0aW9uU3RyaW5nfScgcHJvb2YgYXNzZXJ0aW9uIHdpdGggdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgICBjb25zdCBwcm9vZkFzc2VydGlvbkNvbnRleHQgPSBwcm9vZkFzc2VydGlvbi5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJlbWlzZUNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcmVtaXNlQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gcHJvb2ZBc3NlcnRpb25Db250ZXh0OyAgLy8vXG5cbiAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50ID0gcHJvb2ZBc3NlcnRpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIHJldHVybiB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXMpID0+IHtcbiAgICAgICAgbGV0IHByb29mQXNzZXJ0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25VbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvb2ZBc3NlcnRpb25VbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBwcm9vZiBhc3NlcnRpb24gd2l0aCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHByb29mQXNzZXJ0aW9uVW5pZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuICB9XG5cbiAgdW5pZnlTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25Qcm9vZkFzc2VydGlvbiA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbi5pc1Byb29mQXNzZXJ0aW9uKCk7XG5cbiAgICBpZiAoc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uUHJvb2ZBc3NlcnRpb24pIHtcbiAgICAgIGNvbnN0IHByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uOyAgLy8vXG5cbiAgICAgIHJldHVybiB0aGlzLnVuaWZ5UHJvb2ZBc3NlcnRpb24ocHJvb2ZBc3NlcnRpb24sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3VicHJvb2YgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb247ICAvLy9cblxuICAgIHJldHVybiB0aGlzLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJlbWlzZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHByZW1pc2U7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHByZW1pc2VOb2RlID0gaW5zdGFudGlhdGVQcmVtaXNlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBwcmVtaXNlTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbEZyb21QcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50LCBwcm9jZWR1cmVDYWxsKTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBzdGF0ZW1lbnRGcm9tUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHByZW1pc2VOb2RlLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50ID0gY29udGV4dC5maW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnQ7XG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJlbWlzZSIsIlByb29mQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwicHJvY2VkdXJlQ2FsbCIsImdldFByb2NlZHVyZUNhbGwiLCJnZXRQcmVtaXNlTm9kZSIsImdldE5vZGUiLCJwcmVtaXNlTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiZmluZFN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJnZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJnZXRDb250ZXh0IiwiZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZSIsImlzTm9uc2Vuc2ljYWwiLCJnZXRTdGF0ZW1lbnQiLCJub25zZW5zaWNhbCIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsInByZW1pc2VTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmaWVzIiwiZGVidWciLCJkZWNsYXJlIiwidmFsaWRhdGUiLCJ2YWxpZGF0ZXMiLCJhdHRlbXB0IiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJiaW5kIiwidmFsaWRhdGVQcm9jZWR1cmVDYWxsIiwiZXhpc3RzIiwiY29tbWl0Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwicHJvY2VkdXJlQ2FsbFZhbGlkYXRlcyIsInVuaWZ5SW5kZXBlbmRlbnRseSIsInJlY29uY2lsZSIsInByZW1pc2VDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVzSW5kZXBlbmRlbnRseSIsInVuaWZpZXNJbmRlcGVuZGVudGx5IiwicHJvY2VkdXJlQ2FsbFJlc29sdmVkSW5kZXBlbmRlbnRseSIsInVuaWZ5U3VicHJvb2YiLCJzdWJwcm9vZiIsInN1YnByb29mU3RyaW5nIiwic3VicHJvb2ZVbmlmaWVzIiwidW5pZnlQcm9vZkFzc2VydGlvbiIsInByb29mQXNzZXJ0aW9uIiwicHJvb2ZBc3NlcnRpb25TdHJpbmciLCJwcm9vZkFzc2VydGlvbkNvbnRleHQiLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZXMiLCJwcm9vZkFzc2VydGlvblVuaWZpZXMiLCJ1bmlmeVN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvblByb29mQXNzZXJ0aW9uIiwiaXNQcm9vZkFzc2VydGlvbiIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJwcmVtaXNlIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlUHJlbWlzZSIsInN0YXRlbWVudEZyb21QcmVtaXNlTm9kZSIsInByb2NlZHVyZUNhbGxGcm9tUHJlbWlzZU5vZGUiLCJmaW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0Fab0M7dUVBRVQ7MEJBRUo7OEJBQ0E7NkJBQ1k7eUJBQ1U7eUJBQ29DOzs7Ozs7QUFFakYsTUFBTSxFQUFFQSxTQUFTLEVBQUVDLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekYsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQkFBZ0JDLHVCQUFjO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLENBQUU7UUFDdkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUV6QyxJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRCxhQUFhO0lBQzNCO0lBRUFFLGlCQUFpQjtRQUNmLE1BQU1MLE9BQU8sSUFBSSxDQUFDTSxPQUFPLElBQ25CQyxjQUFjUCxNQUFNLEdBQUc7UUFFN0IsT0FBT087SUFDVDtJQUVBQyxtQkFBbUI7UUFDakIsTUFBTUQsY0FBYyxJQUFJLENBQUNGLGNBQWMsSUFDakNJLGdCQUFnQkYsWUFBWUMsZ0JBQWdCO1FBRWxELE9BQU9DO0lBQ1Q7SUFFQUMsd0JBQXdCO1FBQ3RCLElBQUlDLG9CQUFvQjtRQUV4QixNQUFNRixnQkFBZ0IsSUFBSSxDQUFDRCxnQkFBZ0I7UUFFM0MsSUFBSUMsa0JBQWtCLE1BQU07WUFD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
|
|
@@ -144,14 +144,14 @@ const _default = (0, _elements.define)(class Step extends _proofAssertion.defaul
|
|
|
144
144
|
const qualified = this.isQualified(), stated = qualified; ///
|
|
145
145
|
(stated ? _context.declare : _context.derive)((context)=>{
|
|
146
146
|
const unify = this.unify.bind(this), validate = this.validate.bind(this);
|
|
147
|
-
(0, _continuation.all)([
|
|
147
|
+
return (0, _continuation.all)([
|
|
148
148
|
validate,
|
|
149
149
|
unify
|
|
150
150
|
], context, (verifies)=>{
|
|
151
151
|
if (verifies) {
|
|
152
152
|
context.debug(`...verified the '${stepString}' step.`);
|
|
153
153
|
}
|
|
154
|
-
continuation(verifies);
|
|
154
|
+
return continuation(verifies);
|
|
155
155
|
});
|
|
156
156
|
}, context);
|
|
157
157
|
});
|
|
@@ -160,7 +160,7 @@ const _default = (0, _elements.define)(class Step extends _proofAssertion.defaul
|
|
|
160
160
|
context.trace(`Validating the '${stepString}' step...`);
|
|
161
161
|
(0, _context.attempt)((context)=>{
|
|
162
162
|
const validateStatement = this.validateStatement.bind(this), validateReference = this.validateReference.bind(this), validateSignatureAssertion = this.validateSignatureAssertion.bind(this);
|
|
163
|
-
(0, _continuation.all)([
|
|
163
|
+
return (0, _continuation.all)([
|
|
164
164
|
validateStatement,
|
|
165
165
|
validateReference,
|
|
166
166
|
validateSignatureAssertion
|
|
@@ -171,7 +171,7 @@ const _default = (0, _elements.define)(class Step extends _proofAssertion.defaul
|
|
|
171
171
|
if (validates) {
|
|
172
172
|
context.debug(`...validated the '${stepString}' step.`);
|
|
173
173
|
}
|
|
174
|
-
continuation(validates);
|
|
174
|
+
return continuation(validates);
|
|
175
175
|
});
|
|
176
176
|
}, context);
|
|
177
177
|
}
|
|
@@ -248,4 +248,4 @@ const _default = (0, _elements.define)(class Step extends _proofAssertion.defaul
|
|
|
248
248
|
static name = "Step";
|
|
249
249
|
});
|
|
250
250
|
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Byb29mQXNzZXJ0aW9uL3N0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgUHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4uL3Byb29mQXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGFsbCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHVuaWZ5U3RlcHMgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy91bmlmaWNhdGlvblwiO1xuaW1wb3J0IHsgZGVyaXZlLCBkZWNsYXJlLCBhdHRlbXB0LCByZWNvbmNpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBzb21lIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcyxcbiAgICAgIHsgYmFja3dhcmRzU29tZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTdGVwIGV4dGVuZHMgUHJvb2ZBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCwgcmVmZXJlbmNlLCBzaWduYXR1cmVBc3NlcnRpb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRTaWduYXR1cmVBc3NlcnRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG5cbiAgZ2V0U3RlcE5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0ZXBOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHN0ZXBOb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBpc1N0ZXAoKSB7XG4gICAgY29uc3Qgc3RlcCA9IHRydWU7XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIGlzUXVhbGlmaWVkKCkge1xuICAgIGNvbnN0IHF1YWxpZmllZCA9ICgodGhpcy5yZWZlcmVuY2UgIT09IG51bGwpIHx8ICh0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiAhPT0gbnVsbCkpO1xuXG4gICAgcmV0dXJuIHF1YWxpZmllZDtcbiAgfVxuXG4gIGlzVW5xdWFsaWZpZWQoKSB7XG4gICAgY29uc3QgcXVhbGlmaWVkID0gdGhpcy5pc1F1YWxpZmllZCgpLFxuICAgICAgICAgIHVucXVhbGlmaWVkID0gIXF1YWxpZmllZDtcblxuICAgIHJldHVybiB1bnF1YWxpZmllZDtcbiAgfVxuXG4gIGlzTm9uc2Vuc2ljYWwoKSB7XG4gICAgY29uc3Qgbm9uc2Vuc2ljYWwgPSAodGhpcy5zdGF0ZW1lbnQgPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIG5vbnNlbnNpY2FsO1xuICB9XG5cbiAgaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhdmFyaWFibGVEZWZpbmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB1bnF1YWxpZmllZCA9IHRoaXMuaXNVbnF1YWxpZmllZCgpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkKSB7XG4gICAgICBjb25zdCB7IEp1ZGdlbWVudCB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICBqdWRnZW1lbnQgPSBKdWRnZW1lbnQuZnJvbVN0YXRlbWVudCh0aGlzLnN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlRGVmaW5lZCA9IGp1ZGdlbWVudC5pc01ldGF2YXJpYWJsZURlZmluZWQobWV0YXZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlRGVmaW5lZDtcbiAgfVxuXG4gIGNvbXBhcmVKdWRnZW1lbnRzKGp1ZGdlbWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyZXNUb0p1ZGdlbWVudHM7XG5cbiAgICBjb25zdCBzdGVwID0gdGhpczsgLy8vXG5cbiAgICBjb21wYXJlc1RvSnVkZ2VtZW50cyA9IGJhY2t3YXJkc1NvbWUoanVkZ2VtZW50cywgKGp1ZGdlbWVudCkgPT4ge1xuICAgICAgY29uc3QganVkZ2VtZW50Q29tcGFyZXNUb1N0YXRlbWVudCA9IGp1ZGdlbWVudC5jb21wYXJlU3RlcChzdGVwLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGp1ZGdlbWVudENvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb0p1ZGdlbWVudHM7XG4gIH1cblxuICBjb21wYXJlU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyhzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuXG4gICAgY29uc3Qgc3RlcCA9IHRoaXM7IC8vL1xuXG4gICAgY29tcGFyZXNUb1N1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSBiYWNrd2FyZHNTb21lKHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbkNvbXBhcmVzVG9TdGF0ZW1lbnQgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24uY29tcGFyZVN0ZXAoc3RlcCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25Db21wYXJlc1RvU3RhdGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9TdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICB9XG5cbiAgdmVyaWZ5ID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGVwU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwLi4uYCk7XG5cbiAgICBjb25zdCBub25zZW5zaWNhbCA9IHRoaXMuaXNOb25zZW5zaWNhbCgpO1xuXG4gICAgaWYgKG5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuXG4gICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVhbGlmaWVkID0gdGhpcy5pc1F1YWxpZmllZCgpLFxuICAgICAgICAgIHN0YXRlZCA9IHF1YWxpZmllZDsgLy8vXG5cbiAgICAoc3RhdGVkID8gZGVjbGFyZSA6IGRlcml2ZSkoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHVuaWZ5ID0gdGhpcy51bmlmeS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyk7XG5cbiAgICAgIGFsbChbXG4gICAgICAgIHZhbGlkYXRlLFxuICAgICAgICB1bmlmeVxuICAgICAgXSwgY29udGV4dCwgKHZlcmlmaWVzKSA9PiB7XG4gICAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgdmFsaWRhdGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlU3RhdGVtZW50ID0gdGhpcy52YWxpZGF0ZVN0YXRlbWVudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsaWRhdGVSZWZlcmVuY2UgPSB0aGlzLnZhbGlkYXRlUmVmZXJlbmNlLmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvbiA9IHRoaXMudmFsaWRhdGVTaWduYXR1cmVBc3NlcnRpb24uYmluZCh0aGlzKTtcblxuICAgICAgYWxsKFtcbiAgICAgICAgdmFsaWRhdGVTdGF0ZW1lbnQsXG4gICAgICAgIHZhbGlkYXRlUmVmZXJlbmNlLFxuICAgICAgICB2YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvblxuICAgICAgXSwgY29udGV4dCwgKHZhbGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGVwU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpO1xuXG4gICAgc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQsIChzdGF0ZW1lbnQpID0+IHtcbiAgICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAncyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVSZWZlcmVuY2UoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgaWYgKHRoaXMucmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgICBjb25zdCByZWZlcmVuY2VWYWxpZGF0ZXMgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZWZlcmVuY2VWYWxpZGF0ZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwJ3MgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZS52YWxpZGF0ZShjb250ZXh0LCAocmVmZXJlbmNlKSA9PiB7XG4gICAgICBsZXQgcmVmZXJlbmNlVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChyZWZlcmVuY2UgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgICAgcmVmZXJlbmNlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZmVyZW5jZVZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwJ3MgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocmVmZXJlbmNlVmFsaWRhdGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlU2lnbmF0dXJlQXNzZXJ0aW9uKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGlmICh0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uVmFsaWRhdGVzID0gdHJ1ZTsgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzaWduYXR1cmVBc3NlcnRpb25WYWxpZGF0ZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnNpZ25hdHVyZUFzc2VydGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwJ3MgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgdGhpcy5zaWduYXR1cmVBc3NlcnRpb24udmFsaWRhdGUoY29udGV4dCwgKHNpZ25hdHVyZUFzc2VydGlvbikgPT4ge1xuICAgICAgbGV0IHNpZ25hdHVyZUFzc2VydGlvblZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2lnbmF0dXJlQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2lnbmF0dXJlQXNzZXJ0aW9uID0gc2lnbmF0dXJlQXNzZXJ0aW9uO1xuXG4gICAgICAgIHNpZ25hdHVyZUFzc2VydGlvblZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaWduYXR1cmVBc3NlcnRpb25WYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCdzICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzaWduYXR1cmVBc3NlcnRpb25WYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnkoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwLi4uYCk7XG5cbiAgICBjb25zdCBzdGVwID0gdGhpczsgIC8vL1xuXG4gICAgcmV0dXJuIHNvbWUodW5pZnlTdGVwcywgKHVuaWZ5U3RlcCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHVuaWZ5U3RlcChzdGVwLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgKHVuaWZpZXMpID0+IHtcbiAgICAgIGlmICh1bmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHVuaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlN0ZXBcIjtcbn0pO1xuIl0sIm5hbWVzIjpbInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiYmFja3dhcmRzU29tZSIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiU3RlcCIsIlByb29mQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwicmVmZXJlbmNlIiwic2lnbmF0dXJlQXNzZXJ0aW9uIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0U2lnbmF0dXJlQXNzZXJ0aW9uIiwiZ2V0U3RlcE5vZGUiLCJnZXROb2RlIiwic3RlcE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImlzU3RlcCIsInN0ZXAiLCJpc1F1YWxpZmllZCIsInF1YWxpZmllZCIsImlzVW5xdWFsaWZpZWQiLCJ1bnF1YWxpZmllZCIsImlzTm9uc2Vuc2ljYWwiLCJub25zZW5zaWNhbCIsImlzTWV0YXZhcmlhYmxlRGVmaW5lZCIsIm1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZURlZmluZWQiLCJKdWRnZW1lbnQiLCJlbGVtZW50cyIsImp1ZGdlbWVudCIsImZyb21TdGF0ZW1lbnQiLCJjb21wYXJlSnVkZ2VtZW50cyIsImp1ZGdlbWVudHMiLCJjb21wYXJlc1RvSnVkZ2VtZW50cyIsImp1ZGdlbWVudENvbXBhcmVzVG9TdGF0ZW1lbnQiLCJjb21wYXJlU3RlcCIsImNvbXBhcmVTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsImNvbXBhcmVzVG9TdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uQ29tcGFyZXNUb1N0YXRlbWVudCIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsInN0ZXBTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmaWVzIiwiZGVidWciLCJzdGF0ZWQiLCJkZWNsYXJlIiwiZGVyaXZlIiwidW5pZnkiLCJiaW5kIiwidmFsaWRhdGUiLCJhbGwiLCJhdHRlbXB0IiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsInZhbGlkYXRlU2lnbmF0dXJlQXNzZXJ0aW9uIiwidmFsaWRhdGVzIiwiY29tbWl0Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwicmVmZXJlbmNlVmFsaWRhdGVzIiwicmVmZXJlbmNlU3RyaW5nIiwic2lnbmF0dXJlQXNzZXJ0aW9uVmFsaWRhdGVzIiwic2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nIiwidW5pZnlTdGVwcyIsInVuaWZ5U3RlcCIsInJlY29uY2lsZSIsInVuaWZpZXMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7MkJBZitCO2dDQUM0QjtrRUFFdEM7dUVBQ007OEJBRVA7NkJBRU87eUJBQ3lCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwRCxNQUFNLEVBQUVBLElBQUksRUFBRSxHQUFHQyxxQ0FBcUIsRUFDaEMsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQixFQUNuQyxFQUFFQyxhQUFhLEVBQUUsR0FBR0MseUJBQWM7TUFFeEMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxhQUFhQyx1QkFBYztJQUNyRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxrQkFBa0IsQ0FBRTtRQUN2RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1FBRXpDLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLGtCQUFrQixHQUFHQTtJQUM1QjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDRixrQkFBa0I7SUFDaEM7SUFFQUcsY0FBYztRQUNaLE1BQU1QLE9BQU8sSUFBSSxDQUFDUSxPQUFPLElBQ25CQyxXQUFXVCxNQUFPLEdBQUc7UUFFM0IsT0FBT1M7SUFDVDtJQUVBQyxtQkFBbUI7UUFDakIsTUFBTVIsWUFBWSxJQUFJLENBQUNTLFlBQVksSUFDN0JDLGdCQUFnQlYsVUFBVU0sT0FBTztRQUV2QyxPQUFPSTtJQUNUO0lBRUFDLFNBQVM7UUFDUCxNQUFNQyxPQUFPO1FBRWIsT0FBT0E7SUFDVDtJQUVBQyxjQUFjO1FBQ1osTUFBTUMsWUFBYSxBQUFD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
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Byb29mQXNzZXJ0aW9uL3N0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgUHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4uL3Byb29mQXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGFsbCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHVuaWZ5U3RlcHMgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy91bmlmaWNhdGlvblwiO1xuaW1wb3J0IHsgZGVyaXZlLCBkZWNsYXJlLCBhdHRlbXB0LCByZWNvbmNpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBzb21lIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcyxcbiAgICAgIHsgYmFja3dhcmRzU29tZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTdGVwIGV4dGVuZHMgUHJvb2ZBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCwgcmVmZXJlbmNlLCBzaWduYXR1cmVBc3NlcnRpb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRTaWduYXR1cmVBc3NlcnRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG5cbiAgZ2V0U3RlcE5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0ZXBOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHN0ZXBOb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBpc1N0ZXAoKSB7XG4gICAgY29uc3Qgc3RlcCA9IHRydWU7XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIGlzUXVhbGlmaWVkKCkge1xuICAgIGNvbnN0IHF1YWxpZmllZCA9ICgodGhpcy5yZWZlcmVuY2UgIT09IG51bGwpIHx8ICh0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiAhPT0gbnVsbCkpO1xuXG4gICAgcmV0dXJuIHF1YWxpZmllZDtcbiAgfVxuXG4gIGlzVW5xdWFsaWZpZWQoKSB7XG4gICAgY29uc3QgcXVhbGlmaWVkID0gdGhpcy5pc1F1YWxpZmllZCgpLFxuICAgICAgICAgIHVucXVhbGlmaWVkID0gIXF1YWxpZmllZDtcblxuICAgIHJldHVybiB1bnF1YWxpZmllZDtcbiAgfVxuXG4gIGlzTm9uc2Vuc2ljYWwoKSB7XG4gICAgY29uc3Qgbm9uc2Vuc2ljYWwgPSAodGhpcy5zdGF0ZW1lbnQgPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIG5vbnNlbnNpY2FsO1xuICB9XG5cbiAgaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhdmFyaWFibGVEZWZpbmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB1bnF1YWxpZmllZCA9IHRoaXMuaXNVbnF1YWxpZmllZCgpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkKSB7XG4gICAgICBjb25zdCB7IEp1ZGdlbWVudCB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICBqdWRnZW1lbnQgPSBKdWRnZW1lbnQuZnJvbVN0YXRlbWVudCh0aGlzLnN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlRGVmaW5lZCA9IGp1ZGdlbWVudC5pc01ldGF2YXJpYWJsZURlZmluZWQobWV0YXZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlRGVmaW5lZDtcbiAgfVxuXG4gIGNvbXBhcmVKdWRnZW1lbnRzKGp1ZGdlbWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyZXNUb0p1ZGdlbWVudHM7XG5cbiAgICBjb25zdCBzdGVwID0gdGhpczsgLy8vXG5cbiAgICBjb21wYXJlc1RvSnVkZ2VtZW50cyA9IGJhY2t3YXJkc1NvbWUoanVkZ2VtZW50cywgKGp1ZGdlbWVudCkgPT4ge1xuICAgICAgY29uc3QganVkZ2VtZW50Q29tcGFyZXNUb1N0YXRlbWVudCA9IGp1ZGdlbWVudC5jb21wYXJlU3RlcChzdGVwLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGp1ZGdlbWVudENvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb0p1ZGdlbWVudHM7XG4gIH1cblxuICBjb21wYXJlU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyhzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuXG4gICAgY29uc3Qgc3RlcCA9IHRoaXM7IC8vL1xuXG4gICAgY29tcGFyZXNUb1N1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSBiYWNrd2FyZHNTb21lKHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbkNvbXBhcmVzVG9TdGF0ZW1lbnQgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24uY29tcGFyZVN0ZXAoc3RlcCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25Db21wYXJlc1RvU3RhdGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9TdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICB9XG5cbiAgdmVyaWZ5ID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGVwU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwLi4uYCk7XG5cbiAgICBjb25zdCBub25zZW5zaWNhbCA9IHRoaXMuaXNOb25zZW5zaWNhbCgpO1xuXG4gICAgaWYgKG5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuXG4gICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVhbGlmaWVkID0gdGhpcy5pc1F1YWxpZmllZCgpLFxuICAgICAgICAgIHN0YXRlZCA9IHF1YWxpZmllZDsgLy8vXG5cbiAgICAoc3RhdGVkID8gZGVjbGFyZSA6IGRlcml2ZSkoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHVuaWZ5ID0gdGhpcy51bmlmeS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyk7XG5cbiAgICAgIHJldHVybiBhbGwoW1xuICAgICAgICB2YWxpZGF0ZSxcbiAgICAgICAgdW5pZnlcbiAgICAgIF0sIGNvbnRleHQsICh2ZXJpZmllcykgPT4ge1xuICAgICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9KTtcblxuICB2YWxpZGF0ZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGVwU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVTdGF0ZW1lbnQgPSB0aGlzLnZhbGlkYXRlU3RhdGVtZW50LmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVJlZmVyZW5jZSA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZhbGlkYXRlU2lnbmF0dXJlQXNzZXJ0aW9uID0gdGhpcy52YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvbi5iaW5kKHRoaXMpO1xuXG4gICAgICByZXR1cm4gYWxsKFtcbiAgICAgICAgdmFsaWRhdGVTdGF0ZW1lbnQsXG4gICAgICAgIHZhbGlkYXRlUmVmZXJlbmNlLFxuICAgICAgICB2YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvblxuICAgICAgXSwgY29udGV4dCwgKHZhbGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsaWRhdGVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgdmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCdzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIHN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoc3RhdGVtZW50KSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwJ3Mgc3RhdGVtZW50LmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlUmVmZXJlbmNlKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGlmICh0aGlzLnJlZmVyZW5jZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgcmVmZXJlbmNlVmFsaWRhdGVzID0gdHJ1ZTsgIC8vL1xuXG4gICAgICBjb250aW51YXRpb24ocmVmZXJlbmNlVmFsaWRhdGVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgcmVmZXJlbmNlU3RyaW5nID0gdGhpcy5yZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCdzICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS4uLmApO1xuXG4gICAgdGhpcy5yZWZlcmVuY2UudmFsaWRhdGUoY29udGV4dCwgKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgbGV0IHJlZmVyZW5jZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBpZiAocmVmZXJlbmNlICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuXG4gICAgICAgIHJlZmVyZW5jZVZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWZlcmVuY2VWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCdzICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS5gKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWF0aW9uKHJlZmVyZW5jZVZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvbihjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBpZiAodGhpcy5zaWduYXR1cmVBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblZhbGlkYXRlcyA9IHRydWU7IC8vL1xuXG4gICAgICBjb250aW51YXRpb24oc2lnbmF0dXJlQXNzZXJ0aW9uVmFsaWRhdGVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zaWduYXR1cmVBc3NlcnRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCdzICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHRoaXMuc2lnbmF0dXJlQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChzaWduYXR1cmVBc3NlcnRpb24pID0+IHtcbiAgICAgIGxldCBzaWduYXR1cmVBc3NlcnRpb25WYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHNpZ25hdHVyZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbjtcblxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25WYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2lnbmF0dXJlQXNzZXJ0aW9uVmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAncyAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24oc2lnbmF0dXJlQXNzZXJ0aW9uVmFsaWRhdGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHVuaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC4uLmApO1xuXG4gICAgY29uc3Qgc3RlcCA9IHRoaXM7ICAvLy9cblxuICAgIHJldHVybiBzb21lKHVuaWZ5U3RlcHMsICh1bmlmeVN0ZXAsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgcmVjb25jaWxlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIHJldHVybiB1bmlmeVN0ZXAoc3RlcCwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sICh1bmlmaWVzKSA9PiB7XG4gICAgICBpZiAodW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcC5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih1bmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTdGVwXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJzb21lIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImJhY2t3YXJkc1NvbWUiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIlN0ZXAiLCJQcm9vZkFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudCIsInJlZmVyZW5jZSIsInNpZ25hdHVyZUFzc2VydGlvbiIsImdldFJlZmVyZW5jZSIsImdldFNpZ25hdHVyZUFzc2VydGlvbiIsImdldFN0ZXBOb2RlIiwiZ2V0Tm9kZSIsInN0ZXBOb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJpc1N0ZXAiLCJzdGVwIiwiaXNRdWFsaWZpZWQiLCJxdWFsaWZpZWQiLCJpc1VucXVhbGlmaWVkIiwidW5xdWFsaWZpZWQiLCJpc05vbnNlbnNpY2FsIiwibm9uc2Vuc2ljYWwiLCJpc01ldGF2YXJpYWJsZURlZmluZWQiLCJtZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVEZWZpbmVkIiwiSnVkZ2VtZW50IiwiZWxlbWVudHMiLCJqdWRnZW1lbnQiLCJmcm9tU3RhdGVtZW50IiwiY29tcGFyZUp1ZGdlbWVudHMiLCJqdWRnZW1lbnRzIiwiY29tcGFyZXNUb0p1ZGdlbWVudHMiLCJqdWRnZW1lbnRDb21wYXJlc1RvU3RhdGVtZW50IiwiY29tcGFyZVN0ZXAiLCJjb21wYXJlU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJjb21wYXJlc1RvU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvbkNvbXBhcmVzVG9TdGF0ZW1lbnQiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJzdGVwU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2ZXJpZmllcyIsImRlYnVnIiwic3RhdGVkIiwiZGVjbGFyZSIsImRlcml2ZSIsInVuaWZ5IiwiYmluZCIsInZhbGlkYXRlIiwiYWxsIiwiYXR0ZW1wdCIsInZhbGlkYXRlU3RhdGVtZW50IiwidmFsaWRhdGVSZWZlcmVuY2UiLCJ2YWxpZGF0ZVNpZ25hdHVyZUFzc2VydGlvbiIsInZhbGlkYXRlcyIsImNvbW1pdCIsInN0YXRlbWVudFZhbGlkYXRlcyIsInJlZmVyZW5jZVZhbGlkYXRlcyIsInJlZmVyZW5jZVN0cmluZyIsInNpZ25hdHVyZUFzc2VydGlvblZhbGlkYXRlcyIsInNpZ25hdHVyZUFzc2VydGlvblN0cmluZyIsInVuaWZ5U3RlcHMiLCJ1bmlmeVN0ZXAiLCJyZWNvbmNpbGUiLCJ1bmlmaWVzIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBQTs7OzJCQWYrQjtnQ0FDNEI7a0VBRXRDO3VFQUNNOzhCQUVQOzZCQUVPO3lCQUN5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEQsTUFBTSxFQUFFQSxJQUFJLEVBQUUsR0FBR0MscUNBQXFCLEVBQ2hDLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUIsRUFDbkMsRUFBRUMsYUFBYSxFQUFFLEdBQUdDLHlCQUFjO01BRXhDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQWM7SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsa0JBQWtCLENBQUU7UUFDdkYsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUV6QyxJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7SUFDNUI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQ0Ysa0JBQWtCO0lBQ2hDO0lBRUFHLGNBQWM7UUFDWixNQUFNUCxPQUFPLElBQUksQ0FBQ1EsT0FBTyxJQUNuQkMsV0FBV1QsTUFBTyxHQUFHO1FBRTNCLE9BQU9TO0lBQ1Q7SUFFQUMsbUJBQW1CO1FBQ2pCLE1BQU1SLFlBQVksSUFBSSxDQUFDUyxZQUFZLElBQzdCQyxnQkFBZ0JWLFVBQVVNLE9BQU87UUFFdkMsT0FBT0k7SUFDVDtJQUVBQyxTQUFTO1FBQ1AsTUFBTUMsT0FBTztRQUViLE9BQU9BO0lBQ1Q7SUFF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
|