occam-furtle 3.0.366 → 3.0.370
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/file/furtle.js +1 -1
- package/lib/context/literal.js +42 -0
- package/lib/element/anonymousProcedure.js +51 -0
- package/lib/element/label.js +17 -1
- package/lib/element/parameters.js +17 -1
- package/lib/element/procedure.js +112 -0
- package/lib/element/returnBlock.js +7 -7
- package/lib/element/returnStatement.js +33 -0
- package/lib/element/statement.js +43 -0
- package/lib/element/type.js +24 -1
- package/lib/example/furtle/bnf.js +11 -5
- package/lib/example/furtle/entries.js +2 -2
- package/lib/node/anoymousProcedure.js +31 -0
- package/lib/node/procedure.js +20 -3
- package/lib/node/returnBlock.js +4 -4
- package/lib/node/returnStatement.js +23 -0
- package/lib/node/statement.js +16 -3
- package/lib/nonTerminalNodeMap.js +10 -10
- package/lib/preamble.js +4 -5
- package/lib/process/instantiate.js +255 -0
- package/lib/process/verify.js +6 -6
- package/lib/ruleNames.js +7 -7
- package/lib/utilities/context.js +15 -1
- package/lib/utilities/element.js +82 -100
- package/lib/utilities/json.js +52 -1
- package/lib/utilities/string.js +1 -8
- package/package.json +5 -5
- package/src/context/file/furtle.js +0 -1
- package/src/context/literal.js +46 -0
- package/src/element/{procedure/anonymous.js → anonymousProcedure.js} +3 -3
- package/src/element/label.js +26 -1
- package/src/element/parameters.js +26 -1
- package/src/element/procedure.js +58 -3
- package/src/element/returnBlock.js +6 -6
- package/src/element/{statement/return.js → returnStatement.js} +1 -1
- package/src/element/{step.js → statement.js} +2 -2
- package/src/element/type.js +41 -1
- package/src/example/furtle/bnf.js +10 -4
- package/src/example/furtle/entries.js +2 -2
- package/src/node/{procedure/anoymous.js → anoymousProcedure.js} +4 -4
- package/src/node/procedure.js +31 -1
- package/src/node/returnBlock.js +5 -5
- package/src/node/returnStatement.js +16 -0
- package/src/node/statement.js +24 -1
- package/src/nonTerminalNodeMap.js +11 -11
- package/src/preamble.js +3 -4
- package/src/process/instantiate.js +194 -0
- package/src/process/verify.js +7 -7
- package/src/ruleNames.js +2 -2
- package/src/utilities/context.js +9 -0
- package/src/utilities/element.js +113 -145
- package/src/utilities/json.js +57 -0
- package/src/utilities/string.js +0 -14
- package/lib/element/declaration/procedure.js +0 -36
- package/lib/element/procedure/anonymous.js +0 -51
- package/lib/element/statement/return.js +0 -33
- package/lib/element/step.js +0 -43
- package/lib/node/declaration/procedure.js +0 -40
- package/lib/node/declaration.js +0 -18
- package/lib/node/procedure/anoymous.js +0 -36
- package/lib/node/statement/return.js +0 -28
- package/lib/node/step.js +0 -31
- package/src/element/declaration/procedure.js +0 -38
- package/src/node/declaration/procedure.js +0 -37
- package/src/node/declaration.js +0 -7
- package/src/node/statement/return.js +0 -16
- package/src/node/step.js +0 -30
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get instantiateCombinator () {
|
|
13
|
+
return instantiateCombinator;
|
|
14
|
+
},
|
|
15
|
+
get instantiateConclusion () {
|
|
16
|
+
return instantiateConclusion;
|
|
17
|
+
},
|
|
18
|
+
get instantiateConstraint () {
|
|
19
|
+
return instantiateConstraint;
|
|
20
|
+
},
|
|
21
|
+
get instantiateConstructor () {
|
|
22
|
+
return instantiateConstructor;
|
|
23
|
+
},
|
|
24
|
+
get instantiateContainedAssertion () {
|
|
25
|
+
return instantiateContainedAssertion;
|
|
26
|
+
},
|
|
27
|
+
get instantiateDeduction () {
|
|
28
|
+
return instantiateDeduction;
|
|
29
|
+
},
|
|
30
|
+
get instantiateDefinedAssertion () {
|
|
31
|
+
return instantiateDefinedAssertion;
|
|
32
|
+
},
|
|
33
|
+
get instantiateEquality () {
|
|
34
|
+
return instantiateEquality;
|
|
35
|
+
},
|
|
36
|
+
get instantiateEquivalence () {
|
|
37
|
+
return instantiateEquivalence;
|
|
38
|
+
},
|
|
39
|
+
get instantiateFrame () {
|
|
40
|
+
return instantiateFrame;
|
|
41
|
+
},
|
|
42
|
+
get instantiateFrameSubstitution () {
|
|
43
|
+
return instantiateFrameSubstitution;
|
|
44
|
+
},
|
|
45
|
+
get instantiateGenerator () {
|
|
46
|
+
return instantiateGenerator;
|
|
47
|
+
},
|
|
48
|
+
get instantiateHypothesis () {
|
|
49
|
+
return instantiateHypothesis;
|
|
50
|
+
},
|
|
51
|
+
get instantiateImplicitAssumption () {
|
|
52
|
+
return instantiateImplicitAssumption;
|
|
53
|
+
},
|
|
54
|
+
get instantiateJudgement () {
|
|
55
|
+
return instantiateJudgement;
|
|
56
|
+
},
|
|
57
|
+
get instantiateLabel () {
|
|
58
|
+
return instantiateLabel;
|
|
59
|
+
},
|
|
60
|
+
get instantiateMetavariable () {
|
|
61
|
+
return instantiateMetavariable;
|
|
62
|
+
},
|
|
63
|
+
get instantiateParameter () {
|
|
64
|
+
return instantiateParameter;
|
|
65
|
+
},
|
|
66
|
+
get instantiatePremise () {
|
|
67
|
+
return instantiatePremise;
|
|
68
|
+
},
|
|
69
|
+
get instantiateProcedureReference () {
|
|
70
|
+
return instantiateProcedureReference;
|
|
71
|
+
},
|
|
72
|
+
get instantiateProperty () {
|
|
73
|
+
return instantiateProperty;
|
|
74
|
+
},
|
|
75
|
+
get instantiatePropertyAssertion () {
|
|
76
|
+
return instantiatePropertyAssertion;
|
|
77
|
+
},
|
|
78
|
+
get instantiateReference () {
|
|
79
|
+
return instantiateReference;
|
|
80
|
+
},
|
|
81
|
+
get instantiateReferenceSubstitution () {
|
|
82
|
+
return instantiateReferenceSubstitution;
|
|
83
|
+
},
|
|
84
|
+
get instantiateSignature () {
|
|
85
|
+
return instantiateSignature;
|
|
86
|
+
},
|
|
87
|
+
get instantiateSignatureAssertion () {
|
|
88
|
+
return instantiateSignatureAssertion;
|
|
89
|
+
},
|
|
90
|
+
get instantiateStatement () {
|
|
91
|
+
return instantiateStatement;
|
|
92
|
+
},
|
|
93
|
+
get instantiateStatementSubstitution () {
|
|
94
|
+
return instantiateStatementSubstitution;
|
|
95
|
+
},
|
|
96
|
+
get instantiateSubproofAssertion () {
|
|
97
|
+
return instantiateSubproofAssertion;
|
|
98
|
+
},
|
|
99
|
+
get instantiateSupposition () {
|
|
100
|
+
return instantiateSupposition;
|
|
101
|
+
},
|
|
102
|
+
get instantiateTerm () {
|
|
103
|
+
return instantiateTerm;
|
|
104
|
+
},
|
|
105
|
+
get instantiateTermSubstitution () {
|
|
106
|
+
return instantiateTermSubstitution;
|
|
107
|
+
},
|
|
108
|
+
get instantiateType () {
|
|
109
|
+
return instantiateType;
|
|
110
|
+
},
|
|
111
|
+
get instantiateTypeAssertion () {
|
|
112
|
+
return instantiateTypeAssertion;
|
|
113
|
+
},
|
|
114
|
+
get instantiateTypePrefix () {
|
|
115
|
+
return instantiateTypePrefix;
|
|
116
|
+
},
|
|
117
|
+
get instantiateVariable () {
|
|
118
|
+
return instantiateVariable;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
const _bnf = require("../utilities/bnf");
|
|
122
|
+
const _ruleNames = require("../ruleNames");
|
|
123
|
+
const termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RULE_NAME), judgementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.JUDGEMENT_RULE_NAME), generatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.GENERATOR_RULE_NAME), deductionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), signaturePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_RULE_NAME), constraintPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRAINT_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.HYPOTHESIS_RULE_NAME), typePrefixPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_ASSERTION_RULE_NAME), definedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), signatureAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_ASSERTION_RULE_NAME), implicitAssumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.IMPLICIT_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
124
|
+
function instantiatePremise(string, context) {
|
|
125
|
+
string = `${string}
|
|
126
|
+
`; ///
|
|
127
|
+
return instantiate(premisePlaceholderRule, string, context);
|
|
128
|
+
}
|
|
129
|
+
function instantiateDeduction(string, context) {
|
|
130
|
+
string = `${string}
|
|
131
|
+
`; ///
|
|
132
|
+
return instantiate(deductionPlaceholderRule, string, context);
|
|
133
|
+
}
|
|
134
|
+
function instantiateConclusion(string, context) {
|
|
135
|
+
string = `${string}
|
|
136
|
+
`; ///
|
|
137
|
+
return instantiate(conclusionPlaceholderRule, string, context);
|
|
138
|
+
}
|
|
139
|
+
function instantiateSupposition(string, context) {
|
|
140
|
+
string = `${string}
|
|
141
|
+
`; ///
|
|
142
|
+
return instantiate(suppositionPlaceholderRule, string, context);
|
|
143
|
+
}
|
|
144
|
+
function instantiateTerm(string, context) {
|
|
145
|
+
return instantiate(termPlaceholderRule, string, context);
|
|
146
|
+
}
|
|
147
|
+
function instantiateType(string, context) {
|
|
148
|
+
return instantiate(typePlaceholderRule, string, context);
|
|
149
|
+
}
|
|
150
|
+
function instantiateFrame(string, context) {
|
|
151
|
+
return instantiate(framePlaceholderRule, string, context);
|
|
152
|
+
}
|
|
153
|
+
function instantiateLabel(string, context) {
|
|
154
|
+
return instantiate(labelPlaceholderRule, string, context);
|
|
155
|
+
}
|
|
156
|
+
function instantiateVariable(string, context) {
|
|
157
|
+
return instantiate(variablePlaceholderRule, string, context);
|
|
158
|
+
}
|
|
159
|
+
function instantiateEquality(string, context) {
|
|
160
|
+
return instantiate(equalityPlaceholderRule, string, context);
|
|
161
|
+
}
|
|
162
|
+
function instantiateProperty(string, context) {
|
|
163
|
+
return instantiate(propertyPlaceholderRule, string, context);
|
|
164
|
+
}
|
|
165
|
+
function instantiateGenerator(string, context) {
|
|
166
|
+
return instantiate(generatorPlaceholderRule, string, context);
|
|
167
|
+
}
|
|
168
|
+
function instantiateJudgement(string, context) {
|
|
169
|
+
return instantiate(judgementPlaceholderRule, string, context);
|
|
170
|
+
}
|
|
171
|
+
function instantiateParameter(string, context) {
|
|
172
|
+
return instantiate(parameterPlaceholderRule, string, context);
|
|
173
|
+
}
|
|
174
|
+
function instantiateStatement(string, context) {
|
|
175
|
+
return instantiate(statementPlaceholderRule, string, context);
|
|
176
|
+
}
|
|
177
|
+
function instantiateReference(string, context) {
|
|
178
|
+
return instantiate(referencePlaceholderRule, string, context);
|
|
179
|
+
}
|
|
180
|
+
function instantiateSignature(string, context) {
|
|
181
|
+
return instantiate(signaturePlaceholderRule, string, context);
|
|
182
|
+
}
|
|
183
|
+
function instantiateCombinator(string, context) {
|
|
184
|
+
return instantiate(combinatorPlaceholderRule, string, context);
|
|
185
|
+
}
|
|
186
|
+
function instantiateHypothesis(string, context) {
|
|
187
|
+
return instantiate(hypothesisPlaceholderRule, string, context);
|
|
188
|
+
}
|
|
189
|
+
function instantiateConstraint(string, context) {
|
|
190
|
+
return instantiate(constraintPlaceholderRule, string, context);
|
|
191
|
+
}
|
|
192
|
+
function instantiateTypePrefix(string, context) {
|
|
193
|
+
return instantiate(typePrefixPlaceholderRule, string, context);
|
|
194
|
+
}
|
|
195
|
+
function instantiateConstructor(string, context) {
|
|
196
|
+
return instantiate(constructorPlaceholderRule, string, context);
|
|
197
|
+
}
|
|
198
|
+
function instantiateEquivalence(string, context) {
|
|
199
|
+
return instantiate(equivalencePlaceholderRule, string, context);
|
|
200
|
+
}
|
|
201
|
+
function instantiateMetavariable(string, context) {
|
|
202
|
+
return instantiate(metavariablePlaceholderRule, string, context);
|
|
203
|
+
}
|
|
204
|
+
function instantiateTypeAssertion(string, context) {
|
|
205
|
+
return instantiate(typeAssertionPlaceholderRule, string, context);
|
|
206
|
+
}
|
|
207
|
+
function instantiateDefinedAssertion(string, context) {
|
|
208
|
+
return instantiate(definedAssertionPlaceholderRule, string, context);
|
|
209
|
+
}
|
|
210
|
+
function instantiateTermSubstitution(string, context) {
|
|
211
|
+
return instantiate(termSubstitutionPlaceholderRule, string, context);
|
|
212
|
+
}
|
|
213
|
+
function instantiateSubproofAssertion(string, context) {
|
|
214
|
+
return instantiate(subproofAssertionlaceholderRule, string, context);
|
|
215
|
+
}
|
|
216
|
+
function instantiatePropertyAssertion(string, context) {
|
|
217
|
+
return instantiate(propertyAssertionPlaceholderRule, string, context);
|
|
218
|
+
}
|
|
219
|
+
function instantiateFrameSubstitution(string, context) {
|
|
220
|
+
return instantiate(frameSubstitutionPlaceholderRule, string, context);
|
|
221
|
+
}
|
|
222
|
+
function instantiateProcedureReference(string, context) {
|
|
223
|
+
return instantiate(procedureReferencelaceholderRule, string, context);
|
|
224
|
+
}
|
|
225
|
+
function instantiateContainedAssertion(string, context) {
|
|
226
|
+
return instantiate(containedAssertionPlaceholderRule, string, context);
|
|
227
|
+
}
|
|
228
|
+
function instantiateSignatureAssertion(string, context) {
|
|
229
|
+
return instantiate(signatureAssertionPlaceholderRule, string, context);
|
|
230
|
+
}
|
|
231
|
+
function instantiateImplicitAssumption(string, context) {
|
|
232
|
+
return instantiate(implicitAssumptionPlaceholderRule, string, context);
|
|
233
|
+
}
|
|
234
|
+
function instantiateStatementSubstitution(string, context) {
|
|
235
|
+
return instantiate(statementSubstitutionPlaceholderRule, string, context);
|
|
236
|
+
}
|
|
237
|
+
function instantiateReferenceSubstitution(string, context) {
|
|
238
|
+
return instantiate(referenceSubstitutionPlaceholderRule, string, context);
|
|
239
|
+
}
|
|
240
|
+
function instantiate(placeholderRule, string, context) {
|
|
241
|
+
let node;
|
|
242
|
+
const lexer = context.getLexer(), parser = context.getParser(), content = `${string}
|
|
243
|
+
`, tokens = lexer.tokenise(content);
|
|
244
|
+
context.setTokens(tokens);
|
|
245
|
+
const startRule = placeholderRule; ///
|
|
246
|
+
node = parser.parse(tokens, startRule);
|
|
247
|
+
const nonTerminalNode = node; ///
|
|
248
|
+
nonTerminalNode.someChildNode((childNode)=>{
|
|
249
|
+
node = childNode; ///
|
|
250
|
+
return true;
|
|
251
|
+
});
|
|
252
|
+
return node;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIEdFTkVSQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9SVUxFX05BTUUpLFxuICAgICAgbGFiZWxQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKExBQkVMX1JVTEVfTkFNRSksXG4gICAgICBwcmVtaXNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUkVNSVNFX1JVTEVfTkFNRSksXG4gICAgICB2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVkFSSUFCTEVfUlVMRV9OQU1FKSxcbiAgICAgIGVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShFUVVBTElUWV9SVUxFX05BTUUpLFxuICAgICAgcHJvcGVydHlQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBST1BFUlRZX1JVTEVfTkFNRSksXG4gICAgICBqdWRnZW1lbnRQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEpVREdFTUVOVF9SVUxFX05BTUUpLFxuICAgICAgZ2VuZXJhdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShHRU5FUkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVEVUNUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBBUkFNRVRFUl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIHJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNJR05BVFVSRV9SVUxFX05BTUUpLFxuICAgICAgY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSQUlOVF9SVUxFX05BTUUpLFxuICAgICAgY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09NQklOQVRPUl9SVUxFX05BTUUpLFxuICAgICAgY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OQ0xVU0lPTl9SVUxFX05BTUUpLFxuICAgICAgaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSFlQT1RIRVNJU19SVUxFX05BTUUpLFxuICAgICAgdHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9QUkVGSVhfUlVMRV9OQU1FKSxcbiAgICAgIHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVVBQT1NJVElPTl9SVUxFX05BTUUpLFxuICAgICAgY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlNUUlVDVE9SX1JVTEVfTkFNRSksXG4gICAgICBlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVSVZBTEVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTUVUQVZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICB0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgaW1wbGljaXRBc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcmVtaXNlKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHByZW1pc2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZHVjdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbmNsdXNpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VwcG9zaXRpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShsYWJlbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVWYXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWFsaXR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVHZW5lcmF0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSnVkZ2VtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoanVkZ2VtZW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVBhcmFtZXRlcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnQoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVIeXBvdGhlc2lzKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJhaW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlUHJlZml4KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTWV0YXZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGVBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZShwbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCkge1xuICBsZXQgbm9kZTtcblxuICBjb25zdCBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgY29udGVudCA9IGAke3N0cmluZ31cbmAsXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIGNvbnRleHQuc2V0VG9rZW5zKHRva2Vucyk7XG5cbiAgY29uc3Qgc3RhcnRSdWxlID0gcGxhY2Vob2xkZXJSdWxlOyAgLy8vXG5cbiAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgbm9uVGVybWluYWxOb2RlLnNvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgIG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIHJldHVybiBub2RlO1xufVxuIl0sIm5hbWVzIjpbImluc3RhbnRpYXRlQ29tYmluYXRvciIsImluc3RhbnRpYXRlQ29uY2x1c2lvbiIsImluc3RhbnRpYXRlQ29uc3RyYWludCIsImluc3RhbnRpYXRlQ29uc3RydWN0b3IiLCJpbnN0YW50aWF0ZUNvbnRhaW5lZEFzc2VydGlvbiIsImluc3RhbnRpYXRlRGVkdWN0aW9uIiwiaW5zdGFudGlhdGVEZWZpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVFcXVhbGl0eSIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJpbnN0YW50aWF0ZUZyYW1lIiwiaW5zdGFudGlhdGVGcmFtZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlR2VuZXJhdG9yIiwiaW5zdGFudGlhdGVIeXBvdGhlc2lzIiwiaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24iLCJpbnN0YW50aWF0ZUp1ZGdlbWVudCIsImluc3RhbnRpYXRlTGFiZWwiLCJpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZSIsImluc3RhbnRpYXRlUGFyYW1ldGVyIiwiaW5zdGFudGlhdGVQcmVtaXNlIiwiaW5zdGFudGlhdGVQcm9jZWR1cmVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVByb3BlcnR5IiwiaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiIsImluc3RhbnRpYXRlUmVmZXJlbmNlIiwiaW5zdGFudGlhdGVSZWZlcmVuY2VTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVNpZ25hdHVyZSIsImluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVTdGF0ZW1lbnQiLCJpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVN1cHBvc2l0aW9uIiwiaW5zdGFudGlhdGVUZXJtIiwiaW5zdGFudGlhdGVUZXJtU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVUeXBlIiwiaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVUeXBlUHJlZml4IiwiaW5zdGFudGlhdGVWYXJpYWJsZSIsInRlcm1QbGFjZWhvbGRlclJ1bGUiLCJydWxlRnJvbVJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJ0eXBlUGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9SVUxFX05BTUUiLCJmcmFtZVBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1JVTEVfTkFNRSIsImxhYmVsUGxhY2Vob2xkZXJSdWxlIiwiTEFCRUxfUlVMRV9OQU1FIiwicHJlbWlzZVBsYWNlaG9sZGVyUnVsZSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwidmFyaWFibGVQbGFjZWhvbGRlclJ1bGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSIsIkVRVUFMSVRZX1JVTEVfTkFNRSIsInByb3BlcnR5UGxhY2Vob2xkZXJSdWxlIiwiUFJPUEVSVFlfUlVMRV9OQU1FIiwianVkZ2VtZW50UGxhY2Vob2xkZXJSdWxlIiwiSlVER0VNRU5UX1JVTEVfTkFNRSIsImdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSIsIkdFTkVSQVRPUl9SVUxFX05BTUUiLCJkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUiLCJERURVQ1RJT05fUlVMRV9OQU1FIiwicGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJyZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwic2lnbmF0dXJlUGxhY2Vob2xkZXJSdWxlIiwiU0lHTkFUVVJFX1JVTEVfTkFNRSIsImNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJBSU5UX1JVTEVfTkFNRSIsImNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT01CSU5BVE9SX1JVTEVfTkFNRSIsImNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsImh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUiLCJIWVBPVEhFU0lTX1JVTEVfTkFNRSIsInR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1BSRUZJWF9SVUxFX05BTUUiLCJzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09OU1RSVUNUT1JfUlVMRV9OQU1FIiwiZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUiLCJFUVVJVkFMRU5DRV9SVUxFX05BTUUiLCJtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwidHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsImRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsImltcGxpY2l0QXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSIsIklNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiLCJpbnN0YW50aWF0ZSIsInBsYWNlaG9sZGVyUnVsZSIsIm5vZGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwic2V0VG9rZW5zIiwic3RhcnRSdWxlIiwicGFyc2UiLCJub25UZXJtaW5hbE5vZGUiLCJzb21lQ2hpbGROb2RlIiwiY2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtSWdCQTtlQUFBQTs7UUF4Q0FDO2VBQUFBOztRQTRDQUM7ZUFBQUE7O1FBSUFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQWhDQUM7ZUFBQUE7O1FBMEJBQztlQUFBQTs7UUFoQ0FDO2VBQUFBOztRQThDQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBOEJBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBCQUM7ZUFBQUE7O1FBOUNBQztlQUFBQTs7UUFnRkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBb0NBQztlQUFBQTs7UUExQkFDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBckRBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXNDQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQXhCQUM7ZUFBQUE7OztxQkEvR2lCOzJCQW9DZ0I7QUFFakQsTUFBTUMsc0JBQXNCQyxJQUFBQSxxQkFBZ0IsRUFBQ0MseUJBQWMsR0FDckRDLHNCQUFzQkYsSUFBQUEscUJBQWdCLEVBQUNHLHlCQUFjLEdBQ3JEQyx1QkFBdUJKLElBQUFBLHFCQUFnQixFQUFDSywwQkFBZSxHQUN2REMsdUJBQXVCTixJQUFBQSxxQkFBZ0IsRUFBQ08sMEJBQWUsR0FDdkRDLHlCQUF5QlIsSUFBQUEscUJBQWdCLEVBQUNTLDRCQUFpQixHQUMzREMsMEJBQTBCVixJQUFBQSxxQkFBZ0IsRUFBQ1csNkJBQWtCLEdBQzdEQywwQkFBMEJaLElBQUFBLHFCQUFnQixFQUFDYSw2QkFBa0IsR0FDN0RD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
|
package/lib/process/verify.js
CHANGED
|
@@ -12,7 +12,7 @@ const _occamlanguages = require("occam-languages");
|
|
|
12
12
|
const _occamquery = require("occam-query");
|
|
13
13
|
const _element = require("../utilities/element");
|
|
14
14
|
const { nodeQuery } = _occamquery.queryUtilities;
|
|
15
|
-
const errorNodeQuery = nodeQuery("/error"),
|
|
15
|
+
const errorNodeQuery = nodeQuery("/error"), procedureNodeQuery = nodeQuery("/procedure");
|
|
16
16
|
class TopLevelPass extends _occamlanguages.SimplePass {
|
|
17
17
|
static maps = [
|
|
18
18
|
{
|
|
@@ -27,11 +27,11 @@ class TopLevelPass extends _occamlanguages.SimplePass {
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
nodeQuery:
|
|
31
|
-
run: (
|
|
30
|
+
nodeQuery: procedureNodeQuery,
|
|
31
|
+
run: (procedureNode, context)=>{
|
|
32
32
|
let success = false;
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
33
|
+
const procedure = (0, _element.procedureFromProcedureNode)(procedureNode, context), procedureVerifies = procedure.verify(context);
|
|
34
|
+
if (procedureVerifies) {
|
|
35
35
|
success = true;
|
|
36
36
|
}
|
|
37
37
|
return success;
|
|
@@ -49,4 +49,4 @@ function verifyFile(fileNode, context) {
|
|
|
49
49
|
return fileVerifies;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgU2ltcGxlUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IGVycm9yRnJvbUVycm9yTm9kZSwgcHJvY2VkdXJlRnJvbVByb2NlZHVyZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIHByb2NlZHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9jZWR1cmVcIik7XG5cbmNsYXNzIFRvcExldmVsUGFzcyBleHRlbmRzIFNpbXBsZVBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGVycm9yTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZXJyb3JOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZXJyb3IgPSBlcnJvckZyb21FcnJvck5vZGUoZXJyb3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZXJyb3JWZXJpZmllcyA9IGVycm9yLnZlcmlmeShjb250ZXh0KTtcblxuICAgICAgICBpZiAoZXJyb3JWZXJpZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHByb2NlZHVyZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHByb2NlZHVyZU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBwcm9jZWR1cmUgPSBwcm9jZWR1cmVGcm9tUHJvY2VkdXJlTm9kZShwcm9jZWR1cmVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgcHJvY2VkdXJlVmVyaWZpZXMgPSBwcm9jZWR1cmUudmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9jZWR1cmVWZXJpZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCB0b3BMZXZlbFBhc3MgPSBuZXcgVG9wTGV2ZWxQYXNzKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlGaWxlKGZpbGVOb2RlLCBjb250ZXh0KSB7XG4gIGxldCBmaWxlVmVyaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlID0gZmlsZU5vZGUsIC8vL1xuICAgICAgICBzdWNjZXNzID0gdG9wTGV2ZWxQYXNzLnJ1bihub2RlLCBjb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIGZpbGVWZXJpZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gZmlsZVZlcmlmaWVzO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUZpbGUiLCJub2RlUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsImVycm9yTm9kZVF1ZXJ5IiwicHJvY2VkdXJlTm9kZVF1ZXJ5IiwiVG9wTGV2ZWxQYXNzIiwiU2ltcGxlUGFzcyIsIm1hcHMiLCJydW4iLCJlcnJvck5vZGUiLCJjb250ZXh0Iiwic3VjY2VzcyIsImVycm9yIiwiZXJyb3JGcm9tRXJyb3JOb2RlIiwiZXJyb3JWZXJpZmllcyIsInZlcmlmeSIsInByb2NlZHVyZU5vZGUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVGcm9tUHJvY2VkdXJlTm9kZSIsInByb2NlZHVyZVZlcmlmaWVzIiwidG9wTGV2ZWxQYXNzIiwiZmlsZU5vZGUiLCJmaWxlVmVyaWZpZXMiLCJub2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpRGdCQTs7O2VBQUFBOzs7Z0NBL0NXOzRCQUNJO3lCQUVnQztBQUUvRCxNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHQywwQkFBYztBQUVwQyxNQUFNQyxpQkFBaUJGLFVBQVUsV0FDM0JHLHFCQUFxQkgsVUFBVTtBQUVyQyxNQUFNSSxxQkFBcUJDLDBCQUFVO0lBQ25DLE9BQU9DLE9BQU87UUFDWjtZQUNFTixXQUFXRTtZQUNYSyxLQUFLLENBQUNDLFdBQVdDO2dCQUNmLElBQUlDLFVBQVU7Z0JBRWQsTUFBTUMsUUFBUUMsSUFBQUEsMkJBQWtCLEVBQUNKLFdBQVdDLFVBQ3RDSSxnQkFBZ0JGLE1BQU1HLE1BQU0sQ0FBQ0w7Z0JBRW5DLElBQUlJLGVBQWU7b0JBQ2pCSCxVQUFVO2dCQUNaO2dCQUVBLE9BQU9BO1lBQ1Q7UUFDRjtRQUNBO1lBQ0VWLFdBQVdHO1lBQ1hJLEtBQUssQ0FBQ1EsZUFBZU47Z0JBQ25CLElBQUlDLFVBQVU7Z0JBRWQsTUFBTU0sWUFBWUMsSUFBQUEsbUNBQTBCLEVBQUNGLGVBQWVOLFVBQ3REUyxvQkFBb0JGLFVBQVVGLE1BQU0sQ0FBQ0w7Z0JBRTNDLElBQUlTLG1CQUFtQjtvQkFDckJSLFVBQVU7Z0JBQ1o7Z0JBRUEsT0FBT0E7WUFDVDtRQUNGO0tBQ0QsQ0FBQztBQUNKO0FBRUEsTUFBTVMsZUFBZSxJQUFJZjtBQUVsQixTQUFTTCxXQUFXcUIsUUFBUSxFQUFFWCxPQUFPO0lBQzFDLElBQUlZLGVBQWU7SUFFbkIsTUFBTUMsT0FBT0YsVUFDUFYsVUFBVVMsYUFBYVosR0FBRyxDQUFDZSxNQUFNYjtJQUV2QyxJQUFJQyxTQUFTO1FBQ1hXLGVBQWU7SUFDakI7SUFFQSxPQUFPQTtBQUNUIn0=
|
package/lib/ruleNames.js
CHANGED
|
@@ -81,8 +81,8 @@ _export(exports, {
|
|
|
81
81
|
get PROCEDURE_CALL_RULE_NAME () {
|
|
82
82
|
return PROCEDURE_CALL_RULE_NAME;
|
|
83
83
|
},
|
|
84
|
-
get
|
|
85
|
-
return
|
|
84
|
+
get PROCEDURE_RULE_NAME () {
|
|
85
|
+
return PROCEDURE_RULE_NAME;
|
|
86
86
|
},
|
|
87
87
|
get REDUCE_RULE_NAME () {
|
|
88
88
|
return REDUCE_RULE_NAME;
|
|
@@ -99,8 +99,8 @@ _export(exports, {
|
|
|
99
99
|
get SOME_RULE_NAME () {
|
|
100
100
|
return SOME_RULE_NAME;
|
|
101
101
|
},
|
|
102
|
-
get
|
|
103
|
-
return
|
|
102
|
+
get STATEMENT_RULE_NAME () {
|
|
103
|
+
return STATEMENT_RULE_NAME;
|
|
104
104
|
},
|
|
105
105
|
get TERMS_RULE_NAME () {
|
|
106
106
|
return TERMS_RULE_NAME;
|
|
@@ -136,7 +136,6 @@ _export(exports, {
|
|
|
136
136
|
return VARIABLE_RULE_NAME;
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
|
-
const STEP_RULE_NAME = "step";
|
|
140
139
|
const SOME_RULE_NAME = "some";
|
|
141
140
|
const TERM_RULE_NAME = "term";
|
|
142
141
|
const TYPE_RULE_NAME = "type";
|
|
@@ -153,6 +152,8 @@ const VARIABLE_RULE_NAME = "variable";
|
|
|
153
152
|
const NONSENSE_RULE_NAME = "nonsense";
|
|
154
153
|
const DOCUMENT_RULE_NAME = "document";
|
|
155
154
|
const BINDINGS_RULE_NAME = "bindings";
|
|
155
|
+
const STATEMENT_RULE_NAME = "statement";
|
|
156
|
+
const PROCEDURE_RULE_NAME = "procedure";
|
|
156
157
|
const LENGTH_OF_RULE_NAME = "lengthOf";
|
|
157
158
|
const PRIMITIVE_RULE_NAME = "primitive";
|
|
158
159
|
const REFERENCE_RULE_NAME = "reference";
|
|
@@ -177,6 +178,5 @@ const OBJECT_ASSIGNMENT_RULE_NAME = "objectAssignment";
|
|
|
177
178
|
const VARIABLE_ASSIGNMENT_RULE_NAME = "variableAssignment";
|
|
178
179
|
const ANONYMOUS_PROCEDURE_RULE_NAME = "anonymousProcedure";
|
|
179
180
|
const VARIABLE_ASSIGNMENTS_RULE_NAME = "variableAssignments";
|
|
180
|
-
const PROCEDURE_DECLARATION_RULE_NAME = "procedureDeclaration";
|
|
181
181
|
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBTT01FX1JVTEVfTkFNRSA9IFwic29tZVwiO1xuZXhwb3J0IGNvbnN0IFRFUk1fUlVMRV9OQU1FID0gXCJ0ZXJtXCI7XG5leHBvcnQgY29uc3QgVFlQRV9SVUxFX05BTUUgPSBcInR5cGVcIjtcbmV4cG9ydCBjb25zdCBURVJNU19SVUxFX05BTUUgPSBcInRlcm1zXCI7XG5leHBvcnQgY29uc3QgRVZFUllfUlVMRV9OQU1FID0gXCJldmVyeVwiO1xuZXhwb3J0IGNvbnN0IExBQkVMX1JVTEVfTkFNRSA9IFwibGFiZWxcIjtcbmV4cG9ydCBjb25zdCBFUlJPUl9SVUxFX05BTUUgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgVkFMVUVfUlVMRV9OQU1FID0gXCJ2YWx1ZVwiO1xuZXhwb3J0IGNvbnN0IFZBTFVFU19SVUxFX05BTUUgPSBcInZhbHVlc1wiO1xuZXhwb3J0IGNvbnN0IFJFRFVDRV9SVUxFX05BTUUgPSBcInJlZHVjZVwiO1xuZXhwb3J0IGNvbnN0IFRFUk5BUllfUlVMRV9OQU1FID0gXCJ0ZXJuYXJ5XCI7XG5leHBvcnQgY29uc3QgQklORElOR19SVUxFX05BTUUgPSBcImJpbmRpbmdcIjtcbmV4cG9ydCBjb25zdCBWQVJJQUJMRV9SVUxFX05BTUUgPSBcInZhcmlhYmxlXCI7XG5leHBvcnQgY29uc3QgTk9OU0VOU0VfUlVMRV9OQU1FID0gXCJub25zZW5zZVwiO1xuZXhwb3J0IGNvbnN0IERPQ1VNRU5UX1JVTEVfTkFNRSA9IFwiZG9jdW1lbnRcIjtcbmV4cG9ydCBjb25zdCBCSU5ESU5HU19SVUxFX05BTUUgPSBcImJpbmRpbmdzXCI7XG5leHBvcnQgY29uc3QgU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwic3RhdGVtZW50XCI7XG5leHBvcnQgY29uc3QgUFJPQ0VEVVJFX1JVTEVfTkFNRSA9IFwicHJvY2VkdXJlXCI7XG5leHBvcnQgY29uc3QgTEVOR1RIX09GX1JVTEVfTkFNRSA9IFwibGVuZ3RoT2ZcIjtcbmV4cG9ydCBjb25zdCBQUklNSVRJVkVfUlVMRV9OQU1FID0gXCJwcmltaXRpdmVcIjtcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VfUlVMRV9OQU1FID0gXCJyZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBQQVJBTUVURVJfUlVMRV9OQU1FID0gXCJwYXJhbWV0ZXJcIjtcbmV4cG9ydCBjb25zdCBOT0RFX1FVRVJZX1JVTEVfTkFNRSA9IFwibm9kZVF1ZXJ5XCI7XG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTl9SVUxFX05BTUUgPSBcImV4cHJlc3Npb25cIjtcbmV4cG9ydCBjb25zdCBQQVJBTUVURVJTX1JVTEVfTkFNRSA9IFwicGFyYW1ldGVyc1wiO1xuZXhwb3J0IGNvbnN0IFRPX0lOVEVHRVJfUlVMRV9OQU1FID0gXCJ0b0ludGVnZXJcIjtcbmV4cG9ydCBjb25zdCBUUllfSU5URUdFUl9SVUxFX05BTUUgPSBcInRyeUludGVnZXJcIjtcbmV4cG9ydCBjb25zdCBOT0RFU19RVUVSWV9SVUxFX05BTUUgPSBcIm5vZGVzUXVlcnlcIjtcbmV4cG9ydCBjb25zdCBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FID0gXCJyZXR1cm5CbG9ja1wiO1xuZXhwb3J0IGNvbnN0IExPR0lDQUxfVEVSTV9SVUxFX05BTUUgPSBcImxvZ2ljYWxUZXJtXCI7XG5leHBvcnQgY29uc3QgTkVHQVRFRF9URVJNX1JVTEVfTkFNRSA9IFwibmVnYXRlZFRlcm1cIjtcbmV4cG9ydCBjb25zdCBOQU1FRF9CSU5ESU5HX1JVTEVfTkFNRSA9IFwibmFtZWRCaW5kaW5nXCI7XG5leHBvcnQgY29uc3QgTkFNRURfQklORElOR1NfUlVMRV9OQU1FID0gXCJuYW1lZEJpbmRpbmdzXCI7XG5leHBvcnQgY29uc3QgQlJBQ0tFVEVEX1RFUk1fUlVMRV9OQU1FID0gXCJicmFja2V0ZWRUZXJtXCI7XG5leHBvcnQgY29uc3QgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FID0gXCJwcm9jZWR1cmVDYWxsXCI7XG5leHBvcnQgY29uc3QgQ09NUEFSSVNPTl9URVJNX1JVTEVfTkFNRSA9IFwiY29tcGFyaXNvblRlcm1cIjtcbmV4cG9ydCBjb25zdCBSRVRVUk5fU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwicmV0dXJuU3RhdGVtZW50XCI7XG5leHBvcnQgY29uc3QgQVJSQVlfQVNTSUdOTUVOVF9SVUxFX05BTUUgPSBcImFycmF5QXNzaWdubWVudFwiO1xuZXhwb3J0IGNvbnN0IE9CSkVDVF9BU1NJR05NRU5UX1JVTEVfTkFNRSA9IFwib2JqZWN0QXNzaWdubWVudFwiO1xuZXhwb3J0IGNvbnN0IFZBUklBQkxFX0FTU0lHTk1FTlRfUlVMRV9OQU1FID0gXCJ2YXJpYWJsZUFzc2lnbm1lbnRcIjtcbmV4cG9ydCBjb25zdCBBTk9OWU1PVVNfUFJPQ0VEVVJFX1JVTEVfTkFNRSA9IFwiYW5vbnltb3VzUHJvY2VkdXJlXCI7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfQVNTSUdOTUVOVFNfUlVMRV9OQU1FID0gXCJ2YXJpYWJsZUFzc2lnbm1lbnRzXCI7XG5cbiJdLCJuYW1lcyI6WyJBTk9OWU1PVVNfUFJPQ0VEVVJFX1JVTEVfTkFNRSIsIkFSUkFZX0FTU0lHTk1FTlRfUlVMRV9OQU1FIiwiQklORElOR1NfUlVMRV9OQU1FIiwiQklORElOR19SVUxFX05BTUUiLCJCUkFDS0VURURfVEVSTV9SVUxFX05BTUUiLCJDT01QQVJJU09OX1RFUk1fUlVMRV9OQU1FIiwiRE9DVU1FTlRfUlVMRV9OQU1FIiwiRVJST1JfUlVMRV9OQU1FIiwiRVZFUllfUlVMRV9OQU1FIiwiRVhQUkVTU0lPTl9SVUxFX05BTUUiLCJMQUJFTF9SVUxFX05BTUUiLCJMRU5HVEhfT0ZfUlVMRV9OQU1FIiwiTE9HSUNBTF9URVJNX1JVTEVfTkFNRSIsIk5BTUVEX0JJTkRJTkdTX1JVTEVfTkFNRSIsIk5BTUVEX0JJTkRJTkdfUlVMRV9OQU1FIiwiTkVHQVRFRF9URVJNX1JVTEVfTkFNRSIsIk5PREVTX1FVRVJZX1JVTEVfTkFNRSIsIk5PREVfUVVFUllfUlVMRV9OQU1FIiwiTk9OU0VOU0VfUlVMRV9OQU1FIiwiT0JKRUNUX0FTU0lHTk1FTlRfUlVMRV9OQU1FIiwiUEFSQU1FVEVSU19SVUxFX05BTUUiLCJQQVJBTUVURVJfUlVMRV9OQU1FIiwiUFJJTUlUSVZFX1JVTEVfTkFNRSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsIlBST0NFRFVSRV9SVUxFX05BTUUiLCJSRURVQ0VfUlVMRV9OQU1FIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsIlJFVFVSTl9CTE9DS19SVUxFX05BTUUiLCJSRVRVUk5fU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlNPTUVfUlVMRV9OQU1FIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlRFUk1TX1JVTEVfTkFNRSIsIlRFUk1fUlVMRV9OQU1FIiwiVEVSTkFSWV9SVUxFX05BTUUiLCJUT19JTlRFR0VSX1JVTEVfTkFNRSIsIlRSWV9JTlRFR0VSX1JVTEVfTkFNRSIsIlRZUEVfUlVMRV9OQU1FIiwiVkFMVUVTX1JVTEVfTkFNRSIsIlZBTFVFX1JVTEVfTkFNRSIsIlZBUklBQkxFX0FTU0lHTk1FTlRTX1JVTEVfTkFNRSIsIlZBUklBQkxFX0FTU0lHTk1FTlRfUlVMRV9OQU1FIiwiVkFSSUFCTEVfUlVMRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEwQ2FBO2VBQUFBOztRQUhBQztlQUFBQTs7UUF0QkFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFzQkFDO2VBQUFBOztRQUVBQztlQUFBQTs7UUFyQkFDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFGQUM7ZUFBQUE7O1FBbUJBQztlQUFBQTs7UUFsQkFDO2VBQUFBOztRQWFBQztlQUFBQTs7UUFXQUM7ZUFBQUE7O1FBR0FDO2VBQUFBOztRQURBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBSEFDO2VBQUFBOztRQUxBQztlQUFBQTs7UUFUQUM7ZUFBQUE7O1FBeUJBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBSEFDO2VBQUFBOztRQUZBQztlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBakJBQztlQUFBQTs7UUFSQUM7ZUFBQUE7O1FBV0FDO2VBQUFBOztRQVFBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUFnQkFDO2VBQUFBOztRQWJBQztlQUFBQTs7UUFGQUM7ZUFBQUE7O1FBU0FDO2VBQUFBOztRQWVBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFNQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQWtDQUM7ZUFBQUE7O1FBRkFDO2VBQUFBOztRQTNCQUM7ZUFBQUE7OztBQVpOLE1BQU1aLGlCQUFpQjtBQUN2QixNQUFNRyxpQkFBaUI7QUFDdkIsTUFBTUksaUJBQWlCO0FBQ3ZCLE1BQU1MLGtCQUFrQjtBQUN4QixNQUFNdkIsa0JBQWtCO0FBQ3hCLE1BQU1FLGtCQUFrQjtBQUN4QixNQUFNSCxrQkFBa0I7QUFDeEIsTUFBTStCLGtCQUFrQjtBQUN4QixNQUFNRCxtQkFBbUI7QUFDekIsTUFBTVosbUJBQW1CO0FBQ3pCLE1BQU1RLG9CQUFvQjtBQUMxQixNQUFNOUIsb0JBQW9CO0FBQzFCLE1BQU1zQyxxQkFBcUI7QUFDM0IsTUFBTXZCLHFCQUFxQjtBQUMzQixNQUFNWixxQkFBcUI7QUFDM0IsTUFBTUoscUJBQXFCO0FBQzNCLE1BQU00QixzQkFBc0I7QUFDNUIsTUFBTU4sc0JBQXNCO0FBQzVCLE1BQU1iLHNCQUFzQjtBQUM1QixNQUFNVyxzQkFBc0I7QUFDNUIsTUFBTUksc0JBQXNCO0FBQzVCLE1BQU1MLHNCQUFzQjtBQUM1QixNQUFNSix1QkFBdUI7QUFDN0IsTUFBTVIsdUJBQXVCO0FBQzdCLE1BQU1XLHVCQUF1QjtBQUM3QixNQUFNYyx1QkFBdUI7QUFDN0IsTUFBTUMsd0JBQXdCO0FBQzlCLE1BQU1uQix3QkFBd0I7QUFDOUIsTUFBTVcseUJBQXlCO0FBQy9CLE1BQU1mLHlCQUF5QjtBQUMvQixNQUFNRyx5QkFBeUI7QUFDL0IsTUFBTUQsMEJBQTBCO0FBQ2hDLE1BQU1ELDJCQUEyQjtBQUNqQyxNQUFNVCwyQkFBMkI7QUFDakMsTUFBTW1CLDJCQUEyQjtBQUNqQyxNQUFNbEIsNEJBQTRCO0FBQ2xDLE1BQU11Qiw2QkFBNkI7QUFDbkMsTUFBTTNCLDZCQUE2QjtBQUNuQyxNQUFNa0IsOEJBQThCO0FBQ3BDLE1BQU1xQixnQ0FBZ0M7QUFDdEMsTUFBTXhDLGdDQUFnQztBQUN0QyxNQUFNdUMsaUNBQWlDIn0=
|
package/lib/utilities/context.js
CHANGED
|
@@ -14,9 +14,18 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
get free () {
|
|
16
16
|
return free;
|
|
17
|
+
},
|
|
18
|
+
get instantiate () {
|
|
19
|
+
return instantiate;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
const _block = /*#__PURE__*/ _interop_require_wildcard(require("../context/block"));
|
|
23
|
+
const _literal = /*#__PURE__*/ _interop_require_default(require("../context/literal"));
|
|
24
|
+
function _interop_require_default(obj) {
|
|
25
|
+
return obj && obj.__esModule ? obj : {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
20
29
|
function _getRequireWildcardCache(nodeInterop) {
|
|
21
30
|
if (typeof WeakMap !== "function") return null;
|
|
22
31
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -67,6 +76,11 @@ function confine(innerFunction, variables, context) {
|
|
|
67
76
|
context = blockContext; ///
|
|
68
77
|
return innerFunction(context);
|
|
69
78
|
}
|
|
79
|
+
function instantiate(innerFunction, context) {
|
|
80
|
+
const literalContext = _literal.default.fromNothing(context);
|
|
81
|
+
context = literalContext; ///
|
|
82
|
+
return innerFunction(context);
|
|
83
|
+
}
|
|
70
84
|
function freeContext(context) {
|
|
71
85
|
let contextBlockContext = (0, _block.isContextBlockContext)(context);
|
|
72
86
|
while(contextBlockContext){
|
|
@@ -76,4 +90,4 @@ function freeContext(context) {
|
|
|
76
90
|
return context;
|
|
77
91
|
}
|
|
78
92
|
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJsb2NrQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ibG9ja1wiO1xuaW1wb3J0IExpdGVyYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xpdGVyYWxcIjtcblxuaW1wb3J0IHsgaXNDb250ZXh0QmxvY2tDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvYmxvY2tcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyZWUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb250ZXh0ID0gZnJlZUNvbnRleHQoY29udGV4dCk7IC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmluZShpbm5lckZ1bmN0aW9uLCB2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgYmxvY2tDb250ZXh0ID0gQmxvY2tDb250ZXh0LmZyb21WYXJpYWJsZXModmFyaWFibGVzLCBjb250ZXh0KTtcblxuICBjb250ZXh0ID0gYmxvY2tDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxpdGVyYWxDb250ZXh0ID0gTGl0ZXJhbENvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGxpdGVyYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGZyZWVDb250ZXh0KGNvbnRleHQpIHtcbiAgbGV0IGNvbnRleHRCbG9ja0NvbnRleHQgPSBpc0NvbnRleHRCbG9ja0NvbnRleHQoY29udGV4dCk7XG5cbiAgd2hpbGUgKGNvbnRleHRCbG9ja0NvbnRleHQpIHtcbiAgICBjb250ZXh0ID0gY29udGV4dC5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0QmxvY2tDb250ZXh0ID0gaXNDb250ZXh0QmxvY2tDb250ZXh0KGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiY29uZmluZSIsImZyZWUiLCJpbnN0YW50aWF0ZSIsImlubmVyRnVuY3Rpb24iLCJjb250ZXh0IiwiZnJlZUNvbnRleHQiLCJ2YXJpYWJsZXMiLCJibG9ja0NvbnRleHQiLCJCbG9ja0NvbnRleHQiLCJmcm9tVmFyaWFibGVzIiwibGl0ZXJhbENvbnRleHQiLCJMaXRlcmFsQ29udGV4dCIsImZyb21Ob3RoaW5nIiwiY29udGV4dEJsb2NrQ29udGV4dCIsImlzQ29udGV4dEJsb2NrQ29udGV4dCIsImdldENvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWFnQkE7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQWNBQztlQUFBQTs7OytEQW5CUztnRUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJcEIsU0FBU0QsS0FBS0UsYUFBYSxFQUFFQyxPQUFPO0lBQ3pDQSxVQUFVQyxZQUFZRCxVQUFVLEdBQUc7SUFFbkMsT0FBT0QsY0FBY0M7QUFDdkI7QUFFTyxTQUFTSixRQUFRRyxhQUFhLEVBQUVHLFNBQVMsRUFBRUYsT0FBTztJQUN2RCxNQUFNRyxlQUFlQyxjQUFZLENBQUNDLGFBQWEsQ0FBQ0gsV0FBV0Y7SUFFM0RBLFVBQVVHLGNBQWUsR0FBRztJQUU1QixPQUFPSixjQUFjQztBQUN2QjtBQUVPLFNBQVNGLFlBQVlDLGFBQWEsRUFBRUMsT0FBTztJQUNoRCxNQUFNTSxpQkFBaUJDLGdCQUFjLENBQUNDLFdBQVcsQ0FBQ1I7SUFFbERBLFVBQVVNLGdCQUFpQixHQUFHO0lBRTlCLE9BQU9QLGNBQWNDO0FBQ3ZCO0FBRUEsU0FBU0MsWUFBWUQsT0FBTztJQUMxQixJQUFJUyxzQkFBc0JDLElBQUFBLDRCQUFxQixFQUFDVjtJQUVoRCxNQUFPUyxvQkFBcUI7UUFDMUJULFVBQVVBLFFBQVFXLFVBQVU7UUFFNUJGLHNCQUFzQkMsSUFBQUEsNEJBQXFCLEVBQUNWO0lBQzlDO0lBRUEsT0FBT0E7QUFDVCJ9
|