drama-pm-client 0.2.2 → 0.2.3

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/index.d.ts CHANGED
@@ -27,7 +27,7 @@ export interface ClaimRewardsParams {
27
27
  market: PublicKey;
28
28
  bettingToken: PublicKey;
29
29
  winningOutcome: Outcome;
30
- sharesToClaim: number | BN;
30
+ tokenAmount: number | BN;
31
31
  }
32
32
  export interface RefundParams {
33
33
  user: PublicKey;
package/dist/index.js CHANGED
@@ -190,7 +190,7 @@ export class DramaPmClient {
190
190
  const userBettingToken = getAssociatedTokenAddressSync(bettingToken, user);
191
191
  const targetMint = winningOutcome === "Yes" ? yesMint : noMint;
192
192
  const userOutcomeToken = getAssociatedTokenAddressSync(targetMint, user);
193
- const sharesToClaimBn = new AnchorBN(params.sharesToClaim);
193
+ const sharesToClaimBn = new AnchorBN(params.tokenAmount);
194
194
  return await this.program.methods
195
195
  .claimRewards({
196
196
  tokenAmount: sharesToClaimBn,
@@ -310,4 +310,4 @@ export class DramaPmClient {
310
310
  return await getAccount(this.connection, vaultPda);
311
311
  }
312
312
  }
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLEVBQUUsSUFBSSxRQUFRLEVBQ2QsT0FBTyxJQUFJLGFBQWEsRUFDeEIsY0FBYyxFQUNkLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsdUNBQXVDLEVBQ3ZDLFVBQVUsRUFDViw2QkFBNkIsRUFDN0IsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsV0FBVyxFQUVaLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sWUFBWSxDQUFDO0FBRXBCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLE9BQU8sRUFBVyxHQUFHLEVBQUUsQ0FBQztBQXFDeEIsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFBWSxVQUFzQixFQUFFLE1BQWUsRUFBRSxTQUFxQjtRQUN4RSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUNoQyxVQUFVLEVBQ1YsTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN4QyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FDNUIsQ0FBQztRQUVGLHVFQUF1RTtRQUN2RSxNQUFNLGNBQWMsR0FBRyxTQUFTLElBQUksSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELDZDQUE2QztRQUM3QyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUVqRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLFNBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBZ0MsQ0FBQztJQUNuRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFNBQW9CO1FBQy9CLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFnQyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBYztRQUM1QixJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUNsQixLQUFnQixFQUNoQixLQUFnQixFQUNoQixJQUFlO1FBRWYsTUFBTSxHQUFHLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sdUNBQXVDLENBQzVDLEtBQUssRUFDTCxHQUFHLEVBQ0gsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFvQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDOUIsZ0JBQWdCLEVBQUU7YUFDbEIsZUFBZSxDQUFDO1lBQ2YsWUFBWTtZQUNaLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDNUMsQ0FBQzthQUNELFdBQVcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxTQUFvQjtRQUNoRCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBbUI7UUFDaEMsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsZUFBZSxDQUFDO1lBQ2YsWUFBWTtTQUNiLENBQUM7YUFDRCxXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQW1CO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBMEI7UUFDM0MsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTdFLE1BQU0sVUFBVSxHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEUsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLFlBQVksQ0FBQztZQUNWLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7YUFDRCxlQUFlLENBQUM7WUFDZixZQUFZO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxLQUFLO1lBQ1osYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztTQUM1QyxDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQTBCO1FBQ2xELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBc0I7UUFDbkMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRWpFLGtDQUFrQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQzlDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQzdDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQzVDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUzRSxzREFBc0Q7UUFDdEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekUsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzthQUM5QixRQUFRLENBQUM7WUFDUixVQUFVLEVBQUUsV0FBVztZQUN2QixNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFDO2FBQ0QsZUFBZSxDQUFDO1lBQ2YsTUFBTTtZQUNOLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsSUFBSTtTQUNMLENBQUM7YUFDRCxXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQXNCO1FBQzFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTNELE1BQU0sRUFBRSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFFN0IsdUNBQXVDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDOUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNMLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDN0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXpFLDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN0RSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQTBCO1FBQzNDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFOUQsdUNBQXVDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDOUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNMLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDN0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLGNBQWMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sZUFBZSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLFlBQVksQ0FBQztZQUNaLFdBQVcsRUFBRSxlQUFlO1NBQzdCLENBQUM7YUFDRCxlQUFlLENBQUM7WUFDZixNQUFNO1lBQ04sZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixJQUFJO1NBQ0wsQ0FBQzthQUNELFdBQVcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUEwQjtRQUNsRCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQW9CO1FBQy9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFdkQsTUFBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRWpFLHVDQUF1QztRQUN2QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQzlDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQzdDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRSxNQUFNLFVBQVUsR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV6RSxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDbkIsZUFBZSxDQUFDO1lBQ2YsTUFBTTtZQUNOLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsSUFBSTtTQUNMLENBQUM7YUFDRCxXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQW9CO1FBQ3RDLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLEtBQWdCLEVBQ2hCLFFBQXFCLEVBQ3JCLGNBQW1DO1FBRW5DLE1BQU0sVUFBVSxHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFMUUsSUFBSSxXQUFXLEdBQVEsSUFBSSxDQUFDO1FBQzVCLElBQUksY0FBYyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLFdBQVcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsV0FBVyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLGFBQWEsQ0FBQyxXQUFXLENBQUM7YUFDMUIsZUFBZSxDQUFDO1lBQ2YsTUFBTSxFQUFFLFNBQVM7WUFDakIsS0FBSztTQUNOLENBQUM7YUFDRCxXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLEtBQWdCLEVBQ2hCLFFBQXFCLEVBQ3JCLGNBQW1DO1FBRW5DLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FDZixLQUFnQixFQUNoQixRQUFxQjtRQUVyQixNQUFNLFVBQVUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDOUIsV0FBVyxFQUFFO2FBQ2IsZUFBZSxDQUFDO1lBQ2YsTUFBTSxFQUFFLFNBQVM7U0FDbEIsQ0FBQzthQUNELFdBQVcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsS0FBZ0IsRUFDaEIsUUFBcUI7UUFFckIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxRQUFxQjtRQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBb0I7UUFDeEMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJOLCBJZGwsIFByb2dyYW0gfSBmcm9tIFwiQGNvcmFsLXh5ei9hbmNob3JcIjtcbmltcG9ydCB7XG4gIEJOIGFzIEFuY2hvckJOLFxuICBQcm9ncmFtIGFzIEFuY2hvclByb2dyYW0sXG4gIEFuY2hvclByb3ZpZGVyLFxuICBXYWxsZXQsXG4gIHdlYjMsXG59IGZyb20gXCJAY29yYWwteHl6L2FuY2hvclwiO1xuaW1wb3J0IHtcbiAgY3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudEluc3RydWN0aW9uLFxuICBnZXRBY2NvdW50LFxuICBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyxcbiAgVE9LRU5fUFJPR1JBTV9JRCxcbn0gZnJvbSBcIkBzb2xhbmEvc3BsLXRva2VuXCI7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uLFxuICBLZXlwYWlyLFxuICBQdWJsaWNLZXksXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RydWN0aW9uXG59IGZyb20gXCJAc29sYW5hL3dlYjMuanNcIjtcbmltcG9ydCB7IElETCB9IGZyb20gXCIuL2lkbC5qc1wiO1xuaW1wb3J0IHsgRHJhbWFQbSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQge1xuICBnZXRHbG9iYWxDb25maWdQZGEsXG4gIGdldE1hcmtldFBkYSxcbiAgZ2V0TWFya2V0UGRhcyxcbiAgZ2V0VmF1bHRQZGEsXG59IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzLmpzXCI7XG5leHBvcnQgeyBEcmFtYVBtLCBJREwgfTtcblxuZXhwb3J0IHR5cGUgT3V0Y29tZSA9IFwiWWVzXCIgfCBcIk5vXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTWFya2V0UGFyYW1zIHtcbiAgYWRtaW46IFB1YmxpY0tleTtcbiAgbWFya2V0SWQ6IG51bWJlciB8IEJOO1xuICB5ZXNQcmljZTogbnVtYmVyIHwgQk47XG4gIG5vUHJpY2U6IG51bWJlciB8IEJOO1xuICBlbmRUaW1lOiBudW1iZXIgfCBCTjtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VCZXRQYXJhbXMge1xuICB1c2VyOiBQdWJsaWNLZXk7XG4gIG1hcmtldDogUHVibGljS2V5OyAvLyBNYXJrZXQgUERBIGFkZHJlc3NcbiAgYW1vdW50OiBudW1iZXIgfCBCTjtcbiAgb3V0Y29tZTogT3V0Y29tZTtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG4gIGNyZWF0ZUF0YT86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gY3JlYXRlIEFUQSBpbnN0cnVjdGlvbiBhdXRvbWF0aWNhbGx5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhaW1SZXdhcmRzUGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICB3aW5uaW5nT3V0Y29tZTogT3V0Y29tZTtcbiAgc2hhcmVzVG9DbGFpbTogbnVtYmVyIHwgQk47IC8vIEFtb3VudCBvZiBzaGFyZXMgdG8gY2xhaW0gKDAgPSBjbGFpbSBhbGwpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmdW5kUGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICBvdXRjb21lOiBPdXRjb21lO1xufVxuXG5leHBvcnQgY2xhc3MgRHJhbWFQbUNsaWVudCB7XG4gIHByb2dyYW06IFByb2dyYW08RHJhbWFQbT47XG4gIHByb3ZpZGVyOiBBbmNob3JQcm92aWRlcjtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uLCB3YWxsZXQ/OiBXYWxsZXQsIHByb2dyYW1JZD86IFB1YmxpY0tleSkge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBBbmNob3JQcm92aWRlcihcbiAgICAgIGNvbm5lY3Rpb24sXG4gICAgICB3YWxsZXQgfHwgbmV3IFdhbGxldChLZXlwYWlyLmdlbmVyYXRlKCkpLFxuICAgICAgeyBjb21taXRtZW50OiBcImNvbmZpcm1lZFwiIH1cbiAgICApO1xuICAgIFxuICAgIC8vIFVzZSBjdXN0b20gcHJvZ3JhbUlkIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgdXNlIHRoZSBkZWZhdWx0IGZyb20gSURMXG4gICAgY29uc3QgZmluYWxQcm9ncmFtSWQgPSBwcm9ncmFtSWQgfHwgbmV3IFB1YmxpY0tleShJREwuYWRkcmVzcyk7XG4gICAgXG4gICAgLy8gQ3JlYXRlIGEgbmV3IElETCB3aXRoIHRoZSBjdXN0b20gcHJvZ3JhbUlkXG4gICAgY29uc3QgY3VzdG9tSWRsID0geyAuLi5JREwsIGFkZHJlc3M6IGZpbmFsUHJvZ3JhbUlkLnRvQmFzZTU4KCkgfTtcbiAgICBcbiAgICB0aGlzLnByb2dyYW0gPSBuZXcgQW5jaG9yUHJvZ3JhbShjdXN0b21JZGwgYXMgSWRsLCB0aGlzLnByb3ZpZGVyKSBhcyB1bmtub3duIGFzIFByb2dyYW08RHJhbWFQbT47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHByb2dyYW0gSURcbiAgICovXG4gIGdldFByb2dyYW1JZCgpOiBQdWJsaWNLZXkge1xuICAgIHJldHVybiB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIG5ldyBwcm9ncmFtIElEIGFuZCByZWluaXRpYWxpemUgdGhlIHByb2dyYW0gaW5zdGFuY2VcbiAgICogVXNlZnVsIHdoZW4gcmVkZXBsb3lpbmcgdGhlIHByb2dyYW0gdG8gYSBuZXcgYWRkcmVzc1xuICAgKi9cbiAgc2V0UHJvZ3JhbUlkKHByb2dyYW1JZDogUHVibGljS2V5KTogdm9pZCB7XG4gICAgY29uc3QgY3VzdG9tSWRsID0geyAuLi5JREwsIGFkZHJlc3M6IHByb2dyYW1JZC50b0Jhc2U1OCgpIH07XG4gICAgdGhpcy5wcm9ncmFtID0gbmV3IEFuY2hvclByb2dyYW0oY3VzdG9tSWRsIGFzIElkbCwgdGhpcy5wcm92aWRlcikgYXMgdW5rbm93biBhcyBQcm9ncmFtPERyYW1hUG0+O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCBleGlzdHNcbiAgICovXG4gIGFzeW5jIGF0YUV4aXN0cyhhdGE6IFB1YmxpY0tleSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBnZXRBY2NvdW50KHRoaXMuY29ubmVjdGlvbiwgYXRhKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5zdHJ1Y3Rpb24gdG8gaW5pdGlhbGl6ZSBhbiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnRcbiAgICovXG4gIGNyZWF0ZUF0YUluc3RydWN0aW9uKFxuICAgIHBheWVyOiBQdWJsaWNLZXksXG4gICAgb3duZXI6IFB1YmxpY0tleSxcbiAgICBtaW50OiBQdWJsaWNLZXlcbiAgKTogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbiB7XG4gICAgY29uc3QgYXRhID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMobWludCwgb3duZXIpO1xuICAgIHJldHVybiBjcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5zdHJ1Y3Rpb24oXG4gICAgICBwYXllcixcbiAgICAgIGF0YSxcbiAgICAgIG93bmVyLFxuICAgICAgbWludCxcbiAgICAgIFRPS0VOX1BST0dSQU1fSURcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gKEF1dGhvcml0eSBvbmx5KVxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZUNvbmZpZyhhdXRob3JpdHk6IFB1YmxpY0tleSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5pbml0aWFsaXplQ29uZmlnKClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBnbG9iYWxDb25maWcsXG4gICAgICAgIGF1dGhvcml0eTogYXV0aG9yaXR5LFxuICAgICAgICBzeXN0ZW1Qcm9ncmFtOiB3ZWIzLlN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gaW5pdGlhbGl6ZSBjb25maWdcbiAgICovXG4gIGFzeW5jIGJ1aWxkSW5pdGlhbGl6ZUNvbmZpZ1R4KGF1dGhvcml0eTogUHVibGljS2V5KTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5pbml0aWFsaXplQ29uZmlnKGF1dGhvcml0eSk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGF1dGhvcml6ZWQgYWRtaW4gKEF1dGhvcml0eSBvbmx5KVxuICAgKi9cbiAgYXN5bmMgYWRkQWRtaW4obmV3QWRtaW46IFB1YmxpY0tleSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLmFkZEFkbWluKG5ld0FkbWluKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhZG1pblxuICAgKi9cbiAgYXN5bmMgYnVpbGRBZGRBZG1pblR4KG5ld0FkbWluOiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmFkZEFkbWluKG5ld0FkbWluKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcHJlZGljdGlvbiBtYXJrZXQgaW5zdHJ1Y3Rpb25cbiAgICovXG4gIGFzeW5jIGNyZWF0ZU1hcmtldChwYXJhbXM6IENyZWF0ZU1hcmtldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgYWRtaW4sIG1hcmtldElkLCB5ZXNQcmljZSwgbm9QcmljZSwgZW5kVGltZSwgYmV0dGluZ1Rva2VuIH0gPSBwYXJhbXM7XG4gICAgXG4gICAgY29uc3QgbWFya2V0SWRCbiA9IG5ldyBBbmNob3JCTihtYXJrZXRJZCk7XG4gICAgY29uc3QgeWVzUHJpY2VCbiA9IG5ldyBBbmNob3JCTih5ZXNQcmljZSk7XG4gICAgY29uc3Qgbm9QcmljZUJuID0gbmV3IEFuY2hvckJOKG5vUHJpY2UpO1xuICAgIGNvbnN0IGVuZFRpbWVCbiA9IG5ldyBBbmNob3JCTihlbmRUaW1lKTtcblxuICAgIGNvbnN0IHBkYXMgPSBnZXRNYXJrZXRQZGFzKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIGFkbWluLCBtYXJrZXRJZEJuKTtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jcmVhdGVNYXJrZXQoe1xuICAgICAgICAgIG1hcmtldElkOiBtYXJrZXRJZEJuLFxuICAgICAgICAgIHllc1ByaWNlOiB5ZXNQcmljZUJuLFxuICAgICAgICAgIG5vUHJpY2U6IG5vUHJpY2VCbixcbiAgICAgICAgICBlbmRUaW1lOiBlbmRUaW1lQm4sXG4gICAgICAgIH0pXG4gICAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgICAgICBtYXJrZXQ6IHBkYXMubWFya2V0LFxuICAgICAgICAgIHllc01pbnQ6IHBkYXMueWVzTWludCxcbiAgICAgICAgICBub01pbnQ6IHBkYXMubm9NaW50LFxuICAgICAgICAgIGJldHRpbmdUb2tlbjogYmV0dGluZ1Rva2VuLFxuICAgICAgICAgIHZhdWx0OiBwZGFzLnZhdWx0LFxuICAgICAgICAgIGFkbWluOiBhZG1pbixcbiAgICAgICAgICBzeXN0ZW1Qcm9ncmFtOiB3ZWIzLlN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLFxuICAgICAgICB9KVxuICAgICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRDcmVhdGVNYXJrZXRUeChwYXJhbXM6IENyZWF0ZU1hcmtldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY3JlYXRlTWFya2V0KHBhcmFtcyk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2UgYSBiZXQgaW5zdHJ1Y3Rpb24gKHdpdGhvdXQgQVRBIGNyZWF0aW9uKVxuICAgKi9cbiAgYXN5bmMgcGxhY2VCZXQocGFyYW1zOiBQbGFjZUJldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBhbW91bnQsIG91dGNvbWUsIGJldHRpbmdUb2tlbiB9ID0gcGFyYW1zO1xuICAgIFxuICAgIGNvbnN0IGFtb3VudEJuID0gbmV3IEFuY2hvckJOKGFtb3VudCk7XG4gICAgY29uc3Qgb3V0Y29tZUVudW0gPSBvdXRjb21lID09PSBcIlllc1wiID8geyB5ZXM6IHt9IH0gOiB7IG5vOiB7fSB9O1xuXG4gICAgLy8gRGVyaXZlIFBEQXMgZnJvbSBtYXJrZXQgYWRkcmVzc1xuICAgIGNvbnN0IHllc01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcInllc19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcIm5vX21pbnRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IHZhdWx0ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJ2YXVsdFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG5cbiAgICBjb25zdCB1c2VyQmV0dGluZ1Rva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCB1c2VyKTtcbiAgICBcbiAgICAvLyBEZXRlcm1pbmUgd2hpY2ggb3V0Y29tZSB0b2tlbiB0aGUgdXNlciB3aWxsIHJlY2VpdmVcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAucGxhY2VCZXQoe1xuICAgICAgICBidXlPdXRjb21lOiBvdXRjb21lRW51bSxcbiAgICAgICAgYW1vdW50OiBhbW91bnRCbixcbiAgICAgIH0pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0LFxuICAgICAgICB5ZXNNaW50LFxuICAgICAgICBub01pbnQsXG4gICAgICAgIHZhdWx0LFxuICAgICAgICB1c2VyT3V0Y29tZVRva2VuLFxuICAgICAgICB1c2VyQmV0dGluZ1Rva2VuLFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gcGxhY2UgYSBiZXQgKHdpdGggb3B0aW9uYWwgQVRBIGNyZWF0aW9uKVxuICAgKi9cbiAgYXN5bmMgYnVpbGRQbGFjZUJldFR4KHBhcmFtczogUGxhY2VCZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIG91dGNvbWUsIGNyZWF0ZUF0YSA9IHRydWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbigpO1xuICAgIFxuICAgIC8vIERlcml2ZSBtaW50IFBEQXMgZnJvbSBtYXJrZXQgYWRkcmVzc1xuICAgIGNvbnN0IHllc01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcInllc19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcIm5vX21pbnRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIFxuICAgIGNvbnN0IHRhcmdldE1pbnQgPSBvdXRjb21lID09PSBcIlllc1wiID8geWVzTWludCA6IG5vTWludDtcbiAgICBjb25zdCB1c2VyT3V0Y29tZVRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmModGFyZ2V0TWludCwgdXNlcik7XG5cbiAgICAvLyBDaGVjayBpZiBBVEEgZXhpc3RzIGFuZCBjcmVhdGUgaWYgbmVlZGVkXG4gICAgaWYgKGNyZWF0ZUF0YSkge1xuICAgICAgY29uc3QgZXhpc3RzID0gYXdhaXQgdGhpcy5hdGFFeGlzdHModXNlck91dGNvbWVUb2tlbik7XG4gICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICBjb25zdCBjcmVhdGVBdGFJeCA9IHRoaXMuY3JlYXRlQXRhSW5zdHJ1Y3Rpb24odXNlciwgdXNlciwgdGFyZ2V0TWludCk7XG4gICAgICAgIHR4LmFkZChjcmVhdGVBdGFJeCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGxhY2VCZXRJeCA9IGF3YWl0IHRoaXMucGxhY2VCZXQocGFyYW1zKTtcbiAgICB0eC5hZGQocGxhY2VCZXRJeCk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKipcbiAgICogQ2xhaW0gcmV3YXJkcyBhZnRlciBtYXJrZXQgcmVzb2x1dGlvblxuICAgKi9cbiAgYXN5bmMgY2xhaW1SZXdhcmRzKHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIGJldHRpbmdUb2tlbiwgd2lubmluZ091dGNvbWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICAvLyBEZXJpdmUgbWludCBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJ5ZXNfbWludFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG4gICAgY29uc3Qgbm9NaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJub19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcblxuICAgIGNvbnN0IHVzZXJCZXR0aW5nVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyhiZXR0aW5nVG9rZW4sIHVzZXIpO1xuICAgIGNvbnN0IHRhcmdldE1pbnQgPSB3aW5uaW5nT3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuICAgIGNvbnN0IHNoYXJlc1RvQ2xhaW1CbiA9IG5ldyBBbmNob3JCTihwYXJhbXMuc2hhcmVzVG9DbGFpbSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuY2xhaW1SZXdhcmRzKHtcbiAgICAgICAgdG9rZW5BbW91bnQ6IHNoYXJlc1RvQ2xhaW1CbixcbiAgICAgIH0pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0LFxuICAgICAgICB1c2VyT3V0Y29tZVRva2VuLFxuICAgICAgICB1c2VyQmV0dGluZ1Rva2VuLFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gY2xhaW0gcmV3YXJkc1xuICAgKi9cbiAgYXN5bmMgYnVpbGRDbGFpbVJld2FyZHNUeChwYXJhbXM6IENsYWltUmV3YXJkc1BhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY2xhaW1SZXdhcmRzKHBhcmFtcyk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmdW5kIGJldHMgaWYgbWFya2V0IGlzIHJlZnVuZGVkXG4gICAqL1xuICBhc3luYyByZWZ1bmQocGFyYW1zOiBSZWZ1bmRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCB7IHVzZXIsIG1hcmtldCwgYmV0dGluZ1Rva2VuLCBvdXRjb21lIH0gPSBwYXJhbXM7XG4gICAgXG4gICAgY29uc3Qgb3V0Y29tZUVudW0gPSBvdXRjb21lID09PSBcIlllc1wiID8geyB5ZXM6IHt9IH0gOiB7IG5vOiB7fSB9O1xuICAgIFxuICAgIC8vIERlcml2ZSBtaW50IFBEQXMgZnJvbSBtYXJrZXQgYWRkcmVzc1xuICAgIGNvbnN0IHllc01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcInllc19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcIm5vX21pbnRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgY29uc3QgdGFyZ2V0TWludCA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB5ZXNNaW50IDogbm9NaW50O1xuICAgIGNvbnN0IHVzZXJPdXRjb21lVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyh0YXJnZXRNaW50LCB1c2VyKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnJlZnVuZChvdXRjb21lRW51bSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQsXG4gICAgICAgIHVzZXJPdXRjb21lVG9rZW4sXG4gICAgICAgIHVzZXJCZXR0aW5nVG9rZW4sXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byByZWZ1bmRcbiAgICovXG4gIGFzeW5jIGJ1aWxkUmVmdW5kVHgocGFyYW1zOiBSZWZ1bmRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnJlZnVuZChwYXJhbXMpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyByZXNvbHZlTWFya2V0KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOLFxuICAgIHdpbm5pbmdPdXRjb21lOiBcIlllc1wiIHwgXCJOb1wiIHwgbnVsbFxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEFuY2hvckJOKG1hcmtldElkKTtcbiAgICBjb25zdCBtYXJrZXRQZGEgPSBnZXRNYXJrZXRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuXG4gICAgbGV0IG91dGNvbWVFbnVtOiBhbnkgPSBudWxsO1xuICAgIGlmICh3aW5uaW5nT3V0Y29tZSA9PT0gXCJZZXNcIikge1xuICAgICAgb3V0Y29tZUVudW0gPSB7IHllczoge30gfTtcbiAgICB9IGVsc2UgaWYgKHdpbm5pbmdPdXRjb21lID09PSBcIk5vXCIpIHtcbiAgICAgIG91dGNvbWVFbnVtID0geyBubzoge30gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5yZXNvbHZlTWFya2V0KG91dGNvbWVFbnVtKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIG1hcmtldDogbWFya2V0UGRhLFxuICAgICAgICBhZG1pbixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHJlc29sdmUgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkUmVzb2x2ZU1hcmtldFR4KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOLFxuICAgIHdpbm5pbmdPdXRjb21lOiBcIlllc1wiIHwgXCJOb1wiIHwgbnVsbFxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnJlc29sdmVNYXJrZXQoYWRtaW4sIG1hcmtldElkLCB3aW5uaW5nT3V0Y29tZSk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyBjbG9zZU1hcmtldChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldElkOiBudW1iZXIgfCBCTlxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEFuY2hvckJOKG1hcmtldElkKTtcbiAgICBjb25zdCBtYXJrZXRQZGEgPSBnZXRNYXJrZXRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuY2xvc2VNYXJrZXQoKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIG1hcmtldDogbWFya2V0UGRhLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gY2xvc2UgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkQ2xvc2VNYXJrZXRUeChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldElkOiBudW1iZXIgfCBCTlxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmNsb3NlTWFya2V0KGFkbWluLCBtYXJrZXRJZCk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgY29uZmlnIGFjY291bnQgZGF0YVxuICAgKi9cbiAgYXN5bmMgZ2V0R2xvYmFsQ29uZmlnQWNjb3VudCgpIHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5hY2NvdW50Lmdsb2JhbENvbmZpZy5mZXRjaChnbG9iYWxDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIG1hcmtldCBhY2NvdW50IGRhdGFcbiAgICovXG4gIGFzeW5jIGdldE1hcmtldEFjY291bnQoYWRtaW46IFB1YmxpY0tleSwgbWFya2V0SWQ6IG51bWJlciB8IEJOKSB7XG4gICAgY29uc3QgbWFya2V0SWRCbiA9IG5ldyBBbmNob3JCTihtYXJrZXRJZCk7XG4gICAgY29uc3QgbWFya2V0UGRhID0gZ2V0TWFya2V0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIGFkbWluLCBtYXJrZXRJZEJuKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLmFjY291bnQubWFya2V0LmZldGNoKG1hcmtldFBkYSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdmF1bHQgYWNjb3VudCBkYXRhXG4gICAqL1xuICBhc3luYyBnZXRWYXVsdEFjY291bnQobWFya2V0UGRhOiBQdWJsaWNLZXkpIHtcbiAgICBjb25zdCB2YXVsdFBkYSA9IGdldFZhdWx0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIG1hcmtldFBkYSk7XG4gICAgcmV0dXJuIGF3YWl0IGdldEFjY291bnQodGhpcy5jb25uZWN0aW9uLCB2YXVsdFBkYSk7XG4gIH1cbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLEVBQUUsSUFBSSxRQUFRLEVBQ2QsT0FBTyxJQUFJLGFBQWEsRUFDeEIsY0FBYyxFQUNkLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsdUNBQXVDLEVBQ3ZDLFVBQVUsRUFDViw2QkFBNkIsRUFDN0IsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsV0FBVyxFQUVaLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sWUFBWSxDQUFDO0FBRXBCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLE9BQU8sRUFBVyxHQUFHLEVBQUUsQ0FBQztBQXFDeEIsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFBWSxVQUFzQixFQUFFLE1BQWUsRUFBRSxTQUFxQjtRQUN4RSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUNoQyxVQUFVLEVBQ1YsTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN4QyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FDNUIsQ0FBQztRQUVGLHVFQUF1RTtRQUN2RSxNQUFNLGNBQWMsR0FBRyxTQUFTLElBQUksSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELDZDQUE2QztRQUM3QyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFB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LENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBb0I7UUFDeEMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJOLCBJZGwsIFByb2dyYW0gfSBmcm9tIFwiQGNvcmFsLXh5ei9hbmNob3JcIjtcbmltcG9ydCB7XG4gIEJOIGFzIEFuY2hvckJOLFxuICBQcm9ncmFtIGFzIEFuY2hvclByb2dyYW0sXG4gIEFuY2hvclByb3ZpZGVyLFxuICBXYWxsZXQsXG4gIHdlYjMsXG59IGZyb20gXCJAY29yYWwteHl6L2FuY2hvclwiO1xuaW1wb3J0IHtcbiAgY3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudEluc3RydWN0aW9uLFxuICBnZXRBY2NvdW50LFxuICBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyxcbiAgVE9LRU5fUFJPR1JBTV9JRCxcbn0gZnJvbSBcIkBzb2xhbmEvc3BsLXRva2VuXCI7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uLFxuICBLZXlwYWlyLFxuICBQdWJsaWNLZXksXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RydWN0aW9uXG59IGZyb20gXCJAc29sYW5hL3dlYjMuanNcIjtcbmltcG9ydCB7IElETCB9IGZyb20gXCIuL2lkbC5qc1wiO1xuaW1wb3J0IHsgRHJhbWFQbSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQge1xuICBnZXRHbG9iYWxDb25maWdQZGEsXG4gIGdldE1hcmtldFBkYSxcbiAgZ2V0TWFya2V0UGRhcyxcbiAgZ2V0VmF1bHRQZGEsXG59IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzLmpzXCI7XG5leHBvcnQgeyBEcmFtYVBtLCBJREwgfTtcblxuZXhwb3J0IHR5cGUgT3V0Y29tZSA9IFwiWWVzXCIgfCBcIk5vXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTWFya2V0UGFyYW1zIHtcbiAgYWRtaW46IFB1YmxpY0tleTtcbiAgbWFya2V0SWQ6IG51bWJlciB8IEJOO1xuICB5ZXNQcmljZTogbnVtYmVyIHwgQk47XG4gIG5vUHJpY2U6IG51bWJlciB8IEJOO1xuICBlbmRUaW1lOiBudW1iZXIgfCBCTjtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VCZXRQYXJhbXMge1xuICB1c2VyOiBQdWJsaWNLZXk7XG4gIG1hcmtldDogUHVibGljS2V5OyAvLyBNYXJrZXQgUERBIGFkZHJlc3NcbiAgYW1vdW50OiBudW1iZXIgfCBCTjtcbiAgb3V0Y29tZTogT3V0Y29tZTtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG4gIGNyZWF0ZUF0YT86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gY3JlYXRlIEFUQSBpbnN0cnVjdGlvbiBhdXRvbWF0aWNhbGx5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhaW1SZXdhcmRzUGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICB3aW5uaW5nT3V0Y29tZTogT3V0Y29tZTtcbiAgdG9rZW5BbW91bnQ6IG51bWJlciB8IEJOOyAvLyBBbW91bnQgb2Ygc2hhcmVzIHRvIGNsYWltICgwID0gY2xhaW0gYWxsKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZFBhcmFtcyB7XG4gIHVzZXI6IFB1YmxpY0tleTtcbiAgbWFya2V0OiBQdWJsaWNLZXk7IC8vIE1hcmtldCBQREEgYWRkcmVzc1xuICBiZXR0aW5nVG9rZW46IFB1YmxpY0tleTtcbiAgb3V0Y29tZTogT3V0Y29tZTtcbn1cblxuZXhwb3J0IGNsYXNzIERyYW1hUG1DbGllbnQge1xuICBwcm9ncmFtOiBQcm9ncmFtPERyYW1hUG0+O1xuICBwcm92aWRlcjogQW5jaG9yUHJvdmlkZXI7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbjogQ29ubmVjdGlvbiwgd2FsbGV0PzogV2FsbGV0LCBwcm9ncmFtSWQ/OiBQdWJsaWNLZXkpIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgQW5jaG9yUHJvdmlkZXIoXG4gICAgICBjb25uZWN0aW9uLFxuICAgICAgd2FsbGV0IHx8IG5ldyBXYWxsZXQoS2V5cGFpci5nZW5lcmF0ZSgpKSxcbiAgICAgIHsgY29tbWl0bWVudDogXCJjb25maXJtZWRcIiB9XG4gICAgKTtcbiAgICBcbiAgICAvLyBVc2UgY3VzdG9tIHByb2dyYW1JZCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZGVmYXVsdCBmcm9tIElETFxuICAgIGNvbnN0IGZpbmFsUHJvZ3JhbUlkID0gcHJvZ3JhbUlkIHx8IG5ldyBQdWJsaWNLZXkoSURMLmFkZHJlc3MpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIG5ldyBJREwgd2l0aCB0aGUgY3VzdG9tIHByb2dyYW1JZFxuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBmaW5hbFByb2dyYW1JZC50b0Jhc2U1OCgpIH07XG4gICAgXG4gICAgdGhpcy5wcm9ncmFtID0gbmV3IEFuY2hvclByb2dyYW0oY3VzdG9tSWRsIGFzIElkbCwgdGhpcy5wcm92aWRlcikgYXMgdW5rbm93biBhcyBQcm9ncmFtPERyYW1hUG0+O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmFtIElEXG4gICAqL1xuICBnZXRQcm9ncmFtSWQoKTogUHVibGljS2V5IHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtLnByb2dyYW1JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBuZXcgcHJvZ3JhbSBJRCBhbmQgcmVpbml0aWFsaXplIHRoZSBwcm9ncmFtIGluc3RhbmNlXG4gICAqIFVzZWZ1bCB3aGVuIHJlZGVwbG95aW5nIHRoZSBwcm9ncmFtIHRvIGEgbmV3IGFkZHJlc3NcbiAgICovXG4gIHNldFByb2dyYW1JZChwcm9ncmFtSWQ6IFB1YmxpY0tleSk6IHZvaWQge1xuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBwcm9ncmFtSWQudG9CYXNlNTgoKSB9O1xuICAgIHRoaXMucHJvZ3JhbSA9IG5ldyBBbmNob3JQcm9ncmFtKGN1c3RvbUlkbCBhcyBJZGwsIHRoaXMucHJvdmlkZXIpIGFzIHVua25vd24gYXMgUHJvZ3JhbTxEcmFtYVBtPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQgZXhpc3RzXG4gICAqL1xuICBhc3luYyBhdGFFeGlzdHMoYXRhOiBQdWJsaWNLZXkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ2V0QWNjb3VudCh0aGlzLmNvbm5lY3Rpb24sIGF0YSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc3RydWN0aW9uIHRvIGluaXRpYWxpemUgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqL1xuICBjcmVhdGVBdGFJbnN0cnVjdGlvbihcbiAgICBwYXllcjogUHVibGljS2V5LFxuICAgIG93bmVyOiBQdWJsaWNLZXksXG4gICAgbWludDogUHVibGljS2V5XG4gICk6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24ge1xuICAgIGNvbnN0IGF0YSA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKG1pbnQsIG93bmVyKTtcbiAgICByZXR1cm4gY3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudEluc3RydWN0aW9uKFxuICAgICAgcGF5ZXIsXG4gICAgICBhdGEsXG4gICAgICBvd25lcixcbiAgICAgIG1pbnQsXG4gICAgICBUT0tFTl9QUk9HUkFNX0lEXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGdsb2JhbCBjb25maWd1cmF0aW9uIChBdXRob3JpdHkgb25seSlcbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVDb25maWcoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZUNvbmZpZygpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgICAgc3lzdGVtUHJvZ3JhbTogd2ViMy5TeXN0ZW1Qcm9ncmFtLnByb2dyYW1JZCxcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgY29uZmlnXG4gICAqL1xuICBhc3luYyBidWlsZEluaXRpYWxpemVDb25maWdUeChhdXRob3JpdHk6IFB1YmxpY0tleSk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNvbmZpZyhhdXRob3JpdHkpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhdXRob3JpemVkIGFkbWluIChBdXRob3JpdHkgb25seSlcbiAgICovXG4gIGFzeW5jIGFkZEFkbWluKG5ld0FkbWluOiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5hZGRBZG1pbihuZXdBZG1pbilcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBnbG9iYWxDb25maWcsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byB1cGRhdGUgYWRtaW5cbiAgICovXG4gIGFzeW5jIGJ1aWxkQWRkQWRtaW5UeChuZXdBZG1pbjogUHVibGljS2V5KTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5hZGRBZG1pbihuZXdBZG1pbik7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHByZWRpY3Rpb24gbWFya2V0IGluc3RydWN0aW9uXG4gICAqL1xuICBhc3luYyBjcmVhdGVNYXJrZXQocGFyYW1zOiBDcmVhdGVNYXJrZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCB7IGFkbWluLCBtYXJrZXRJZCwgeWVzUHJpY2UsIG5vUHJpY2UsIGVuZFRpbWUsIGJldHRpbmdUb2tlbiB9ID0gcGFyYW1zO1xuICAgIFxuICAgIGNvbnN0IG1hcmtldElkQm4gPSBuZXcgQW5jaG9yQk4obWFya2V0SWQpO1xuICAgIGNvbnN0IHllc1ByaWNlQm4gPSBuZXcgQW5jaG9yQk4oeWVzUHJpY2UpO1xuICAgIGNvbnN0IG5vUHJpY2VCbiA9IG5ldyBBbmNob3JCTihub1ByaWNlKTtcbiAgICBjb25zdCBlbmRUaW1lQm4gPSBuZXcgQW5jaG9yQk4oZW5kVGltZSk7XG5cbiAgICBjb25zdCBwZGFzID0gZ2V0TWFya2V0UGRhcyh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkLCBhZG1pbiwgbWFya2V0SWRCbik7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gZ2V0R2xvYmFsQ29uZmlnUGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuY3JlYXRlTWFya2V0KHtcbiAgICAgICAgICBtYXJrZXRJZDogbWFya2V0SWRCbixcbiAgICAgICAgICB5ZXNQcmljZTogeWVzUHJpY2VCbixcbiAgICAgICAgICBub1ByaWNlOiBub1ByaWNlQm4sXG4gICAgICAgICAgZW5kVGltZTogZW5kVGltZUJuLFxuICAgICAgICB9KVxuICAgICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgICBnbG9iYWxDb25maWcsXG4gICAgICAgICAgbWFya2V0OiBwZGFzLm1hcmtldCxcbiAgICAgICAgICB5ZXNNaW50OiBwZGFzLnllc01pbnQsXG4gICAgICAgICAgbm9NaW50OiBwZGFzLm5vTWludCxcbiAgICAgICAgICBiZXR0aW5nVG9rZW46IGJldHRpbmdUb2tlbixcbiAgICAgICAgICB2YXVsdDogcGRhcy52YXVsdCxcbiAgICAgICAgICBhZG1pbjogYWRtaW4sXG4gICAgICAgICAgc3lzdGVtUHJvZ3JhbTogd2ViMy5TeXN0ZW1Qcm9ncmFtLnByb2dyYW1JZCxcbiAgICAgICAgfSlcbiAgICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkQ3JlYXRlTWFya2V0VHgocGFyYW1zOiBDcmVhdGVNYXJrZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmNyZWF0ZU1hcmtldChwYXJhbXMpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlIGEgYmV0IGluc3RydWN0aW9uICh3aXRob3V0IEFUQSBjcmVhdGlvbilcbiAgICovXG4gIGFzeW5jIHBsYWNlQmV0KHBhcmFtczogUGxhY2VCZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCB7IHVzZXIsIG1hcmtldCwgYW1vdW50LCBvdXRjb21lLCBiZXR0aW5nVG9rZW4gfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBhbW91bnRCbiA9IG5ldyBBbmNob3JCTihhbW91bnQpO1xuICAgIGNvbnN0IG91dGNvbWVFbnVtID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHsgeWVzOiB7fSB9IDogeyBubzoge30gfTtcblxuICAgIC8vIERlcml2ZSBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJ5ZXNfbWludFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG4gICAgY29uc3Qgbm9NaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJub19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCB2YXVsdCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwidmF1bHRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgXG4gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIG91dGNvbWUgdG9rZW4gdGhlIHVzZXIgd2lsbCByZWNlaXZlXG4gICAgY29uc3QgdGFyZ2V0TWludCA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB5ZXNNaW50IDogbm9NaW50O1xuICAgIGNvbnN0IHVzZXJPdXRjb21lVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyh0YXJnZXRNaW50LCB1c2VyKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnBsYWNlQmV0KHtcbiAgICAgICAgYnV5T3V0Y29tZTogb3V0Y29tZUVudW0sXG4gICAgICAgIGFtb3VudDogYW1vdW50Qm4sXG4gICAgICB9KVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIG1hcmtldCxcbiAgICAgICAgeWVzTWludCxcbiAgICAgICAgbm9NaW50LFxuICAgICAgICB2YXVsdCxcbiAgICAgICAgdXNlck91dGNvbWVUb2tlbixcbiAgICAgICAgdXNlckJldHRpbmdUb2tlbixcbiAgICAgICAgdXNlcixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHBsYWNlIGEgYmV0ICh3aXRoIG9wdGlvbmFsIEFUQSBjcmVhdGlvbilcbiAgICovXG4gIGFzeW5jIGJ1aWxkUGxhY2VCZXRUeChwYXJhbXM6IFBsYWNlQmV0UGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBvdXRjb21lLCBjcmVhdGVBdGEgPSB0cnVlIH0gPSBwYXJhbXM7XG4gICAgXG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oKTtcbiAgICBcbiAgICAvLyBEZXJpdmUgbWludCBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJ5ZXNfbWludFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG4gICAgY29uc3Qgbm9NaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJub19taW50XCIpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgLy8gQ2hlY2sgaWYgQVRBIGV4aXN0cyBhbmQgY3JlYXRlIGlmIG5lZWRlZFxuICAgIGlmIChjcmVhdGVBdGEpIHtcbiAgICAgIGNvbnN0IGV4aXN0cyA9IGF3YWl0IHRoaXMuYXRhRXhpc3RzKHVzZXJPdXRjb21lVG9rZW4pO1xuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgY29uc3QgY3JlYXRlQXRhSXggPSB0aGlzLmNyZWF0ZUF0YUluc3RydWN0aW9uKHVzZXIsIHVzZXIsIHRhcmdldE1pbnQpO1xuICAgICAgICB0eC5hZGQoY3JlYXRlQXRhSXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBsYWNlQmV0SXggPSBhd2FpdCB0aGlzLnBsYWNlQmV0KHBhcmFtcyk7XG4gICAgdHguYWRkKHBsYWNlQmV0SXgpO1xuXG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIENsYWltIHJld2FyZHMgYWZ0ZXIgbWFya2V0IHJlc29sdXRpb25cbiAgICovXG4gIGFzeW5jIGNsYWltUmV3YXJkcyhwYXJhbXM6IENsYWltUmV3YXJkc1BhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBiZXR0aW5nVG9rZW4sIHdpbm5pbmdPdXRjb21lIH0gPSBwYXJhbXM7XG4gICAgXG4gICAgLy8gRGVyaXZlIG1pbnQgUERBcyBmcm9tIG1hcmtldCBhZGRyZXNzXG4gICAgY29uc3QgeWVzTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwieWVzX21pbnRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwibm9fbWludFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG5cbiAgICBjb25zdCB1c2VyQmV0dGluZ1Rva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCB1c2VyKTtcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gd2lubmluZ091dGNvbWUgPT09IFwiWWVzXCIgPyB5ZXNNaW50IDogbm9NaW50O1xuICAgIGNvbnN0IHVzZXJPdXRjb21lVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyh0YXJnZXRNaW50LCB1c2VyKTtcbiAgICBjb25zdCBzaGFyZXNUb0NsYWltQm4gPSBuZXcgQW5jaG9yQk4ocGFyYW1zLnRva2VuQW1vdW50KTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbGFpbVJld2FyZHMoe1xuICAgICAgICB0b2tlbkFtb3VudDogc2hhcmVzVG9DbGFpbUJuLFxuICAgICAgfSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQsXG4gICAgICAgIHVzZXJPdXRjb21lVG9rZW4sXG4gICAgICAgIHVzZXJCZXR0aW5nVG9rZW4sXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBjbGFpbSByZXdhcmRzXG4gICAqL1xuICBhc3luYyBidWlsZENsYWltUmV3YXJkc1R4KHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5jbGFpbVJld2FyZHMocGFyYW1zKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZ1bmQgYmV0cyBpZiBtYXJrZXQgaXMgcmVmdW5kZWRcbiAgICovXG4gIGFzeW5jIHJlZnVuZChwYXJhbXM6IFJlZnVuZFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBiZXR0aW5nVG9rZW4sIG91dGNvbWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBvdXRjb21lRW51bSA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB7IHllczoge30gfSA6IHsgbm86IHt9IH07XG4gICAgXG4gICAgLy8gRGVyaXZlIG1pbnQgUERBcyBmcm9tIG1hcmtldCBhZGRyZXNzXG4gICAgY29uc3QgeWVzTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwieWVzX21pbnRcIiksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwibm9fbWludFwiKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG5cbiAgICBjb25zdCB1c2VyQmV0dGluZ1Rva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCB1c2VyKTtcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAucmVmdW5kKG91dGNvbWVFbnVtKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIG1hcmtldCxcbiAgICAgICAgdXNlck91dGNvbWVUb2tlbixcbiAgICAgICAgdXNlckJldHRpbmdUb2tlbixcbiAgICAgICAgdXNlcixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHJlZnVuZFxuICAgKi9cbiAgYXN5bmMgYnVpbGRSZWZ1bmRUeChwYXJhbXM6IFJlZnVuZFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMucmVmdW5kKHBhcmFtcyk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBhIG1hcmtldCAoQWRtaW4gb25seSlcbiAgICovXG4gIGFzeW5jIHJlc29sdmVNYXJrZXQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk4sXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IG1hcmtldElkQm4gPSBuZXcgQW5jaG9yQk4obWFya2V0SWQpO1xuICAgIGNvbnN0IG1hcmtldFBkYSA9IGdldE1hcmtldFBkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkLCBhZG1pbiwgbWFya2V0SWRCbik7XG5cbiAgICBsZXQgb3V0Y29tZUVudW06IGFueSA9IG51bGw7XG4gICAgaWYgKHdpbm5pbmdPdXRjb21lID09PSBcIlllc1wiKSB7XG4gICAgICBvdXRjb21lRW51bSA9IHsgeWVzOiB7fSB9O1xuICAgIH0gZWxzZSBpZiAod2lubmluZ091dGNvbWUgPT09IFwiTm9cIikge1xuICAgICAgb3V0Y29tZUVudW0gPSB7IG5vOiB7fSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnJlc29sdmVNYXJrZXQob3V0Y29tZUVudW0pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0OiBtYXJrZXRQZGEsXG4gICAgICAgIGFkbWluLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gcmVzb2x2ZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRSZXNvbHZlTWFya2V0VHgoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk4sXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMucmVzb2x2ZU1hcmtldChhZG1pbiwgbWFya2V0SWQsIHdpbm5pbmdPdXRjb21lKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSBhIG1hcmtldCAoQWRtaW4gb25seSlcbiAgICovXG4gIGFzeW5jIGNsb3NlTWFya2V0KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IG1hcmtldElkQm4gPSBuZXcgQW5jaG9yQk4obWFya2V0SWQpO1xuICAgIGNvbnN0IG1hcmtldFBkYSA9IGdldE1hcmtldFBkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkLCBhZG1pbiwgbWFya2V0SWRCbik7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbG9zZU1hcmtldCgpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0OiBtYXJrZXRQZGEsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBjbG9zZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRDbG9zZU1hcmtldFR4KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY2xvc2VNYXJrZXQoYWRtaW4sIG1hcmtldElkKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZldGNoIGdsb2JhbCBjb25maWcgYWNjb3VudCBkYXRhXG4gICAqL1xuICBhc3luYyBnZXRHbG9iYWxDb25maWdBY2NvdW50KCkge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLmFjY291bnQuZ2xvYmFsQ29uZmlnLmZldGNoKGdsb2JhbENvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggbWFya2V0IGFjY291bnQgZGF0YVxuICAgKi9cbiAgYXN5bmMgZ2V0TWFya2V0QWNjb3VudChhZG1pbjogUHVibGljS2V5LCBtYXJrZXRJZDogbnVtYmVyIHwgQk4pIHtcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEFuY2hvckJOKG1hcmtldElkKTtcbiAgICBjb25zdCBtYXJrZXRQZGEgPSBnZXRNYXJrZXRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0uYWNjb3VudC5tYXJrZXQuZmV0Y2gobWFya2V0UGRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB2YXVsdCBhY2NvdW50IGRhdGFcbiAgICovXG4gIGFzeW5jIGdldFZhdWx0QWNjb3VudChtYXJrZXRQZGE6IFB1YmxpY0tleSkge1xuICAgIGNvbnN0IHZhdWx0UGRhID0gZ2V0VmF1bHRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgbWFya2V0UGRhKTtcbiAgICByZXR1cm4gYXdhaXQgZ2V0QWNjb3VudCh0aGlzLmNvbm5lY3Rpb24sIHZhdWx0UGRhKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drama-pm-client",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "type": "module",
5
5
  "description": "TypeScript client for Drama Prediction Market",
6
6
  "main": "dist/index.js",