occam-nominal 1.0.550 → 1.0.552
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/utilities/json.js +3 -13
- package/package.json +1 -1
- package/src/utilities/json.js +2 -12
package/lib/utilities/json.js
CHANGED
|
@@ -183,9 +183,6 @@ _export(exports, {
|
|
|
183
183
|
get signatureToSignatureJSON () {
|
|
184
184
|
return signatureToSignatureJSON;
|
|
185
185
|
},
|
|
186
|
-
get signaturesToSignaturesJSON () {
|
|
187
|
-
return signaturesToSignaturesJSON;
|
|
188
|
-
},
|
|
189
186
|
get statementsFromJSON () {
|
|
190
187
|
return statementsFromJSON;
|
|
191
188
|
},
|
|
@@ -450,9 +447,9 @@ function statementsFromJSON(json, context) {
|
|
|
450
447
|
}
|
|
451
448
|
function assertionsFromJSON(json, context) {
|
|
452
449
|
let { assertions } = json;
|
|
453
|
-
const { TypeAssertion, SchemaAssertion, DefinedAssertion, PropertyAssertion, SubproofAssertion, ContainedAssertion,
|
|
450
|
+
const { TypeAssertion, SchemaAssertion, DefinedAssertion, PropertyAssertion, SubproofAssertion, ContainedAssertion, SignatureAssertion } = _elements.default, assertionsJSON = assertions; ///
|
|
454
451
|
assertions = assertionsJSON.map((assertionJSON)=>{
|
|
455
|
-
const json = assertionJSON, assertion = TypeAssertion.fromJSON(json, context) || SchemaAssertion.fromJSON(json, context) || DefinedAssertion.fromJSON(json, context) || PropertyAssertion.fromJSON(json, context) || SubproofAssertion.fromJSON(json, context) || ContainedAssertion.fromJSON(json, context) ||
|
|
452
|
+
const json = assertionJSON, assertion = TypeAssertion.fromJSON(json, context) || SchemaAssertion.fromJSON(json, context) || DefinedAssertion.fromJSON(json, context) || PropertyAssertion.fromJSON(json, context) || SubproofAssertion.fromJSON(json, context) || ContainedAssertion.fromJSON(json, context) || SignatureAssertion.fromJSON(json, context);
|
|
456
453
|
return assertion;
|
|
457
454
|
});
|
|
458
455
|
return assertions;
|
|
@@ -725,13 +722,6 @@ function statementsToStatementsJSON(statements) {
|
|
|
725
722
|
});
|
|
726
723
|
return statementsJSON;
|
|
727
724
|
}
|
|
728
|
-
function signaturesToSignaturesJSON(signatures) {
|
|
729
|
-
const signaturesJSON = signatures.map((signature)=>{
|
|
730
|
-
const signatureJSON = signature.toJSON();
|
|
731
|
-
return signatureJSON;
|
|
732
|
-
});
|
|
733
|
-
return signaturesJSON;
|
|
734
|
-
}
|
|
735
725
|
function assertionsToAssertionsJSON(assertions) {
|
|
736
726
|
const assertionsJSON = assertions.map((assertion)=>{
|
|
737
727
|
const assertionJSON = assertion.toJSON();
|
|
@@ -839,4 +829,4 @@ function findMetaTypeByName(name, context) {
|
|
|
839
829
|
return metaType;
|
|
840
830
|
}
|
|
841
831
|
|
|
842
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IE1uZW1pY0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbW5lbWljXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAganNvbiA9IHR5cGU7ICAvLy9cblxuICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgIG5hbWUgPSBzdHJpbmc7ICAvLy9cblxuICAgIHR5cGUgPSBmaW5kVHlwZUJ5TmFtZShuYW1lLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGxhYmVsIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTGFiZWwgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsYWJlbEpTT04gPSBsYWJlbDsgIC8vL1xuXG4gIGpzb24gPSBsYWJlbEpTT047IC8vL1xuXG4gIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGxhYmVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YVR5cGVGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IG1ldGFUeXBlIH0gPSBqc29uO1xuXG4gIGlmIChtZXRhVHlwZSAhPT0gbnVsbCkge1xuICAgIGpzb24gPSBtZXRhVHlwZTsgIC8vL1xuXG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbmFtZSA9IHN0cmluZzsgIC8vL1xuXG4gICAgbWV0YVR5cGUgPSBmaW5kTWV0YVR5cGVCeU5hbWUobmFtZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gbWV0YVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWR1Y3Rpb25Gcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGRlZHVjdGlvbiB9ID0ganNvbjtcblxuICBjb25zdCB7IERlZHVjdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIGRlZHVjdGlvbkpTT04gPSBkZWR1Y3Rpb247ICAvLy9cblxuICBqc29uID0gZGVkdWN0aW9uSlNPTjsgIC8vL1xuXG4gIGRlZHVjdGlvbiA9IERlZHVjdGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICByZXR1cm4gZGVkdWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBzaWduYXR1cmUgPSBudWxsIH0gPSBqc29uO1xuXG4gIGlmIChzaWduYXR1cmUgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IFNpZ25hdHVyZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgc2lnbmF0dXJlSlNPTiA9IHNpZ25hdHVyZTsgIC8vL1xuXG4gICAganNvbiA9IHNpZ25hdHVyZUpTT047IC8vL1xuXG4gICAgc2lnbmF0dXJlID0gU2lnbmF0dXJlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmNsdXNpb25Gcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25jbHVzaW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAganNvbiA9IGNvbmNsdXNpb25KU09OOyAgLy8vXG5cbiAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbmNsdXNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aXNpb25hbEZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcm92aXNpb25hbCB9ID0ganNvbjtcblxuICByZXR1cm4gcHJvdmlzaW9uYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtbmVtaWNDb250ZXh0RnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBjb25zdCByZWxlYXNlQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICh7IGNvbnRleHQgfSA9IGpzb24pO1xuXG4gIGpzb24gPSBjb250ZXh0OyAvLy9cblxuICBjb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7IC8vL1xuXG4gIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBNbmVtaWNDb250ZXh0LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gIHJldHVybiBtbmVtaWNDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNGcm9tSlNPTihqc29uLCB0eXBlcywgY29udGV4dCkge1xuICBjb25zdCB7IHR5cGVzOiB0eXBlc0pTT04gfSA9IGpzb247XG5cbiAgY29uc3QgeyBUeXBlIH0gPSBlbGVtZW50cztcblxuICB0eXBlc0pTT04uZm9yRWFjaCgodHlwZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHR5cGVzLnB1c2godHlwZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHRlcm1zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVGVybSB9ID0gZWxlbWVudHMsXG4gICAgdGVybXNKU09OID0gdGVybXM7IC8vL1xuXG4gIHRlcm1zID0gdGVybXNKU09OLm1hcCgodGVybUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdGVybUpTT04sICAvLy9cbiAgICAgIHRlcm0gPSBUZXJtLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH0pO1xuXG4gIHJldHVybiB0ZXJtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBsaW5rcyB9ID0ganNvbjtcblxuICBjb25zdCB7IExpbmsgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsaW5rc0pTT04gPSBsaW5rczsgLy8vXG5cbiAgbGlua3MgPSBsaW5rc0pTT04ubWFwKChsaW5rSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBsaW5rSlNPTiwgIC8vL1xuICAgICAgICAgIGxpbmsgPSBMaW5rLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGxpbms7XG4gIH0pO1xuXG4gIHJldHVybiBsaW5rcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBydWxlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFJ1bGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBydWxlc0pTT04gPSBydWxlczsgLy8vXG5cbiAgcnVsZXMgPSBydWxlc0pTT04ubWFwKChydWxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBydWxlSlNPTiwgIC8vL1xuICAgICAgICAgIHJ1bGUgPSBSdWxlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH0pO1xuXG4gIHJldHVybiBydWxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyYW1lc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgZnJhbWVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgRnJhbWUgfSA9IGVsZW1lbnRzLFxuICAgIGZyYW1lc0pTT04gPSBmcmFtZXM7IC8vL1xuXG4gIGZyYW1lcyA9IGZyYW1lc0pTT04ubWFwKChmcmFtZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZnJhbWVKU09OLCAgLy8vXG4gICAgICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZyYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTGFiZWwgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBsYWJlbEpTT04sIC8vL1xuICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH0pO1xuXG4gIHJldHVybiBsYWJlbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGF4aW9tcyB9ID0ganNvbjtcblxuICBjb25zdCB7IEF4aW9tIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYXhpb21zSlNPTiA9IGF4aW9tczsgLy8vXG5cbiAgYXhpb21zID0gYXhpb21zSlNPTi5tYXAoKGF4aW9tSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBheGlvbUpTT04sICAvLy9cbiAgICAgICAgICBheGlvbSA9IEF4aW9tLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9KTtcblxuICByZXR1cm4gYXhpb21zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NoZW1hc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc2NoZW1hcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFNjaGVtYSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHNjaGVtYXNKU09OID0gc2NoZW1hczsgLy8vXG5cbiAgc2NoZW1hcyA9IHNjaGVtYXNKU09OLm1hcCgoc2NoZW1hSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzY2hlbWFKU09OLCAgLy8vXG4gICAgICBzY2hlbWEgPSBTY2hlbWEuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9KTtcblxuICByZXR1cm4gc2NoZW1hcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZW1pc2VzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBwcmVtaXNlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFByZW1pc2UgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLm1hcCgocHJlbWlzZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gcHJlbWlzZUpTT04sIC8vL1xuICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRoZW9yZW1zRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0aGVvcmVtcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFRoZW9yZW0gfSA9IGVsZW1lbnRzLFxuICAgICAgICB0aGVvcmVtc0pTT04gPSB0aGVvcmVtczsgLy8vXG5cbiAgdGhlb3JlbXMgPSB0aGVvcmVtc0pTT04ubWFwKCh0aGVvcmVtSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB0aGVvcmVtSlNPTiwgIC8vL1xuICAgICAgICAgIHRoZW9yZW0gPSBUaGVvcmVtLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRoZW9yZW07XG4gIH0pO1xuXG4gIHJldHVybiB0aGVvcmVtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsaXRpZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGVxdWFsaXRpZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgZXF1YWxpdGllc0pTT04gPSBlcXVhbGl0aWVzOyAvLy9cblxuICBlcXVhbGl0aWVzID0gZXF1YWxpdGllc0pTT04ubWFwKChlcXVhbGl0eUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZXF1YWxpdHlKU09OLCAgLy8vXG4gICAgICBlcXVhbGl0eSA9IEVxdWFsaXR5LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5O1xuICB9KTtcblxuICByZXR1cm4gZXF1YWxpdGllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHByb3BlcnRpZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBQcm9wZXJ0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllczsgLy8vXG5cbiAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLm1hcCgocHJvcGVydHlKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHByb3BlcnR5SlNPTiwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5ID0gUHJvcGVydHkuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4TmFtZUZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcmVmaXhOYW1lIH0gPSBqc29uO1xuXG4gIHJldHVybiBwcmVmaXhOYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBzdXBlclR5cGVzOiBzdXBlclR5cGVzSlNPTiB9ID0ganNvbjtcblxuICBjb25zdCBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0pTT04ubWFwKChzdXBlclR5cGVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyVHlwZUpTT04sICAvLy9cbiAgICAgIHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgbmFtZSA9IHN0cmluZywgIC8vL1xuICAgICAgdHlwZSA9IGZpbmRUeXBlQnlOYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgc3VwZXJUeXBlID0gdHlwZTsgLy8vXG5cbiAgICByZXR1cm4gc3VwZXJUeXBlO1xuICB9KTtcblxuICByZXR1cm4gc3VwZXJUeXBlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGh5cG90aGVzZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBIeXBvdGhlc2lzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgaHlwb3RoZXNlc0pTT04gPSBoeXBvdGhlc2VzOyAgLy8vXG5cbiAgaHlwb3RoZXNlcyA9IGh5cG90aGVzZXNKU09OLm1hcCgoaHlwb3RoZXNpc0pTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gaHlwb3RoZXNpc0pTT04sIC8vL1xuICAgICAgICAgIGh5cG90aGVzaXMgPSBIeXBvdGhlc2lzLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh5cG90aGVzaXM7XG4gIH0pO1xuXG4gIHJldHVybiBoeXBvdGhlc2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVtZW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc3RhdGVtZW50cyB9ID0ganNvbjtcblxuICBjb25zdCB7IFN0YXRlbWVudCB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN0YXRlbWVudHNKU09OID0gc3RhdGVtZW50czsgLy8vXG5cbiAgc3RhdGVtZW50cyA9IHN0YXRlbWVudHNKU09OLm1hcCgoc3RhdGVtZW50SlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRpb25zRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBhc3NlcnRpb25zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVHlwZUFzc2VydGlvbiwgU2NoZW1hQXNzZXJ0aW9uLCBEZWZpbmVkQXNzZXJ0aW9uLCBQcm9wZXJ0eUFzc2VydGlvbiwgU3VicHJvb2ZBc3NlcnRpb24sIENvbnRhaW5lZEFzc2VydGlvbiwgU2lnbmF0dXJlQXNzZXJ0aW5vIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYXNzZXJ0aW9uc0pTT04gPSBhc3NlcnRpb25zOyAvLy9cblxuICBhc3NlcnRpb25zID0gYXNzZXJ0aW9uc0pTT04ubWFwKChhc3NlcnRpb25KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGFzc2VydGlvbkpTT04sICAvLy9cbiAgICAgICAgICBhc3NlcnRpb24gPSBUeXBlQXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgU2NoZW1hQXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgRGVmaW5lZEFzc2VydGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgIHx8IFByb3BlcnR5QXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgU3VicHJvb2ZBc3NlcnRpb24uZnJvbUpTT04oanNvbiwgY29udGV4dClcbiAgICAgICAgICAgICAgICAgICB8fCBDb250YWluZWRBc3NlcnRpb24uZnJvbUpTT04oanNvbiwgY29udGV4dClcbiAgICAgICAgICAgICAgICAgICB8fCBTaWduYXR1cmVBc3NlcnRpbm8uZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9uO1xuICB9KTtcblxuICByZXR1cm4gYXNzZXJ0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRvcnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGdlbmVyYXRvcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBHZW5lcmF0b3IgfSA9IGVsZW1lbnRzLFxuICAgICAgICBnZW5lcmF0b3JzSlNPTiA9IGdlbmVyYXRvcnM7IC8vL1xuXG4gIGdlbmVyYXRvcnMgPSBnZW5lcmF0b3JzSlNPTi5tYXAoKGdlbmVyYXRvckpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZ2VuZXJhdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGdlbmVyYXRvciA9IEdlbmVyYXRvci5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBnZW5lcmF0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBnZW5lcmF0b3JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uamVjdHVyZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbmplY3R1cmVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGNvbmplY3R1cmVzSlNPTiA9IGNvbmplY3R1cmVzOyAvLy9cblxuICBjb25qZWN0dXJlcyA9IGNvbmplY3R1cmVzSlNPTi5tYXAoKGNvbmplY3R1cmVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbmplY3R1cmVKU09OLCAgLy8vXG4gICAgICAgICAgY29uamVjdHVyZSA9IENvbmplY3R1cmUuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uamVjdHVyZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmplY3R1cmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbWJpbmF0b3JzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29tYmluYXRvciB9ID0gZWxlbWVudHMsXG4gICAgICAgIGNvbWJpbmF0b3JzSlNPTiA9IGNvbWJpbmF0b3JzOyAvLy9cblxuICBjb21iaW5hdG9ycyA9IGNvbWJpbmF0b3JzSlNPTi5tYXAoKGNvbWJpbmF0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbWJpbmF0b3JKU09OLCAgLy8vXG4gICAgICAgICAgY29tYmluYXRvciA9IENvbWJpbmF0b3IuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbWJpbmF0b3JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzdW1wdGlvbnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGFzc3VtcHRpb25zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQXNzdW1wdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgYXNzdW1wdGlvbnNKU09OID0gYXNzdW1wdGlvbnM7IC8vL1xuXG4gIGFzc3VtcHRpb25zID0gYXNzdW1wdGlvbnNKU09OLm1hcCgoYXNzdW1wdGlvbkpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gYXNzdW1wdGlvbkpTT04sICAvLy9cbiAgICAgICAgICBhc3N1bXB0aW9uID0gQXNzdW1wdGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uO1xuICB9KTtcblxuICByZXR1cm4gYXNzdW1wdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJhaW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgY29uc3RyYWludHMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25zdHJhaW50IH0gPSBlbGVtZW50cyxcbiAgICBjb25zdHJhaW50c0pTT04gPSBjb25zdHJhaW50czsgLy8vXG5cbiAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0pTT04ubWFwKChjb25zdHJhaW50SlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBjb25zdHJhaW50SlNPTiwgIC8vL1xuICAgICAgY29uc3RyYWludCA9IENvbnN0cmFpbnQuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RyYWludDtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cmFpbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVByZWZpeGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0eXBlUHJlZml4ZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBUeXBlUHJlZml4IH0gPSBlbGVtZW50cyxcbiAgICAgICAgdHlwZVByZWZpeGVzSlNPTiA9IHR5cGVQcmVmaXhlczsgLy8vXG5cbiAgdHlwZVByZWZpeGVzID0gdHlwZVByZWZpeGVzSlNPTi5tYXAoKHR5cGVQcmVmaXhKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHR5cGVQcmVmaXhKU09OLCAgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeCA9IFR5cGVQcmVmaXguZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeDtcbiAgfSk7XG5cbiAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgY29uc3RydWN0b3JzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uc3RydWN0b3IgfSA9IGVsZW1lbnRzLFxuICAgICAgICBjb25zdHJ1Y3RvcnNKU09OID0gY29uc3RydWN0b3JzOyAvLy9cblxuICBjb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnNKU09OLm1hcCgoY29uc3RydWN0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbnN0cnVjdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHN1cHBvc2l0aW9ucyB9ID0ganNvbjtcblxuICBjb25zdCB7IFN1cHBvc2l0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9uczsgIC8vL1xuXG4gIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uc0pTT04ubWFwKChzdXBwb3NpdGlvbkpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gc3VwcG9zaXRpb25KU09OLCAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbiA9IFN1cHBvc2l0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc3Vic3RpdHV0aW9ucyB9ID0ganNvbjsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnNKU09OID0gc3Vic3RpdHV0aW9uczsgLy8vXG5cbiAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNKU09OLm1hcCgoc3Vic3RpdHV0aW9uSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdWJzdGl0dXRpb25KU09OLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uRnJvbVN1YnN0aXR1dGlvbkpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IG1ldGF2YXJpYWJsZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBtZXRhdmFyaWFibGVzSlNPTiA9IG1ldGF2YXJpYWJsZXM7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZXMgPSBtZXRhdmFyaWFibGVzSlNPTi5tYXAoKG1ldGF2YXJpYWJsZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gbWV0YXZhcmlhYmxlSlNPTiwgIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW5lbWljQ29udGV4dHNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgY29uc3QgeyBjb250ZXh0cyB9ID0ganNvbjtcblxuICBjb25zdCBtbmVtaWNDb250ZXh0cyA9IGNvbnRleHRzLm1hcCgoY29udGV4dCkgPT4ge1xuICAgIGpzb24gPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBtbmVtaWNDb250ZXh0ID0gTW5lbWljQ29udGV4dC5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtbmVtaWNDb250ZXh0OyAgLy8vXG4gIH0pO1xuXG4gIHJldHVybiBtbmVtaWNDb250ZXh0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkVmFyaWFibGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBkZWNsYXJlZFZhcmlhYmxlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVjbGFyZWRWYXJpYWJsZXNKU09OID0gZGVjbGFyZWRWYXJpYWJsZXM7IC8vL1xuXG4gIGRlY2xhcmVkVmFyaWFibGVzID0gZGVjbGFyZWRWYXJpYWJsZXNKU09OLm1hcCgoZGVjbGFyZWRWYXJpYWJsZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZGVjbGFyZWRWYXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGUgPSB2YXJpYWJsZTsgIC8vL1xuXG4gICAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGU7XG4gIH0pO1xuXG4gIHJldHVybiBkZWNsYXJlZFZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkTWV0YXZhcmlhYmxlc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgZGVjbGFyZWRNZXRhdmFyaWFibGVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTiA9IGRlY2xhcmVkTWV0YXZhcmlhYmxlczsgLy8vXG5cbiAgZGVjbGFyZWRNZXRhdmFyaWFibGVzID0gZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTi5tYXAoKGRlY2xhcmVkTWV0YXZhcmlhYmxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBkZWNsYXJlZE1ldGF2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7ICAvLy9cblxuICAgIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY2xhcmVkTWV0YXZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVUb1R5cGVKU09OKHR5cGUpIHtcbiAgbGV0IHR5cGVKU09OID0gbnVsbDtcblxuICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGFicmlkZ2VkID0gdHJ1ZTtcblxuICAgIHR5cGVKU09OID0gdHlwZS50b0pTT04oYWJyaWRnZWQpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxUb0xhYmVsSlNPTihsYWJlbCkge1xuICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICByZXR1cm4gbGFiZWxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YVR5cGVUb01ldGFUeXBlSlNPTihtZXRhVHlwZSkge1xuICBjb25zdCBtZXRhVHlwZUpTT04gPSAobWV0YVR5cGUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xuXG4gIHJldHVybiBtZXRhVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04oZGVkdWN0aW9uKSB7XG4gIGNvbnN0IGRlZHVjdGlvbkpTT04gPSBkZWR1Y3Rpb24udG9KU09OKCk7XG5cbiAgcmV0dXJuIGRlZHVjdGlvbkpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYXR1cmVUb1NpZ25hdHVyZUpTT04oc2lnbmF0dXJlKSB7XG4gIGNvbnN0IHNpZ25hdHVyZUpTT04gPSAoc2lnbmF0dXJlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICByZXR1cm4gc2lnbmF0dXJlSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmNsdXNpb25Ub0NvbmNsdXNpb25KU09OKGNvbmNsdXNpb24pIHtcbiAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uLnRvSlNPTigpO1xuXG4gIHJldHVybiBjb25jbHVzaW9uSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3Zpc2lvbmFsVG9Qcm92aXNpb25hbEpTT04ocHJvdmlzaW9uYWwpIHtcbiAgY29uc3QgcHJvdmlzaW9uYWxKU09OID0gcHJvdmlzaW9uYWw7ICAvLy9cblxuICByZXR1cm4gcHJvdmlzaW9uYWxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04obW5lbWljQ29udGV4dCkge1xuICBjb25zdCBtbmVtaWNDb250ZXh0SlNPTiA9IG1uZW1pY0NvbnRleHQudG9KU09OKCk7XG5cbiAgcmV0dXJuIG1uZW1pY0NvbnRleHRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uRnJvbVN1YnN0aXR1dGlvbkpTT04oanNvbiwgY29udGV4dCkge1xuICBjb25zdCB7IFRlcm1TdWJzdGl0dXRpb24sIEZyYW1lU3Vic3RpdHV0aW9uLCBTdGF0ZW1lbnRTdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBzdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpIHx8IEZyYW1lU3Vic3RpdHV0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpIHx8IFN0YXRlbWVudFN1YnN0aXR1dGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNUb1R5cGVzSlNPTih0eXBlcykge1xuICBjb25zdCB0eXBlc0pTT04gPSB0eXBlcy5tYXAoKHR5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gdHlwZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtc1RvVGVybXNKU09OKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zSlNPTiA9IHRlcm1zLm1hcCgodGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1KU09OID0gdGVybS50b0pTT04oKTtcblxuICAgIHJldHVybiB0ZXJtSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtzVG9MaW5rc0pTT04obGlua3MpIHtcbiAgY29uc3QgbGlua3NKU09OID0gbGlua3MubWFwKChsaW5rKSA9PiB7XG4gICAgY29uc3QgbGlua0pTT04gPSBsaW5rLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGxpbmtKU09OO1xuICB9KTtcblxuICByZXR1cm4gbGlua3NKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNUb1J1bGVzSlNPTihydWxlcykge1xuICBjb25zdCBydWxlc0pTT04gPSBydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICBjb25zdCBydWxlSlNPTiA9IHJ1bGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcnVsZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBydWxlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbHNUb0xhYmVsc0pTT04obGFiZWxzKSB7XG4gIGNvbnN0IGxhYmVsc0pTT04gPSBsYWJlbHMubWFwKChsYWJlbCkgPT4ge1xuICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGxhYmVsc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmFtZXNUb0ZyYW1lc0pTT04oZnJhbWVzKSB7XG4gIGNvbnN0IGZyYW1lc0pTT04gPSBmcmFtZXMubWFwKChmcmFtZSkgPT4ge1xuICAgIGNvbnN0IGZyYW1lSlNPTiA9IGZyYW1lLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGZyYW1lSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGZyYW1lc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbXNUb0F4aW9tc0pTT04oYXhpb21zKSB7XG4gIGNvbnN0IGF4aW9tc0pTT04gPSBheGlvbXMubWFwKChheGlvbSkgPT4ge1xuICAgIGNvbnN0IGF4aW9tSlNPTiA9IGF4aW9tLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGF4aW9tSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGF4aW9tc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWFzVG9TY2hlbWFzSlNPTihzY2hlbWFzKSB7XG4gIGNvbnN0IHNjaGVtYXNKU09OID0gc2NoZW1hcy5tYXAoKHNjaGVtYSkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYUpTT04gPSBzY2hlbWEudG9KU09OKCk7XG5cbiAgICByZXR1cm4gc2NoZW1hSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHNjaGVtYXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNUb1ByZW1pc2VzSlNPTihwcmVtaXNlcykge1xuICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlcy5tYXAoKHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVvcmVtc1RvVGhlb3JlbXNKU09OKHRoZW9yZW1zKSB7XG4gIGNvbnN0IHRoZW9yZW1zSlNPTiA9IHRoZW9yZW1zLm1hcCgodGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IHRoZW9yZW1KU09OID0gdGhlb3JlbS50b0pTT04oKTtcblxuICAgIHJldHVybiB0aGVvcmVtSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNUb0h5cG90aGVzZXNKU09OKGh5cG90aGVzZXMpIHtcbiAgY29uc3QgaHlwb3RoZXNlc0pTT04gPSBoeXBvdGhlc2VzLm1hcCgoaHlwb3RoZXNpcykgPT4ge1xuICAgIGNvbnN0IGh5cG90aGVzaXNKU09OID0gaHlwb3RoZXNpcy50b0pTT04oKTtcblxuICAgIHJldHVybiBoeXBvdGhlc2lzSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGh5cG90aGVzZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4bmFtZVRvUHJldml4TmFtZUpTT04ocHJlZml4bmFtZSkge1xuICBjb25zdCBwcmVmaXhOYW1lSlNPTiA9IHByZWZpeG5hbWU7ICAvLy9cblxuICByZXR1cm4gcHJlZml4TmFtZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlclR5cGVzVG9TdXBlclR5cGVzSlNPTihzdXBlclR5cGVzKSB7XG4gIGNvbnN0IHN1cGVyVHlwZXNKU09OID0gc3VwZXJUeXBlcy5tYXAoKHN1cGVyVHlwZSkgPT4ge1xuICAgIGNvbnN0IGFicmlkZ2VkID0gdHJ1ZSxcbiAgICAgIHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGUudG9KU09OKGFicmlkZ2VkKTtcblxuICAgIHJldHVybiBzdXBlclR5cGVKU09OO1xuICB9KTtcblxuICByZXR1cm4gc3VwZXJUeXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTihwcm9wZXJ0aWVzKSB7XG4gIGNvbnN0IHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlKU09OID0gcHJvcGVydHkudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHlKU09OO1xuICB9KTtcblxuICByZXR1cm4gcHJvcGVydGllc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbGl0aWVzVG9FcXVhbGl0aWVzSlNPTihlcXVhbGl0aWVzKSB7XG4gIGNvbnN0IGVxdWFsaXRpZXNKU09OID0gZXF1YWxpdGllcy5tYXAoKGVxdWFsaXR5KSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHlKU09OID0gZXF1YWxpdHkudG9KU09OKCk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHlKU09OO1xuICB9KTtcblxuICByZXR1cm4gZXF1YWxpdGllc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRzVG9TdGF0ZW1lbnRzSlNPTihzdGF0ZW1lbnRzKSB7XG4gIGNvbnN0IHN0YXRlbWVudHNKU09OID0gc3RhdGVtZW50cy5tYXAoKHN0YXRlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnQudG9KU09OKCk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50SlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlc1RvU2lnbmF0dXJlc0pTT04oc2lnbmF0dXJlcykge1xuICBjb25zdCBzaWduYXR1cmVzSlNPTiA9IHNpZ25hdHVyZXMubWFwKChzaWduYXR1cmUpID0+IHtcbiAgICBjb25zdCBzaWduYXR1cmVKU09OID0gc2lnbmF0dXJlLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBzaWduYXR1cmVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydGlvbnNUb0Fzc2VydGlvbnNKU09OKGFzc2VydGlvbnMpIHtcbiAgY29uc3QgYXNzZXJ0aW9uc0pTT04gPSBhc3NlcnRpb25zLm1hcCgoYXNzZXJ0aW9uKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0aW9uSlNPTiA9IGFzc2VydGlvbi50b0pTT04oKTtcblxuICAgIHJldHVybiBhc3NlcnRpb25KU09OO1xuICB9KTtcblxuICByZXR1cm4gYXNzZXJ0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0b3JzVG9HZW5lcmF0b3JzSlNPTihnZW5lcmF0b3JzKSB7XG4gIGNvbnN0IGdlbmVyYXRvcnNKU09OID0gZ2VuZXJhdG9ycy5tYXAoKGdlbmVyYXRvcikgPT4ge1xuICAgIGNvbnN0IGdlbmVyYXRvckpTT04gPSBnZW5lcmF0b3IudG9KU09OKCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ySlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGdlbmVyYXRvcnNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTihjb25zdHJhaW50cykge1xuICBjb25zdCBjb25zdHJhaW50c0pTT04gPSBjb25zdHJhaW50cy5tYXAoKGNvbnN0cmFpbnQpID0+IHtcbiAgICBjb25zdCBjb25zdHJhaW50SlNPTiA9IGNvbnN0cmFpbnQudG9KU09OKCk7XG5cbiAgICByZXR1cm4gY29uc3RyYWludEpTT047XG4gIH0pO1xuXG4gIHJldHVybiBjb25zdHJhaW50c0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25qZWN0dXJlc1RvQ29uamVjdHVyZXNKU09OKGNvbmplY3R1cmVzKSB7XG4gIGNvbnN0IGNvbmplY3R1cmVzSlNPTiA9IGNvbmplY3R1cmVzLm1hcCgoY29uamVjdHVyZSkgPT4ge1xuICAgIGNvbnN0IGNvbmplY3R1cmVKU09OID0gY29uamVjdHVyZS50b0pTT04oKTtcblxuICAgIHJldHVybiBjb25qZWN0dXJlSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmplY3R1cmVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmF0b3JzVG9Db21iaW5hdG9yc0pTT04oY29tYmluYXRvcnMpIHtcbiAgY29uc3QgY29tYmluYXRvcnNKU09OID0gY29tYmluYXRvcnMubWFwKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3QgY29tYmluYXRvckpTT04gPSBjb21iaW5hdG9yLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JKU09OO1xuICB9KTtcblxuICByZXR1cm4gY29tYmluYXRvcnNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzdW1wdGlvbnNUb0Fzc3VtcHRpb25zSlNPTihhc3N1bXB0aW9ucykge1xuICBjb25zdCBhc3N1bXB0aW9uc0pTT04gPSBhc3N1bXB0aW9ucy5tYXAoKGFzc3VtcHRpb24pID0+IHtcbiAgICBjb25zdCBhc3N1bXB0aW9uSlNPTiA9IGFzc3VtcHRpb24udG9KU09OKCk7XG5cbiAgICByZXR1cm4gYXNzdW1wdGlvbkpTT047XG4gIH0pO1xuXG4gIHJldHVybiBhc3N1bXB0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04oc3VwcG9zaXRpb25zKSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uc0pTT04gPSBzdXBwb3NpdGlvbnMubWFwKChzdXBwb3NpdGlvbikgPT4ge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uSlNPTiA9IHN1cHBvc2l0aW9uLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvcnNUb0NvbnN0cnVjdG9yc0pTT04oY29uc3RydWN0b3JzKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yc0pTT04gPSBjb25zdHJ1Y3RvcnMubWFwKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ySlNPTiA9IGNvbnN0cnVjdG9yLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ySlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlUHJlZml4ZXNUb1R5cGVQcmVmaXhlc0pTT04odHlwZVByZWZpeGVzKSB7XG4gIGNvbnN0IHR5cGVQcmVmaXhlc0pTT04gPSB0eXBlUHJlZml4ZXMubWFwKCh0eXBlUHJlZml4KSA9PiB7XG4gICAgY29uc3QgdHlwZVByZWZpeEpTT04gPSB0eXBlUHJlZml4LnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhKU09OO1xuICB9KTtcblxuICByZXR1cm4gdHlwZVByZWZpeGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OKHN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uc0pTT04gPSBzdWJzdGl0dXRpb25zLm1hcCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uSlNPTiA9IHN1YnN0aXR1dGlvbi50b0pTT04oKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25KU09OO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVzVG9NZXRhdmFyaWFibGVzSlNPTihtZXRhdmFyaWFibGVzKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZXNKU09OID0gbWV0YXZhcmlhYmxlcy5tYXAoKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUpTT04gPSBtZXRhdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW5lbWljQ29udGV4dHNUb01uZW1pY0NvbnRleHRzSlNPTihtbmVtaWNDb250ZXh0cykge1xuICBjb25zdCBtbmVtaWNDb250ZXh0c0pTT04gPSBtbmVtaWNDb250ZXh0cy5tYXAoKG1uZW1pY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCBtbmVtaWNDb250ZXh0SlNPTiA9IG1uZW1pY0NvbnRleHQudG9KU09OKCk7XG5cbiAgICByZXR1cm4gbW5lbWljQ29udGV4dEpTT047XG4gIH0pO1xuXG4gIHJldHVybiBtbmVtaWNDb250ZXh0c0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNsYXJlZFZhcmlhYmxlc1RvRGVjbGFyZWRWYXJpYWJsZXNKU09OKGRlY2xhcmVkVmFyaWFibGVzKSB7XG4gIGNvbnN0IGRlY2xhcmVkVmFyaWFibGVzSlNPTiA9IGRlY2xhcmVkVmFyaWFibGVzLm1hcCgoZGVjbGFyZWRWYXJpYWJsZSkgPT4ge1xuICAgIGNvbnN0IGRlY2xhcmVkVmFyaWFibGVKU09OID0gZGVjbGFyZWRWYXJpYWJsZS50b0pTT04oKTtcblxuICAgIHJldHVybiBkZWNsYXJlZFZhcmlhYmxlSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkTWV0YXZhcmlhYmxlc1RvRGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTihkZWNsYXJlZE1ldGF2YXJpYWJsZXMpIHtcbiAgY29uc3QgZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTiA9IGRlY2xhcmVkTWV0YXZhcmlhYmxlcy5tYXAoKGRlY2xhcmVkTWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyZWRNZXRhdmFyaWFibGVKU09OID0gZGVjbGFyZWRNZXRhdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gZGVjbGFyZWRNZXRhdmFyaWFibGVKU09OO1xuICB9KTtcblxuICByZXR1cm4gZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTjtcbn1cblxuZnVuY3Rpb24gZmluZFR5cGVCeU5hbWUobmFtZSwgY29udGV4dCkge1xuICBjb25zdCB0eXBlTmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICByZXR1cm4gdHlwZTtcbn1cblxuZnVuY3Rpb24gZmluZE1ldGFUeXBlQnlOYW1lKG5hbWUsIGNvbnRleHQpIHtcbiAgY29uc3QgbWV0YVR5cGVOYW1lID0gbmFtZSwgIC8vL1xuICAgICAgICBtZXRhVHlwZSA9IGNvbnRleHQuZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICByZXR1cm4gbWV0YVR5cGU7XG59XG4iXSwibmFtZXMiOlsiYXNzZXJ0aW9uc0Zyb21KU09OIiwiYXNzZXJ0aW9uc1RvQXNzZXJ0aW9uc0pTT04iLCJhc3N1bXB0aW9uc0Zyb21KU09OIiwiYXNzdW1wdGlvbnNUb0Fzc3VtcHRpb25zSlNPTiIsImF4aW9tc0Zyb21KU09OIiwiYXhpb21zVG9BeGlvbXNKU09OIiwiY29tYmluYXRvcnNGcm9tSlNPTiIsImNvbWJpbmF0b3JzVG9Db21iaW5hdG9yc0pTT04iLCJjb25jbHVzaW9uRnJvbUpTT04iLCJjb25jbHVzaW9uVG9Db25jbHVzaW9uSlNPTiIsImNvbmplY3R1cmVzRnJvbUpTT04iLCJjb25qZWN0dXJlc1RvQ29uamVjdHVyZXNKU09OIiwiY29uc3RyYWludHNGcm9tSlNPTiIsImNvbnN0cmFpbnRzVG9Db25zdHJhaW50c0pTT04iLCJjb25zdHJ1Y3RvcnNGcm9tSlNPTiIsImNvbnN0cnVjdG9yc1RvQ29uc3RydWN0b3JzSlNPTiIsImRlY2xhcmVkTWV0YXZhcmlhYmxlc0Zyb21KU09OIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzVG9EZWNsYXJlZE1ldGF2YXJpYWJsZXNKU09OIiwiZGVjbGFyZWRWYXJpYWJsZXNGcm9tSlNPTiIsImRlY2xhcmVkVmFyaWFibGVzVG9EZWNsYXJlZFZhcmlhYmxlc0pTT04iLCJkZWR1Y3Rpb25Gcm9tSlNPTiIsImRlZHVjdGlvblRvRGVkdWN0aW9uSlNPTiIsImVxdWFsaXRpZXNGcm9tSlNPTiIsImVxdWFsaXRpZXNUb0VxdWFsaXRpZXNKU09OIiwiZnJhbWVzRnJvbUpTT04iLCJmcmFtZXNUb0ZyYW1lc0pTT04iLCJnZW5lcmF0b3JzRnJvbUpTT04iLCJnZW5lcmF0b3JzVG9HZW5lcmF0b3JzSlNPTiIsImh5cG90aGVzZXNGcm9tSlNPTiIsImh5cG90aGVzZXNUb0h5cG90aGVzZXNKU09OIiwibGFiZWxGcm9tSlNPTiIsImxhYmVsVG9MYWJlbEpTT04iLCJsYWJlbHNGcm9tSlNPTiIsImxhYmVsc1RvTGFiZWxzSlNPTiIsImxpbmtzRnJvbUpTT04iLCJsaW5rc1RvTGlua3NKU09OIiwibWV0YVR5cGVGcm9tSlNPTiIsIm1ldGFUeXBlVG9NZXRhVHlwZUpTT04iLCJtZXRhdmFyaWFibGVzRnJvbUpTT04iLCJtZXRhdmFyaWFibGVzVG9NZXRhdmFyaWFibGVzSlNPTiIsIm1uZW1pY0NvbnRleHRGcm9tSlNPTiIsIm1uZW1pY0NvbnRleHRUb01uZW1pY0NvbnRleHRKU09OIiwibW5lbWljQ29udGV4dHNGcm9tSlNPTiIsIm1uZW1pY0NvbnRleHRzVG9NbmVtaWNDb250ZXh0c0pTT04iLCJwcmVmaXhOYW1lRnJvbUpTT04iLCJwcmVmaXhuYW1lVG9QcmV2aXhOYW1lSlNPTiIsInByZW1pc2VzRnJvbUpTT04iLCJwcmVtaXNlc1RvUHJlbWlzZXNKU09OIiwicHJvcGVydGllc0Zyb21KU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJwcm92aXNpb25hbEZyb21KU09OIiwicHJvdmlzaW9uYWxUb1Byb3Zpc2lvbmFsSlNPTiIsInJ1bGVzRnJvbUpTT04iLCJydWxlc1RvUnVsZXNKU09OIiwic2NoZW1hc0Zyb21KU09OIiwic2NoZW1hc1RvU2NoZW1hc0pTT04iLCJzaWduYXR1cmVGcm9tSlNPTiIsInNpZ25hdHVyZVRvU2lnbmF0dXJlSlNPTiIsInNpZ25hdHVyZXNUb1NpZ25hdHVyZXNKU09OIiwic3RhdGVtZW50c0Zyb21KU09OIiwic3RhdGVtZW50c1RvU3RhdGVtZW50c0pTT04iLCJzdWJzdGl0dXRpb25Gcm9tU3Vic3RpdHV0aW9uSlNPTiIsInN1YnN0aXR1dGlvbnNGcm9tSlNPTiIsInN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OIiwic3VwZXJUeXBlc0Zyb21KU09OIiwic3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04iLCJzdXBwb3NpdGlvbnNGcm9tSlNPTiIsInN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTiIsInRlcm1zRnJvbUpTT04iLCJ0ZXJtc1RvVGVybXNKU09OIiwidGhlb3JlbXNGcm9tSlNPTiIsInRoZW9yZW1zVG9UaGVvcmVtc0pTT04iLCJ0eXBlRnJvbUpTT04iLCJ0eXBlUHJlZml4ZXNGcm9tSlNPTiIsInR5cGVQcmVmaXhlc1RvVHlwZVByZWZpeGVzSlNPTiIsInR5cGVUb1R5cGVKU09OIiwidHlwZXNGcm9tSlNPTiIsInR5cGVzVG9UeXBlc0pTT04iLCJqc29uIiwiY29udGV4dCIsInR5cGUiLCJzdHJpbmciLCJuYW1lIiwiZmluZFR5cGVCeU5hbWUiLCJsYWJlbCIsIkxhYmVsIiwiZWxlbWVudHMiLCJsYWJlbEpTT04iLCJmcm9tSlNPTiIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlOYW1lIiwiZGVkdWN0aW9uIiwiRGVkdWN0aW9uIiwiZGVkdWN0aW9uSlNPTiIsInNpZ25hdHVyZSIsIlNpZ25hdHVyZSIsInNpZ25hdHVyZUpTT04iLCJjb25jbHVzaW9uIiwiQ29uY2x1c2lvbiIsImNvbmNsdXNpb25KU09OIiwicHJvdmlzaW9uYWwiLCJyZWxlYXNlQ29udGV4dCIsIm1uZW1pY0NvbnRleHQiLCJNbmVtaWNDb250ZXh0IiwidHlwZXMiLCJ0eXBlc0pTT04iLCJUeXBlIiwiZm9yRWFjaCIsInR5cGVKU09OIiwicHVzaCIsInRlcm1zIiwiVGVybSIsInRlcm1zSlNPTiIsIm1hcCIsInRlcm1KU09OIiwidGVybSIsImxpbmtzIiwiTGluayIsImxpbmtzSlNPTiIsImxpbmtKU09OIiwibGluayIsInJ1bGVzIiwiUnVsZSIsInJ1bGVzSlNPTiIsInJ1bGVKU09OIiwicnVsZSIsImZyYW1lcyIsIkZyYW1lIiwiZnJhbWVzSlNPTiIsImZyYW1lSlNPTiIsImZyYW1lIiwibGFiZWxzIiwibGFiZWxzSlNPTiIsImF4aW9tcyIsIkF4aW9tIiwiYXhpb21zSlNPTiIsImF4aW9tSlNPTiIsImF4aW9tIiwic2NoZW1hcyIsIlNjaGVtYSIsInNjaGVtYXNKU09OIiwic2NoZW1hSlNPTiIsInNjaGVtYSIsInByZW1pc2VzIiwiUHJlbWlzZSIsInByZW1pc2VzSlNPTiIsInByZW1pc2VKU09OIiwicHJlbWlzZSIsInRoZW9yZW1zIiwiVGhlb3JlbSIsInRoZW9yZW1zSlNPTiIsInRoZW9yZW1KU09OIiwidGhlb3JlbSIsImVxdWFsaXRpZXMiLCJFcXVhbGl0eSIsImVxdWFsaXRpZXNKU09OIiwiZXF1YWxpdHlKU09OIiwiZXF1YWxpdHkiLCJwcm9wZXJ0aWVzIiwiUHJvcGVydHkiLCJwcm9wZXJ0aWVzSlNPTiIsInByb3BlcnR5SlNPTiIsInByb3BlcnR5IiwicHJlZml4TmFtZSIsInN1cGVyVHlwZXMiLCJzdXBlclR5cGVzSlNPTiIsInN1cGVyVHlwZUpTT04iLCJzdXBlclR5cGUiLCJoeXBvdGhlc2VzIiwiSHlwb3RoZXNpcyIsImh5cG90aGVzZXNKU09OIiwiaHlwb3RoZXNpc0pTT04iLCJoeXBvdGhlc2lzIiwic3RhdGVtZW50cyIsIlN0YXRlbWVudCIsInN0YXRlbWVudHNKU09OIiwic3RhdGVtZW50SlNPTiIsInN0YXRlbWVudCIsImFzc2VydGlvbnMiLCJUeXBlQXNzZXJ0aW9uIiwiU2NoZW1hQXNzZXJ0aW9uIiwiRGVmaW5lZEFzc2VydGlvbiIsIlByb3BlcnR5QXNzZXJ0aW9uIiwiU3VicHJvb2ZBc3NlcnRpb24iLCJDb250YWluZWRBc3NlcnRpb24iLCJTaWduYXR1cmVBc3NlcnRpbm8iLCJhc3NlcnRpb25zSlNPTiIsImFzc2VydGlvbkpTT04iLCJhc3NlcnRpb24iLCJnZW5lcmF0b3JzIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yc0pTT04iLCJnZW5lcmF0b3JKU09OIiwiZ2VuZXJhdG9yIiwiY29uamVjdHVyZXMiLCJDb25qZWN0dXJlIiwiY29uamVjdHVyZXNKU09OIiwiY29uamVjdHVyZUpTT04iLCJjb25qZWN0dXJlIiwiY29tYmluYXRvcnMiLCJDb21iaW5hdG9yIiwiY29tYmluYXRvcnNKU09OIiwiY29tYmluYXRvckpTT04iLCJjb21iaW5hdG9yIiwiYXNzdW1wdGlvbnMiLCJBc3N1bXB0aW9uIiwiYXNzdW1wdGlvbnNKU09OIiwiYXNzdW1wdGlvbkpTT04iLCJhc3N1bXB0aW9uIiwiY29uc3RyYWludHMiLCJDb25zdHJhaW50IiwiY29uc3RyYWludHNKU09OIiwiY29uc3RyYWludEpTT04iLCJjb25zdHJhaW50IiwidHlwZVByZWZpeGVzIiwiVHlwZVByZWZpeCIsInR5cGVQcmVmaXhlc0pTT04iLCJ0eXBlUHJlZml4SlNPTiIsInR5cGVQcmVmaXgiLCJjb25zdHJ1Y3RvcnMiLCJDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yc0pTT04iLCJjb25zdHJ1Y3RvckpTT04iLCJjb25zdHJ1Y3RvciIsInN1cHBvc2l0aW9ucyIsIlN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uSlNPTiIsInN1cHBvc2l0aW9uIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNKU09OIiwic3Vic3RpdHV0aW9uSlNPTiIsInN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZXMiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVzSlNPTiIsIm1ldGF2YXJpYWJsZUpTT04iLCJtZXRhdmFyaWFibGUiLCJjb250ZXh0cyIsIm1uZW1pY0NvbnRleHRzIiwiZGVjbGFyZWRWYXJpYWJsZXMiLCJWYXJpYWJsZSIsImRlY2xhcmVkVmFyaWFibGVzSlNPTiIsImRlY2xhcmVkVmFyaWFibGVKU09OIiwidmFyaWFibGUiLCJkZWNsYXJlZFZhcmlhYmxlIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTiIsImRlY2xhcmVkTWV0YXZhcmlhYmxlSlNPTiIsImRlY2xhcmVkTWV0YXZhcmlhYmxlIiwiYWJyaWRnZWQiLCJ0b0pTT04iLCJtZXRhVHlwZUpTT04iLCJwcm92aXNpb25hbEpTT04iLCJtbmVtaWNDb250ZXh0SlNPTiIsIlRlcm1TdWJzdGl0dXRpb24iLCJGcmFtZVN1YnN0aXR1dGlvbiIsIlN0YXRlbWVudFN1YnN0aXR1dGlvbiIsInByZWZpeG5hbWUiLCJwcmVmaXhOYW1lSlNPTiIsInNpZ25hdHVyZXMiLCJzaWduYXR1cmVzSlNPTiIsIm1uZW1pY0NvbnRleHRzSlNPTiIsInR5cGVOYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdXZ0JBO2VBQUFBOztRQWlkQUM7ZUFBQUE7O1FBM1lBQztlQUFBQTs7UUE2YkFDO2VBQUFBOztRQXpwQkFDO2VBQUFBOztRQTRmQUM7ZUFBQUE7O1FBaFRBQztlQUFBQTs7UUFtY0FDO2VBQUFBOztRQTd3QkFDO2VBQUFBOztRQXFpQkFDO2VBQUFBOztRQTNPQUM7ZUFBQUE7O1FBeWNBQztlQUFBQTs7UUF6WkFDO2VBQUFBOztRQStZQUM7ZUFBQUE7O1FBL1dBQztlQUFBQTs7UUFpYUFDO2VBQUFBOztRQS9UQUM7ZUFBQUE7O1FBMlhBQztlQUFBQTs7UUE1WUFDO2VBQUFBOztRQWtZQUM7ZUFBQUE7O1FBejNCQUM7ZUFBQUE7O1FBbWpCQUM7ZUFBQUE7O1FBelZBQztlQUFBQTs7UUF5Z0JBQztlQUFBQTs7UUF6bUJBQztlQUFBQTs7UUFraEJBQztlQUFBQTs7UUF0VUFDO2VBQUFBOztRQXFjQUM7ZUFBQUE7O1FBM2ZBQztlQUFBQTs7UUE4YUFDO2VBQUFBOztRQTF0QkFDO2VBQUFBOztRQWlrQkFDO2VBQUFBOztRQTNaQUM7ZUFBQUE7O1FBd2ZBQztlQUFBQTs7UUF4aUJBQztlQUFBQTs7UUFvaEJBQztlQUFBQTs7UUE3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
|
|
832
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IE1uZW1pY0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbW5lbWljXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAganNvbiA9IHR5cGU7ICAvLy9cblxuICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgIG5hbWUgPSBzdHJpbmc7ICAvLy9cblxuICAgIHR5cGUgPSBmaW5kVHlwZUJ5TmFtZShuYW1lLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGxhYmVsIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTGFiZWwgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsYWJlbEpTT04gPSBsYWJlbDsgIC8vL1xuXG4gIGpzb24gPSBsYWJlbEpTT047IC8vL1xuXG4gIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGxhYmVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YVR5cGVGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IG1ldGFUeXBlIH0gPSBqc29uO1xuXG4gIGlmIChtZXRhVHlwZSAhPT0gbnVsbCkge1xuICAgIGpzb24gPSBtZXRhVHlwZTsgIC8vL1xuXG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbmFtZSA9IHN0cmluZzsgIC8vL1xuXG4gICAgbWV0YVR5cGUgPSBmaW5kTWV0YVR5cGVCeU5hbWUobmFtZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gbWV0YVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWR1Y3Rpb25Gcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGRlZHVjdGlvbiB9ID0ganNvbjtcblxuICBjb25zdCB7IERlZHVjdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIGRlZHVjdGlvbkpTT04gPSBkZWR1Y3Rpb247ICAvLy9cblxuICBqc29uID0gZGVkdWN0aW9uSlNPTjsgIC8vL1xuXG4gIGRlZHVjdGlvbiA9IERlZHVjdGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICByZXR1cm4gZGVkdWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBzaWduYXR1cmUgPSBudWxsIH0gPSBqc29uO1xuXG4gIGlmIChzaWduYXR1cmUgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IFNpZ25hdHVyZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgc2lnbmF0dXJlSlNPTiA9IHNpZ25hdHVyZTsgIC8vL1xuXG4gICAganNvbiA9IHNpZ25hdHVyZUpTT047IC8vL1xuXG4gICAgc2lnbmF0dXJlID0gU2lnbmF0dXJlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmNsdXNpb25Gcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25jbHVzaW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAganNvbiA9IGNvbmNsdXNpb25KU09OOyAgLy8vXG5cbiAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbmNsdXNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aXNpb25hbEZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcm92aXNpb25hbCB9ID0ganNvbjtcblxuICByZXR1cm4gcHJvdmlzaW9uYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtbmVtaWNDb250ZXh0RnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBjb25zdCByZWxlYXNlQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICh7IGNvbnRleHQgfSA9IGpzb24pO1xuXG4gIGpzb24gPSBjb250ZXh0OyAvLy9cblxuICBjb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7IC8vL1xuXG4gIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBNbmVtaWNDb250ZXh0LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gIHJldHVybiBtbmVtaWNDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNGcm9tSlNPTihqc29uLCB0eXBlcywgY29udGV4dCkge1xuICBjb25zdCB7IHR5cGVzOiB0eXBlc0pTT04gfSA9IGpzb247XG5cbiAgY29uc3QgeyBUeXBlIH0gPSBlbGVtZW50cztcblxuICB0eXBlc0pTT04uZm9yRWFjaCgodHlwZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHR5cGVzLnB1c2godHlwZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHRlcm1zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVGVybSB9ID0gZWxlbWVudHMsXG4gICAgdGVybXNKU09OID0gdGVybXM7IC8vL1xuXG4gIHRlcm1zID0gdGVybXNKU09OLm1hcCgodGVybUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdGVybUpTT04sICAvLy9cbiAgICAgIHRlcm0gPSBUZXJtLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH0pO1xuXG4gIHJldHVybiB0ZXJtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBsaW5rcyB9ID0ganNvbjtcblxuICBjb25zdCB7IExpbmsgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsaW5rc0pTT04gPSBsaW5rczsgLy8vXG5cbiAgbGlua3MgPSBsaW5rc0pTT04ubWFwKChsaW5rSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBsaW5rSlNPTiwgIC8vL1xuICAgICAgICAgIGxpbmsgPSBMaW5rLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGxpbms7XG4gIH0pO1xuXG4gIHJldHVybiBsaW5rcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBydWxlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFJ1bGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBydWxlc0pTT04gPSBydWxlczsgLy8vXG5cbiAgcnVsZXMgPSBydWxlc0pTT04ubWFwKChydWxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBydWxlSlNPTiwgIC8vL1xuICAgICAgICAgIHJ1bGUgPSBSdWxlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH0pO1xuXG4gIHJldHVybiBydWxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyYW1lc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgZnJhbWVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgRnJhbWUgfSA9IGVsZW1lbnRzLFxuICAgIGZyYW1lc0pTT04gPSBmcmFtZXM7IC8vL1xuXG4gIGZyYW1lcyA9IGZyYW1lc0pTT04ubWFwKChmcmFtZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZnJhbWVKU09OLCAgLy8vXG4gICAgICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZyYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTGFiZWwgfSA9IGVsZW1lbnRzLFxuICAgICAgICBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBsYWJlbEpTT04sIC8vL1xuICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH0pO1xuXG4gIHJldHVybiBsYWJlbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGF4aW9tcyB9ID0ganNvbjtcblxuICBjb25zdCB7IEF4aW9tIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYXhpb21zSlNPTiA9IGF4aW9tczsgLy8vXG5cbiAgYXhpb21zID0gYXhpb21zSlNPTi5tYXAoKGF4aW9tSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBheGlvbUpTT04sICAvLy9cbiAgICAgICAgICBheGlvbSA9IEF4aW9tLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9KTtcblxuICByZXR1cm4gYXhpb21zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NoZW1hc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc2NoZW1hcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFNjaGVtYSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHNjaGVtYXNKU09OID0gc2NoZW1hczsgLy8vXG5cbiAgc2NoZW1hcyA9IHNjaGVtYXNKU09OLm1hcCgoc2NoZW1hSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzY2hlbWFKU09OLCAgLy8vXG4gICAgICBzY2hlbWEgPSBTY2hlbWEuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9KTtcblxuICByZXR1cm4gc2NoZW1hcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZW1pc2VzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBwcmVtaXNlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFByZW1pc2UgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLm1hcCgocHJlbWlzZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gcHJlbWlzZUpTT04sIC8vL1xuICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRoZW9yZW1zRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0aGVvcmVtcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFRoZW9yZW0gfSA9IGVsZW1lbnRzLFxuICAgICAgICB0aGVvcmVtc0pTT04gPSB0aGVvcmVtczsgLy8vXG5cbiAgdGhlb3JlbXMgPSB0aGVvcmVtc0pTT04ubWFwKCh0aGVvcmVtSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB0aGVvcmVtSlNPTiwgIC8vL1xuICAgICAgICAgIHRoZW9yZW0gPSBUaGVvcmVtLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRoZW9yZW07XG4gIH0pO1xuXG4gIHJldHVybiB0aGVvcmVtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsaXRpZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGVxdWFsaXRpZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgZXF1YWxpdGllc0pTT04gPSBlcXVhbGl0aWVzOyAvLy9cblxuICBlcXVhbGl0aWVzID0gZXF1YWxpdGllc0pTT04ubWFwKChlcXVhbGl0eUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZXF1YWxpdHlKU09OLCAgLy8vXG4gICAgICBlcXVhbGl0eSA9IEVxdWFsaXR5LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5O1xuICB9KTtcblxuICByZXR1cm4gZXF1YWxpdGllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHByb3BlcnRpZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBQcm9wZXJ0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllczsgLy8vXG5cbiAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLm1hcCgocHJvcGVydHlKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHByb3BlcnR5SlNPTiwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5ID0gUHJvcGVydHkuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4TmFtZUZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcmVmaXhOYW1lIH0gPSBqc29uO1xuXG4gIHJldHVybiBwcmVmaXhOYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBzdXBlclR5cGVzOiBzdXBlclR5cGVzSlNPTiB9ID0ganNvbjtcblxuICBjb25zdCBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0pTT04ubWFwKChzdXBlclR5cGVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyVHlwZUpTT04sICAvLy9cbiAgICAgIHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgbmFtZSA9IHN0cmluZywgIC8vL1xuICAgICAgdHlwZSA9IGZpbmRUeXBlQnlOYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgc3VwZXJUeXBlID0gdHlwZTsgLy8vXG5cbiAgICByZXR1cm4gc3VwZXJUeXBlO1xuICB9KTtcblxuICByZXR1cm4gc3VwZXJUeXBlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGh5cG90aGVzZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBIeXBvdGhlc2lzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgaHlwb3RoZXNlc0pTT04gPSBoeXBvdGhlc2VzOyAgLy8vXG5cbiAgaHlwb3RoZXNlcyA9IGh5cG90aGVzZXNKU09OLm1hcCgoaHlwb3RoZXNpc0pTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gaHlwb3RoZXNpc0pTT04sIC8vL1xuICAgICAgICAgIGh5cG90aGVzaXMgPSBIeXBvdGhlc2lzLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh5cG90aGVzaXM7XG4gIH0pO1xuXG4gIHJldHVybiBoeXBvdGhlc2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVtZW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc3RhdGVtZW50cyB9ID0ganNvbjtcblxuICBjb25zdCB7IFN0YXRlbWVudCB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN0YXRlbWVudHNKU09OID0gc3RhdGVtZW50czsgLy8vXG5cbiAgc3RhdGVtZW50cyA9IHN0YXRlbWVudHNKU09OLm1hcCgoc3RhdGVtZW50SlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRpb25zRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBhc3NlcnRpb25zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVHlwZUFzc2VydGlvbiwgU2NoZW1hQXNzZXJ0aW9uLCBEZWZpbmVkQXNzZXJ0aW9uLCBQcm9wZXJ0eUFzc2VydGlvbiwgU3VicHJvb2ZBc3NlcnRpb24sIENvbnRhaW5lZEFzc2VydGlvbiwgU2lnbmF0dXJlQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYXNzZXJ0aW9uc0pTT04gPSBhc3NlcnRpb25zOyAvLy9cblxuICBhc3NlcnRpb25zID0gYXNzZXJ0aW9uc0pTT04ubWFwKChhc3NlcnRpb25KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGFzc2VydGlvbkpTT04sICAvLy9cbiAgICAgICAgICBhc3NlcnRpb24gPSBUeXBlQXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgU2NoZW1hQXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgRGVmaW5lZEFzc2VydGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgIHx8IFByb3BlcnR5QXNzZXJ0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgfHwgU3VicHJvb2ZBc3NlcnRpb24uZnJvbUpTT04oanNvbiwgY29udGV4dClcbiAgICAgICAgICAgICAgICAgICB8fCBDb250YWluZWRBc3NlcnRpb24uZnJvbUpTT04oanNvbiwgY29udGV4dClcbiAgICAgICAgICAgICAgICAgICB8fCBTaWduYXR1cmVBc3NlcnRpb24uZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9uO1xuICB9KTtcblxuICByZXR1cm4gYXNzZXJ0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRvcnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGdlbmVyYXRvcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBHZW5lcmF0b3IgfSA9IGVsZW1lbnRzLFxuICAgICAgICBnZW5lcmF0b3JzSlNPTiA9IGdlbmVyYXRvcnM7IC8vL1xuXG4gIGdlbmVyYXRvcnMgPSBnZW5lcmF0b3JzSlNPTi5tYXAoKGdlbmVyYXRvckpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZ2VuZXJhdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGdlbmVyYXRvciA9IEdlbmVyYXRvci5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBnZW5lcmF0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBnZW5lcmF0b3JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uamVjdHVyZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbmplY3R1cmVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGNvbmplY3R1cmVzSlNPTiA9IGNvbmplY3R1cmVzOyAvLy9cblxuICBjb25qZWN0dXJlcyA9IGNvbmplY3R1cmVzSlNPTi5tYXAoKGNvbmplY3R1cmVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbmplY3R1cmVKU09OLCAgLy8vXG4gICAgICAgICAgY29uamVjdHVyZSA9IENvbmplY3R1cmUuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uamVjdHVyZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmplY3R1cmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGNvbWJpbmF0b3JzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29tYmluYXRvciB9ID0gZWxlbWVudHMsXG4gICAgICAgIGNvbWJpbmF0b3JzSlNPTiA9IGNvbWJpbmF0b3JzOyAvLy9cblxuICBjb21iaW5hdG9ycyA9IGNvbWJpbmF0b3JzSlNPTi5tYXAoKGNvbWJpbmF0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbWJpbmF0b3JKU09OLCAgLy8vXG4gICAgICAgICAgY29tYmluYXRvciA9IENvbWJpbmF0b3IuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbWJpbmF0b3JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzdW1wdGlvbnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IGFzc3VtcHRpb25zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQXNzdW1wdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgYXNzdW1wdGlvbnNKU09OID0gYXNzdW1wdGlvbnM7IC8vL1xuXG4gIGFzc3VtcHRpb25zID0gYXNzdW1wdGlvbnNKU09OLm1hcCgoYXNzdW1wdGlvbkpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gYXNzdW1wdGlvbkpTT04sICAvLy9cbiAgICAgICAgICBhc3N1bXB0aW9uID0gQXNzdW1wdGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uO1xuICB9KTtcblxuICByZXR1cm4gYXNzdW1wdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJhaW50c0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgY29uc3RyYWludHMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25zdHJhaW50IH0gPSBlbGVtZW50cyxcbiAgICBjb25zdHJhaW50c0pTT04gPSBjb25zdHJhaW50czsgLy8vXG5cbiAgY29uc3RyYWludHMgPSBjb25zdHJhaW50c0pTT04ubWFwKChjb25zdHJhaW50SlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBjb25zdHJhaW50SlNPTiwgIC8vL1xuICAgICAgY29uc3RyYWludCA9IENvbnN0cmFpbnQuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RyYWludDtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cmFpbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVByZWZpeGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyB0eXBlUHJlZml4ZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBUeXBlUHJlZml4IH0gPSBlbGVtZW50cyxcbiAgICAgICAgdHlwZVByZWZpeGVzSlNPTiA9IHR5cGVQcmVmaXhlczsgLy8vXG5cbiAgdHlwZVByZWZpeGVzID0gdHlwZVByZWZpeGVzSlNPTi5tYXAoKHR5cGVQcmVmaXhKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHR5cGVQcmVmaXhKU09OLCAgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeCA9IFR5cGVQcmVmaXguZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeDtcbiAgfSk7XG5cbiAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgY29uc3RydWN0b3JzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uc3RydWN0b3IgfSA9IGVsZW1lbnRzLFxuICAgICAgICBjb25zdHJ1Y3RvcnNKU09OID0gY29uc3RydWN0b3JzOyAvLy9cblxuICBjb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnNKU09OLm1hcCgoY29uc3RydWN0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbnN0cnVjdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IHN1cHBvc2l0aW9ucyB9ID0ganNvbjtcblxuICBjb25zdCB7IFN1cHBvc2l0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9uczsgIC8vL1xuXG4gIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uc0pTT04ubWFwKChzdXBwb3NpdGlvbkpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gc3VwcG9zaXRpb25KU09OLCAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbiA9IFN1cHBvc2l0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgc3Vic3RpdHV0aW9ucyB9ID0ganNvbjsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnNKU09OID0gc3Vic3RpdHV0aW9uczsgLy8vXG5cbiAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNKU09OLm1hcCgoc3Vic3RpdHV0aW9uSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdWJzdGl0dXRpb25KU09OLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uRnJvbVN1YnN0aXR1dGlvbkpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGxldCB7IG1ldGF2YXJpYWJsZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBtZXRhdmFyaWFibGVzSlNPTiA9IG1ldGF2YXJpYWJsZXM7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZXMgPSBtZXRhdmFyaWFibGVzSlNPTi5tYXAoKG1ldGF2YXJpYWJsZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gbWV0YXZhcmlhYmxlSlNPTiwgIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW5lbWljQ29udGV4dHNGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgY29uc3QgeyBjb250ZXh0cyB9ID0ganNvbjtcblxuICBjb25zdCBtbmVtaWNDb250ZXh0cyA9IGNvbnRleHRzLm1hcCgoY29udGV4dCkgPT4ge1xuICAgIGpzb24gPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBtbmVtaWNDb250ZXh0ID0gTW5lbWljQ29udGV4dC5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtbmVtaWNDb250ZXh0OyAgLy8vXG4gIH0pO1xuXG4gIHJldHVybiBtbmVtaWNDb250ZXh0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkVmFyaWFibGVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBkZWNsYXJlZFZhcmlhYmxlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVjbGFyZWRWYXJpYWJsZXNKU09OID0gZGVjbGFyZWRWYXJpYWJsZXM7IC8vL1xuXG4gIGRlY2xhcmVkVmFyaWFibGVzID0gZGVjbGFyZWRWYXJpYWJsZXNKU09OLm1hcCgoZGVjbGFyZWRWYXJpYWJsZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gZGVjbGFyZWRWYXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGUgPSB2YXJpYWJsZTsgIC8vL1xuXG4gICAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGU7XG4gIH0pO1xuXG4gIHJldHVybiBkZWNsYXJlZFZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkTWV0YXZhcmlhYmxlc0Zyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgbGV0IHsgZGVjbGFyZWRNZXRhdmFyaWFibGVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTiA9IGRlY2xhcmVkTWV0YXZhcmlhYmxlczsgLy8vXG5cbiAgZGVjbGFyZWRNZXRhdmFyaWFibGVzID0gZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTi5tYXAoKGRlY2xhcmVkTWV0YXZhcmlhYmxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBkZWNsYXJlZE1ldGF2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7ICAvLy9cblxuICAgIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY2xhcmVkTWV0YXZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVUb1R5cGVKU09OKHR5cGUpIHtcbiAgbGV0IHR5cGVKU09OID0gbnVsbDtcblxuICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGFicmlkZ2VkID0gdHJ1ZTtcblxuICAgIHR5cGVKU09OID0gdHlwZS50b0pTT04oYWJyaWRnZWQpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxUb0xhYmVsSlNPTihsYWJlbCkge1xuICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICByZXR1cm4gbGFiZWxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YVR5cGVUb01ldGFUeXBlSlNPTihtZXRhVHlwZSkge1xuICBjb25zdCBtZXRhVHlwZUpTT04gPSAobWV0YVR5cGUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xuXG4gIHJldHVybiBtZXRhVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04oZGVkdWN0aW9uKSB7XG4gIGNvbnN0IGRlZHVjdGlvbkpTT04gPSBkZWR1Y3Rpb24udG9KU09OKCk7XG5cbiAgcmV0dXJuIGRlZHVjdGlvbkpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYXR1cmVUb1NpZ25hdHVyZUpTT04oc2lnbmF0dXJlKSB7XG4gIGNvbnN0IHNpZ25hdHVyZUpTT04gPSAoc2lnbmF0dXJlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICByZXR1cm4gc2lnbmF0dXJlSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmNsdXNpb25Ub0NvbmNsdXNpb25KU09OKGNvbmNsdXNpb24pIHtcbiAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uLnRvSlNPTigpO1xuXG4gIHJldHVybiBjb25jbHVzaW9uSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3Zpc2lvbmFsVG9Qcm92aXNpb25hbEpTT04ocHJvdmlzaW9uYWwpIHtcbiAgY29uc3QgcHJvdmlzaW9uYWxKU09OID0gcHJvdmlzaW9uYWw7ICAvLy9cblxuICByZXR1cm4gcHJvdmlzaW9uYWxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04obW5lbWljQ29udGV4dCkge1xuICBjb25zdCBtbmVtaWNDb250ZXh0SlNPTiA9IG1uZW1pY0NvbnRleHQudG9KU09OKCk7XG5cbiAgcmV0dXJuIG1uZW1pY0NvbnRleHRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uRnJvbVN1YnN0aXR1dGlvbkpTT04oanNvbiwgY29udGV4dCkge1xuICBjb25zdCB7IFRlcm1TdWJzdGl0dXRpb24sIEZyYW1lU3Vic3RpdHV0aW9uLCBTdGF0ZW1lbnRTdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBzdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpIHx8IEZyYW1lU3Vic3RpdHV0aW9uLmZyb21KU09OKGpzb24sIGNvbnRleHQpIHx8IFN0YXRlbWVudFN1YnN0aXR1dGlvbi5mcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNUb1R5cGVzSlNPTih0eXBlcykge1xuICBjb25zdCB0eXBlc0pTT04gPSB0eXBlcy5tYXAoKHR5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gdHlwZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtc1RvVGVybXNKU09OKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zSlNPTiA9IHRlcm1zLm1hcCgodGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1KU09OID0gdGVybS50b0pTT04oKTtcblxuICAgIHJldHVybiB0ZXJtSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtzVG9MaW5rc0pTT04obGlua3MpIHtcbiAgY29uc3QgbGlua3NKU09OID0gbGlua3MubWFwKChsaW5rKSA9PiB7XG4gICAgY29uc3QgbGlua0pTT04gPSBsaW5rLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGxpbmtKU09OO1xuICB9KTtcblxuICByZXR1cm4gbGlua3NKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNUb1J1bGVzSlNPTihydWxlcykge1xuICBjb25zdCBydWxlc0pTT04gPSBydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICBjb25zdCBydWxlSlNPTiA9IHJ1bGUudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcnVsZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBydWxlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbHNUb0xhYmVsc0pTT04obGFiZWxzKSB7XG4gIGNvbnN0IGxhYmVsc0pTT04gPSBsYWJlbHMubWFwKChsYWJlbCkgPT4ge1xuICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGxhYmVsc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmFtZXNUb0ZyYW1lc0pTT04oZnJhbWVzKSB7XG4gIGNvbnN0IGZyYW1lc0pTT04gPSBmcmFtZXMubWFwKChmcmFtZSkgPT4ge1xuICAgIGNvbnN0IGZyYW1lSlNPTiA9IGZyYW1lLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGZyYW1lSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGZyYW1lc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbXNUb0F4aW9tc0pTT04oYXhpb21zKSB7XG4gIGNvbnN0IGF4aW9tc0pTT04gPSBheGlvbXMubWFwKChheGlvbSkgPT4ge1xuICAgIGNvbnN0IGF4aW9tSlNPTiA9IGF4aW9tLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGF4aW9tSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGF4aW9tc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWFzVG9TY2hlbWFzSlNPTihzY2hlbWFzKSB7XG4gIGNvbnN0IHNjaGVtYXNKU09OID0gc2NoZW1hcy5tYXAoKHNjaGVtYSkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYUpTT04gPSBzY2hlbWEudG9KU09OKCk7XG5cbiAgICByZXR1cm4gc2NoZW1hSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHNjaGVtYXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNUb1ByZW1pc2VzSlNPTihwcmVtaXNlcykge1xuICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlcy5tYXAoKHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVvcmVtc1RvVGhlb3JlbXNKU09OKHRoZW9yZW1zKSB7XG4gIGNvbnN0IHRoZW9yZW1zSlNPTiA9IHRoZW9yZW1zLm1hcCgodGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IHRoZW9yZW1KU09OID0gdGhlb3JlbS50b0pTT04oKTtcblxuICAgIHJldHVybiB0aGVvcmVtSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNUb0h5cG90aGVzZXNKU09OKGh5cG90aGVzZXMpIHtcbiAgY29uc3QgaHlwb3RoZXNlc0pTT04gPSBoeXBvdGhlc2VzLm1hcCgoaHlwb3RoZXNpcykgPT4ge1xuICAgIGNvbnN0IGh5cG90aGVzaXNKU09OID0gaHlwb3RoZXNpcy50b0pTT04oKTtcblxuICAgIHJldHVybiBoeXBvdGhlc2lzSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGh5cG90aGVzZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4bmFtZVRvUHJldml4TmFtZUpTT04ocHJlZml4bmFtZSkge1xuICBjb25zdCBwcmVmaXhOYW1lSlNPTiA9IHByZWZpeG5hbWU7ICAvLy9cblxuICByZXR1cm4gcHJlZml4TmFtZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlclR5cGVzVG9TdXBlclR5cGVzSlNPTihzdXBlclR5cGVzKSB7XG4gIGNvbnN0IHN1cGVyVHlwZXNKU09OID0gc3VwZXJUeXBlcy5tYXAoKHN1cGVyVHlwZSkgPT4ge1xuICAgIGNvbnN0IGFicmlkZ2VkID0gdHJ1ZSxcbiAgICAgIHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGUudG9KU09OKGFicmlkZ2VkKTtcblxuICAgIHJldHVybiBzdXBlclR5cGVKU09OO1xuICB9KTtcblxuICByZXR1cm4gc3VwZXJUeXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTihwcm9wZXJ0aWVzKSB7XG4gIGNvbnN0IHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlKU09OID0gcHJvcGVydHkudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHlKU09OO1xuICB9KTtcblxuICByZXR1cm4gcHJvcGVydGllc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbGl0aWVzVG9FcXVhbGl0aWVzSlNPTihlcXVhbGl0aWVzKSB7XG4gIGNvbnN0IGVxdWFsaXRpZXNKU09OID0gZXF1YWxpdGllcy5tYXAoKGVxdWFsaXR5KSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHlKU09OID0gZXF1YWxpdHkudG9KU09OKCk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHlKU09OO1xuICB9KTtcblxuICByZXR1cm4gZXF1YWxpdGllc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRzVG9TdGF0ZW1lbnRzSlNPTihzdGF0ZW1lbnRzKSB7XG4gIGNvbnN0IHN0YXRlbWVudHNKU09OID0gc3RhdGVtZW50cy5tYXAoKHN0YXRlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnQudG9KU09OKCk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50SlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0aW9uc1RvQXNzZXJ0aW9uc0pTT04oYXNzZXJ0aW9ucykge1xuICBjb25zdCBhc3NlcnRpb25zSlNPTiA9IGFzc2VydGlvbnMubWFwKChhc3NlcnRpb24pID0+IHtcbiAgICBjb25zdCBhc3NlcnRpb25KU09OID0gYXNzZXJ0aW9uLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGFzc2VydGlvbkpTT047XG4gIH0pO1xuXG4gIHJldHVybiBhc3NlcnRpb25zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRvcnNUb0dlbmVyYXRvcnNKU09OKGdlbmVyYXRvcnMpIHtcbiAgY29uc3QgZ2VuZXJhdG9yc0pTT04gPSBnZW5lcmF0b3JzLm1hcCgoZ2VuZXJhdG9yKSA9PiB7XG4gICAgY29uc3QgZ2VuZXJhdG9ySlNPTiA9IGdlbmVyYXRvci50b0pTT04oKTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JKU09OO1xuICB9KTtcblxuICByZXR1cm4gZ2VuZXJhdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJhaW50c1RvQ29uc3RyYWludHNKU09OKGNvbnN0cmFpbnRzKSB7XG4gIGNvbnN0IGNvbnN0cmFpbnRzSlNPTiA9IGNvbnN0cmFpbnRzLm1hcCgoY29uc3RyYWludCkgPT4ge1xuICAgIGNvbnN0IGNvbnN0cmFpbnRKU09OID0gY29uc3RyYWludC50b0pTT04oKTtcblxuICAgIHJldHVybiBjb25zdHJhaW50SlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cmFpbnRzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04oY29uamVjdHVyZXMpIHtcbiAgY29uc3QgY29uamVjdHVyZXNKU09OID0gY29uamVjdHVyZXMubWFwKChjb25qZWN0dXJlKSA9PiB7XG4gICAgY29uc3QgY29uamVjdHVyZUpTT04gPSBjb25qZWN0dXJlLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVKU09OO1xuICB9KTtcblxuICByZXR1cm4gY29uamVjdHVyZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTihjb21iaW5hdG9ycykge1xuICBjb25zdCBjb21iaW5hdG9yc0pTT04gPSBjb21iaW5hdG9ycy5tYXAoKGNvbWJpbmF0b3IpID0+IHtcbiAgICBjb25zdCBjb21iaW5hdG9ySlNPTiA9IGNvbWJpbmF0b3IudG9KU09OKCk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvckpTT047XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5hdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3N1bXB0aW9uc1RvQXNzdW1wdGlvbnNKU09OKGFzc3VtcHRpb25zKSB7XG4gIGNvbnN0IGFzc3VtcHRpb25zSlNPTiA9IGFzc3VtcHRpb25zLm1hcCgoYXNzdW1wdGlvbikgPT4ge1xuICAgIGNvbnN0IGFzc3VtcHRpb25KU09OID0gYXNzdW1wdGlvbi50b0pTT04oKTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIGFzc3VtcHRpb25zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTihzdXBwb3NpdGlvbnMpIHtcbiAgY29uc3Qgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9ucy5tYXAoKHN1cHBvc2l0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25KU09OID0gc3VwcG9zaXRpb24udG9KU09OKCk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25KU09OO1xuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yc1RvQ29uc3RydWN0b3JzSlNPTihjb25zdHJ1Y3RvcnMpIHtcbiAgY29uc3QgY29uc3RydWN0b3JzSlNPTiA9IGNvbnN0cnVjdG9ycy5tYXAoKGNvbnN0cnVjdG9yKSA9PiB7XG4gICAgY29uc3QgY29uc3RydWN0b3JKU09OID0gY29uc3RydWN0b3IudG9KU09OKCk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JKU09OO1xuICB9KTtcblxuICByZXR1cm4gY29uc3RydWN0b3JzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVQcmVmaXhlc1RvVHlwZVByZWZpeGVzSlNPTih0eXBlUHJlZml4ZXMpIHtcbiAgY29uc3QgdHlwZVByZWZpeGVzSlNPTiA9IHR5cGVQcmVmaXhlcy5tYXAoKHR5cGVQcmVmaXgpID0+IHtcbiAgICBjb25zdCB0eXBlUHJlZml4SlNPTiA9IHR5cGVQcmVmaXgudG9KU09OKCk7XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeEpTT047XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlUHJlZml4ZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uc1RvU3Vic3RpdHV0aW9uc0pTT04oc3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBzdWJzdGl0dXRpb25zSlNPTiA9IHN1YnN0aXR1dGlvbnMubWFwKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25KU09OID0gc3Vic3RpdHV0aW9uLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbkpTT047XG4gIH0pO1xuXG4gIHJldHVybiBzdWJzdGl0dXRpb25zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZXNUb01ldGF2YXJpYWJsZXNKU09OKG1ldGF2YXJpYWJsZXMpIHtcbiAgY29uc3QgbWV0YXZhcmlhYmxlc0pTT04gPSBtZXRhdmFyaWFibGVzLm1hcCgobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlSlNPTiA9IG1ldGF2YXJpYWJsZS50b0pTT04oKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVKU09OO1xuICB9KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtbmVtaWNDb250ZXh0c1RvTW5lbWljQ29udGV4dHNKU09OKG1uZW1pY0NvbnRleHRzKSB7XG4gIGNvbnN0IG1uZW1pY0NvbnRleHRzSlNPTiA9IG1uZW1pY0NvbnRleHRzLm1hcCgobW5lbWljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IG1uZW1pY0NvbnRleHRKU09OID0gbW5lbWljQ29udGV4dC50b0pTT04oKTtcblxuICAgIHJldHVybiBtbmVtaWNDb250ZXh0SlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIG1uZW1pY0NvbnRleHRzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVkVmFyaWFibGVzVG9EZWNsYXJlZFZhcmlhYmxlc0pTT04oZGVjbGFyZWRWYXJpYWJsZXMpIHtcbiAgY29uc3QgZGVjbGFyZWRWYXJpYWJsZXNKU09OID0gZGVjbGFyZWRWYXJpYWJsZXMubWFwKChkZWNsYXJlZFZhcmlhYmxlKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyZWRWYXJpYWJsZUpTT04gPSBkZWNsYXJlZFZhcmlhYmxlLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGVKU09OO1xuICB9KTtcblxuICByZXR1cm4gZGVjbGFyZWRWYXJpYWJsZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjbGFyZWRNZXRhdmFyaWFibGVzVG9EZWNsYXJlZE1ldGF2YXJpYWJsZXNKU09OKGRlY2xhcmVkTWV0YXZhcmlhYmxlcykge1xuICBjb25zdCBkZWNsYXJlZE1ldGF2YXJpYWJsZXNKU09OID0gZGVjbGFyZWRNZXRhdmFyaWFibGVzLm1hcCgoZGVjbGFyZWRNZXRhdmFyaWFibGUpID0+IHtcbiAgICBjb25zdCBkZWNsYXJlZE1ldGF2YXJpYWJsZUpTT04gPSBkZWNsYXJlZE1ldGF2YXJpYWJsZS50b0pTT04oKTtcblxuICAgIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZXNKU09OO1xufVxuXG5mdW5jdGlvbiBmaW5kVHlwZUJ5TmFtZShuYW1lLCBjb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVOYW1lID0gbmFtZSwgIC8vL1xuICAgICAgICB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIHJldHVybiB0eXBlO1xufVxuXG5mdW5jdGlvbiBmaW5kTWV0YVR5cGVCeU5hbWUobmFtZSwgY29udGV4dCkge1xuICBjb25zdCBtZXRhVHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgIG1ldGFUeXBlID0gY29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpO1xuXG4gIHJldHVybiBtZXRhVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnRpb25zRnJvbUpTT04iLCJhc3NlcnRpb25zVG9Bc3NlcnRpb25zSlNPTiIsImFzc3VtcHRpb25zRnJvbUpTT04iLCJhc3N1bXB0aW9uc1RvQXNzdW1wdGlvbnNKU09OIiwiYXhpb21zRnJvbUpTT04iLCJheGlvbXNUb0F4aW9tc0pTT04iLCJjb21iaW5hdG9yc0Zyb21KU09OIiwiY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTiIsImNvbmNsdXNpb25Gcm9tSlNPTiIsImNvbmNsdXNpb25Ub0NvbmNsdXNpb25KU09OIiwiY29uamVjdHVyZXNGcm9tSlNPTiIsImNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04iLCJjb25zdHJhaW50c0Zyb21KU09OIiwiY29uc3RyYWludHNUb0NvbnN0cmFpbnRzSlNPTiIsImNvbnN0cnVjdG9yc0Zyb21KU09OIiwiY29uc3RydWN0b3JzVG9Db25zdHJ1Y3RvcnNKU09OIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzRnJvbUpTT04iLCJkZWNsYXJlZE1ldGF2YXJpYWJsZXNUb0RlY2xhcmVkTWV0YXZhcmlhYmxlc0pTT04iLCJkZWNsYXJlZFZhcmlhYmxlc0Zyb21KU09OIiwiZGVjbGFyZWRWYXJpYWJsZXNUb0RlY2xhcmVkVmFyaWFibGVzSlNPTiIsImRlZHVjdGlvbkZyb21KU09OIiwiZGVkdWN0aW9uVG9EZWR1Y3Rpb25KU09OIiwiZXF1YWxpdGllc0Zyb21KU09OIiwiZXF1YWxpdGllc1RvRXF1YWxpdGllc0pTT04iLCJmcmFtZXNGcm9tSlNPTiIsImZyYW1lc1RvRnJhbWVzSlNPTiIsImdlbmVyYXRvcnNGcm9tSlNPTiIsImdlbmVyYXRvcnNUb0dlbmVyYXRvcnNKU09OIiwiaHlwb3RoZXNlc0Zyb21KU09OIiwiaHlwb3RoZXNlc1RvSHlwb3RoZXNlc0pTT04iLCJsYWJlbEZyb21KU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsImxhYmVsc0Zyb21KU09OIiwibGFiZWxzVG9MYWJlbHNKU09OIiwibGlua3NGcm9tSlNPTiIsImxpbmtzVG9MaW5rc0pTT04iLCJtZXRhVHlwZUZyb21KU09OIiwibWV0YVR5cGVUb01ldGFUeXBlSlNPTiIsIm1ldGF2YXJpYWJsZXNGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZXNUb01ldGF2YXJpYWJsZXNKU09OIiwibW5lbWljQ29udGV4dEZyb21KU09OIiwibW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04iLCJtbmVtaWNDb250ZXh0c0Zyb21KU09OIiwibW5lbWljQ29udGV4dHNUb01uZW1pY0NvbnRleHRzSlNPTiIsInByZWZpeE5hbWVGcm9tSlNPTiIsInByZWZpeG5hbWVUb1ByZXZpeE5hbWVKU09OIiwicHJlbWlzZXNGcm9tSlNPTiIsInByZW1pc2VzVG9QcmVtaXNlc0pTT04iLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiIsInByb3Zpc2lvbmFsRnJvbUpTT04iLCJwcm92aXNpb25hbFRvUHJvdmlzaW9uYWxKU09OIiwicnVsZXNGcm9tSlNPTiIsInJ1bGVzVG9SdWxlc0pTT04iLCJzY2hlbWFzRnJvbUpTT04iLCJzY2hlbWFzVG9TY2hlbWFzSlNPTiIsInNpZ25hdHVyZUZyb21KU09OIiwic2lnbmF0dXJlVG9TaWduYXR1cmVKU09OIiwic3RhdGVtZW50c0Zyb21KU09OIiwic3RhdGVtZW50c1RvU3RhdGVtZW50c0pTT04iLCJzdWJzdGl0dXRpb25Gcm9tU3Vic3RpdHV0aW9uSlNPTiIsInN1YnN0aXR1dGlvbnNGcm9tSlNPTiIsInN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OIiwic3VwZXJUeXBlc0Zyb21KU09OIiwic3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04iLCJzdXBwb3NpdGlvbnNGcm9tSlNPTiIsInN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTiIsInRlcm1zRnJvbUpTT04iLCJ0ZXJtc1RvVGVybXNKU09OIiwidGhlb3JlbXNGcm9tSlNPTiIsInRoZW9yZW1zVG9UaGVvcmVtc0pTT04iLCJ0eXBlRnJvbUpTT04iLCJ0eXBlUHJlZml4ZXNGcm9tSlNPTiIsInR5cGVQcmVmaXhlc1RvVHlwZVByZWZpeGVzSlNPTiIsInR5cGVUb1R5cGVKU09OIiwidHlwZXNGcm9tSlNPTiIsInR5cGVzVG9UeXBlc0pTT04iLCJqc29uIiwiY29udGV4dCIsInR5cGUiLCJzdHJpbmciLCJuYW1lIiwiZmluZFR5cGVCeU5hbWUiLCJsYWJlbCIsIkxhYmVsIiwiZWxlbWVudHMiLCJsYWJlbEpTT04iLCJmcm9tSlNPTiIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlOYW1lIiwiZGVkdWN0aW9uIiwiRGVkdWN0aW9uIiwiZGVkdWN0aW9uSlNPTiIsInNpZ25hdHVyZSIsIlNpZ25hdHVyZSIsInNpZ25hdHVyZUpTT04iLCJjb25jbHVzaW9uIiwiQ29uY2x1c2lvbiIsImNvbmNsdXNpb25KU09OIiwicHJvdmlzaW9uYWwiLCJyZWxlYXNlQ29udGV4dCIsIm1uZW1pY0NvbnRleHQiLCJNbmVtaWNDb250ZXh0IiwidHlwZXMiLCJ0eXBlc0pTT04iLCJUeXBlIiwiZm9yRWFjaCIsInR5cGVKU09OIiwicHVzaCIsInRlcm1zIiwiVGVybSIsInRlcm1zSlNPTiIsIm1hcCIsInRlcm1KU09OIiwidGVybSIsImxpbmtzIiwiTGluayIsImxpbmtzSlNPTiIsImxpbmtKU09OIiwibGluayIsInJ1bGVzIiwiUnVsZSIsInJ1bGVzSlNPTiIsInJ1bGVKU09OIiwicnVsZSIsImZyYW1lcyIsIkZyYW1lIiwiZnJhbWVzSlNPTiIsImZyYW1lSlNPTiIsImZyYW1lIiwibGFiZWxzIiwibGFiZWxzSlNPTiIsImF4aW9tcyIsIkF4aW9tIiwiYXhpb21zSlNPTiIsImF4aW9tSlNPTiIsImF4aW9tIiwic2NoZW1hcyIsIlNjaGVtYSIsInNjaGVtYXNKU09OIiwic2NoZW1hSlNPTiIsInNjaGVtYSIsInByZW1pc2VzIiwiUHJlbWlzZSIsInByZW1pc2VzSlNPTiIsInByZW1pc2VKU09OIiwicHJlbWlzZSIsInRoZW9yZW1zIiwiVGhlb3JlbSIsInRoZW9yZW1zSlNPTiIsInRoZW9yZW1KU09OIiwidGhlb3JlbSIsImVxdWFsaXRpZXMiLCJFcXVhbGl0eSIsImVxdWFsaXRpZXNKU09OIiwiZXF1YWxpdHlKU09OIiwiZXF1YWxpdHkiLCJwcm9wZXJ0aWVzIiwiUHJvcGVydHkiLCJwcm9wZXJ0aWVzSlNPTiIsInByb3BlcnR5SlNPTiIsInByb3BlcnR5IiwicHJlZml4TmFtZSIsInN1cGVyVHlwZXMiLCJzdXBlclR5cGVzSlNPTiIsInN1cGVyVHlwZUpTT04iLCJzdXBlclR5cGUiLCJoeXBvdGhlc2VzIiwiSHlwb3RoZXNpcyIsImh5cG90aGVzZXNKU09OIiwiaHlwb3RoZXNpc0pTT04iLCJoeXBvdGhlc2lzIiwic3RhdGVtZW50cyIsIlN0YXRlbWVudCIsInN0YXRlbWVudHNKU09OIiwic3RhdGVtZW50SlNPTiIsInN0YXRlbWVudCIsImFzc2VydGlvbnMiLCJUeXBlQXNzZXJ0aW9uIiwiU2NoZW1hQXNzZXJ0aW9uIiwiRGVmaW5lZEFzc2VydGlvbiIsIlByb3BlcnR5QXNzZXJ0aW9uIiwiU3VicHJvb2ZBc3NlcnRpb24iLCJDb250YWluZWRBc3NlcnRpb24iLCJTaWduYXR1cmVBc3NlcnRpb24iLCJhc3NlcnRpb25zSlNPTiIsImFzc2VydGlvbkpTT04iLCJhc3NlcnRpb24iLCJnZW5lcmF0b3JzIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yc0pTT04iLCJnZW5lcmF0b3JKU09OIiwiZ2VuZXJhdG9yIiwiY29uamVjdHVyZXMiLCJDb25qZWN0dXJlIiwiY29uamVjdHVyZXNKU09OIiwiY29uamVjdHVyZUpTT04iLCJjb25qZWN0dXJlIiwiY29tYmluYXRvcnMiLCJDb21iaW5hdG9yIiwiY29tYmluYXRvcnNKU09OIiwiY29tYmluYXRvckpTT04iLCJjb21iaW5hdG9yIiwiYXNzdW1wdGlvbnMiLCJBc3N1bXB0aW9uIiwiYXNzdW1wdGlvbnNKU09OIiwiYXNzdW1wdGlvbkpTT04iLCJhc3N1bXB0aW9uIiwiY29uc3RyYWludHMiLCJDb25zdHJhaW50IiwiY29uc3RyYWludHNKU09OIiwiY29uc3RyYWludEpTT04iLCJjb25zdHJhaW50IiwidHlwZVByZWZpeGVzIiwiVHlwZVByZWZpeCIsInR5cGVQcmVmaXhlc0pTT04iLCJ0eXBlUHJlZml4SlNPTiIsInR5cGVQcmVmaXgiLCJjb25zdHJ1Y3RvcnMiLCJDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yc0pTT04iLCJjb25zdHJ1Y3RvckpTT04iLCJjb25zdHJ1Y3RvciIsInN1cHBvc2l0aW9ucyIsIlN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uSlNPTiIsInN1cHBvc2l0aW9uIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNKU09OIiwic3Vic3RpdHV0aW9uSlNPTiIsInN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZXMiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVzSlNPTiIsIm1ldGF2YXJpYWJsZUpTT04iLCJtZXRhdmFyaWFibGUiLCJjb250ZXh0cyIsIm1uZW1pY0NvbnRleHRzIiwiZGVjbGFyZWRWYXJpYWJsZXMiLCJWYXJpYWJsZSIsImRlY2xhcmVkVmFyaWFibGVzSlNPTiIsImRlY2xhcmVkVmFyaWFibGVKU09OIiwidmFyaWFibGUiLCJkZWNsYXJlZFZhcmlhYmxlIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVzSlNPTiIsImRlY2xhcmVkTWV0YXZhcmlhYmxlSlNPTiIsImRlY2xhcmVkTWV0YXZhcmlhYmxlIiwiYWJyaWRnZWQiLCJ0b0pTT04iLCJtZXRhVHlwZUpTT04iLCJwcm92aXNpb25hbEpTT04iLCJtbmVtaWNDb250ZXh0SlNPTiIsIlRlcm1TdWJzdGl0dXRpb24iLCJGcmFtZVN1YnN0aXR1dGlvbiIsIlN0YXRlbWVudFN1YnN0aXR1dGlvbiIsInByZWZpeG5hbWUiLCJwcmVmaXhOYW1lSlNPTiIsIm1uZW1pY0NvbnRleHRzSlNPTiIsInR5cGVOYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdXZ0JBO2VBQUFBOztRQXVjQUM7ZUFBQUE7O1FBallBQztlQUFBQTs7UUFtYkFDO2VBQUFBOztRQS9vQkFDO2VBQUFBOztRQTRmQUM7ZUFBQUE7O1FBaFRBQztlQUFBQTs7UUF5YkFDO2VBQUFBOztRQW53QkFDO2VBQUFBOztRQXFpQkFDO2VBQUFBOztRQTNPQUM7ZUFBQUE7O1FBK2JBQztlQUFBQTs7UUEvWUFDO2VBQUFBOztRQXFZQUM7ZUFBQUE7O1FBcldBQztlQUFBQTs7UUF1WkFDO2VBQUFBOztRQXJUQUM7ZUFBQUE7O1FBaVhBQztlQUFBQTs7UUFsWUFDO2VBQUFBOztRQXdYQUM7ZUFBQUE7O1FBLzJCQUM7ZUFBQUE7O1FBbWpCQUM7ZUFBQUE7O1FBelZBQztlQUFBQTs7UUF5Z0JBQztlQUFBQTs7UUF6bUJBQztlQUFBQTs7UUFraEJBQztlQUFBQTs7UUF0VUFDO2VBQUFBOztRQTJiQUM7ZUFBQUE7O1FBamZBQztlQUFBQTs7UUE4YUFDO2VBQUFBOztRQTF0QkFDO2VBQUFBOztRQWlrQkFDO2VBQUFBOztRQTNaQUM7ZUFBQUE7O1FBd2ZBQztlQUFBQTs7UUF4aUJBQztlQUFBQTs7UUFvaEJBQztlQUFBQTs7UUE3bkJBQztlQUFBQTs7UUEwakJBQztlQUFBQTs7UUF0RkFDO2VBQUFBOztRQXNZQUM7ZUFBQUE7O1FBNXlCQUM7ZUFBQUE7O1FBOGhCQUM7ZUFBQUE7O1FBeEdBQztlQUFBQTs7UUFnWUFDO2VBQUFBOztRQTNtQkFDO2VBQUFBOztRQThjQUM7ZUFBQUE7O1FBOWdCQUM7ZUFBQUE7O1FBZ2ZBQztlQUFBQTs7UUFoY0FDO2VBQUFBOztRQStlQUM7ZUFBQUE7O1FBaHJCQUM7ZUFBQUE7O1FBOGhCQUM7ZUFBQUE7O1FBN2RBQztlQUFBQTs7UUE4Z0JBQztlQUFBQTs7UUE5Y0FDO2VBQUFBOztRQXNmQUM7ZUFBQUE7O1FBbnBC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
|
package/package.json
CHANGED
package/src/utilities/json.js
CHANGED
|
@@ -353,7 +353,7 @@ export function statementsFromJSON(json, context) {
|
|
|
353
353
|
export function assertionsFromJSON(json, context) {
|
|
354
354
|
let { assertions } = json;
|
|
355
355
|
|
|
356
|
-
const { TypeAssertion, SchemaAssertion, DefinedAssertion, PropertyAssertion, SubproofAssertion, ContainedAssertion,
|
|
356
|
+
const { TypeAssertion, SchemaAssertion, DefinedAssertion, PropertyAssertion, SubproofAssertion, ContainedAssertion, SignatureAssertion } = elements,
|
|
357
357
|
assertionsJSON = assertions; ///
|
|
358
358
|
|
|
359
359
|
assertions = assertionsJSON.map((assertionJSON) => {
|
|
@@ -364,7 +364,7 @@ export function assertionsFromJSON(json, context) {
|
|
|
364
364
|
|| PropertyAssertion.fromJSON(json, context)
|
|
365
365
|
|| SubproofAssertion.fromJSON(json, context)
|
|
366
366
|
|| ContainedAssertion.fromJSON(json, context)
|
|
367
|
-
||
|
|
367
|
+
|| SignatureAssertion.fromJSON(json, context);
|
|
368
368
|
|
|
369
369
|
return assertion;
|
|
370
370
|
});
|
|
@@ -805,16 +805,6 @@ export function statementsToStatementsJSON(statements) {
|
|
|
805
805
|
return statementsJSON;
|
|
806
806
|
}
|
|
807
807
|
|
|
808
|
-
export function signaturesToSignaturesJSON(signatures) {
|
|
809
|
-
const signaturesJSON = signatures.map((signature) => {
|
|
810
|
-
const signatureJSON = signature.toJSON();
|
|
811
|
-
|
|
812
|
-
return signatureJSON;
|
|
813
|
-
});
|
|
814
|
-
|
|
815
|
-
return signaturesJSON;
|
|
816
|
-
}
|
|
817
|
-
|
|
818
808
|
export function assertionsToAssertionsJSON(assertions) {
|
|
819
809
|
const assertionsJSON = assertions.map((assertion) => {
|
|
820
810
|
const assertionJSON = assertion.toJSON();
|