@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.
@@ -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.237",
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"
@@ -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;
@@ -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 { BaseClient, type ClientConfig, signerSessionFromSessionInfo } from "./base_client";
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) => r.entries,
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 (headers?: HeadersInit) => {
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(env: EnvInterface, token: string): Promise<UserOrgsResponse> {
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
  }