@cubist-labs/cubesigner-sdk 0.4.237 → 0.4.241
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/dist/package.json +3 -2
- package/dist/src/audit_log.d.ts +336 -0
- package/dist/src/audit_log.d.ts.map +1 -0
- package/dist/src/audit_log.js +180 -0
- package/dist/src/client/api_client.d.ts +26 -13
- package/dist/src/client/api_client.d.ts.map +1 -1
- package/dist/src/client/api_client.js +48 -30
- package/dist/src/client/base_client.d.ts +7 -0
- package/dist/src/client/base_client.d.ts.map +1 -1
- package/dist/src/client/base_client.js +14 -6
- package/dist/src/client.d.ts +24 -32
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +21 -29
- package/dist/src/schema_types.d.ts +1 -1
- package/dist/src/schema_types.d.ts.map +1 -1
- package/dist/src/schema_types.js +1 -1
- package/package.json +3 -2
- package/src/audit_log.ts +195 -0
- package/src/client/api_client.ts +58 -19
- package/src/client/base_client.ts +21 -8
- package/src/client.ts +23 -57
- package/src/schema_types.ts +1 -1
package/dist/src/schema_types.js
CHANGED
|
@@ -40,4 +40,4 @@ exports.ALL_OPERATION_KINDS = Object.keys(AllOperationKinds);
|
|
|
40
40
|
function coercePolicyInfo(p) {
|
|
41
41
|
return p;
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErU0EsNENBRUM7QUExUUQsUUFBUTtBQUNSLDhFQUE4RTtBQUM5RSxvRkFBb0Y7QUFDcEYsTUFBTSxpQkFBaUIsR0FBZ0M7SUFDckQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsSUFBSTtJQUNwQixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixRQUFRLEVBQUUsSUFBSTtJQUNkLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsSUFBSTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsSUFBSTtJQUNwQixVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBQ1csUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUE2QixDQUFDO0FBc085Rjs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLENBQXdCO0lBQ3ZELE9BQU8sQ0FBZSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGNvbXBvbmVudHMsIG9wZXJhdGlvbnMsIHBhdGhzIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgdHlwZSB7IEpzb25NYXAsIEpzb25WYWx1ZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IHR5cGUgc2NoZW1hcyA9IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VySW5mbyA9IHNjaGVtYXNbXCJVc2VySW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ01lbWJlcnNoaXAgPSBzY2hlbWFzW1wiVXNlckluT3JnTWVtYmVyc2hpcFwiXTtcbmV4cG9ydCB0eXBlIENvbmZpZ3VyZWRNZmEgPSBzY2hlbWFzW1wiQ29uZmlndXJlZE1mYVwiXTtcbmV4cG9ydCB0eXBlIFJhdGNoZXRDb25maWcgPSBzY2hlbWFzW1wiUmF0Y2hldENvbmZpZ1wiXTtcbmV4cG9ydCB0eXBlIElkZW50aXR5UHJvb2YgPSBzY2hlbWFzW1wiSWRlbnRpdHlQcm9vZlwiXTtcbmV4cG9ydCB0eXBlIEFkZElkZW50aXR5UmVxdWVzdCA9IHNjaGVtYXNbXCJBZGRJZGVudGl0eVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBMaXN0SWRlbnRpdHlSZXNwb25zZSA9IHNjaGVtYXNbXCJMaXN0SWRlbnRpdGllc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVG90cEluZm8gPSBzY2hlbWFzW1wiVG90cEluZm9cIl07XG5cbmV4cG9ydCB0eXBlIE9pZGNBdXRoUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9IHNjaGVtYXNbXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBcGlNZmFGaWRvQ2hhbGxlbmdlID0gc2NoZW1hc1tcIkZpZG9Bc3NlcnRDaGFsbGVuZ2VcIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYVwiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5ID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsXCJdO1xuXG5leHBvcnQgdHlwZSBPcmdJbmZvID0gc2NoZW1hc1tcIk9yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBPcmdFeHREYXRhID0gTm9uTnVsbGFibGU8T3JnSW5mb1tcImV4dF9kYXRhXCJdPjtcbmV4cG9ydCB0eXBlIFB1YmxpY09yZ0luZm8gPSBzY2hlbWFzW1wiUHVibGljT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ0luZm8gPSBzY2hlbWFzW1wiVXNlckluT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU9yZ1JlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlT3JnUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIE9yZ0V4dFByb3BzID0gTm9uTnVsbGFibGU8VXBkYXRlT3JnUmVxdWVzdFtcImV4dF9wcm9wc1wiXT47XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVVc2VyTWVtYmVyc2hpcFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb24gPSBzY2hlbWFzW1wiTm90aWZpY2F0aW9uRW5kcG9pbnRDb25maWd1cmF0aW9uXCJdO1xuZXhwb3J0IHR5cGUgT3JnRXZlbnRzID0gc2NoZW1hc1tcIk9yZ0V2ZW50RGlzY3JpbWluYW50c1wiXTtcbmV4cG9ydCB0eXBlIEJpbGxpbmdFdmVudCA9IHNjaGVtYXNbXCJCaWxsaW5nRXZlbnRcIl07XG5leHBvcnQgdHlwZSBPcGVyYXRpb25LaW5kID0gc2NoZW1hc1tcIk9wZXJhdGlvbktpbmRcIl07XG5cbi8vIE5PVEU6XG4vLyAgIHdlIHVzZSBgUmVjb3JkPE9wZXJhdGlvbktpbmQsIC4uLj5gIChpbnN0ZWFkIG9mIGBPcGVyYXRpb25LaW5kW11gKSB0byBnZXRcbi8vICAgdGhlIHR5cGUgY2hlY2tlciB0byBjb21wbGFpbiB1bmxlc3MgdGhpcyByZWNvcmQgaW5jbHVkZXMgZXZlcnkgc2luZ2xlIG9wZXJhdGlvblxuY29uc3QgQWxsT3BlcmF0aW9uS2luZHM6IFJlY29yZDxPcGVyYXRpb25LaW5kLCB0cnVlPiA9IHtcbiAgQXZhU2lnbjogdHJ1ZSxcbiAgQXZhQ2hhaW5UeFNpZ246IHRydWUsXG4gIEJhYnlsb25Db3ZTaWduOiB0cnVlLFxuICBCYWJ5bG9uUmVnaXN0cmF0aW9uOiB0cnVlLFxuICBCYWJ5bG9uU3Rha2luZzogdHJ1ZSxcbiAgQmxvYlNpZ246IHRydWUsXG4gIEJ0Y01lc3NhZ2VTaWduOiB0cnVlLFxuICBCdGNTaWduOiB0cnVlLFxuICBEaWZmaWVIZWxsbWFuOiB0cnVlLFxuICBQc2J0U2lnbjogdHJ1ZSxcbiAgVGFwcm9vdFNpZ246IHRydWUsXG4gIEVpcDE5MVNpZ246IHRydWUsXG4gIEVpcDcxMlNpZ246IHRydWUsXG4gIEVvdHNOb25jZXM6IHRydWUsXG4gIEVvdHNTaWduOiB0cnVlLFxuICBFdGgxU2lnbjogdHJ1ZSxcbiAgRXRoMlNpZ246IHRydWUsXG4gIEV0aDJTdGFrZTogdHJ1ZSxcbiAgRXRoMlVuc3Rha2U6IHRydWUsXG4gIFNvbGFuYVNpZ246IHRydWUsXG4gIFN1aVNpZ246IHRydWUsXG4gIFRlbmRlcm1pbnRTaWduOiB0cnVlLFxuICBSb2xlVXBkYXRlOiB0cnVlLFxufTtcbmV4cG9ydCBjb25zdCBBTExfT1BFUkFUSU9OX0tJTkRTID0gT2JqZWN0LmtleXMoQWxsT3BlcmF0aW9uS2luZHMpIGFzIHJlYWRvbmx5IE9wZXJhdGlvbktpbmRbXTtcblxuZXhwb3J0IHR5cGUgT3JnRGF0YSA9IHNjaGVtYXNbXCJPcmdEYXRhXCJdO1xuZXhwb3J0IHR5cGUgVXNlck9yZ3NSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyT3Jnc1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBPaWRjSWRlbnRpdHkgPSBzY2hlbWFzW1wiT2lkY0lkZW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgTWVtYmVyUm9sZSA9IHNjaGVtYXNbXCJNZW1iZXJSb2xlXCJdO1xuXG5leHBvcnQgdHlwZSBTY2hlbWFLZXlUeXBlID0gc2NoZW1hc1tcIktleVR5cGVcIl07XG5cbmV4cG9ydCB0eXBlIExpc3RLZXlzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleVByb3BlcnRpZXMgPSBzY2hlbWFzW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleUluZm8gPSBzY2hlbWFzW1wiS2V5SW5mb1wiXTtcbmV4cG9ydCB0eXBlIEtleUluZm9Kd3QgPSBzY2hlbWFzW1wiS2V5SW5mb0p3dFwiXTtcbmV4cG9ydCB0eXBlIEtleUF0dGVzdGF0aW9uQ2xhaW1zID0gc2NoZW1hc1tcIktleUF0dGVzdGF0aW9uQ2xhaW1zXCJdO1xuZXhwb3J0IHR5cGUgS2V5QXR0ZXN0YXRpb25RdWVyeSA9XG4gIHBhdGhzW1wiL3YwL29yZy97b3JnX2lkfS9rZXlzL3trZXlfaWR9L2F0dGVzdFwiXVtcImdldFwiXVtcInBhcmFtZXRlcnNcIl1bXCJxdWVyeVwiXTtcbmV4cG9ydCB0eXBlIFJvbGVJbmZvSnd0ID0gc2NoZW1hc1tcIlJvbGVJbmZvSnd0XCJdO1xuZXhwb3J0IHR5cGUgUm9sZUF0dGVzdGF0aW9uQ2xhaW1zID0gc2NoZW1hc1tcIlJvbGVBdHRlc3RhdGlvbkNsYWltc1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVBdHRlc3RhdGlvblF1ZXJ5ID1cbiAgcGF0aHNbXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hdHRlc3RcIl1bXCJnZXRcIl1bXCJwYXJhbWV0ZXJzXCJdW1wicXVlcnlcIl07XG5leHBvcnQgdHlwZSBSb2xlQXR0ZXN0YXRpb25WZXJib3NpdHkgPSBzY2hlbWFzW1wiUm9sZUF0dGVzdGF0aW9uVmVyYm9zaXR5XCJdO1xuZXhwb3J0IHR5cGUgS2V5SW5Sb2xlSW5mbyA9IHNjaGVtYXNbXCJLZXlJblJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZEdldFVzZXJzSW5PcmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEdldFVzZXJCeUVtYWlsUmVzcG9uc2UgPSBzY2hlbWFzW1wiR2V0VXNlckJ5RW1haWxSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEdldFVzZXJCeU9pZGNSZXNwb25zZSA9IHNjaGVtYXNbXCJHZXRVc2VyQnlPaWRjUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJJblJvbGVJbmZvID0gc2NoZW1hc1tcIlVzZXJJblJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgS2V5VHlwZUFwaSA9IHNjaGVtYXNbXCJLZXlUeXBlXCJdO1xuXG5leHBvcnQgdHlwZSBMaXN0S2V5Um9sZXNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0S2V5Um9sZXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIExpc3RSb2xlc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTGlzdFJvbGVLZXlzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBMaXN0Um9sZVVzZXJzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlUm9sZVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlUm9sZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBLZXlXaXRoUG9saWNpZXNJbmZvID0gc2NoZW1hc1tcIktleUluUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBSb2xlSW5mbyA9IHNjaGVtYXNbXCJSb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVBY3Rpb24gPSBzY2hlbWFzW1wiUm9sZUFjdGlvblwiXTtcbmV4cG9ydCB0eXBlIFJlc3RyaWN0ZWRBY3Rpb25zTWFwID0gUGFydGlhbDxSZWNvcmQ8Um9sZUFjdGlvbiwgTWVtYmVyUm9sZVtdPj47XG5cbmV4cG9ydCB0eXBlIFNlc3Npb25JbmZvID0gc2NoZW1hc1tcIlNlc3Npb25JbmZvXCJdO1xuZXhwb3J0IHR5cGUgQ2xpZW50U2Vzc2lvbkluZm8gPSBzY2hlbWFzW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG5leHBvcnQgdHlwZSBOZXdTZXNzaW9uUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgU2Vzc2lvbnNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBFZGl0UG9saWN5ID0gc2NoZW1hc1tcIkVkaXRQb2xpY3lcIl07XG5cbmV4cG9ydCB0eXBlIENvbnRhY3RJbmZvID0gc2NoZW1hc1tcIkNvbnRhY3RJbmZvUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBZGRyZXNzTWFwID0gc2NoZW1hc1tcIkFkZHJlc3NNYXBcIl07XG5leHBvcnQgdHlwZSBCdGNDaGFpbiA9IHNjaGVtYXNbXCJCdGNDaGFpblwiXTtcbmV4cG9ydCB0eXBlIFN1aUNoYWluID0gc2NoZW1hc1tcIlN1aUNoYWluXCJdO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ29udGFjdFJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlQ29udGFjdFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVDb250YWN0UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVDb250YWN0UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIExpc3RDb250YWN0c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RDb250YWN0c1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQ29udGFjdExhYmVsID0gc2NoZW1hc1tcIkNvbnRhY3RMYWJlbFwiXTtcbmV4cG9ydCB0eXBlIENvbnRhY3RBZGRyZXNzRGF0YSA9IHNjaGVtYXNbXCJDb250YWN0QWRkcmVzc0RhdGFcIl07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVNpZ25lclNlc3Npb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFJlZnJlc2hTaWduZXJTZXNzaW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJBdXRoRGF0YVwiXTtcblxuZXhwb3J0IHR5cGUgRXZtU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRXRoMVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXZtU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIkV0aDFTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFaXAxOTFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVpcDcxMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkVpcDcxMlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRWlwMTkxT3I3MTJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkV0aDJTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlN0YWtlUmVxdWVzdCA9IHNjaGVtYXNbXCJTdGFrZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdGgyU3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJTdGFrZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXF1ZXN0ID0gc2NoZW1hc1tcIlVuc3Rha2VSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJVbnN0YWtlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCbG9iU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQmxvYlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQmxvYlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJCdGNTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNNZXNzYWdlU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQnRjTWVzc2FnZVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQnRjTWVzc2FnZVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJCdGNNZXNzYWdlU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUHNidFNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlBzYnRTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFBzYnRTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUHNidFNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFRhcHJvb3RTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJUYXByb290U2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBUYXByb290U2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFb3RzU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFb3RzU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlcXVlc3QgPSBzY2hlbWFzW1wiRW90c0NyZWF0ZU5vbmNlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlID0gc2NoZW1hc1tcIkVvdHNDcmVhdGVOb25jZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQmFieWxvblN0YWtpbmdSZXF1ZXN0ID0gc2NoZW1hc1tcIkJhYnlsb25TdGFraW5nUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nUmVzcG9uc2UgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nRWFybHlVbmJvbmQgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nV2l0aGRyYXdhbCA9IHNjaGVtYXNbXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25SZWdpc3RyYXRpb25SZXNwb25zZSA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFNvbGFuYVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF2YVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFN1aVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlN1aVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgU3VpU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQZW5kaW5nTWVzc2FnZUluZm8gPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VJbmZvXCJdO1xuZXhwb3J0IHR5cGUgRXZtVHJhbnNhY3Rpb24gPSBzY2hlbWFzW1wiVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUeXBlZFRyYW5zYWN0aW9uID0gc2NoZW1hc1tcIlR5cGVkVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkFuZFN0YXR1cyA9IHNjaGVtYXNbXCJUcmFuc2FjdGlvbkFuZFN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIFNpZ25lZE1lc3NhZ2UgPSBzY2hlbWFzW1wiU2lnbmVkTWVzc2FnZVwiXTtcbmV4cG9ydCB0eXBlIE1taU1ldGFkYXRhID0gc2NoZW1hc1tcIk1taU1ldGFkYXRhXCJdO1xuZXhwb3J0IHR5cGUgTW1pU3RhdHVzID0gc2NoZW1hc1tcIk1taVN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIEVpcDE5MU1lc3NhZ2UgPSBOb25OdWxsYWJsZTxQZW5kaW5nTWVzc2FnZUluZm9bXCJtZXNzYWdlX2VpcDE5MVwiXT47XG5leHBvcnQgdHlwZSBFaXA3MTJNZXNzYWdlID0gTm9uTnVsbGFibGU8UGVuZGluZ01lc3NhZ2VJbmZvW1wibWVzc2FnZV9laXA3MTJcIl0+O1xuXG5leHBvcnQgdHlwZSBKcnBjUmVzcG9uc2UgPSBzY2hlbWFzW1wiSnJwY1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTW1pSnJwY01ldGhvZCA9XG4gIHwgXCJjdXN0b2RpYW5fbGlzdEFjY291bnRzXCJcbiAgfCBcImN1c3RvZGlhbl9saXN0QWNjb3VudHNTaWduZWRcIlxuICB8IFwiY3VzdG9kaWFuX2xpc3RBY2NvdW50Q2hhaW5JZHNcIlxuICB8IFwiY3VzdG9kaWFuX2NyZWF0ZVRyYW5zYWN0aW9uXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduVHlwZWREYXRhXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRTaWduZWRNZXNzYWdlQnlJZFwiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0VHJhbnNhY3Rpb25CeUlkXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRDdXN0b21lclByb29mXCJcbiAgfCBcImN1c3RvZGlhbl9yZXBsYWNlVHJhbnNhY3Rpb25cIlxuICB8IFwiY3VzdG9kaWFuX2dldFRyYW5zYWN0aW9uTGlua1wiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0U2lnbmVkTWVzc2FnZUxpbmtcIjtcblxuZXhwb3J0IHR5cGUgQWNjZXB0ZWRSZXNwb25zZSA9IHNjaGVtYXNbXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXJyb3JSZXNwb25zZSA9IHNjaGVtYXNbXCJFcnJvclJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQnRjU2lnbmF0dXJlS2luZCA9IHNjaGVtYXNbXCJCdGNTaWduYXR1cmVLaW5kXCJdO1xuZXhwb3J0IHR5cGUgQ3NFcnJDb2RlID0gc2NoZW1hc1tcIlNpZ25lckVycm9yQ29kZVwiXTtcblxuZXhwb3J0IHR5cGUgTWZhVHlwZSA9XG4gIHwgXCJDdWJlU2lnbmVyXCJcbiAgfCBcIkZpZG9cIlxuICB8IGBGaWRvS2V5IyR7c3RyaW5nfWBcbiAgfCBcIlRvdHBcIlxuICB8IFwiRW1haWxPdHBcIlxuICB8IGBFbWFpbE90cCMke251bWJlcn1gO1xuZXhwb3J0IHR5cGUgTWZhUG9saWN5ID0gT21pdDxzY2hlbWFzW1wiTWZhUG9saWN5XCJdLCBcImFsbG93ZWRfbWZhX3R5cGVzXCI+ICYge1xuICAvKiogQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gIGFsbG93ZWRfbWZhX3R5cGVzPzogTWZhVHlwZVtdIHwgbnVsbDsgLy8gb3ZlcnJpZGluZyB0byB1c2UgYSBzdHJvbmdlciBgTWZhVHlwZWAgdHlwZVxufTtcbmV4cG9ydCB0eXBlIE1mYVZvdGUgPSBzY2hlbWFzW1wiTWZhVm90ZVwiXTtcbmV4cG9ydCB0eXBlIE1mYVJlcXVlc3RJbmZvID0gc2NoZW1hc1tcIk1mYVJlcXVlc3RJbmZvXCJdO1xuZXhwb3J0IHR5cGUgTWZhUHJvdGVjdGVkQWN0aW9uID0gc2NoZW1hc1tcIk1mYVByb3RlY3RlZEFjdGlvblwiXTtcbmV4cG9ydCB0eXBlIE1mYVJlcXVpcmVkID0gc2NoZW1hc1tcIkFjY2VwdGVkVmFsdWVcIl1bXCJNZmFSZXF1aXJlZFwiXTtcbmV4cG9ydCB0eXBlIEV2bVR4Q21wID0gc2NoZW1hc1tcIkV2bVR4Q21wXCJdO1xuZXhwb3J0IHR5cGUgU29sYW5hVHhDbXAgPSBzY2hlbWFzW1wiU29sYW5hVHhDbXBcIl07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZU9yZ1JlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlT3JnUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIE9yZ01ldHJpY05hbWUgPSBzY2hlbWFzW1wiTWV0cmljTmFtZVwiXTtcbmV4cG9ydCB0eXBlIFF1ZXJ5TWV0cmljc1JlcXVlc3QgPSBzY2hlbWFzW1wiUXVlcnlNZXRyaWNzUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFF1ZXJ5TWV0cmljc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlF1ZXJ5TWV0cmljc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXVkaXRMb2dSZXF1ZXN0ID0gc2NoZW1hc1tcIkF1ZGl0TG9nUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF1ZGl0TG9nUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkQXVkaXRMb2dSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEF1ZGl0TG9nRW50cnkgPSBzY2hlbWFzW1wiQXVkaXRMb2dFbnRyeVwiXTtcblxuZXhwb3J0IHR5cGUgRGlmZmllSGVsbG1hblJlcXVlc3QgPSBzY2hlbWFzW1wiRGlmZmllSGVsbG1hblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBEaWZmaWVIZWxsbWFuUmVzcG9uc2UgPSBzY2hlbWFzW1wiRGlmZmllSGVsbG1hblJlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0SW5pdFJlcXVlc3QgPSBzY2hlbWFzW1wiVXNlckV4cG9ydEluaXRSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydEluaXRSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdCA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2UgPSBzY2hlbWFzW1wiVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0TGlzdFJlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZFVzZXJFeHBvcnRMaXN0UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0S2V5TWF0ZXJpYWwgPSBzY2hlbWFzW1wiSnNvbktleVBhY2thZ2VcIl07XG5cbmV4cG9ydCB0eXBlIEhpc3RvcmljYWxUeCA9IHNjaGVtYXNbXCJIaXN0b3JpY2FsVHhcIl07XG5leHBvcnQgdHlwZSBMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEhpc3RvcmljYWxUeFJlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBMb2dpblJlcXVlc3QgPSBzY2hlbWFzW1wiTG9naW5SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUGFzc2tleUFzc2VydENoYWxsZW5nZSA9IHNjaGVtYXNbXCJQYXNza2V5QXNzZXJ0Q2hhbGxlbmdlXCJdO1xuZXhwb3J0IHR5cGUgUGFzc2tleUFzc2VydEFuc3dlciA9IHNjaGVtYXNbXCJQYXNza2V5QXNzZXJ0QW5zd2VyXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0aW9uUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0aW9uUmVzcG9uc2UgPSBzY2hlbWFzW1wiQXV0aGVudGljYXRpb25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFBhc3N3b3JkUmVzZXRSZXF1ZXN0ID0gc2NoZW1hc1tcIlBhc3N3b3JkUmVzZXRSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgUGFzc3dvcmRSZXNldENvbmZpcm1SZXF1ZXN0ID0gc2NoZW1hc1tcIlBhc3N3b3JkUmVzZXRDb25maXJtUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVtYWlsT3RwUmVzcG9uc2UgPSBzY2hlbWFzW1wiRW1haWxPdHBSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVtYWlsVGVtcGxhdGVQdXJwb3NlID0gc2NoZW1hc1tcIlB1cnBvc2VcIl07XG5leHBvcnQgdHlwZSBHZXRFbWFpbENvbmZpZ1Jlc3BvbnNlID0gc2NoZW1hc1tcIkdldEVtYWlsQ29uZmlnUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIEVtcHR5ID0gc2NoZW1hc1tcIkVtcHR5SW1wbFwiXTtcblxuZXhwb3J0IHR5cGUgRXhwbGljaXRTY29wZSA9IHNjaGVtYXNbXCJFeHBsaWNpdFNjb3BlXCJdO1xuZXhwb3J0IHR5cGUgU2NvcGUgPSBzY2hlbWFzW1wiU2NvcGVcIl07XG5cbi8qKiBPcHRpb25zIGZvciBhIG5ldyBPSURDIHVzZXIgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT2lkY1VzZXJPcHRpb25zIHtcbiAgLyoqIE9wdGlvbmFsIG5hbWUgKi9cbiAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGUgcm9sZSBvZiBhbiBPSURDIHVzZXIsIGRlZmF1bHQgaXMgXCJBbGllblwiICovXG4gIG1lbWJlclJvbGU/OiBNZW1iZXJSb2xlO1xuICAvKiogT3B0aW9uYWwgTUZBIHBvbGljeSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdXNlciBhY2NvdW50ICovXG4gIG1mYVBvbGljeT86IE1mYVBvbGljeTtcbn1cblxuZXhwb3J0IHR5cGUgR2V0Um9sZUtleU9wdGlvbnMgPSBvcGVyYXRpb25zW1wiZ2V0Um9sZUtleVwiXVtcInBhcmFtZXRlcnNcIl1bXCJxdWVyeVwiXTtcblxuLyoqIEF2YSBQLSBvciBYLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFUeCA9IHsgUDogQXZhUENoYWluVHggfSB8IHsgWDogQXZhWENoYWluVHggfTtcblxuLyoqIEF2YSBQLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFQQ2hhaW5UeCA9XG4gIHwgeyBBZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvcjogSnNvbk1hcCB9XG4gIHwgeyBBZGRTdWJuZXRWYWxpZGF0b3I6IEpzb25NYXAgfVxuICB8IHsgQWRkVmFsaWRhdG9yOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZUNoYWluOiBKc29uTWFwIH1cbiAgfCB7IENyZWF0ZVN1Ym5ldDogSnNvbk1hcCB9XG4gIHwgeyBFeHBvcnQ6IEpzb25NYXAgfVxuICB8IHsgSW1wb3J0OiBKc29uTWFwIH07XG5cbi8qKiBBdmEgWC1jaGFpbiB0cmFuc2FjdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXZhWENoYWluVHggPSB7IEJhc2U6IEpzb25NYXAgfSB8IHsgRXhwb3J0OiBKc29uTWFwIH0gfCB7IEltcG9ydDogSnNvbk1hcCB9O1xuXG4vKiogQXZhIGNoYWlucyAqL1xuZXhwb3J0IHR5cGUgQXZhQ2hhaW4gPSBcIkNcIiB8IFwiWFwiIHwgXCJQXCI7XG5cbi8qKiBLZXkgaW1wb3J0ICovXG5leHBvcnQgdHlwZSBDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZSA9IHNjaGVtYXNbXCJDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEltcG9ydEtleVJlcXVlc3QgPSBzY2hlbWFzW1wiSW1wb3J0S2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEltcG9ydEtleVJlcXVlc3RNYXRlcmlhbCA9IHNjaGVtYXNbXCJJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWxcIl07XG5cbmV4cG9ydCB0eXBlIEludml0YXRpb25BY2NlcHRSZXF1ZXN0ID0gc2NoZW1hc1tcIkludml0YXRpb25BY2NlcHRSZXF1ZXN0XCJdO1xuXG5leHBvcnQgdHlwZSBLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGggPSBzY2hlbWFzW1wiS2V5VHlwZUFuZERlcml2YXRpb25QYXRoXCJdO1xuZXhwb3J0IHR5cGUgUG9saWN5SW5mbyA9IHNjaGVtYXNbXCJQb2xpY3lJbmZvXCJdICYge1xuICBhY2w/OiBKc29uVmFsdWVbXTtcbn07XG5cbi8qKlxuICogQ29lcmNlIHRoZSBsZXNzIGFjY3VyYXRlIGBQb2xpY3lJbmZvYCB0eXBlIGZyb20gdGhlIE9wZW5BUEkgc2NoZW1hIHRvIGEgbW9yZSBhY2N1cmF0ZSB7QGxpbmsgUG9saWN5SW5mb30uXG4gKlxuICogQHBhcmFtIHAgVGhlIHBvbGljeSBpbmZvIHJlY2VpdmVkIG9uIHRoZSB3aXJlXG4gKiBAcmV0dXJucyBUaGUgc2FtZSB2YWx1ZSBjb2VyY2VkIHRvIHtAbGluayBQb2xpY3lJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlUG9saWN5SW5mbyhwOiBzY2hlbWFzW1wiUG9saWN5SW5mb1wiXSk6IFBvbGljeUluZm8ge1xuICByZXR1cm4gcCBhcyBQb2xpY3lJbmZvO1xufVxuXG5leHBvcnQgdHlwZSBVcGRhdGVQb2xpY3lSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZVBvbGljeVJlcXVlc3RcIl0gJiB7XG4gIHJ1bGVzPzogSnNvblZhbHVlW107XG4gIGFjbD86IEpzb25WYWx1ZVtdO1xufTtcbmV4cG9ydCB0eXBlIExpc3RQb2xpY2llc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RQb2xpY2llc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUG9saWN5VHlwZSA9IHNjaGVtYXNbXCJQb2xpY3lUeXBlXCJdO1xuZXhwb3J0IHR5cGUgUG9saWN5QXR0YWNoZWRUb0lkID0gc2NoZW1hc1tcIlBvbGljeUF0dGFjaGVkVG9JZFwiXTtcblxuZXhwb3J0IHR5cGUgTGlzdEJ1Y2tldHNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0QnVja2V0c1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlQnVja2V0UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVCdWNrZXRSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQnVja2V0QWN0aW9uID0gc2NoZW1hc1tcIkJ1Y2tldEFjdGlvblwiXTtcblxuZXhwb3J0IHR5cGUgVXBsb2FkV2FzbVBvbGljeVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBsb2FkV2FzbVBvbGljeVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2UgPSBzY2hlbWFzW1wiVXBsb2FkV2FzbVBvbGljeVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgSW52b2tlUG9saWN5UmVxdWVzdCA9IHNjaGVtYXNbXCJJbnZva2VQb2xpY3lSZXF1ZXN0XCJdO1xuXG5leHBvcnQgdHlwZSBXYXNtUnVsZSA9IHNjaGVtYXNbXCJXYXNtUnVsZVwiXTtcbmV4cG9ydCB0eXBlIEludm9rZUMyRlJlc3BvbnNlID0gSW52b2tlUG9saWN5UmVzcG9uc2U7XG5leHBvcnQgdHlwZSBJbnZva2VQb2xpY3lSZXNwb25zZSA9IHNjaGVtYXNbXCJJbnZva2VQb2xpY3lSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEMyRlJlc3BvbnNlID0gV2FzbVBvbGljeVJlc3BvbnNlO1xuZXhwb3J0IHR5cGUgV2FzbVBvbGljeVJlc3BvbnNlID0gc2NoZW1hc1tcIldhc21Qb2xpY3lSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEMyRkNvbmZpZ3VyYXRpb24gPSBQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uO1xuZXhwb3J0IHR5cGUgUG9saWN5RW5naW5lQ29uZmlndXJhdGlvbiA9IHNjaGVtYXNbXCJQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uXCJdO1xuXG5leHBvcnQgdHlwZSBQb2xpY3lBY3Rpb24gPSBzY2hlbWFzW1wiUG9saWN5QWN0aW9uXCJdO1xuZXhwb3J0IHR5cGUgU2VjcmV0QWN0aW9uID0gc2NoZW1hc1tcIlNlY3JldEFjdGlvblwiXTtcbiJdfQ==
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErU0EsNENBRUM7QUExUUQsUUFBUTtBQUNSLDhFQUE4RTtBQUM5RSxvRkFBb0Y7QUFDcEYsTUFBTSxpQkFBaUIsR0FBZ0M7SUFDckQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsSUFBSTtJQUNwQixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixRQUFRLEVBQUUsSUFBSTtJQUNkLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsSUFBSTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsSUFBSTtJQUNwQixVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBQ1csUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUE2QixDQUFDO0FBc085Rjs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLENBQXdCO0lBQ3ZELE9BQU8sQ0FBZSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGNvbXBvbmVudHMsIG9wZXJhdGlvbnMsIHBhdGhzIH0gZnJvbSBcIi4vc2NoZW1hXCI7XG5pbXBvcnQgdHlwZSB7IEpzb25NYXAsIEpzb25WYWx1ZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IHR5cGUgc2NoZW1hcyA9IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdO1xuXG5leHBvcnQgdHlwZSBVc2VySW5mbyA9IHNjaGVtYXNbXCJVc2VySW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ01lbWJlcnNoaXAgPSBzY2hlbWFzW1wiVXNlckluT3JnTWVtYmVyc2hpcFwiXTtcbmV4cG9ydCB0eXBlIENvbmZpZ3VyZWRNZmEgPSBzY2hlbWFzW1wiQ29uZmlndXJlZE1mYVwiXTtcbmV4cG9ydCB0eXBlIFJhdGNoZXRDb25maWcgPSBzY2hlbWFzW1wiUmF0Y2hldENvbmZpZ1wiXTtcbmV4cG9ydCB0eXBlIElkZW50aXR5UHJvb2YgPSBzY2hlbWFzW1wiSWRlbnRpdHlQcm9vZlwiXTtcbmV4cG9ydCB0eXBlIEFkZElkZW50aXR5UmVxdWVzdCA9IHNjaGVtYXNbXCJBZGRJZGVudGl0eVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBMaXN0SWRlbnRpdHlSZXNwb25zZSA9IHNjaGVtYXNbXCJMaXN0SWRlbnRpdGllc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVG90cEluZm8gPSBzY2hlbWFzW1wiVG90cEluZm9cIl07XG5cbmV4cG9ydCB0eXBlIE9pZGNBdXRoUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9IHNjaGVtYXNbXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBcGlNZmFGaWRvQ2hhbGxlbmdlID0gc2NoZW1hc1tcIkZpZG9Bc3NlcnRDaGFsbGVuZ2VcIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPSBzY2hlbWFzW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhID0gc2NoZW1hc1tcIkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYVwiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5ID0gc2NoZW1hc1tcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IHNjaGVtYXNbXCJQdWJsaWNLZXlDcmVkZW50aWFsXCJdO1xuXG5leHBvcnQgdHlwZSBPcmdJbmZvID0gc2NoZW1hc1tcIk9yZ0luZm9cIl07XG5leHBvcnQgdHlwZSBPcmdFeHREYXRhID0gTm9uTnVsbGFibGU8T3JnSW5mb1tcImV4dF9kYXRhXCJdPjtcbmV4cG9ydCB0eXBlIFB1YmxpY09yZ0luZm8gPSBzY2hlbWFzW1wiUHVibGljT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVzZXJJbk9yZ0luZm8gPSBzY2hlbWFzW1wiVXNlckluT3JnSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU9yZ1JlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlT3JnUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIE9yZ0V4dFByb3BzID0gTm9uTnVsbGFibGU8VXBkYXRlT3JnUmVxdWVzdFtcImV4dF9wcm9wc1wiXT47XG5leHBvcnQgdHlwZSBVcGRhdGVPcmdSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZVVzZXJNZW1iZXJzaGlwUmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVVc2VyTWVtYmVyc2hpcFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25FbmRwb2ludENvbmZpZ3VyYXRpb24gPSBzY2hlbWFzW1wiTm90aWZpY2F0aW9uRW5kcG9pbnRDb25maWd1cmF0aW9uXCJdO1xuZXhwb3J0IHR5cGUgT3JnRXZlbnRzID0gc2NoZW1hc1tcIk9yZ0V2ZW50RGlzY3JpbWluYW50c1wiXTtcbmV4cG9ydCB0eXBlIEJpbGxpbmdFdmVudCA9IHNjaGVtYXNbXCJCaWxsaW5nRXZlbnRcIl07XG5leHBvcnQgdHlwZSBPcGVyYXRpb25LaW5kID0gc2NoZW1hc1tcIk9wZXJhdGlvbktpbmRcIl07XG5cbi8vIE5PVEU6XG4vLyAgIHdlIHVzZSBgUmVjb3JkPE9wZXJhdGlvbktpbmQsIC4uLj5gIChpbnN0ZWFkIG9mIGBPcGVyYXRpb25LaW5kW11gKSB0byBnZXRcbi8vICAgdGhlIHR5cGUgY2hlY2tlciB0byBjb21wbGFpbiB1bmxlc3MgdGhpcyByZWNvcmQgaW5jbHVkZXMgZXZlcnkgc2luZ2xlIG9wZXJhdGlvblxuY29uc3QgQWxsT3BlcmF0aW9uS2luZHM6IFJlY29yZDxPcGVyYXRpb25LaW5kLCB0cnVlPiA9IHtcbiAgQXZhU2lnbjogdHJ1ZSxcbiAgQXZhQ2hhaW5UeFNpZ246IHRydWUsXG4gIEJhYnlsb25Db3ZTaWduOiB0cnVlLFxuICBCYWJ5bG9uUmVnaXN0cmF0aW9uOiB0cnVlLFxuICBCYWJ5bG9uU3Rha2luZzogdHJ1ZSxcbiAgQmxvYlNpZ246IHRydWUsXG4gIEJ0Y01lc3NhZ2VTaWduOiB0cnVlLFxuICBCdGNTaWduOiB0cnVlLFxuICBEaWZmaWVIZWxsbWFuOiB0cnVlLFxuICBQc2J0U2lnbjogdHJ1ZSxcbiAgVGFwcm9vdFNpZ246IHRydWUsXG4gIEVpcDE5MVNpZ246IHRydWUsXG4gIEVpcDcxMlNpZ246IHRydWUsXG4gIEVvdHNOb25jZXM6IHRydWUsXG4gIEVvdHNTaWduOiB0cnVlLFxuICBFdGgxU2lnbjogdHJ1ZSxcbiAgRXRoMlNpZ246IHRydWUsXG4gIEV0aDJTdGFrZTogdHJ1ZSxcbiAgRXRoMlVuc3Rha2U6IHRydWUsXG4gIFNvbGFuYVNpZ246IHRydWUsXG4gIFN1aVNpZ246IHRydWUsXG4gIFRlbmRlcm1pbnRTaWduOiB0cnVlLFxuICBSb2xlVXBkYXRlOiB0cnVlLFxufTtcbmV4cG9ydCBjb25zdCBBTExfT1BFUkFUSU9OX0tJTkRTID0gT2JqZWN0LmtleXMoQWxsT3BlcmF0aW9uS2luZHMpIGFzIHJlYWRvbmx5IE9wZXJhdGlvbktpbmRbXTtcblxuZXhwb3J0IHR5cGUgT3JnRGF0YSA9IHNjaGVtYXNbXCJPcmdEYXRhXCJdO1xuZXhwb3J0IHR5cGUgVXNlck9yZ3NSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyT3Jnc1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBPaWRjSWRlbnRpdHkgPSBzY2hlbWFzW1wiT2lkY0lkZW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgTWVtYmVyUm9sZSA9IHNjaGVtYXNbXCJNZW1iZXJSb2xlXCJdO1xuXG5leHBvcnQgdHlwZSBTY2hlbWFLZXlUeXBlID0gc2NoZW1hc1tcIktleVR5cGVcIl07XG5cbmV4cG9ydCB0eXBlIExpc3RLZXlzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleVByb3BlcnRpZXMgPSBzY2hlbWFzW1wiQ3JlYXRlQW5kVXBkYXRlS2V5UHJvcGVydGllc1wiXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUtleVJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEtleUluZm8gPSBzY2hlbWFzW1wiS2V5SW5mb1wiXTtcbmV4cG9ydCB0eXBlIEtleUluZm9Kd3QgPSBzY2hlbWFzW1wiS2V5SW5mb0p3dFwiXTtcbmV4cG9ydCB0eXBlIEtleUF0dGVzdGF0aW9uQ2xhaW1zID0gc2NoZW1hc1tcIktleUF0dGVzdGF0aW9uQ2xhaW1zXCJdO1xuZXhwb3J0IHR5cGUgS2V5QXR0ZXN0YXRpb25RdWVyeSA9XG4gIHBhdGhzW1wiL3YwL29yZy97b3JnX2lkfS9rZXlzL3trZXlfaWR9L2F0dGVzdFwiXVtcImdldFwiXVtcInBhcmFtZXRlcnNcIl1bXCJxdWVyeVwiXTtcbmV4cG9ydCB0eXBlIFJvbGVJbmZvSnd0ID0gc2NoZW1hc1tcIlJvbGVJbmZvSnd0XCJdO1xuZXhwb3J0IHR5cGUgUm9sZUF0dGVzdGF0aW9uQ2xhaW1zID0gc2NoZW1hc1tcIlJvbGVBdHRlc3RhdGlvbkNsYWltc1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVBdHRlc3RhdGlvblF1ZXJ5ID1cbiAgcGF0aHNbXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hdHRlc3RcIl1bXCJnZXRcIl1bXCJwYXJhbWV0ZXJzXCJdW1wicXVlcnlcIl07XG5leHBvcnQgdHlwZSBSb2xlQXR0ZXN0YXRpb25WZXJib3NpdHkgPSBzY2hlbWFzW1wiUm9sZUF0dGVzdGF0aW9uVmVyYm9zaXR5XCJdO1xuZXhwb3J0IHR5cGUgS2V5SW5Sb2xlSW5mbyA9IHNjaGVtYXNbXCJLZXlJblJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZEdldFVzZXJzSW5PcmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEdldFVzZXJCeUVtYWlsUmVzcG9uc2UgPSBzY2hlbWFzW1wiR2V0VXNlckJ5RW1haWxSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEdldFVzZXJCeU9pZGNSZXNwb25zZSA9IHNjaGVtYXNbXCJHZXRVc2VyQnlPaWRjUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJJblJvbGVJbmZvID0gc2NoZW1hc1tcIlVzZXJJblJvbGVJbmZvXCJdO1xuZXhwb3J0IHR5cGUgS2V5VHlwZUFwaSA9IHNjaGVtYXNbXCJLZXlUeXBlXCJdO1xuXG5leHBvcnQgdHlwZSBMaXN0S2V5Um9sZXNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0S2V5Um9sZXNSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIExpc3RSb2xlc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTGlzdFJvbGVLZXlzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBMaXN0Um9sZVVzZXJzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgVXBkYXRlUm9sZVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlUm9sZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBLZXlXaXRoUG9saWNpZXNJbmZvID0gc2NoZW1hc1tcIktleUluUm9sZUluZm9cIl07XG5leHBvcnQgdHlwZSBSb2xlSW5mbyA9IHNjaGVtYXNbXCJSb2xlSW5mb1wiXTtcbmV4cG9ydCB0eXBlIFJvbGVBY3Rpb24gPSBzY2hlbWFzW1wiUm9sZUFjdGlvblwiXTtcbmV4cG9ydCB0eXBlIFJlc3RyaWN0ZWRBY3Rpb25zTWFwID0gUGFydGlhbDxSZWNvcmQ8Um9sZUFjdGlvbiwgTWVtYmVyUm9sZVtdPj47XG5cbmV4cG9ydCB0eXBlIFNlc3Npb25JbmZvID0gc2NoZW1hc1tcIlNlc3Npb25JbmZvXCJdO1xuZXhwb3J0IHR5cGUgQ2xpZW50U2Vzc2lvbkluZm8gPSBzY2hlbWFzW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG5leHBvcnQgdHlwZSBOZXdTZXNzaW9uUmVzcG9uc2UgPSBzY2hlbWFzW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgU2Vzc2lvbnNSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlXCJdO1xuXG5leHBvcnQgdHlwZSBFZGl0UG9saWN5ID0gc2NoZW1hc1tcIkVkaXRQb2xpY3lcIl07XG5cbmV4cG9ydCB0eXBlIENvbnRhY3RJbmZvID0gc2NoZW1hc1tcIkNvbnRhY3RJbmZvUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBZGRyZXNzTWFwID0gc2NoZW1hc1tcIkFkZHJlc3NNYXBcIl07XG5leHBvcnQgdHlwZSBCdGNDaGFpbiA9IHNjaGVtYXNbXCJCdGNDaGFpblwiXTtcbmV4cG9ydCB0eXBlIFN1aUNoYWluID0gc2NoZW1hc1tcIlN1aUNoYWluXCJdO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ29udGFjdFJlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlQ29udGFjdFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVDb250YWN0UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGRhdGVDb250YWN0UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIExpc3RDb250YWN0c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RDb250YWN0c1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQ29udGFjdExhYmVsID0gc2NoZW1hc1tcIkNvbnRhY3RMYWJlbFwiXTtcbmV4cG9ydCB0eXBlIENvbnRhY3RBZGRyZXNzRGF0YSA9IHNjaGVtYXNbXCJDb250YWN0QWRkcmVzc0RhdGFcIl07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVNpZ25lclNlc3Npb25SZXF1ZXN0ID0gc2NoZW1hc1tcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFJlZnJlc2hTaWduZXJTZXNzaW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJBdXRoRGF0YVwiXTtcblxuZXhwb3J0IHR5cGUgRXZtU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiRXRoMVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXZtU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIkV0aDFTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBFaXAxOTFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFaXAxOTFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVpcDcxMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkVpcDcxMlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRWlwMTkxT3I3MTJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIkV0aDJTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEV0aDJTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlN0YWtlUmVxdWVzdCA9IHNjaGVtYXNbXCJTdGFrZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFdGgyU3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJTdGFrZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXF1ZXN0ID0gc2NoZW1hc1tcIlVuc3Rha2VSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRXRoMlVuc3Rha2VSZXNwb25zZSA9IHNjaGVtYXNbXCJVbnN0YWtlUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCbG9iU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQmxvYlNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQmxvYlNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJCdGNTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJ0Y1NpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBCdGNNZXNzYWdlU2lnblJlcXVlc3QgPSBzY2hlbWFzW1wiQnRjTWVzc2FnZVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQnRjTWVzc2FnZVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJCdGNNZXNzYWdlU2lnblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUHNidFNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlBzYnRTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFBzYnRTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUHNidFNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFRhcHJvb3RTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJUYXByb290U2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBUYXByb290U2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJFb3RzU2lnblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBFb3RzU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlcXVlc3QgPSBzY2hlbWFzW1wiRW90c0NyZWF0ZU5vbmNlUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEVvdHNDcmVhdGVOb25jZVJlc3BvbnNlID0gc2NoZW1hc1tcIkVvdHNDcmVhdGVOb25jZVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQmFieWxvblN0YWtpbmdSZXF1ZXN0ID0gc2NoZW1hc1tcIkJhYnlsb25TdGFraW5nUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nUmVzcG9uc2UgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nRWFybHlVbmJvbmQgPSBzY2hlbWFzW1wiQmFieWxvblN0YWtpbmdFYXJseVVuYm9uZFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25TdGFraW5nV2l0aGRyYXdhbCA9IHNjaGVtYXNbXCJCYWJ5bG9uU3Rha2luZ1dpdGhkcmF3YWxcIl07XG5leHBvcnQgdHlwZSBCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdCA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEJhYnlsb25SZWdpc3RyYXRpb25SZXNwb25zZSA9IHNjaGVtYXNbXCJCYWJ5bG9uUmVnaXN0cmF0aW9uUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBTb2xhbmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJTb2xhbmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFNvbGFuYVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF2YVNpZ25SZXNwb25zZSA9IHNjaGVtYXNbXCJTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdCA9IHNjaGVtYXNbXCJBdmFTZXJpYWxpemVkVHhTaWduUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFN1aVNpZ25SZXF1ZXN0ID0gc2NoZW1hc1tcIlN1aVNpZ25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgU3VpU2lnblJlc3BvbnNlID0gc2NoZW1hc1tcIlNpZ25SZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VTaWduUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQZW5kaW5nTWVzc2FnZUluZm8gPSBzY2hlbWFzW1wiUGVuZGluZ01lc3NhZ2VJbmZvXCJdO1xuZXhwb3J0IHR5cGUgRXZtVHJhbnNhY3Rpb24gPSBzY2hlbWFzW1wiVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUeXBlZFRyYW5zYWN0aW9uID0gc2NoZW1hc1tcIlR5cGVkVHJhbnNhY3Rpb25cIl07XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkFuZFN0YXR1cyA9IHNjaGVtYXNbXCJUcmFuc2FjdGlvbkFuZFN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIFNpZ25lZE1lc3NhZ2UgPSBzY2hlbWFzW1wiU2lnbmVkTWVzc2FnZVwiXTtcbmV4cG9ydCB0eXBlIE1taU1ldGFkYXRhID0gc2NoZW1hc1tcIk1taU1ldGFkYXRhXCJdO1xuZXhwb3J0IHR5cGUgTW1pU3RhdHVzID0gc2NoZW1hc1tcIk1taVN0YXR1c1wiXTtcbmV4cG9ydCB0eXBlIEVpcDE5MU1lc3NhZ2UgPSBOb25OdWxsYWJsZTxQZW5kaW5nTWVzc2FnZUluZm9bXCJtZXNzYWdlX2VpcDE5MVwiXT47XG5leHBvcnQgdHlwZSBFaXA3MTJNZXNzYWdlID0gTm9uTnVsbGFibGU8UGVuZGluZ01lc3NhZ2VJbmZvW1wibWVzc2FnZV9laXA3MTJcIl0+O1xuXG5leHBvcnQgdHlwZSBKcnBjUmVzcG9uc2UgPSBzY2hlbWFzW1wiSnJwY1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgTW1pSnJwY01ldGhvZCA9XG4gIHwgXCJjdXN0b2RpYW5fbGlzdEFjY291bnRzXCJcbiAgfCBcImN1c3RvZGlhbl9saXN0QWNjb3VudHNTaWduZWRcIlxuICB8IFwiY3VzdG9kaWFuX2xpc3RBY2NvdW50Q2hhaW5JZHNcIlxuICB8IFwiY3VzdG9kaWFuX2NyZWF0ZVRyYW5zYWN0aW9uXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduXCJcbiAgfCBcImN1c3RvZGlhbl9zaWduVHlwZWREYXRhXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRTaWduZWRNZXNzYWdlQnlJZFwiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0VHJhbnNhY3Rpb25CeUlkXCJcbiAgfCBcImN1c3RvZGlhbl9nZXRDdXN0b21lclByb29mXCJcbiAgfCBcImN1c3RvZGlhbl9yZXBsYWNlVHJhbnNhY3Rpb25cIlxuICB8IFwiY3VzdG9kaWFuX2dldFRyYW5zYWN0aW9uTGlua1wiXG4gIHwgXCJjdXN0b2RpYW5fZ2V0U2lnbmVkTWVzc2FnZUxpbmtcIjtcblxuZXhwb3J0IHR5cGUgQWNjZXB0ZWRSZXNwb25zZSA9IHNjaGVtYXNbXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRXJyb3JSZXNwb25zZSA9IHNjaGVtYXNbXCJFcnJvclJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQnRjU2lnbmF0dXJlS2luZCA9IHNjaGVtYXNbXCJCdGNTaWduYXR1cmVLaW5kXCJdO1xuZXhwb3J0IHR5cGUgQ3NFcnJDb2RlID0gc2NoZW1hc1tcIlNpZ25lckVycm9yQ29kZVwiXTtcblxuZXhwb3J0IHR5cGUgTWZhVHlwZSA9XG4gIHwgXCJDdWJlU2lnbmVyXCJcbiAgfCBcIkZpZG9cIlxuICB8IGBGaWRvS2V5IyR7c3RyaW5nfWBcbiAgfCBcIlRvdHBcIlxuICB8IFwiRW1haWxPdHBcIlxuICB8IGBFbWFpbE90cCMke251bWJlcn1gO1xuZXhwb3J0IHR5cGUgTWZhUG9saWN5ID0gT21pdDxzY2hlbWFzW1wiTWZhUG9saWN5XCJdLCBcImFsbG93ZWRfbWZhX3R5cGVzXCI+ICYge1xuICAvKiogQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gIGFsbG93ZWRfbWZhX3R5cGVzPzogTWZhVHlwZVtdIHwgbnVsbDsgLy8gb3ZlcnJpZGluZyB0byB1c2UgYSBzdHJvbmdlciBgTWZhVHlwZWAgdHlwZVxufTtcbmV4cG9ydCB0eXBlIE1mYVZvdGUgPSBzY2hlbWFzW1wiTWZhVm90ZVwiXTtcbmV4cG9ydCB0eXBlIE1mYVJlcXVlc3RJbmZvID0gc2NoZW1hc1tcIk1mYVJlcXVlc3RJbmZvXCJdO1xuZXhwb3J0IHR5cGUgTWZhUHJvdGVjdGVkQWN0aW9uID0gc2NoZW1hc1tcIk1mYVByb3RlY3RlZEFjdGlvblwiXTtcbmV4cG9ydCB0eXBlIE1mYVJlcXVpcmVkID0gc2NoZW1hc1tcIkFjY2VwdGVkVmFsdWVcIl1bXCJNZmFSZXF1aXJlZFwiXTtcbmV4cG9ydCB0eXBlIEV2bVR4Q21wID0gc2NoZW1hc1tcIkV2bVR4Q21wXCJdO1xuZXhwb3J0IHR5cGUgU29sYW5hVHhDbXAgPSBzY2hlbWFzW1wiU29sYW5hVHhDbXBcIl07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZU9yZ1JlcXVlc3QgPSBzY2hlbWFzW1wiQ3JlYXRlT3JnUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIE9yZ01ldHJpY05hbWUgPSBzY2hlbWFzW1wiTWV0cmljTmFtZVwiXTtcbmV4cG9ydCB0eXBlIFF1ZXJ5TWV0cmljc1JlcXVlc3QgPSBzY2hlbWFzW1wiUXVlcnlNZXRyaWNzUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFF1ZXJ5TWV0cmljc1Jlc3BvbnNlID0gc2NoZW1hc1tcIlF1ZXJ5TWV0cmljc1Jlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQXVkaXRMb2dSZXF1ZXN0ID0gc2NoZW1hc1tcIkF1ZGl0TG9nUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIEF1ZGl0TG9nUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkQXVkaXRMb2dSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIHsgQXVkaXRMb2dFbnRyeSB9IGZyb20gXCIuL2F1ZGl0X2xvZ1wiO1xuXG5leHBvcnQgdHlwZSBEaWZmaWVIZWxsbWFuUmVxdWVzdCA9IHNjaGVtYXNbXCJEaWZmaWVIZWxsbWFuUmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIERpZmZpZUhlbGxtYW5SZXNwb25zZSA9IHNjaGVtYXNbXCJEaWZmaWVIZWxsbWFuUmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRJbml0UmVxdWVzdCA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0SW5pdFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0SW5pdFJlc3BvbnNlID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRJbml0UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0ID0gc2NoZW1hc1tcIlVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZSA9IHNjaGVtYXNbXCJVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRMaXN0UmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkVXNlckV4cG9ydExpc3RSZXNwb25zZVwiXTtcbmV4cG9ydCB0eXBlIFVzZXJFeHBvcnRLZXlNYXRlcmlhbCA9IHNjaGVtYXNbXCJKc29uS2V5UGFja2FnZVwiXTtcblxuZXhwb3J0IHR5cGUgSGlzdG9yaWNhbFR4ID0gc2NoZW1hc1tcIkhpc3RvcmljYWxUeFwiXTtcbmV4cG9ydCB0eXBlIExpc3RIaXN0b3JpY2FsVHhSZXNwb25zZSA9IHNjaGVtYXNbXCJQYWdpbmF0ZWRMaXN0SGlzdG9yaWNhbFR4UmVzcG9uc2VcIl07XG5cbmV4cG9ydCB0eXBlIExvZ2luUmVxdWVzdCA9IHNjaGVtYXNbXCJMb2dpblJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBQYXNza2V5QXNzZXJ0Q2hhbGxlbmdlID0gc2NoZW1hc1tcIlBhc3NrZXlBc3NlcnRDaGFsbGVuZ2VcIl07XG5leHBvcnQgdHlwZSBQYXNza2V5QXNzZXJ0QW5zd2VyID0gc2NoZW1hc1tcIlBhc3NrZXlBc3NlcnRBbnN3ZXJcIl07XG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGlvblJlcXVlc3QgPSBzY2hlbWFzW1wiQXV0aGVudGljYXRpb25SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25SZXNwb25zZSA9IHNjaGVtYXNbXCJBdXRoZW50aWNhdGlvblJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgUGFzc3dvcmRSZXNldFJlcXVlc3QgPSBzY2hlbWFzW1wiUGFzc3dvcmRSZXNldFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBQYXNzd29yZFJlc2V0Q29uZmlybVJlcXVlc3QgPSBzY2hlbWFzW1wiUGFzc3dvcmRSZXNldENvbmZpcm1SZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgRW1haWxPdHBSZXNwb25zZSA9IHNjaGVtYXNbXCJFbWFpbE90cFJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgRW1haWxUZW1wbGF0ZVB1cnBvc2UgPSBzY2hlbWFzW1wiUHVycG9zZVwiXTtcbmV4cG9ydCB0eXBlIEdldEVtYWlsQ29uZmlnUmVzcG9uc2UgPSBzY2hlbWFzW1wiR2V0RW1haWxDb25maWdSZXNwb25zZVwiXTtcblxuZXhwb3J0IHR5cGUgRW1wdHkgPSBzY2hlbWFzW1wiRW1wdHlJbXBsXCJdO1xuXG5leHBvcnQgdHlwZSBFeHBsaWNpdFNjb3BlID0gc2NoZW1hc1tcIkV4cGxpY2l0U2NvcGVcIl07XG5leHBvcnQgdHlwZSBTY29wZSA9IHNjaGVtYXNbXCJTY29wZVwiXTtcblxuLyoqIE9wdGlvbnMgZm9yIGEgbmV3IE9JREMgdXNlciAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPaWRjVXNlck9wdGlvbnMge1xuICAvKiogT3B0aW9uYWwgbmFtZSAqL1xuICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoZSByb2xlIG9mIGFuIE9JREMgdXNlciwgZGVmYXVsdCBpcyBcIkFsaWVuXCIgKi9cbiAgbWVtYmVyUm9sZT86IE1lbWJlclJvbGU7XG4gIC8qKiBPcHRpb25hbCBNRkEgcG9saWN5IHRvIGFzc29jaWF0ZSB3aXRoIHRoZSB1c2VyIGFjY291bnQgKi9cbiAgbWZhUG9saWN5PzogTWZhUG9saWN5O1xufVxuXG5leHBvcnQgdHlwZSBHZXRSb2xlS2V5T3B0aW9ucyA9IG9wZXJhdGlvbnNbXCJnZXRSb2xlS2V5XCJdW1wicGFyYW1ldGVyc1wiXVtcInF1ZXJ5XCJdO1xuXG4vKiogQXZhIFAtIG9yIFgtY2hhaW4gdHJhbnNhY3Rpb24gKi9cbmV4cG9ydCB0eXBlIEF2YVR4ID0geyBQOiBBdmFQQ2hhaW5UeCB9IHwgeyBYOiBBdmFYQ2hhaW5UeCB9O1xuXG4vKiogQXZhIFAtY2hhaW4gdHJhbnNhY3Rpb24gKi9cbmV4cG9ydCB0eXBlIEF2YVBDaGFpblR4ID1cbiAgfCB7IEFkZFBlcm1pc3Npb25sZXNzVmFsaWRhdG9yOiBKc29uTWFwIH1cbiAgfCB7IEFkZFN1Ym5ldFZhbGlkYXRvcjogSnNvbk1hcCB9XG4gIHwgeyBBZGRWYWxpZGF0b3I6IEpzb25NYXAgfVxuICB8IHsgQ3JlYXRlQ2hhaW46IEpzb25NYXAgfVxuICB8IHsgQ3JlYXRlU3VibmV0OiBKc29uTWFwIH1cbiAgfCB7IEV4cG9ydDogSnNvbk1hcCB9XG4gIHwgeyBJbXBvcnQ6IEpzb25NYXAgfTtcblxuLyoqIEF2YSBYLWNoYWluIHRyYW5zYWN0aW9uICovXG5leHBvcnQgdHlwZSBBdmFYQ2hhaW5UeCA9IHsgQmFzZTogSnNvbk1hcCB9IHwgeyBFeHBvcnQ6IEpzb25NYXAgfSB8IHsgSW1wb3J0OiBKc29uTWFwIH07XG5cbi8qKiBBdmEgY2hhaW5zICovXG5leHBvcnQgdHlwZSBBdmFDaGFpbiA9IFwiQ1wiIHwgXCJYXCIgfCBcIlBcIjtcblxuLyoqIEtleSBpbXBvcnQgKi9cbmV4cG9ydCB0eXBlIENyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlID0gc2NoZW1hc1tcIkNyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgSW1wb3J0S2V5UmVxdWVzdCA9IHNjaGVtYXNbXCJJbXBvcnRLZXlSZXF1ZXN0XCJdO1xuZXhwb3J0IHR5cGUgSW1wb3J0S2V5UmVxdWVzdE1hdGVyaWFsID0gc2NoZW1hc1tcIkltcG9ydEtleVJlcXVlc3RNYXRlcmlhbFwiXTtcblxuZXhwb3J0IHR5cGUgSW52aXRhdGlvbkFjY2VwdFJlcXVlc3QgPSBzY2hlbWFzW1wiSW52aXRhdGlvbkFjY2VwdFJlcXVlc3RcIl07XG5cbmV4cG9ydCB0eXBlIEtleVR5cGVBbmREZXJpdmF0aW9uUGF0aCA9IHNjaGVtYXNbXCJLZXlUeXBlQW5kRGVyaXZhdGlvblBhdGhcIl07XG5leHBvcnQgdHlwZSBQb2xpY3lJbmZvID0gc2NoZW1hc1tcIlBvbGljeUluZm9cIl0gJiB7XG4gIGFjbD86IEpzb25WYWx1ZVtdO1xufTtcblxuLyoqXG4gKiBDb2VyY2UgdGhlIGxlc3MgYWNjdXJhdGUgYFBvbGljeUluZm9gIHR5cGUgZnJvbSB0aGUgT3BlbkFQSSBzY2hlbWEgdG8gYSBtb3JlIGFjY3VyYXRlIHtAbGluayBQb2xpY3lJbmZvfS5cbiAqXG4gKiBAcGFyYW0gcCBUaGUgcG9saWN5IGluZm8gcmVjZWl2ZWQgb24gdGhlIHdpcmVcbiAqIEByZXR1cm5zIFRoZSBzYW1lIHZhbHVlIGNvZXJjZWQgdG8ge0BsaW5rIFBvbGljeUluZm99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VQb2xpY3lJbmZvKHA6IHNjaGVtYXNbXCJQb2xpY3lJbmZvXCJdKTogUG9saWN5SW5mbyB7XG4gIHJldHVybiBwIGFzIFBvbGljeUluZm87XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZVBvbGljeVJlcXVlc3QgPSBzY2hlbWFzW1wiVXBkYXRlUG9saWN5UmVxdWVzdFwiXSAmIHtcbiAgcnVsZXM/OiBKc29uVmFsdWVbXTtcbiAgYWNsPzogSnNvblZhbHVlW107XG59O1xuZXhwb3J0IHR5cGUgTGlzdFBvbGljaWVzUmVzcG9uc2UgPSBzY2hlbWFzW1wiUGFnaW5hdGVkTGlzdFBvbGljaWVzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBQb2xpY3lUeXBlID0gc2NoZW1hc1tcIlBvbGljeVR5cGVcIl07XG5leHBvcnQgdHlwZSBQb2xpY3lBdHRhY2hlZFRvSWQgPSBzY2hlbWFzW1wiUG9saWN5QXR0YWNoZWRUb0lkXCJdO1xuXG5leHBvcnQgdHlwZSBMaXN0QnVja2V0c1Jlc3BvbnNlID0gc2NoZW1hc1tcIlBhZ2luYXRlZExpc3RCdWNrZXRzUmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBVcGRhdGVCdWNrZXRSZXF1ZXN0ID0gc2NoZW1hc1tcIlVwZGF0ZUJ1Y2tldFJlcXVlc3RcIl07XG5leHBvcnQgdHlwZSBCdWNrZXRBY3Rpb24gPSBzY2hlbWFzW1wiQnVja2V0QWN0aW9uXCJdO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRXYXNtUG9saWN5UmVxdWVzdCA9IHNjaGVtYXNbXCJVcGxvYWRXYXNtUG9saWN5UmVxdWVzdFwiXTtcbmV4cG9ydCB0eXBlIFVwbG9hZFdhc21Qb2xpY3lSZXNwb25zZSA9IHNjaGVtYXNbXCJVcGxvYWRXYXNtUG9saWN5UmVzcG9uc2VcIl07XG5leHBvcnQgdHlwZSBJbnZva2VQb2xpY3lSZXF1ZXN0ID0gc2NoZW1hc1tcIkludm9rZVBvbGljeVJlcXVlc3RcIl07XG5cbmV4cG9ydCB0eXBlIFdhc21SdWxlID0gc2NoZW1hc1tcIldhc21SdWxlXCJdO1xuZXhwb3J0IHR5cGUgSW52b2tlQzJGUmVzcG9uc2UgPSBJbnZva2VQb2xpY3lSZXNwb25zZTtcbmV4cG9ydCB0eXBlIEludm9rZVBvbGljeVJlc3BvbnNlID0gc2NoZW1hc1tcIkludm9rZVBvbGljeVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQzJGUmVzcG9uc2UgPSBXYXNtUG9saWN5UmVzcG9uc2U7XG5leHBvcnQgdHlwZSBXYXNtUG9saWN5UmVzcG9uc2UgPSBzY2hlbWFzW1wiV2FzbVBvbGljeVJlc3BvbnNlXCJdO1xuZXhwb3J0IHR5cGUgQzJGQ29uZmlndXJhdGlvbiA9IFBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb247XG5leHBvcnQgdHlwZSBQb2xpY3lFbmdpbmVDb25maWd1cmF0aW9uID0gc2NoZW1hc1tcIlBvbGljeUVuZ2luZUNvbmZpZ3VyYXRpb25cIl07XG5cbmV4cG9ydCB0eXBlIFBvbGljeUFjdGlvbiA9IHNjaGVtYXNbXCJQb2xpY3lBY3Rpb25cIl07XG5leHBvcnQgdHlwZSBTZWNyZXRBY3Rpb24gPSBzY2hlbWFzW1wiU2VjcmV0QWN0aW9uXCJdO1xuIl19
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/cubist-labs/CubeSigner-TypeScript-SDK.git",
|
|
6
6
|
"directory": "packages/sdk"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.4.
|
|
8
|
+
"version": "0.4.241",
|
|
9
9
|
"description": "CubeSigner TypeScript SDK",
|
|
10
10
|
"license": "MIT OR Apache-2.0",
|
|
11
11
|
"author": "Cubist, Inc.",
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"typedoc": "typedoc"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"openapi-fetch": "0.8.2"
|
|
29
|
+
"openapi-fetch": "0.8.2",
|
|
30
|
+
"zod": "^4.3.6"
|
|
30
31
|
},
|
|
31
32
|
"optionalDependencies": {
|
|
32
33
|
"@hpke/core": "^1.2.7"
|
package/src/audit_log.ts
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { z } from "zod/mini";
|
|
2
|
+
import type { components } from "./schema";
|
|
3
|
+
|
|
4
|
+
type OrgEventDiscriminants = components["schemas"]["OrgEventDiscriminants"];
|
|
5
|
+
type BillingEvent = components["schemas"]["BillingEvent"];
|
|
6
|
+
type MemberRole = components["schemas"]["MemberRole"];
|
|
7
|
+
type OperationKind = components["schemas"]["OperationKind"];
|
|
8
|
+
type KeyType = components["schemas"]["KeyType"];
|
|
9
|
+
|
|
10
|
+
const schemaString = <T extends string>() => z.custom<T>((val) => typeof val === "string");
|
|
11
|
+
|
|
12
|
+
const baseFields = {
|
|
13
|
+
/** The type of org event. */
|
|
14
|
+
event: z.string(),
|
|
15
|
+
/** UUID uniquely identifying this event across all events. */
|
|
16
|
+
event_id: z.string(),
|
|
17
|
+
/** The org in which this event occurred. */
|
|
18
|
+
org_id: z.string(),
|
|
19
|
+
/** ID of the HTTP request that triggered this event (one request can trigger multiple events). */
|
|
20
|
+
request_id: z.string(),
|
|
21
|
+
/** Timestamp of when the event was logged, formatted like YYYY-MM-DD HH:MM:SS.NNNNNNNNN */
|
|
22
|
+
time: z.string(),
|
|
23
|
+
/** ID of the user or role that triggered the event; absent for unauthenticated endpoints. */
|
|
24
|
+
triggered_by: z.nullable(z.string()),
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const auditLogEntrySchema = z.discriminatedUnion("event", [
|
|
28
|
+
z.object({
|
|
29
|
+
...baseFields,
|
|
30
|
+
event: z.literal("Billing"),
|
|
31
|
+
kind: schemaString<BillingEvent>(),
|
|
32
|
+
user_id: z.optional(z.string()),
|
|
33
|
+
role_id: z.optional(z.string()),
|
|
34
|
+
key_id: z.optional(z.string()),
|
|
35
|
+
}),
|
|
36
|
+
z.object({
|
|
37
|
+
...baseFields,
|
|
38
|
+
event: z.literal("Response"),
|
|
39
|
+
kind: schemaString<BillingEvent>(),
|
|
40
|
+
status: z.coerce.number(),
|
|
41
|
+
duration_ms: z.coerce.number(),
|
|
42
|
+
}),
|
|
43
|
+
z.object({
|
|
44
|
+
...baseFields,
|
|
45
|
+
event: z.literal("OidcAuth"),
|
|
46
|
+
issuer: z.string(),
|
|
47
|
+
membership: schemaString<MemberRole>(),
|
|
48
|
+
email: z.optional(z.string()),
|
|
49
|
+
username: z.optional(z.string()),
|
|
50
|
+
scopes: z.array(z.string()),
|
|
51
|
+
}),
|
|
52
|
+
z.object({
|
|
53
|
+
...baseFields,
|
|
54
|
+
event: z.literal("Signed"),
|
|
55
|
+
kind: schemaString<OperationKind>(),
|
|
56
|
+
key_type: schemaString<KeyType>(),
|
|
57
|
+
key_id: z.string(),
|
|
58
|
+
}),
|
|
59
|
+
z.object({
|
|
60
|
+
...baseFields,
|
|
61
|
+
event: z.literal("BabylonEotsConcurrentSigning"),
|
|
62
|
+
key_id: z.string(),
|
|
63
|
+
chain_id: z.string(),
|
|
64
|
+
prev_block_height: z.coerce.number(),
|
|
65
|
+
prev_signing_hash: z.string(),
|
|
66
|
+
req_block_height: z.coerce.number(),
|
|
67
|
+
req_signing_hash: z.string(),
|
|
68
|
+
}),
|
|
69
|
+
z.object({
|
|
70
|
+
...baseFields,
|
|
71
|
+
event: z.literal("Eth2ConcurrentAttestationSigning"),
|
|
72
|
+
key_id: z.string(),
|
|
73
|
+
}),
|
|
74
|
+
z.object({
|
|
75
|
+
...baseFields,
|
|
76
|
+
event: z.literal("Eth2ConcurrentBlockSigning"),
|
|
77
|
+
key_id: z.string(),
|
|
78
|
+
}),
|
|
79
|
+
z.object({
|
|
80
|
+
...baseFields,
|
|
81
|
+
event: z.literal("Eth2InvalidBlockProposerSlotTooLow"),
|
|
82
|
+
slot: z.coerce.number(),
|
|
83
|
+
signing_root: z.string(),
|
|
84
|
+
last_slot: z.coerce.number(),
|
|
85
|
+
last_signing_root: z.string(),
|
|
86
|
+
enforced: z.coerce.boolean(),
|
|
87
|
+
}),
|
|
88
|
+
z.object({
|
|
89
|
+
...baseFields,
|
|
90
|
+
event: z.literal("Eth2InvalidAttestationSourceEpochTooLow"),
|
|
91
|
+
source_epoch: z.coerce.number(),
|
|
92
|
+
signing_root: z.string(),
|
|
93
|
+
last_target_epoch: z.coerce.number(),
|
|
94
|
+
last_signing_root: z.string(),
|
|
95
|
+
enforced: z.coerce.boolean(),
|
|
96
|
+
}),
|
|
97
|
+
z.object({
|
|
98
|
+
...baseFields,
|
|
99
|
+
event: z.literal("Eth2InvalidAttestationTargetEpochTooLow"),
|
|
100
|
+
target_epoch: z.coerce.number(),
|
|
101
|
+
signing_root: z.string(),
|
|
102
|
+
last_target_epoch: z.coerce.number(),
|
|
103
|
+
last_signing_root: z.string(),
|
|
104
|
+
enforced: z.coerce.boolean(),
|
|
105
|
+
}),
|
|
106
|
+
z.object({
|
|
107
|
+
...baseFields,
|
|
108
|
+
event: z.literal("Eth2Unstake"),
|
|
109
|
+
key_id: z.string(),
|
|
110
|
+
validator_index: z.coerce.number(),
|
|
111
|
+
daily_unstake_count: z.coerce.number(),
|
|
112
|
+
}),
|
|
113
|
+
z.object({
|
|
114
|
+
...baseFields,
|
|
115
|
+
event: z.literal("Eth2ExceededMaxUnstake"),
|
|
116
|
+
max: z.coerce.number(),
|
|
117
|
+
date: z.string(),
|
|
118
|
+
}),
|
|
119
|
+
z.object({
|
|
120
|
+
...baseFields,
|
|
121
|
+
event: z.literal("KeyCreated"),
|
|
122
|
+
key_type: schemaString<KeyType>(),
|
|
123
|
+
owner_id: z.string(),
|
|
124
|
+
count: z.coerce.number(),
|
|
125
|
+
}),
|
|
126
|
+
z.object({
|
|
127
|
+
...baseFields,
|
|
128
|
+
event: z.literal("MfaApproved"),
|
|
129
|
+
mfa_id: z.string(),
|
|
130
|
+
meets_approval_criteria: z.coerce.boolean(),
|
|
131
|
+
}),
|
|
132
|
+
z.object({
|
|
133
|
+
...baseFields,
|
|
134
|
+
event: z.literal("MfaRejected"),
|
|
135
|
+
mfa_id: z.string(),
|
|
136
|
+
}),
|
|
137
|
+
z.object({
|
|
138
|
+
...baseFields,
|
|
139
|
+
event: z.literal("PolicyChanged"),
|
|
140
|
+
}),
|
|
141
|
+
z.object({
|
|
142
|
+
...baseFields,
|
|
143
|
+
event: z.literal("TendermintConcurrentSigning"),
|
|
144
|
+
key_id: z.string(),
|
|
145
|
+
chain_id: z.string(),
|
|
146
|
+
last_state: z.string(),
|
|
147
|
+
current_state: z.string(),
|
|
148
|
+
}),
|
|
149
|
+
z.object({
|
|
150
|
+
...baseFields,
|
|
151
|
+
event: z.literal("InvitationCreated"),
|
|
152
|
+
email: z.string(),
|
|
153
|
+
role: z.string(),
|
|
154
|
+
}),
|
|
155
|
+
z.object({
|
|
156
|
+
...baseFields,
|
|
157
|
+
event: z.literal("InvitationCanceled"),
|
|
158
|
+
email: z.string(),
|
|
159
|
+
}),
|
|
160
|
+
z.object({
|
|
161
|
+
...baseFields,
|
|
162
|
+
event: z.literal("UserExportInit"),
|
|
163
|
+
key_id: z.string(),
|
|
164
|
+
valid_epoch: z.coerce.number(),
|
|
165
|
+
}),
|
|
166
|
+
z.object({
|
|
167
|
+
...baseFields,
|
|
168
|
+
event: z.literal("UserExportComplete"),
|
|
169
|
+
key_id: z.string(),
|
|
170
|
+
}),
|
|
171
|
+
z.object({
|
|
172
|
+
...baseFields,
|
|
173
|
+
event: z.literal("WasmPolicyExecuted"),
|
|
174
|
+
source: z.string(),
|
|
175
|
+
key_id: z.optional(z.string()),
|
|
176
|
+
policy: z.string(),
|
|
177
|
+
policy_hash: z.string(),
|
|
178
|
+
stdout: z.string(),
|
|
179
|
+
stderr: z.string(),
|
|
180
|
+
response: z.string(),
|
|
181
|
+
reason: z.optional(z.string()),
|
|
182
|
+
error: z.optional(z.string()),
|
|
183
|
+
}),
|
|
184
|
+
]);
|
|
185
|
+
|
|
186
|
+
export type AuditLogEntry = z.infer<typeof auditLogEntrySchema>;
|
|
187
|
+
|
|
188
|
+
// Compile-time check: errors if a variant is added to OrgEventDiscriminants but not handled here.
|
|
189
|
+
type _AllVariantsCovered = [OrgEventDiscriminants] extends [AuditLogEntry["event"]]
|
|
190
|
+
? [AuditLogEntry["event"]] extends [OrgEventDiscriminants]
|
|
191
|
+
? true
|
|
192
|
+
: never
|
|
193
|
+
: never;
|
|
194
|
+
const _allVariantsCovered: _AllVariantsCovered = true;
|
|
195
|
+
void _allVariantsCovered;
|
package/src/client/api_client.ts
CHANGED
|
@@ -71,6 +71,7 @@ import type {
|
|
|
71
71
|
PolicyInfo,
|
|
72
72
|
} from "../schema_types";
|
|
73
73
|
import { encodeToBase64 } from "../util";
|
|
74
|
+
import { auditLogEntrySchema } from "../audit_log";
|
|
74
75
|
import {
|
|
75
76
|
AddFidoChallenge,
|
|
76
77
|
MfaFidoChallenge,
|
|
@@ -159,13 +160,19 @@ import {
|
|
|
159
160
|
type BucketInfo,
|
|
160
161
|
} from "../index";
|
|
161
162
|
import { assertOk, op, type Op, type Operation, apiFetch } from "../fetch";
|
|
162
|
-
import {
|
|
163
|
+
import {
|
|
164
|
+
authHeader,
|
|
165
|
+
BaseClient,
|
|
166
|
+
type ClientConfig,
|
|
167
|
+
signerSessionFromSessionInfo,
|
|
168
|
+
} from "./base_client";
|
|
163
169
|
import { retryOn5XX } from "../retry";
|
|
164
170
|
import { PasskeyLoginChallenge } from "../passkey";
|
|
165
171
|
|
|
166
172
|
// these types are used in doc comments only
|
|
167
173
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
168
174
|
import type { RoleAttestationClaims, KeyAttestationClaims } from "../schema_types";
|
|
175
|
+
import { mergeHeaders } from "openapi-fetch";
|
|
169
176
|
|
|
170
177
|
/**
|
|
171
178
|
* String returned by API when a user does not have an email address (for backwards compatibility)
|
|
@@ -216,10 +223,7 @@ export class ApiClient extends BaseClient {
|
|
|
216
223
|
return new ApiClient(this.sessionMeta, this.sessionManager, this.orgId, {
|
|
217
224
|
...this.config,
|
|
218
225
|
...cfg,
|
|
219
|
-
headers:
|
|
220
|
-
...(this.config.headers ?? {}),
|
|
221
|
-
...(cfg.headers ?? {}),
|
|
222
|
-
},
|
|
226
|
+
headers: mergeHeaders(this.config.headers, cfg.headers),
|
|
223
227
|
});
|
|
224
228
|
}
|
|
225
229
|
|
|
@@ -257,12 +261,14 @@ export class ApiClient extends BaseClient {
|
|
|
257
261
|
* @param env The environment to use
|
|
258
262
|
* @param orgId The org to login to
|
|
259
263
|
* @param email The email to send the signature to
|
|
264
|
+
* @param headers Optional headers to set
|
|
260
265
|
* @returns The partial OIDC token that must be combined with the signature in the email
|
|
261
266
|
*/
|
|
262
267
|
static async initEmailOtpAuth(
|
|
263
268
|
env: EnvInterface,
|
|
264
269
|
orgId: string,
|
|
265
270
|
email: string,
|
|
271
|
+
headers?: HeadersInit,
|
|
266
272
|
): Promise<EmailOtpResponse> {
|
|
267
273
|
const o = op("/v0/org/{org_id}/oidc/email-otp", "post");
|
|
268
274
|
|
|
@@ -271,6 +277,7 @@ export class ApiClient extends BaseClient {
|
|
|
271
277
|
baseUrl: env.SignerApiRoot,
|
|
272
278
|
params: { path: { org_id: orgId } },
|
|
273
279
|
body: { email },
|
|
280
|
+
headers,
|
|
274
281
|
}),
|
|
275
282
|
).then(assertOk);
|
|
276
283
|
}
|
|
@@ -565,7 +572,11 @@ export class ApiClient extends BaseClient {
|
|
|
565
572
|
return Paginator.items(
|
|
566
573
|
page ?? Page.default(),
|
|
567
574
|
(query) => this.exec(o, { body, params: { query } }),
|
|
568
|
-
(r) =>
|
|
575
|
+
(r) =>
|
|
576
|
+
r.entries.flatMap((entry) => {
|
|
577
|
+
const result = auditLogEntrySchema.safeParse(entry);
|
|
578
|
+
return result.success ? [result.data] : [];
|
|
579
|
+
}),
|
|
569
580
|
(r) => r.last_evaluated_key,
|
|
570
581
|
);
|
|
571
582
|
}
|
|
@@ -2929,14 +2940,16 @@ export class ApiClient extends BaseClient {
|
|
|
2929
2940
|
*
|
|
2930
2941
|
* @param env The environment to use
|
|
2931
2942
|
* @param email The user's email
|
|
2943
|
+
* @param headers Optional headers to set
|
|
2932
2944
|
* @returns Empty response
|
|
2933
2945
|
*/
|
|
2934
|
-
static async emailMyOrgs(env: EnvInterface, email: string) {
|
|
2946
|
+
static async emailMyOrgs(env: EnvInterface, email: string, headers?: HeadersInit) {
|
|
2935
2947
|
const o = op("/v0/email/orgs", "get");
|
|
2936
2948
|
return await retryOn5XX(() =>
|
|
2937
2949
|
o({
|
|
2938
2950
|
baseUrl: env.SignerApiRoot,
|
|
2939
2951
|
params: { query: { email } },
|
|
2952
|
+
headers,
|
|
2940
2953
|
}),
|
|
2941
2954
|
).then(assertOk);
|
|
2942
2955
|
}
|
|
@@ -2951,6 +2964,7 @@ export class ApiClient extends BaseClient {
|
|
|
2951
2964
|
* @param lifetimes Lifetimes of the new session.
|
|
2952
2965
|
* @param mfaReceipt Optional MFA receipt(s)
|
|
2953
2966
|
* @param purpose Optional session description.
|
|
2967
|
+
* @param headers Additional headers to set
|
|
2954
2968
|
* @returns The session data.
|
|
2955
2969
|
*/
|
|
2956
2970
|
static async oidcSessionCreate(
|
|
@@ -2961,18 +2975,16 @@ export class ApiClient extends BaseClient {
|
|
|
2961
2975
|
lifetimes?: RatchetConfig,
|
|
2962
2976
|
mfaReceipt?: MfaReceipts,
|
|
2963
2977
|
purpose?: string,
|
|
2978
|
+
headers?: HeadersInit,
|
|
2964
2979
|
): Promise<CubeSignerResponse<SessionData>> {
|
|
2965
2980
|
const o = op("/v0/org/{org_id}/oidc", "post");
|
|
2966
2981
|
|
|
2967
|
-
const loginFn = async (
|
|
2982
|
+
const loginFn = async (mfaHeaders?: HeadersInit) => {
|
|
2968
2983
|
const data = await retryOn5XX(() =>
|
|
2969
2984
|
o({
|
|
2970
2985
|
baseUrl: env.SignerApiRoot,
|
|
2971
2986
|
params: { path: { org_id: orgId } },
|
|
2972
|
-
headers:
|
|
2973
|
-
...headers,
|
|
2974
|
-
Authorization: token,
|
|
2975
|
-
},
|
|
2987
|
+
headers: mergeHeaders(headers, mfaHeaders, authHeader(token)),
|
|
2976
2988
|
body: {
|
|
2977
2989
|
scopes,
|
|
2978
2990
|
purpose,
|
|
@@ -3008,12 +3020,14 @@ export class ApiClient extends BaseClient {
|
|
|
3008
3020
|
* @param env The environment to use
|
|
3009
3021
|
* @param orgId The org to login to
|
|
3010
3022
|
* @param body The request body
|
|
3023
|
+
* @param headers Optional headers to set
|
|
3011
3024
|
* @returns The challenge that needs to be answered via {@link siweLoginComplete}
|
|
3012
3025
|
*/
|
|
3013
3026
|
static async siweLoginInit(
|
|
3014
3027
|
env: EnvInterface,
|
|
3015
3028
|
orgId: string,
|
|
3016
3029
|
body: schemas["SiweInitRequest"],
|
|
3030
|
+
headers?: HeadersInit,
|
|
3017
3031
|
): Promise<schemas["SiweInitResponse"]> {
|
|
3018
3032
|
const o = op("/v0/org/{org_id}/oidc/siwe", "post");
|
|
3019
3033
|
return await retryOn5XX(() =>
|
|
@@ -3021,6 +3035,7 @@ export class ApiClient extends BaseClient {
|
|
|
3021
3035
|
baseUrl: env.SignerApiRoot,
|
|
3022
3036
|
params: { path: { org_id: orgId } },
|
|
3023
3037
|
body,
|
|
3038
|
+
headers,
|
|
3024
3039
|
}),
|
|
3025
3040
|
).then(assertOk);
|
|
3026
3041
|
}
|
|
@@ -3035,12 +3050,14 @@ export class ApiClient extends BaseClient {
|
|
|
3035
3050
|
* @param env The environment to use
|
|
3036
3051
|
* @param orgId The org to login to
|
|
3037
3052
|
* @param body The request body
|
|
3053
|
+
* @param headers Optional headers to set
|
|
3038
3054
|
* @returns An OIDC token which can be used to log in via OIDC (see {@link oidcSessionCreate})
|
|
3039
3055
|
*/
|
|
3040
3056
|
static async siweLoginComplete(
|
|
3041
3057
|
env: EnvInterface,
|
|
3042
3058
|
orgId: string,
|
|
3043
3059
|
body: schemas["SiweCompleteRequest"],
|
|
3060
|
+
headers?: HeadersInit,
|
|
3044
3061
|
): Promise<schemas["SiweCompleteResponse"]> {
|
|
3045
3062
|
const o = op("/v0/org/{org_id}/oidc/siwe", "patch");
|
|
3046
3063
|
return await retryOn5XX(() =>
|
|
@@ -3048,6 +3065,7 @@ export class ApiClient extends BaseClient {
|
|
|
3048
3065
|
baseUrl: env.SignerApiRoot,
|
|
3049
3066
|
params: { path: { org_id: orgId } },
|
|
3050
3067
|
body,
|
|
3068
|
+
headers,
|
|
3051
3069
|
}),
|
|
3052
3070
|
).then(assertOk);
|
|
3053
3071
|
}
|
|
@@ -3057,17 +3075,20 @@ export class ApiClient extends BaseClient {
|
|
|
3057
3075
|
*
|
|
3058
3076
|
* @param env The environment to log into
|
|
3059
3077
|
* @param body The login request
|
|
3078
|
+
* @param headers Optional headers to set
|
|
3060
3079
|
* @returns The challenge that must be answered (see {@link passkeyLoginComplete}) to log in.
|
|
3061
3080
|
*/
|
|
3062
3081
|
static async passkeyLoginInit(
|
|
3063
3082
|
env: EnvInterface,
|
|
3064
3083
|
body: LoginRequest,
|
|
3084
|
+
headers?: HeadersInit,
|
|
3065
3085
|
): Promise<PasskeyLoginChallenge> {
|
|
3066
3086
|
const o = op("/v0/passkey", "post");
|
|
3067
3087
|
const resp = await retryOn5XX(() =>
|
|
3068
3088
|
o({
|
|
3069
3089
|
baseUrl: env.SignerApiRoot,
|
|
3070
3090
|
body,
|
|
3091
|
+
headers,
|
|
3071
3092
|
}),
|
|
3072
3093
|
).then(assertOk);
|
|
3073
3094
|
return new PasskeyLoginChallenge(env, resp, body.purpose);
|
|
@@ -3079,18 +3100,21 @@ export class ApiClient extends BaseClient {
|
|
|
3079
3100
|
* @param env The environment to log into
|
|
3080
3101
|
* @param body The request body
|
|
3081
3102
|
* @param purpose Optional descriptive session purpose
|
|
3103
|
+
* @param headers Optional headers to set
|
|
3082
3104
|
* @returns The session data
|
|
3083
3105
|
*/
|
|
3084
3106
|
static async passkeyLoginComplete(
|
|
3085
3107
|
env: EnvInterface,
|
|
3086
3108
|
body: PasskeyAssertAnswer,
|
|
3087
3109
|
purpose?: string | null,
|
|
3110
|
+
headers?: HeadersInit,
|
|
3088
3111
|
): Promise<SessionData> {
|
|
3089
3112
|
const o = op("/v0/passkey", "patch");
|
|
3090
3113
|
const resp = await retryOn5XX(() =>
|
|
3091
3114
|
o({
|
|
3092
3115
|
baseUrl: env.SignerApiRoot,
|
|
3093
3116
|
body,
|
|
3117
|
+
headers,
|
|
3094
3118
|
}),
|
|
3095
3119
|
).then(assertOk);
|
|
3096
3120
|
return {
|
|
@@ -3112,11 +3136,13 @@ export class ApiClient extends BaseClient {
|
|
|
3112
3136
|
* @param env The environment to log into
|
|
3113
3137
|
* @param orgId The id of the organization
|
|
3114
3138
|
* @param body The request body
|
|
3139
|
+
* @param headers Optional headers to set
|
|
3115
3140
|
*/
|
|
3116
3141
|
static async idpAcceptInvite(
|
|
3117
3142
|
env: EnvInterface,
|
|
3118
3143
|
orgId: string,
|
|
3119
3144
|
body: InvitationAcceptRequest,
|
|
3145
|
+
headers?: HeadersInit,
|
|
3120
3146
|
): Promise<void> {
|
|
3121
3147
|
const o = op("/v0/org/{org_id}/invitation/accept", "post");
|
|
3122
3148
|
await retryOn5XX(() =>
|
|
@@ -3124,6 +3150,7 @@ export class ApiClient extends BaseClient {
|
|
|
3124
3150
|
baseUrl: env.SignerApiRoot,
|
|
3125
3151
|
params: { path: { org_id: orgId } },
|
|
3126
3152
|
body,
|
|
3153
|
+
headers,
|
|
3127
3154
|
}),
|
|
3128
3155
|
).then(assertOk);
|
|
3129
3156
|
}
|
|
@@ -3134,6 +3161,7 @@ export class ApiClient extends BaseClient {
|
|
|
3134
3161
|
* @param env The environment to log into
|
|
3135
3162
|
* @param orgId The id of the organization
|
|
3136
3163
|
* @param body The request body
|
|
3164
|
+
* @param headers Optional headers to set
|
|
3137
3165
|
* @returns Returns an OIDC token which can be used
|
|
3138
3166
|
* to log in via OIDC (see {@link oidcSessionCreate}).
|
|
3139
3167
|
*/
|
|
@@ -3141,6 +3169,7 @@ export class ApiClient extends BaseClient {
|
|
|
3141
3169
|
env: EnvInterface,
|
|
3142
3170
|
orgId: string,
|
|
3143
3171
|
body: AuthenticationRequest,
|
|
3172
|
+
headers?: HeadersInit,
|
|
3144
3173
|
): Promise<AuthenticationResponse> {
|
|
3145
3174
|
const o = op("/v0/org/{org_id}/idp/authenticate", "post");
|
|
3146
3175
|
return retryOn5XX(() =>
|
|
@@ -3148,6 +3177,7 @@ export class ApiClient extends BaseClient {
|
|
|
3148
3177
|
baseUrl: env.SignerApiRoot,
|
|
3149
3178
|
params: { path: { org_id: orgId } },
|
|
3150
3179
|
body,
|
|
3180
|
+
headers,
|
|
3151
3181
|
}),
|
|
3152
3182
|
).then(assertOk);
|
|
3153
3183
|
}
|
|
@@ -3158,12 +3188,14 @@ export class ApiClient extends BaseClient {
|
|
|
3158
3188
|
* @param env The environment to log into
|
|
3159
3189
|
* @param orgId The id of the organization
|
|
3160
3190
|
* @param body The request body
|
|
3191
|
+
* @param headers Optional headers to set
|
|
3161
3192
|
* @returns Returns the partial token (`${header}.${claims}.`) while the signature is sent via email.
|
|
3162
3193
|
*/
|
|
3163
3194
|
static async idpPasswordResetRequest(
|
|
3164
3195
|
env: EnvInterface,
|
|
3165
3196
|
orgId: string,
|
|
3166
3197
|
body: PasswordResetRequest,
|
|
3198
|
+
headers?: HeadersInit,
|
|
3167
3199
|
): Promise<EmailOtpResponse> {
|
|
3168
3200
|
const o = op("/v0/org/{org_id}/idp/password_reset", "post");
|
|
3169
3201
|
return retryOn5XX(() =>
|
|
@@ -3171,6 +3203,7 @@ export class ApiClient extends BaseClient {
|
|
|
3171
3203
|
baseUrl: env.SignerApiRoot,
|
|
3172
3204
|
params: { path: { org_id: orgId } },
|
|
3173
3205
|
body,
|
|
3206
|
+
headers,
|
|
3174
3207
|
}),
|
|
3175
3208
|
).then(assertOk);
|
|
3176
3209
|
}
|
|
@@ -3183,6 +3216,7 @@ export class ApiClient extends BaseClient {
|
|
|
3183
3216
|
* @param partialToken The partial token returned by {@link passwordResetRequest}
|
|
3184
3217
|
* @param signature The one-time code (signature in this case) sent via email
|
|
3185
3218
|
* @param newPassword The new password
|
|
3219
|
+
* @param headers Optional headers to set
|
|
3186
3220
|
*/
|
|
3187
3221
|
static async idpPasswordResetConfirm(
|
|
3188
3222
|
env: EnvInterface,
|
|
@@ -3190,6 +3224,7 @@ export class ApiClient extends BaseClient {
|
|
|
3190
3224
|
partialToken: string,
|
|
3191
3225
|
signature: string,
|
|
3192
3226
|
newPassword: string,
|
|
3227
|
+
headers?: HeadersInit,
|
|
3193
3228
|
): Promise<void> {
|
|
3194
3229
|
const o = op("/v0/org/{org_id}/idp/password_reset", "patch");
|
|
3195
3230
|
await retryOn5XX(() =>
|
|
@@ -3200,6 +3235,7 @@ export class ApiClient extends BaseClient {
|
|
|
3200
3235
|
token: `${partialToken}${signature}`,
|
|
3201
3236
|
new_password: newPassword,
|
|
3202
3237
|
},
|
|
3238
|
+
headers,
|
|
3203
3239
|
}),
|
|
3204
3240
|
).then(assertOk);
|
|
3205
3241
|
}
|
|
@@ -3210,21 +3246,21 @@ export class ApiClient extends BaseClient {
|
|
|
3210
3246
|
* @param env The environment to log into
|
|
3211
3247
|
* @param orgId The org id in which to generate proof
|
|
3212
3248
|
* @param token The oidc token
|
|
3249
|
+
* @param headers Optional headers to set
|
|
3213
3250
|
* @returns Proof of authentication
|
|
3214
3251
|
*/
|
|
3215
3252
|
static async identityProveOidc(
|
|
3216
3253
|
env: EnvInterface,
|
|
3217
3254
|
orgId: string,
|
|
3218
3255
|
token: string,
|
|
3256
|
+
headers?: HeadersInit,
|
|
3219
3257
|
): Promise<IdentityProof> {
|
|
3220
3258
|
const o = op("/v0/org/{org_id}/identity/prove/oidc", "post");
|
|
3221
3259
|
return retryOn5XX(() =>
|
|
3222
3260
|
o({
|
|
3223
3261
|
baseUrl: env.SignerApiRoot,
|
|
3224
3262
|
params: { path: { org_id: orgId } },
|
|
3225
|
-
headers:
|
|
3226
|
-
Authorization: token,
|
|
3227
|
-
},
|
|
3263
|
+
headers: mergeHeaders(headers, authHeader(token)),
|
|
3228
3264
|
}),
|
|
3229
3265
|
).then(assertOk);
|
|
3230
3266
|
}
|
|
@@ -3234,16 +3270,19 @@ export class ApiClient extends BaseClient {
|
|
|
3234
3270
|
*
|
|
3235
3271
|
* @param env The environment to log into
|
|
3236
3272
|
* @param token The oidc token identifying the user
|
|
3273
|
+
* @param headers Optional headers to set
|
|
3237
3274
|
* @returns The organization the user belongs to
|
|
3238
3275
|
*/
|
|
3239
|
-
static async userOrgs(
|
|
3276
|
+
static async userOrgs(
|
|
3277
|
+
env: EnvInterface,
|
|
3278
|
+
token: string,
|
|
3279
|
+
headers?: HeadersInit,
|
|
3280
|
+
): Promise<UserOrgsResponse> {
|
|
3240
3281
|
const o = op("/v0/user/orgs", "get");
|
|
3241
3282
|
return retryOn5XX(() =>
|
|
3242
3283
|
o({
|
|
3243
3284
|
baseUrl: env.SignerApiRoot,
|
|
3244
|
-
headers:
|
|
3245
|
-
Authorization: token,
|
|
3246
|
-
},
|
|
3285
|
+
headers: mergeHeaders(headers, authHeader(token)),
|
|
3247
3286
|
}),
|
|
3248
3287
|
).then(assertOk);
|
|
3249
3288
|
}
|