occam-furtle 3.0.471 → 3.0.474
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/block.js +3 -3
- package/lib/context/file/furtle.js +3 -3
- package/lib/element/anonymousProcedure.js +7 -7
- package/lib/element/assignment/list.js +14 -14
- package/lib/element/assignment/object.js +25 -25
- package/lib/element/assignment/variable.js +7 -7
- package/lib/element/assignments/variable.js +7 -7
- package/lib/element/binding/named.js +5 -5
- package/lib/element/binding.js +4 -4
- package/lib/element/bindings/named.js +24 -24
- package/lib/element/bindings.js +10 -10
- package/lib/element/contains.js +5 -5
- package/lib/element/endsWith.js +5 -5
- package/lib/element/error.js +2 -2
- package/lib/element/every.js +22 -19
- package/lib/element/expression.js +17 -17
- package/lib/element/lengthOf.js +5 -5
- package/lib/element/nodeQuery.js +5 -5
- package/lib/element/nodesQuery.js +5 -5
- package/lib/element/parameter.js +3 -3
- package/lib/element/parameters.js +10 -10
- package/lib/element/primitive.js +3 -3
- package/lib/element/procedure.js +13 -13
- package/lib/element/procedureCall.js +7 -7
- package/lib/element/reduce.js +26 -21
- package/lib/element/returnBlock.js +13 -13
- package/lib/element/returnStatement.js +5 -5
- package/lib/element/some.js +21 -18
- package/lib/element/startsWith.js +5 -5
- package/lib/element/statement.js +5 -5
- package/lib/element/term/bracketed.js +5 -5
- package/lib/element/term/comparison.js +7 -7
- package/lib/element/term/logical.js +7 -7
- package/lib/element/term/negated.js +5 -5
- package/lib/element/term.js +8 -8
- package/lib/element/terms.js +9 -9
- package/lib/element/ternary.js +7 -7
- package/lib/element/toInteger.js +5 -5
- package/lib/element/tryInteger.js +5 -5
- package/lib/element/value.js +4 -4
- package/lib/element/values.js +9 -9
- package/lib/element/variable.js +7 -7
- package/lib/nominalValueProperties.js +14 -14
- package/lib/nominalValueProperty.js +3 -3
- package/lib/process/verify.js +7 -7
- package/package.json +2 -2
- package/src/context/block.js +2 -2
- package/src/context/file/furtle.js +2 -2
- package/src/element/anonymousProcedure.js +6 -6
- package/src/element/assignment/list.js +13 -13
- package/src/element/assignment/object.js +24 -24
- package/src/element/assignment/variable.js +6 -6
- package/src/element/assignments/variable.js +6 -6
- package/src/element/binding/named.js +4 -4
- package/src/element/binding.js +3 -3
- package/src/element/bindings/named.js +24 -24
- package/src/element/bindings.js +9 -9
- package/src/element/contains.js +4 -4
- package/src/element/endsWith.js +4 -4
- package/src/element/error.js +1 -1
- package/src/element/every.js +31 -27
- package/src/element/expression.js +16 -16
- package/src/element/lengthOf.js +4 -4
- package/src/element/nodeQuery.js +6 -6
- package/src/element/nodesQuery.js +4 -4
- package/src/element/parameter.js +2 -2
- package/src/element/parameters.js +9 -9
- package/src/element/primitive.js +2 -2
- package/src/element/procedure.js +12 -12
- package/src/element/procedureCall.js +6 -6
- package/src/element/reduce.js +27 -22
- package/src/element/returnBlock.js +12 -12
- package/src/element/returnStatement.js +4 -4
- package/src/element/some.js +31 -27
- package/src/element/startsWith.js +4 -4
- package/src/element/statement.js +4 -4
- package/src/element/term/bracketed.js +4 -4
- package/src/element/term/comparison.js +6 -6
- package/src/element/term/logical.js +35 -35
- package/src/element/term/negated.js +4 -4
- package/src/element/term.js +7 -7
- package/src/element/terms.js +8 -8
- package/src/element/ternary.js +6 -6
- package/src/element/toInteger.js +4 -4
- package/src/element/tryInteger.js +4 -4
- package/src/element/value.js +3 -3
- package/src/element/values.js +8 -8
- package/src/element/variable.js +6 -6
- package/src/nominalValueProperties.js +14 -14
- package/src/nominalValueProperty.js +2 -2
- package/src/process/verify.js +6 -6
package/lib/context/block.js
CHANGED
|
@@ -39,7 +39,7 @@ class BlockContext extends _occamlanguages.Context {
|
|
|
39
39
|
}
|
|
40
40
|
return variables;
|
|
41
41
|
}
|
|
42
|
-
addVariable(variable,
|
|
42
|
+
addVariable(variable, forward, back) {
|
|
43
43
|
const nested = false, variableName = variable.getName(), variableString = variable.getString(), variablePresent = this.isVariablePresentByVariableName(variableName, nested);
|
|
44
44
|
if (variablePresent) {
|
|
45
45
|
const message = `The '${variableString}' variable is already present.'`, exception = _exception.default.fromMessage(message);
|
|
@@ -48,7 +48,7 @@ class BlockContext extends _occamlanguages.Context {
|
|
|
48
48
|
const context = this; ///
|
|
49
49
|
context.trace(`Added the '${variableString}' variable to the context.`);
|
|
50
50
|
this.variables.push(variable);
|
|
51
|
-
return forward();
|
|
51
|
+
return forward(back);
|
|
52
52
|
}
|
|
53
53
|
findProcedureByProcedureName(procedureName) {
|
|
54
54
|
const context = this.getContext(), procedure = context.findProcedureByProcedureName(procedureName);
|
|
@@ -81,4 +81,4 @@ function isContextBlockContext(context) {
|
|
|
81
81
|
return contextBlockContext;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkID0gdHJ1ZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKG5lc3RlZCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpLFxuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9ICh2YXJpYWJsZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVQcmVzZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZXModmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYmxvY2tDb250ZXh0ID0gQ29udGV4dC5mcm9tTm90aGluZyhCbG9ja0NvbnRleHQsIHZhcmlhYmxlcywgY29udGV4dClcblxuICAgIHJldHVybiBibG9ja0NvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGV4dEJsb2NrQ29udGV4dChjb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHRCbG9ja0NvbnRleHQgPSBCbG9ja0NvbnRleHQucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoY29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHRCbG9ja0NvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiQmxvY2tDb250ZXh0IiwiaXNDb250ZXh0QmxvY2tDb250ZXh0IiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiQ29udGV4dCIsImNvbnRleHQiLCJ2YXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJnZXRDb250ZXh0IiwiY29udGV4dFZhcmlhYmxlcyIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJmb3J3YXJkIiwiYmFjayIsInZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsImdldFN0cmluZyIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0cmFjZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZmluZCIsInZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSIsImNvbXBhcmVWYXJpYWJsZU5hbWUiLCJmcm9tVmFyaWFibGVzIiwiYmxvY2tDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJjb250ZXh0QmxvY2tDb250ZXh0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU0E7ZUFBcUJBOztRQXFGTEM7ZUFBQUE7OztnQ0E1RlE7MkJBQ087a0VBRVQ7Ozs7OztBQUV0QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUVoQixNQUFNSCxxQkFBcUJJLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxDQUFFO1FBQzlCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsYUFBYUMsU0FBUyxJQUFJLEVBQUU7UUFDMUIsTUFBTUYsWUFBWSxFQUFFO1FBRXBCSixLQUFLSSxXQUFXLElBQUksQ0FBQ0EsU0FBUztRQUU5QixJQUFJRSxRQUFRO1lBQ1YsTUFBTUgsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJDLG1CQUFtQkwsUUFBUUUsWUFBWSxDQUFDQztZQUU5Q04sS0FBS0ksV0FBV0k7UUFDbEI7UUFFQSxPQUFPSjtJQUNUO0lBRUFLLFlBQVlDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDbkMsTUFBTU4sU0FBUyxPQUNUTyxlQUFlSCxTQUFTSSxPQUFPLElBQy9CQyxpQkFBaUJMLFNBQVNNLFNBQVMsSUFDbkNDLGtCQUFrQixJQUFJLENBQUNDLCtCQUErQixDQUFDTCxjQUFjUDtRQUUzRSxJQUFJVyxpQkFBaUI7WUFDbkIsTUFBTUUsVUFBVSxDQUFDLEtBQUssRUFBRUosZUFBZSwrQkFBK0IsQ0FBQyxFQUNqRUssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPUCxLQUFLUTtRQUNkO1FBRUEsTUFBTWpCLFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFFekJBLFFBQVFvQixLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUVSLGVBQWUsMEJBQTBCLENBQUM7UUFFdEUsSUFBSSxDQUFDWCxTQUFTLENBQUNKLElBQUksQ0FBQ1U7UUFFcEIsT0FBT0MsUUFBUUM7SUFDakI7SUFFQVksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCbUIsWUFBWXZCLFFBQVFxQiw0QkFBNEIsQ0FBQ0M7UUFFdkQsT0FBT0M7SUFDVDtJQUVBQyxrQ0FBa0NGLGFBQWEsRUFBRTtRQUMvQyxNQUFNdEIsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJxQixtQkFBbUJ6QixRQUFRd0IsaUNBQWlDLENBQUNGO1FBRW5FLE9BQU9HO0lBQ1Q7SUFFQUMsMkJBQTJCaEIsWUFBWSxFQUFFUCxTQUFTLElBQUksRUFBRTtRQUN0RCxNQUFNRixZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxTQUM5QkksV0FBV04sVUFBVTBCLElBQUksQ0FBQyxDQUFDcEI7WUFDekIsTUFBTXFCLGlDQUFpQ3JCLFNBQVNzQixtQkFBbUIsQ0FBQ25CO1lBRXBFLElBQUlrQixnQ0FBZ0M7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPckI7SUFDVDtJQUVBUSxnQ0FBZ0NMLFlBQVksRUFBRVAsU0FBUyxJQUFJLEVBQUU7UUFDM0QsTUFBTUksV0FBVyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ2hCLGNBQWNQLFNBQ3pEVyxrQkFBbUJQLGFBQWE7UUFFdEMsT0FBT087SUFDVDtJQUVBLE9BQU9nQixjQUFjN0IsU0FBUyxFQUFFRCxPQUFPLEVBQUU7UUFDdkMsTUFBTStCLGVBQWVoQyx1QkFBTyxDQUFDaUMsV0FBVyxDQUFDckMsY0FBY00sV0FBV0Q7UUFFbEUsT0FBTytCO0lBQ1Q7QUFDRjtBQUVPLFNBQVNuQyxzQkFBc0JJLE9BQU87SUFDM0MsTUFBTWlDLHNCQUFzQnRDLGFBQWF1QyxTQUFTLENBQUNDLGFBQWEsQ0FBQ25DO0lBRWpFLE9BQU9pQztBQUNUIn0=
|
|
@@ -134,9 +134,9 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
134
134
|
this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
verifyFile(
|
|
137
|
+
verifyFile(forward, back) {
|
|
138
138
|
const node = this.getNode(), context = this, fileNode = node; ///
|
|
139
|
-
return (0, _verify.verifyFile)(fileNode, context,
|
|
139
|
+
return (0, _verify.verifyFile)(fileNode, context, forward, back);
|
|
140
140
|
}
|
|
141
141
|
toJSON() {
|
|
142
142
|
const proceduresJSON = (0, _json.proceduresToProceduresJSON)(this.procedures), fileContent = this.getFileContent(), filePath = this.getFilePath(), procedures = proceduresJSON, json = {
|
|
@@ -156,4 +156,4 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlc0Zyb21KU09OLCBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG5vZGVzUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBwcm9jZWR1cmVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9wcm9jZWR1cmVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXMuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gKHByb2NlZHVyZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICB2ZXJpZnlGaWxlKGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHByb2NlZHVyZXNKU09OID0gcHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04odGhpcy5wcm9jZWR1cmVzKSxcbiAgICAgICAgICBmaWxlQ29udGVudCA9IHRoaXMuZ2V0RmlsZUNvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBwcm9jZWR1cmVzID0gcHJvY2VkdXJlc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgZmlsZUNvbnRlbnQsXG4gICAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICAgIHByb2NlZHVyZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoZmlsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gW10sXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZShGdXJ0bGVGaWxlQ29udGV4dCwgZmlsZSwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZ1cnRsZUZpbGVDb250ZXh0Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicHJvY2VkdXJlTm9kZXNRdWVyeSIsIkZpbGVDb250ZXh0IiwiY29udGV4dCIsImZpbGVDb250ZW50IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwianNvbiIsImxleGVyIiwicGFyc2VyIiwicHJvY2VkdXJlcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZVJlbGVhc2UiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFByb2NlZHVyZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJhZGRQcm9jZWR1cmUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJwdXNoIiwiZ2V0RmlsZVBhdGgiLCJkZWJ1ZyIsImZpbmRQcm9jZWR1cmVOb2RlIiwibGFiZWwiLCJnZXROb2RlIiwibGFiZWxOb2RlIiwiZG9jdW1lbnROb2RlIiwicHJvY2VkdXJlTm9kZXMiLCJwcm9jZWR1cmVOb2RlIiwiZmluZCIsImxhYmVsTWF0Y2hlcyIsIm1hdGNoTGFiZWxOb2RlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImJhY2siLCJmb3J3YXJkIiwiZmlsZU5vZGUiLCJ0b0pTT04iLCJwcm9jZWR1cmVzSlNPTiIsInByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIiwiZ2V0RmlsZUNvbnRlbnQiLCJmcm9tRmlsZSIsImZpbGUiLCJmdXJ0bGVMZXhlciIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBcUJBOzs7Z0NBWE87NEJBQ0c7d0JBRUo7d0JBQ2U7c0JBQ3FCO0FBRS9ELE1BQU0sRUFBRUMsVUFBVSxFQUFFLEdBQUdDLDBCQUFjO0FBRXJDLE1BQU1DLHNCQUFzQkYsV0FBVztBQUV4QixNQUFNRCwwQkFBMEJJLDJCQUFXO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUU7UUFDekYsS0FBSyxDQUFDUixTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMs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
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlc0Zyb21KU09OLCBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG5vZGVzUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBwcm9jZWR1cmVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9wcm9jZWR1cmVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXMuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gKHByb2NlZHVyZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICB2ZXJpZnlGaWxlKGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHByb2NlZHVyZXNKU09OID0gcHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04odGhpcy5wcm9jZWR1cmVzKSxcbiAgICAgICAgICBmaWxlQ29udGVudCA9IHRoaXMuZ2V0RmlsZUNvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBwcm9jZWR1cmVzID0gcHJvY2VkdXJlc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgZmlsZUNvbnRlbnQsXG4gICAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICAgIHByb2NlZHVyZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoZmlsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gW10sXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZShGdXJ0bGVGaWxlQ29udGV4dCwgZmlsZSwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZ1cnRsZUZpbGVDb250ZXh0Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicHJvY2VkdXJlTm9kZXNRdWVyeSIsIkZpbGVDb250ZXh0IiwiY29udGV4dCIsImZpbGVDb250ZW50IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwianNvbiIsImxleGVyIiwicGFyc2VyIiwicHJvY2VkdXJlcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZVJlbGVhc2UiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFByb2NlZHVyZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJhZGRQcm9jZWR1cmUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJwdXNoIiwiZ2V0RmlsZVBhdGgiLCJkZWJ1ZyIsImZpbmRQcm9jZWR1cmVOb2RlIiwibGFiZWwiLCJnZXROb2RlIiwibGFiZWxOb2RlIiwiZG9jdW1lbnROb2RlIiwicHJvY2VkdXJlTm9kZXMiLCJwcm9jZWR1cmVOb2RlIiwiZmluZCIsImxhYmVsTWF0Y2hlcyIsIm1hdGNoTGFiZWxOb2RlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImZvcndhcmQiLCJiYWNrIiwiZmlsZU5vZGUiLCJ0b0pTT04iLCJwcm9jZWR1cmVzSlNPTiIsInByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIiwiZ2V0RmlsZUNvbnRlbnQiLCJmcm9tRmlsZSIsImZpbGUiLCJmdXJ0bGVMZXhlciIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBcUJBOzs7Z0NBWE87NEJBQ0c7d0JBRUo7d0JBQ2U7c0JBQ3FCO0FBRS9ELE1BQU0sRUFBRUMsVUFBVSxFQUFFLEdBQUdDLDBCQUFjO0FBRXJDLE1BQU1DLHNCQUFzQkYsV0FBVztBQUV4QixNQUFNRCwwQkFBMEJJLDJCQUFXO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUU7UUFDekYsS0FBSyxDQUFDUixTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMs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
|
|
@@ -33,23 +33,23 @@ const _default = (0, _elements.define)(class AnonymousProcedure extends _occamla
|
|
|
33
33
|
getReturnBlock() {
|
|
34
34
|
return this.returnBlock;
|
|
35
35
|
}
|
|
36
|
-
call(values, context,
|
|
36
|
+
call(values, context, forward, back) {
|
|
37
37
|
const anonymousProcedureString = this.getString(); ///
|
|
38
38
|
context.trace(`Calling the '${anonymousProcedureString}' anonymous function...`);
|
|
39
|
-
return this.parameters.compareValues(values, context, back
|
|
39
|
+
return this.parameters.compareValues(values, context, (back)=>{
|
|
40
40
|
const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context);
|
|
41
|
-
return this.returnBlock.evaluate(variables, context,
|
|
41
|
+
return this.returnBlock.evaluate(variables, context, (value, back)=>{
|
|
42
42
|
const valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
|
|
43
43
|
if (!typeEqualToValueType) {
|
|
44
44
|
const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${valueType}' type is not equal to the '${anonymousProcedureString}' anonymous function's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
|
|
45
45
|
return back(exception);
|
|
46
46
|
}
|
|
47
47
|
context.debug(`...called the '${anonymousProcedureString}' anonymous function.`);
|
|
48
|
-
return forward(value);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
48
|
+
return forward(value, back);
|
|
49
|
+
}, back);
|
|
50
|
+
}, back);
|
|
51
51
|
}
|
|
52
52
|
static name = "AnonymousProcedure";
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Fub255bW91c1Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEFub255bW91c1Byb2NlZHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLnJldHVybkJsb2NrID0gcmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGNhbGwodmFsdWVzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDYWxsaW5nIHRoZSAnJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9JyBhbm9ueW1vdXMgZnVuY3Rpb24uLi5gKTtcblxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSB2YXJpYWJsZXNGcm9tVmFsdWVzQW5kUGFyYW1ldGVycyh2YWx1ZXMsIHRoaXMucGFyYW1ldGVycywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICAgICAgaWYgKCF0eXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30nIGFub255bW91cyBmdW5jdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfScgYW5vbnltb3VzIGZ1bmN0aW9uLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkFub255bW91c1Byb2NlZHVyZVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQW5vbnltb3VzUHJvY2VkdXJlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJwYXJhbWV0ZXJzIiwicmV0dXJuQmxvY2siLCJnZXRUeXBlIiwiZ2V0UGFyYW1ldGVycyIsImdldFJldHVybkJsb2NrIiwiY2FsbCIsInZhbHVlcyIsImZvcndhcmQiLCJiYWNrIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJldmFsdWF0ZSIsInZhbHVlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjswQkFFQzs0QkFDMEI7Ozs7OztNQUVqRCxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDJCQUEyQkMsdUJBQU87SUFDNUQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxDQUFFO1FBQzVFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFVBQVU7SUFDeEI7SUFFQUksaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksS0FBS0MsTUFBTSxFQUFFWCxPQUFPLEVBQUVZLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ25DLE1BQU1DLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXREZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFRix5QkFBeUIsdUJBQXVCLENBQUM7UUFFL0UsT0FBTyxJQUFJLENBQUNULFVBQVUsQ0FBQ1ksYUFBYSxDQUFDTixRQUFRWCxTQUFTLENBQUNhO1lBQ3JELE1BQU1LLFlBQVlDLElBQUFBLDRDQUFnQyxFQUFDUixRQUFRLElBQUksQ0FBQ04sVUFBVSxFQUFFTDtZQUU1RSxPQUFPLElBQUksQ0FBQ00sV0FBVyxDQUFDYyxRQUFRLENBQUNGLFdBQVdsQixTQUFTLENBQUNxQixPQUFPUjtnQkFDM0QsTUFBTVMsWUFBWUQsTUFBTWQsT0FBTyxJQUN6QmdCLHVCQUF1QixJQUFJLENBQUNuQixJQUFJLENBQUNvQixTQUFTLENBQUNGO2dCQUVqRCxJQUFJLENBQUNDLHNCQUFzQjtvQkFDekIsTUFBTUUsY0FBY0osTUFBTU4sU0FBUyxJQUM3QlcsYUFBYSxJQUFJLENBQUN0QixJQUFJLENBQUNXLFNBQVMsSUFDaENZLFVBQVUsQ0FBQyxLQUFLLEVBQUVGLFlBQVksV0FBVyxFQUFFSCxVQUFVLDRCQUE0QixFQUFFUix5QkFBeUIsd0JBQXdCLEVBQUVZLFdBQVcsT0FBTyxDQUFDLEVBQ3pKRSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxPQUFPZCxLQUFLZTtnQkFDZDtnQkFFQTVCLFFBQVErQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVqQix5QkFBeUIscUJBQXFCLENBQUM7Z0JBRS9FLE9BQU9GLFFBQVFTLE9BQU9SO1lBQ3hCLEdBQUdBO1FBQ0wsR0FBR0E7SUFDTDtJQUVBLE9BQU9tQixPQUFPLHFCQUFxQjtBQUNyQyJ9
|
|
@@ -71,10 +71,10 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
71
71
|
getBindings() {
|
|
72
72
|
return this.bindings;
|
|
73
73
|
}
|
|
74
|
-
evaluate = breakable(function(context,
|
|
74
|
+
evaluate = breakable(function(context, forward, back) {
|
|
75
75
|
const listAssignmentString = this.getString(); ///
|
|
76
76
|
context.trace(`Evaluating the '${listAssignmentString}' list assignment...`);
|
|
77
|
-
return this.variable.evaluate(context,
|
|
77
|
+
return this.variable.evaluate(context, (value, back)=>{
|
|
78
78
|
const valueType = value.getType(), valueTypeListType = valueType.isListType();
|
|
79
79
|
if (!valueTypeListType) {
|
|
80
80
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
@@ -86,20 +86,20 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
86
86
|
return back(exception);
|
|
87
87
|
}
|
|
88
88
|
const values = value.lift(context);
|
|
89
|
-
return this.bindings.forEachBinding((binding,
|
|
89
|
+
return this.bindings.forEachBinding((binding, forward, back, index)=>{
|
|
90
90
|
const elided = binding.isElided();
|
|
91
91
|
if (elided) {
|
|
92
|
-
return forward();
|
|
92
|
+
return forward(back);
|
|
93
93
|
}
|
|
94
94
|
const value = values[index];
|
|
95
|
-
return this.evaluateBinding(binding, value, context,
|
|
96
|
-
}, back
|
|
95
|
+
return this.evaluateBinding(binding, value, context, forward, back);
|
|
96
|
+
}, (back)=>{
|
|
97
97
|
context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
|
|
98
|
-
return forward();
|
|
99
|
-
});
|
|
100
|
-
});
|
|
98
|
+
return forward(back);
|
|
99
|
+
}, back);
|
|
100
|
+
}, back);
|
|
101
101
|
});
|
|
102
|
-
evaluateBinding(binding, value, context,
|
|
102
|
+
evaluateBinding(binding, value, context, forward, back) {
|
|
103
103
|
const valueString = value.getString(), bindingString = binding.getString();
|
|
104
104
|
context.trace(`Evaluating the '${bindingString}' binding against the '${valueString}' value...`);
|
|
105
105
|
const valueType = value.getType(), bindingType = binding.getType(), bindingTypeEqualToValueType = bindingType.isEqualTo(valueType);
|
|
@@ -108,12 +108,12 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
108
108
|
return back(exception);
|
|
109
109
|
}
|
|
110
110
|
const { Variable } = _elements.default, variable = Variable.fromBinding(binding, context);
|
|
111
|
-
return variable.assign(value, context, back
|
|
111
|
+
return variable.assign(value, context, (back)=>{
|
|
112
112
|
context.debug(`...evaluated the '${bindingString}' binding against the '${valueString}' value.`);
|
|
113
|
-
return forward();
|
|
114
|
-
});
|
|
113
|
+
return forward(back);
|
|
114
|
+
}, back);
|
|
115
115
|
}
|
|
116
116
|
static name = "ListAssignment";
|
|
117
117
|
});
|
|
118
118
|
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvbGlzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGlzdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYmluZGluZ3MgPSBiaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmluZGluZ3M7XG4gIH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGxpc3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtsaXN0QXNzaWdubWVudFN0cmluZ30nIGxpc3QgYXNzaWdubWVudC4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJpbmRpbmdzTGVuZ3RoID0gdGhpcy5iaW5kaW5ncy5nZXRMZW5ndGgoKSxcbiAgICAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICAgIHByaW1pdGl2ZVZhbHVlTGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUubGVuZ3RoO1xuXG4gICAgICBpZiAoYmluZGluZ3NMZW5ndGggPiBwcmltaXRpdmVWYWx1ZUxlbmd0aCkge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICBiaW5kaW5nc1N0cmluZyA9IHRoaXMuYmluZGluZ3MuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlIGxlbmd0aCBvZiB0aGUgJyR7YmluZGluZ3NTdHJpbmd9JyBiaW5kaW5ncyBpcyBncmVhdGVyIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgJyR7dmFsdWVTdHJpbmd9JyBsaXN0LmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YWx1ZS5saWZ0KGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5iaW5kaW5ncy5mb3JFYWNoQmluZGluZygoYmluZGluZywgZm9yd2FyZCwgYmFjaywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZWxpZGVkID0gYmluZGluZy5pc0VsaWRlZCgpO1xuXG4gICAgICAgIGlmIChlbGlkZWQpIHtcbiAgICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgICAgfSwgKGJhY2spID0+IHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsaXN0QXNzaWdubWVudFN0cmluZ30nIGxpc3QgYXNzaWdubWVudC5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9KTtcblxuICBldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJpbmRpbmdTdHJpbmcgPSBiaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJpbmRpbmdUeXBlID0gYmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlID0gYmluZGluZ1R5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIWJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgYmluZGluZ1R5cGVTdHJpbmcgPSBiaW5kaW5nVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZVN0cmluZyA9IHZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZydzICcke2JpbmRpbmdUeXBlU3RyaW5nfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tQmluZGluZyhiaW5kaW5nLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nIGFnYWluc3QgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxpc3RBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiTGlzdEFzc2lnbm1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJiaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0QmluZGluZ3MiLCJldmFsdWF0ZSIsImZvcndhcmQiLCJiYWNrIiwibGlzdEFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJiaW5kaW5nc0xlbmd0aCIsImdldExlbmd0aCIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJwcmltaXRpdmVWYWx1ZUxlbmd0aCIsImxlbmd0aCIsImJpbmRpbmdzU3RyaW5nIiwidmFsdWVzIiwibGlmdCIsImZvckVhY2hCaW5kaW5nIiwiYmluZGluZyIsImluZGV4IiwiZWxpZGVkIiwiaXNFbGlkZWQiLCJldmFsdWF0ZUJpbmRpbmciLCJkZWJ1ZyIsImJpbmRpbmdTdHJpbmciLCJiaW5kaW5nVHlwZSIsImJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsImJpbmRpbmdUeXBlU3RyaW5nIiwidmFsdWVUeXBlU3RyaW5nIiwiVmFyaWFibGUiLCJlbGVtZW50cyIs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
|
|
@@ -75,26 +75,26 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
75
75
|
getNamedBindings() {
|
|
76
76
|
return this.namedBindings;
|
|
77
77
|
}
|
|
78
|
-
evaluate = breakable(function(context,
|
|
78
|
+
evaluate = breakable(function(context, forward, back) {
|
|
79
79
|
const objectAssignmentString = this.getString(); ///
|
|
80
80
|
context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
|
|
81
|
-
return this.variable.evaluate(context,
|
|
81
|
+
return this.variable.evaluate(context, (value, back)=>{
|
|
82
82
|
const valueType = value.getType(), valueTypeNominalValueType = valueType.isNominalValueType();
|
|
83
83
|
if (!valueTypeNominalValueType) {
|
|
84
84
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.NOMINAL_VALUE_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
85
85
|
return back(exception);
|
|
86
86
|
}
|
|
87
|
-
return _nominalValueProperties.default.compareNamedBindings(this.namedBindings, context, back
|
|
88
|
-
return this.namedBindings.forEachNamedBinding((namedBinding,
|
|
89
|
-
return this.evaluateNamedBinding(namedBinding, value, context,
|
|
90
|
-
}, back
|
|
87
|
+
return _nominalValueProperties.default.compareNamedBindings(this.namedBindings, context, (back)=>{
|
|
88
|
+
return this.namedBindings.forEachNamedBinding((namedBinding, forward, back)=>{
|
|
89
|
+
return this.evaluateNamedBinding(namedBinding, value, context, forward, back);
|
|
90
|
+
}, (back)=>{
|
|
91
91
|
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
92
|
-
return forward();
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
92
|
+
return forward(back);
|
|
93
|
+
}, back);
|
|
94
|
+
}, back);
|
|
95
|
+
}, back);
|
|
96
96
|
});
|
|
97
|
-
evaluateNamedBinding(namedBinding, term, context,
|
|
97
|
+
evaluateNamedBinding(namedBinding, term, context, forward, back) {
|
|
98
98
|
const termString = term.getString(), namedBindingString = namedBinding.getString();
|
|
99
99
|
context.trace(`Evaluating the '${namedBindingString}' named binding against the '${termString}' term...`);
|
|
100
100
|
const name = namedBinding.getName();
|
|
@@ -121,15 +121,15 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
121
121
|
break;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
return evaluateNamedBinding(namedBinding, term, context,
|
|
124
|
+
return evaluateNamedBinding(namedBinding, term, context, (value, back)=>{
|
|
125
125
|
const { Variable } = _elements.default, variable = Variable.fromNamedBinding(namedBinding, context);
|
|
126
|
-
return variable.assign(value, context, back
|
|
126
|
+
return variable.assign(value, context, (back)=>{
|
|
127
127
|
context.debug(`...evaluated the '${namedBindingString}' parameter named against the '${termString}' term.`);
|
|
128
|
-
forward();
|
|
129
|
-
});
|
|
130
|
-
});
|
|
128
|
+
return forward(back);
|
|
129
|
+
}, back);
|
|
130
|
+
}, back);
|
|
131
131
|
}
|
|
132
|
-
evaluateContentNamedBinding(namedBinding, term, context,
|
|
132
|
+
evaluateContentNamedBinding(namedBinding, term, context, forward, back) {
|
|
133
133
|
const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
|
|
134
134
|
context.trace(`Evaluating the content '${namedBindingString}' named binding...`);
|
|
135
135
|
const typeStringType = type.isStringType();
|
|
@@ -144,9 +144,9 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
144
144
|
}
|
|
145
145
|
const terminalNode = node, content = terminalNode.getContent(), string = content, stringLiteral = (0, _stringLiteral.stringLiteralFromString)(string), value = (0, _value.valueFromStringLiteral)(stringLiteral, context), valueSttring = value.getString();
|
|
146
146
|
context.debug(`...evaluated the content '${namedBindingString}' named binding as '${valueSttring}'.`);
|
|
147
|
-
return forward(value);
|
|
147
|
+
return forward(value, back);
|
|
148
148
|
}
|
|
149
|
-
evaluateTerminalNamedBinding(namedBinding, term, context,
|
|
149
|
+
evaluateTerminalNamedBinding(namedBinding, term, context, forward, back) {
|
|
150
150
|
const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
|
|
151
151
|
context.trace(`Evaluating the terminal '${namedBindingString}' named binding...`);
|
|
152
152
|
const typeBooleanType = type.isBooleanType();
|
|
@@ -156,9 +156,9 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
156
156
|
}
|
|
157
157
|
const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode(), terminal = nodeTerminalNode, boolean = terminal, value = (0, _value.valueFromBoolean)(boolean, context), valueSttring = value.getString();
|
|
158
158
|
context.debug(`...evaluated the terminal '${namedBindingString}' named binding as '${valueSttring}'.`);
|
|
159
|
-
return forward(value);
|
|
159
|
+
return forward(value, back);
|
|
160
160
|
}
|
|
161
|
-
evaluateChildNodesNamedBinding(namedBinding, term, context,
|
|
161
|
+
evaluateChildNodesNamedBinding(namedBinding, term, context, forward, back) {
|
|
162
162
|
const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
|
|
163
163
|
context.trace(`Evaluating the child nodes '${namedBindingString}' named binding...`);
|
|
164
164
|
const typeListType = type.isListType();
|
|
@@ -173,9 +173,9 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
173
173
|
}
|
|
174
174
|
const nonTerminalNode = node, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, value = (0, _value.valueFromNodesAndNominalValue)(nodes, nominalValue), valueSttring = value.getString();
|
|
175
175
|
context.debug(`...evaluated the childNodes '${namedBindingString}' named binding as '${valueSttring}'.`);
|
|
176
|
-
return forward(value);
|
|
176
|
+
return forward(value, back);
|
|
177
177
|
}
|
|
178
|
-
evaluateNoWhitespaceNamedBinding(namedBinding, term, context,
|
|
178
|
+
evaluateNoWhitespaceNamedBinding(namedBinding, term, context, forward, back) {
|
|
179
179
|
const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
|
|
180
180
|
context.trace(`Evaluating the no whitespace '${namedBindingString}' named binding...`);
|
|
181
181
|
const typeBooleanType = type.isBooleanType();
|
|
@@ -190,9 +190,9 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
190
190
|
}
|
|
191
191
|
const terminalNode = node, noWhiteapce = terminalNode.isNoWhitespaceNode(), boolean = noWhiteapce, value = (0, _value.valueFromBoolean)(boolean, context), valueSttring = value.getString();
|
|
192
192
|
context.debug(`...evaluated the no whitespace '${namedBindingString}' named binding as '${valueSttring}'.`);
|
|
193
|
-
return forward(value);
|
|
193
|
+
return forward(value, back);
|
|
194
194
|
}
|
|
195
195
|
static name = "ObjectAssignment";
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllcy5jb21wYXJlTmFtZWRCaW5kaW5ncyh0aGlzLm5hbWVkQmluZGluZ3MsIGNvbnRleHQsIGJhY2ssICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZWRCaW5kaW5ncy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcsIGJhY2ssIGZvcndhcmQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICAgICAgfSwgYmFjaywgKCkgPT4ge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7b2JqZWN0QXNzaWdubWVudFN0cmluZ30nIG9iamVjdCBhc3NpZ25tZW50LmApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBsZXQgZXZhbHVhdGVOYW1lZEJpbmRpbmc7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgZXZhbHVhdGVOYW1lZEJpbmRpbmcgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssICgpID0+IHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBwYXJhbWV0ZXIgbmFtZWQgYWdhaW5zdCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG5cbiAgICAgICAgZm9yd2FyZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIGV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRlcm1pbmFsLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksICAvLy9cbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSBub24tdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjaGlsZE5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5vV2hpdGVhcGNlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub1doaXRlYXBjZSwgIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJPYmplY3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJvYmplY3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJldmFsdWF0ZU5hbWVkQmluZGluZyIsImRlYnVnIiwidGVybSIsInRlcm1TdHJpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJuYW1lIiwiZ2V0TmFtZSIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmciLCJiaW5kIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCIsInZhbHVlU3R0cmluZyIsInR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJub1doaXRlYXBjZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7O2dDQWQ2QztrRUFFeEI7a0VBQ0M7K0VBQ2E7K0JBR0s7dUJBQ2dEOzJCQUNLO2dDQUM2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUgsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMseUJBQXlCQyx1QkFBTztJQUMxRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxDQUFFO1FBQ3RFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtJQUN2QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRixhQUFhO0lBQzNCO0lBRUFHLFdBQVdiLFVBQVUsU0FBVUssT0FBTyxFQUFFUyxJQUFJLEVBQUVDLE9BQU87UUFDbkQsTUFBTUMseUJBQXlCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFcERaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix1QkFBdUIsc0JBQXNCLENBQUM7UUFFL0UsT0FBTyxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixTQUFTUyxNQUFNLENBQUNLO1lBQzVDLE1BQU1DLFlBQVlELE1BQU1FLE9BQU8sSUFDekJDLDRCQUE0QkYsVUFB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
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQsICh2YWx1ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllcy5jb21wYXJlTmFtZWRCaW5kaW5ncyh0aGlzLm5hbWVkQmluZGluZ3MsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgICAgIH0sIChiYWNrKSA9PiB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG5cbiAgICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgICAgfSwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBsZXQgZXZhbHVhdGVOYW1lZEJpbmRpbmc7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgZXZhbHVhdGVOYW1lZEJpbmRpbmcgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCAodmFsdWUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRlcm1pbmFsLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksICAvLy9cbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSBub24tdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjaGlsZE5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5vV2hpdGVhcGNlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub1doaXRlYXBjZSwgIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJPYmplY3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwiZm9yd2FyZCIsImJhY2siLCJvYmplY3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJldmFsdWF0ZU5hbWVkQmluZGluZyIsImRlYnVnIiwidGVybSIsInRlcm1TdHJpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJuYW1lIiwiZ2V0TmFtZSIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmciLCJiaW5kIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCIsInZhbHVlU3R0cmluZyIsInR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJub1doaXRlYXBjZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7O2dDQWQ2QztrRUFFeEI7a0VBQ0M7K0VBQ2E7K0JBR0s7dUJBQ2dEOzJCQUNLO2dDQUM2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUgsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMseUJBQXlCQyx1QkFBTztJQUMxRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxDQUFFO1FBQ3RFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtJQUN2QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRixhQUFhO0lBQzNCO0lBRUFHLFdBQVdiLFVBQVUsU0FBVUssT0FBTyxFQUFFUyxPQUFPLEVBQUVDLElBQUk7UUFDbkQsTUFBTUMseUJBQXlCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFcERaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix1QkFBdUIsc0JBQXNCLENBQUM7UUFFL0UsT0FBTyxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixT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
|
|
@@ -22,18 +22,18 @@ const _default = (0, _elements.define)(class VariableAssignment extends _occamla
|
|
|
22
22
|
getExpression() {
|
|
23
23
|
return this.expression;
|
|
24
24
|
}
|
|
25
|
-
evaluate(context,
|
|
25
|
+
evaluate(context, forward, back) {
|
|
26
26
|
const variableAssignmentString = this.getString(); ///
|
|
27
27
|
context.trace(`Evaluating the '${variableAssignmentString}' variable assignment...`);
|
|
28
|
-
return this.expression.evaluate(context,
|
|
29
|
-
return this.variable.assign(value, context, back
|
|
28
|
+
return this.expression.evaluate(context, (value, back)=>{
|
|
29
|
+
return this.variable.assign(value, context, (back)=>{
|
|
30
30
|
const valueString = value.getString();
|
|
31
31
|
context.debug(`...evaluated the '${variableAssignmentString}' variable assignment as '${valueString}'.`);
|
|
32
|
-
return forward();
|
|
33
|
-
});
|
|
34
|
-
});
|
|
32
|
+
return forward(back);
|
|
33
|
+
}, back);
|
|
34
|
+
}, back);
|
|
35
35
|
}
|
|
36
36
|
static name = "VariableAssignment";
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGVBc3NpZ25tZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGV4cHJlc3Npb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3ZhcmlhYmxlQXNzaWdubWVudFN0cmluZ30nIHZhcmlhYmxlIGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy52YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9JyB2YXJpYWJsZSBhc3NpZ25tZW50IGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZUFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlQXNzaWdubWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImV4cHJlc3Npb24iLCJnZXRWYXJpYWJsZSIsImdldEV4cHJlc3Npb24iLCJldmFsdWF0ZSIsImZvcndhcmQiLCJiYWNrIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsImFzc2lnbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQywyQkFBMkJDLHVCQUFPO0lBQzVELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLENBQUU7UUFDbkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxTQUFTUixPQUFPLEVBQUVTLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQy9CLE1BQU1DLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXREWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYseUJBQXlCLHdCQUF3QixDQUFDO1FBRW5GLE9BQU8sSUFBSSxDQUFDTixVQUFVLENBQUNHLFFBQVEsQ0FBQ1IsU0FBUyxDQUFDYyxPQUFPSjtZQUMvQyxPQUFPLElBQUksQ0FBQ04sUUFBUSxDQUFDVyxNQUFNLENBQUNELE9BQU9kLFNBQVMsQ0FBQ1U7Z0JBQzNDLE1BQU1NLGNBQWNGLE1BQU1GLFNBQVM7Z0JBRW5DWixRQUFRaUIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVOLHlCQUF5QiwwQkFBMEIsRUFBRUssWUFBWSxFQUFFLENBQUM7Z0JBRXZHLE9BQU9QLFFBQVFDO1lBQ2pCLEdBQUdBO1FBQ0wsR0FBR0E7SUFDTDtJQUVBLE9BQU9RLE9BQU8scUJBQXFCO0FBQ3JDIn0=
|
|
@@ -19,17 +19,17 @@ const _default = (0, _elements.define)(class VariableAssignments extends _occaml
|
|
|
19
19
|
getArray() {
|
|
20
20
|
return this.array;
|
|
21
21
|
}
|
|
22
|
-
evaluate = breakable(function(context,
|
|
22
|
+
evaluate = breakable(function(context, forward, back) {
|
|
23
23
|
const variableAssignmentsString = this.getString(); ///
|
|
24
24
|
context.trace(`Evaluating the '${variableAssignmentsString}' variable assignments...`);
|
|
25
|
-
return forEach(this.array, (variableAssignment,
|
|
26
|
-
return variableAssignment.evaluate(context,
|
|
27
|
-
}, back
|
|
25
|
+
return forEach(this.array, (variableAssignment, forward, back)=>{
|
|
26
|
+
return variableAssignment.evaluate(context, forward, back);
|
|
27
|
+
}, (back)=>{
|
|
28
28
|
context.debug(`...evaluated the '${variableAssignmentsString}' variable assignments.`);
|
|
29
|
-
return forward();
|
|
30
|
-
});
|
|
29
|
+
return forward(back);
|
|
30
|
+
}, back);
|
|
31
31
|
});
|
|
32
32
|
static name = "VariableAssignments";
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnRzL3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5jb25zdCB7IGZvckVhY2ggfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGVBc3NpZ25tZW50cyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfScgdmFyaWFibGUgYXNzaWdubWVudHMuLi5gKTtcblxuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYXJyYXksICh2YXJpYWJsZUFzc2lnbm1lbnQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnQuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgKGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30nIHZhcmlhYmxlIGFzc2lnbm1lbnRzLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlQXNzaWdubWVudHNcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiVmFyaWFibGVBc3NpZ25tZW50cyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZXZhbHVhdGUiLCJmb3J3YXJkIiwiYmFjayIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhcmlhYmxlQXNzaWdubWVudCIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUG9FOzBCQUU3QztBQUV2QixNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUIsRUFDbkMsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDRCQUE0QkMsdUJBQU87SUFDN0QsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsV0FBV1gsVUFBVSxTQUFVSyxPQUFPLEVBQUVPLE9BQU8sRUFBRUMsSUFBSTtRQUNuRCxNQUFNQyw0QkFBNEIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV2RFYsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLDBCQUEwQix5QkFBeUIsQ0FBQztRQUVyRixPQUFPaEIsUUFBUSxJQUFJLENBQUNXLEtBQUssRUFBRSxDQUFDUSxvQkFBb0JMLFNBQVNDO1lBQ3ZELE9BQU9JLG1CQUFtQk4sUUFBUSxDQUFDTixTQUFTTyxTQUFTQztRQUN2RCxHQUFHLENBQUNBO1lBQ0ZSLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFSiwwQkFBMEIsdUJBQXVCLENBQUM7WUFFckYsT0FBT0YsUUFBUUM7UUFDakIsR0FBR0E7SUFDTCxHQUFHO0lBRUgsT0FBT00sT0FBTyxzQkFBc0I7QUFDdEMifQ==
|