@bitgo-beta/sdk-core 8.2.1-beta.74 → 8.2.1-beta.76

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.
@@ -174,6 +174,11 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
174
174
  * @param bitgoNitroChallengeSignature - signature on BitGo's nitro HSM challenge
175
175
  */
176
176
  static uploadChallengesToEnterprise(bitgo: BitGoBase, entId: string, entChallengeWithProofs: EcdsaTypes.SerializedNtildeWithProofs, entChallengeSignature: string, bitgoIntChallengeSignature: string, bitgoNitroChallengeSignature: string): Promise<void>;
177
- static publicKeyFromCommonKeychain(commonKeychain: string): string;
177
+ /**
178
+ * util function that checks that a commonKeychain is valid and can ultimately resolve to a valid public key
179
+ * @param commonKeychain - a user uploaded commonKeychain string
180
+ * @throws if the commonKeychain is invalid length or invalid format
181
+ */
182
+ static validateCommonKeychainPublicKey(commonKeychain: string): string;
178
183
  }
179
184
  //# sourceMappingURL=ecdsa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
@@ -833,7 +833,12 @@ class EcdsaUtils extends baseTSSUtils_1.default {
833
833
  .send(body)
834
834
  .result();
835
835
  }
836
- static publicKeyFromCommonKeychain(commonKeychain) {
836
+ /**
837
+ * util function that checks that a commonKeychain is valid and can ultimately resolve to a valid public key
838
+ * @param commonKeychain - a user uploaded commonKeychain string
839
+ * @throws if the commonKeychain is invalid length or invalid format
840
+ */
841
+ static validateCommonKeychainPublicKey(commonKeychain) {
837
842
  const pub = EcdsaUtils.getPublicKeyFromCommonKeychain(commonKeychain);
838
843
  const secp256k1 = new elliptic_1.ec('secp256k1');
839
844
  const key = secp256k1.keyFromPublic(pub, 'hex');
@@ -841,4 +846,4 @@ class EcdsaUtils extends baseTSSUtils_1.default {
841
846
  }
842
847
  }
843
848
  exports.EcdsaUtils = EcdsaUtils;
844
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VjZHNhL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWdDO0FBRWhDLGlEQUFtQztBQUNuQyx1Q0FBOEI7QUFFOUIseURBQTRIO0FBQzVILG1EQUE2QztBQUU3Qyx5REFBK0Q7QUFFL0QsK0RBQW9FO0FBRXBFLG1FQUEyQztBQVMzQyw0Q0FRc0I7QUFDdEIsc0NBQTRDO0FBQzVDLG9EQUEwRjtBQUMxRixxREFBZ0g7QUFHaEgsb0RBQXNIO0FBQ3RILHdDQUFtRjtBQUNuRixnREFBNEQ7QUFDNUQsOENBQWtGO0FBRWxGLE1BQU0sYUFBYSxHQUFHLGVBQVksQ0FBQyxhQUFhLENBQUM7QUFFakQsa0JBQWtCO0FBQ2xCLE1BQWEsVUFBVyxTQUFRLHNCQUFzQjtJQUlwRCxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUpqQyw2S0FBNks7UUFDckssc0JBQWlCLEdBQTRCLFNBQVMsQ0FBQztRQUk3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLGdDQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsZ0NBQWdDO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMs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RSxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUEzbkNELGdDQTJuQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0ICogYXMgb3BlbnBncCBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IGVjIH0gZnJvbSAnZWxsaXB0aWMnO1xuXG5pbXBvcnQgeyBFY2RzYVBhaWxsaWVyUHJvb2YsIEVjZHNhUmFuZ2VQcm9vZiwgRWNkc2FUeXBlcywgaGV4VG9CaWdJbnQsIG1pbk1vZHVsdXNCaXRMZW5ndGggfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgRUNEU0EsIEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcyc7XG5pbXBvcnQgeyBBZGRLZXljaGFpbk9wdGlvbnMsIEFwaUtleVNoYXJlLCBDcmVhdGVCYWNrdXBPcHRpb25zLCBLZXljaGFpbiwgS2V5VHlwZSB9IGZyb20gJy4uLy4uLy4uL2tleWNoYWluJztcbmltcG9ydCBFQ0RTQU1ldGhvZHMsIHsgRUNEU0FNZXRob2RUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3Rzcy9lY2RzYSc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi8uLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgYmFzZVRTU1V0aWxzIGZyb20gJy4uL2Jhc2VUU1NVdGlscyc7XG5pbXBvcnQge1xuICBCaXRHb1Byb29mU2lnbmF0dXJlcyxcbiAgQ3JlYXRlRWNkc2FCaXRHb0tleWNoYWluUGFyYW1zLFxuICBDcmVhdGVFY2RzYUtleWNoYWluUGFyYW1zLFxuICBEZWNyeXB0YWJsZU5TaGFyZSxcbiAgR2V0Qml0R29DaGFsbGVuZ2VzQXBpLFxuICBLZXlTaGFyZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBCYWNrdXBHcGdLZXksXG4gIEJhY2t1cEtleVNoYXJlLFxuICBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSxcbiAgUmVxdWVzdFR5cGUsXG4gIFRTU1BhcmFtcyxcbiAgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgVHhSZXF1ZXN0LFxufSBmcm9tICcuLi9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgZ2V0VHhSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vdHNzJztcbmltcG9ydCB7IEFTaGFyZSwgRFNoYXJlLCBFbmNyeXB0ZWROU2hhcmUsIFNlbmRTaGFyZVR5cGUgfSBmcm9tICcuLi8uLi8uLi90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlU2hhcmVQcm9vZiwgZ2VuZXJhdGVHUEdLZXlQYWlyLCBnZXRCaXRnb0dwZ1B1YktleSwgZ2V0VHJ1c3RHcGdQdWJLZXkgfSBmcm9tICcuLi8uLi9vcGVuZ3BnVXRpbHMnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEJhY2t1cFByb3ZpZGVyLCBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vLi4vd2FsbGV0JztcbmltcG9ydCB7IGJ1aWxkTlNoYXJlRnJvbUFQSUtleVNoYXJlLCBnZXRQYXJ0aWNpcGFudEZyb21JbmRleCwgdmVyaWZ5V2FsbGV0U2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vdHNzL2VjZHNhL2VjZHNhJztcbmltcG9ydCB7IHNpZ25NZXNzYWdlV2l0aERlcml2ZWRFY2RoS2V5LCB2ZXJpZnlFY2RoU2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZWNkaCc7XG5pbXBvcnQgeyBnZXRUeFJlcXVlc3RDaGFsbGVuZ2UgfSBmcm9tICcuLi8uLi8uLi90c3MvY29tbW9uJztcbmltcG9ydCB7IFNoYXJlS2V5UG9zaXRpb24sIFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHNzL3R5cGVzJztcblxuY29uc3QgZW5jcnlwdE5TaGFyZSA9IEVDRFNBTWV0aG9kcy5lbmNyeXB0TlNoYXJlO1xuXG4vKiogQGluaGVyaXRkb2MgKi9cbmV4cG9ydCBjbGFzcyBFY2RzYVV0aWxzIGV4dGVuZHMgYmFzZVRTU1V0aWxzPEtleVNoYXJlPiB7XG4gIC8vIFdlIGRvIG5vdCBoYXZlIGZ1bGwgc3VwcG9ydCBmb3IgMy1wYXJ0eSB2ZXJpZmljYXRpb24gKHcvIGV4dGVybmFsIHNvdXJjZSkgb2Yga2V5IHNoYXJlcyBhbmQgc2lnbmF0dXJlIHNoYXJlcy4gVGhlcmUgaXMgbm8gM3JkIHBhcnR5IGtleSBzZXJ2aWNlIHN1cHBvcnQgd2l0aCB0aGlzIHJlbGVhc2UuXG4gIHByaXZhdGUgYml0Z29QdWJsaWNHcGdLZXk6IG9wZW5wZ3AuS2V5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4sIHdhbGxldD86IElXYWxsZXQpIHtcbiAgICBzdXBlcihiaXRnbywgYmFzZUNvaW4sIHdhbGxldCk7XG4gICAgdGhpcy5zZXRCaXRnb0dwZ1B1YktleShiaXRnbyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldEJpdGdvR3BnUHViS2V5KGJpdGdvKSB7XG4gICAgdGhpcy5iaXRnb1B1YmxpY0dwZ0tleSA9IGF3YWl0IGdldEJpdGdvR3BnUHViS2V5KGJpdGdvKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJpdGdvUHVibGljR3BnS2V5KCk6IFByb21pc2U8b3BlbnBncC5LZXk+IHtcbiAgICBpZiAoIXRoaXMuYml0Z29QdWJsaWNHcGdLZXkpIHtcbiAgICAgIC8vIHJldHJ5IGdldHRpbmcgYml0Z28ncyBncGcga2V5XG4gICAgICBhd2FpdCB0aGlzLnNldEJpdGdvR3BnUHViS2V5KHRoaXMuYml0Z28pO1xuICAgICAgaWYgKCF0aGlzLmJpdGdvUHVibGljR3BnS2V5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBnZXQgQml0Z28ncyBncGcga2V5XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJpdGdvUHVibGljR3BnS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvbW1vbiBwdWJsaWMga2V5IGZyb20gY29tbW9uS2V5Y2hhaW4uXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBjb21tb25LZXljaGFpbiBjb21tb24ga2V5IGNoYWluIGJldHdlZW4gbiBwYXJ0aWVzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IGVuY29kZWQgcHVibGljIGtleVxuICAgKi9cbiAgc3RhdGljIGdldFB1YmxpY0tleUZyb21Db21tb25LZXljaGFpbihjb21tb25LZXljaGFpbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoY29tbW9uS2V5Y2hhaW4ubGVuZ3RoICE9PSAxMzApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb21tb25LZXljaGFpbiBsZW5ndGgsIGV4cGVjdGVkIDEzMCwgZ290ICR7Y29tbW9uS2V5Y2hhaW4ubGVuZ3RofWApO1xuICAgIH1cbiAgICBjb25zdCBjb21tb25QdWJIZXhTdHIgPSBjb21tb25LZXljaGFpbi5zbGljZSgwLCA2Nik7XG4gICAgcmV0dXJuIGNvbW1vblB1YkhleFN0cjtcbiAgfVxuXG4gIGFzeW5jIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB0aGlyZFBhcnR5QmFja3VwUHVibGljR3BnS2V5OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT4ge1xuICAgIGNvbnN0IGVuY3J5cHRlZFVzZXJUb0JhY2t1cFNoYXJlID0gYXdhaXQgZW5jcnlwdE5TaGFyZShcbiAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgIDIsXG4gICAgICB0aGlyZFBhcnR5QmFja3VwUHVibGljR3BnS2V5LmFybW9yKCksXG4gICAgICB1c2VyR3BnS2V5XG4gICAgKTtcbiAgICBjb25zdCBiaXRnb1RvQmFja3VwS2V5U2hhcmUgPSBiaXRnb0tleWNoYWluLmtleVNoYXJlcz8uZmluZChcbiAgICAgIChrZXlTaGFyZSkgPT4ga2V5U2hhcmUuZnJvbSA9PT0gJ2JpdGdvJyAmJiBrZXlTaGFyZS50byA9PT0gJ2JhY2t1cCdcbiAgICApO1xuICAgIGNvbnN0IHVzZXJQdWJsaWNTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLm5TaGFyZXNbMl0ueSwgJ2hleCcpLFxuICAgICAgQnVmZmVyLmZyb20odXNlcktleVNoYXJlLm5TaGFyZXNbMl0uY2hhaW5jb2RlLCAnaGV4JyksXG4gICAgXSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGFzc2VydChiaXRnb1RvQmFja3VwS2V5U2hhcmUpO1xuICAgIGNvbnN0IGtleVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnB1dCh0aGlzLmJhc2VDb2luLnVybChgL2tycy9iYWNrdXBrZXlzLyR7a2V5SWR9YCkpXG4gICAgICAuc2VuZCh7XG4gICAgICAgIGNvbW1vbktleWNoYWluLFxuICAgICAgICBrZXlTaGFyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmcm9tOiAndXNlcicsXG4gICAgICAgICAgICB0bzogJ2JhY2t1cCcsXG4gICAgICAgICAgICBwdWJsaWNTaGFyZTogdXNlclB1YmxpY1NoYXJlLFxuICAgICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNyeXB0ZWRVc2VyVG9CYWNrdXBTaGFyZS5lbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gICAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogZW5jcnlwdGVkVXNlclRvQmFja3VwU2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgICB2c3NQcm9vZjogZW5jcnlwdGVkVXNlclRvQmFja3VwU2hhcmUudnNzUHJvb2YsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBiaXRnb1RvQmFja3VwS2V5U2hhcmUsXG4gICAgICAgIF0sXG4gICAgICB9KVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGlmICgha2V5UmVzcG9uc2UgfHwgIWtleVJlc3BvbnNlLmNvbW1vbktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCBiYWNrdXAga2V5IHZlcmlmaWNhdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBrZXlSZXNwb25zZS5pZCxcbiAgICAgIGtleVNoYXJlczoga2V5UmVzcG9uc2Uua2V5U2hhcmVzLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGtleVJlc3BvbnNlLmNvbW1vbktleWNoYWluLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYXN5bmMgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBiYWNrdXBQcm92aWRlcj86IEJhY2t1cFByb3ZpZGVyO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PiB7XG4gICAgY29uc3QgTVBDID0gbmV3IEVjZHNhKCk7XG4gICAgY29uc3QgbSA9IDI7XG4gICAgY29uc3QgbiA9IDM7XG5cbiAgICBjb25zdCB1c2VyS2V5U2hhcmUgPSBhd2FpdCBNUEMua2V5U2hhcmUoMSwgbSwgbik7XG4gICAgY29uc3QgdXNlckdwZ0tleSA9IGF3YWl0IGdlbmVyYXRlR1BHS2V5UGFpcignc2VjcDI1NmsxJyk7XG4gICAgY29uc3QgaXNUaGlyZFBhcnR5QmFja3VwID0gdGhpcy5pc1ZhbGlkVGhpcmRQYXJ0eUJhY2t1cFByb3ZpZGVyKHBhcmFtcy5iYWNrdXBQcm92aWRlcik7XG4gICAgY29uc3QgYmFja3VwS2V5U2hhcmUgPSBhd2FpdCB0aGlzLmNyZWF0ZUJhY2t1cEtleVNoYXJlcyhpc1RoaXJkUGFydHlCYWNrdXAsIHVzZXJHcGdLZXksIHBhcmFtcy5lbnRlcnByaXNlKTtcbiAgICBjb25zdCBiYWNrdXBHcGdLZXkgPSBhd2FpdCB0aGlzLmdldEJhY2t1cEdwZ1B1YktleShpc1RoaXJkUGFydHlCYWNrdXApO1xuXG4gICAgLy8gR2V0IHRoZSBCaXRHbyBwdWJsaWMga2V5IGJhc2VkIG9uIHVzZXIvZW50ZXJwcmlzZSBmZWF0dXJlIGZsYWdzXG4gICAgLy8gSWYgaXQgZG9lc24ndCB3b3JrLCB1c2UgdGhlIGRlZmF1bHQgcHVibGljIGtleSBmcm9tIHRoZSBjb25zdGFudHNcbiAgICBjb25zdCBiaXRnb1B1YmxpY0dwZ0tleSA9XG4gICAgICAoYXdhaXQgdGhpcy5nZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MocGFyYW1zLmVudGVycHJpc2UpKSA/PyB0aGlzLmJpdGdvUHVibGljR3BnS2V5O1xuXG4gICAgY29uc3QgYml0Z29LZXljaGFpbiA9IGF3YWl0IHRoaXMuY3JlYXRlQml0Z29LZXljaGFpbih7XG4gICAgICB1c2VyR3BnS2V5LFxuICAgICAgYmFja3VwR3BnS2V5LFxuICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIGVudGVycHJpc2U6IHBhcmFtcy5lbnRlcnByaXNlLFxuICAgICAgaXNUaGlyZFBhcnR5QmFja3VwLFxuICAgIH0pO1xuICAgIGNvbnN0IHVzZXJLZXljaGFpblByb21pc2UgPSB0aGlzLmNyZWF0ZVVzZXJLZXljaGFpbih7XG4gICAgICB1c2VyR3BnS2V5LFxuICAgICAgYmFja3VwR3BnS2V5LFxuICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXNzcGhyYXNlOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICAgIGlzVGhpcmRQYXJ0eUJhY2t1cCxcbiAgICB9KTtcbiAgICBjb25zdCBiYWNrdXBLZXljaGFpblByb21pc2UgPSB0aGlzLmNyZWF0ZUJhY2t1cEtleWNoYWluKHtcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICBiYWNrdXBHcGdLZXksXG4gICAgICBiaXRnb1B1YmxpY0dwZ0tleSxcbiAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgIGJhY2t1cEtleVNoYXJlLFxuICAgICAgYml0Z29LZXljaGFpbixcbiAgICAgIHBhc3NwaHJhc2U6IHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgYmFja3VwUHJvdmlkZXI6IHBhcmFtcy5iYWNrdXBQcm92aWRlcixcbiAgICB9KTtcblxuICAgIGNvbnN0IFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluXSA9IGF3YWl0IFByb21pc2UuYWxsKFt1c2VyS2V5Y2hhaW5Qcm9taXNlLCBiYWNrdXBLZXljaGFpblByb21pc2VdKTtcblxuICAgIHJldHVybiB7XG4gICAgICB1c2VyS2V5Y2hhaW4sXG4gICAgICBiYWNrdXBLZXljaGFpbixcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhIHRoaXJkIHBhcnR5IGJhY2t1cCBpcyByZXF1ZXN0ZWQsIGl0IHdpbGwgY3JlYXRlIGJhY2t1cCBzaGFyZXMgZnJvbVxuICAgKiBhIHRoaXJkIHBhcnR5IChCaXRHbyBhcyBvZiBub3cpLCBvdGhlcndpc2UgdGhlIGtleSBzaGFyZXMgd2lsbCBiZSBjbGllbnQgZ2VuZXJhdGVkXG4gICAqL1xuICBhc3luYyBjcmVhdGVCYWNrdXBLZXlTaGFyZXMoXG4gICAgaXNUaGlyZFBhcnR5QmFja3VwID0gZmFsc2UsXG4gICAgdXNlckdwZ1B1YktleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCYWNrdXBLZXlTaGFyZT4ge1xuICAgIGxldCBiYWNrdXBLZXlTaGFyZTogQmFja3VwS2V5U2hhcmU7XG4gICAgaWYgKGlzVGhpcmRQYXJ0eUJhY2t1cCkge1xuICAgICAgY29uc3QgYml0Z29IZWxkQmFja3VwS2V5U2hhcmVzID0gYXdhaXQgdGhpcy5jcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSh1c2VyR3BnUHViS2V5LCBlbnRlcnByaXNlKTtcbiAgICAgIGJhY2t1cEtleVNoYXJlID0ge1xuICAgICAgICBiaXRHb0hlbGRLZXlTaGFyZXM6IGJpdGdvSGVsZEJhY2t1cEtleVNoYXJlcyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IE1QQyA9IG5ldyBFY2RzYSgpO1xuICAgICAgY29uc3QgbSA9IDI7XG4gICAgICBjb25zdCBuID0gMztcbiAgICAgIGJhY2t1cEtleVNoYXJlID0ge1xuICAgICAgICB1c2VySGVsZEtleVNoYXJlOiBhd2FpdCBNUEMua2V5U2hhcmUoMiwgbSwgbiksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gYmFja3VwS2V5U2hhcmU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBiYWNrdXAgcHViIGdwZyBrZXkgc3RyaW5nXG4gICAqIGlmIGEgdGhpcmQgcGFydHkgcHJvdmlkZWQgdGhlbiBnZXQgZnJvbSB0cnVzdFxuICAgKiBAcGFyYW0gaXNUaGlyZFBhcnR5QmFja3VwXG4gICAqL1xuICBhc3luYyBnZXRCYWNrdXBHcGdQdWJLZXkoaXNUaGlyZFBhcnR5QmFja3VwID0gZmFsc2UpOiBQcm9taXNlPEJhY2t1cEdwZ0tleT4ge1xuICAgIHJldHVybiBpc1RoaXJkUGFydHlCYWNrdXAgPyBnZXRUcnVzdEdwZ1B1YktleSh0aGlzLmJpdGdvKSA6IGdlbmVyYXRlR1BHS2V5UGFpcignc2VjcDI1NmsxJyk7XG4gIH1cblxuICBjcmVhdGVVc2VyS2V5Y2hhaW4oe1xuICAgIHVzZXJHcGdLZXksXG4gICAgYmFja3VwR3BnS2V5LFxuICAgIGJpdGdvUHVibGljR3BnS2V5LFxuICAgIHVzZXJLZXlTaGFyZSxcbiAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICBiaXRnb0tleWNoYWluLFxuICAgIHBhc3NwaHJhc2UsXG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgIGlzVGhpcmRQYXJ0eUJhY2t1cCA9IGZhbHNlLFxuICB9OiBDcmVhdGVFY2RzYUtleWNoYWluUGFyYW1zKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGlmICghcGFzc3BocmFzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZSBhIHdhbGxldCBwYXNzcGhyYXNlJyk7XG4gICAgfVxuICAgIGlmIChpc1RoaXJkUGFydHlCYWNrdXAgJiYgYmFja3VwS2V5U2hhcmUuYml0R29IZWxkS2V5U2hhcmVzPy5rZXlTaGFyZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVVzZXJLZXljaGFpbkZyb21UaGlyZFBhcnR5QmFja3VwKFxuICAgICAgICB1c2VyR3BnS2V5LFxuICAgICAgICBiaXRnb1B1YmxpY0dwZ0tleSxcbiAgICAgICAgYmFja3VwR3BnS2V5IGFzIEtleSxcbiAgICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgICBiYWNrdXBLZXlTaGFyZS5iaXRHb0hlbGRLZXlTaGFyZXMua2V5U2hhcmVzLFxuICAgICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgICBwYXNzcGhyYXNlLFxuICAgICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGVcbiAgICAgICk7XG4gICAgfVxuICAgIGFzc2VydChiYWNrdXBLZXlTaGFyZS51c2VySGVsZEtleVNoYXJlKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQYXJ0aWNpcGFudEtleWNoYWluKFxuICAgICAgdXNlckdwZ0tleSxcbiAgICAgIGJhY2t1cEdwZ0tleSBhcyBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICAxLFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUudXNlckhlbGRLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXNzcGhyYXNlLFxuICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUJhY2t1cEtleWNoYWluKHtcbiAgICB1c2VyR3BnS2V5LFxuICAgIHVzZXJLZXlTaGFyZSxcbiAgICBiYWNrdXBHcGdLZXksXG4gICAgYmFja3VwS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbixcbiAgICBiaXRnb1B1YmxpY0dwZ0tleSxcbiAgICBwYXNzcGhyYXNlLFxuICAgIGJhY2t1cFByb3ZpZGVyLFxuICB9OiBDcmVhdGVFY2RzYUtleWNoYWluUGFyYW1zKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGlmICh0aGlzLmlzVmFsaWRUaGlyZFBhcnR5QmFja3VwUHJvdmlkZXIoYmFja3VwUHJvdmlkZXIpICYmIGJhY2t1cEtleVNoYXJlLmJpdEdvSGVsZEtleVNoYXJlcz8ua2V5U2hhcmVzKSB7XG4gICAgICBhc3NlcnQoYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbik7XG4gICAgICBjb25zdCBmaW5hbGl6ZWRCYWNrdXBLZXlTaGFyZSA9IGF3YWl0IHRoaXMuZmluYWxpemVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICAgICAgYmFja3VwS2V5U2hhcmUuYml0R29IZWxkS2V5U2hhcmVzLmlkLFxuICAgICAgICBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluLFxuICAgICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICAgIHVzZXJHcGdLZXksXG4gICAgICAgIGJhY2t1cEdwZ0tleSBhcyBLZXlcbiAgICAgICk7XG4gICAgICBpZiAoZmluYWxpemVkQmFja3VwS2V5U2hhcmUuY29tbW9uS2V5Y2hhaW4gIT09IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGJhY2t1cCBrZXljaGFpbiAtIGNvbW1vbktleWNoYWlucyBkbyBub3QgbWF0Y2gnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJhY2t1cEtleVBhcmFtczogQ3JlYXRlQmFja3VwT3B0aW9ucyA9IHtcbiAgICAgICAgc291cmNlOiAnYmFja3VwJyxcbiAgICAgICAga2V5VHlwZTogJ3RzcycsXG4gICAgICAgIGNvbW1vbktleWNoYWluOiBmaW5hbGl6ZWRCYWNrdXBLZXlTaGFyZS5jb21tb25LZXljaGFpbixcbiAgICAgICAgcHJvdmlkZXI6IGJhY2t1cFByb3ZpZGVyID8/ICdCaXRHb1RydXN0QXNLcnMnLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGJhY2t1cEtleWNoYWluID0gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5jcmVhdGVCYWNrdXAoYmFja3VwS2V5UGFyYW1zKTtcbiAgICAgIGJhY2t1cEtleWNoYWluLmtleVNoYXJlcyA9IGZpbmFsaXplZEJhY2t1cEtleVNoYXJlLmtleVNoYXJlcztcbiAgICAgIHJldHVybiBiYWNrdXBLZXljaGFpbjtcbiAgICB9XG4gICAgYXNzZXJ0KGJhY2t1cEtleVNoYXJlLnVzZXJIZWxkS2V5U2hhcmUpO1xuICAgIGFzc2VydChwYXNzcGhyYXNlKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQYXJ0aWNpcGFudEtleWNoYWluKFxuICAgICAgdXNlckdwZ0tleSxcbiAgICAgIGJhY2t1cEdwZ0tleSBhcyBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICAyLFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUudXNlckhlbGRLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXNzcGhyYXNlXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBjcmVhdGVCaXRnb0tleWNoYWluKHtcbiAgICB1c2VyR3BnS2V5LFxuICAgIGJhY2t1cEdwZ0tleSxcbiAgICB1c2VyS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmUsXG4gICAgZW50ZXJwcmlzZSxcbiAgICBiaXRnb1B1YmxpY0dwZ0tleSxcbiAgICBpc1RoaXJkUGFydHlCYWNrdXAgPSBmYWxzZSxcbiAgfTogQ3JlYXRlRWNkc2FCaXRHb0tleWNoYWluUGFyYW1zKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbnN0IHJlY2lwaWVudEluZGV4ID0gMztcbiAgICBjb25zdCB1c2VyVG9CaXRnb1NoYXJlID0gYXdhaXQgZW5jcnlwdE5TaGFyZSh1c2VyS2V5U2hhcmUsIHJlY2lwaWVudEluZGV4LCBiaXRnb1B1YmxpY0dwZ0tleS5hcm1vcigpLCB1c2VyR3BnS2V5KTtcblxuICAgIGNvbnN0IGJhY2t1cFRvQml0Z29TaGFyZSA9IGF3YWl0IHRoaXMuZ2V0QmFja3VwRW5jcnlwdGVkTlNoYXJlKFxuICAgICAgYmFja3VwS2V5U2hhcmUsXG4gICAgICByZWNpcGllbnRJbmRleCxcbiAgICAgIGJpdGdvUHVibGljR3BnS2V5LmFybW9yKCksXG4gICAgICBiYWNrdXBHcGdLZXkgYXMgU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICAgIGlzVGhpcmRQYXJ0eUJhY2t1cFxuICAgICk7XG5cbiAgICBjb25zdCBjcmVhdGVCaXRHb01QQ1BhcmFtczogQWRkS2V5Y2hhaW5PcHRpb25zID0ge1xuICAgICAga2V5VHlwZTogJ3RzcycgYXMgS2V5VHlwZSxcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVNoYXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZnJvbTogJ3VzZXInLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiB1c2VyVG9CaXRnb1NoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZTogdXNlclRvQml0Z29TaGFyZS5lbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gICAgICAgICAgbjogdXNlclRvQml0Z29TaGFyZS5uLFxuICAgICAgICAgIHZzc1Byb29mOiB1c2VyVG9CaXRnb1NoYXJlLnZzc1Byb29mLFxuICAgICAgICAgIHByaXZhdGVTaGFyZVByb29mOiB1c2VyVG9CaXRnb1NoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbTogJ2JhY2t1cCcsXG4gICAgICAgICAgdG86ICdiaXRnbycsXG4gICAgICAgICAgcHVibGljU2hhcmU6IGJhY2t1cFRvQml0Z29TaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGJhY2t1cFRvQml0Z29TaGFyZS5lbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gICAgICAgICAgbjogYmFja3VwVG9CaXRnb1NoYXJlLm4sXG4gICAgICAgICAgdnNzUHJvb2Y6IGJhY2t1cFRvQml0Z29TaGFyZS52c3NQcm9vZixcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogYmFja3VwVG9CaXRnb1NoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgYmFja3VwR1BHUHVibGljS2V5OiBpc1RoaXJkUGFydHlCYWNrdXBcbiAgICAgICAgPyAoYmFja3VwR3BnS2V5IGFzIEtleSkuYXJtb3IoKVxuICAgICAgICA6IChiYWNrdXBHcGdLZXkgYXMgU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPikucHVibGljS2V5LFxuICAgICAgZW50ZXJwcmlzZTogZW50ZXJwcmlzZSxcbiAgICAgIGFsZ29Vc2VkOiAnZWNkc2EnLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5hZGQoY3JlYXRlQml0R29NUENQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYnVpbGRzIHRoZSByZWxldmFudCBiYWNrdXAgZW5jcnlwdGVkTlNoYXJlIGJhc2VkIG9uIHdoZXRoZXIgdGhlXG4gICAqIGJhY2t1cCBrZXkgaXMgdXNlciBvciB0aGlyZCBwYXJ0eSBnZW5lcmF0ZWRcbiAgICogQHBhcmFtIGJhY2t1cFNoYXJlIGNhbiBlaXRoZXIgaGF2ZSBrZXkgc2hhcmVzIGZyb20gdGhlIHVzZXIgb3IgdGhpcmQgcGFydHlcbiAgICogQHBhcmFtIHJlY2lwaWVudEluZGV4IGluZGV4IG9mIHRoZSBwYXJ0eSByZWNlaXZpbmcgdGhlIGJhY2t1cCBzaGFyZXNcbiAgICogQHBhcmFtIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yIGdwZyBhcm1vciBvZiB0aGUgcGFydHkgcmVjZWl2aW5nIHRoZSBiYWNrdXAgc2hhcmVzXG4gICAqIEBwYXJhbSBiYWNrdXBHcGdLZXkgYmFja3VwIGdwZyBrZXlcbiAgICogQHBhcmFtIGlzVGhpcmRQYXJ0eUJhY2t1cCB3aGV0aGVyIHRoZSBiYWNrdXAgaXMgZ2VuZXJhdGVkIGJ5IHRoaXJkIHBhcnR5XG4gICAqL1xuICBhc3luYyBnZXRCYWNrdXBFbmNyeXB0ZWROU2hhcmUoXG4gICAgYmFja3VwU2hhcmU6IEJhY2t1cEtleVNoYXJlLFxuICAgIHJlY2lwaWVudEluZGV4OiBudW1iZXIsXG4gICAgcmVjaXBpZW50R3BnUHVibGljQXJtb3I6IHN0cmluZyxcbiAgICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgaXNUaGlyZFBhcnR5QmFja3VwID0gZmFsc2VcbiAgKTogUHJvbWlzZTxFbmNyeXB0ZWROU2hhcmU+IHtcbiAgICBsZXQgYmFja3VwVG9SZWNpcGllbnRTaGFyZTogRW5jcnlwdGVkTlNoYXJlO1xuICAgIGlmIChpc1RoaXJkUGFydHlCYWNrdXApIHtcbiAgICAgIGlmICghYmFja3VwU2hhcmUuYml0R29IZWxkS2V5U2hhcmVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0aGlyZCBwYXJ0eSBiYWNrdXAga2V5IHNoYXJlc2ApO1xuICAgICAgfVxuICAgICAgY29uc3QgYmFja3VwVG9SZWNpcGllbnRBcGlTaGFyZSA9IGJhY2t1cFNoYXJlLmJpdEdvSGVsZEtleVNoYXJlcy5rZXlTaGFyZXMuZmluZChcbiAgICAgICAgKGtleVNoYXJlKSA9PiBrZXlTaGFyZS5mcm9tID09PSAnYmFja3VwJyAmJiBrZXlTaGFyZS50byA9PT0gZ2V0UGFydGljaXBhbnRGcm9tSW5kZXgocmVjaXBpZW50SW5kZXgpXG4gICAgICApO1xuICAgICAgaWYgKCFiYWNrdXBUb1JlY2lwaWVudEFwaVNoYXJlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBiYWNrdXAgdG8gJHtnZXRQYXJ0aWNpcGFudEZyb21JbmRleChyZWNpcGllbnRJbmRleCl9IGtleSBzaGFyZWApO1xuICAgICAgfVxuICAgICAgLy8gU2luY2UgYmFja3VwIGlzIGZyb20gYSB0aGlyZCBwYXJ0eSwgaXQgaXMgYWxyZWFkeSBlbmNyeXB0ZWRcbiAgICAgIGJhY2t1cFRvUmVjaXBpZW50U2hhcmUgPSBhd2FpdCBidWlsZE5TaGFyZUZyb21BUElLZXlTaGFyZShiYWNrdXBUb1JlY2lwaWVudEFwaVNoYXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KGJhY2t1cFNoYXJlLnVzZXJIZWxkS2V5U2hhcmUpO1xuICAgICAgYmFja3VwVG9SZWNpcGllbnRTaGFyZSA9IGF3YWl0IGVuY3J5cHROU2hhcmUoXG4gICAgICAgIGJhY2t1cFNoYXJlLnVzZXJIZWxkS2V5U2hhcmUsXG4gICAgICAgIHJlY2lwaWVudEluZGV4LFxuICAgICAgICByZWNpcGllbnRHcGdQdWJsaWNBcm1vcixcbiAgICAgICAgYmFja3VwR3BnS2V5XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYmFja3VwVG9SZWNpcGllbnRTaGFyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHVzZXMgdGhlIGJhY2t1cCBrZXkgZnJvbSBhIHRoaXJkIHBhcnR5IChiaXRnbyBpbiB0aGlzIGNhc2UpXG4gICAqIHRvIGNyZWF0ZSB0aGUgdXNlciBrZXljaGFpbiB2aWEgV1AuXG4gICAqL1xuICBhc3luYyBjcmVhdGVVc2VyS2V5Y2hhaW5Gcm9tVGhpcmRQYXJ0eUJhY2t1cChcbiAgICB1c2VyR3BnS2V5OiBvcGVucGdwLlNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IEtleSxcbiAgICB0aGlyZFBhcnR5QmFja3VwUHVibGljR3BnS2V5OiBLZXksXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICB0aGlyZFBhcnR5YmFja3VwS2V5U2hhcmVzOiBBcGlLZXlTaGFyZVtdLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbnN0IGJpdGdvS2V5U2hhcmVzID0gYml0Z29LZXljaGFpbi5rZXlTaGFyZXM7XG4gICAgaWYgKCFiaXRnb0tleVNoYXJlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIGtleSBzaGFyZXMnKTtcbiAgICB9XG4gICAgaWYgKCFiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgY29tbW9uIGtleSBjaGFpbjogJHtiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWlufWApO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdEdvVG9Vc2VyU2hhcmUgPSBiaXRnb0tleVNoYXJlcy5maW5kKChrZXlTaGFyZSkgPT4ga2V5U2hhcmUuZnJvbSA9PT0gJ2JpdGdvJyAmJiBrZXlTaGFyZS50byA9PT0gJ3VzZXInKTtcbiAgICBpZiAoIWJpdEdvVG9Vc2VyU2hhcmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyB0byBVc2VyIGtleSBzaGFyZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGJhY2t1cFRvVXNlclNoYXJlID0gdGhpcmRQYXJ0eWJhY2t1cEtleVNoYXJlcy5maW5kKFxuICAgICAgKGtleVNoYXJlKSA9PiBrZXlTaGFyZS5mcm9tID09PSAnYmFja3VwJyAmJiBrZXlTaGFyZS50byA9PT0gJ3VzZXInXG4gICAgKTtcbiAgICBpZiAoIWJhY2t1cFRvVXNlclNoYXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQmFja3VwIHRvIFVzZXIga2V5IHNoYXJlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYmFja3VwVG9Vc2VyTlNoYXJlID0gYXdhaXQgYnVpbGROU2hhcmVGcm9tQVBJS2V5U2hhcmUoYmFja3VwVG9Vc2VyU2hhcmUpO1xuICAgIGNvbnN0IGJpdEdvVG9Vc2VyTlNoYXJlID0gYXdhaXQgYnVpbGROU2hhcmVGcm9tQVBJS2V5U2hhcmUoYml0R29Ub1VzZXJTaGFyZSk7XG4gICAgY29uc3QgZW5jcnlwdGVkTlNoYXJlczogRGVjcnlwdGFibGVOU2hhcmVbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgblNoYXJlOiBiYWNrdXBUb1VzZXJOU2hhcmUsXG4gICAgICAgIHJlY2lwaWVudFByaXZhdGVBcm1vcjogdXNlckdwZ0tleS5wcml2YXRlS2V5LFxuICAgICAgICBzZW5kZXJQdWJsaWNBcm1vcjogdGhpcmRQYXJ0eUJhY2t1cFB1YmxpY0dwZ0tleS5hcm1vcigpLFxuICAgICAgICBpc2JzNThFbmNvZGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5TaGFyZTogYml0R29Ub1VzZXJOU2hhcmUsXG4gICAgICAgIHJlY2lwaWVudFByaXZhdGVBcm1vcjogdXNlckdwZ0tleS5wcml2YXRlS2V5LFxuICAgICAgICBzZW5kZXJQdWJsaWNBcm1vcjogYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKSxcbiAgICAgICAgaXNiczU4RW5jb2RlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCB1c2VyQ29tYmluZWRLZXkgPSBhd2FpdCBFQ0RTQU1ldGhvZHMuY3JlYXRlQ29tYmluZWRLZXkoXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBlbmNyeXB0ZWROU2hhcmVzLFxuICAgICAgYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpblxuICAgICk7XG4gICAgaWYgKHVzZXJDb21iaW5lZEtleS5jb21tb25LZXljaGFpbiAhPT0gYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIHVzZXIga2V5Y2hhaW4gLSBjb21tb25LZXljaGFpbnMgZG8gbm90IG1hdGNoLicpO1xuICAgIH1cblxuICAgIGNvbnN0IHBydiA9IEpTT04uc3RyaW5naWZ5KHVzZXJDb21iaW5lZEtleS5zaWduaW5nTWF0ZXJpYWwpO1xuICAgIGNvbnN0IHVzZXJLZXljaGFpblBhcmFtcyA9IHtcbiAgICAgIHNvdXJjZTogJ3VzZXInLFxuICAgICAga2V5VHlwZTogJ3RzcycgYXMgS2V5VHlwZSxcbiAgICAgIGNvbW1vbktleWNoYWluOiB1c2VyQ29tYmluZWRLZXkuY29tbW9uS2V5Y2hhaW4sXG4gICAgICBwcnY6IHBydixcbiAgICAgIGVuY3J5cHRlZFBydjogdGhpcy5iaXRnby5lbmNyeXB0KHtcbiAgICAgICAgaW5wdXQ6IHBydixcbiAgICAgICAgcGFzc3dvcmQ6IHBhc3NwaHJhc2UsXG4gICAgICB9KSxcbiAgICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB9O1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKTtcbiAgICByZXR1cm4gYXdhaXQga2V5Y2hhaW5zLmFkZCh1c2VyS2V5Y2hhaW5QYXJhbXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGNyZWF0ZVBhcnRpY2lwYW50S2V5Y2hhaW4oXG4gICAgdXNlckdwZ0tleTogb3BlbnBncC5TZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJMb2NhbEJhY2t1cEdwZ0tleTogb3BlbnBncC5TZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJpdGdvUHVibGljR3BnS2V5OiBLZXksXG4gICAgcmVjaXBpZW50SW5kZXg6IG51bWJlcixcbiAgICB1c2VyS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGJhY2t1cEtleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCBiaXRnb0tleVNoYXJlcyA9IGJpdGdvS2V5Y2hhaW4ua2V5U2hhcmVzO1xuICAgIGlmICghYml0Z29LZXlTaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyBrZXkgc2hhcmVzJyk7XG4gICAgfVxuICAgIGlmICghYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGNvbW1vbiBrZXkgY2hhaW46ICR7Yml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbn1gKTtcbiAgICB9XG5cbiAgICBsZXQgcmVjaXBpZW50OiBzdHJpbmc7XG4gICAgbGV0IGtleVNoYXJlOiBLZXlTaGFyZTtcbiAgICBsZXQgb3RoZXJTaGFyZTogS2V5U2hhcmU7XG4gICAgbGV0IHJlY2lwaWVudEdwZ0tleTogb3BlbnBncC5TZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+O1xuICAgIGxldCBzZW5kZXJHcGdLZXk6IG9wZW5wZ3AuU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPjtcbiAgICBpZiAocmVjaXBpZW50SW5kZXggPT09IDEpIHtcbiAgICAgIGtleVNoYXJlID0gdXNlcktleVNoYXJlO1xuICAgICAgb3RoZXJTaGFyZSA9IGJhY2t1cEtleVNoYXJlO1xuICAgICAgcmVjaXBpZW50ID0gJ3VzZXInO1xuICAgICAgcmVjaXBpZW50R3BnS2V5ID0gdXNlckdwZ0tleTtcbiAgICAgIHNlbmRlckdwZ0tleSA9IHVzZXJMb2NhbEJhY2t1cEdwZ0tleTtcbiAgICB9IGVsc2UgaWYgKHJlY2lwaWVudEluZGV4ID09PSAyKSB7XG4gICAgICBrZXlTaGFyZSA9IGJhY2t1cEtleVNoYXJlO1xuICAgICAgb3RoZXJTaGFyZSA9IHVzZXJLZXlTaGFyZTtcbiAgICAgIHJlY2lwaWVudCA9ICdiYWNrdXAnO1xuICAgICAgcmVjaXBpZW50R3BnS2V5ID0gdXNlckxvY2FsQmFja3VwR3BnS2V5O1xuICAgICAgc2VuZGVyR3BnS2V5ID0gdXNlckdwZ0tleTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzZXIgaW5kZXgnKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRHb1RvUmVjaXBpZW50U2hhcmUgPSBiaXRnb0tleVNoYXJlcy5maW5kKFxuICAgICAgKGtleVNoYXJlKSA9PiBrZXlTaGFyZS5mcm9tID09PSAnYml0Z28nICYmIGtleVNoYXJlLnRvID09PSByZWNpcGllbnRcbiAgICApO1xuICAgIGlmICghYml0R29Ub1JlY2lwaWVudFNoYXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgQml0R28gdG8gJHtyZWNpcGllbnR9IGtleSBzaGFyZWApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY3J5cHRlZFNoYXJlID0gYXdhaXQgdGhpcy5kZWNyeXB0UHJpdmF0ZVNoYXJlKGJpdEdvVG9SZWNpcGllbnRTaGFyZS5wcml2YXRlU2hhcmUsIHJlY2lwaWVudEdwZ0tleSk7XG5cbiAgICBhd2FpdCB0aGlzLnZlcmlmeVdhbGxldFNpZ25hdHVyZXMoXG4gICAgICB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIHVzZXJMb2NhbEJhY2t1cEdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgZGVjcnlwdGVkU2hhcmUsXG4gICAgICByZWNpcGllbnRJbmRleFxuICAgICk7XG5cbiAgICBjb25zdCBzZW5kZXJUb1JlY2lwaWVudFNoYXJlID0gYXdhaXQgZW5jcnlwdE5TaGFyZShcbiAgICAgIG90aGVyU2hhcmUsXG4gICAgICByZWNpcGllbnRJbmRleCxcbiAgICAgIHJlY2lwaWVudEdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBzZW5kZXJHcGdLZXlcbiAgICApO1xuICAgIGNvbnN0IGVuY3J5cHRlZE5TaGFyZXM6IERlY3J5cHRhYmxlTlNoYXJlW10gPSBbXG4gICAgICB7XG4gICAgICAgIC8vIHVzZXJUb0JhY2t1cCBvciBiYWNrdXBUb1VzZXJcbiAgICAgICAgblNoYXJlOiBzZW5kZXJUb1JlY2lwaWVudFNoYXJlLFxuICAgICAgICByZWNpcGllbnRQcml2YXRlQXJtb3I6IHJlY2lwaWVudEdwZ0tleS5wcml2YXRlS2V5LFxuICAgICAgICBzZW5kZXJQdWJsaWNBcm1vcjogc2VuZGVyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGJpdGdvVG9SZWNpcGllbnRcbiAgICAgICAgblNoYXJlOiB7XG4gICAgICAgICAgaTogcmVjaXBpZW50SW5kZXgsXG4gICAgICAgICAgajogMyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogYml0R29Ub1JlY2lwaWVudFNoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgICAgIGVuY3J5cHRlZFByaXZhdGVTaGFyZTogYml0R29Ub1JlY2lwaWVudFNoYXJlLnByaXZhdGVTaGFyZSxcbiAgICAgICAgICBuOiBiaXRHb1RvUmVjaXBpZW50U2hhcmUubiEsXG4gICAgICAgICAgdnNzUHJvb2Y6IGJpdEdvVG9SZWNpcGllbnRTaGFyZS52c3NQcm9vZixcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogYml0R29Ub1JlY2lwaWVudFNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICB9LFxuICAgICAgICByZWNpcGllbnRQcml2YXRlQXJtb3I6IHJlY2lwaWVudEdwZ0tleS5wcml2YXRlS2V5LFxuICAgICAgICBzZW5kZXJQdWJsaWNBcm1vcjogYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKSxcbiAgICAgICAgaXNiczU4RW5jb2RlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCByZWNpcGllbnRDb21iaW5lZEtleSA9IGF3YWl0IEVDRFNBTWV0aG9kcy5jcmVhdGVDb21iaW5lZEtleShcbiAgICAgIGtleVNoYXJlLFxuICAgICAgZW5jcnlwdGVkTlNoYXJlcyxcbiAgICAgIGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW5cbiAgICApO1xuXG4gICAgY29uc3QgcHJ2ID0gSlNPTi5zdHJpbmdpZnkocmVjaXBpZW50Q29tYmluZWRLZXkuc2lnbmluZ01hdGVyaWFsKTtcbiAgICBjb25zdCByZWNpcGllbnRLZXljaGFpblBhcmFtcyA9IHtcbiAgICAgIHNvdXJjZTogcmVjaXBpZW50LFxuICAgICAga2V5VHlwZTogJ3RzcycgYXMgS2V5VHlwZSxcbiAgICAgIGNvbW1vbktleWNoYWluOiBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluLFxuICAgICAgcHJ2OiBwcnYsXG4gICAgICBlbmNyeXB0ZWRQcnY6IHRoaXMuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgIGlucHV0OiBwcnYsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzcGhyYXNlLFxuICAgICAgfSksXG4gICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgfTtcblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCk7XG4gICAgcmV0dXJuIHJlY2lwaWVudEluZGV4ID09PSAxXG4gICAgICA/IGF3YWl0IGtleWNoYWlucy5hZGQocmVjaXBpZW50S2V5Y2hhaW5QYXJhbXMpXG4gICAgICA6IGF3YWl0IGtleWNoYWlucy5jcmVhdGVCYWNrdXAocmVjaXBpZW50S2V5Y2hhaW5QYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgc2lnbmluZyBrZXksIHR4UmVxdWVzdFJlc29sdmVkIGFuZCB0eFJlcXVlc3RJZFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgb2JqZWN0IG9yIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gZGVjcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7IHN0cmluZ30gcGFyYW1zLnJlcUlkIC0gcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzaWduUmVxdWVzdEJhc2UocGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLCByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IHBlbmRpbmdFY2RzYVRzc0luaXRpYWxpemF0aW9uID0gdGhpcy53YWxsZXQuY29pblNwZWNpZmljKCk/LnBlbmRpbmdFY2RzYVRzc0luaXRpYWxpemF0aW9uO1xuICAgIGlmIChwZW5kaW5nRWNkc2FUc3NJbml0aWFsaXphdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnV2FsbGV0IGlzIG5vdCByZWFkeSBmb3IgVFNTIEVDRFNBIHNpZ25pbmcuIFBsZWFzZSBjb250YWN0IHlvdXIgZW50ZXJwcmlzZSBhZG1pbiB0byBmaW5pc2ggdGhlIGVudGVycHJpc2UgVFNTIGluaXRpYWxpemF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlclNpZ25pbmdNYXRlcmlhbDogRUNEU0FNZXRob2RUeXBlcy5TaWduaW5nTWF0ZXJpYWwgPSBKU09OLnBhcnNlKHBhcmFtcy5wcnYpO1xuICAgIGlmICh1c2VyU2lnbmluZ01hdGVyaWFsLnBTaGFyZS5pICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdXNlciBrZXknKTtcbiAgICB9XG4gICAgaWYgKCF1c2VyU2lnbmluZ01hdGVyaWFsLmJhY2t1cE5TaGFyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzZXIga2V5IC0gbWlzc2luZyBiYWNrdXBOU2hhcmUnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eFJlcXVlc3Q6IFR4UmVxdWVzdCA9XG4gICAgICB0eXBlb2YgcGFyYW1zLnR4UmVxdWVzdCA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBhd2FpdCBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgcGFyYW1zLnR4UmVxdWVzdClcbiAgICAgICAgOiBwYXJhbXMudHhSZXF1ZXN0O1xuXG4gICAgbGV0IHNpZ25hYmxlUGF5bG9hZDtcbiAgICBsZXQgZGVyaXZhdGlvblBhdGg7XG5cbiAgICBpZiAocmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlLnR4KSB7XG4gICAgICBhc3NlcnQodHhSZXF1ZXN0LnRyYW5zYWN0aW9ucyB8fCB0eFJlcXVlc3QudW5zaWduZWRUeHMsICdVbmFibGUgdG8gZmluZCB0cmFuc2FjdGlvbnMgaW4gdHhSZXF1ZXN0Jyk7XG4gICAgICBjb25zdCB1bnNpZ25lZFR4ID1cbiAgICAgICAgdHhSZXF1ZXN0LmFwaVZlcnNpb24gPT09ICdmdWxsJyA/IHR4UmVxdWVzdC50cmFuc2FjdGlvbnMhWzBdLnVuc2lnbmVkVHggOiB0eFJlcXVlc3QudW5zaWduZWRUeHNbMF07XG4gICAgICBzaWduYWJsZVBheWxvYWQgPSBCdWZmZXIuZnJvbSh1bnNpZ25lZFR4LnNpZ25hYmxlSGV4LCAnaGV4Jyk7XG4gICAgICBkZXJpdmF0aW9uUGF0aCA9IHVuc2lnbmVkVHguZGVyaXZhdGlvblBhdGg7XG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGUubWVzc2FnZSkge1xuICAgICAgc2lnbmFibGVQYXlsb2FkID0gKHBhcmFtcyBhcyBUU1NQYXJhbXNGb3JNZXNzYWdlKS5idWZmZXJUb1NpZ247XG4gICAgICAvLyBUT0RPIEJHLTY3Mjk5IE1lc3NhZ2Ugc2lnbmluZyB3aXRoIGRlcml2YXRpb24gcGF0aFxuICAgICAgZGVyaXZhdGlvblBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCBNUEMgPSBuZXcgRWNkc2EoKTtcbiAgICBjb25zdCBzaWduaW5nS2V5ID0gTVBDLmtleURlcml2ZShcbiAgICAgIHVzZXJTaWduaW5nTWF0ZXJpYWwucFNoYXJlLFxuICAgICAgW3VzZXJTaWduaW5nTWF0ZXJpYWwuYml0Z29OU2hhcmUsIHVzZXJTaWduaW5nTWF0ZXJpYWwuYmFja3VwTlNoYXJlXSxcbiAgICAgIGRlcml2YXRpb25QYXRoXG4gICAgKTtcblxuICAgIGNvbnN0IGJpdGdvSW5kZXggPSBTaGFyZUtleVBvc2l0aW9uLkJJVEdPO1xuICAgIGNvbnN0IHVzZXJJbmRleCA9IHVzZXJTaWduaW5nTWF0ZXJpYWwucFNoYXJlLmk7XG5cbiAgICBjb25zdCBjaGFsbGVuZ2VzID0gYXdhaXQgdGhpcy5nZXRFY2RzYVNpZ25pbmdDaGFsbGVuZ2VzKHR4UmVxdWVzdC50eFJlcXVlc3RJZCwgcmVxdWVzdFR5cGUsIHNpZ25pbmdLZXkueFNoYXJlLm4sIDApO1xuICAgIGNvbnN0IHsgbnRpbGRlOiBudGlsZGVhLCBoMTogaDFhLCBoMjogaDJhLCBwOiBwYSB9ID0gY2hhbGxlbmdlcy5lbnRlcnByaXNlQ2hhbGxlbmdlO1xuICAgIGNvbnN0IHsgbnRpbGRlOiBudGlsZGViLCBoMTogaDFiLCBoMjogaDJiLCBwOiBwYiwgbjogbmIgfSA9IGNoYWxsZW5nZXMuYml0Z29DaGFsbGVuZ2U7XG4gICAgY29uc3QgdXNlclhTaGFyZSA9IE1QQy5hcHBlbmRDaGFsbGVuZ2Uoc2lnbmluZ0tleS54U2hhcmUsIHsgbnRpbGRlOiBudGlsZGVhLCBoMTogaDFhLCBoMjogaDJhIH0sIHsgcDogcGEgfSk7XG4gICAgY29uc3QgYml0Z29ZU2hhcmUgPSBNUEMuYXBwZW5kQ2hhbGxlbmdlKFxuICAgICAge1xuICAgICAgICBpOiB1c2VySW5kZXgsXG4gICAgICAgIGo6IGJpdGdvSW5kZXgsXG4gICAgICAgIG46IG5iLFxuICAgICAgfSxcbiAgICAgIHsgbnRpbGRlOiBudGlsZGViLCBoMTogaDFiLCBoMjogaDJiIH0sXG4gICAgICB7IHA6IHBiIH1cbiAgICApO1xuXG4gICAgY29uc3QgdXNlclNpZ25TaGFyZSA9IGF3YWl0IEVDRFNBTWV0aG9kcy5jcmVhdGVVc2VyU2lnblNoYXJlKHVzZXJYU2hhcmUsIGJpdGdvWVNoYXJlKTtcbiAgICBjb25zdCB1ID0gc2lnbmluZ0tleS5uU2hhcmVzW2JpdGdvSW5kZXhdLnU7XG5cbiAgICBsZXQgY2hhaW5jb2RlID0gdXNlclNpZ25pbmdNYXRlcmlhbC5iaXRnb05TaGFyZS5jaGFpbmNvZGU7XG4gICAgd2hpbGUgKGNoYWluY29kZS5sZW5ndGggPCA2NCkge1xuICAgICAgY2hhaW5jb2RlID0gJzAnICsgY2hhaW5jb2RlO1xuICAgIH1cbiAgICBjb25zdCBzaWduZXJTaGFyZSA9IGJpcDMyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHUsICdoZXgnKSwgQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpLnRvQmFzZTU4KCk7XG4gICAgY29uc3QgYml0Z29HcGdLZXkgPSBhd2FpdCBnZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICBjb25zdCBlbmNyeXB0ZWRTaWduZXJTaGFyZSA9IChhd2FpdCBvcGVucGdwLmVuY3J5cHQoe1xuICAgICAgbWVzc2FnZTogYXdhaXQgb3BlbnBncC5jcmVhdGVNZXNzYWdlKHtcbiAgICAgICAgdGV4dDogc2lnbmVyU2hhcmUsXG4gICAgICB9KSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICByZWplY3RDdXJ2ZXM6IG5ldyBTZXQoKSxcbiAgICAgIH0sXG4gICAgICBlbmNyeXB0aW9uS2V5czogW2JpdGdvR3BnS2V5XSxcbiAgICB9KSkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHVzZXJHcGdLZXkgPSBhd2FpdCBnZW5lcmF0ZUdQR0tleVBhaXIoJ3NlY3AyNTZrMScpO1xuICAgIGNvbnN0IHByaXZhdGVTaGFyZVByb29mID0gYXdhaXQgY3JlYXRlU2hhcmVQcm9vZih1c2VyR3BnS2V5LnByaXZhdGVLZXksIHNpZ25pbmdLZXkublNoYXJlc1tiaXRnb0luZGV4XS51LCAnZWNkc2EnKTtcbiAgICBjb25zdCB2c3NQcm9vZiA9IHNpZ25pbmdLZXkublNoYXJlc1tiaXRnb0luZGV4XS52O1xuICAgIGNvbnN0IHVzZXJQdWJsaWNHcGdLZXkgPSB1c2VyR3BnS2V5LnB1YmxpY0tleTtcbiAgICBjb25zdCBwdWJsaWNTaGFyZSA9IHNpZ25pbmdLZXkublNoYXJlc1tiaXRnb0luZGV4XS55ICsgc2lnbmluZ0tleS5uU2hhcmVzW2JpdGdvSW5kZXhdLmNoYWluY29kZTtcblxuICAgIC8vIHNpZ25pbmcgc3RhZ2Ugb25lIHdpdGggSyBzaGFyZSBzZW5kIHRvIGJpdGdvIGFuZCByZWNlaXZlcyBBIHNoYXJlXG4gICAgY29uc3QgYml0Z29Ub1VzZXJBU2hhcmUgPSAoYXdhaXQgRUNEU0FNZXRob2RzLnNlbmRTaGFyZVRvQml0Z28oXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHR4UmVxdWVzdC50eFJlcXVlc3RJZCxcbiAgICAgIHJlcXVlc3RUeXBlLFxuICAgICAgU2VuZFNoYXJlVHlwZS5LU2hhcmUsXG4gICAgICB1c2VyU2lnblNoYXJlLmtTaGFyZSxcbiAgICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlLFxuICAgICAgdnNzUHJvb2YsXG4gICAgICBwcml2YXRlU2hhcmVQcm9vZixcbiAgICAgIHB1YmxpY1NoYXJlLFxuICAgICAgdXNlclB1YmxpY0dwZ0tleVxuICAgICkpIGFzIE9taXQ8QVNoYXJlLCAnbnRpbGRlJyB8ICdoMScgfCAnaDInPjsgLy8gV1AvSFNNIGRvZXMgbm90IHJldHVybiB0aGUgaW5pdGlhbCBjaGFsbGVuZ2VcblxuICAgIC8vIEFwcGVuZCB0aGUgQml0R28gY2hhbGxlbmdlIHRvIHRoZSBBc2hhcmUgdG8gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IHByb29mc1xuICAgIGNvbnN0IGJpdGdvVG9Vc2VyQVNoYXJlV2l0aE50aWxkZTogQVNoYXJlID0ge1xuICAgICAgLi4uYml0Z29Ub1VzZXJBU2hhcmUsXG4gICAgICAuLi5jaGFsbGVuZ2VzLmJpdGdvQ2hhbGxlbmdlLFxuICAgIH07XG5cbiAgICBjb25zdCB1c2VyR2FtbWFBbmRNdVNoYXJlcyA9IGF3YWl0IEVDRFNBTWV0aG9kcy5jcmVhdGVVc2VyR2FtbWFBbmRNdVNoYXJlKFxuICAgICAgdXNlclNpZ25TaGFyZS53U2hhcmUsXG4gICAgICBiaXRnb1RvVXNlckFTaGFyZVdpdGhOdGlsZGVcbiAgICApO1xuICAgIGNvbnN0IHVzZXJPbWljcm9uQW5kRGVsdGFTaGFyZSA9IGF3YWl0IEVDRFNBTWV0aG9kcy5jcmVhdGVVc2VyT21pY3JvbkFuZERlbHRhU2hhcmUoXG4gICAgICB1c2VyR2FtbWFBbmRNdVNoYXJlcy5nU2hhcmUgYXMgRUNEU0EuR1NoYXJlXG4gICAgKTtcbiAgICBjb25zdCBtdVNoYXJlID0gdXNlckdhbW1hQW5kTXVTaGFyZXMubXVTaGFyZSE7XG4gICAgY29uc3QgZFNoYXJlID0gdXNlck9taWNyb25BbmREZWx0YVNoYXJlLmRTaGFyZTtcblxuICAgIC8vIHNpZ25pbmcgc3RhZ2UgdHdvIHdpdGggbXVTaGFyZSBhbmQgZFNoYXJlIHNlbmQgdG8gYml0Z28gYW5kIHJlY2VpdmVzIEQgc2hhcmVcbiAgICBjb25zdCBiaXRnb1RvVXNlckRTaGFyZSA9IChhd2FpdCBFQ0RTQU1ldGhvZHMuc2VuZFNoYXJlVG9CaXRnbyhcbiAgICAgIHRoaXMuYml0Z28sXG4gICAgICB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHhSZXF1ZXN0LnR4UmVxdWVzdElkLFxuICAgICAgcmVxdWVzdFR5cGUsXG4gICAgICBTZW5kU2hhcmVUeXBlLk1VU2hhcmUsXG4gICAgICB7IG11U2hhcmUsIGRTaGFyZSwgaTogbXVTaGFyZS5pIH1cbiAgICApKSBhcyBEU2hhcmU7XG5cbiAgICBjb25zdCB1c2VyU1NoYXJlID0gYXdhaXQgRUNEU0FNZXRob2RzLmNyZWF0ZVVzZXJTaWduYXR1cmVTaGFyZShcbiAgICAgIHVzZXJPbWljcm9uQW5kRGVsdGFTaGFyZS5vU2hhcmUsXG4gICAgICBiaXRnb1RvVXNlckRTaGFyZSxcbiAgICAgIHNpZ25hYmxlUGF5bG9hZCxcbiAgICAgIHBhcmFtcy5oYXNoXG4gICAgKTtcblxuICAgIC8vIHNpZ25pbmcgc3RhZ2UgdGhyZWUgd2l0aCBTU2hhcmUgc2VuZCB0byBiaXRnbyBhbmQgcmVjZWl2ZXMgU1NoYXJlXG4gICAgYXdhaXQgRUNEU0FNZXRob2RzLnNlbmRTaGFyZVRvQml0Z28oXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHR4UmVxdWVzdC50eFJlcXVlc3RJZCxcbiAgICAgIHJlcXVlc3RUeXBlLFxuICAgICAgU2VuZFNoYXJlVHlwZS5TU2hhcmUsXG4gICAgICB1c2VyU1NoYXJlXG4gICAgKTtcbiAgICByZXR1cm4gYXdhaXQgZ2V0VHhSZXF1ZXN0KHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmlkKCksIHR4UmVxdWVzdC50eFJlcXVlc3RJZCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgdG8gdGhlIHRyYW5zYWN0aW9uIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgVHhSZXF1ZXN0fSBwYXJhbXMudHhSZXF1ZXN0IC0gdHJhbnNhY3Rpb24gcmVxdWVzdCBvYmplY3Qgb3IgaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5wcnYgLSBkZWNyeXB0ZWQgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5yZXFJZCAtIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn0gZnVsbHkgc2lnbmVkIFR4UmVxdWVzdCBvYmplY3RcbiAgICovXG4gIGFzeW5jIHNpZ25UeFJlcXVlc3QocGFyYW1zOiBUU1NQYXJhbXMpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHJldHVybiB0aGlzLnNpZ25SZXF1ZXN0QmFzZShwYXJhbXMsIFJlcXVlc3RUeXBlLnR4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyB0aGUgbWVzc2FnZSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgb2JqZWN0IG9yIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gZGVjcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucmVxSWQgLSByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IGZ1bGx5IHNpZ25lZCBUeFJlcXVlc3Qgb2JqZWN0XG4gICAqL1xuICBhc3luYyBzaWduVHhSZXF1ZXN0Rm9yTWVzc2FnZShwYXJhbXM6IFRTU1BhcmFtc0Zvck1lc3NhZ2UpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGlmICghcGFyYW1zLm1lc3NhZ2VSYXcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmF3IG1lc3NhZ2UgcmVxdWlyZWQgdG8gc2lnbiBtZXNzYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ25SZXF1ZXN0QmFzZShwYXJhbXMsIFJlcXVlc3RUeXBlLm1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2hhbGxlbmdlIHZhbHVlcyBmb3IgZW50ZXJwcmlzZSBhbmQgQml0R28gaW4gRUNEU0Egc2lnbmluZ1xuICAgKiBPbmx5IHJldHVybnMgdGhlIGNoYWxsZW5nZXMgaWYgdGhleSBhcmUgdmVyaWZpZWQgYnkgdGhlIHVzZXIncyBlbnRlcnByaXNlIGFkbWluJ3MgZWNkaCBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR4UmVxdWVzdElkIC0gdHJhbnNhY3Rpb24gcmVxdWVzdCBpZFxuICAgKiBAcGFyYW0ge1JlcXVlc3RUeXBlfSByZXF1ZXN0VHlwZSAtICAoMCBmb3IgdHgsIDEgZm9yIG1lc3NhZ2UpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB3YWxsZXRQYWlsbGllck1vZHVsdXMgLSBwYWlsbGllciBwdWJrZXkgJG4kXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIGluZGV4IG9mIHRoZSByZXF1ZXN0VHlwZVxuICAgKi9cbiAgYXN5bmMgZ2V0RWNkc2FTaWduaW5nQ2hhbGxlbmdlcyhcbiAgICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgICB3YWxsZXRQYWlsbGllck1vZHVsdXM6IHN0cmluZyxcbiAgICBpbmRleCA9IDBcbiAgKTogUHJvbWlzZTx7XG4gICAgZW50ZXJwcmlzZUNoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkRWNkc2FDaGFsbGVuZ2VzO1xuICAgIGJpdGdvQ2hhbGxlbmdlOiBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZTtcbiAgfT4ge1xuICAgIGNvbnN0IGVudGVycHJpc2VJZCA9IHRoaXMud2FsbGV0LnRvSlNPTigpLmVudGVycHJpc2U7XG4gICAgaWYgKCFlbnRlcnByaXNlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV2FsbGV0IG11c3QgYmUgYW4gZW50ZXJwcmlzZSB3YWxsZXQuJyk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIEJpdEdvIHJhbmdlIHByb29mIGFuZCBwYWlsbGllciBwcm9vZiBjaGFsbGVuZ2VcbiAgICBjb25zdCBjcmVhdGVCaXRnb0NoYWxsZW5nZVJlc3BvbnNlID0gYXdhaXQgZ2V0VHhSZXF1ZXN0Q2hhbGxlbmdlKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHRoaXMud2FsbGV0LmlkKCksXG4gICAgICB0eFJlcXVlc3RJZCxcbiAgICAgIGluZGV4LnRvU3RyaW5nKCksXG4gICAgICByZXF1ZXN0VHlwZSxcbiAgICAgIHdhbGxldFBhaWxsaWVyTW9kdWx1c1xuICAgICk7XG5cbiAgICBjb25zdCBiaXRnb1RvRW50ZXJwcmlzZVBhaWxsaWVyQ2hhbGxlbmdlID0geyBwOiBjcmVhdGVCaXRnb0NoYWxsZW5nZVJlc3BvbnNlLnAgfTtcbiAgICBjb25zdCBlbnRlcnByaXNlVG9CaXRnb1BhaWxsaWVyQ2hhbGxlbmdlID0gRWNkc2FUeXBlcy5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZSh7XG4gICAgICBwOiBhd2FpdCBFY2RzYVBhaWxsaWVyUHJvb2YuZ2VuZXJhdGVQKGhleFRvQmlnSW50KGNyZWF0ZUJpdGdvQ2hhbGxlbmdlUmVzcG9uc2UubikpLFxuICAgIH0pO1xuXG4gICAgLy8gVE9ETyhCRy03ODc2NCk6IG9uY2UgdGhlIHBhaWxsaWVyIHByb29mcyBhcmUgY29tcGxldGUsIHJlZHVjZSBjaGFsbGVuZ2UgY3JlYXRpb24gdG8gb25lIEFQSSBjYWxsXG4gICAgY29uc3Qgd2FsbGV0Q2hhbGxlbmdlcyA9IGF3YWl0IHRoaXMud2FsbGV0LmdldENoYWxsZW5nZXNGb3JFY2RzYVNpZ25pbmcoKTtcblxuICAgIGNvbnN0IGNoYWxsZW5nZVZlcmlmaWVyVXNlcklkID0gd2FsbGV0Q2hhbGxlbmdlcy5jcmVhdGVkQnk7XG4gICAgY29uc3QgYWRtaW5TaWduaW5nS2V5UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvLmdldFNpZ25pbmdLZXlGb3JVc2VyKGVudGVycHJpc2VJZCwgY2hhbGxlbmdlVmVyaWZpZXJVc2VySWQpO1xuICAgIGNvbnN0IHB1YmtleU9mQWRtaW5FY2RoS2V5SGV4ID0gYWRtaW5TaWduaW5nS2V5UmVzcG9uc2UuZGVyaXZlZFB1YmtleTtcblxuICAgIC8vIFZlcmlmeSBlbnRlcnByaXNlJ3MgY2hhbGxlbmdlIGlzIHNpZ25lZCBieSB0aGUgcmVzcGVjdGl2ZSBhZG1pbnMgZWNkaCBrZXljaGFpblxuICAgIGNvbnN0IGVudGVycHJpc2VSYXdDaGFsbGVuZ2UgPSB7XG4gICAgICBudGlsZGU6IHdhbGxldENoYWxsZW5nZXMuZW50ZXJwcmlzZUNoYWxsZW5nZS5udGlsZGUsXG4gICAgICBoMTogd2FsbGV0Q2hhbGxlbmdlcy5lbnRlcnByaXNlQ2hhbGxlbmdlLmgxLFxuICAgICAgaDI6IHdhbGxldENoYWxsZW5nZXMuZW50ZXJwcmlzZUNoYWxsZW5nZS5oMixcbiAgICB9O1xuICAgIGNvbnN0IGFkbWluU2lnbmF0dXJlT25FbnRDaGFsbGVuZ2U6IHN0cmluZyA9IHdhbGxldENoYWxsZW5nZXMuZW50ZXJwcmlzZUNoYWxsZW5nZS52ZXJpZmllcnMuYWRtaW5TaWduYXR1cmU7XG4gICAgaWYgKFxuICAgICAgIXZlcmlmeUVjZGhTaWduYXR1cmUoXG4gICAgICAgIEVjZHNhVXRpbHMuZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoZW50ZXJwcmlzZVJhd0NoYWxsZW5nZSksXG4gICAgICAgIGFkbWluU2lnbmF0dXJlT25FbnRDaGFsbGVuZ2UsXG4gICAgICAgIEJ1ZmZlci5mcm9tKHB1YmtleU9mQWRtaW5FY2RoS2V5SGV4LCAnaGV4JylcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQWRtaW4gc2lnbmF0dXJlIGZvciBlbnRlcnByaXNlIGNoYWxsZW5nZSBpcyBub3QgdmFsaWQuIFBsZWFzZSBjb250YWN0IHlvdXIgZW50ZXJwcmlzZSBhZG1pbi5gKTtcbiAgICB9XG5cbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgQml0R28gY2hhbGxlbmdlJ3MgWksgcHJvb2ZzIGhhdmUgYmVlbiB2ZXJpZmllZCBieSB0aGUgYWRtaW5cbiAgICBjb25zdCBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2UgPSB7XG4gICAgICBudGlsZGU6IHdhbGxldENoYWxsZW5nZXMuYml0Z29DaGFsbGVuZ2UubnRpbGRlLFxuICAgICAgaDE6IHdhbGxldENoYWxsZW5nZXMuYml0Z29DaGFsbGVuZ2UuaDEsXG4gICAgICBoMjogd2FsbGV0Q2hhbGxlbmdlcy5iaXRnb0NoYWxsZW5nZS5oMixcbiAgICAgIHA6IGJpdGdvVG9FbnRlcnByaXNlUGFpbGxpZXJDaGFsbGVuZ2UucCxcbiAgICAgIG46IGNyZWF0ZUJpdGdvQ2hhbGxlbmdlUmVzcG9uc2UubixcbiAgICB9O1xuICAgIGNvbnN0IGFkbWluVmVyaWZpY2F0aW9uU2lnbmF0dXJlRm9yQml0R29DaGFsbGVuZ2UgPSB3YWxsZXRDaGFsbGVuZ2VzLmJpdGdvQ2hhbGxlbmdlLnZlcmlmaWVycy5hZG1pblNpZ25hdHVyZTtcbiAgICBpZiAoXG4gICAgICAhdmVyaWZ5RWNkaFNpZ25hdHVyZShcbiAgICAgICAgRWNkc2FVdGlscy5nZXRNZXNzYWdlVG9TaWduRnJvbUNoYWxsZW5nZShiaXRnb0NoYWxsZW5nZSksXG4gICAgICAgIGFkbWluVmVyaWZpY2F0aW9uU2lnbmF0dXJlRm9yQml0R29DaGFsbGVuZ2UsXG4gICAgICAgIEJ1ZmZlci5mcm9tKHB1YmtleU9mQWRtaW5FY2RoS2V5SGV4LCAnaGV4JylcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQWRtaW4gc2lnbmF0dXJlIGZvciBCaXRHbydzIGNoYWxsZW5nZSBpcyBub3QgdmFsaWQuIFBsZWFzZSBjb250YWN0IHlvdXIgZW50ZXJwcmlzZSBhZG1pbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZW50ZXJwcmlzZUNoYWxsZW5nZToge1xuICAgICAgICAuLi5lbnRlcnByaXNlUmF3Q2hhbGxlbmdlLFxuICAgICAgICBwOiBlbnRlcnByaXNlVG9CaXRnb1BhaWxsaWVyQ2hhbGxlbmdlLnAsXG4gICAgICB9LFxuICAgICAgYml0Z29DaGFsbGVuZ2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyB0aGUgdS12YWx1ZSBwcm9vZnMgYW5kIEdQRyBrZXlzIHVzZWQgaW4gZ2VuZXJhdGluZyBhIFRTUyBFQ0RTQSB3YWxsZXQuXG4gICAqIEBwYXJhbSB1c2VyR3BnUHViIFRoZSB1c2VyJ3MgcHVibGljIEdQRyBrZXkgZm9yIGVuY3J5cHRpb24gYmV0d2VlbiB1c2VyL3NlcnZlclxuICAgKiBAcGFyYW0gYmFja3VwR3BnUHViIFRoZSBiYWNrdXAncyBwdWJsaWMgR1BHIGtleSBmb3IgZW5jcnlwdGlvbiBiZXR3ZWVuIGJhY2t1cC9zZXJ2ZXJcbiAgICogQHBhcmFtIGJpdGdvS2V5Y2hhaW4gcHJldmlvdXNseSBjcmVhdGVkIEJpdEdvIGtleWNoYWluOyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB1c2VyIGFuZCBiYWNrdXAga2V5IHNoYXJlc1xuICAgKiBAcGFyYW0gZGVjcnlwdGVkU2hhcmUgVGhlIGRlY3J5cHRlZCBiaXRnby10by11c2VyL2JhY2t1cCBwcml2YXRlIHNoYXJlIHJldHJpZXZlZCBmcm9tIHRoZSBrZXljaGFpblxuICAgKiBAcGFyYW0gdmVyaWZpZXJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHBhcnR5IHRvIHZlcmlmeTogMSA9IHVzZXIsIDIgPSBiYWNrdXBcbiAgICovXG4gIGFzeW5jIHZlcmlmeVdhbGxldFNpZ25hdHVyZXMoXG4gICAgdXNlckdwZ1B1Yjogc3RyaW5nLFxuICAgIGJhY2t1cEdwZ1B1Yjogc3RyaW5nLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIGRlY3J5cHRlZFNoYXJlOiBzdHJpbmcsXG4gICAgdmVyaWZpZXJJbmRleDogMSB8IDJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLndhbGxldEhTTUdQR1B1YmxpY0tleVNpZ3MpO1xuXG4gICAgY29uc3QgYml0Z29HcGdLZXkgPSBhd2FpdCBnZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICBjb25zdCB1c2VyS2V5UHViID0gYXdhaXQgb3BlbnBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogdXNlckdwZ1B1YiB9KTtcbiAgICBjb25zdCB1c2VyS2V5SWQgPSB1c2VyS2V5UHViLmtleVBhY2tldC5nZXRGaW5nZXJwcmludCgpO1xuICAgIGNvbnN0IGJhY2t1cEtleVB1YiA9IGF3YWl0IG9wZW5wZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IGJhY2t1cEdwZ1B1YiB9KTtcbiAgICBjb25zdCBiYWNrdXBLZXlJZCA9IGJhY2t1cEtleVB1Yi5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKTtcblxuICAgIGNvbnN0IHdhbGxldFNpZ25hdHVyZXMgPSBhd2FpdCBvcGVucGdwLnJlYWRLZXlzKHsgYXJtb3JlZEtleXM6IGJpdGdvS2V5Y2hhaW4ud2FsbGV0SFNNR1BHUHVibGljS2V5U2lncyB9KTtcbiAgICBpZiAod2FsbGV0U2lnbmF0dXJlcy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB3YWxsZXQgc2lnbmF0dXJlcycpO1xuICAgIH1cbiAgICBpZiAodXNlcktleUlkICE9PSB3YWxsZXRTaWduYXR1cmVzWzBdLmtleVBhY2tldC5nZXRGaW5nZXJwcmludCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZpcnN0IHdhbGxldCBzaWduYXR1cmUncyBmaW5nZXJwcmludCBkb2VzIG5vdCBtYXRjaCBwYXNzZWQgdXNlciBncGcga2V5J3MgZmluZ2VycHJpbnRgKTtcbiAgICB9XG4gICAgaWYgKGJhY2t1cEtleUlkICE9PSB3YWxsZXRTaWduYXR1cmVzWzFdLmtleVBhY2tldC5nZXRGaW5nZXJwcmludCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNlY29uZCB3YWxsZXQgc2lnbmF0dXJlJ3MgZmluZ2VycHJpbnQgZG9lcyBub3QgbWF0Y2ggcGFzc2VkIGJhY2t1cCBncGcga2V5J3MgZmluZ2VycHJpbnRgKTtcbiAgICB9XG5cbiAgICBhd2FpdCB2ZXJpZnlXYWxsZXRTaWduYXR1cmUoe1xuICAgICAgd2FsbGV0U2lnbmF0dXJlOiB3YWxsZXRTaWduYXR1cmVzWzBdLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4sXG4gICAgICB1c2VyS2V5SWQsXG4gICAgICBiYWNrdXBLZXlJZCxcbiAgICAgIGJpdGdvUHViOiBiaXRnb0dwZ0tleSxcbiAgICAgIGRlY3J5cHRlZFNoYXJlLFxuICAgICAgdmVyaWZpZXJJbmRleCxcbiAgICB9KTtcblxuICAgIGF3YWl0IHZlcmlmeVdhbGxldFNpZ25hdHVyZSh7XG4gICAgICB3YWxsZXRTaWduYXR1cmU6IHdhbGxldFNpZ25hdHVyZXNbMV0sXG4gICAgICBjb21tb25LZXljaGFpbjogYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbixcbiAgICAgIHVzZXJLZXlJZCxcbiAgICAgIGJhY2t1cEtleUlkLFxuICAgICAgYml0Z29QdWI6IGJpdGdvR3BnS2V5LFxuICAgICAgZGVjcnlwdGVkU2hhcmUsXG4gICAgICB2ZXJpZmllckluZGV4LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgY2hhbGxlbmdlIHdpdGggdGhlIHByb3ZpZGVkIHYxIGVjZGgga2V5IGF0IGEgZGVyaXZlZCBwYXRoXG4gICAqIEBwYXJhbSBjaGFsbGVuZ2UgY2hhbGxlbmdlIHRvIHNpZ25cbiAgICogQHBhcmFtIGVjZGhYcHJ2IHhwcnYgb2YgdGhlIGVjZGgga2V5XG4gICAqIEBwYXJhbSBkZXJpdmF0aW9uUGF0aCB0aGUgZGVyaXZlZCBwYXRoIGF0IHdoaWNoIHRoZSBlY2RoIGtleSB3aWxsIHNpZ25cbiAgICovXG4gIHN0YXRpYyBzaWduQ2hhbGxlbmdlKGNoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlLCBlY2RoWHBydjogc3RyaW5nLCBkZXJpdmF0aW9uUGF0aDogc3RyaW5nKTogQnVmZmVyIHtcbiAgICBjb25zdCBtZXNzYWdlVG9TaWduID0gdGhpcy5nZXRNZXNzYWdlVG9TaWduRnJvbUNoYWxsZW5nZShjaGFsbGVuZ2UpO1xuICAgIHJldHVybiBzaWduTWVzc2FnZVdpdGhEZXJpdmVkRWNkaEtleShtZXNzYWdlVG9TaWduLCBlY2RoWHBydiwgZGVyaXZhdGlvblBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGNoYWxsZW5nZSB0byBhIGNvbW1vbiBtZXNzYWdlIGZvcm1hdCB3aGljaCBjYW4gYmUgc2lnbmVkLlxuICAgKiBAcGFyYW0gY2hhbGxlbmdlXG4gICAqL1xuICBzdGF0aWMgZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoY2hhbGxlbmdlOiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWROdGlsZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBjaGFsbGVuZ2UubnRpbGRlLmNvbmNhdChjaGFsbGVuZ2UuaDEpLmNvbmNhdChjaGFsbGVuZ2UuaDIpO1xuICB9XG5cbiAgLyoqXG4gICBWZXJpZmllcyBaSyBwcm9vZnMgb2YgQml0R28ncyBjaGFsbGVuZ2VzIGZvciBib3RoIG5pdHJvIGFuZCBpbnN0aXR1dGlvbmFsIEhTTXNcbiAgIHdoaWNoIGFyZSBmZXRjaGVkIGZyb20gdGhlIFdQIEFQSS5cbiAgICovXG4gIHN0YXRpYyBhc3luYyB2ZXJpZnlCaXRHb0NoYWxsZW5nZXMoYml0Z29DaGFsbGVuZ2VzOiBHZXRCaXRHb0NoYWxsZW5nZXNBcGkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBWZXJpZnkgaW5zdGl0dXRpb25hbCBoc20gY2hhbGxlbmdlIHByb29mXG4gICAgY29uc3QgaW5zdENoYWxsZW5nZVZlcmlmaWVkID0gYXdhaXQgdGhpcy52ZXJpZnlCaXRHb0NoYWxsZW5nZSh7XG4gICAgICBudGlsZGU6IGJpdGdvQ2hhbGxlbmdlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20ubnRpbGRlLFxuICAgICAgaDE6IGJpdGdvQ2hhbGxlbmdlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20uaDEsXG4gICAgICBoMjogYml0Z29DaGFsbGVuZ2VzLmJpdGdvSW5zdGl0dXRpb25hbEhzbS5oMixcbiAgICAgIG50aWxkZVByb29mOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLm50aWxkZVByb29mLFxuICAgIH0pO1xuXG4gICAgLy8gVmVyaWZ5IG5pdHJvIGhzbSBjaGFsbGVuZ2UgcHJvb2ZcbiAgICBjb25zdCBuaXRyb0NoYWxsZW5nZVZlcmlmaWVkID0gYXdhaXQgdGhpcy52ZXJpZnlCaXRHb0NoYWxsZW5nZSh7XG4gICAgICBudGlsZGU6IGJpdGdvQ2hhbGxlbmdlcy5iaXRnb05pdHJvSHNtLm50aWxkZSxcbiAgICAgIGgxOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29OaXRyb0hzbS5oMSxcbiAgICAgIGgyOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29OaXRyb0hzbS5oMixcbiAgICAgIG50aWxkZVByb29mOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29OaXRyb0hzbS5udGlsZGVQcm9vZixcbiAgICB9KTtcblxuICAgIHJldHVybiBpbnN0Q2hhbGxlbmdlVmVyaWZpZWQgJiYgbml0cm9DaGFsbGVuZ2VWZXJpZmllZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBaSyBwcm9vZiBmb3IgYSBzaW5nbGUgQml0R28gY2hhbGxlbmdlXG4gICAqIEBwYXJhbSBiaXRnb0NoYWxsZW5nZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHZlcmlmeUJpdEdvQ2hhbGxlbmdlKGJpdGdvQ2hhbGxlbmdlOiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZSA9IEVjZHNhVHlwZXMuZGVzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGJpdGdvQ2hhbGxlbmdlKTtcbiAgICBjb25zdCBudGlsZGVQcm9vZkgxV3J0SDJWZXJpZmllZCA9IGF3YWl0IEVjZHNhUmFuZ2VQcm9vZi52ZXJpZnlOdGlsZGVQcm9vZihcbiAgICAgIHtcbiAgICAgICAgbnRpbGRlOiBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLm50aWxkZSxcbiAgICAgICAgaDE6IGRlc2VyaWFsaXplZEluc3RDaGFsbGVuZ2UuaDEsXG4gICAgICAgIGgyOiBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLmgyLFxuICAgICAgfSxcbiAgICAgIGRlc2VyaWFsaXplZEluc3RDaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDFXcnRIMlxuICAgICk7XG4gICAgY29uc3QgbnRpbGRlUHJvb2ZIMldydEgxVmVyaWZpZWQgPSBhd2FpdCBFY2RzYVJhbmdlUHJvb2YudmVyaWZ5TnRpbGRlUHJvb2YoXG4gICAgICB7XG4gICAgICAgIG50aWxkZTogZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5udGlsZGUsXG4gICAgICAgIGgxOiBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLmgyLFxuICAgICAgICBoMjogZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5oMSxcbiAgICAgIH0sXG4gICAgICBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLm50aWxkZVByb29mLmgyV3J0SDFcbiAgICApO1xuICAgIHJldHVybiBudGlsZGVQcm9vZkgxV3J0SDJWZXJpZmllZCAmJiBudGlsZGVQcm9vZkgyV3J0SDFWZXJpZmllZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiaXRnbyBjaGFsbGVuZ2VzIGZvciBib3RoIG5pdHJvIGFuZCBpbnN0aXR1dGlvbmFsIEhTTXMgZnJvbSBXUCBBUEkuXG4gICAqIEBwYXJhbSBiaXRnb1xuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldEJpdEdvQ2hhbGxlbmdlcyhiaXRnbzogQml0R29CYXNlKTogUHJvbWlzZTxHZXRCaXRHb0NoYWxsZW5nZXNBcGk+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBiaXRnby5nZXQoYml0Z28udXJsKCcvdHNzL2VjZHNhL2NoYWxsZW5nZXMnLCAyKSkuc2VuZCgpLnJlc3VsdCgpO1xuICAgIGlmIChcbiAgICAgICFyZXMuYml0Z29OaXRyb0hzbSB8fFxuICAgICAgIXJlcy5iaXRnb05pdHJvSHNtLm50aWxkZSB8fFxuICAgICAgIXJlcy5iaXRnb05pdHJvSHNtLmgxIHx8XG4gICAgICAhcmVzLmJpdGdvTml0cm9Ic20uaDIgfHxcbiAgICAgICFyZXMuYml0Z29OaXRyb0hzbS5udGlsZGVQcm9vZiB8fFxuICAgICAgIXJlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20gfHxcbiAgICAgICFyZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLm50aWxkZSB8fFxuICAgICAgIXJlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20uaDEgfHxcbiAgICAgICFyZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLmgyIHx8XG4gICAgICAhcmVzLmJpdGdvSW5zdGl0dXRpb25hbEhzbS5udGlsZGVQcm9vZlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBCaXRHbyBjaGFsbGVuZ2UgcHJvb2YgdG8gYmUgcHJlc2VudC4gQ29udGFjdCBzdXBwb3J0QGJpdGdvLmNvbS4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIEJpdEdvJ3MgcHJvb2ZzIGZyb20gQVBJIGFuZCBzaWducyB0aGVtIGlmIHRoZSBwcm9vZnMgYXJlIHZhbGlkLlxuICAgKiBAcGFyYW0gYml0Z29cbiAgICogQHBhcmFtIGVudGVycHJpc2VJZFxuICAgKiBAcGFyYW0gdXNlclBhc3N3b3JkXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0VmVyaWZ5QW5kU2lnbkJpdEdvQ2hhbGxlbmdlcyhcbiAgICBiaXRnbzogQml0R29CYXNlLFxuICAgIGVudGVycHJpc2VJZDogc3RyaW5nLFxuICAgIHVzZXJQYXNzd29yZDogc3RyaW5nXG4gICk6IFByb21pc2U8Qml0R29Qcm9vZlNpZ25hdHVyZXM+IHtcbiAgICAvLyBGZXRjaCBCaXRHbydzIGNoYWxsZW5nZSBhbmQgdmVyaWZ5XG4gICAgY29uc3QgYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mcyA9IGF3YWl0IEVjZHNhVXRpbHMuZ2V0Qml0R29DaGFsbGVuZ2VzKGJpdGdvKTtcbiAgICBpZiAoIShhd2FpdCBFY2RzYVV0aWxzLnZlcmlmeUJpdEdvQ2hhbGxlbmdlcyhiaXRnb0NoYWxsZW5nZXNXaXRoUHJvb2ZzKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byB2ZXJpZnkgQml0R28ncyBjaGFsbGVuZ2UgbmVlZGVkIHRvIGVuYWJsZSBFQ0RTQSBzaWduaW5nLiBQbGVhc2UgY29udGFjdCBzdXBwb3J0QGJpdGdvLmNvbWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBFY2RzYVV0aWxzLnNpZ25CaXRnb0NoYWxsZW5nZXMoYml0Z28sIGVudGVycHJpc2VJZCwgdXNlclBhc3N3b3JkLCBiaXRnb0NoYWxsZW5nZXNXaXRoUHJvb2ZzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIEJpdGdvJ3MgcHJvb2ZzLCB2ZXJpZmljYXRpb24gb2YgcHJvb2ZzIGlzIGxlZnQgdG8gdGhlIGNhbGxlclxuICAgKiBAcGFyYW0gYml0Z29cbiAgICogQHBhcmFtIGVudGVycHJpc2VJZFxuICAgKiBAcGFyYW0gdXNlclBhc3N3b3JkXG4gICAqIEBwYXJhbSBiaXRnb0NoYWxsZW5nZXNXaXRoUHJvb2ZzIE9wdGlvbmFsbHkgcHJvdmlkZSBCaXRnbyBDaGFsbGFlbmdlICYgUHJvb2ZzIGluc3RlYWQgb2YgZmV0Y2hpbmcgZnJvbSBBUElcbiAgICovXG4gIHN0YXRpYyBhc3luYyBzaWduQml0Z29DaGFsbGVuZ2VzKFxuICAgIGJpdGdvOiBCaXRHb0Jhc2UsXG4gICAgZW50ZXJwcmlzZUlkOiBzdHJpbmcsXG4gICAgdXNlclBhc3N3b3JkOiBzdHJpbmcsXG4gICAgYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mcz86IEdldEJpdEdvQ2hhbGxlbmdlc0FwaVxuICApOiBQcm9taXNlPEJpdEdvUHJvb2ZTaWduYXR1cmVzPiB7XG4gICAgLy8gZmV0Y2ggY2hhbGxlbmdlICYgcHJvb2YgaWYgbm9uZSBhcmUgcHJvdmlkZWRcbiAgICBjb25zdCBjaGFsbGVuZ2VzV2l0aFByb29mcyA9IGJpdGdvQ2hhbGxlbmdlc1dpdGhQcm9vZnNcbiAgICAgID8gYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mc1xuICAgICAgOiBhd2FpdCBFY2RzYVV0aWxzLmdldEJpdEdvQ2hhbGxlbmdlcyhiaXRnbyk7XG4gICAgLy8gRmV0Y2ggdXNlcidzIGVjZGggcHVibGljIGtleWNoYWluIG5lZWRlZCBmb3Igc2lnbmluZyB0aGUgY2hhbGxlbmdlc1xuICAgIGNvbnN0IHVzZXJTaWduaW5nS2V5ID0gYXdhaXQgYml0Z28uZ2V0U2lnbmluZ0tleUZvclVzZXIoZW50ZXJwcmlzZUlkKTtcbiAgICBpZiAoIXVzZXJTaWduaW5nS2V5LmVjZGhLZXljaGFpbiB8fCAhdXNlclNpZ25pbmdLZXkuZGVyaXZhdGlvblBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgdXNlciBrZXljaGFpbi4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydEBiaXRnby5jb20uJyk7XG4gICAgfVxuICAgIGNvbnN0IHVzZXJFY2RoS2V5Y2hhaW4gPSBhd2FpdCBiaXRnby5nZXRFQ0RIS2V5Y2hhaW4odXNlclNpZ25pbmdLZXkuZWNkaEtleWNoYWluKTtcbiAgICBsZXQgeHBydjtcbiAgICB0cnkge1xuICAgICAgeHBydiA9IGJpdGdvLmRlY3J5cHQoe1xuICAgICAgICBwYXNzd29yZDogdXNlclBhc3N3b3JkLFxuICAgICAgICBpbnB1dDogdXNlckVjZGhLZXljaGFpbi5lbmNyeXB0ZWRYcHJ2LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgcGFzc3dvcmQuIFBsZWFzZSB0cnkgYWdhaW4uJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25lZEJpdEdvSW5zdENoYWxsZW5nZSA9IEVjZHNhVXRpbHMuc2lnbkNoYWxsZW5nZShcbiAgICAgIGNoYWxsZW5nZXNXaXRoUHJvb2ZzLmJpdGdvSW5zdGl0dXRpb25hbEhzbSxcbiAgICAgIHhwcnYsXG4gICAgICB1c2VyU2lnbmluZ0tleS5kZXJpdmF0aW9uUGF0aFxuICAgICk7XG4gICAgY29uc3Qgc2lnbmVkQml0R29OaXRyb0NoYWxsZW5nZSA9IEVjZHNhVXRpbHMuc2lnbkNoYWxsZW5nZShcbiAgICAgIGNoYWxsZW5nZXNXaXRoUHJvb2ZzLmJpdGdvTml0cm9Ic20sXG4gICAgICB4cHJ2LFxuICAgICAgdXNlclNpZ25pbmdLZXkuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBiaXRnb0luc3RIc21BZG1pblNpZ25hdHVyZTogc2lnbmVkQml0R29JbnN0Q2hhbGxlbmdlLFxuICAgICAgYml0Z29OaXRyb0hzbUFkbWluU2lnbmF0dXJlOiBzaWduZWRCaXRHb05pdHJvQ2hhbGxlbmdlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyBuZWVkZWQgdG8gZW5hYmxlIGVjZHNhIHNpZ25pbmcgb24gdGhlIGVudGVycHJpc2UuXG4gICAqIEl0IHJlY2VpdmVzIHRoZSBlbnRlcnByaXNlIGNoYWxsZW5nZSBhbmQgc2lnbmF0dXJlcyBvZiB2ZXJpZmllZCBiaXRnbyBwcm9vZnNcbiAgICogYW5kIHVwbG9hZHMgdGhlbSBvbiB0aGUgZW50ZXJwcmlzZS5cbiAgICogQHBhcmFtIGJpdGdvXG4gICAqIEBwYXJhbSBlbnRJZCAtIGVudGVycHJpc2UgaWQgdG8gZW5hYmxlIGVjZHNhIHNpZ25pbmcgb25cbiAgICogQHBhcmFtIHVzZXJQYXNzd29yZCAtIGVudGVycHJpc2UgYWRtaW4ncyBsb2dpbiBwd1xuICAgKiBAcGFyYW0gYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmUgLSBzaWduYXR1cmUgb24gYml0Z28ncyBpbnN0aXR1dGlvbmFsIEhTTSBjaGFsbGVuZ2UgYWZ0ZXIgdmVyaWZpY2F0aW9uXG4gICAqIEBwYXJhbSBiaXRnb05pdHJvQ2hhbGxlbmdlUHJvb2ZTaWduYXR1cmUgLSBzaWduYXR1cmUgb24gYml0Z28ncyBuaXRybyBIU00gY2hhbGxlbmdlIGFmdGVyIHZlcmlmaWNhdGlvblxuICAgKiBAcGFyYW0gY2hhbGxlbmdlIC0gb3B0aW9uYWxseSB1c2UgdGhlIGNoYWxsZW5nZSBmb3IgZW50ZXJwcmlzZSBjaGFsbGVuZ2VcbiAgICovXG4gIHN0YXRpYyBhc3luYyBpbml0aWF0ZUNoYWxsZW5nZXNGb3JFbnRlcnByaXNlKFxuICAgIGJpdGdvOiBCaXRHb0Jhc2UsXG4gICAgZW50SWQ6IHN0cmluZyxcbiAgICB1c2VyUGFzc3dvcmQ6IHN0cmluZyxcbiAgICBiaXRnb0luc3RDaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZTogQnVmZmVyLFxuICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZTogQnVmZmVyLFxuICAgIGNoYWxsZW5nZT86IEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBGZXRjaCB1c2VyJ3MgZWNkaCBwdWJsaWMga2V5Y2hhaW4gbmVlZGVkIGZvciBzaWduaW5nIHRoZSBjaGFsbGVuZ2VzXG4gICAgY29uc3QgdXNlclNpZ25pbmdLZXkgPSBhd2FpdCBiaXRnby5nZXRTaWduaW5nS2V5Rm9yVXNlcihlbnRJZCk7XG4gICAgaWYgKCF1c2VyU2lnbmluZ0tleS5lY2RoS2V5Y2hhaW4gfHwgIXVzZXJTaWduaW5nS2V5LmRlcml2YXRpb25QYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIHVzZXIga2V5Y2hhaW4uIFBsZWFzZSBjb250YWN0IHN1cHBvcnRAYml0Z28uY29tLicpO1xuICAgIH1cbiAgICBjb25zdCB1c2VyRWNkaEtleWNoYWluID0gYXdhaXQgYml0Z28uZ2V0RUNESEtleWNoYWluKHVzZXJTaWduaW5nS2V5LmVjZGhLZXljaGFpbik7XG4gICAgbGV0IHhwcnY7XG4gICAgdHJ5IHtcbiAgICAgIHhwcnYgPSBiaXRnby5kZWNyeXB0KHtcbiAgICAgICAgcGFzc3dvcmQ6IHVzZXJQYXNzd29yZCxcbiAgICAgICAgaW5wdXQ6IHVzZXJFY2RoS2V5Y2hhaW4uZW5jcnlwdGVkWHBydixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHBhc3N3b3JkLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGFuZCBzaWduIGVudGVycHJpc2UgY2hhbGxlbmdlXG4gICAgY29uc3QgZW50Q2hhbGxlbmdlV2l0aFByb29mID0gY2hhbGxlbmdlID8/IChhd2FpdCBFY2RzYVJhbmdlUHJvb2YuZ2VuZXJhdGVOdGlsZGUobWluTW9kdWx1c0JpdExlbmd0aCkpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRFbnRDaGFsbGVuZ2VXaXRoUHJvb2YgPSBFY2RzYVR5cGVzLnNlcmlhbGl6ZU50aWxkZVdpdGhQcm9vZnMoZW50Q2hhbGxlbmdlV2l0aFByb29mKTtcbiAgICBjb25zdCBzaWduZWRFbnRlcnByaXNlQ2hhbGxlbmdlID0gRWNkc2FVdGlscy5zaWduQ2hhbGxlbmdlKFxuICAgICAgc2VyaWFsaXplZEVudENoYWxsZW5nZVdpdGhQcm9vZixcbiAgICAgIHhwcnYsXG4gICAgICB1c2VyU2lnbmluZ0tleS5kZXJpdmF0aW9uUGF0aFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLnVwbG9hZENoYWxsZW5nZXNUb0VudGVycHJpc2UoXG4gICAgICBiaXRnbyxcbiAgICAgIGVudElkLFxuICAgICAgc2VyaWFsaXplZEVudENoYWxsZW5nZVdpdGhQcm9vZixcbiAgICAgIHNpZ25lZEVudGVycHJpc2VDaGFsbGVuZ2UudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgYml0Z29OaXRyb0NoYWxsZW5nZVByb29mU2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkcyB0aGUgc2lnbmVkIGNoYWxsZW5nZXMgYW5kIHRoZWlyIHByb29mcyBvbiB0aGUgZW50ZXJwcmlzZS5cbiAgICogVGhpcyBpbml0aWF0ZXMgZWNkc2Egc2lnbmluZyBmb3IgdGhlIGVudGVycHJpc2UgdXNlcnMuXG4gICAqIEBwYXJhbSBiaXRnb1xuICAgKiBAcGFyYW0gZW50SWQgLSBlbnRlcnByaXNlIHRvIGVuYWJsZSBlY2RzYSBzaWduaW5nIG9uXG4gICAqIEBwYXJhbSBlbnRDaGFsbGVuZ2VXaXRoUHJvb2ZzIC0gY2xpZW50IHNpZGUgZ2VuZXJhdGVkIGVudCBjaGFsbGVuZ2Ugd2l0aCBaSyBwcm9vZnNcbiAgICogQHBhcmFtIGVudENoYWxsZW5nZVNpZ25hdHVyZSAtIHNpZ25hdHVyZSBvbiBlbnRlcnByaXNlIGNoYWxsZW5nZVxuICAgKiBAcGFyYW0gYml0Z29JbnRDaGFsbGVuZ2VTaWduYXR1cmUgLSBzaWduYXR1cmUgb24gQml0R28ncyBpbnN0aXR1dGlvbmFsIEhTTSBjaGFsbGVuZ2VcbiAgICogQHBhcmFtIGJpdGdvTml0cm9DaGFsbGVuZ2VTaWduYXR1cmUgLSBzaWduYXR1cmUgb24gQml0R28ncyBuaXRybyBIU00gY2hhbGxlbmdlXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgdXBsb2FkQ2hhbGxlbmdlc1RvRW50ZXJwcmlzZShcbiAgICBiaXRnbzogQml0R29CYXNlLFxuICAgIGVudElkOiBzdHJpbmcsXG4gICAgZW50Q2hhbGxlbmdlV2l0aFByb29mczogRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyxcbiAgICBlbnRDaGFsbGVuZ2VTaWduYXR1cmU6IHN0cmluZyxcbiAgICBiaXRnb0ludENoYWxsZW5nZVNpZ25hdHVyZTogc3RyaW5nLFxuICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VTaWduYXR1cmU6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgZW50ZXJwcmlzZToge1xuICAgICAgICBudGlsZGU6IGVudENoYWxsZW5nZVdpdGhQcm9vZnMubnRpbGRlLFxuICAgICAgICBoMTogZW50Q2hhbGxlbmdlV2l0aFByb29mcy5oMSxcbiAgICAgICAgaDI6IGVudENoYWxsZW5nZVdpdGhQcm9vZnMuaDIsXG4gICAgICAgIG50aWxkZVByb29mOiB7XG4gICAgICAgICAgaDFXcnRIMjogZW50Q2hhbGxlbmdlV2l0aFByb29mcy5udGlsZGVQcm9vZi5oMVdydEgyLFxuICAgICAgICAgIGgyV3J0SDE6IGVudENoYWxsZW5nZVdpdGhQcm9vZnMubnRpbGRlUHJvb2YuaDJXcnRIMSxcbiAgICAgICAgfSxcbiAgICAgICAgdmVyaWZpZXJzOiB7XG4gICAgICAgICAgYWRtaW5TaWduYXR1cmU6IGVudENoYWxsZW5nZVNpZ25hdHVyZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiaXRnb0luc3RpdHV0aW9uYWxIc206IHtcbiAgICAgICAgdmVyaWZpZXJzOiB7XG4gICAgICAgICAgYWRtaW5TaWduYXR1cmU6IGJpdGdvSW50Q2hhbGxlbmdlU2lnbmF0dXJlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJpdGdvTml0cm9Ic206IHtcbiAgICAgICAgdmVyaWZpZXJzOiB7XG4gICAgICAgICAgYWRtaW5TaWduYXR1cmU6IGJpdGdvTml0cm9DaGFsbGVuZ2VTaWduYXR1cmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgYXdhaXQgYml0Z29cbiAgICAgIC5wdXQoYml0Z28udXJsKGAvZW50ZXJwcmlzZS8ke2VudElkfS90c3Njb25maWcvZWNkc2EvY2hhbGxlbmdlYCwgMikpXG4gICAgICAuc2VuZChib2R5KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgc3RhdGljIHB1YmxpY0tleUZyb21Db21tb25LZXljaGFpbihjb21tb25LZXljaGFpbjogc3RyaW5nKSB7XG4gICAgY29uc3QgcHViID0gRWNkc2FVdGlscy5nZXRQdWJsaWNLZXlGcm9tQ29tbW9uS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW4pO1xuICAgIGNvbnN0IHNlY3AyNTZrMSA9IG5ldyBlYygnc2VjcDI1NmsxJyk7XG4gICAgY29uc3Qga2V5ID0gc2VjcDI1NmsxLmtleUZyb21QdWJsaWMocHViLCAnaGV4Jyk7XG4gICAgcmV0dXJuIGtleS5nZXRQdWJsaWMoKS5lbmNvZGUoJ2hleCcsIGZhbHNlKS5zbGljZSgyKTtcbiAgfVxufVxuIl19
849
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VjZHNhL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWdDO0FBRWhDLGlEQUFtQztBQUNuQyx1Q0FBOEI7QUFFOUIseURBQTRIO0FBQzVILG1EQUE2QztBQUU3Qyx5REFBK0Q7QUFFL0QsK0RBQW9FO0FBRXBFLG1FQUEyQztBQVMzQyw0Q0FRc0I7QUFDdEIsc0NBQTRDO0FBQzVDLG9EQUEwRjtBQUMxRixxREFBZ0g7QUFHaEgsb0RBQXNIO0FBQ3RILHdDQUFtRjtBQUNuRixnREFBNEQ7QUFDNUQsOENBQWtGO0FBRWxGLE1BQU0sYUFBYSxHQUFHLGVBQVksQ0FBQyxhQUFhLENBQUM7QUFFakQsa0JBQWtCO0FBQ2xCLE1BQWEsVUFBVyxTQUFRLHNCQUFzQjtJQUlwRCxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUpqQyw2S0FBNks7UUFDckssc0JBQWlCLEdBQTRCLFNBQVMsQ0FBQztRQUk3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLGdDQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsZ0NBQWdDO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7YUFDbEQ7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxjQUFzQjtRQUMxRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzlGO1FBQ0QsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsS0FBYSxFQUNiLGNBQXNCLEVBQ3RCLFlBQXNCLEVBQ3RCLGFBQXVCLEVBQ3ZCLFVBQXFDLEVBQ3JDLDRCQUFpQzs7UUFFakMsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLGFBQWEsQ0FDcEQsWUFBWSxFQUNaLENBQUMsRUFDRCw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsRUFDcEMsVUFBVSxDQUNYLENBQUM7UUFDRixNQUFNLHFCQUFxQixHQUFHLE1BQUEsYUFBYSxDQUFDLFNBQVMsMENBQUUsSUFBSSxDQUN6RCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQ3BFLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3BDLGVBQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQzdDLGVBQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDO1NBQ3RELENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsZ0JBQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQztZQUNKLGNBQWM7WUFDZCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osRUFBRSxFQUFFLFFBQVE7b0JBQ1osV0FBVyxFQUFFLGVBQWU7b0JBQzVCLFlBQVksRUFBRSwwQkFBMEIsQ0FBQyxxQkFBcUI7b0JBQzlELGlCQUFpQixFQUFFLDBCQUEwQixDQUFDLGlCQUFpQjtvQkFDL0QsUUFBUSxFQUFFLDBCQUEwQixDQUFDLFFBQVE7aUJBQzlDO2dCQUNELHFCQUFxQjthQUN0QjtTQUNGLENBQUM7YUFDRCxNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU87WUFDTCxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDbEIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQ2hDLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYztTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMsZUFBZSxDQUFDLE1BS3JCOztRQUNDLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBSyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVosTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQ0FBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkYsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZFLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsTUFBTSxpQkFBaUIsR0FDckIsTUFBQSxDQUFDLE1BQU0sSUFBSSxDQUFDLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxtQ0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFakcsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDbkQsVUFBVTtZQUNWLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLGNBQWM7WUFDZCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0Isa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ2xELFVBQVU7WUFDVixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixjQUFjO1lBQ2QsYUFBYTtZQUNiLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUM3Qiw4QkFBOEIsRUFBRSxNQUFNLENBQUMsOEJBQThCO1lBQ3JFLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7UUFDSCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUN0RCxVQUFVO1lBQ1YsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osY0FBYztZQUNkLGFBQWE7WUFDYixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO1NBQ3RDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBRXZHLE9BQU87WUFDTCxZQUFZO1lBQ1osY0FBYztZQUNkLGFBQWE7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsa0JBQWtCLEdBQUcsS0FBSyxFQUMxQixhQUF3QyxFQUN4QyxVQUE4QjtRQUU5QixJQUFJLGNBQThCLENBQUM7UUFDbkMsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyRyxjQUFjLEdBQUc7Z0JBQ2Ysa0JBQWtCLEVBQUUsd0JBQXdCO2FBQzdDLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFLLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDWixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDWixjQUFjLEdBQUc7Z0JBQ2YsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzlDLENBQUM7U0FDSDtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixHQUFHLEtBQUs7UUFDakQsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsZ0NBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFDakIsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsVUFBVSxFQUNWLDhCQUE4QixFQUM5QixrQkFBa0IsR0FBRyxLQUFLLEdBQ0E7O1FBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUFJLGtCQUFrQixLQUFJLE1BQUEsY0FBYyxDQUFDLGtCQUFrQiwwQ0FBRSxTQUFTLENBQUEsRUFBRTtZQUN0RSxPQUFPLElBQUksQ0FBQyxzQ0FBc0MsQ0FDaEQsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFtQixFQUNuQixZQUFZLEVBQ1osY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFDM0MsYUFBYSxFQUNiLFVBQVUsRUFDViw4QkFBOEIsQ0FDL0IsQ0FBQztTQUNIO1FBQ0QsZ0JBQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FDbkMsVUFBVSxFQUNWLFlBQXlDLEVBQ3pDLGlCQUFpQixFQUNqQixDQUFDLEVBQ0QsWUFBWSxFQUNaLGNBQWMsQ0FBQyxnQkFBZ0IsRUFDL0IsYUFBYSxFQUNiLFVBQVUsRUFDViw4QkFBOEIsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFDekIsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLGNBQWMsR0FDWTs7UUFDMUIsSUFBSSxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxDQUFDLEtBQUksTUFBQSxjQUFjLENBQUMsa0JBQWtCLDBDQUFFLFNBQVMsQ0FBQSxFQUFFO1lBQ3hHLGdCQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxJQUFJLENBQUMsK0JBQStCLENBQ3hFLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQ3BDLGFBQWEsQ0FBQyxjQUFjLEVBQzVCLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQW1CLENBQ3BCLENBQUM7WUFDRixJQUFJLHVCQUF1QixDQUFDLGNBQWMsS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO2dCQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7YUFDcEY7WUFDRCxNQUFNLGVBQWUsR0FBd0I7Z0JBQzNDLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxjQUFjLEVBQUUsdUJBQXVCLENBQUMsY0FBYztnQkFDdEQsUUFBUSxFQUFFLGNBQWMsYUFBZCxjQUFjLGNBQWQsY0FBYyxHQUFJLGlCQUFpQjthQUM5QyxDQUFDO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRixjQUFjLENBQUMsU0FBUyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztZQUM3RCxPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUNELGdCQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FDbkMsVUFBVSxFQUNWLFlBQXlDLEVBQ3pDLGlCQUFpQixFQUNqQixDQUFDLEVBQ0QsWUFBWSxFQUNaLGNBQWMsQ0FBQyxnQkFBZ0IsRUFDL0IsYUFBYSxFQUNiLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFDeEIsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQUcsS0FBSyxHQUNLO1FBQy9CLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN6QixNQUFNLGdCQUFnQixHQUFHLE1BQU0sYUFBYSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFbEgsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDNUQsY0FBYyxFQUNkLGNBQWMsRUFDZCxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFDekIsWUFBeUMsRUFDekMsa0JBQWtCLENBQ25CLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUF1QjtZQUMvQyxPQUFPLEVBQUUsS0FBZ0I7WUFDekIsTUFBTSxFQUFFLE9BQU87WUFDZixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osRUFBRSxFQUFFLE9BQU87b0JBQ1gsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7b0JBQ3pDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxxQkFBcUI7b0JBQ3BELENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNyQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtvQkFDbkMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsaUJBQWlCO2lCQUN0RDtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxFQUFFLEVBQUUsT0FBTztvQkFDWCxXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVztvQkFDM0MsWUFBWSxFQUFFLGtCQUFrQixDQUFDLHFCQUFxQjtvQkFDdEQsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7b0JBQ3ZCLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO29CQUNyQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUI7aUJBQ3hEO2FBQ0Y7WUFDRCxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsU0FBUztZQUN0QyxrQkFBa0IsRUFBRSxrQkFBa0I7Z0JBQ3BDLENBQUMsQ0FBRSxZQUFvQixDQUFDLEtBQUssRUFBRTtnQkFDL0IsQ0FBQyxDQUFFLFlBQTBDLENBQUMsU0FBUztZQUN6RCxVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFDO1FBRUYsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLHdCQUF3QixDQUM1QixXQUEyQixFQUMzQixjQUFzQixFQUN0Qix1QkFBK0IsRUFDL0IsWUFBdUMsRUFDdkMsa0JBQWtCLEdBQUcsS0FBSztRQUUxQixJQUFJLHNCQUF1QyxDQUFDO1FBQzVDLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsTUFBTSx5QkFBeUIsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDN0UsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssK0JBQXVCLENBQUMsY0FBYyxDQUFDLENBQ3BHLENBQUM7WUFDRixJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLCtCQUF1QixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMzRjtZQUNELDhEQUE4RDtZQUM5RCxzQkFBc0IsR0FBRyxNQUFNLGtDQUEwQixDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDdEY7YUFBTTtZQUNMLGdCQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDckMsc0JBQXNCLEdBQUcsTUFBTSxhQUFhLENBQzFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFDNUIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixZQUFZLENBQ2IsQ0FBQztTQUNIO1FBQ0QsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNDQUFzQyxDQUMxQyxVQUE2QyxFQUM3QyxpQkFBc0IsRUFDdEIsNEJBQWlDLEVBQ2pDLFlBQXNCLEVBQ3RCLHlCQUF3QyxFQUN4QyxhQUF1QixFQUN2QixVQUFrQixFQUNsQiw4QkFBdUM7UUFFdkMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FDdEQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUNuRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxrQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9FLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sZ0JBQWdCLEdBQXdCO1lBQzVDO2dCQUNFLE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxVQUFVO2dCQUM1QyxpQkFBaUIsRUFBRSw0QkFBNEIsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZELGFBQWEsRUFBRSxLQUFLO2FBQ3JCO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIscUJBQXFCLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQzVDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRTtnQkFDNUMsYUFBYSxFQUFFLEtBQUs7YUFDckI7U0FDRixDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsTUFBTSxlQUFZLENBQUMsaUJBQWlCLENBQzFELFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsYUFBYSxDQUFDLGNBQWMsQ0FDN0IsQ0FBQztRQUNGLElBQUksZUFBZSxDQUFDLGNBQWMsS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO1lBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztTQUNuRjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsS0FBZ0I7WUFDekIsY0FBYyxFQUFFLGVBQWUsQ0FBQyxjQUFjO1lBQzlDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUMvQixLQUFLLEVBQUUsR0FBRztnQkFDVixRQUFRLEVBQUUsVUFBVTthQUNyQixDQUFDO1lBQ0YsOEJBQThCO1NBQy9CLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMseUJBQXlCLENBQzdCLFVBQTZDLEVBQzdDLHFCQUF3RCxFQUN4RCxpQkFBc0IsRUFDdEIsY0FBc0IsRUFDdEIsWUFBc0IsRUFDdEIsY0FBd0IsRUFDeEIsYUFBdUIsRUFDdkIsVUFBa0IsRUFDbEIsOEJBQXVDO1FBRXZDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksU0FBaUIsQ0FBQztRQUN0QixJQUFJLFFBQWtCLENBQUM7UUFDdkIsSUFBSSxVQUFvQixDQUFDO1FBQ3pCLElBQUksZUFBa0QsQ0FBQztRQUN2RCxJQUFJLFlBQStDLENBQUM7UUFDcEQsSUFBSSxjQUFjLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFFBQVEsR0FBRyxZQUFZLENBQUM7WUFDeEIsVUFBVSxHQUFHLGNBQWMsQ0FBQztZQUM1QixTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ25CLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFDN0IsWUFBWSxHQUFHLHFCQUFxQixDQUFDO1NBQ3RDO2FBQU0sSUFBSSxjQUFjLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDMUIsVUFBVSxHQUFHLFlBQVksQ0FBQztZQUMxQixTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQ3JCLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQztZQUN4QyxZQUFZLEdBQUcsVUFBVSxDQUFDO1NBQzNCO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQy9DLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FDckUsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixTQUFTLFlBQVksQ0FBQyxDQUFDO1NBQzVEO1FBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTNHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUMvQixVQUFVLENBQUMsU0FBUyxFQUNwQixxQkFBcUIsQ0FBQyxTQUFTLEVBQy9CLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxDQUNmLENBQUM7UUFFRixNQUFNLHNCQUFzQixHQUFHLE1BQU0sYUFBYSxDQUNoRCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGVBQWUsQ0FBQyxTQUFTLEVBQ3pCLFlBQVksQ0FDYixDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBd0I7WUFDNUM7Z0JBQ0UsK0JBQStCO2dCQUMvQixNQUFNLEVBQUUsc0JBQXNCO2dCQUM5QixxQkFBcUIsRUFBRSxlQUFlLENBQUMsVUFBVTtnQkFDakQsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDMUM7WUFDRDtnQkFDRSxtQkFBbUI7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixDQUFDLEVBQUUsY0FBYztvQkFDakIsQ0FBQyxFQUFFLENBQUM7b0JBQ0osV0FBVyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7b0JBQzlDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLFlBQVk7b0JBQ3pELENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFFO29CQUMzQixRQUFRLEVBQUUscUJBQXFCLENBQUMsUUFBUTtvQkFDeEMsaUJBQWlCLEVBQUUscUJBQXFCLENBQUMsaUJBQWlCO2lCQUMzRDtnQkFDRCxxQkFBcUIsRUFBRSxlQUFlLENBQUMsVUFBVTtnQkFDakQsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxFQUFFO2dCQUM1QyxhQUFhLEVBQUUsS0FBSzthQUNyQjtTQUNGLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sZUFBWSxDQUFDLGlCQUFpQixDQUMvRCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FBQyxjQUFjLENBQzdCLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sdUJBQXVCLEdBQUc7WUFDOUIsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLEtBQWdCO1lBQ3pCLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYztZQUM1QyxHQUFHLEVBQUUsR0FBRztZQUNSLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDL0IsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsUUFBUSxFQUFFLFVBQVU7YUFDckIsQ0FBQztZQUNGLDhCQUE4QjtTQUMvQixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxPQUFPLGNBQWMsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUM7WUFDOUMsQ0FBQyxDQUFDLE1BQU0sU0FBUyxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQXVDLEVBQUUsV0FBd0I7O1FBQzdGLE1BQU0sNkJBQTZCLEdBQUcsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSwwQ0FBRSw2QkFBNkIsQ0FBQztRQUNoRyxJQUFJLDZCQUE2QixFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEhBQThILENBQy9ILENBQUM7U0FDSDtRQUVELE1BQU0sbUJBQW1CLEdBQXFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JGLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxNQUFNLFNBQVMsR0FDYixPQUFPLE1BQU0sQ0FBQyxTQUFTLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsTUFBTSxrQkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRXZCLElBQUksZUFBZSxDQUFDO1FBQ3BCLElBQUksY0FBYyxDQUFDO1FBRW5CLElBQUksV0FBVyxLQUFLLHVCQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2xDLGdCQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLDBDQUEwQyxDQUFDLENBQUM7WUFDcEcsTUFBTSxVQUFVLEdBQ2QsU0FBUyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JHLGVBQWUsR0FBRyxlQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsY0FBYyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUM7U0FDNUM7YUFBTSxJQUFJLFdBQVcsS0FBSyx1QkFBVyxDQUFDLE9BQU8sRUFBRTtZQUM5QyxlQUFlLEdBQUksTUFBOEIsQ0FBQyxZQUFZLENBQUM7WUFDL0QscURBQXFEO1lBQ3JELGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDckI7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUssRUFBRSxDQUFDO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQzlCLG1CQUFtQixDQUFDLE1BQU0sRUFDMUIsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEVBQ25FLGNBQWMsQ0FDZixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsd0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFL0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEgsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUM7UUFDcEYsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUM7UUFDdEYsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQ3JDO1lBQ0UsQ0FBQyxFQUFFLFNBQVM7WUFDWixDQUFDLEVBQUUsVUFBVTtZQUNiLENBQUMsRUFBRSxFQUFFO1NBQ04sRUFDRCxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQ3JDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNWLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLGVBQVksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0MsSUFBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUMxRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQzVCLFNBQVMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxXQUFXLEdBQUcsZ0JBQUssQ0FBQyxjQUFjLENBQUMsZUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsZUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRyxNQUFNLFdBQVcsR0FBRyxNQUFNLGdDQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQ25DLElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUM7WUFDRixNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLElBQUksR0FBRyxFQUFFO2FBQ3hCO1lBQ0QsY0FBYyxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQzlCLENBQUMsQ0FBVyxDQUFDO1FBQ2QsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQ0FBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sK0JBQWdCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuSCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEcsb0VBQW9FO1FBQ3BFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFNLGVBQVksQ0FBQyxnQkFBZ0IsQ0FDNUQsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUNoQixTQUFTLENBQUMsV0FBVyxFQUNyQixXQUFXLEVBQ1gscUJBQWEsQ0FBQyxNQUFNLEVBQ3BCLGFBQWEsQ0FBQyxNQUFNLEVBQ3BCLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxnQkFBZ0IsQ0FDakIsQ0FBeUMsQ0FBQyxDQUFDLCtDQUErQztRQUUzRiwyRUFBMkU7UUFDM0UsTUFBTSwyQkFBMkIsR0FBVztZQUMxQyxHQUFHLGlCQUFpQjtZQUNwQixHQUFHLFVBQVUsQ0FBQyxjQUFjO1NBQzdCLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sZUFBWSxDQUFDLHlCQUF5QixDQUN2RSxhQUFhLENBQUMsTUFBTSxFQUNwQiwyQkFBMkIsQ0FDNUIsQ0FBQztRQUNGLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxlQUFZLENBQUMsOEJBQThCLENBQ2hGLG9CQUFvQixDQUFDLE1BQXNCLENBQzVDLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxPQUFRLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDO1FBRS9DLCtFQUErRTtRQUMvRSxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBTSxlQUFZLENBQUMsZ0JBQWdCLENBQzVELElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFDaEIsU0FBUyxDQUFDLFdBQVcsRUFDckIsV0FBVyxFQUNYLHFCQUFhLENBQUMsT0FBTyxFQUNyQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FDbEMsQ0FBVyxDQUFDO1FBRWIsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFZLENBQUMsd0JBQXdCLENBQzVELHdCQUF3QixDQUFDLE1BQU0sRUFDL0IsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLENBQUMsSUFBSSxDQUNaLENBQUM7UUFFRixvRUFBb0U7UUFDcEUsTUFBTSxlQUFZLENBQUMsZ0JBQWdCLENBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFDaEIsU0FBUyxDQUFDLFdBQVcsRUFDckIsV0FBVyxFQUNYLHFCQUFhLENBQUMsTUFBTSxFQUNwQixVQUFVLENBQ1gsQ0FBQztRQUNGLE9BQU8sTUFBTSxrQkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBaUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSx1QkFBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBMkI7UUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSx1QkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLHlCQUF5QixDQUM3QixXQUFtQixFQUNuQixXQUF3QixFQUN4QixxQkFBNkIsRUFDN0IsS0FBSyxHQUFHLENBQUM7UUFLVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUN6RDtRQUVELHdEQUF3RDtRQUN4RCxNQUFNLDRCQUE0QixHQUFHLE1BQU0sOEJBQXFCLENBQzlELElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFDaEIsV0FBVyxFQUNYLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFDaEIsV0FBVyxFQUNYLHFCQUFxQixDQUN0QixDQUFDO1FBRUYsTUFBTSxrQ0FBa0MsR0FBRyxFQUFFLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLGtDQUFrQyxHQUFHLHdCQUFVLENBQUMsMEJBQTBCLENBQUM7WUFDL0UsQ0FBQyxFQUFFLE1BQU0sZ0NBQWtCLENBQUMsU0FBUyxDQUFDLHlCQUFXLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkYsQ0FBQyxDQUFDO1FBRUgsbUdBQW1HO1FBQ25HLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFFMUUsTUFBTSx1QkFBdUIsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFDM0QsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDN0csTUFBTSx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7UUFFdEUsaUZBQWlGO1FBQ2pGLE1BQU0sc0JBQXNCLEdBQUc7WUFDN0IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU07WUFDbkQsRUFBRSxFQUFFLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDM0MsRUFBRSxFQUFFLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7U0FDNUMsQ0FBQztRQUNGLE1BQU0sNEJBQTRCLEdBQVcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUMzRyxJQUNFLENBQUMsMEJBQW1CLENBQ2xCLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsQ0FBQyxFQUNoRSw0QkFBNEIsRUFDNUIsZUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FDNUMsRUFDRDtZQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztTQUNqSDtRQUVELDhFQUE4RTtRQUM5RSxNQUFNLGNBQWMsR0FBK0I7WUFDakQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNO1lBQzlDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0QyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDdEMsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUM7U0FDbEMsQ0FBQztRQUNGLE1BQU0sMkNBQTJDLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFDN0csSUFDRSxDQUFDLDBCQUFtQixDQUNsQixVQUFVLENBQUMsNkJBQTZCLENBQUMsY0FBYyxDQUFDLEVBQ3hELDJDQUEyQyxFQUMzQyxlQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUM1QyxFQUNEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO1NBQzlHO1FBRUQsT0FBTztZQUNMLG1CQUFtQixFQUFFO2dCQUNuQixHQUFHLHNCQUFzQjtnQkFDekIsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7YUFDeEM7WUFDRCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUMxQixVQUFrQixFQUNsQixZQUFvQixFQUNwQixhQUF1QixFQUN2QixjQUFzQixFQUN0QixhQUFvQjtRQUVwQixnQkFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxnQkFBTSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRWhELE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0NBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUU1RCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLFNBQVMsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1NBQzFHO1FBQ0QsSUFBSSxXQUFXLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztTQUM3RztRQUVELE1BQU0sNkJBQXFCLENBQUM7WUFDMUIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNwQyxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWM7WUFDNUMsU0FBUztZQUNULFdBQVc7WUFDWCxRQUFRLEVBQUUsV0FBVztZQUNyQixjQUFjO1lBQ2QsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sNkJBQXFCLENBQUM7WUFDMUIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNwQyxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWM7WUFDNUMsU0FBUztZQUNULFdBQVc7WUFDWCxRQUFRLEVBQUUsV0FBVztZQUNyQixjQUFjO1lBQ2QsYUFBYTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBc0MsRUFBRSxRQUFnQixFQUFFLGNBQXNCO1FBQ25HLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxPQUFPLG9DQUE2QixDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxTQUFzQztRQUN6RSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLGVBQXNDO1FBQ3ZFLDJDQUEyQztRQUMzQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzVELE1BQU0sRUFBRSxlQUFlLENBQUMscUJBQXFCLENBQUMsTUFBTTtZQUNwRCxFQUFFLEVBQUUsZUFBZSxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDNUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQzVDLFdBQVcsRUFBRSxlQUFlLENBQUMscUJBQXFCLENBQUMsV0FBVztTQUMvRCxDQUFDLENBQUM7UUFFSCxtQ0FBbUM7UUFDbkMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUM3RCxNQUFNLEVBQUUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQzVDLEVBQUUsRUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDcEMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNwQyxXQUFXLEVBQUUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxXQUFXO1NBQ3ZELENBQUMsQ0FBQztRQUVILE9BQU8scUJBQXFCLElBQUksc0JBQXNCLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsY0FBcUQ7UUFDckYsTUFBTSx5QkFBeUIsR0FBRyx3QkFBVSxDQUFDLDJCQUEyQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sMEJBQTBCLEdBQUcsTUFBTSw2QkFBZSxDQUFDLGlCQUFpQixDQUN4RTtZQUNFLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxNQUFNO1lBQ3hDLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxFQUFFO1lBQ2hDLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxFQUFFO1NBQ2pDLEVBQ0QseUJBQXlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDOUMsQ0FBQztRQUNGLE1BQU0sMEJBQTBCLEdBQUcsTUFBTSw2QkFBZSxDQUFDLGlCQUFpQixDQUN4RTtZQUNFLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxNQUFNO1lBQ3hDLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxFQUFFO1lBQ2hDLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxFQUFFO1NBQ2pDLEVBQ0QseUJBQXlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDOUMsQ0FBQztRQUNGLE9BQU8sMEJBQTBCLElBQUksMEJBQTBCLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDOUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRixJQUNFLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDbEIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU07WUFDekIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDOUIsQ0FBQyxHQUFHLENBQUMscUJBQXFCO1lBQzFCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLE1BQU07WUFDakMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUM3QixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQzdCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFDdEM7WUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDBFQUEwRSxDQUFDLENBQUM7U0FDN0Y7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQzFDLEtBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFlBQW9CO1FBRXBCLHFDQUFxQztRQUNyQyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRTtZQUN4RSxNQUFNLElBQUksS0FBSyxDQUNiLHFHQUFxRyxDQUN0RyxDQUFDO1NBQ0g7UUFDRCxPQUFPLE1BQU0sVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQzlCLEtBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLHlCQUFpRDtRQUVqRCwrQ0FBK0M7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyx5QkFBeUI7WUFDcEQsQ0FBQyxDQUFDLHlCQUF5QjtZQUMzQixDQUFDLENBQUMsTUFBTSxVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0Msc0VBQXNFO1FBQ3RFLE1BQU0sY0FBYyxHQUFHLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRTtZQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7U0FDbkc7UUFDRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEYsSUFBSSxJQUFJLENBQUM7UUFDVCxJQUFJO1lBQ0YsSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTthQUN0QyxDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUN2RCxvQkFBb0IsQ0FBQyxxQkFBcUIsRUFDMUMsSUFBSSxFQUNKLGNBQWMsQ0FBQyxjQUFjLENBQzlCLENBQUM7UUFDRixNQUFNLHlCQUF5QixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQ3hELG9CQUFvQixDQUFDLGFBQWEsRUFDbEMsSUFBSSxFQUNKLGNBQWMsQ0FBQyxjQUFjLENBQzlCLENBQUM7UUFDRixPQUFPO1lBQ0wsMEJBQTBCLEVBQUUsd0JBQXdCO1lBQ3BELDJCQUEyQixFQUFFLHlCQUF5QjtTQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUMxQyxLQUFnQixFQUNoQixLQUFhLEVBQ2IsWUFBb0IsRUFDcEIsZ0NBQXdDLEVBQ3hDLGlDQUF5QyxFQUN6QyxTQUFtRDtRQUVuRCxzRUFBc0U7UUFDdEUsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUNuRztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxLQUFLLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRixJQUFJLElBQUksQ0FBQztRQUNULElBQUk7WUFDRixJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO2FBQ3RDLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7U0FDMUQ7UUFFRCx5Q0FBeUM7UUFDekMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLGFBQVQsU0FBUyxjQUFULFNBQVMsR0FBSSxDQUFDLE1BQU0sNkJBQWUsQ0FBQyxjQUFjLENBQUMsaUNBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sK0JBQStCLEdBQUcsd0JBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0seUJBQXlCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FDeEQsK0JBQStCLEVBQy9CLElBQUksRUFDSixjQUFjLENBQUMsY0FBYyxDQUM5QixDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQ3JDLEtBQUssRUFDTCxLQUFLLEVBQ0wsK0JBQStCLEVBQy9CLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDekMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNoRCxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FDdkMsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLHNCQUE2RCxFQUM3RCxxQkFBNkIsRUFDN0IsMEJBQWtDLEVBQ2xDLDRCQUFvQztRQUVwQyxNQUFNLElBQUksR0FBRztZQUNYLFVBQVUsRUFBRTtnQkFDVixNQUFNLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtnQkFDckMsRUFBRSxFQUFFLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzdCLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFO2dCQUM3QixXQUFXLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxPQUFPO29CQUNuRCxPQUFPLEVBQUUsc0JBQXNCLENBQUMsV0FBVyxDQUFDLE9BQU87aUJBQ3BEO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxjQUFjLEVBQUUscUJBQXFCO2lCQUN0QzthQUNGO1lBQ0QscUJBQXFCLEVBQUU7Z0JBQ3JCLFNBQVMsRUFBRTtvQkFDVCxjQUFjLEVBQUUsMEJBQTBCO2lCQUMzQzthQUNGO1lBQ0QsYUFBYSxFQUFFO2dCQUNiLFNBQVMsRUFBRTtvQkFDVCxjQUFjLEVBQUUsNEJBQTRCO2lCQUM3QzthQUNGO1NBQ0YsQ0FBQztRQUNGLE1BQU0sS0FBSzthQUNSLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsS0FBSyw0QkFBNEIsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ1YsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxjQUFzQjtRQUMzRCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsOEJBQThCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxhQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsT0FBTyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBam9DRCxnQ0Fpb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IEtleSwgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCAqIGFzIG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBlYyB9IGZyb20gJ2VsbGlwdGljJztcblxuaW1wb3J0IHsgRWNkc2FQYWlsbGllclByb29mLCBFY2RzYVJhbmdlUHJvb2YsIEVjZHNhVHlwZXMsIGhleFRvQmlnSW50LCBtaW5Nb2R1bHVzQml0TGVuZ3RoIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IEVDRFNBLCBFY2RzYSB9IGZyb20gJy4uLy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgQWRkS2V5Y2hhaW5PcHRpb25zLCBBcGlLZXlTaGFyZSwgQ3JlYXRlQmFja3VwT3B0aW9ucywgS2V5Y2hhaW4sIEtleVR5cGUgfSBmcm9tICcuLi8uLi8uLi9rZXljaGFpbic7XG5pbXBvcnQgRUNEU0FNZXRob2RzLCB7IEVDRFNBTWV0aG9kVHlwZXMgfSBmcm9tICcuLi8uLi8uLi90c3MvZWNkc2EnO1xuaW1wb3J0IHsgSUJhc2VDb2luLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IGJhc2VUU1NVdGlscyBmcm9tICcuLi9iYXNlVFNTVXRpbHMnO1xuaW1wb3J0IHtcbiAgQml0R29Qcm9vZlNpZ25hdHVyZXMsXG4gIENyZWF0ZUVjZHNhQml0R29LZXljaGFpblBhcmFtcyxcbiAgQ3JlYXRlRWNkc2FLZXljaGFpblBhcmFtcyxcbiAgRGVjcnlwdGFibGVOU2hhcmUsXG4gIEdldEJpdEdvQ2hhbGxlbmdlc0FwaSxcbiAgS2V5U2hhcmUsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQmFja3VwR3BnS2V5LFxuICBCYWNrdXBLZXlTaGFyZSxcbiAgQml0Z29IZWxkQmFja3VwS2V5U2hhcmUsXG4gIFJlcXVlc3RUeXBlLFxuICBUU1NQYXJhbXMsXG4gIFRTU1BhcmFtc0Zvck1lc3NhZ2UsXG4gIFR4UmVxdWVzdCxcbn0gZnJvbSAnLi4vYmFzZVR5cGVzJztcbmltcG9ydCB7IGdldFR4UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3Rzcyc7XG5pbXBvcnQgeyBBU2hhcmUsIERTaGFyZSwgRW5jcnlwdGVkTlNoYXJlLCBTZW5kU2hhcmVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVNoYXJlUHJvb2YsIGdlbmVyYXRlR1BHS2V5UGFpciwgZ2V0Qml0Z29HcGdQdWJLZXksIGdldFRydXN0R3BnUHViS2V5IH0gZnJvbSAnLi4vLi4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBCYWNrdXBQcm92aWRlciwgSVdhbGxldCB9IGZyb20gJy4uLy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBidWlsZE5TaGFyZUZyb21BUElLZXlTaGFyZSwgZ2V0UGFydGljaXBhbnRGcm9tSW5kZXgsIHZlcmlmeVdhbGxldFNpZ25hdHVyZSB9IGZyb20gJy4uLy4uLy4uL3Rzcy9lY2RzYS9lY2RzYSc7XG5pbXBvcnQgeyBzaWduTWVzc2FnZVdpdGhEZXJpdmVkRWNkaEtleSwgdmVyaWZ5RWNkaFNpZ25hdHVyZSB9IGZyb20gJy4uLy4uLy4uL2VjZGgnO1xuaW1wb3J0IHsgZ2V0VHhSZXF1ZXN0Q2hhbGxlbmdlIH0gZnJvbSAnLi4vLi4vLi4vdHNzL2NvbW1vbic7XG5pbXBvcnQgeyBTaGFyZUtleVBvc2l0aW9uLCBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3Rzcy90eXBlcyc7XG5cbmNvbnN0IGVuY3J5cHROU2hhcmUgPSBFQ0RTQU1ldGhvZHMuZW5jcnlwdE5TaGFyZTtcblxuLyoqIEBpbmhlcml0ZG9jICovXG5leHBvcnQgY2xhc3MgRWNkc2FVdGlscyBleHRlbmRzIGJhc2VUU1NVdGlsczxLZXlTaGFyZT4ge1xuICAvLyBXZSBkbyBub3QgaGF2ZSBmdWxsIHN1cHBvcnQgZm9yIDMtcGFydHkgdmVyaWZpY2F0aW9uICh3LyBleHRlcm5hbCBzb3VyY2UpIG9mIGtleSBzaGFyZXMgYW5kIHNpZ25hdHVyZSBzaGFyZXMuIFRoZXJlIGlzIG5vIDNyZCBwYXJ0eSBrZXkgc2VydmljZSBzdXBwb3J0IHdpdGggdGhpcyByZWxlYXNlLlxuICBwcml2YXRlIGJpdGdvUHVibGljR3BnS2V5OiBvcGVucGdwLktleSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luLCB3YWxsZXQpO1xuICAgIHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkoYml0Z28pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRCaXRnb0dwZ1B1YktleShiaXRnbykge1xuICAgIHRoaXMuYml0Z29QdWJsaWNHcGdLZXkgPSBhd2FpdCBnZXRCaXRnb0dwZ1B1YktleShiaXRnbyk7XG4gIH1cblxuICBhc3luYyBnZXRCaXRnb1B1YmxpY0dwZ0tleSgpOiBQcm9taXNlPG9wZW5wZ3AuS2V5PiB7XG4gICAgaWYgKCF0aGlzLmJpdGdvUHVibGljR3BnS2V5KSB7XG4gICAgICAvLyByZXRyeSBnZXR0aW5nIGJpdGdvJ3MgZ3BnIGtleVxuICAgICAgYXdhaXQgdGhpcy5zZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICAgIGlmICghdGhpcy5iaXRnb1B1YmxpY0dwZ0tleSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZ2V0IEJpdGdvJ3MgZ3BnIGtleVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iaXRnb1B1YmxpY0dwZ0tleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjb21tb24gcHVibGljIGtleSBmcm9tIGNvbW1vbktleWNoYWluLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gY29tbW9uS2V5Y2hhaW4gY29tbW9uIGtleSBjaGFpbiBiZXR3ZWVuIG4gcGFydGllc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBlbmNvZGVkIHB1YmxpYyBrZXlcbiAgICovXG4gIHN0YXRpYyBnZXRQdWJsaWNLZXlGcm9tQ29tbW9uS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGNvbW1vbktleWNoYWluLmxlbmd0aCAhPT0gMTMwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tbW9uS2V5Y2hhaW4gbGVuZ3RoLCBleHBlY3RlZCAxMzAsIGdvdCAke2NvbW1vbktleWNoYWluLmxlbmd0aH1gKTtcbiAgICB9XG4gICAgY29uc3QgY29tbW9uUHViSGV4U3RyID0gY29tbW9uS2V5Y2hhaW4uc2xpY2UoMCwgNjYpO1xuICAgIHJldHVybiBjb21tb25QdWJIZXhTdHI7XG4gIH1cblxuICBhc3luYyBmaW5hbGl6ZUJpdGdvSGVsZEJhY2t1cEtleVNoYXJlKFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgY29tbW9uS2V5Y2hhaW46IHN0cmluZyxcbiAgICB1c2VyS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgdGhpcmRQYXJ0eUJhY2t1cFB1YmxpY0dwZ0tleTogS2V5XG4gICk6IFByb21pc2U8Qml0Z29IZWxkQmFja3VwS2V5U2hhcmU+IHtcbiAgICBjb25zdCBlbmNyeXB0ZWRVc2VyVG9CYWNrdXBTaGFyZSA9IGF3YWl0IGVuY3J5cHROU2hhcmUoXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICAyLFxuICAgICAgdGhpcmRQYXJ0eUJhY2t1cFB1YmxpY0dwZ0tleS5hcm1vcigpLFxuICAgICAgdXNlckdwZ0tleVxuICAgICk7XG4gICAgY29uc3QgYml0Z29Ub0JhY2t1cEtleVNoYXJlID0gYml0Z29LZXljaGFpbi5rZXlTaGFyZXM/LmZpbmQoXG4gICAgICAoa2V5U2hhcmUpID0+IGtleVNoYXJlLmZyb20gPT09ICdiaXRnbycgJiYga2V5U2hhcmUudG8gPT09ICdiYWNrdXAnXG4gICAgKTtcbiAgICBjb25zdCB1c2VyUHVibGljU2hhcmUgPSBCdWZmZXIuY29uY2F0KFtcbiAgICAgIEJ1ZmZlci5mcm9tKHVzZXJLZXlTaGFyZS5uU2hhcmVzWzJdLnksICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKHVzZXJLZXlTaGFyZS5uU2hhcmVzWzJdLmNoYWluY29kZSwgJ2hleCcpLFxuICAgIF0pLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhc3NlcnQoYml0Z29Ub0JhY2t1cEtleVNoYXJlKTtcbiAgICBjb25zdCBrZXlSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wdXQodGhpcy5iYXNlQ29pbi51cmwoYC9rcnMvYmFja3Vwa2V5cy8ke2tleUlkfWApKVxuICAgICAgLnNlbmQoe1xuICAgICAgICBjb21tb25LZXljaGFpbixcbiAgICAgICAga2V5U2hhcmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZnJvbTogJ3VzZXInLFxuICAgICAgICAgICAgdG86ICdiYWNrdXAnLFxuICAgICAgICAgICAgcHVibGljU2hhcmU6IHVzZXJQdWJsaWNTaGFyZSxcbiAgICAgICAgICAgIHByaXZhdGVTaGFyZTogZW5jcnlwdGVkVXNlclRvQmFja3VwU2hhcmUuZW5jcnlwdGVkUHJpdmF0ZVNoYXJlLFxuICAgICAgICAgICAgcHJpdmF0ZVNoYXJlUHJvb2Y6IGVuY3J5cHRlZFVzZXJUb0JhY2t1cFNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICAgICAgdnNzUHJvb2Y6IGVuY3J5cHRlZFVzZXJUb0JhY2t1cFNoYXJlLnZzc1Byb29mLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYml0Z29Ub0JhY2t1cEtleVNoYXJlLFxuICAgICAgICBdLFxuICAgICAgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBpZiAoIWtleVJlc3BvbnNlIHx8ICFrZXlSZXNwb25zZS5jb21tb25LZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgYmFja3VwIGtleSB2ZXJpZmljYXRpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5UmVzcG9uc2UuaWQsXG4gICAgICBrZXlTaGFyZXM6IGtleVJlc3BvbnNlLmtleVNoYXJlcyxcbiAgICAgIGNvbW1vbktleWNoYWluOiBrZXlSZXNwb25zZS5jb21tb25LZXljaGFpbixcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYmFja3VwUHJvdmlkZXI/OiBCYWNrdXBQcm92aWRlcjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIGNvbnN0IE1QQyA9IG5ldyBFY2RzYSgpO1xuICAgIGNvbnN0IG0gPSAyO1xuICAgIGNvbnN0IG4gPSAzO1xuXG4gICAgY29uc3QgdXNlcktleVNoYXJlID0gYXdhaXQgTVBDLmtleVNoYXJlKDEsIG0sIG4pO1xuICAgIGNvbnN0IHVzZXJHcGdLZXkgPSBhd2FpdCBnZW5lcmF0ZUdQR0tleVBhaXIoJ3NlY3AyNTZrMScpO1xuICAgIGNvbnN0IGlzVGhpcmRQYXJ0eUJhY2t1cCA9IHRoaXMuaXNWYWxpZFRoaXJkUGFydHlCYWNrdXBQcm92aWRlcihwYXJhbXMuYmFja3VwUHJvdmlkZXIpO1xuICAgIGNvbnN0IGJhY2t1cEtleVNoYXJlID0gYXdhaXQgdGhpcy5jcmVhdGVCYWNrdXBLZXlTaGFyZXMoaXNUaGlyZFBhcnR5QmFja3VwLCB1c2VyR3BnS2V5LCBwYXJhbXMuZW50ZXJwcmlzZSk7XG4gICAgY29uc3QgYmFja3VwR3BnS2V5ID0gYXdhaXQgdGhpcy5nZXRCYWNrdXBHcGdQdWJLZXkoaXNUaGlyZFBhcnR5QmFja3VwKTtcblxuICAgIC8vIEdldCB0aGUgQml0R28gcHVibGljIGtleSBiYXNlZCBvbiB1c2VyL2VudGVycHJpc2UgZmVhdHVyZSBmbGFnc1xuICAgIC8vIElmIGl0IGRvZXNuJ3Qgd29yaywgdXNlIHRoZSBkZWZhdWx0IHB1YmxpYyBrZXkgZnJvbSB0aGUgY29uc3RhbnRzXG4gICAgY29uc3QgYml0Z29QdWJsaWNHcGdLZXkgPVxuICAgICAgKGF3YWl0IHRoaXMuZ2V0Qml0Z29HcGdQdWJrZXlCYXNlZE9uRmVhdHVyZUZsYWdzKHBhcmFtcy5lbnRlcnByaXNlKSkgPz8gdGhpcy5iaXRnb1B1YmxpY0dwZ0tleTtcblxuICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCB0aGlzLmNyZWF0ZUJpdGdvS2V5Y2hhaW4oe1xuICAgICAgdXNlckdwZ0tleSxcbiAgICAgIGJhY2t1cEdwZ0tleSxcbiAgICAgIGJpdGdvUHVibGljR3BnS2V5LFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUsXG4gICAgICBlbnRlcnByaXNlOiBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgIGlzVGhpcmRQYXJ0eUJhY2t1cCxcbiAgICB9KTtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW5Qcm9taXNlID0gdGhpcy5jcmVhdGVVc2VyS2V5Y2hhaW4oe1xuICAgICAgdXNlckdwZ0tleSxcbiAgICAgIGJhY2t1cEdwZ0tleSxcbiAgICAgIGJpdGdvUHVibGljR3BnS2V5LFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgYmFja3VwS2V5U2hhcmUsXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgcGFzc3BocmFzZTogcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6IHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICBpc1RoaXJkUGFydHlCYWNrdXAsXG4gICAgfSk7XG4gICAgY29uc3QgYmFja3VwS2V5Y2hhaW5Qcm9taXNlID0gdGhpcy5jcmVhdGVCYWNrdXBLZXljaGFpbih7XG4gICAgICB1c2VyR3BnS2V5LFxuICAgICAgYmFja3VwR3BnS2V5LFxuICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICB1c2VyS2V5U2hhcmUsXG4gICAgICBiYWNrdXBLZXlTaGFyZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgICBwYXNzcGhyYXNlOiBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIGJhY2t1cFByb3ZpZGVyOiBwYXJhbXMuYmFja3VwUHJvdmlkZXIsXG4gICAgfSk7XG5cbiAgICBjb25zdCBbdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbdXNlcktleWNoYWluUHJvbWlzZSwgYmFja3VwS2V5Y2hhaW5Qcm9taXNlXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdXNlcktleWNoYWluLFxuICAgICAgYmFja3VwS2V5Y2hhaW4sXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSWYgYSB0aGlyZCBwYXJ0eSBiYWNrdXAgaXMgcmVxdWVzdGVkLCBpdCB3aWxsIGNyZWF0ZSBiYWNrdXAgc2hhcmVzIGZyb21cbiAgICogYSB0aGlyZCBwYXJ0eSAoQml0R28gYXMgb2Ygbm93KSwgb3RoZXJ3aXNlIHRoZSBrZXkgc2hhcmVzIHdpbGwgYmUgY2xpZW50IGdlbmVyYXRlZFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlQmFja3VwS2V5U2hhcmVzKFxuICAgIGlzVGhpcmRQYXJ0eUJhY2t1cCA9IGZhbHNlLFxuICAgIHVzZXJHcGdQdWJLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgZW50ZXJwcmlzZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8QmFja3VwS2V5U2hhcmU+IHtcbiAgICBsZXQgYmFja3VwS2V5U2hhcmU6IEJhY2t1cEtleVNoYXJlO1xuICAgIGlmIChpc1RoaXJkUGFydHlCYWNrdXApIHtcbiAgICAgIGNvbnN0IGJpdGdvSGVsZEJhY2t1cEtleVNoYXJlcyA9IGF3YWl0IHRoaXMuY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUodXNlckdwZ1B1YktleSwgZW50ZXJwcmlzZSk7XG4gICAgICBiYWNrdXBLZXlTaGFyZSA9IHtcbiAgICAgICAgYml0R29IZWxkS2V5U2hhcmVzOiBiaXRnb0hlbGRCYWNrdXBLZXlTaGFyZXMsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBNUEMgPSBuZXcgRWNkc2EoKTtcbiAgICAgIGNvbnN0IG0gPSAyO1xuICAgICAgY29uc3QgbiA9IDM7XG4gICAgICBiYWNrdXBLZXlTaGFyZSA9IHtcbiAgICAgICAgdXNlckhlbGRLZXlTaGFyZTogYXdhaXQgTVBDLmtleVNoYXJlKDIsIG0sIG4pLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGJhY2t1cEtleVNoYXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYmFja3VwIHB1YiBncGcga2V5IHN0cmluZ1xuICAgKiBpZiBhIHRoaXJkIHBhcnR5IHByb3ZpZGVkIHRoZW4gZ2V0IGZyb20gdHJ1c3RcbiAgICogQHBhcmFtIGlzVGhpcmRQYXJ0eUJhY2t1cFxuICAgKi9cbiAgYXN5bmMgZ2V0QmFja3VwR3BnUHViS2V5KGlzVGhpcmRQYXJ0eUJhY2t1cCA9IGZhbHNlKTogUHJvbWlzZTxCYWNrdXBHcGdLZXk+IHtcbiAgICByZXR1cm4gaXNUaGlyZFBhcnR5QmFja3VwID8gZ2V0VHJ1c3RHcGdQdWJLZXkodGhpcy5iaXRnbykgOiBnZW5lcmF0ZUdQR0tleVBhaXIoJ3NlY3AyNTZrMScpO1xuICB9XG5cbiAgY3JlYXRlVXNlcktleWNoYWluKHtcbiAgICB1c2VyR3BnS2V5LFxuICAgIGJhY2t1cEdwZ0tleSxcbiAgICBiaXRnb1B1YmxpY0dwZ0tleSxcbiAgICB1c2VyS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbixcbiAgICBwYXNzcGhyYXNlLFxuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICBpc1RoaXJkUGFydHlCYWNrdXAgPSBmYWxzZSxcbiAgfTogQ3JlYXRlRWNkc2FLZXljaGFpblBhcmFtcyk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBpZiAoIXBhc3NwaHJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYSB3YWxsZXQgcGFzc3BocmFzZScpO1xuICAgIH1cbiAgICBpZiAoaXNUaGlyZFBhcnR5QmFja3VwICYmIGJhY2t1cEtleVNoYXJlLmJpdEdvSGVsZEtleVNoYXJlcz8ua2V5U2hhcmVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVVc2VyS2V5Y2hhaW5Gcm9tVGhpcmRQYXJ0eUJhY2t1cChcbiAgICAgICAgdXNlckdwZ0tleSxcbiAgICAgICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgICAgIGJhY2t1cEdwZ0tleSBhcyBLZXksXG4gICAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgICAgYmFja3VwS2V5U2hhcmUuYml0R29IZWxkS2V5U2hhcmVzLmtleVNoYXJlcyxcbiAgICAgICAgYml0Z29LZXljaGFpbixcbiAgICAgICAgcGFzc3BocmFzZSxcbiAgICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgICApO1xuICAgIH1cbiAgICBhc3NlcnQoYmFja3VwS2V5U2hhcmUudXNlckhlbGRLZXlTaGFyZSk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGFydGljaXBhbnRLZXljaGFpbihcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICBiYWNrdXBHcGdLZXkgYXMgU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICAgIGJpdGdvUHVibGljR3BnS2V5LFxuICAgICAgMSxcbiAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgIGJhY2t1cEtleVNoYXJlLnVzZXJIZWxkS2V5U2hhcmUsXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgcGFzc3BocmFzZSxcbiAgICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZVxuICAgICk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVCYWNrdXBLZXljaGFpbih7XG4gICAgdXNlckdwZ0tleSxcbiAgICB1c2VyS2V5U2hhcmUsXG4gICAgYmFja3VwR3BnS2V5LFxuICAgIGJhY2t1cEtleVNoYXJlLFxuICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgcGFzc3BocmFzZSxcbiAgICBiYWNrdXBQcm92aWRlcixcbiAgfTogQ3JlYXRlRWNkc2FLZXljaGFpblBhcmFtcyk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkVGhpcmRQYXJ0eUJhY2t1cFByb3ZpZGVyKGJhY2t1cFByb3ZpZGVyKSAmJiBiYWNrdXBLZXlTaGFyZS5iaXRHb0hlbGRLZXlTaGFyZXM/LmtleVNoYXJlcykge1xuICAgICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pO1xuICAgICAgY29uc3QgZmluYWxpemVkQmFja3VwS2V5U2hhcmUgPSBhd2FpdCB0aGlzLmZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgICAgIGJhY2t1cEtleVNoYXJlLmJpdEdvSGVsZEtleVNoYXJlcy5pZCxcbiAgICAgICAgYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbixcbiAgICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgICB1c2VyR3BnS2V5LFxuICAgICAgICBiYWNrdXBHcGdLZXkgYXMgS2V5XG4gICAgICApO1xuICAgICAgaWYgKGZpbmFsaXplZEJhY2t1cEtleVNoYXJlLmNvbW1vbktleWNoYWluICE9PSBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBiYWNrdXAga2V5Y2hhaW4gLSBjb21tb25LZXljaGFpbnMgZG8gbm90IG1hdGNoJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBiYWNrdXBLZXlQYXJhbXM6IENyZWF0ZUJhY2t1cE9wdGlvbnMgPSB7XG4gICAgICAgIHNvdXJjZTogJ2JhY2t1cCcsXG4gICAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgICBjb21tb25LZXljaGFpbjogZmluYWxpemVkQmFja3VwS2V5U2hhcmUuY29tbW9uS2V5Y2hhaW4sXG4gICAgICAgIHByb3ZpZGVyOiBiYWNrdXBQcm92aWRlciA/PyAnQml0R29UcnVzdEFzS3JzJyxcbiAgICAgIH07XG4gICAgICBjb25zdCBiYWNrdXBLZXljaGFpbiA9IGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuY3JlYXRlQmFja3VwKGJhY2t1cEtleVBhcmFtcyk7XG4gICAgICBiYWNrdXBLZXljaGFpbi5rZXlTaGFyZXMgPSBmaW5hbGl6ZWRCYWNrdXBLZXlTaGFyZS5rZXlTaGFyZXM7XG4gICAgICByZXR1cm4gYmFja3VwS2V5Y2hhaW47XG4gICAgfVxuICAgIGFzc2VydChiYWNrdXBLZXlTaGFyZS51c2VySGVsZEtleVNoYXJlKTtcbiAgICBhc3NlcnQocGFzc3BocmFzZSk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGFydGljaXBhbnRLZXljaGFpbihcbiAgICAgIHVzZXJHcGdLZXksXG4gICAgICBiYWNrdXBHcGdLZXkgYXMgU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICAgIGJpdGdvUHVibGljR3BnS2V5LFxuICAgICAgMixcbiAgICAgIHVzZXJLZXlTaGFyZSxcbiAgICAgIGJhY2t1cEtleVNoYXJlLnVzZXJIZWxkS2V5U2hhcmUsXG4gICAgICBiaXRnb0tleWNoYWluLFxuICAgICAgcGFzc3BocmFzZVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYXN5bmMgY3JlYXRlQml0Z29LZXljaGFpbih7XG4gICAgdXNlckdwZ0tleSxcbiAgICBiYWNrdXBHcGdLZXksXG4gICAgdXNlcktleVNoYXJlLFxuICAgIGJhY2t1cEtleVNoYXJlLFxuICAgIGVudGVycHJpc2UsXG4gICAgYml0Z29QdWJsaWNHcGdLZXksXG4gICAgaXNUaGlyZFBhcnR5QmFja3VwID0gZmFsc2UsXG4gIH06IENyZWF0ZUVjZHNhQml0R29LZXljaGFpblBhcmFtcyk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCByZWNpcGllbnRJbmRleCA9IDM7XG4gICAgY29uc3QgdXNlclRvQml0Z29TaGFyZSA9IGF3YWl0IGVuY3J5cHROU2hhcmUodXNlcktleVNoYXJlLCByZWNpcGllbnRJbmRleCwgYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKSwgdXNlckdwZ0tleSk7XG5cbiAgICBjb25zdCBiYWNrdXBUb0JpdGdvU2hhcmUgPSBhd2FpdCB0aGlzLmdldEJhY2t1cEVuY3J5cHRlZE5TaGFyZShcbiAgICAgIGJhY2t1cEtleVNoYXJlLFxuICAgICAgcmVjaXBpZW50SW5kZXgsXG4gICAgICBiaXRnb1B1YmxpY0dwZ0tleS5hcm1vcigpLFxuICAgICAgYmFja3VwR3BnS2V5IGFzIFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgICBpc1RoaXJkUGFydHlCYWNrdXBcbiAgICApO1xuXG4gICAgY29uc3QgY3JlYXRlQml0R29NUENQYXJhbXM6IEFkZEtleWNoYWluT3B0aW9ucyA9IHtcbiAgICAgIGtleVR5cGU6ICd0c3MnIGFzIEtleVR5cGUsXG4gICAgICBzb3VyY2U6ICdiaXRnbycsXG4gICAgICBrZXlTaGFyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICd1c2VyJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogdXNlclRvQml0Z29TaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IHVzZXJUb0JpdGdvU2hhcmUuZW5jcnlwdGVkUHJpdmF0ZVNoYXJlLFxuICAgICAgICAgIG46IHVzZXJUb0JpdGdvU2hhcmUubixcbiAgICAgICAgICB2c3NQcm9vZjogdXNlclRvQml0Z29TaGFyZS52c3NQcm9vZixcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogdXNlclRvQml0Z29TaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICdiYWNrdXAnLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiBiYWNrdXBUb0JpdGdvU2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBiYWNrdXBUb0JpdGdvU2hhcmUuZW5jcnlwdGVkUHJpdmF0ZVNoYXJlLFxuICAgICAgICAgIG46IGJhY2t1cFRvQml0Z29TaGFyZS5uLFxuICAgICAgICAgIHZzc1Byb29mOiBiYWNrdXBUb0JpdGdvU2hhcmUudnNzUHJvb2YsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlUHJvb2Y6IGJhY2t1cFRvQml0Z29TaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB1c2VyR1BHUHVibGljS2V5OiB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIGJhY2t1cEdQR1B1YmxpY0tleTogaXNUaGlyZFBhcnR5QmFja3VwXG4gICAgICAgID8gKGJhY2t1cEdwZ0tleSBhcyBLZXkpLmFybW9yKClcbiAgICAgICAgOiAoYmFja3VwR3BnS2V5IGFzIFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4pLnB1YmxpY0tleSxcbiAgICAgIGVudGVycHJpc2U6IGVudGVycHJpc2UsXG4gICAgICBhbGdvVXNlZDogJ2VjZHNhJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuYWRkKGNyZWF0ZUJpdEdvTVBDUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGJ1aWxkcyB0aGUgcmVsZXZhbnQgYmFja3VwIGVuY3J5cHRlZE5TaGFyZSBiYXNlZCBvbiB3aGV0aGVyIHRoZVxuICAgKiBiYWNrdXAga2V5IGlzIHVzZXIgb3IgdGhpcmQgcGFydHkgZ2VuZXJhdGVkXG4gICAqIEBwYXJhbSBiYWNrdXBTaGFyZSBjYW4gZWl0aGVyIGhhdmUga2V5IHNoYXJlcyBmcm9tIHRoZSB1c2VyIG9yIHRoaXJkIHBhcnR5XG4gICAqIEBwYXJhbSByZWNpcGllbnRJbmRleCBpbmRleCBvZiB0aGUgcGFydHkgcmVjZWl2aW5nIHRoZSBiYWNrdXAgc2hhcmVzXG4gICAqIEBwYXJhbSByZWNpcGllbnRHcGdQdWJsaWNBcm1vciBncGcgYXJtb3Igb2YgdGhlIHBhcnR5IHJlY2VpdmluZyB0aGUgYmFja3VwIHNoYXJlc1xuICAgKiBAcGFyYW0gYmFja3VwR3BnS2V5IGJhY2t1cCBncGcga2V5XG4gICAqIEBwYXJhbSBpc1RoaXJkUGFydHlCYWNrdXAgd2hldGhlciB0aGUgYmFja3VwIGlzIGdlbmVyYXRlZCBieSB0aGlyZCBwYXJ0eVxuICAgKi9cbiAgYXN5bmMgZ2V0QmFja3VwRW5jcnlwdGVkTlNoYXJlKFxuICAgIGJhY2t1cFNoYXJlOiBCYWNrdXBLZXlTaGFyZSxcbiAgICByZWNpcGllbnRJbmRleDogbnVtYmVyLFxuICAgIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yOiBzdHJpbmcsXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGlzVGhpcmRQYXJ0eUJhY2t1cCA9IGZhbHNlXG4gICk6IFByb21pc2U8RW5jcnlwdGVkTlNoYXJlPiB7XG4gICAgbGV0IGJhY2t1cFRvUmVjaXBpZW50U2hhcmU6IEVuY3J5cHRlZE5TaGFyZTtcbiAgICBpZiAoaXNUaGlyZFBhcnR5QmFja3VwKSB7XG4gICAgICBpZiAoIWJhY2t1cFNoYXJlLmJpdEdvSGVsZEtleVNoYXJlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgdGhpcmQgcGFydHkgYmFja3VwIGtleSBzaGFyZXNgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJhY2t1cFRvUmVjaXBpZW50QXBpU2hhcmUgPSBiYWNrdXBTaGFyZS5iaXRHb0hlbGRLZXlTaGFyZXMua2V5U2hhcmVzLmZpbmQoXG4gICAgICAgIChrZXlTaGFyZSkgPT4ga2V5U2hhcmUuZnJvbSA9PT0gJ2JhY2t1cCcgJiYga2V5U2hhcmUudG8gPT09IGdldFBhcnRpY2lwYW50RnJvbUluZGV4KHJlY2lwaWVudEluZGV4KVxuICAgICAgKTtcbiAgICAgIGlmICghYmFja3VwVG9SZWNpcGllbnRBcGlTaGFyZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgYmFja3VwIHRvICR7Z2V0UGFydGljaXBhbnRGcm9tSW5kZXgocmVjaXBpZW50SW5kZXgpfSBrZXkgc2hhcmVgKTtcbiAgICAgIH1cbiAgICAgIC8vIFNpbmNlIGJhY2t1cCBpcyBmcm9tIGEgdGhpcmQgcGFydHksIGl0IGlzIGFscmVhZHkgZW5jcnlwdGVkXG4gICAgICBiYWNrdXBUb1JlY2lwaWVudFNoYXJlID0gYXdhaXQgYnVpbGROU2hhcmVGcm9tQVBJS2V5U2hhcmUoYmFja3VwVG9SZWNpcGllbnRBcGlTaGFyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydChiYWNrdXBTaGFyZS51c2VySGVsZEtleVNoYXJlKTtcbiAgICAgIGJhY2t1cFRvUmVjaXBpZW50U2hhcmUgPSBhd2FpdCBlbmNyeXB0TlNoYXJlKFxuICAgICAgICBiYWNrdXBTaGFyZS51c2VySGVsZEtleVNoYXJlLFxuICAgICAgICByZWNpcGllbnRJbmRleCxcbiAgICAgICAgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsXG4gICAgICAgIGJhY2t1cEdwZ0tleVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJhY2t1cFRvUmVjaXBpZW50U2hhcmU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyB1c2VzIHRoZSBiYWNrdXAga2V5IGZyb20gYSB0aGlyZCBwYXJ0eSAoYml0Z28gaW4gdGhpcyBjYXNlKVxuICAgKiB0byBjcmVhdGUgdGhlIHVzZXIga2V5Y2hhaW4gdmlhIFdQLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlVXNlcktleWNoYWluRnJvbVRoaXJkUGFydHlCYWNrdXAoXG4gICAgdXNlckdwZ0tleTogb3BlbnBncC5TZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJpdGdvUHVibGljR3BnS2V5OiBLZXksXG4gICAgdGhpcmRQYXJ0eUJhY2t1cFB1YmxpY0dwZ0tleTogS2V5LFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgdGhpcmRQYXJ0eWJhY2t1cEtleVNoYXJlczogQXBpS2V5U2hhcmVbXSxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmcsXG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCBiaXRnb0tleVNoYXJlcyA9IGJpdGdvS2V5Y2hhaW4ua2V5U2hhcmVzO1xuICAgIGlmICghYml0Z29LZXlTaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRHbyBrZXkgc2hhcmVzJyk7XG4gICAgfVxuICAgIGlmICghYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGNvbW1vbiBrZXkgY2hhaW46ICR7Yml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRHb1RvVXNlclNoYXJlID0gYml0Z29LZXlTaGFyZXMuZmluZCgoa2V5U2hhcmUpID0+IGtleVNoYXJlLmZyb20gPT09ICdiaXRnbycgJiYga2V5U2hhcmUudG8gPT09ICd1c2VyJyk7XG4gICAgaWYgKCFiaXRHb1RvVXNlclNoYXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gdG8gVXNlciBrZXkgc2hhcmUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYWNrdXBUb1VzZXJTaGFyZSA9IHRoaXJkUGFydHliYWNrdXBLZXlTaGFyZXMuZmluZChcbiAgICAgIChrZXlTaGFyZSkgPT4ga2V5U2hhcmUuZnJvbSA9PT0gJ2JhY2t1cCcgJiYga2V5U2hhcmUudG8gPT09ICd1c2VyJ1xuICAgICk7XG4gICAgaWYgKCFiYWNrdXBUb1VzZXJTaGFyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJhY2t1cCB0byBVc2VyIGtleSBzaGFyZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGJhY2t1cFRvVXNlck5TaGFyZSA9IGF3YWl0IGJ1aWxkTlNoYXJlRnJvbUFQSUtleVNoYXJlKGJhY2t1cFRvVXNlclNoYXJlKTtcbiAgICBjb25zdCBiaXRHb1RvVXNlck5TaGFyZSA9IGF3YWl0IGJ1aWxkTlNoYXJlRnJvbUFQSUtleVNoYXJlKGJpdEdvVG9Vc2VyU2hhcmUpO1xuICAgIGNvbnN0IGVuY3J5cHRlZE5TaGFyZXM6IERlY3J5cHRhYmxlTlNoYXJlW10gPSBbXG4gICAgICB7XG4gICAgICAgIG5TaGFyZTogYmFja3VwVG9Vc2VyTlNoYXJlLFxuICAgICAgICByZWNpcGllbnRQcml2YXRlQXJtb3I6IHVzZXJHcGdLZXkucHJpdmF0ZUtleSxcbiAgICAgICAgc2VuZGVyUHVibGljQXJtb3I6IHRoaXJkUGFydHlCYWNrdXBQdWJsaWNHcGdLZXkuYXJtb3IoKSxcbiAgICAgICAgaXNiczU4RW5jb2RlZDogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuU2hhcmU6IGJpdEdvVG9Vc2VyTlNoYXJlLFxuICAgICAgICByZWNpcGllbnRQcml2YXRlQXJtb3I6IHVzZXJHcGdLZXkucHJpdmF0ZUtleSxcbiAgICAgICAgc2VuZGVyUHVibGljQXJtb3I6IGJpdGdvUHVibGljR3BnS2V5LmFybW9yKCksXG4gICAgICAgIGlzYnM1OEVuY29kZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgdXNlckNvbWJpbmVkS2V5ID0gYXdhaXQgRUNEU0FNZXRob2RzLmNyZWF0ZUNvbWJpbmVkS2V5KFxuICAgICAgdXNlcktleVNoYXJlLFxuICAgICAgZW5jcnlwdGVkTlNoYXJlcyxcbiAgICAgIGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW5cbiAgICApO1xuICAgIGlmICh1c2VyQ29tYmluZWRLZXkuY29tbW9uS2V5Y2hhaW4gIT09IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB1c2VyIGtleWNoYWluIC0gY29tbW9uS2V5Y2hhaW5zIGRvIG5vdCBtYXRjaC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcnYgPSBKU09OLnN0cmluZ2lmeSh1c2VyQ29tYmluZWRLZXkuc2lnbmluZ01hdGVyaWFsKTtcbiAgICBjb25zdCB1c2VyS2V5Y2hhaW5QYXJhbXMgPSB7XG4gICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnIGFzIEtleVR5cGUsXG4gICAgICBjb21tb25LZXljaGFpbjogdXNlckNvbWJpbmVkS2V5LmNvbW1vbktleWNoYWluLFxuICAgICAgcHJ2OiBwcnYsXG4gICAgICBlbmNyeXB0ZWRQcnY6IHRoaXMuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgIGlucHV0OiBwcnYsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzcGhyYXNlLFxuICAgICAgfSksXG4gICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgfTtcblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCk7XG4gICAgcmV0dXJuIGF3YWl0IGtleWNoYWlucy5hZGQodXNlcktleWNoYWluUGFyYW1zKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBjcmVhdGVQYXJ0aWNpcGFudEtleWNoYWluKFxuICAgIHVzZXJHcGdLZXk6IG9wZW5wZ3AuU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB1c2VyTG9jYWxCYWNrdXBHcGdLZXk6IG9wZW5wZ3AuU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBiaXRnb1B1YmxpY0dwZ0tleTogS2V5LFxuICAgIHJlY2lwaWVudEluZGV4OiBudW1iZXIsXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiYWNrdXBLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgcGFzc3BocmFzZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXlTaGFyZXMgPSBiaXRnb0tleWNoYWluLmtleVNoYXJlcztcbiAgICBpZiAoIWJpdGdvS2V5U2hhcmVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28ga2V5IHNoYXJlcycpO1xuICAgIH1cbiAgICBpZiAoIWJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBjb21tb24ga2V5IGNoYWluOiAke2JpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW59YCk7XG4gICAgfVxuXG4gICAgbGV0IHJlY2lwaWVudDogc3RyaW5nO1xuICAgIGxldCBrZXlTaGFyZTogS2V5U2hhcmU7XG4gICAgbGV0IG90aGVyU2hhcmU6IEtleVNoYXJlO1xuICAgIGxldCByZWNpcGllbnRHcGdLZXk6IG9wZW5wZ3AuU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPjtcbiAgICBsZXQgc2VuZGVyR3BnS2V5OiBvcGVucGdwLlNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gICAgaWYgKHJlY2lwaWVudEluZGV4ID09PSAxKSB7XG4gICAgICBrZXlTaGFyZSA9IHVzZXJLZXlTaGFyZTtcbiAgICAgIG90aGVyU2hhcmUgPSBiYWNrdXBLZXlTaGFyZTtcbiAgICAgIHJlY2lwaWVudCA9ICd1c2VyJztcbiAgICAgIHJlY2lwaWVudEdwZ0tleSA9IHVzZXJHcGdLZXk7XG4gICAgICBzZW5kZXJHcGdLZXkgPSB1c2VyTG9jYWxCYWNrdXBHcGdLZXk7XG4gICAgfSBlbHNlIGlmIChyZWNpcGllbnRJbmRleCA9PT0gMikge1xuICAgICAga2V5U2hhcmUgPSBiYWNrdXBLZXlTaGFyZTtcbiAgICAgIG90aGVyU2hhcmUgPSB1c2VyS2V5U2hhcmU7XG4gICAgICByZWNpcGllbnQgPSAnYmFja3VwJztcbiAgICAgIHJlY2lwaWVudEdwZ0tleSA9IHVzZXJMb2NhbEJhY2t1cEdwZ0tleTtcbiAgICAgIHNlbmRlckdwZ0tleSA9IHVzZXJHcGdLZXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1c2VyIGluZGV4Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0R29Ub1JlY2lwaWVudFNoYXJlID0gYml0Z29LZXlTaGFyZXMuZmluZChcbiAgICAgIChrZXlTaGFyZSkgPT4ga2V5U2hhcmUuZnJvbSA9PT0gJ2JpdGdvJyAmJiBrZXlTaGFyZS50byA9PT0gcmVjaXBpZW50XG4gICAgKTtcbiAgICBpZiAoIWJpdEdvVG9SZWNpcGllbnRTaGFyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIEJpdEdvIHRvICR7cmVjaXBpZW50fSBrZXkgc2hhcmVgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRTaGFyZSA9IGF3YWl0IHRoaXMuZGVjcnlwdFByaXZhdGVTaGFyZShiaXRHb1RvUmVjaXBpZW50U2hhcmUucHJpdmF0ZVNoYXJlLCByZWNpcGllbnRHcGdLZXkpO1xuXG4gICAgYXdhaXQgdGhpcy52ZXJpZnlXYWxsZXRTaWduYXR1cmVzKFxuICAgICAgdXNlckdwZ0tleS5wdWJsaWNLZXksXG4gICAgICB1c2VyTG9jYWxCYWNrdXBHcGdLZXkucHVibGljS2V5LFxuICAgICAgYml0Z29LZXljaGFpbixcbiAgICAgIGRlY3J5cHRlZFNoYXJlLFxuICAgICAgcmVjaXBpZW50SW5kZXhcbiAgICApO1xuXG4gICAgY29uc3Qgc2VuZGVyVG9SZWNpcGllbnRTaGFyZSA9IGF3YWl0IGVuY3J5cHROU2hhcmUoXG4gICAgICBvdGhlclNoYXJlLFxuICAgICAgcmVjaXBpZW50SW5kZXgsXG4gICAgICByZWNpcGllbnRHcGdLZXkucHVibGljS2V5LFxuICAgICAgc2VuZGVyR3BnS2V5XG4gICAgKTtcbiAgICBjb25zdCBlbmNyeXB0ZWROU2hhcmVzOiBEZWNyeXB0YWJsZU5TaGFyZVtdID0gW1xuICAgICAge1xuICAgICAgICAvLyB1c2VyVG9CYWNrdXAgb3IgYmFja3VwVG9Vc2VyXG4gICAgICAgIG5TaGFyZTogc2VuZGVyVG9SZWNpcGllbnRTaGFyZSxcbiAgICAgICAgcmVjaXBpZW50UHJpdmF0ZUFybW9yOiByZWNpcGllbnRHcGdLZXkucHJpdmF0ZUtleSxcbiAgICAgICAgc2VuZGVyUHVibGljQXJtb3I6IHNlbmRlckdwZ0tleS5wdWJsaWNLZXksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBiaXRnb1RvUmVjaXBpZW50XG4gICAgICAgIG5TaGFyZToge1xuICAgICAgICAgIGk6IHJlY2lwaWVudEluZGV4LFxuICAgICAgICAgIGo6IDMsXG4gICAgICAgICAgcHVibGljU2hhcmU6IGJpdEdvVG9SZWNpcGllbnRTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBlbmNyeXB0ZWRQcml2YXRlU2hhcmU6IGJpdEdvVG9SZWNpcGllbnRTaGFyZS5wcml2YXRlU2hhcmUsXG4gICAgICAgICAgbjogYml0R29Ub1JlY2lwaWVudFNoYXJlLm4hLFxuICAgICAgICAgIHZzc1Byb29mOiBiaXRHb1RvUmVjaXBpZW50U2hhcmUudnNzUHJvb2YsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlUHJvb2Y6IGJpdEdvVG9SZWNpcGllbnRTaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgfSxcbiAgICAgICAgcmVjaXBpZW50UHJpdmF0ZUFybW9yOiByZWNpcGllbnRHcGdLZXkucHJpdmF0ZUtleSxcbiAgICAgICAgc2VuZGVyUHVibGljQXJtb3I6IGJpdGdvUHVibGljR3BnS2V5LmFybW9yKCksXG4gICAgICAgIGlzYnM1OEVuY29kZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgcmVjaXBpZW50Q29tYmluZWRLZXkgPSBhd2FpdCBFQ0RTQU1ldGhvZHMuY3JlYXRlQ29tYmluZWRLZXkoXG4gICAgICBrZXlTaGFyZSxcbiAgICAgIGVuY3J5cHRlZE5TaGFyZXMsXG4gICAgICBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluXG4gICAgKTtcblxuICAgIGNvbnN0IHBydiA9IEpTT04uc3RyaW5naWZ5KHJlY2lwaWVudENvbWJpbmVkS2V5LnNpZ25pbmdNYXRlcmlhbCk7XG4gICAgY29uc3QgcmVjaXBpZW50S2V5Y2hhaW5QYXJhbXMgPSB7XG4gICAgICBzb3VyY2U6IHJlY2lwaWVudCxcbiAgICAgIGtleVR5cGU6ICd0c3MnIGFzIEtleVR5cGUsXG4gICAgICBjb21tb25LZXljaGFpbjogYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbixcbiAgICAgIHBydjogcHJ2LFxuICAgICAgZW5jcnlwdGVkUHJ2OiB0aGlzLmJpdGdvLmVuY3J5cHQoe1xuICAgICAgICBpbnB1dDogcHJ2LFxuICAgICAgICBwYXNzd29yZDogcGFzc3BocmFzZSxcbiAgICAgIH0pLFxuICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgIH07XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIHJldHVybiByZWNpcGllbnRJbmRleCA9PT0gMVxuICAgICAgPyBhd2FpdCBrZXljaGFpbnMuYWRkKHJlY2lwaWVudEtleWNoYWluUGFyYW1zKVxuICAgICAgOiBhd2FpdCBrZXljaGFpbnMuY3JlYXRlQmFja3VwKHJlY2lwaWVudEtleWNoYWluUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHNpZ25pbmcga2V5LCB0eFJlcXVlc3RSZXNvbHZlZCBhbmQgdHhSZXF1ZXN0SWRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBUeFJlcXVlc3R9IHBhcmFtcy50eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IG9iamVjdCBvciBpZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIGRlY3J5cHRlZCBwcml2YXRlIGtleVxuICAgKiBAcGFyYW0geyBzdHJpbmd9IHBhcmFtcy5yZXFJZCAtIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn1cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3RCYXNlKHBhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZSwgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCBwZW5kaW5nRWNkc2FUc3NJbml0aWFsaXphdGlvbiA9IHRoaXMud2FsbGV0LmNvaW5TcGVjaWZpYygpPy5wZW5kaW5nRWNkc2FUc3NJbml0aWFsaXphdGlvbjtcbiAgICBpZiAocGVuZGluZ0VjZHNhVHNzSW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1dhbGxldCBpcyBub3QgcmVhZHkgZm9yIFRTUyBFQ0RTQSBzaWduaW5nLiBQbGVhc2UgY29udGFjdCB5b3VyIGVudGVycHJpc2UgYWRtaW4gdG8gZmluaXNoIHRoZSBlbnRlcnByaXNlIFRTUyBpbml0aWFsaXphdGlvbi4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJTaWduaW5nTWF0ZXJpYWw6IEVDRFNBTWV0aG9kVHlwZXMuU2lnbmluZ01hdGVyaWFsID0gSlNPTi5wYXJzZShwYXJhbXMucHJ2KTtcbiAgICBpZiAodXNlclNpZ25pbmdNYXRlcmlhbC5wU2hhcmUuaSAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzZXIga2V5Jyk7XG4gICAgfVxuICAgIGlmICghdXNlclNpZ25pbmdNYXRlcmlhbC5iYWNrdXBOU2hhcmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1c2VyIGtleSAtIG1pc3NpbmcgYmFja3VwTlNoYXJlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHhSZXF1ZXN0OiBUeFJlcXVlc3QgPVxuICAgICAgdHlwZW9mIHBhcmFtcy50eFJlcXVlc3QgPT09ICdzdHJpbmcnXG4gICAgICAgID8gYXdhaXQgZ2V0VHhSZXF1ZXN0KHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmlkKCksIHBhcmFtcy50eFJlcXVlc3QpXG4gICAgICAgIDogcGFyYW1zLnR4UmVxdWVzdDtcblxuICAgIGxldCBzaWduYWJsZVBheWxvYWQ7XG4gICAgbGV0IGRlcml2YXRpb25QYXRoO1xuXG4gICAgaWYgKHJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZS50eCkge1xuICAgICAgYXNzZXJ0KHR4UmVxdWVzdC50cmFuc2FjdGlvbnMgfHwgdHhSZXF1ZXN0LnVuc2lnbmVkVHhzLCAnVW5hYmxlIHRvIGZpbmQgdHJhbnNhY3Rpb25zIGluIHR4UmVxdWVzdCcpO1xuICAgICAgY29uc3QgdW5zaWduZWRUeCA9XG4gICAgICAgIHR4UmVxdWVzdC5hcGlWZXJzaW9uID09PSAnZnVsbCcgPyB0eFJlcXVlc3QudHJhbnNhY3Rpb25zIVswXS51bnNpZ25lZFR4IDogdHhSZXF1ZXN0LnVuc2lnbmVkVHhzWzBdO1xuICAgICAgc2lnbmFibGVQYXlsb2FkID0gQnVmZmVyLmZyb20odW5zaWduZWRUeC5zaWduYWJsZUhleCwgJ2hleCcpO1xuICAgICAgZGVyaXZhdGlvblBhdGggPSB1bnNpZ25lZFR4LmRlcml2YXRpb25QYXRoO1xuICAgIH0gZWxzZSBpZiAocmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlLm1lc3NhZ2UpIHtcbiAgICAgIHNpZ25hYmxlUGF5bG9hZCA9IChwYXJhbXMgYXMgVFNTUGFyYW1zRm9yTWVzc2FnZSkuYnVmZmVyVG9TaWduO1xuICAgICAgLy8gVE9ETyBCRy02NzI5OSBNZXNzYWdlIHNpZ25pbmcgd2l0aCBkZXJpdmF0aW9uIHBhdGhcbiAgICAgIGRlcml2YXRpb25QYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgTVBDID0gbmV3IEVjZHNhKCk7XG4gICAgY29uc3Qgc2lnbmluZ0tleSA9IE1QQy5rZXlEZXJpdmUoXG4gICAgICB1c2VyU2lnbmluZ01hdGVyaWFsLnBTaGFyZSxcbiAgICAgIFt1c2VyU2lnbmluZ01hdGVyaWFsLmJpdGdvTlNoYXJlLCB1c2VyU2lnbmluZ01hdGVyaWFsLmJhY2t1cE5TaGFyZV0sXG4gICAgICBkZXJpdmF0aW9uUGF0aFxuICAgICk7XG5cbiAgICBjb25zdCBiaXRnb0luZGV4ID0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTztcbiAgICBjb25zdCB1c2VySW5kZXggPSB1c2VyU2lnbmluZ01hdGVyaWFsLnBTaGFyZS5pO1xuXG4gICAgY29uc3QgY2hhbGxlbmdlcyA9IGF3YWl0IHRoaXMuZ2V0RWNkc2FTaWduaW5nQ2hhbGxlbmdlcyh0eFJlcXVlc3QudHhSZXF1ZXN0SWQsIHJlcXVlc3RUeXBlLCBzaWduaW5nS2V5LnhTaGFyZS5uLCAwKTtcbiAgICBjb25zdCB7IG50aWxkZTogbnRpbGRlYSwgaDE6IGgxYSwgaDI6IGgyYSwgcDogcGEgfSA9IGNoYWxsZW5nZXMuZW50ZXJwcmlzZUNoYWxsZW5nZTtcbiAgICBjb25zdCB7IG50aWxkZTogbnRpbGRlYiwgaDE6IGgxYiwgaDI6IGgyYiwgcDogcGIsIG46IG5iIH0gPSBjaGFsbGVuZ2VzLmJpdGdvQ2hhbGxlbmdlO1xuICAgIGNvbnN0IHVzZXJYU2hhcmUgPSBNUEMuYXBwZW5kQ2hhbGxlbmdlKHNpZ25pbmdLZXkueFNoYXJlLCB7IG50aWxkZTogbnRpbGRlYSwgaDE6IGgxYSwgaDI6IGgyYSB9LCB7IHA6IHBhIH0pO1xuICAgIGNvbnN0IGJpdGdvWVNoYXJlID0gTVBDLmFwcGVuZENoYWxsZW5nZShcbiAgICAgIHtcbiAgICAgICAgaTogdXNlckluZGV4LFxuICAgICAgICBqOiBiaXRnb0luZGV4LFxuICAgICAgICBuOiBuYixcbiAgICAgIH0sXG4gICAgICB7IG50aWxkZTogbnRpbGRlYiwgaDE6IGgxYiwgaDI6IGgyYiB9LFxuICAgICAgeyBwOiBwYiB9XG4gICAgKTtcblxuICAgIGNvbnN0IHVzZXJTaWduU2hhcmUgPSBhd2FpdCBFQ0RTQU1ldGhvZHMuY3JlYXRlVXNlclNpZ25TaGFyZSh1c2VyWFNoYXJlLCBiaXRnb1lTaGFyZSk7XG4gICAgY29uc3QgdSA9IHNpZ25pbmdLZXkublNoYXJlc1tiaXRnb0luZGV4XS51O1xuXG4gICAgbGV0IGNoYWluY29kZSA9IHVzZXJTaWduaW5nTWF0ZXJpYWwuYml0Z29OU2hhcmUuY2hhaW5jb2RlO1xuICAgIHdoaWxlIChjaGFpbmNvZGUubGVuZ3RoIDwgNjQpIHtcbiAgICAgIGNoYWluY29kZSA9ICcwJyArIGNoYWluY29kZTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmVyU2hhcmUgPSBiaXAzMi5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbSh1LCAnaGV4JyksIEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKS50b0Jhc2U1OCgpO1xuICAgIGNvbnN0IGJpdGdvR3BnS2V5ID0gYXdhaXQgZ2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgY29uc3QgZW5jcnlwdGVkU2lnbmVyU2hhcmUgPSAoYXdhaXQgb3BlbnBncC5lbmNyeXB0KHtcbiAgICAgIG1lc3NhZ2U6IGF3YWl0IG9wZW5wZ3AuY3JlYXRlTWVzc2FnZSh7XG4gICAgICAgIHRleHQ6IHNpZ25lclNoYXJlLFxuICAgICAgfSksXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbktleXM6IFtiaXRnb0dwZ0tleV0sXG4gICAgfSkpIGFzIHN0cmluZztcbiAgICBjb25zdCB1c2VyR3BnS2V5ID0gYXdhaXQgZ2VuZXJhdGVHUEdLZXlQYWlyKCdzZWNwMjU2azEnKTtcbiAgICBjb25zdCBwcml2YXRlU2hhcmVQcm9vZiA9IGF3YWl0IGNyZWF0ZVNoYXJlUHJvb2YodXNlckdwZ0tleS5wcml2YXRlS2V5LCBzaWduaW5nS2V5Lm5TaGFyZXNbYml0Z29JbmRleF0udSwgJ2VjZHNhJyk7XG4gICAgY29uc3QgdnNzUHJvb2YgPSBzaWduaW5nS2V5Lm5TaGFyZXNbYml0Z29JbmRleF0udjtcbiAgICBjb25zdCB1c2VyUHVibGljR3BnS2V5ID0gdXNlckdwZ0tleS5wdWJsaWNLZXk7XG4gICAgY29uc3QgcHVibGljU2hhcmUgPSBzaWduaW5nS2V5Lm5TaGFyZXNbYml0Z29JbmRleF0ueSArIHNpZ25pbmdLZXkublNoYXJlc1tiaXRnb0luZGV4XS5jaGFpbmNvZGU7XG5cbiAgICAvLyBzaWduaW5nIHN0YWdlIG9uZSB3aXRoIEsgc2hhcmUgc2VuZCB0byBiaXRnbyBhbmQgcmVjZWl2ZXMgQSBzaGFyZVxuICAgIGNvbnN0IGJpdGdvVG9Vc2VyQVNoYXJlID0gKGF3YWl0IEVDRFNBTWV0aG9kcy5zZW5kU2hhcmVUb0JpdGdvKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHRoaXMud2FsbGV0LmlkKCksXG4gICAgICB0eFJlcXVlc3QudHhSZXF1ZXN0SWQsXG4gICAgICByZXF1ZXN0VHlwZSxcbiAgICAgIFNlbmRTaGFyZVR5cGUuS1NoYXJlLFxuICAgICAgdXNlclNpZ25TaGFyZS5rU2hhcmUsXG4gICAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZSxcbiAgICAgIHZzc1Byb29mLFxuICAgICAgcHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICBwdWJsaWNTaGFyZSxcbiAgICAgIHVzZXJQdWJsaWNHcGdLZXlcbiAgICApKSBhcyBPbWl0PEFTaGFyZSwgJ250aWxkZScgfCAnaDEnIHwgJ2gyJz47IC8vIFdQL0hTTSBkb2VzIG5vdCByZXR1cm4gdGhlIGluaXRpYWwgY2hhbGxlbmdlXG5cbiAgICAvLyBBcHBlbmQgdGhlIEJpdEdvIGNoYWxsZW5nZSB0byB0aGUgQXNoYXJlIHRvIGJlIHVzZWQgaW4gc3Vic2VxdWVudCBwcm9vZnNcbiAgICBjb25zdCBiaXRnb1RvVXNlckFTaGFyZVdpdGhOdGlsZGU6IEFTaGFyZSA9IHtcbiAgICAgIC4uLmJpdGdvVG9Vc2VyQVNoYXJlLFxuICAgICAgLi4uY2hhbGxlbmdlcy5iaXRnb0NoYWxsZW5nZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXNlckdhbW1hQW5kTXVTaGFyZXMgPSBhd2FpdCBFQ0RTQU1ldGhvZHMuY3JlYXRlVXNlckdhbW1hQW5kTXVTaGFyZShcbiAgICAgIHVzZXJTaWduU2hhcmUud1NoYXJlLFxuICAgICAgYml0Z29Ub1VzZXJBU2hhcmVXaXRoTnRpbGRlXG4gICAgKTtcbiAgICBjb25zdCB1c2VyT21pY3JvbkFuZERlbHRhU2hhcmUgPSBhd2FpdCBFQ0RTQU1ldGhvZHMuY3JlYXRlVXNlck9taWNyb25BbmREZWx0YVNoYXJlKFxuICAgICAgdXNlckdhbW1hQW5kTXVTaGFyZXMuZ1NoYXJlIGFzIEVDRFNBLkdTaGFyZVxuICAgICk7XG4gICAgY29uc3QgbXVTaGFyZSA9IHVzZXJHYW1tYUFuZE11U2hhcmVzLm11U2hhcmUhO1xuICAgIGNvbnN0IGRTaGFyZSA9IHVzZXJPbWljcm9uQW5kRGVsdGFTaGFyZS5kU2hhcmU7XG5cbiAgICAvLyBzaWduaW5nIHN0YWdlIHR3byB3aXRoIG11U2hhcmUgYW5kIGRTaGFyZSBzZW5kIHRvIGJpdGdvIGFuZCByZWNlaXZlcyBEIHNoYXJlXG4gICAgY29uc3QgYml0Z29Ub1VzZXJEU2hhcmUgPSAoYXdhaXQgRUNEU0FNZXRob2RzLnNlbmRTaGFyZVRvQml0Z28oXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgdGhpcy53YWxsZXQuaWQoKSxcbiAgICAgIHR4UmVxdWVzdC50eFJlcXVlc3RJZCxcbiAgICAgIHJlcXVlc3RUeXBlLFxuICAgICAgU2VuZFNoYXJlVHlwZS5NVVNoYXJlLFxuICAgICAgeyBtdVNoYXJlLCBkU2hhcmUsIGk6IG11U2hhcmUuaSB9XG4gICAgKSkgYXMgRFNoYXJlO1xuXG4gICAgY29uc3QgdXNlclNTaGFyZSA9IGF3YWl0IEVDRFNBTWV0aG9kcy5jcmVhdGVVc2VyU2lnbmF0dXJlU2hhcmUoXG4gICAgICB1c2VyT21pY3JvbkFuZERlbHRhU2hhcmUub1NoYXJlLFxuICAgICAgYml0Z29Ub1VzZXJEU2hhcmUsXG4gICAgICBzaWduYWJsZVBheWxvYWQsXG4gICAgICBwYXJhbXMuaGFzaFxuICAgICk7XG5cbiAgICAvLyBzaWduaW5nIHN0YWdlIHRocmVlIHdpdGggU1NoYXJlIHNlbmQgdG8gYml0Z28gYW5kIHJlY2VpdmVzIFNTaGFyZVxuICAgIGF3YWl0IEVDRFNBTWV0aG9kcy5zZW5kU2hhcmVUb0JpdGdvKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHRoaXMud2FsbGV0LmlkKCksXG4gICAgICB0eFJlcXVlc3QudHhSZXF1ZXN0SWQsXG4gICAgICByZXF1ZXN0VHlwZSxcbiAgICAgIFNlbmRTaGFyZVR5cGUuU1NoYXJlLFxuICAgICAgdXNlclNTaGFyZVxuICAgICk7XG4gICAgcmV0dXJuIGF3YWl0IGdldFR4UmVxdWVzdCh0aGlzLmJpdGdvLCB0aGlzLndhbGxldC5pZCgpLCB0eFJlcXVlc3QudHhSZXF1ZXN0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIHRoZSB0cmFuc2FjdGlvbiBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgb2JqZWN0IG9yIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gZGVjcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucmVxSWQgLSByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IGZ1bGx5IHNpZ25lZCBUeFJlcXVlc3Qgb2JqZWN0XG4gICAqL1xuICBhc3luYyBzaWduVHhSZXF1ZXN0KHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICByZXR1cm4gdGhpcy5zaWduUmVxdWVzdEJhc2UocGFyYW1zLCBSZXF1ZXN0VHlwZS50eCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgdGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNhY3Rpb24gcmVxdWVzdC5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBUeFJlcXVlc3R9IHBhcmFtcy50eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IG9iamVjdCBvciBpZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIGRlY3J5cHRlZCBwcml2YXRlIGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnJlcUlkIC0gcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fSBmdWxseSBzaWduZWQgVHhSZXF1ZXN0IG9iamVjdFxuICAgKi9cbiAgYXN5bmMgc2lnblR4UmVxdWVzdEZvck1lc3NhZ2UocGFyYW1zOiBUU1NQYXJhbXNGb3JNZXNzYWdlKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBpZiAoIXBhcmFtcy5tZXNzYWdlUmF3KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JhdyBtZXNzYWdlIHJlcXVpcmVkIHRvIHNpZ24gbWVzc2FnZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaWduUmVxdWVzdEJhc2UocGFyYW1zLCBSZXF1ZXN0VHlwZS5tZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNoYWxsZW5nZSB2YWx1ZXMgZm9yIGVudGVycHJpc2UgYW5kIEJpdEdvIGluIEVDRFNBIHNpZ25pbmdcbiAgICogT25seSByZXR1cm5zIHRoZSBjaGFsbGVuZ2VzIGlmIHRoZXkgYXJlIHZlcmlmaWVkIGJ5IHRoZSB1c2VyJ3MgZW50ZXJwcmlzZSBhZG1pbidzIGVjZGgga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRyYW5zYWN0aW9uIHJlcXVlc3QgaWRcbiAgICogQHBhcmFtIHtSZXF1ZXN0VHlwZX0gcmVxdWVzdFR5cGUgLSAgKDAgZm9yIHR4LCAxIGZvciBtZXNzYWdlKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gd2FsbGV0UGFpbGxpZXJNb2R1bHVzIC0gcGFpbGxpZXIgcHVia2V5ICRuJFxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBpbmRleCBvZiB0aGUgcmVxdWVzdFR5cGVcbiAgICovXG4gIGFzeW5jIGdldEVjZHNhU2lnbmluZ0NoYWxsZW5nZXMoXG4gICAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gICAgd2FsbGV0UGFpbGxpZXJNb2R1bHVzOiBzdHJpbmcsXG4gICAgaW5kZXggPSAwXG4gICk6IFByb21pc2U8e1xuICAgIGVudGVycHJpc2VDaGFsbGVuZ2U6IEVjZHNhVHlwZXMuU2VyaWFsaXplZEVjZHNhQ2hhbGxlbmdlcztcbiAgICBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U7XG4gIH0+IHtcbiAgICBjb25zdCBlbnRlcnByaXNlSWQgPSB0aGlzLndhbGxldC50b0pTT04oKS5lbnRlcnByaXNlO1xuICAgIGlmICghZW50ZXJwcmlzZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dhbGxldCBtdXN0IGJlIGFuIGVudGVycHJpc2Ugd2FsbGV0LicpO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSBCaXRHbyByYW5nZSBwcm9vZiBhbmQgcGFpbGxpZXIgcHJvb2YgY2hhbGxlbmdlXG4gICAgY29uc3QgY3JlYXRlQml0Z29DaGFsbGVuZ2VSZXNwb25zZSA9IGF3YWl0IGdldFR4UmVxdWVzdENoYWxsZW5nZShcbiAgICAgIHRoaXMuYml0Z28sXG4gICAgICB0aGlzLndhbGxldC5pZCgpLFxuICAgICAgdHhSZXF1ZXN0SWQsXG4gICAgICBpbmRleC50b1N0cmluZygpLFxuICAgICAgcmVxdWVzdFR5cGUsXG4gICAgICB3YWxsZXRQYWlsbGllck1vZHVsdXNcbiAgICApO1xuXG4gICAgY29uc3QgYml0Z29Ub0VudGVycHJpc2VQYWlsbGllckNoYWxsZW5nZSA9IHsgcDogY3JlYXRlQml0Z29DaGFsbGVuZ2VSZXNwb25zZS5wIH07XG4gICAgY29uc3QgZW50ZXJwcmlzZVRvQml0Z29QYWlsbGllckNoYWxsZW5nZSA9IEVjZHNhVHlwZXMuc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2Uoe1xuICAgICAgcDogYXdhaXQgRWNkc2FQYWlsbGllclByb29mLmdlbmVyYXRlUChoZXhUb0JpZ0ludChjcmVhdGVCaXRnb0NoYWxsZW5nZVJlc3BvbnNlLm4pKSxcbiAgICB9KTtcblxuICAgIC8vIFRPRE8oQkctNzg3NjQpOiBvbmNlIHRoZSBwYWlsbGllciBwcm9vZnMgYXJlIGNvbXBsZXRlLCByZWR1Y2UgY2hhbGxlbmdlIGNyZWF0aW9uIHRvIG9uZSBBUEkgY2FsbFxuICAgIGNvbnN0IHdhbGxldENoYWxsZW5nZXMgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRDaGFsbGVuZ2VzRm9yRWNkc2FTaWduaW5nKCk7XG5cbiAgICBjb25zdCBjaGFsbGVuZ2VWZXJpZmllclVzZXJJZCA9IHdhbGxldENoYWxsZW5nZXMuY3JlYXRlZEJ5O1xuICAgIGNvbnN0IGFkbWluU2lnbmluZ0tleVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnby5nZXRTaWduaW5nS2V5Rm9yVXNlcihlbnRlcnByaXNlSWQsIGNoYWxsZW5nZVZlcmlmaWVyVXNlcklkKTtcbiAgICBjb25zdCBwdWJrZXlPZkFkbWluRWNkaEtleUhleCA9IGFkbWluU2lnbmluZ0tleVJlc3BvbnNlLmRlcml2ZWRQdWJrZXk7XG5cbiAgICAvLyBWZXJpZnkgZW50ZXJwcmlzZSdzIGNoYWxsZW5nZSBpcyBzaWduZWQgYnkgdGhlIHJlc3BlY3RpdmUgYWRtaW5zIGVjZGgga2V5Y2hhaW5cbiAgICBjb25zdCBlbnRlcnByaXNlUmF3Q2hhbGxlbmdlID0ge1xuICAgICAgbnRpbGRlOiB3YWxsZXRDaGFsbGVuZ2VzLmVudGVycHJpc2VDaGFsbGVuZ2UubnRpbGRlLFxuICAgICAgaDE6IHdhbGxldENoYWxsZW5nZXMuZW50ZXJwcmlzZUNoYWxsZW5nZS5oMSxcbiAgICAgIGgyOiB3YWxsZXRDaGFsbGVuZ2VzLmVudGVycHJpc2VDaGFsbGVuZ2UuaDIsXG4gICAgfTtcbiAgICBjb25zdCBhZG1pblNpZ25hdHVyZU9uRW50Q2hhbGxlbmdlOiBzdHJpbmcgPSB3YWxsZXRDaGFsbGVuZ2VzLmVudGVycHJpc2VDaGFsbGVuZ2UudmVyaWZpZXJzLmFkbWluU2lnbmF0dXJlO1xuICAgIGlmIChcbiAgICAgICF2ZXJpZnlFY2RoU2lnbmF0dXJlKFxuICAgICAgICBFY2RzYVV0aWxzLmdldE1lc3NhZ2VUb1NpZ25Gcm9tQ2hhbGxlbmdlKGVudGVycHJpc2VSYXdDaGFsbGVuZ2UpLFxuICAgICAgICBhZG1pblNpZ25hdHVyZU9uRW50Q2hhbGxlbmdlLFxuICAgICAgICBCdWZmZXIuZnJvbShwdWJrZXlPZkFkbWluRWNkaEtleUhleCwgJ2hleCcpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFkbWluIHNpZ25hdHVyZSBmb3IgZW50ZXJwcmlzZSBjaGFsbGVuZ2UgaXMgbm90IHZhbGlkLiBQbGVhc2UgY29udGFjdCB5b3VyIGVudGVycHJpc2UgYWRtaW4uYCk7XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIEJpdEdvIGNoYWxsZW5nZSdzIFpLIHByb29mcyBoYXZlIGJlZW4gdmVyaWZpZWQgYnkgdGhlIGFkbWluXG4gICAgY29uc3QgYml0Z29DaGFsbGVuZ2U6IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlID0ge1xuICAgICAgbnRpbGRlOiB3YWxsZXRDaGFsbGVuZ2VzLmJpdGdvQ2hhbGxlbmdlLm50aWxkZSxcbiAgICAgIGgxOiB3YWxsZXRDaGFsbGVuZ2VzLmJpdGdvQ2hhbGxlbmdlLmgxLFxuICAgICAgaDI6IHdhbGxldENoYWxsZW5nZXMuYml0Z29DaGFsbGVuZ2UuaDIsXG4gICAgICBwOiBiaXRnb1RvRW50ZXJwcmlzZVBhaWxsaWVyQ2hhbGxlbmdlLnAsXG4gICAgICBuOiBjcmVhdGVCaXRnb0NoYWxsZW5nZVJlc3BvbnNlLm4sXG4gICAgfTtcbiAgICBjb25zdCBhZG1pblZlcmlmaWNhdGlvblNpZ25hdHVyZUZvckJpdEdvQ2hhbGxlbmdlID0gd2FsbGV0Q2hhbGxlbmdlcy5iaXRnb0NoYWxsZW5nZS52ZXJpZmllcnMuYWRtaW5TaWduYXR1cmU7XG4gICAgaWYgKFxuICAgICAgIXZlcmlmeUVjZGhTaWduYXR1cmUoXG4gICAgICAgIEVjZHNhVXRpbHMuZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoYml0Z29DaGFsbGVuZ2UpLFxuICAgICAgICBhZG1pblZlcmlmaWNhdGlvblNpZ25hdHVyZUZvckJpdEdvQ2hhbGxlbmdlLFxuICAgICAgICBCdWZmZXIuZnJvbShwdWJrZXlPZkFkbWluRWNkaEtleUhleCwgJ2hleCcpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFkbWluIHNpZ25hdHVyZSBmb3IgQml0R28ncyBjaGFsbGVuZ2UgaXMgbm90IHZhbGlkLiBQbGVhc2UgY29udGFjdCB5b3VyIGVudGVycHJpc2UgYWRtaW4uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVudGVycHJpc2VDaGFsbGVuZ2U6IHtcbiAgICAgICAgLi4uZW50ZXJwcmlzZVJhd0NoYWxsZW5nZSxcbiAgICAgICAgcDogZW50ZXJwcmlzZVRvQml0Z29QYWlsbGllckNoYWxsZW5nZS5wLFxuICAgICAgfSxcbiAgICAgIGJpdGdvQ2hhbGxlbmdlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhlIHUtdmFsdWUgcHJvb2ZzIGFuZCBHUEcga2V5cyB1c2VkIGluIGdlbmVyYXRpbmcgYSBUU1MgRUNEU0Egd2FsbGV0LlxuICAgKiBAcGFyYW0gdXNlckdwZ1B1YiBUaGUgdXNlcidzIHB1YmxpYyBHUEcga2V5IGZvciBlbmNyeXB0aW9uIGJldHdlZW4gdXNlci9zZXJ2ZXJcbiAgICogQHBhcmFtIGJhY2t1cEdwZ1B1YiBUaGUgYmFja3VwJ3MgcHVibGljIEdQRyBrZXkgZm9yIGVuY3J5cHRpb24gYmV0d2VlbiBiYWNrdXAvc2VydmVyXG4gICAqIEBwYXJhbSBiaXRnb0tleWNoYWluIHByZXZpb3VzbHkgY3JlYXRlZCBCaXRHbyBrZXljaGFpbjsgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdXNlciBhbmQgYmFja3VwIGtleSBzaGFyZXNcbiAgICogQHBhcmFtIGRlY3J5cHRlZFNoYXJlIFRoZSBkZWNyeXB0ZWQgYml0Z28tdG8tdXNlci9iYWNrdXAgcHJpdmF0ZSBzaGFyZSByZXRyaWV2ZWQgZnJvbSB0aGUga2V5Y2hhaW5cbiAgICogQHBhcmFtIHZlcmlmaWVySW5kZXggVGhlIGluZGV4IG9mIHRoZSBwYXJ0eSB0byB2ZXJpZnk6IDEgPSB1c2VyLCAyID0gYmFja3VwXG4gICAqL1xuICBhc3luYyB2ZXJpZnlXYWxsZXRTaWduYXR1cmVzKFxuICAgIHVzZXJHcGdQdWI6IHN0cmluZyxcbiAgICBiYWNrdXBHcGdQdWI6IHN0cmluZyxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBkZWNyeXB0ZWRTaGFyZTogc3RyaW5nLFxuICAgIHZlcmlmaWVySW5kZXg6IDEgfCAyXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluKTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbi53YWxsZXRIU01HUEdQdWJsaWNLZXlTaWdzKTtcblxuICAgIGNvbnN0IGJpdGdvR3BnS2V5ID0gYXdhaXQgZ2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgY29uc3QgdXNlcktleVB1YiA9IGF3YWl0IG9wZW5wZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IHVzZXJHcGdQdWIgfSk7XG4gICAgY29uc3QgdXNlcktleUlkID0gdXNlcktleVB1Yi5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKTtcbiAgICBjb25zdCBiYWNrdXBLZXlQdWIgPSBhd2FpdCBvcGVucGdwLnJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiYWNrdXBHcGdQdWIgfSk7XG4gICAgY29uc3QgYmFja3VwS2V5SWQgPSBiYWNrdXBLZXlQdWIua2V5UGFja2V0LmdldEZpbmdlcnByaW50KCk7XG5cbiAgICBjb25zdCB3YWxsZXRTaWduYXR1cmVzID0gYXdhaXQgb3BlbnBncC5yZWFkS2V5cyh7IGFybW9yZWRLZXlzOiBiaXRnb0tleWNoYWluLndhbGxldEhTTUdQR1B1YmxpY0tleVNpZ3MgfSk7XG4gICAgaWYgKHdhbGxldFNpZ25hdHVyZXMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgd2FsbGV0IHNpZ25hdHVyZXMnKTtcbiAgICB9XG4gICAgaWYgKHVzZXJLZXlJZCAhPT0gd2FsbGV0U2lnbmF0dXJlc1swXS5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBmaXJzdCB3YWxsZXQgc2lnbmF0dXJlJ3MgZmluZ2VycHJpbnQgZG9lcyBub3QgbWF0Y2ggcGFzc2VkIHVzZXIgZ3BnIGtleSdzIGZpbmdlcnByaW50YCk7XG4gICAgfVxuICAgIGlmIChiYWNrdXBLZXlJZCAhPT0gd2FsbGV0U2lnbmF0dXJlc1sxXS5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzZWNvbmQgd2FsbGV0IHNpZ25hdHVyZSdzIGZpbmdlcnByaW50IGRvZXMgbm90IG1hdGNoIHBhc3NlZCBiYWNrdXAgZ3BnIGtleSdzIGZpbmdlcnByaW50YCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdmVyaWZ5V2FsbGV0U2lnbmF0dXJlKHtcbiAgICAgIHdhbGxldFNpZ25hdHVyZTogd2FsbGV0U2lnbmF0dXJlc1swXSxcbiAgICAgIGNvbW1vbktleWNoYWluOiBiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluLFxuICAgICAgdXNlcktleUlkLFxuICAgICAgYmFja3VwS2V5SWQsXG4gICAgICBiaXRnb1B1YjogYml0Z29HcGdLZXksXG4gICAgICBkZWNyeXB0ZWRTaGFyZSxcbiAgICAgIHZlcmlmaWVySW5kZXgsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB2ZXJpZnlXYWxsZXRTaWduYXR1cmUoe1xuICAgICAgd2FsbGV0U2lnbmF0dXJlOiB3YWxsZXRTaWduYXR1cmVzWzFdLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4sXG4gICAgICB1c2VyS2V5SWQsXG4gICAgICBiYWNrdXBLZXlJZCxcbiAgICAgIGJpdGdvUHViOiBiaXRnb0dwZ0tleSxcbiAgICAgIGRlY3J5cHRlZFNoYXJlLFxuICAgICAgdmVyaWZpZXJJbmRleCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBhIGNoYWxsZW5nZSB3aXRoIHRoZSBwcm92aWRlZCB2MSBlY2RoIGtleSBhdCBhIGRlcml2ZWQgcGF0aFxuICAgKiBAcGFyYW0gY2hhbGxlbmdlIGNoYWxsZW5nZSB0byBzaWduXG4gICAqIEBwYXJhbSBlY2RoWHBydiB4cHJ2IG9mIHRoZSBlY2RoIGtleVxuICAgKiBAcGFyYW0gZGVyaXZhdGlvblBhdGggdGhlIGRlcml2ZWQgcGF0aCBhdCB3aGljaCB0aGUgZWNkaCBrZXkgd2lsbCBzaWduXG4gICAqL1xuICBzdGF0aWMgc2lnbkNoYWxsZW5nZShjaGFsbGVuZ2U6IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZSwgZWNkaFhwcnY6IHN0cmluZywgZGVyaXZhdGlvblBhdGg6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgY29uc3QgbWVzc2FnZVRvU2lnbiA9IHRoaXMuZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoY2hhbGxlbmdlKTtcbiAgICByZXR1cm4gc2lnbk1lc3NhZ2VXaXRoRGVyaXZlZEVjZGhLZXkobWVzc2FnZVRvU2lnbiwgZWNkaFhwcnYsIGRlcml2YXRpb25QYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBjaGFsbGVuZ2UgdG8gYSBjb21tb24gbWVzc2FnZSBmb3JtYXQgd2hpY2ggY2FuIGJlIHNpZ25lZC5cbiAgICogQHBhcmFtIGNoYWxsZW5nZVxuICAgKi9cbiAgc3RhdGljIGdldE1lc3NhZ2VUb1NpZ25Gcm9tQ2hhbGxlbmdlKGNoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2hhbGxlbmdlLm50aWxkZS5jb25jYXQoY2hhbGxlbmdlLmgxKS5jb25jYXQoY2hhbGxlbmdlLmgyKTtcbiAgfVxuXG4gIC8qKlxuICAgVmVyaWZpZXMgWksgcHJvb2ZzIG9mIEJpdEdvJ3MgY2hhbGxlbmdlcyBmb3IgYm90aCBuaXRybyBhbmQgaW5zdGl0dXRpb25hbCBIU01zXG4gICB3aGljaCBhcmUgZmV0Y2hlZCBmcm9tIHRoZSBXUCBBUEkuXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgdmVyaWZ5Qml0R29DaGFsbGVuZ2VzKGJpdGdvQ2hhbGxlbmdlczogR2V0Qml0R29DaGFsbGVuZ2VzQXBpKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gVmVyaWZ5IGluc3RpdHV0aW9uYWwgaHNtIGNoYWxsZW5nZSBwcm9vZlxuICAgIGNvbnN0IGluc3RDaGFsbGVuZ2VWZXJpZmllZCA9IGF3YWl0IHRoaXMudmVyaWZ5Qml0R29DaGFsbGVuZ2Uoe1xuICAgICAgbnRpbGRlOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLm50aWxkZSxcbiAgICAgIGgxOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLmgxLFxuICAgICAgaDI6IGJpdGdvQ2hhbGxlbmdlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20uaDIsXG4gICAgICBudGlsZGVQcm9vZjogYml0Z29DaGFsbGVuZ2VzLmJpdGdvSW5zdGl0dXRpb25hbEhzbS5udGlsZGVQcm9vZixcbiAgICB9KTtcblxuICAgIC8vIFZlcmlmeSBuaXRybyBoc20gY2hhbGxlbmdlIHByb29mXG4gICAgY29uc3Qgbml0cm9DaGFsbGVuZ2VWZXJpZmllZCA9IGF3YWl0IHRoaXMudmVyaWZ5Qml0R29DaGFsbGVuZ2Uoe1xuICAgICAgbnRpbGRlOiBiaXRnb0NoYWxsZW5nZXMuYml0Z29OaXRyb0hzbS5udGlsZGUsXG4gICAgICBoMTogYml0Z29DaGFsbGVuZ2VzLmJpdGdvTml0cm9Ic20uaDEsXG4gICAgICBoMjogYml0Z29DaGFsbGVuZ2VzLmJpdGdvTml0cm9Ic20uaDIsXG4gICAgICBudGlsZGVQcm9vZjogYml0Z29DaGFsbGVuZ2VzLmJpdGdvTml0cm9Ic20ubnRpbGRlUHJvb2YsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW5zdENoYWxsZW5nZVZlcmlmaWVkICYmIG5pdHJvQ2hhbGxlbmdlVmVyaWZpZWQ7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgWksgcHJvb2YgZm9yIGEgc2luZ2xlIEJpdEdvIGNoYWxsZW5nZVxuICAgKiBAcGFyYW0gYml0Z29DaGFsbGVuZ2VcbiAgICovXG4gIHN0YXRpYyBhc3luYyB2ZXJpZnlCaXRHb0NoYWxsZW5nZShiaXRnb0NoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRlc2VyaWFsaXplZEluc3RDaGFsbGVuZ2UgPSBFY2RzYVR5cGVzLmRlc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyhiaXRnb0NoYWxsZW5nZSk7XG4gICAgY29uc3QgbnRpbGRlUHJvb2ZIMVdydEgyVmVyaWZpZWQgPSBhd2FpdCBFY2RzYVJhbmdlUHJvb2YudmVyaWZ5TnRpbGRlUHJvb2YoXG4gICAgICB7XG4gICAgICAgIG50aWxkZTogZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5udGlsZGUsXG4gICAgICAgIGgxOiBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLmgxLFxuICAgICAgICBoMjogZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5oMixcbiAgICAgIH0sXG4gICAgICBkZXNlcmlhbGl6ZWRJbnN0Q2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDJcbiAgICApO1xuICAgIGNvbnN0IG50aWxkZVByb29mSDJXcnRIMVZlcmlmaWVkID0gYXdhaXQgRWNkc2FSYW5nZVByb29mLnZlcmlmeU50aWxkZVByb29mKFxuICAgICAge1xuICAgICAgICBudGlsZGU6IGRlc2VyaWFsaXplZEluc3RDaGFsbGVuZ2UubnRpbGRlLFxuICAgICAgICBoMTogZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5oMixcbiAgICAgICAgaDI6IGRlc2VyaWFsaXplZEluc3RDaGFsbGVuZ2UuaDEsXG4gICAgICB9LFxuICAgICAgZGVzZXJpYWxpemVkSW5zdENoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxXG4gICAgKTtcbiAgICByZXR1cm4gbnRpbGRlUHJvb2ZIMVdydEgyVmVyaWZpZWQgJiYgbnRpbGRlUHJvb2ZIMldydEgxVmVyaWZpZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYml0Z28gY2hhbGxlbmdlcyBmb3IgYm90aCBuaXRybyBhbmQgaW5zdGl0dXRpb25hbCBIU01zIGZyb20gV1AgQVBJLlxuICAgKiBAcGFyYW0gYml0Z29cbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRCaXRHb0NoYWxsZW5nZXMoYml0Z286IEJpdEdvQmFzZSk6IFByb21pc2U8R2V0Qml0R29DaGFsbGVuZ2VzQXBpPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgYml0Z28uZ2V0KGJpdGdvLnVybCgnL3Rzcy9lY2RzYS9jaGFsbGVuZ2VzJywgMikpLnNlbmQoKS5yZXN1bHQoKTtcbiAgICBpZiAoXG4gICAgICAhcmVzLmJpdGdvTml0cm9Ic20gfHxcbiAgICAgICFyZXMuYml0Z29OaXRyb0hzbS5udGlsZGUgfHxcbiAgICAgICFyZXMuYml0Z29OaXRyb0hzbS5oMSB8fFxuICAgICAgIXJlcy5iaXRnb05pdHJvSHNtLmgyIHx8XG4gICAgICAhcmVzLmJpdGdvTml0cm9Ic20ubnRpbGRlUHJvb2YgfHxcbiAgICAgICFyZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtIHx8XG4gICAgICAhcmVzLmJpdGdvSW5zdGl0dXRpb25hbEhzbS5udGlsZGUgfHxcbiAgICAgICFyZXMuYml0Z29JbnN0aXR1dGlvbmFsSHNtLmgxIHx8XG4gICAgICAhcmVzLmJpdGdvSW5zdGl0dXRpb25hbEhzbS5oMiB8fFxuICAgICAgIXJlcy5iaXRnb0luc3RpdHV0aW9uYWxIc20ubnRpbGRlUHJvb2ZcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgQml0R28gY2hhbGxlbmdlIHByb29mIHRvIGJlIHByZXNlbnQuIENvbnRhY3Qgc3VwcG9ydEBiaXRnby5jb20uJyk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBCaXRHbydzIHByb29mcyBmcm9tIEFQSSBhbmQgc2lnbnMgdGhlbSBpZiB0aGUgcHJvb2ZzIGFyZSB2YWxpZC5cbiAgICogQHBhcmFtIGJpdGdvXG4gICAqIEBwYXJhbSBlbnRlcnByaXNlSWRcbiAgICogQHBhcmFtIHVzZXJQYXNzd29yZFxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldFZlcmlmeUFuZFNpZ25CaXRHb0NoYWxsZW5nZXMoXG4gICAgYml0Z286IEJpdEdvQmFzZSxcbiAgICBlbnRlcnByaXNlSWQ6IHN0cmluZyxcbiAgICB1c2VyUGFzc3dvcmQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEJpdEdvUHJvb2ZTaWduYXR1cmVzPiB7XG4gICAgLy8gRmV0Y2ggQml0R28ncyBjaGFsbGVuZ2UgYW5kIHZlcmlmeVxuICAgIGNvbnN0IGJpdGdvQ2hhbGxlbmdlc1dpdGhQcm9vZnMgPSBhd2FpdCBFY2RzYVV0aWxzLmdldEJpdEdvQ2hhbGxlbmdlcyhiaXRnbyk7XG4gICAgaWYgKCEoYXdhaXQgRWNkc2FVdGlscy52ZXJpZnlCaXRHb0NoYWxsZW5nZXMoYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mcykpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gdmVyaWZ5IEJpdEdvJ3MgY2hhbGxlbmdlIG5lZWRlZCB0byBlbmFibGUgRUNEU0Egc2lnbmluZy4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydEBiaXRnby5jb21gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgRWNkc2FVdGlscy5zaWduQml0Z29DaGFsbGVuZ2VzKGJpdGdvLCBlbnRlcnByaXNlSWQsIHVzZXJQYXNzd29yZCwgYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mcyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBCaXRnbydzIHByb29mcywgdmVyaWZpY2F0aW9uIG9mIHByb29mcyBpcyBsZWZ0IHRvIHRoZSBjYWxsZXJcbiAgICogQHBhcmFtIGJpdGdvXG4gICAqIEBwYXJhbSBlbnRlcnByaXNlSWRcbiAgICogQHBhcmFtIHVzZXJQYXNzd29yZFxuICAgKiBAcGFyYW0gYml0Z29DaGFsbGVuZ2VzV2l0aFByb29mcyBPcHRpb25hbGx5IHByb3ZpZGUgQml0Z28gQ2hhbGxhZW5nZSAmIFByb29mcyBpbnN0ZWFkIG9mIGZldGNoaW5nIGZyb20gQVBJXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2lnbkJpdGdvQ2hhbGxlbmdlcyhcbiAgICBiaXRnbzogQml0R29CYXNlLFxuICAgIGVudGVycHJpc2VJZDogc3RyaW5nLFxuICAgIHVzZXJQYXNzd29yZDogc3RyaW5nLFxuICAgIGJpdGdvQ2hhbGxlbmdlc1dpdGhQcm9vZnM/OiBHZXRCaXRHb0NoYWxsZW5nZXNBcGlcbiAgKTogUHJvbWlzZTxCaXRHb1Byb29mU2lnbmF0dXJlcz4ge1xuICAgIC8vIGZldGNoIGNoYWxsZW5nZSAmIHByb29mIGlmIG5vbmUgYXJlIHByb3ZpZGVkXG4gICAgY29uc3QgY2hhbGxlbmdlc1dpdGhQcm9vZnMgPSBiaXRnb0NoYWxsZW5nZXNXaXRoUHJvb2ZzXG4gICAgICA/IGJpdGdvQ2hhbGxlbmdlc1dpdGhQcm9vZnNcbiAgICAgIDogYXdhaXQgRWNkc2FVdGlscy5nZXRCaXRHb0NoYWxsZW5nZXMoYml0Z28pO1xuICAgIC8vIEZldGNoIHVzZXIncyBlY2RoIHB1YmxpYyBrZXljaGFpbiBuZWVkZWQgZm9yIHNpZ25pbmcgdGhlIGNoYWxsZW5nZXNcbiAgICBjb25zdCB1c2VyU2lnbmluZ0tleSA9IGF3YWl0IGJpdGdvLmdldFNpZ25pbmdLZXlGb3JVc2VyKGVudGVycHJpc2VJZCk7XG4gICAgaWYgKCF1c2VyU2lnbmluZ0tleS5lY2RoS2V5Y2hhaW4gfHwgIXVzZXJTaWduaW5nS2V5LmRlcml2YXRpb25QYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIHVzZXIga2V5Y2hhaW4uIFBsZWFzZSBjb250YWN0IHN1cHBvcnRAYml0Z28uY29tLicpO1xuICAgIH1cbiAgICBjb25zdCB1c2VyRWNkaEtleWNoYWluID0gYXdhaXQgYml0Z28uZ2V0RUNESEtleWNoYWluKHVzZXJTaWduaW5nS2V5LmVjZGhLZXljaGFpbik7XG4gICAgbGV0IHhwcnY7XG4gICAgdHJ5IHtcbiAgICAgIHhwcnYgPSBiaXRnby5kZWNyeXB0KHtcbiAgICAgICAgcGFzc3dvcmQ6IHVzZXJQYXNzd29yZCxcbiAgICAgICAgaW5wdXQ6IHVzZXJFY2RoS2V5Y2hhaW4uZW5jcnlwdGVkWHBydixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHBhc3N3b3JkLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWRCaXRHb0luc3RDaGFsbGVuZ2UgPSBFY2RzYVV0aWxzLnNpZ25DaGFsbGVuZ2UoXG4gICAgICBjaGFsbGVuZ2VzV2l0aFByb29mcy5iaXRnb0luc3RpdHV0aW9uYWxIc20sXG4gICAgICB4cHJ2LFxuICAgICAgdXNlclNpZ25pbmdLZXkuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZEJpdEdvTml0cm9DaGFsbGVuZ2UgPSBFY2RzYVV0aWxzLnNpZ25DaGFsbGVuZ2UoXG4gICAgICBjaGFsbGVuZ2VzV2l0aFByb29mcy5iaXRnb05pdHJvSHNtLFxuICAgICAgeHBydixcbiAgICAgIHVzZXJTaWduaW5nS2V5LmRlcml2YXRpb25QYXRoXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgYml0Z29JbnN0SHNtQWRtaW5TaWduYXR1cmU6IHNpZ25lZEJpdEdvSW5zdENoYWxsZW5nZSxcbiAgICAgIGJpdGdvTml0cm9Ic21BZG1pblNpZ25hdHVyZTogc2lnbmVkQml0R29OaXRyb0NoYWxsZW5nZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgbmVlZGVkIHRvIGVuYWJsZSBlY2RzYSBzaWduaW5nIG9uIHRoZSBlbnRlcnByaXNlLlxuICAgKiBJdCByZWNlaXZlcyB0aGUgZW50ZXJwcmlzZSBjaGFsbGVuZ2UgYW5kIHNpZ25hdHVyZXMgb2YgdmVyaWZpZWQgYml0Z28gcHJvb2ZzXG4gICAqIGFuZCB1cGxvYWRzIHRoZW0gb24gdGhlIGVudGVycHJpc2UuXG4gICAqIEBwYXJhbSBiaXRnb1xuICAgKiBAcGFyYW0gZW50SWQgLSBlbnRlcnByaXNlIGlkIHRvIGVuYWJsZSBlY2RzYSBzaWduaW5nIG9uXG4gICAqIEBwYXJhbSB1c2VyUGFzc3dvcmQgLSBlbnRlcnByaXNlIGFkbWluJ3MgbG9naW4gcHdcbiAgICogQHBhcmFtIGJpdGdvSW5zdENoYWxsZW5nZVByb29mU2lnbmF0dXJlIC0gc2lnbmF0dXJlIG9uIGJpdGdvJ3MgaW5zdGl0dXRpb25hbCBIU00gY2hhbGxlbmdlIGFmdGVyIHZlcmlmaWNhdGlvblxuICAgKiBAcGFyYW0gYml0Z29OaXRyb0NoYWxsZW5nZVByb29mU2lnbmF0dXJlIC0gc2lnbmF0dXJlIG9uIGJpdGdvJ3Mgbml0cm8gSFNNIGNoYWxsZW5nZSBhZnRlciB2ZXJpZmljYXRpb25cbiAgICogQHBhcmFtIGNoYWxsZW5nZSAtIG9wdGlvbmFsbHkgdXNlIHRoZSBjaGFsbGVuZ2UgZm9yIGVudGVycHJpc2UgY2hhbGxlbmdlXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgaW5pdGlhdGVDaGFsbGVuZ2VzRm9yRW50ZXJwcmlzZShcbiAgICBiaXRnbzogQml0R29CYXNlLFxuICAgIGVudElkOiBzdHJpbmcsXG4gICAgdXNlclBhc3N3b3JkOiBzdHJpbmcsXG4gICAgYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmU6IEJ1ZmZlcixcbiAgICBiaXRnb05pdHJvQ2hhbGxlbmdlUHJvb2ZTaWduYXR1cmU6IEJ1ZmZlcixcbiAgICBjaGFsbGVuZ2U/OiBFY2RzYVR5cGVzLkRlc2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRmV0Y2ggdXNlcidzIGVjZGggcHVibGljIGtleWNoYWluIG5lZWRlZCBmb3Igc2lnbmluZyB0aGUgY2hhbGxlbmdlc1xuICAgIGNvbnN0IHVzZXJTaWduaW5nS2V5ID0gYXdhaXQgYml0Z28uZ2V0U2lnbmluZ0tleUZvclVzZXIoZW50SWQpO1xuICAgIGlmICghdXNlclNpZ25pbmdLZXkuZWNkaEtleWNoYWluIHx8ICF1c2VyU2lnbmluZ0tleS5kZXJpdmF0aW9uUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSB1c2VyIGtleWNoYWluLiBQbGVhc2UgY29udGFjdCBzdXBwb3J0QGJpdGdvLmNvbS4nKTtcbiAgICB9XG4gICAgY29uc3QgdXNlckVjZGhLZXljaGFpbiA9IGF3YWl0IGJpdGdvLmdldEVDREhLZXljaGFpbih1c2VyU2lnbmluZ0tleS5lY2RoS2V5Y2hhaW4pO1xuICAgIGxldCB4cHJ2O1xuICAgIHRyeSB7XG4gICAgICB4cHJ2ID0gYml0Z28uZGVjcnlwdCh7XG4gICAgICAgIHBhc3N3b3JkOiB1c2VyUGFzc3dvcmQsXG4gICAgICAgIGlucHV0OiB1c2VyRWNkaEtleWNoYWluLmVuY3J5cHRlZFhwcnYsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBwYXNzd29yZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nKTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBhbmQgc2lnbiBlbnRlcnByaXNlIGNoYWxsZW5nZVxuICAgIGNvbnN0IGVudENoYWxsZW5nZVdpdGhQcm9vZiA9IGNoYWxsZW5nZSA/PyAoYXdhaXQgRWNkc2FSYW5nZVByb29mLmdlbmVyYXRlTnRpbGRlKG1pbk1vZHVsdXNCaXRMZW5ndGgpKTtcbiAgICBjb25zdCBzZXJpYWxpemVkRW50Q2hhbGxlbmdlV2l0aFByb29mID0gRWNkc2FUeXBlcy5zZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGVudENoYWxsZW5nZVdpdGhQcm9vZik7XG4gICAgY29uc3Qgc2lnbmVkRW50ZXJwcmlzZUNoYWxsZW5nZSA9IEVjZHNhVXRpbHMuc2lnbkNoYWxsZW5nZShcbiAgICAgIHNlcmlhbGl6ZWRFbnRDaGFsbGVuZ2VXaXRoUHJvb2YsXG4gICAgICB4cHJ2LFxuICAgICAgdXNlclNpZ25pbmdLZXkuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy51cGxvYWRDaGFsbGVuZ2VzVG9FbnRlcnByaXNlKFxuICAgICAgYml0Z28sXG4gICAgICBlbnRJZCxcbiAgICAgIHNlcmlhbGl6ZWRFbnRDaGFsbGVuZ2VXaXRoUHJvb2YsXG4gICAgICBzaWduZWRFbnRlcnByaXNlQ2hhbGxlbmdlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGJpdGdvSW5zdENoYWxsZW5nZVByb29mU2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZS50b1N0cmluZygnaGV4JylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgdGhlIHNpZ25lZCBjaGFsbGVuZ2VzIGFuZCB0aGVpciBwcm9vZnMgb24gdGhlIGVudGVycHJpc2UuXG4gICAqIFRoaXMgaW5pdGlhdGVzIGVjZHNhIHNpZ25pbmcgZm9yIHRoZSBlbnRlcnByaXNlIHVzZXJzLlxuICAgKiBAcGFyYW0gYml0Z29cbiAgICogQHBhcmFtIGVudElkIC0gZW50ZXJwcmlzZSB0byBlbmFibGUgZWNkc2Egc2lnbmluZyBvblxuICAgKiBAcGFyYW0gZW50Q2hhbGxlbmdlV2l0aFByb29mcyAtIGNsaWVudCBzaWRlIGdlbmVyYXRlZCBlbnQgY2hhbGxlbmdlIHdpdGggWksgcHJvb2ZzXG4gICAqIEBwYXJhbSBlbnRDaGFsbGVuZ2VTaWduYXR1cmUgLSBzaWduYXR1cmUgb24gZW50ZXJwcmlzZSBjaGFsbGVuZ2VcbiAgICogQHBhcmFtIGJpdGdvSW50Q2hhbGxlbmdlU2lnbmF0dXJlIC0gc2lnbmF0dXJlIG9uIEJpdEdvJ3MgaW5zdGl0dXRpb25hbCBIU00gY2hhbGxlbmdlXG4gICAqIEBwYXJhbSBiaXRnb05pdHJvQ2hhbGxlbmdlU2lnbmF0dXJlIC0gc2lnbmF0dXJlIG9uIEJpdEdvJ3Mgbml0cm8gSFNNIGNoYWxsZW5nZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHVwbG9hZENoYWxsZW5nZXNUb0VudGVycHJpc2UoXG4gICAgYml0Z286IEJpdEdvQmFzZSxcbiAgICBlbnRJZDogc3RyaW5nLFxuICAgIGVudENoYWxsZW5nZVdpdGhQcm9vZnM6IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnMsXG4gICAgZW50Q2hhbGxlbmdlU2lnbmF0dXJlOiBzdHJpbmcsXG4gICAgYml0Z29JbnRDaGFsbGVuZ2VTaWduYXR1cmU6IHN0cmluZyxcbiAgICBiaXRnb05pdHJvQ2hhbGxlbmdlU2lnbmF0dXJlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGVudGVycHJpc2U6IHtcbiAgICAgICAgbnRpbGRlOiBlbnRDaGFsbGVuZ2VXaXRoUHJvb2ZzLm50aWxkZSxcbiAgICAgICAgaDE6IGVudENoYWxsZW5nZVdpdGhQcm9vZnMuaDEsXG4gICAgICAgIGgyOiBlbnRDaGFsbGVuZ2VXaXRoUHJvb2ZzLmgyLFxuICAgICAgICBudGlsZGVQcm9vZjoge1xuICAgICAgICAgIGgxV3J0SDI6IGVudENoYWxsZW5nZVdpdGhQcm9vZnMubnRpbGRlUHJvb2YuaDFXcnRIMixcbiAgICAgICAgICBoMldydEgxOiBlbnRDaGFsbGVuZ2VXaXRoUHJvb2ZzLm50aWxkZVByb29mLmgyV3J0SDEsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcmlmaWVyczoge1xuICAgICAgICAgIGFkbWluU2lnbmF0dXJlOiBlbnRDaGFsbGVuZ2VTaWduYXR1cmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYml0Z29JbnN0aXR1dGlvbmFsSHNtOiB7XG4gICAgICAgIHZlcmlmaWVyczoge1xuICAgICAgICAgIGFkbWluU2lnbmF0dXJlOiBiaXRnb0ludENoYWxsZW5nZVNpZ25hdHVyZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiaXRnb05pdHJvSHNtOiB7XG4gICAgICAgIHZlcmlmaWVyczoge1xuICAgICAgICAgIGFkbWluU2lnbmF0dXJlOiBiaXRnb05pdHJvQ2hhbGxlbmdlU2lnbmF0dXJlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGF3YWl0IGJpdGdvXG4gICAgICAucHV0KGJpdGdvLnVybChgL2VudGVycHJpc2UvJHtlbnRJZH0vdHNzY29uZmlnL2VjZHNhL2NoYWxsZW5nZWAsIDIpKVxuICAgICAgLnNlbmQoYm9keSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1dGlsIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIHRoYXQgYSBjb21tb25LZXljaGFpbiBpcyB2YWxpZCBhbmQgY2FuIHVsdGltYXRlbHkgcmVzb2x2ZSB0byBhIHZhbGlkIHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIGNvbW1vbktleWNoYWluIC0gYSB1c2VyIHVwbG9hZGVkIGNvbW1vbktleWNoYWluIHN0cmluZ1xuICAgKiBAdGhyb3dzIGlmIHRoZSBjb21tb25LZXljaGFpbiBpcyBpbnZhbGlkIGxlbmd0aCBvciBpbnZhbGlkIGZvcm1hdFxuICAgKi9cblxuICBzdGF0aWMgdmFsaWRhdGVDb21tb25LZXljaGFpblB1YmxpY0tleShjb21tb25LZXljaGFpbjogc3RyaW5nKSB7XG4gICAgY29uc3QgcHViID0gRWNkc2FVdGlscy5nZXRQdWJsaWNLZXlGcm9tQ29tbW9uS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW4pO1xuICAgIGNvbnN0IHNlY3AyNTZrMSA9IG5ldyBlYygnc2VjcDI1NmsxJyk7XG4gICAgY29uc3Qga2V5ID0gc2VjcDI1NmsxLmtleUZyb21QdWJsaWMocHViLCAnaGV4Jyk7XG4gICAgcmV0dXJuIGtleS5nZXRQdWJsaWMoKS5lbmNvZGUoJ2hleCcsIGZhbHNlKS5zbGljZSgyKTtcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/bitgojsError.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/ts3.6/base.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/base.d.ts","../../../node_modules/@types/node/index.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/crypto.d.ts","../../../node_modules/bip174/src/lib/interfaces.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/types.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/embed.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2ms.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2pk.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2pkh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2sh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2tr.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2tr_ns.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2wpkh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2wsh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/lazy.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/index.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/ops.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script_number.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script_signature.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/taproot.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/block.d.ts","../../../node_modules/bip174/src/lib/psbt.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts","../../utxo-lib/dist/src/networks.d.ts","../../utxo-lib/dist/src/addressFormat.d.ts","../../utxo-lib/dist/src/bitgo/bitcoincash/address.d.ts","../../utxo-lib/dist/src/bitgo/bitcoincash/index.d.ts","../../../node_modules/ecpair/src/networks.d.ts","../../../node_modules/ecpair/src/ecpair.d.ts","../../../node_modules/ecpair/src/index.d.ts","../../utxo-lib/dist/src/bitgo/keyutil.d.ts","../../utxo-lib/dist/src/bitgo/nonStandardHalfSigned.d.ts","../../utxo-lib/dist/src/bitgo/types.d.ts","../../utxo-lib/dist/src/bitgo/wallet/chains.d.ts","../../utxo-lib/dist/src/bitgo/outputScripts.d.ts","../../../node_modules/@brandonblack/musig/lib/index.d.ts","../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts","../../utxo-lib/dist/src/bitgo/PsbtUtil.d.ts","../../utxo-lib/dist/src/bitgo/Musig2.d.ts","../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts","../../../node_modules/bip32/types/bip32.d.ts","../../../node_modules/bip32/types/index.d.ts","../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts","../../utxo-lib/dist/src/transaction_builder.d.ts","../../utxo-lib/dist/src/bitgo/UtxoTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/dash/index.d.ts","../../utxo-lib/dist/src/bitgo/parseInput.d.ts","../../utxo-lib/dist/src/bitgo/signature.d.ts","../../utxo-lib/dist/src/bitgo/transaction.d.ts","../../utxo-lib/dist/src/bitgo/Unspent.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletKeys.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts","../../utxo-lib/dist/src/bitgo/wallet/Unspent.d.ts","../../utxo-lib/dist/src/bitgo/wallet/Psbt.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletOutput.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletScripts.d.ts","../../utxo-lib/dist/src/bitgo/wallet/index.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashPsbt.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/zcash/index.d.ts","../../utxo-lib/dist/src/bitgo/tnumber.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/index.d.ts","../../utxo-lib/dist/src/bitgo/index.d.ts","../../utxo-lib/dist/src/address.d.ts","../../utxo-lib/dist/src/classify.d.ts","../../utxo-lib/dist/src/taproot.d.ts","../../utxo-lib/dist/src/testutil/keys.d.ts","../../utxo-lib/dist/src/testutil/mock.d.ts","../../utxo-lib/dist/src/testutil/psbt.d.ts","../../utxo-lib/dist/src/testutil/transaction.d.ts","../../utxo-lib/dist/src/testutil/index.d.ts","../../utxo-lib/dist/src/noble_ecc.d.ts","../../utxo-lib/dist/src/payments/p2tr_ns.d.ts","../../utxo-lib/dist/src/payments/p2tr.d.ts","../../utxo-lib/dist/src/payments/index.d.ts","../../utxo-lib/dist/src/index.d.ts","../src/bitgo/types.ts","../src/bitgo/bitcoin.ts","../../../node_modules/openpgp/openpgp.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/types.d.ts","../../sdk-lib-mpc/dist/src/curves/baseCurve.d.ts","../../sdk-lib-mpc/dist/src/curves/secp256k1.d.ts","../../sdk-lib-mpc/dist/src/curves/index.d.ts","../../../node_modules/paillier-bigint/types/PublicKey.d.ts","../../../node_modules/paillier-bigint/types/PrivateKey.d.ts","../../../node_modules/paillier-bigint/types/generateRandomKeys.d.ts","../../../node_modules/paillier-bigint/types/index.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/rangeproof.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/paillierproof.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/index.d.ts","../../sdk-lib-mpc/dist/src/tss/index.d.ts","../../sdk-lib-mpc/dist/src/util.d.ts","../../sdk-lib-mpc/dist/src/openssl/openssl.d.ts","../../sdk-lib-mpc/dist/src/openssl/index.d.ts","../../sdk-lib-mpc/dist/src/index.d.ts","../src/account-lib/mpc/curves/baseCurve.ts","../src/account-lib/mpc/util.ts","../src/account-lib/mpc/curves/ed25519.ts","../src/account-lib/mpc/curves/secp256k1.ts","../src/account-lib/mpc/curves/index.ts","../src/account-lib/mpc/types.ts","../src/account-lib/mpc/shamir.ts","../src/account-lib/mpc/hdTree.ts","../src/account-lib/mpc/tss/eddsa/types.ts","../src/account-lib/mpc/tss/eddsa/eddsa.ts","../src/account-lib/mpc/tss/eddsa/index.ts","../../../node_modules/bigint-crypto-utils/node_modules/bigint-mod-arith/dist/index.d.ts","../../../node_modules/bigint-crypto-utils/types/isProbablyPrime.d.ts","../../../node_modules/bigint-crypto-utils/types/prime.d.ts","../../../node_modules/bigint-crypto-utils/types/randBetween.d.ts","../../../node_modules/bigint-crypto-utils/types/randBits.d.ts","../../../node_modules/bigint-crypto-utils/types/randBytes.d.ts","../../../node_modules/bigint-crypto-utils/types/index.d.ts","../../../node_modules/@noble/secp256k1/lib/index.d.ts","../src/account-lib/mpc/tss/ecdsa/types.ts","../src/account-lib/mpc/tss/ecdsa/ecdsa.ts","../src/account-lib/mpc/tss/ecdsa/rangeproof.ts","../src/account-lib/mpc/tss/ecdsa/index.ts","../src/account-lib/mpc/tss/index.ts","../src/api/bip32path.ts","../../../node_modules/@types/cookiejar/index.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/superagent/index.d.ts","../src/api/types.ts","../src/api/index.ts","../../../node_modules/bignumber.js/bignumber.d.ts","../src/bitgo/internal/internal.ts","../src/bitgo/pendingApproval/iPendingApproval.ts","../src/bitgo/pendingApproval/iPendingApprovals.ts","../src/bitgo/utils/opengpgUtils.ts","../src/bitgo/utils/abstractUtxoCoinUtil.ts","../../statics/dist/src/networks.d.ts","../../statics/dist/src/base.d.ts","../../statics/dist/src/map.d.ts","../../statics/dist/src/coins.d.ts","../../statics/dist/src/errors.d.ts","../../statics/dist/src/tokenConfig.d.ts","../../statics/dist/src/ofc.d.ts","../../statics/dist/src/utxo.d.ts","../../statics/dist/src/account.d.ts","../../statics/dist/src/index.d.ts","../src/account-lib/baseCoin/errors.ts","../src/account-lib/baseCoin/baseTransactionBuilder.ts","../src/account-lib/baseCoin/baseTransactionBuilderFactory.ts","../src/account-lib/baseCoin/iface.ts","../src/account-lib/baseCoin/enum.ts","../src/account-lib/baseCoin/baseTransaction.ts","../src/account-lib/baseCoin/baseUtils.ts","../src/account-lib/baseCoin/baseKeyPair.ts","../../../node_modules/tweetnacl/nacl.d.ts","../../../node_modules/@stablelib/hex/lib/hex.d.ts","../../../node_modules/noble-bls12-381/math.d.ts","../../../node_modules/noble-bls12-381/index.d.ts","../../../node_modules/base-x/src/index.d.ts","../../../node_modules/@types/bs58/index.d.ts","../src/account-lib/util/crypto.ts","../../../node_modules/@types/create-hmac/index.d.ts","../src/account-lib/util/ed25519KeyDeriver.ts","../src/account-lib/baseCoin/ed25519KeyPair.ts","../src/account-lib/baseCoin/blsKeyPair.ts","../src/account-lib/baseCoin/secp256k1ExtendedKeyPair.ts","../src/account-lib/baseCoin/index.ts","../src/bitgo/utils/iBlsUtils.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../src/bitgo/tss/ecdsa/types.ts","../src/bitgo/tss/types.ts","../src/bitgo/tss/common.ts","../../../node_modules/@types/keccak/index.d.ts","../src/bitgo/tss/ecdsa/ecdsa.ts","../src/bitgo/tss/ecdsa/index.ts","../src/bitgo/utils/tss/baseTSSUtils.ts","../src/bitgo/utils/tss/ecdsa/types.ts","../../../node_modules/@types/secp256k1/index.d.ts","../src/bitgo/ecdh.ts","../src/bitgo/utils/tss/ecdsa/ecdsa.ts","../src/bitgo/utils/tss/ecdsa/index.ts","../src/bitgo/utils/tss/baseTypes.ts","../src/bitgo/utils/mpcUtils.ts","../src/bitgo/utils/blsUtils.ts","../src/bitgo/utils/promise-utils.ts","../src/bitgo/utils/triple.ts","../src/account-lib/mpc/index.ts","../src/account-lib/staking/utils.ts","../src/account-lib/staking/index.ts","../src/account-lib/index.ts","../src/bitgo/utils/tss/eddsa/types.ts","../src/bitgo/utils/tss/eddsa/eddsa.ts","../src/bitgo/utils/tss/eddsa/index.ts","../src/bitgo/utils/tss/index.ts","../src/bitgo/errors.ts","../../../node_modules/rlp/dist/types.d.ts","../../../node_modules/rlp/dist/index.d.ts","../../../node_modules/ethereumjs-util/dist/externals.d.ts","../../../node_modules/ethereumjs-util/dist/constants.d.ts","../../../node_modules/ethereumjs-util/dist/address.d.ts","../../../node_modules/ethereumjs-util/dist/bytes.d.ts","../../../node_modules/ethereumjs-util/dist/types.d.ts","../../../node_modules/ethereumjs-util/dist/account.d.ts","../../../node_modules/ethereumjs-util/dist/hash.d.ts","../../../node_modules/ethereumjs-util/dist/signature.d.ts","../../../node_modules/ethereumjs-util/dist/object.d.ts","../../../node_modules/ethereumjs-util/dist/internal.d.ts","../../../node_modules/ethereumjs-util/dist/index.d.ts","../src/bitgo/utils/util.ts","../node_modules/fp-ts/lib/JoinSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts","../node_modules/fp-ts/lib/MeetSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedLattice.d.ts","../node_modules/fp-ts/lib/Lattice.d.ts","../node_modules/fp-ts/HKT.d.ts","../node_modules/fp-ts/lib/Contravariant.d.ts","../node_modules/fp-ts/lib/Bounded.d.ts","../node_modules/fp-ts/lib/Predicate.d.ts","../node_modules/fp-ts/lib/Magma.d.ts","../node_modules/fp-ts/lib/Functor.d.ts","../node_modules/fp-ts/lib/Apply.d.ts","../node_modules/fp-ts/lib/Pointed.d.ts","../node_modules/fp-ts/lib/Applicative.d.ts","../node_modules/fp-ts/lib/Alt.d.ts","../node_modules/fp-ts/lib/Bifunctor.d.ts","../node_modules/fp-ts/lib/Chain.d.ts","../node_modules/fp-ts/lib/ChainRec.d.ts","../node_modules/fp-ts/lib/Extend.d.ts","../node_modules/fp-ts/lib/Zero.d.ts","../node_modules/fp-ts/lib/Alternative.d.ts","../node_modules/fp-ts/lib/Monad.d.ts","../node_modules/fp-ts/lib/Foldable.d.ts","../node_modules/fp-ts/lib/Refinement.d.ts","../node_modules/fp-ts/lib/FromEither.d.ts","../node_modules/fp-ts/lib/MonadThrow.d.ts","../node_modules/fp-ts/lib/Comonad.d.ts","../node_modules/fp-ts/lib/FoldableWithIndex.d.ts","../node_modules/fp-ts/lib/FunctorWithIndex.d.ts","../node_modules/fp-ts/lib/Show.d.ts","../node_modules/fp-ts/lib/Traversable.d.ts","../node_modules/fp-ts/lib/TraversableWithIndex.d.ts","../node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts","../node_modules/fp-ts/lib/Separated.d.ts","../node_modules/fp-ts/lib/Witherable.d.ts","../node_modules/fp-ts/lib/Option.d.ts","../node_modules/fp-ts/lib/Filterable.d.ts","../node_modules/fp-ts/lib/Either.d.ts","../node_modules/fp-ts/lib/Compactable.d.ts","../node_modules/fp-ts/lib/FilterableWithIndex.d.ts","../node_modules/fp-ts/lib/Unfoldable.d.ts","../node_modules/fp-ts/lib/ReadonlyRecord.d.ts","../node_modules/fp-ts/lib/Semigroup.d.ts","../node_modules/fp-ts/lib/Endomorphism.d.ts","../node_modules/fp-ts/lib/Monoid.d.ts","../node_modules/fp-ts/lib/Eq.d.ts","../node_modules/fp-ts/lib/Ordering.d.ts","../node_modules/fp-ts/lib/Ord.d.ts","../node_modules/fp-ts/lib/DistributiveLattice.d.ts","../node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts","../node_modules/fp-ts/lib/HeytingAlgebra.d.ts","../node_modules/fp-ts/lib/BooleanAlgebra.d.ts","../node_modules/fp-ts/lib/Semiring.d.ts","../node_modules/fp-ts/lib/Ring.d.ts","../node_modules/fp-ts/lib/function.d.ts","../node_modules/fp-ts/lib/Json.d.ts","../node_modules/io-ts/lib/index.d.ts","../src/bitgo/utils/decode.ts","../src/bitgo/utils/index.ts","../src/bitgo/pendingApproval/pendingApproval.ts","../src/bitgo/pendingApproval/pendingApprovals.ts","../src/bitgo/pendingApproval/index.ts","../src/bitgo/staking/iStakingWallet.ts","../src/bitgo/staking/stakingWallet.ts","../src/bitgo/staking/index.ts","../src/bitgo/trading/affirmation.ts","../src/bitgo/trading/affirmations.ts","../src/bitgo/trading/payload.ts","../src/bitgo/trading/iAffirmation.ts","../src/bitgo/trading/iAffirmations.ts","../src/bitgo/trading/trade.ts","../src/bitgo/trading/iSettlement.ts","../src/bitgo/trading/iSettlements.ts","../src/bitgo/trading/iTradingPartner.ts","../src/bitgo/trading/iTradingPartners.ts","../src/bitgo/trading/iTradingAccount.ts","../src/bitgo/trading/lock.ts","../src/bitgo/trading/settlement.ts","../src/bitgo/trading/settlements.ts","../src/bitgo/trading/tradingAccount.ts","../src/bitgo/trading/tradingPartner.ts","../src/bitgo/trading/tradingPartners.ts","../src/bitgo/trading/index.ts","../src/bitgo/lightning/iLightning.ts","../../../node_modules/bolt11/node_modules/@types/bn.js/index.d.ts","../../../node_modules/bolt11/payreq.d.ts","../../../node_modules/bech32/dist/index.d.ts","../src/bitgo/lightning/lnurlCodec.ts","../src/bitgo/lightning/lightningUtils.ts","../src/bitgo/lightning/lightning.ts","../src/bitgo/lightning/index.ts","../src/bitgo/wallet/iWallet.ts","../src/bitgo/wallet/wallet.ts","../src/bitgo/wallet/iWallets.ts","../src/bitgo/wallet/wallets.ts","../src/bitgo/wallet/index.ts","../src/bitgo/keychain/ovcJsonCodec.ts","../src/bitgo/keychain/iKeychains.ts","../src/bitgo/keychain/keychains.ts","../src/bitgo/keychain/index.ts","../src/bitgo/internal/keycard.ts","../src/bitgo/internal/index.ts","../src/bitgo/enterprise/enterprise.ts","../src/bitgo/enterprise/iEnterprise.ts","../src/bitgo/enterprise/iEnterprises.ts","../src/bitgo/enterprise/enterprises.ts","../src/bitgo/enterprise/index.ts","../src/bitgo/market/iMarkets.ts","../src/bitgo/market/markets.ts","../src/bitgo/market/index.ts","../src/bitgo/environments.ts","../src/bitgo/config.ts","../src/bitgo/recovery/initiate.ts","../src/bitgo/recovery/index.ts","../src/bitgo/webhook/iWebhooks.ts","../src/bitgo/inscriptionBuilder/iInscriptionBuilder.ts","../src/bitgo/inscriptionBuilder/index.ts","../src/bitgo/baseCoin/iBaseCoin.ts","../../../node_modules/bitcoinjs-message/index.d.ts","../src/bitgo/bip32util.ts","../src/bitgo/webhook/webhooks.ts","../src/bitgo/webhook/index.ts","../src/bitgo/baseCoin/baseCoin.ts","../src/bitgo/baseCoin/index.ts","../src/bitgo/coinFactory.ts","../src/bitgo/bitgoBase.ts","../src/bitgo/tss/eddsa/types.ts","../src/bitgo/tss/eddsa/eddsa.ts","../src/bitgo/tss/eddsa/index.ts","../src/bitgo/tss/index.ts","../src/bitgo/legacyBitcoin.ts","../src/bitgo/index.ts","../src/common.ts","../src/coins/fiateur.ts","../src/coins/tfiateur.ts","../src/coins/fiatgbp.ts","../src/coins/tfiatgbp.ts","../src/coins/fiatusd.ts","../src/coins/tfiatusd.ts","../src/coins/ofc.ts","../src/coins/ofcToken.ts","../src/coins/susd.ts","../src/coins/tsusd.ts","../src/coins/index.ts","../src/openssl/index.ts","../src/units.ts","../src/index.ts","../../../types/bignumber.js/index.d.ts","../../../types/express/index.d.ts","../../../node_modules/should/should.d.ts","../../../types/should-sinon/index.d.ts","../../../types/superagent/index.d.ts","../../../node_modules/@types/archy/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../../node_modules/@types/keyv/index.d.ts","../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../../../node_modules/@types/cacheable-request/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/eccrypto/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/ethereumjs-util/index.d.ts","../../../node_modules/@types/eventsource/dom-monkeypatch.d.ts","../../../node_modules/@types/eventsource/index.d.ts","../../../node_modules/@types/expect/index.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../node_modules/@types/jasmine/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/linkify-it/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/mdurl/encode.d.ts","../../../node_modules/@types/mdurl/decode.d.ts","../../../node_modules/@types/mdurl/parse.d.ts","../../../node_modules/@types/mdurl/format.d.ts","../../../node_modules/@types/mdurl/index.d.ts","../../../node_modules/@types/markdown-it/lib/common/utils.d.ts","../../../node_modules/@types/markdown-it/lib/token.d.ts","../../../node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../../node_modules/@types/markdown-it/lib/ruler.d.ts","../../../node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../../node_modules/@types/markdown-it/lib/parser_block.d.ts","../../../node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../../node_modules/@types/markdown-it/lib/renderer.d.ts","../../../node_modules/@types/markdown-it/lib/index.d.ts","../../../node_modules/@types/markdown-it/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/nock/index.d.ts","../../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/pbkdf2/index.d.ts","../../../node_modules/@types/qrcode/index.d.ts","../../../node_modules/@types/raf/index.d.ts","../../../node_modules/@types/randombytes/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sha.js/index.d.ts","../../../node_modules/@types/sinon/ts3.1/index.d.ts","../../../node_modules/@types/urijs/dom-monkeypatch.d.ts","../../../node_modules/@types/urijs/index.d.ts","../../../node_modules/@types/utf8/index.d.ts","../../../node_modules/@types/websocket/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},{"version":"c52a0da37f3e3da6039848cc58ccd652a3b7624c6caf8f0629ec1726e4a4cf9b","signature":"10199870eb8115e4d7732c92b6ba7e9396a411566158a6158ad812fb788a85fb"},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},{"version":"de3195627ed1d4ee51c5047f93cd76ce59a8601c0a5c6c391438d7f6cb3edf4d","affectsGlobalScope":true},"5cd9c902b221c5aca739cbc3fb4339c3c5115198808d4f5d7610a674e4b9c66d","fe892fea1e75a442fffb4a604d7eeb451e858787a9f2f01c4e83bf12a3b5048d","645912db9bbd041bf791e9a403de27d03d24625cbe4253edd71872c092251ec6","ce629710e5e58724902b753212e97861fd73e2aa09f5d88cb6d55dc763cf8c8a","525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d","e1e8a8a24bc0fe64cc9c5ccfa60e89f6e20783da8e8b76a242ebf99ef0ef07f3","4ade8ea27bacf52458daa4509626f0c37489488631abb0da183dfe2cd5406df0","f5093bf8e4ed54d6bfe5e7e88ee2b85fc4720586649c3c56f5cd14d972082ff8","05e732266b5a36789fd9eb846b1f45fec1b6e318b740e3f20fc22fd95f9ebf31","baeda1fadac9fd31920480b85340ab9c4266a25ad08403dee8e15fd0751101fb","8059976d7f408e08be353de1833172139bbaa70fc33d01b98249f7226c122119","2b9170bcb449ae83b40f7232158b0625226d20bf41d3161a1a934814e50e5601","bd1d7a809d5cbd2626b0c9f5161dcf222bc9cb9567fd4bf02546bd546d3bd975","2e314cce67882577dc93d2c5746cd7069672a425722f440a7d592d6318b35929","dacbe08610729f6343ea9880ea8e737c6d7a6efa4a318d8f6acaf85db4aceed6","8cfa78f4c052a93ac1e7accb0a78ce331dbd14f277ee0e193279ec31ce7efb25","03394bf8deb8781b490ae9266a843fbdf00647947d79e25fcbf1d89a9e9c8a66","cc5fac2b9e45a6670b96fd32cb42c97e0d4a7b2ee12c87963c6fe0f55fa84f50","37307ad10f30884fb9470a4e170b7be5f68a33b3d458cc3b7c63cd494802e594","5fb30076f0e0e5744db8993648bfb67aadd895f439edad5cce039127a87a8a36","3a986a6d59e0de61d21b9a8f044dcd523535eb8f7c5d0511bc7563d45f723793","3a8848a9c307429b861402cc69bc472ffe0c05b86474fc158723169161e16389","3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c","32faa6602e78c7f2e30fddb6ea36fe8a40ea2aba1536dfd7c93922a51874dad4","b2ab3f2ac6a9889ccedb5d501d8f5c4487f0f6ab01af3703f436ce92a644fd39","3b13fd501c9f75c98acb87302b4ce284c09e7ef5eb39a23a74d0d6d16bbd4046","63cf1510b32cad5d0578dfbebd125d099f3f538c866a76788e9cb4c7ab24af2b","17e157df6125098a1a34eb4d201ee4ac03bbe97e471ab5627bb2c40fce555948","b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9","3dc921e8a181e348f2559e903734e655a23c555a5703036f19bf68f4ab17f475","978aecd2e6bc2ac094e9a35eda98ff8586713857b3655e7c98ca5ed8f7d50662","9e666de17856eb640570276c9c71755080f0ba0bfea840438cabf25ef063886e","10e2924698b196d32b502876f727c194689c999636db42243604caa4584a6a53","ca78820a17b0e56d6899e355ace672444c8b3227be177f301413d1ca5cc08a52","6ad2dd29dbf3aea031062298e9978d4b2a1fadd0997eb9d8caaf95aaa89e7033","0f3abcfff40d142dff635e8332a9817b6fb9c8ee062be0dd8874cac52db7fd59","3e797a974bc761b6e9f4755d6a9ec816c2dc181311ddccc2865735e2c698a43f","741fd2b9e47486d4ca7638a7df1ec378cfaf9fb92e4ce24dd088be319706e82c","c4fe30f3f235b8aa991491f977b5c5dfc7955d6c639a95211d97acc4e2de5faf","3497438242251378cf232f36a7fabac70e7bd8229d68dac8955534e63ffc8ff4","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","a2267091f78b005b511883f9f9c464189bdb7550932f9d0f0f79d4301788cba2","6168e4aed14a6ff6e0407266f3a597fb98e5024c48e23537be3f758cb1fd51f3","035fd4564409153531cc683821b48048fd01982a8522c120b5a17f9a6320a229","f491f3939bf1c85ad2ebe4cdd99d09c2efda9589f5405256bcdd8ff8492f662b","3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42","66978ea7a01c26f9a0432f4c41e7060b4d327f56e243cd297f8a5c77a72b8cf7","a29a7b9ade7876d0f527b716a5bc5c7bc84554d155577020441f2d3c735589be","9cd42ff83837551961fa8788f14bd3498306fb2c1d35358f2b6bf3af05bf0890","5e51773d5624b8c871d8d140c88f944466338673fbc60ac4bf409eb60e6665cf","39b10cd95b70bbdc1cf8c832002618c3f81cd980438fe5e3694d99286ef90911","95244212208717085038a74378ea2a03e49c06a3a195b2826c01c978f14684c2","c91084ba90468037b6d266f3cae698aaa76c0864cf076aa099d981d847b74c2d","dc58c9eb8817b8c46f40712df9e588c0c70357931f5ebebb3aa445949de993c8","7362eeca79ce50eb72b2a0149e323f6d64daf4fbc8067592310859622c3dbcfe","8c0a305a7b10513d9d07bf739456bf9845bd4336027c85442b674a417facb57a","75ea79a4508fc9df7d5f3d17d3d64941c537e9071d84cb50e489ba63366d2c92","b76e336a02283957d3ec16132a031edb1a41e3ba23c85cd7e601da5fe533df08","0f3fa7383d3f2ebed173ff59c102b4a68d10acdff5db4a009b73429ddaa15768","973d36af083ce019e3c38b99ca43cb6815b47082cf1e07215387df336192f447","617012176a8cb5be290ae89040aac88ec74321c2a8b984f01a7ba6eb9a2eddc2","2f25953a957da0ad16d44dbdca3b1c9b9ea5e891c011e3533e374aab8c2d2131","9bf8b9d7ef41b69a572131f5ef7240cb48ba833c2e972780dead3cd8f2fca5ae","249cfa3a5ac82c494f563e457a33ff576c842825e4cdd2f1ecd9b6e0d6d754b4","83a8c6dbc3c4a5eac6e4e0328bd9e30fdaf53e02eeac194442c2f6aded8f6c3c","9010bcd6fb2da0e3d050d2bdc99772bc65f0aded76b88cdef97cae19ff1b7111","f0f9439e4302fb7127a172ad73fa9335ab8cf340ebdc4356700adf641fe74b62","337f691218cb82b34341cefc01b06141d25cdcbd78822ad8ac5b003088f0bc39","6185284ab4f31c094de925d004063eacc4eef37335ad3b30d147a07ed7319532","fbc630f48dad838d3ac2bb9420cd97a6f3be26707915c792ae6114d2d8df379b","fe89f6decc8896721129284b4e3b1189f5f42b9d16bed836873faeae101014b1","b838405edd6c2e68b261abb25dcb55bd223a310541016208ee1b93ba179dfb64","52e60c0b5293af2043d7b5cad439207ea035c6b96c246ad9bf3b07ae2f1e223e","c2b96b0689637cff5f67318289e6daf9aa7b4d7b1186abdbf75c042fdeb577bf","22efdd0b3d0d96510bb03ffc515cf533e0ba710dcad568dee1cf66df28a69125","d2d155d8c33c15911e0a80478505927400c751435746672406b2c2be64d83b0c","770ba645782e35f9931fc9480d101c70071ff454c1e2cb44bbc5748acd970359","68f18b63c9f01ba41c0c14bbf514074a9b08a03fb1e718ec2b99a02e69e407a1","e4960123c866ad66c1decf7b52d407978ee21193765353638326d75c46c394ae","2888551d6cce4a6cfe67546e46e74c07a52af03dd231adcaac720b155cb8e977","e46c000f93dafb4fc49a0ac11087aa2f5eef0901a86cd653ecae0b73352a3628","e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385","1529f6d2dbe43ea11779497342aea5ae362e64e7d84dcfebcbb6bb9f7594b6ee","d36976b497242d0ce26b09d80cef24f18cf4e93db3221badac8f0c88eb4a6037","684e031ec8a911ebe107159504ed48b2a20367a0a1bc1e0500c35c1f85280669","7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10","bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076","6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304","9d020ee88148f771d32375258d6dd401ffcc0b27bec34457c8830ad1770b5a27","93038b83dd63cf756b03e1cbfb7207998f0aee0ecdc2f5094060522b669d2080","8ddb1dad7b5888be6d29136e1865d70ed1e98748c95a9255aa6b49062f40d8b3","82d6ece84116a45b8136c086360264a711a133fcf0a185bd870dba4ab9fcde2b","1009527147cde989b77a59104491215ec5e98b38b17d007af8981e5c619bb39f","ae6554a7ab624729f4ce2db9c7f18983b0a4983a460f5b426d232c7995dd2ebb","8ddbd5b217234804631bf628b3cb9ec2b4cf580abf361ce26e69c967ddf1973d","80de98817715b9dc60749586a495ab032252e607db57a1baadffc7be2e1feb2c","d172876eea3e1a92509352a08e7b0e99e4b31631f239b230536ef99d5d7d8885","f949d95cf452a28ed7bb8c73cd221afaf6c9160b1931f9cedc2177678215c70e","b936a8a1d166fa7eea071b345b837b12e0abb10083aeefa3fbe3c386d81263a7","fab40e05b35d6b6d12b5fc29892dbd52cd84f363f833ed2ba7e27b9bca77a8d5","abc70e9efe86f9037a1696881ad60ca634018d5a093ad3250c43bb0a3e3b6c1e","e016e3d45a1706b6167a49ba775ccee8d3b41132f28af149d9fd7fc5228e8b09","8d01647a7acd10dcee6f45fbe781c86ad34ae70dd047e651b965103d156e8dcc","e8433a064976c584a4a691556f442e8282eec9e679828de9ed804ea0ceda38c3","ebab1593bb34816ac3726fe572560c9f089361f49b52c0893b840592ee5e2cb2","9799d233d38c8c2ee81db9ae60543c876f225bc2eaf3aa4f799d75e8c1287569","a6b9095d530cd9e2e28653a173bd4bd975b9b2759abc55d8bbcbc0d64dfba12f","fa77bea96eaa815e9937f2960b113df6a98826187a76a1f7e9af52c75be93e81","11212bb86739807fe0424857f95c380b9df416bea017648088883023b88b26cd","b9ad9e94c0a2b496ab1552503d2fb89b9f4ea4f4341c5a44382b26d739bca6df","6d259c78a98a89a17fabc30ceb15e6b25c00ee31bac4608c3eecafc2c7361c91","c305e7e6fae2dd94be0535ce16a7892aade8f06cdb32f3a71d1122b2fdb0523b","9867266ae1eae922ffeb5e0d05e8603366a14c03928369f95af3607c21195751","69e2d572533ea1c2329a1e00146bdc4ac7007007bab55ca28165576e4bb3328d","341841903dd2de5fc09628b691832e9b7d8783ccc0f502eb46167bd1a7bff7ee","5b0e8d4a207e1381f32269540020919c1d934b96ca7fd2a5ca1fb32dae56ff80","2c948c62182575b74b2d4d8264f473828eecd468d6a8b5696a830e9494f9cfe9","ae6980bc5c77153a715fc013beb4853769bd976e7c23f549179d4a8838462402","42f9bf86a24d44f75ddf7e8063326d640ea8cc0d13f29c7921d74da89fee3ecc","b172212e75e5f3f9383dd1cf04f73e25379336ca8c3b54aed8012616bf1b0f84","b5c3249de61b1fe38b7ea958926e5ce51f4cbb8df0c3f3ebb9bf3637041e8a7e","deac5d294f2ba98c692609997af27d97adf932cb271f4cad2c7149a8667440dc","cd20c95c5e1156fd6f1f6e01e789fc98ade117fd3dd1d8ec56827ab711347b14","935f2f183413bfb559b5308d59e15c663ea8a7a26609a7e42e4361f696334f63","7466283b8832a2f4b3228509efb43dc1bf6726a78aaed524f3b3b0c028ed5c0f","59ba497ed3002dd2614c17df69cd0ba227d351b649d5a3f9df2d82564b7aa366","9ca59686ca4a2d630f4421cc906c3872f2f5cc7b37ce8af0a20b0859c4f47d4b","a6956bda1e7042dc49ac85d87875310fb65b798d67bda5f67d2ebb0c5ece433a",{"version":"651a757b4950d14f779350e604641b5b25567f22bbc372408de10591b1fc6dd1","signature":"8066f6916ae55f987a2ae1908d7ec4b2f6ae927f78946945a8e2b4fff1ba8777"},{"version":"a8167f76312b1ed7799262b6d8e7da018e2a172a430d027f5f4139818f626e3c","signature":"8412f4ad39d7a87e115d406ab73858fd2ab67b7fdddc9ad8416b30c3b57f3698"},"b8cd6612a280bee6151f7580e48983533b4b055d51894928487570ed21557b9c","cfe1012f8175c674dd19a39cf93391a0103aebd465920faa6718842bd1740389","d368716cf32dc5ea7975f7b08943b107c57ec5b182ef881cdd20373eb212c0ae","355d4c9436c26539ce47bbc3b13b3dcbea9364f78b2a68c37360348e88eaeb04","5c57cfc1e2eefc34d61c967318d06439fcb7d2c0a84b3fad179eca46aab43f58","2755882608d931e0eed4ba7ab0161124973ac6e3fa156fac2bd9a3c77d4d1f02","30eb1f14b2f34f205ced83acb9146df9a106fc782ff3185a56e0f0289808b587","004f33767de4ebd56e9d6a80cbce883618c645467fa6e21bf6aaae20f3ccda02","5843659624bc89456b607b9a1cc7142c886f81d56daa4dc7c887df79d0360d9f","8b22694f385be2f039e3676ea7d112b449729da6333e3e1af5f08aae3db99d2b","f7a684dc92f6027cd074080aa2f6105ece4a65c2c64bce2a7214ca4a2ce38d3c","b9707f86e0e401b657ed40193fcae1cff492e43c201624f9a72aef2f328d76b7","a92e95f58dd6504c0723e1edd377139e9861a7861f175d3ca62142eba1ae72c4","ba550feb8b9e414177b5401a7f23efc1c2d31a0dd9666c365b7c66e2016e7177","31e6062345138f878e1813f965d26f31a9a2e91b5daf3b1101e415dd424335a6","bc580e666ed9141b648308ef30cda43214b36620f0c9eaa3a1380d27124a6ecd","13a8e31ae2b0004e4fab84b790e9a8bc0faf140c53c20e7d55af61ba4eebb18f",{"version":"c3ad364effd1dff06e1f81719862b10f93cbad7042b1df44b0ce80fbf1bf62b0","signature":"5e33357d66ee738656752293912954991f334b13f265bd89e3ac36f30d053a9c"},{"version":"5e770f3b0adb2ea1d7ee5355620179c7a0ff577850389b9d2d1f9a8f858d4918","signature":"f60dad848a3ad983d34fe4935bdc93633ed527e85d31237bc6e3b1092f0b9aae"},{"version":"b1b5768e0a33d2b0e7930aac747ba2e6891464418a772dc4c8cde79c03edfeef","signature":"b017549b9d6329b2c279bd74e35cc7d34e70aac82cccb620f0003c01ac1249b6"},"8ac508362d051217ef3f3b3a739fed7623a1e4ec9ed0b0b4d3b0dc2a1d31954e",{"version":"18ad0d545ab08eb42d73fb1613270c80e33e075ae3a656cfe9f713a79b71ca8f","signature":"93ed60c6a16361ddfb47e27a2b151a6e1557111102bcc5549131627bbf6c72e0"},{"version":"03d683110ef0e464a2b1ae762181998c7ca50f6e2631a8e321e9bacebf8a0573","signature":"e80f30bf8b16bda4afe7a5aa8c0c732f8431e8c01c6663f4d5b3193a20ef5ca8"},{"version":"ffaf2a25f3012b7c8c5c6287fc617a2fb486650d95b6c911bb549b72bdb20e25","signature":"7c6b0d9840c07df4e6cd52f2c273116ce0f0d1a99d15dd322eccedee959152e0"},{"version":"0d81be72d675cdb2968e8ae81e2e3cbdb4e2dfb407ac239f8a37dbe88e5171ed","signature":"23cd5dddb91a0d1eba93117933b6a1758891b1db8a5e1d3cd3060d019908b8b6"},{"version":"3d1b6741f43245961fdfb79735588ee66d7f04da85b07028a26b8d10cf56f60e","signature":"fadf3ca9953c797c70c8afa463e004977f28a79739b33f02b88d3820939a7612"},{"version":"00c8c78a89a4d4a554c2238318e225db398ec0c5e2812c764b7b94c01f260cb1","signature":"f6b6f968b16a3f982ef05805611ad4d31c117d59659da3ddc1ed6a69cb940fbc"},{"version":"b07a12211b6e4d928d34c875aa336743ebaf95f8cba35a075abcc73628f858cb","signature":"e8543e6080dc8219961e4059737df7a5a7dec2103030ef0d24f295444884eb03"},"12dbe6d3f68617679c3ea816be2b870d3c8c186ddcbe9ddbb1eae5965c1e0967","bee6f24746280c738429f5e1f14db1c9767b979cbdfc3942b8166a6751d02d39","7c95fdcd8dcd86d9bd727a187120e38e92c35b3f16f01eecc62b083d55f7ce17","db83f60f371a1bfe8e5948018e246252feb077d2047e9a2a935d33ec15592842","a9ee5ca65c43848c9723293afc80e4b0028eccab1ec0398dd4370b32b76d2eb0","8fe755ed3e85112f8ee6c31e53926cdf2ce9fbe7003c9be7fd22ddba8e70087c","f90997069b7e96fe5883f0427a4be525ea6dc72334a016459f8d9d8938d7067c","5a3dcc9298412e6b92b1805ed396d3a208e1de1e6b0d3270d92305c15b1e03b7",{"version":"1ec420a00f622ea36b7c7a52f60c3e3f1a8e082eab2f66a55efb7571e28f1353","signature":"eac4bf0f59a2e1389b8efefcf471ba71cdd99857b1ed4d4be0a90ef6af7f72ec"},{"version":"0e25035ed9e35c3c3e394a50cc16a37e1a9b13eb9ff7552bd32c0505c8317cbb","signature":"7a1588b1e2b8a09f2e260795ba728a8094b2132d6b09afcf3546ccf5594b69e2"},{"version":"06cd2ee214bf1f0b1d1c2ec7421c95be00b80947babc16f7d1d5d43bb808b44f","signature":"8386d630328c85d974b19c965dd2649912428f124305d65893aa37a22af2132d"},{"version":"446d0ed1a5467113b904aaee1d4177816e0b1769de26af992ce079843d9a5a76","signature":"e227fb8de8d9e3ffc74cbc9f2f4d143d77de77f0cede5efbabefb65b16f58665"},{"version":"cf12abf5ff49c9d1b8cbce54f6d8b830389049a913cf0b30f3308f93a9dac4cd","signature":"80ead69eb1c6b2e6f2312386bcaa66c89d583d9108e3684b9ef33111e611c4f9"},{"version":"35926cf456631166daab38a23a430fc3616b64052f68cceeb46c237c181eab2d","signature":"97ee18a584c4cb8d38fb80c0642a70d059ae4a5c7f9e5f40141d146990a36fe6"},"8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef",{"version":"df477450bfd081ff4ef8fdcbdbc3b01ce3e95a6f60675072fadfca2dbbdba23b","signature":"14cbb9666b71ccb2bd2c9d77e3fb3e915604d4ef0242aba3ff74e0f4916a29a8"},"2acb6b79354aebbbfa708c281ba8f19e0d3029db9c6d679ddd493801e2b36090","a2d875a97eeee8872d7a6d30c65fc2c19aee4fca3b98edda1c2f5ce7323c16da",{"version":"a3411f08ae3502388a551af3f54c27c316cc02b53884144e61581e5687546b48","signature":"5c776e3f4ecd2119b576730171f581595133e2dbb6199f5708e5fc43566b5f13"},{"version":"b76018cb1bed3170c247b993159f9a626f19f97bdfbebed3981135bb69d48610","signature":"6e2aa4faa3e5407bde7b225807af3fe20594bea3ca7566cfdb8533aa146108ed"},{"version":"683335d31f39b462175ed7d9a089700360614e857d01c1ae358ef50447ace90d","signature":"624072089bdd943c9de26767a0f72ef7cd4f688e91da3a533a27f0d15a73e22b"},{"version":"418071c627f59ea475ef0a844b5a6e25dc7ec565719b1e9550d60f6fecb2fdb9","signature":"d192e149aa59515c1257aebb883dc09713df6546522916e335bf45d7f031c907"},{"version":"75ba8ea682a062bd303b390761ea9c37a980fc196db3592965a76a272df8d28d","signature":"5ac8951e58fb1421536977b6141285046f325468e38fbbe5eab1aec7b2bd40c7"},"b33cc379e4b39788804c792d43a287fd921a4b8c5a611b57b4dc5f9cf5cf1ff4","9ca9556fe5454a0d0415ac28a0c285f98903d6931433484a3eb28cc16342c4f1","539036099e015c91c44b586d0e87dc138cfdead89de3c924ce94a3a13008cfd9","27d354399096bb8841e6b1050246b625f8c9f7404b6e3ad7bc22348c1b1557c7","a9c18cd6324289f39e248281e97ede0ca37c0ff3706c2514c89826fd217c8570","ad7d80da39636240915656265f0a1456765fa18b6277c0e176195a546fc6227b","7217b81f9740849592010b0c777aa4cae14ec11d4f6f95f3fb8cfd1bc8616a47","8e26328f0c85ecdb769c582454527da6ce1e6b8951203112b6e2f453aa733d16","857e24c2b3646eb0d3a568dcf16e187f8649866f6352a2234f93abbcb72c21dc","5896adafae00503bcfc62403ed7e03d89f95471ae563be2f67ed23dbc2e51d4f",{"version":"e35b7ebb66c54915f5f277a5203646e74c1967c1ca00d40a9755b2ce7f9cf57d","signature":"eaf8f3a36eddd3cd944ce182477bc604ae2b47a53cc5a6f5e3053cdb5971bc28"},{"version":"400f9843e8f14bc58be6c73d66d4d3ca9fb59cd60bea582a7ae05451a5ba0521","signature":"9dcdc9e4d5a464eb64a1fe8162b9747973c7158931badfa81e27982f7230c98e"},{"version":"19451185b962854122fb4e0a1d6ee546096df9bc6334b8e238b45c63e6da5936","signature":"042dd2480ae8d2a2eee927fc87c1e6f40910692b6a3f6cc47cb8097169b96140"},{"version":"e92575c05e26a724619d55a8641b5feceaf6f88790e972860c72e02393cb6216","signature":"16d9ffb92709feba13f3a68274f86fc17395a991aac5059b3c5ed1914bd15aab"},{"version":"7fb4cfdad4ddee79d13402c893c74b5de27ccd47ea26966135b95ae44e19a6ae","signature":"557e54fc40018d4f8a57c3d3d2fe588689c1690cb6eb372c380895a555f1dbf3"},{"version":"9b5f8bed8569caa0d8de319e927240f2ad44f1d240058ae371d0b78f1ec36242","signature":"88e99640928227784676b0736ec1ca196f0eb22dd35b7beb390f890713618fa7"},{"version":"60f1976fa671c2bedd4bab63c6b5d6441153fa7cde081e711875683365ed9d86","signature":"8ad5210b201e59da9453657c4de56a3aa9410deb3d9fdb53123ddbdf5b002289"},{"version":"29c889672a037cd997f86e8987cb1cf0a1f990da0ee2c3ef419e9eb9a898d5bd","signature":"20b071de0f57fe39239ec811c719cd13d4e497cf2f3e71d33c11fcb507269d80"},"60592f5ae1b739c9607a99895d4a3ad5c865b16903e4180e50b256e360a4a104","a79d5df3df6d6688b6b33cb5970757b89350ec8cca6696a9637fd8431e751766","ec6bebedf1805dc3459fb9b92746a2e330c9f018d1561207662b8509ab0b0782","43e0ecc04c2dd89eafe3db81f3db486129fcacf9adba9fd4e10f90afca21656a","e91751abb2372a36a90869d36f6ad5d5e69a84c5513ca99d236554e4dd8b9aa1","5cbc27193321e6ba10f4e9f3c5519649d9e2716cf103efd7eaa7a89e0f8ed1d4",{"version":"d0231519ef565ab150e8894d7ff70fec0298ab9ce8392ca0ef026e13fbdf0ffa","signature":"02f0465665690c6d38b768c790e3b4b799510893fd588eca1c97c6b0ab90e19b"},"f5011428f5bc27b1e1624e627a9c455185a15b762f23e4cdbdaf82e2dff767b9",{"version":"09b354895c0d689c6b46cb2914a25d897907d35a395b487cbb2d83729cb182a3","signature":"f958e961e37a67698d4cf981ec93c6d6158ac6413f0e6097ab70f828574e4159"},{"version":"4d9e04e45fe3229f1d26bf99bbe48e3e6ca9cd6e110988071e75fbd59398bb11","signature":"0030d6d659f1117c07ed8fdda6d68d7c52bd7e1a5e589926b8115bb27a21a65c"},{"version":"f76eb5b5c6afe69b6e5cb19357e7a033c2c689e1903e30035d324f183dda2c03","signature":"430a1849ed5608070519b0b7434c620190dae5fe1e0432480d522e98d319fce3"},{"version":"2722c3400b1235dfa253b8f684f87ef2aa91af7dd2620bc60686f617e8561e82","signature":"a7e294f718c9c31fca2ac482040be1e04d4e418e0419071af62e2ddcb0fd39de"},"05e04f701cd880d05869ebbbfd40f6e235736b21906e1feabcf8a234ab50a6f1",{"version":"37df5532205fb8925e9a6c9167659023f3ccaaff05386c9d5eb15e89258e89b5","signature":"4d6414b4639842f21b8d15f3cc58c47dd9e941384fc2a9c8d1f743cf1f659670"},"01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216",{"version":"21bfd54f395a989da0b06787c244ac33df9551ece6275568838201460c6d4da8","signature":"e67f98f2422dac96dae6dcdfdbb112baed7c683fb8bcac88c315e620f7428219"},{"version":"e9eccfa377004559a106d4e20aec19605d33033fbb915402195842fc4e1da349","signature":"c8f8209c90add753a4a41116fd20f4403dd7dbc1f9efdd2cacd41448c8d42f1e"},{"version":"c0c79b81782eecfbb9d533bd7befd60213cc2b1fb4d7a2e36ed38a1a459702e5","signature":"678418428be6c5862bfdebbf9e1c2e524e27b02a5a97e385cbb4aeea40d38ee1"},"44469f7cd056fda8a8c31ce768df26a401262098db908b436155b3f7860734c1",{"version":"e17e73ad87ddf50c51404d043fda32695e08d6ecc04ec5550901a0db1e104bf0","signature":"1ed3c7d3b29299a3b3fdc741705fda7cb6926858021594011b3b9716ed2b8a2c"},{"version":"ce179c5f204972788af904f27b73dbab32827290c500f66340e4fff0862d1cc7","signature":"14c3c8f9b0393190bc9c0ceb84a62ac3602fae7dee5d1e4d3a38bd87c26491b7"},{"version":"59e90f442b81458bad340225fb7197d50c083274bf5e2c3b229464c4e34b7f50","signature":"5dcc49d402b4417cdccb7e352be8709fdeecdd8e0448499775298ea3ca760615"},{"version":"ac1ec7ccdcdb51bd7476511af3af4f295e83159b40ee58eb9c2102d906330c37","signature":"d142dc3e16574d0fd87e03bf96cd7d3ee7df1de858873ec0df1d6e6d1c621ddd"},"3dce33e7eb25594863b8e615f14a45ab98190d85953436750644212d8a18c066",{"version":"0935801325cb10de80425aa3ca8f89689e530d960312149648aaad9a7226f499","signature":"e033f5aaabc4c100888d5270c17266d1201808d77844313ddf1c2d19466a4350"},{"version":"05db0da9b229a0ff5fc598d84478f50600ae03196144fda46efde242a4e4cd91","signature":"72302d9510a98d75eb62a4fc62fc2c613b322f9ad6ac0c4636c10885d4acd7c3"},"08ca7fb61c20a0a49ac12c40a19788170d0615b7a4ca41bcb2b66e7e05650576",{"version":"448831be887f04d483c9110c2150bab77d3584a094792bed284a3551ed63762f","signature":"f64ec840554a2b68b20e225572578957467b72a41809e0badeaf7ebb03b1accf"},{"version":"0af7d9ec6f20704e25fdf6f4dbff839451ba737c7c0d3004ceef55e69c81d2dc","signature":"45d535535c83400cb39b0ac78376c4165bae00f30cbedb9ae4de66f85127e284"},{"version":"92af612f7059a5b52e6915d7c230e3e48d8e999e49dbc3a92db2718fa8171e91","signature":"8b479931d3e7050714e4f7e8b1013cbf1cc06490b6d65685722537e8bd31b2a9"},{"version":"c951312973c57f624791e838042cf2712d6f695c38d879c1d75a3070cc0f7530","signature":"15eed019c31c05b2caed4ae6286bdc719ac0d248500dffaba3483bb2710f35c2"},{"version":"eafc8908dca504220220de30b0664776803d2a7732cffbde3a2553c8e7e747f4","signature":"6816b5c5ac89a96fda9f4f364b7c3f719f9bf55a00d418f308849f979d447c72"},{"version":"3a9b59ced7fbd1c6a5bb00ec427fe2db24c8bdaf572daa33d7f1a057c1395fb3","signature":"47a3900fd1964ee1f454b39634c12e1f852721aadef401982ea158b909deaf5e"},{"version":"221222cdf08a86471bd5d3fe7a8dfa87b90a50bd6c0e15807dba9738a75c7ece","signature":"3636a1a0294a3885867fa020e7dd87e1c8dd16938a3212c6e7a5e9491a71c609"},"7bb6dfa42f1353cfcd5a8dd77a509471436b3068e1a947deb309b39cc3c011ab",{"version":"28525aaff28710069c35a85b445619c5f69254425ffda21b9e0ee98b75820f3c","signature":"1f459338ba4161fabbc3f8097b1cc1158122618b1909aa0f3fdf24f4736de0a1"},{"version":"be1a535dbface335e65e39a1858670a97e720137ac189fd9d03a2e39c437b21d","signature":"128271b9f9ad9bb9d670a22baa338a57ff29bfec61f73a4a68b419aab5dd3068"},{"version":"a6b1384dde94ffb8276287be8baaa3074ceb89293aaca9fd4c90cc11438ba7e4","signature":"fb462e7161e43914c3b36f6320dced9a0a64793affc19cc705255452020c878a"},{"version":"740659eb781d9b7916d45838804cd7ae17658d05b470b2719e5c14b19da17736","signature":"0a669b3ee10ed8006023ccd752a7cc89a02d07f1fe2b20c3185fd1320d2547a6"},{"version":"344c6954204743186ee3d9a91768b7ab3da10595989650577a11405a0cbb1b73","signature":"826bcd0a8f30a946410786f56ef7912e0417d9e7ab933d92229a8873aaf0e8f5"},{"version":"ebcbf9dd326932f03f42407bf432ac2b450fcefc300ad0c9ae232f5d81cdaa07","signature":"b6881de986e15ada51ded9df632e73500dea27a0dde0afeaadad2a9058ffc042"},"1ee47e6ed1cf98c573934f9a63e65cd7acf7314a2654da2630c2be6bda12871b","8fcc2bc8dae2c29f7db02ca5112f343936e544bab0dd66c997ec2045fae4b660","89a120f976e17500b9e242637ae377462850517b04aa45981c92c60a490386ee","5e27d8df0309ba8dbd8459750ef7c2c1db5aedeabbc819220a1ecca79c84f4dc","8ef5395d145d1ae1306c20580380779723542f0a4d5c22c0dfe536d5922022ec","155d9f9576b2bb2662e58b8dc5979c3b614250c3279bbdddfbe54749b0ef2ec2","8a9e43259a9f444d80be68f87fd5d8a90c7915b519ef2d3e434d68a835490978","ee80d37ca2d62bd6e33106596fdf39827c248fab4b6dedcee5bdf6f9b4fca454","e95f565a375c039e04187524457c39b362419bdd537afcd52162e8df04e1f87c","d57804e7c53f370b8df0417df2aaea2c5cc2bcae96d6bb06f6bbdf8c3f06f939","a4dad01f270d6cd8ff8d8229d0975833ebf847e560dafaded532f8e31a497ecf","4e78c87355f7e4fd9524d7582a14bf72771aeee33acb73a848de8bf2e44d8831","71a2be4b91958938b4ada303568f2b7fedab5e7e8bc36ca952d51e10e712ae75",{"version":"1859a37a3e36433da3ad6328975dfdd6da57dffbc3dfa0da8a9d92ac306f561a","signature":"2adcb55c824175f9261dec0ff3c7aab0450df6f3aebdc42dc99bcce194dad298"},"0dffb71a150679ddb64f93ee1dc1c4e0a9c29e7e955c58b784be425d9dade113","577027a6a930472c459f3335a44f3743e7e5c25ff3fced921da64c4bd0f9eb40","912153b1d2a38807622e6786010b9ec3da099dccc5dc57cd991c9a38465bfa86","58d18a147391ee4ca6334bd5c577bd06d2891b6e1aa5831beaecae3ecb546d1e","39d246c1fdeb35b9b91c7e87c52b93032406ce1c4be7ede9bae087af1f49ab6a","35f66b637d6fa2a0a3fbf582e59f4b8ea3dd793197b2c342e006470967e060d3","35dc8360ec43ec195f38dc9a3a09c0610096bdb48dbf72dff36a4b84eeb9a081","94cc7bf431f3bf2677c1860a4ee1ff541b253dc5f85a05acac61defe9e9bf591","a1e824c3a6098e9d2e5ffa20b837c6f7adad3e162558e192995e586b7ba3814d","316c8125fe3f12e88e773835e5b7c3ea98674bb9c59d2c21b8e93b020fa07ad7","d176c26f8449419a883a17c2e21176a7c285911b3bcb8e25dc122acbf5b1f3df","938ebb9e8886ccd3c463aa9a6becef6109533c9c5f73cb8f39d4c5b39a070bf3","dec046916e60d4d65e1e861573c8712831383b31f84f52161352d06c25ce0cf4","d8407537466a907ee6b5b3a3759c983c916bdfab68ea1e633c0f5ee7cb43c3f4","73af630d0524c261b9258e6460a4da1fdc00124081dbe7fcc725b166decc6c98","5bb2fe480d35c40db123a3e2014c259e62bf80a33e89c8b600b98e4d93e8ea5e","41b893af46d1f675d25764ff11a6261f99e2b805a4ede479fcd24ae97ecb8011","c7b4cfd511f802a81236e26279d9aaae85dafd75e3475a267bae03b4832e2267","a98e893eb080c21d3157a1c443c96b6a6fb04f1c9f14de684da2a922b21c2961","c53fa4a411d39e3637b047d27abca64cd3cc0d0fec65e785829a7915b5c47bdd","149c7e21aefc2ea04e9f2679e3c88c7b9067a702cab5a53cbbcba0a4960c6caa","eea6ac77d824b8e153c674c947fa7bb287c54ab7539fd45d61ed51e23b2d0829","9016564a05de3860f3cb1744354fccc4caa37a2680e1cc0ddf7a982f026a4ee0","67d7be7d127c2488e886ad1a5c6e9245f7c2d97242abc1b78b61823fd038f5aa","37e981a83e46cbb9bf8fd184aded3db880fb3f1574d104f8d58ca6b7aac81590","4cb843daf1c038117a7e3a4eefd8e7e7466fce0596e310b51a03585aaa28f6a0","57491e2838c68be56e0b88005a5b228d2c27eeadc3d2fcc5a28787b3f868978e","aecf4724de592761d5fe0ff0428bbac595b6493bb127081e62c6829e3a40fe48","276021d90fc4c1435aa0638659147159f41fd8d2559abbd133b651824c80c6bf","da64479de0f2e80f598db0aa0efeaeb51df8d49243d85ad3f73fd183ea6e04d1","60d2790771a24f1dbcebef2dcd34c3bf56a0b504d13b0111182cbfb4c4e30baf","25fe2e9666d90ade5913f31f309391c58d268ce3c5553a41d7a84e4e26c91342","5509d07a6a598798b9a03a97e9a01ce9a949ef6914cbcb16314b9e62e74b7dd0","22133a7899ff76ca6558864bafb58f9674094fda894299978d8e83562c7fb409","7beb26c462791d31790d1eb9ef0ed1868d970efc01ad446d4eeec7d0f142dd88","e0e93d62d8063ac515acadb9d1b152996a96e8df26475736ecff4b1023bb56a5","e01062cac4b274b472c8a46e9fee0ff63eb8263182211b4abaa5f063f47a08d9","16c6f0224cf150ed1ab8144d60a91d1d83fec81c7bd0e53f02f1eb0e9ebf5925","aaad90530d1e21eeb26b2390233fac7daefd82c96c19af5d1c41d6b7d191b18d","682979de27178401721b6c18d7eead3d9d06d832abf47b2660d10a6d4abb858b","bd4bd29bdcba22c675b0a62da0e60fb6472fb2479e5f0cc483edfd23a384a0e1","df220fa1c3aad1cbf8ac8e3d7f25e95d37cc1ddf54c77b328a1458d1071f6137","d83cd382dee5139a136c3ccd3f52a9d8e8702a2b53dcd81c76807932bf2b5b57","ab8492b33c9d6a086013a7ce136b8a1ff16d684acc416d2623719c8146f373a1","ad5dd431da11184b37ec2e55487958e7dbd591b54f1155906bb113661a20b5a3","e490a1200bc2fd80f98b376715c65a00a0c29e0ec5fbb9869be0b689d0a082c8","cb999135eb4320c88bb60fe7e4d19a2fc98d17a949aa35eb8ca4d12a30dce627","1dfea586acb84bbe87e08a092cae356265001ffee64258c8cdae2483ee5beffc","ad5b06007c303280d89c6883369e9e9af979e199562c9765bf709d567abb8c1d","cf1efeee7a245e2baf930c0ba8c1be174e175c8a95e12eb6db70398aed294f6d","62c4bdf6937f4884a45ebbb5b33c0f31267e4085353be632dac46f9b49883296","6e2e0cb1e911d0e769c989c2d89e5556614f48d44738708630bddaaa82da996d","8921a0268e2ae1eabbb0a246271df000ea1f09992d8a29d6716d1595fbba6f2b","4d11730841ec9de1b0a257a36f1dcf329d458703972e202adabf45cc11ad0b7e","6a1a667b57b2912c88030279304b7bb9df5d69b17dd9cf1194fdc28bcacba93a","8681e2b00900f0fa3cb81623e151f7027b3ae836436f224691b1739bfa53c267","41703355ce9bd47532b5e8cb875c6be5e3c36e399eca652c63293c9159fe11fb","6291c890d71c10fba98e717d3d66b1b96618a59ab9222355f39aa4f8b1bcd616",{"version":"3349a9c1033483cfab1b99e20bed946d21285d5a0816fcf40e9c2d457f660530","signature":"da0d4b8af4236f9ff707be3b734a60625b264c3e84fd3c4aee55e5b5e245ccda"},{"version":"33330e4e470b14d092c1a43dba936a07b2be29c27118491d9e9141604285a6e7","signature":"9c1c603df4afdf5c8623237bb8ddfcb38fb889c2bd5f8112a65145167af1f51c"},{"version":"4802f9f93059e9a4edc28950c825549a9e0156071f47be1176e2d96b8e581329","signature":"6f7832da6d34b86ef8987e0a4e1af2a78c00abacfc646b24a2bd7e03ba95b188"},{"version":"82bbb4ab4eca6571e203fa7bc111d52fe781f4531127b264e7312d30775a8c97","signature":"cb15a3e457e04b72ed7034c9f7391c129fdf5e21fcc0e99f3562b6ace5fff834"},"af43e2fbefcb987495af3885475bc20fec590234df2ca53afd1891d38f10527c",{"version":"45f859a2712ee9bc1f583cf64250b2e0a5d4d3c745ac74fd2120e80bfb6acf29","signature":"eaa9a57679b8cdafac3193dd76f8061e6c43a36bfcd666c00d146ea55d2c44ff"},{"version":"f03db74a2aa1817e50db7b84b19c7b44db7c5a312b487249dd74ce19c160c57d","signature":"91820021fc0cea6268b5bd310256e874b04113766d4410b6b2f7945e4a81f790"},"3b538101dd1fe980dececea18d08ad347a371e95b29cb4c4172cf10a21520689",{"version":"98526834a7377b0c4edac5245872e9d6c588548695ceee91e44ceb9e137856de","signature":"c2739c59f84fe557bc939d500ef26b8a72412c0e25de59722c4741e77b23174f"},{"version":"a5a520d7bdb8c782c912b558553fd1b8fde273f1438993b195f82ac1043aab8f","signature":"70fb8bbffef46c1de7dab4ea95790c40b99b366079d45e15661fc09a3f47c7e7"},{"version":"1898a4b23af042b05220337f52f9545662776b8541384544cbcde86c7c9c93db","signature":"41390db16ee8c6174d43035e0dd8cb95feb1c27c2d2714474830506776ea49d6"},{"version":"338e86270e9a1212f0dbc3ec26c7f1a762c342218387bcf444301a35aa1327a4","signature":"9fd34f53674703b52e87fffec7558236bc38be35ee123b274293afd667d9469e"},{"version":"c8932ce1b0819d532210079b052cff64a57ba9ca7a195c9025eb17a566a042e3","signature":"d2be4fce51176f5d1a089b7d128d0e4a1d1d76574e711011bfeacf6a6e7fd975"},{"version":"1b5734071307568ca212d1fbe9c72c41f52a8e1440829b14779e384f52bb9cc0","signature":"9e00154ed338ac78ce25ccba552841af065e80f6c166fb26cf5c5757209695ef"},{"version":"010e9e2f30452a1637e6716bef5192ca3bc86444b908ed207cfff8260d87e846","signature":"a8726095f712c366103eb12f36a6f86c41d7af79dc0709acf9dbd4d8a591ff07"},{"version":"a3dfa48f5b700b4b2f3434c3c6ab6e901447fd51faaa036ef231016a12b6ef79","signature":"0fa1009b7a3e7d65fed2d78ce43c28d5688e592dca7d08458a46767c683ffe51"},{"version":"bb8c6145979cbca0b3f3fb7a306e8d62e0051fc960de079d12a303d7b9849dd6","signature":"8c8d1c8481cd97dea4fa51692a275c00078c69f745f7a695130483dae70be9c9"},{"version":"31365e2fc957f608654295a66214d7bc9acc4ea7e0b06fef7df688322596f5b3","signature":"7585f9594f66297d43618b79b91c7f63f47197b7530dcc370e61e32b01055c67"},{"version":"f82b455903fec1570517cb9a1abd61ea4a79fd7b07939c0c83c297b648e018a3","signature":"5084c6731a407e152679059a9090a0e33612d6006ce565432cda599f66b7c17f"},{"version":"a43cbcd616e880ee8900641f5576216a9611a2d32756981de43f23f23e85c389","signature":"a8a91f35c90a89bcb4eb19363066b852ff3d1f206d70aa19b9d58a66a0b460df"},{"version":"e764ebbd576a44cda0c3f26efeff47539749f3718c99c9d9b13b3e5b82589d8b","signature":"741d63f5f8d9b317b9a8ac42fb7bc65d28808f4a32608c852ebe410518a852a0"},{"version":"7452617d3f10d5445742ea862d6893de551a1525d7c36b51e84ea7e38f81774d","signature":"b7dd1043a7b88ec6863d1d9faaee6c1b88f2cee1d6fa30b0f8841ad66e6f8ec1"},{"version":"81f33b10e9846596a899ab3536d6cf17e5dee177322fe32cb3f6751c2decfe8a","signature":"bc62d97b6ae3d63bb751f4d4b4be09c8c4201efe6888ae186da181668d7fe130"},{"version":"a2b1d452d105c3dd7332e833285ab04576a1fa78e205c7ddf8749657fb536de7","signature":"c51b8ec155e0e48ade2454f1b4fdee987183815af3807af61a104cdd0e7a85dc"},{"version":"d8fb4b93f32a1357c02b451d2b65eadd09fd001738766d0078d0ef04a118912c","signature":"93afddf96dcaea0fe2ad8f91cde215c299f29238e2e95fc1096f8801b68fac30"},"0ba637a67e23360aa6f43331ef6ac0111f805dc868cddd8105ac750a6157b71e",{"version":"292d7f402e0c2dc9d6ff2544548292fe11db7e6de0cd16616893c907a641dc4d","signature":"767a9be119709b9f24cdfff6715467c3243125df2ee89e5a0525797558fdb937"},"bc6dd50ac2fc9a7ca6488811b116bd0ddd606338db0bb97852c8fcf757e2d7f5","982017b9d20d48b8d7dd48a07f93a367ddae106846a04146cf58171571ceafed","a7a74b55a74b69119990ec09675e3f7c484cea5e7fc21639d7aafe26225b118f",{"version":"b514542e63c5fadc5086357194e976a30b8ca13f419fad5f3d0b5dc183989d87","signature":"fa82b90cf1844a45072819f105810d52864a8ad34ad08e3593f96d21d20ccf08"},{"version":"6db57f6e0b5775a3327a17e8b671b20746bb7254b639c61440f48e24f40f739c","signature":"cc3abbdac27a8cda4c7045fc5ce3561c52b1966e15d362b3a3e1ef5dc7ac5a7a"},{"version":"00d77fcf992d9f0a08b9f32b2486c4caf50746f8ec774258bd855bac7fc42b39","signature":"4ded1bce1ce217ec01619bdbcf24b91500316063f46eaf7b916f4005d871a174"},"309f8809904d650f26f4d485f192e4db8586275086a88fb211c2ccc35c4bfcdb",{"version":"a48e95e5b4f56daca7efd31eefae08c7690efd22a91cbb39398e3281dacc2514","signature":"cafbf3ac2d0b516e494ed5a69e8e65f75f30d99dd9520a7c18db5fd62a24e4b3"},{"version":"0d2396acb8114cc90a94970d3e0227e3424688727bea701caa03e68fd1863785","signature":"8d3a24675c9d521f4f4b6d1ff1f6725930d2f706cdee58a800c4d3fea1f30ad2"},{"version":"cf6c0a4f630123d685f7f89779f28e870d255e752fa015605fb3c9987cb5d301","signature":"5cd765283a7e38be6eddbae8c7172447b6b33734c5f838d08547034346d4c8eb"},{"version":"5fcdcdad99061e099cb8dd287a382dc112d7e995106b4d086ae0e3225d927d8d","signature":"65e35f186ca4cdd28c2b31f1d00625d2b044474082fca06060c4c9885b51892a"},"b938dcd1f76e9e454e5d7f8fb263387dbc4b1c6a9b08dc8c01dbbda0bd1b35d4",{"version":"8e8fa46b85b847a411622f0719416076c92255c5de9ae8c0cc9509e625b66356","signature":"80e05e562c6618ef9ea6a354cc2b0685e5c386fb8b8a98de4495518e5b26075c"},{"version":"d895e2f3d812f282a23f62b77ff7f5cd0d196186c10ec27df98a79ab7ca52147","signature":"ec0d2bace4ab2d364f7f000aa7b457781b1cd6126406b242a4f73a5c3a314053"},{"version":"c349d1812a187fe9ebe3b5a19593f650986730442b2d73fb9a8d151fad9934f1","signature":"d7f0c6f4acc00dba1e48419af5b0480d3facfba3038589fa8adbacad6f7690f1"},"bdf359626b0f43cfef035a3f421f94f1fde72a368ed46bcb7b81f03bd426bbbe",{"version":"f743ade02ac8bf818d6ff252d035467df7293b1036191bbdbb60dec578cc2083","signature":"0c841ce1594ac220ca0b88545d7523aebcdb7338f7940d7171d5055e40d6373b"},"d4da9754445ea9eefe81c37e29c40fc5541fc5716c01676896575f1ad7dfeaf1",{"version":"3f2d8515455dc6463bfa490f19330c57b89f0d992f880ed477fc5b37dc81c6f4","signature":"14f2aee86d59020450a611d982b67b52bccb1ed3be69235bd534f0979a3428a6"},{"version":"dd43edc707491040dab83f4a516235e309a2b46bda832609ab87154dc634673e","signature":"f07b4ebd2e94ebd50f9c59c6b523a98344a4d8796d95f5cc39c1ce1abdc412cc"},{"version":"58d7f38b53d16da3cb329560664b9251bf0aa4f8be52f943107eb7b210d24244","signature":"5ccf107326a57f88fdf8cbc4cf4ddaf61c82aee27eb104daa18da89cf2115cf7"},{"version":"9316d35f72ca38887f97965725c9a0e819cf51ef1d37732569b50be352132afc","signature":"8bc568980d5d1ac432eb38605a1539ac940096784839655dc7f2057704b53b8b"},"b3edd21907680a84bc7bbc6c72c37b77e93ca0fd4f82f4080b7b6a2254d0872c",{"version":"8339e981a787f62feff9a471c82f8b696cc80b26580eca0c81a18b4a488c02a1","signature":"7a7877232ce50135a0511a2758d4378ebe4cc8dc5eda26d7811292ec933a28a5"},{"version":"d77d86686983a7413ec0d242dd08e1001bf8ea4525a9f98145e46e85fcd1f962","signature":"904fc035816d6b5130ad858d55be6d3385f40eb4f0ff3f9113345c790bbf39ab"},"59a22f4bfc55490c51d999c805802f25f015ec21d83c11aa5db20a48a7d6fd7c",{"version":"a380f6eb4b4d506952733777948b26a9ae11e9da71c5daa30ad98339b60a893b","signature":"206077649afc172aca74e7dcee888e9f3534d4337c5df6f5df817f62cd7b57b7"},{"version":"5ee7c421ee5fd5cc76e56f59eb83e5393a243e735dc213d201052463ac7fdd49","signature":"b95d47e18e72a7f90c8555ebfe5e1781716e3fb19fb611c2adae3c0850cb6d33"},{"version":"3966c5c46ee7941f74e4ae6a0963914b02b358c6b1e61a3b0844e4f5aa4c9353","signature":"4105da24ffc6cf3424b6875a478f7e9f61be81962e3d59dae904c7e3442a9416"},"8bf9eb184fe55d122cbda02300633f9ccf8f740c8d519959052bdfc958355fdb",{"version":"d4ec0046d622b5849e2980cd2c58247d53c07badbe350a0b2384e5f190d0f229","signature":"2ab909e818fcd7db22ebc7ce4185da7d2142abe1e1ec7df33d4687cf30012f8b"},{"version":"31cd52eb2a7aae47db1a77409d817dedfe827dbf23c957b734551aa97bb265b0","signature":"46708fcae3999344326c95961786347cceb0cd634a797f98cd0f346e0458118e"},"2362353e2d9faf8016a5b46a3da76823cf48156b3018dd371e4f80f1e6239616",{"version":"cbd37dd6b2f4acf4f7c69fdd3c51bbdc59ac6378e92fd9e33cb4afd319ef9540","signature":"3806f25c807e84c2f072797ae36011f6443bcd78e4fa57654ced0013a7ad16f7"},"88957d2e3a59673392fea81daf51ac4ecc8018844280e0d99ad595994af8a010",{"version":"1bf14bc941351852d94d10d76628698e5af020b493bda2a2a50dd9cbd3b1278b","signature":"dbd3ac227c7bd2e59e3a386b77339d5ed4d597e61c10e9943c2507201f350571"},{"version":"886b0e6956266b1d68074f5045143552cee82bc6f57db0e8ffcb51aa84e8948d","signature":"8a9cb8acbd873d36a7cd523724d3a2ee35334bf721ff2077c410da9933ba286f"},"b38b31cd0d2a33394106638287abcfa9a92a3211126c22cd1c072479dc397985",{"version":"ddae376c70c83285f82eccffcb5f104ba85c1e7a644c9536a392eb27cc3692ae","signature":"2e534ed67713dde3fa041ca2656100b5650094c79a078f7697f49f9133fc51cd"},"fa7828312d84b7d311e6e4f2fbbb131bf80d41a51fb741c668cde40204471d03",{"version":"31a7969cbdfc0819fa685f7777c61d4972170f5e46a3e25088ba580bbddb62c2","signature":"43023b363e9b54db63bda90809520c615747e54eaceaada90f9d3a2b47e670a4"},{"version":"9ceebfbb5c2aa678bbc93358ca4b80e42f992c77165587509b0b90ff67ae5fe4","signature":"beeaae3ae7f26f640265e3caa0f4623caf9efe1cbdfdc6d155a42def66e80038"},{"version":"1842f092d2761e1202a4ff112cabf20d0c0d833d55227f497cd9c4357074ee55","signature":"4e4ccc8541aee8556c652955258e8389c58b741cc9cbea6e323c5e90a785f400"},{"version":"bad83313f9f18438b1695753c0464d06e1dfa1ec51b3f8fecf32474a3932a6a7","signature":"f81448b6f90de5a81c5dbe857ab630a0b8acd45bf0ede8cef3717721ad70fb54"},{"version":"f15f3c57d9633b1cc96f60f41f03bfff8bfc7ace73f1a2fe1eb984c0f9412657","signature":"674749ffe6f73cfe1a74c7b4267eb2a1876973feb796c93385f8480bf61899b7"},{"version":"6914b73e018f46bb7f03b8fc3a1896c88803a482396adfa1f4a78de12b5d6b4d","signature":"0956c60ae7bce834e722c679c31a18012298d671ac94abc2791b347d79084c2c"},{"version":"167bf258552650e615309142147b555c680c8dc7847cbe5939111ea0c30935ae","signature":"4cc50be13d26e63825d8c700bc1e5a44aa4d396481a03b817a779c226e796d59"},{"version":"107c61f75c31bbf50af518fd263da0d21c86b39e9aa089fc183e1a69084281de","signature":"f1db78d36e1a53c8ee6830a7db8be92f68c3d9e45c0b4382eafea6325a713a1d"},{"version":"02f021d19076b9bdc57c2925993b8f1ab5cc21603d37f12d630ba24ba5931980","signature":"efc0a4b94f5e3b88fabb1c98570d0fbba2949d0caa3270bd21c38a30bec455d6"},{"version":"c5eb57b9afea27a6e8656ab693e8bd7d160d530293a8f629a85cf85ec5f0e20b","signature":"43eb156c0ead0e5b12f31411d4ffb478ffada60a2aae6e75442a1aa86c4eafdd"},{"version":"0f027a86c258818cddb10d50d211565236dd5e2eb2f757540d522e0ec12911b5","signature":"0a313686b7e5c6b69ab598926657f51256bb291059985f4aad5f84fb825c141c"},{"version":"78f17995980d42d8407e08469dc7840605c7ee25256fef50f283e699b7f358af","signature":"8847f3277b95d8046da47c63d626e7d9104c9d8c5acbb6f8440a9e199df0c56f"},{"version":"ca55349bee4f153993eafdef9efc58bd5cd4ffe8fb554398ed6bb9fa3dcd789b","signature":"48a2d314c1a990acae887e7ef51177199c3176e733cad4d57739ba6a22d5ead0"},{"version":"75a0f0d89e7441a77310165306c730266368a07954353bad7c996b8399e23e44","signature":"3cd4fb38f6f16d46640727d99f4bbc77fb2b0d3c1d821fec0a1629dc32c6d1be"},{"version":"fc9b89cd1928a865cf791155e7a1abcabf479d02c37b567782fde963fb26259e","signature":"48adfdb8ce6d65b3d2ffb05971ed501833e835b1ec7751402ede274a56a1a697"},{"version":"711a781aa2a3f208f57c73f2ea061f7a87571b3af39677f69876cef1a6831b17","signature":"e67388d1ce444d71a00104cf32f4e9e5d8e5801b5b432aab18bdf1767b0e694e"},{"version":"ad3620638c1842060e964aa81dfe2272e61c4d3a1fcd845c4d56788da0649e26","signature":"5723a348cf1a316106cc66bbe841491a11efebdf5e14a19f48d3e6a7d531bf91"},{"version":"30eb8b112548d3078871f02b7fb80b8ccfb57751d4476b173ea3f9c154b71b85","signature":"9069cd6d4cf3f00a363ebe2a6c1d306e51b86268a00872cc4cebf017184ea347"},{"version":"1624831c405e833248137ae723cd36fdf1a709026b4949360cb8309c1bc5c424","signature":"6a9e02efd45b5bb617f270fa7d2d6da5de09017cac12da05b728bf338d1bf57a"},"a1396a5e67084c5669c2c65f5130acd7671ecb5552680abc05f95fc118bbc991","8bd139fbb1bede0acf6220aa169bcffb63b3555dc807f5951df14165a7d01177",{"version":"4ffc566fe57b0d52b928db0a4fc750416b56852e9a672200887499c19e5c6931","signature":"cd1d67c575ebbf5801114902eed14a4483a6c6da60e5afefc056fa3adc9239d5"},"0b8638c8c4169b36461a991601f51882e8a3911c4c4094ab114c223442d413e3","1cf13a0e412ccde6ac154f59ad8e7c04ec603951a090c7799e107e5aff594c5c",{"version":"70f0ddc58f8b7283e1cffa39863938ab694e14fb3dcf0cac4d78b2d002f91255","affectsGlobalScope":true},{"version":"79da89e1b61cecf107f52a0c2578f31528bc0accdc73bec7325f468a5706a559","affectsGlobalScope":true},"4de163cf9037509faf9276540c717c0879309ee4e385b5ccfe6de54868d50de1","d1d83c8c4de498736fe415d9a44d5c5d0f025d584d4759267c38c4f026289322","c31294ba7381e921caa30d4408fa7637053d9cb3456a750f276fd8a9bb0e42d8","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","e86f1ef04706b7c7f3955bcb6db09f559ad7b33f08a29f30e03283d53b17750c",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"bee89e1eb6425eb49894f3f25e4562dc2564e84e5aa7610b7e13d8ecddf8f5db","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","dea2650c477f53d503a27f78ed17b13d7184c2f922eb4d3367ccf52634765467","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","085d4c9f010e6f363961dd1939a851d029b97994f705d79f2a72a0c88a5c4bc5",{"version":"16a14d16cdf08b9a913f46e4a0e4d423158065b0ee276378775d5d5616059cfa","affectsGlobalScope":true},"a639a78cbf73be91da5c954684b705e98e3b809d6c8e0026b114cda70802c37c","975f84de013567851d216d78a3a86736bb330cae11fdc907b222dffa148b31d2","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044",{"version":"51d5f2027771221d30dbb2a45dcd35d06164e1842ad6c2e9058bc6bbe90a02e9","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","6503fb6addf62f9b10f8564d9869ad824565a914ec1ac3dd7d13da14a3f57036","0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","f313731860257325f13351575f381fef333d4dfe30daf5a2e72f894208feea08","951b37f7d86f6012f09e6b35f1de57c69d75f16908cb0adaa56b93675ea0b853","3816fc03ffd9cbd1a7a3362a264756a4a1d547caabea50ca68303046be40e376","0c417b4ec46b88fb62a43ec00204700b560d01eb5677c7faa8ecd34610f096a8","13d29cdeb64e8496424edf42749bbb47de5e42d201cf958911a4638cbcffbd3f","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","c757372a092924f5c16eaf11a1475b80b95bb4dae49fe3242d2ad908f97d5abe","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true},"9c6b1825e26a38284f409378ff194eca46b40a659ca41169e0922fe18a996ad9","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","c8a34d0c858532a9fab7f0b65f3cff6507df055a0cd8b965c4fd5667b5a0cf7d","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","a73a445c1e0a6d0f8b48e8eb22dc9d647896783a7f8991cbbc31c0d94bf1f5a2","e7500c5c071db4d1e20e87166be266f489dd632b738e885b221e6efa6c8efe89","bd85e061719661505dc7c273cb72a4c7fba05fb4e24520e8caca9f9f074462c3","e109f5f766ef2fb64aa3c0a8918ebfb66c011f3f43611b536512675bc1d32834","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b6a6fb3519346f9cd67d89bb7455138328691b1780688fac1febe03ae3648cd9","168435ab3390620aebf1aa0001b380983582d0849755eeb17f2c501d1fc57587",{"version":"159733de19927f949b83112a45b7c52ebc0bbad1605a668d5c19ba65e0ee9128","affectsGlobalScope":true},{"version":"c16dbaa3868bacd3383a553f462f20fa8fa671dfa1e92ac464a5c7ffcfcc37c9","affectsGlobalScope":true},"a6a80d576cb7beda26af64d1e0a23e382c9986fae214de994870f4cd7b4e0ea1","aec59f80c62291ec634283d443b27ebe6fc6cf57670057aa9a172927675bfbea","829c6dfd3224be3b599c64ce7fa9136a3422ac7ab4569cc52469c65574facb23","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","b7b0003c5404c9cae2d7caf5d6b469b190cea06cce7815ba0e479a4457875290"],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"inlineSourceMap":true,"inlineSources":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":false,"target":6},"fileIdsList":[[312,317,361],[312,320,321,326,349,351],[312,317,318,319,351],[312,317,349],[312],[357],[354],[310,354,355],[306],[307,309],[308],[312,318],[312,323,344],[312,325],[312,317,340,342,344],[311,354],[312,315,317,318,319,320,321,322,323,324,325,328,329,330,331,332,336,337,339,340,341,342,343,345,348,349,350,351,352,354,361],[312,315,339,340,342,344,348,349,351,352,354],[312,313,315,339,340,342,344,348,349,350,351,354],[312,317],[312,315,317,330,340,342,344,345],[312,335,340,342,343,344],[312,320,328,351],[312,329,351],[312,315,323,330,342,344,361],[356],[344],[306,308],[315,350],[312,320,323],[312,328],[314,348,349,350],[312,315,317,318,319,320,321,323,325,326,327,328,329,330,331,332,336,337,339,340,341,343,344,345,348,349,350,351,352,354,361],[312,313,315,339,340,342,344,348,349,350,351,352,353],[349,351,352],[312,313,339,340,342,344,348,349,350,351,352,354],[312,315,317,318,319,320,321,323,328,329,330,333,334,335,336,337,338,340,342,344,348,349,350,352,354,361],[312,315,316,317,320,329,330,334,335,336,337,338,339,340,341,342,343,344,345,346,347,349,350,351,352,354],[342,344],[359],[316,348,354],[312,315,317,322,339,342,344,348,350,352,354],[348],[312,317,320,329],[312,320,334,335,337],[312,342],[312,320,337,340,342,343,344,345],[312,319],[349,351,358,359,360],[344,361],[246],[241,242,245,246],[226,241,242,245,247],[241],[55,88,242,245,246,249,256],[245,246,249,250,256,258],[243,244,438],[242,243,244,245,246,247,248,249,259,260,261],[176,242,245,246,249,256],[256,258,262,283,285],[195],[55,196,197],[196,198,199],[55,195,197,200],[197,200,202,203,219],[197,200,201],[55,176,187,195,197,200,202,203,213,214,215],[215,216,217],[55,88,197,200,202,203,204],[204,205],[204,206,218],[284],[241,262],[176,195,250,251,253,255,262],[257],[220,224],[223],[55,176,226,286,368,402,406,413,416,420,423,424,426,428,432],[55,225,226,241,277,286,289,368,402,406,413,416,420,421,423],[424,429],[47,176,425],[176,177,439],[225,406,417,430,431],[241,291,430,432],[47,241,417],[88,176,274],[47,195,277,389,402,408,413,430,432],[47,409,411,430,432],[50,195,277,389,402],[410],[409,410,411,412],[177],[34],[177,178,275,291,365,368,371,389,397,402,406,408,413,416,417,418,420,423,426,428,430,431,432,436,437],[176,402],[422],[227,407],[47,430,432],[47,406],[225,402,403,430],[403,404,405],[47,88,364,365,403,404,430,432,439],[363],[176,178,225],[390,394,395,396],[55,364,390,395,402,432],[55,223,364,390,392,394],[393],[414,415],[416,430,432,439],[225],[228],[228,229,366,367],[47,176,365,368,402,430,432,439],[47,368,430,432,439],[419],[176,418,430,432],[402,430],[369,370],[365,369,402,432],[389,432],[374],[375],[375,377],[374,377,378],[374,376,379,381],[380],[372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388],[226,389,402,432],[88,179,267,365,432],[55,88,176,179,195,215,219,255,266,267,268,269,365,406,432],[266,270],[219],[47,88,179,203,219,247,267,268,365,432,433],[433,434],[206,219],[267,268,271,435],[176],[55,179,262,263,279,404,406,430,432],[339,342,344,361,362,363],[179,406,430],[230,231,263,279,280,281,282,290,305,364],[88,179,230,278,402,406,430,432],[47,55,176,179,432],[47,179,219,225,278,279,402,406,430,432,436],[55,179,219,225,277,402,406,430],[50,88,176,179,195,219,230,265,266,267,268,270,271,272,273,275,278,402,406,430,432,436],[273,276],[179,195,219,271,278,402],[88,179,219,230,255,268,272,278,286,287,406,430,434,436],[278,287,288],[179,219,272,278],[272,277,278,289],[47,55,176,225,291,304],[215,225,365,368,371,389,397,406,430,432],[225,398,399,430],[398,399,400,401],[47,55,88,178,226,227,241,275,277,289,291,365,368,370,386,397,398,406,407,430,432,436,439],[47,88,176,225,226,275,365,399,400,406,430,432,439],[421,427],[47,421,430,432,439],[453],[440,441,442,443,444,445,446,447,448,449],[55,176,453],[47,241,446,453],[440,453],[442,453],[444,453],[448,453],[47,438],[34,204,225,286,288,438,439,450,451,452],[226,241],[90],[181,182],[90,181],[183,191,192,194],[193],[180,188,189],[180,183,187],[190],[90,187],[232,233],[232],[234],[233],[232,233,234,235,236,237,238,239,240],[92,116,117,568],[117,568],[94,126,129,131,568],[94,130,568],[116,133,140,176,568],[94,114,126,131,133,136,176,568],[116,117,568],[116,133,139,176,568],[117,118,568],[119],[114,117,134,137,568],[116,117,133,568],[116,117,133,134,140,568],[134,138,141],[94,120,124,125,126,128,131,132,133,137,140,142,143,144,145,146,153,157,158,162],[117,123,568],[114,117,137,159,568],[117,133,568],[116,117,133,140,159],[159,160,161],[116,126,127,176,568],[116,568],[116,117,126,128,133,136,140,568],[116,117,133,137,140,568],[94],[94,116,126,133,136,137,143,147,149,568],[126,127,133,137,140,146,147,148,176,568],[126,136,568],[127,137,147],[128,147,163,176],[126,136,147],[128],[127,147,148,149,150,151,152],[114,115,137,154,176,568],[116,140,154,176,568],[154,155,156],[568],[116,117,118,139,163,164,165,166,171,172,175],[123,129,136],[173,174],[116],[94,116,568],[167,168,169,170],[136,163],[117,136,163,568],[117,128,163],[176,568],[90,91],[90,112],[91,92,93,106,107,109,110,111,112,113,115],[106],[90,91,94,95,96,97,98,99,100,101,102,103,104,105],[90,91,94,112,114],[90,106,107,108,109],[90,94,95],[254],[59,61,81,90,461,462,463],[61,90],[55,90],[466],[264],[470,472],[469,470,471],[90,264],[475],[60,90],[75,90],[59,90],[35,37,38,39,40,41,42,43,44,45,46,47],[35,36,38,39,40,41,42,43,44,45,46,47],[36,37,38,39,40,41,42,43,44,45,46,47],[35,36,37,39,40,41,42,43,44,45,46,47],[35,36,37,38,40,41,42,43,44,45,46,47],[35,36,37,38,39,41,42,43,44,45,46,47],[35,36,37,38,39,40,42,43,44,45,46,47],[35,36,37,38,39,40,41,43,44,45,46,47],[35,36,37,38,39,40,41,42,44,45,46,47],[35,36,37,38,39,40,41,42,43,45,46,47],[35,36,37,38,39,40,41,42,43,44,46,47],[35,36,37,38,39,40,41,42,43,44,45,47],[35,36,37,38,39,40,41,42,43,44,45,46],[503],[488],[492,493,494],[491],[493],[482,489,490,495,498,500,501,502],[490,496,497,503],[496,499],[490,491,496,503],[490,503],[484,485,486,487],[81,90],[61,81,90,510,511],[61,75,90],[87,88],[59,66,75],[51,59,66],[75],[57,59,66],[59],[59,75,81],[59,66,75,81],[59,60,61,66,75,78,81],[59,61,78,81],[89],[57,59,75],[49],[59,75],[73,82,84],[55,57,66,75],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],[66],[72],[59,75,84],[519,558],[519,543,558],[558],[519],[519,544,558],[519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557],[544,558],[50,60,61,75,90,221],[561],[59,61,63,66,81,90],[59,61,63,66,81,86,90],[566],[207,208,209,210,211,212],[90,94],[135],[391],[90,121],[122],[90,264,294,298],[90,264,294],[50,90,264,294],[264,293],[90,294],[294,295,296,297,298,299,300,301,302,303],[90,298],[90,264,294,296,297],[252],[184],[184,185],[184,185,186],[90,292],[226],[456],[241,245,246],[226,241,245,247],[245,246,249],[176,245,246,249],[196],[195,200],[200,201],[55,195,200,202,203,215],[200,202,203,204],[195,262],[55,368,402,406,413,416,420,423,424,428,432],[176,177],[241,430,432],[241,417],[195,277,389,402,413,430,432],[409,411,430,432],[195,277,389,402],[430,432],[406],[403,404,430,432],[390,402,432],[390],[416,430,432],[365,368,402,430,432],[368,430,432],[365,369,402],[389],[389,402,432],[179,267,365,432],[55,179,215,266,267,365,406,432],[179,219,247,268,365,432,433],[179,263,279,406,430,432],[344,363],[179,278,402,406,430,432],[179,432],[179,219,225,278,279,402,406,430,432],[179,195,266,267,272,273,278,402,406,430,432],[219,272,278,287,406,430],[365,368,370,386,397,398,430,432],[399,400,430,432],[421,430,432],[241,446,453],[438]],"referencedMap":[[321,1],[327,2],[320,3],[318,4],[322,5],[358,6],[314,7],[356,8],[307,9],[310,10],[309,11],[323,12],[324,13],[333,14],[345,15],[313,5],[355,16],[344,17],[350,18],[352,19],[325,20],[343,21],[346,22],[329,23],[334,24],[331,25],[317,5],[335,20],[357,26],[362,27],[311,28],[316,29],[328,30],[332,31],[351,32],[342,33],[354,34],[353,35],[319,5],[315,36],[339,37],[348,38],[330,39],[360,40],[349,41],[340,42],[336,43],[337,44],[338,45],[347,46],[341,47],[326,48],[361,49],[363,50],[249,51],[247,52],[243,53],[244,54],[260,55],[259,56],[245,57],[262,58],[261,59],[286,60],[196,61],[198,62],[200,63],[199,61],[203,64],[283,65],[202,66],[216,67],[218,68],[217,61],[215,61],[205,69],[206,70],[219,71],[197,61],[285,72],[284,73],[256,74],[258,75],[225,76],[224,77],[429,78],[424,79],[430,80],[426,81],[178,82],[432,83],[431,84],[418,85],[275,86],[409,87],[412,88],[410,89],[411,90],[413,91],[417,92],[291,93],[438,94],[422,95],[423,96],[408,97],[227,98],[407,99],[404,100],[406,101],[405,102],[403,103],[437,104],[390,103],[397,105],[396,106],[395,107],[394,108],[416,109],[415,110],[228,111],[229,112],[368,113],[366,114],[367,115],[420,116],[419,117],[369,118],[371,119],[370,120],[372,121],[373,121],[375,122],[376,123],[378,124],[379,125],[382,126],[381,127],[389,128],[384,121],[385,121],[386,129],[387,121],[388,121],[268,130],[270,131],[271,132],[266,133],[434,134],[435,135],[433,136],[436,137],[267,61],[231,138],[280,139],[364,140],[263,141],[365,142],[279,143],[230,144],[272,145],[278,146],[276,147],[277,148],[273,149],[288,150],[289,151],[287,152],[290,153],[305,154],[398,155],[400,156],[402,157],[399,158],[401,159],[428,160],[427,161],[440,162],[442,162],[444,162],[450,163],[446,164],[447,165],[448,162],[441,166],[443,167],[445,168],[449,169],[439,170],[453,171],[451,61],[452,172],[181,173],[183,174],[182,175],[195,176],[194,177],[190,178],[188,179],[191,180],[192,181],[240,182],[233,183],[235,184],[236,185],[241,186],[234,185],[232,185],[238,182],[239,182],[164,187],[118,188],[132,189],[131,190],[146,191],[137,192],[133,193],[140,194],[119,195],[120,196],[138,197],[134,198],[141,199],[142,200],[163,201],[124,202],[160,203],[159,204],[161,205],[162,206],[125,138],[128,207],[143,208],[144,209],[145,210],[126,211],[150,212],[149,213],[147,214],[151,215],[152,216],[148,217],[127,218],[153,219],[155,220],[154,204],[156,221],[157,222],[165,223],[176,224],[172,225],[175,226],[174,227],[173,227],[166,228],[171,229],[167,230],[168,231],[169,232],[170,232],[139,233],[92,234],[113,235],[93,173],[116,236],[96,237],[106,238],[97,237],[98,237],[99,237],[100,237],[101,237],[102,237],[103,237],[104,237],[115,239],[110,240],[108,173],[109,173],[111,241],[112,173],[95,173],[264,173],[255,242],[464,243],[465,244],[257,245],[467,246],[468,173],[265,247],[473,248],[472,249],[474,250],[476,251],[478,252],[269,253],[461,254],[36,255],[37,256],[35,257],[38,258],[39,259],[40,260],[41,261],[42,262],[43,263],[44,264],[45,265],[46,266],[47,267],[504,268],[489,269],[495,270],[492,271],[494,272],[503,273],[498,274],[500,275],[501,276],[502,277],[497,277],[499,277],[491,277],[487,269],[488,278],[486,269],[509,279],[512,280],[510,281],[89,282],[51,283],[52,284],[55,285],[56,286],[58,287],[59,287],[60,288],[61,289],[62,290],[63,291],[90,292],[64,287],[66,293],[69,294],[73,295],[74,296],[75,287],[78,297],[87,298],[80,299],[81,300],[83,285],[85,301],[86,285],[515,173],[516,253],[518,245],[463,281],[274,173],[543,302],[544,303],[519,304],[522,304],[541,302],[542,302],[532,302],[531,305],[529,302],[524,302],[537,302],[535,302],[539,302],[523,302],[536,302],[540,302],[525,302],[526,302],[538,302],[520,302],[527,302],[528,302],[530,302],[534,302],[545,306],[533,302],[521,302],[558,307],[552,306],[554,308],[553,306],[546,306],[547,306],[549,306],[551,306],[555,308],[556,308],[548,308],[550,308],[559,245],[223,309],[562,310],[564,311],[565,312],[567,313],[254,173],[213,314],[211,173],[212,173],[94,173],[130,173],[114,315],[135,173],[136,316],[391,173],[392,317],[122,318],[123,319],[299,320],[296,321],[297,320],[295,322],[294,323],[300,324],[304,325],[301,326],[298,327],[253,328],[185,329],[186,330],[187,331],[293,332],[292,250],[454,333],[457,334],[458,77]],"exportedModulesMap":[[321,1],[327,2],[320,3],[318,4],[322,5],[358,6],[314,7],[356,8],[307,9],[310,10],[309,11],[323,12],[324,13],[333,14],[345,15],[313,5],[355,16],[344,17],[350,18],[352,19],[325,20],[343,21],[346,22],[329,23],[334,24],[331,25],[317,5],[335,20],[357,26],[362,27],[311,28],[316,29],[328,30],[332,31],[351,32],[342,33],[354,34],[353,35],[319,5],[315,36],[339,37],[348,38],[330,39],[360,40],[349,41],[340,42],[336,43],[337,44],[338,45],[347,46],[341,47],[326,48],[361,49],[363,50],[249,51],[247,335],[243,336],[244,54],[260,337],[259,337],[245,57],[262,58],[261,338],[286,60],[196,61],[198,339],[200,63],[199,61],[203,340],[283,65],[202,341],[216,342],[218,68],[217,61],[215,61],[205,343],[206,70],[219,71],[197,61],[285,72],[284,73],[256,344],[225,76],[224,77],[429,345],[424,79],[430,80],[426,138],[178,346],[432,83],[431,347],[418,348],[275,138],[409,349],[412,350],[410,351],[411,90],[413,91],[417,92],[291,93],[438,94],[422,95],[423,96],[408,97],[227,352],[407,353],[404,100],[406,101],[405,354],[403,103],[437,138],[390,103],[397,105],[396,355],[395,356],[416,109],[415,357],[228,111],[229,112],[368,113],[366,358],[367,359],[420,116],[419,117],[369,118],[371,119],[370,360],[372,121],[373,121],[375,122],[376,123],[378,124],[379,125],[382,126],[381,127],[389,128],[384,361],[385,121],[386,362],[387,121],[388,121],[268,363],[270,364],[271,132],[266,133],[434,365],[435,135],[433,136],[436,137],[267,61],[231,138],[280,366],[364,367],[263,141],[365,142],[279,368],[230,369],[272,370],[278,146],[276,371],[277,148],[273,149],[288,372],[289,151],[287,152],[290,153],[305,111],[398,155],[400,156],[402,157],[399,373],[401,374],[428,160],[427,375],[440,162],[442,162],[444,162],[450,163],[446,162],[447,376],[448,162],[441,166],[443,167],[445,168],[449,169],[439,377],[453,171],[451,61],[452,333],[181,173],[183,174],[182,175],[195,176],[194,177],[190,178],[188,179],[191,180],[192,181],[240,182],[233,183],[235,184],[236,185],[241,186],[234,185],[232,185],[238,182],[239,182],[164,187],[118,188],[132,189],[131,190],[146,191],[137,192],[133,193],[140,194],[119,195],[120,196],[138,197],[134,198],[141,199],[142,200],[163,201],[124,202],[160,203],[159,204],[161,205],[162,206],[125,138],[128,207],[143,208],[144,209],[145,210],[126,211],[150,212],[149,213],[147,214],[151,215],[152,216],[148,217],[127,218],[153,219],[155,220],[154,204],[156,221],[157,222],[165,223],[176,224],[172,225],[175,226],[174,227],[173,227],[166,228],[171,229],[167,230],[168,231],[169,232],[170,232],[139,233],[92,234],[113,235],[93,173],[116,236],[96,237],[106,238],[97,237],[98,237],[99,237],[100,237],[101,237],[102,237],[103,237],[104,237],[115,239],[110,240],[108,173],[109,173],[111,241],[112,173],[95,173],[264,173],[255,242],[464,243],[465,244],[257,245],[467,246],[468,173],[265,247],[473,248],[472,249],[474,250],[476,251],[478,252],[269,253],[461,254],[36,255],[37,256],[35,257],[38,258],[39,259],[40,260],[41,261],[42,262],[43,263],[44,264],[45,265],[46,266],[47,267],[504,268],[489,269],[495,270],[492,271],[494,272],[503,273],[498,274],[500,275],[501,276],[502,277],[497,277],[499,277],[491,277],[487,269],[488,278],[486,269],[509,279],[512,280],[510,281],[89,282],[51,283],[52,284],[55,285],[56,286],[58,287],[59,287],[60,288],[61,289],[62,290],[63,291],[90,292],[64,287],[66,293],[69,294],[73,295],[74,296],[75,287],[78,297],[87,298],[80,299],[81,300],[83,285],[85,301],[86,285],[515,173],[516,253],[518,245],[463,281],[274,173],[543,302],[544,303],[519,304],[522,304],[541,302],[542,302],[532,302],[531,305],[529,302],[524,302],[537,302],[535,302],[539,302],[523,302],[536,302],[540,302],[525,302],[526,302],[538,302],[520,302],[527,302],[528,302],[530,302],[534,302],[545,306],[533,302],[521,302],[558,307],[552,306],[554,308],[553,306],[546,306],[547,306],[549,306],[551,306],[555,308],[556,308],[548,308],[550,308],[559,245],[223,309],[562,310],[564,311],[565,312],[567,313],[254,173],[213,314],[211,173],[212,173],[94,173],[130,173],[114,315],[135,173],[136,316],[391,173],[392,317],[122,318],[123,319],[299,320],[296,321],[297,320],[295,322],[294,323],[300,324],[304,325],[301,326],[298,327],[253,328],[185,329],[186,330],[187,331],[293,332],[292,250],[454,333],[457,334],[458,77]],"semanticDiagnosticsPerFile":[312,321,327,320,318,322,358,314,356,307,310,309,323,324,333,345,313,355,344,350,352,325,343,346,329,334,331,317,335,357,306,362,311,316,308,328,332,351,342,354,353,319,315,339,348,330,360,349,359,340,336,337,338,347,341,326,361,363,249,247,243,244,248,260,259,246,242,245,262,261,286,196,198,200,199,203,283,202,216,218,217,215,205,206,204,219,201,197,285,284,256,258,220,225,224,429,424,430,426,178,432,431,418,275,409,412,410,411,413,417,291,438,422,423,408,227,407,404,406,405,403,437,390,397,396,395,394,414,416,415,228,229,368,366,367,420,419,369,371,370,372,373,375,376,378,379,382,380,381,389,383,374,384,385,377,386,387,388,268,270,271,266,434,435,433,436,267,177,231,280,364,263,365,279,230,281,282,272,278,276,277,273,288,289,287,290,305,398,400,402,399,401,421,428,427,34,440,442,444,450,446,447,448,441,443,445,449,439,453,451,452,181,183,182,195,194,193,190,189,188,180,191,192,240,233,235,236,241,234,232,238,237,239,164,118,132,131,146,137,133,140,119,120,138,134,141,142,163,124,160,159,161,162,125,128,143,144,158,145,126,150,149,147,151,152,148,127,153,155,154,156,157,165,176,117,172,175,174,173,166,171,167,168,169,170,139,92,113,93,116,91,107,96,106,105,97,98,99,100,101,102,103,104,115,110,108,109,111,112,95,129,214,251,459,460,264,255,464,465,221,257,467,468,265,473,469,472,470,474,475,476,477,478,479,462,480,471,481,269,461,482,36,37,35,38,39,40,41,42,43,44,45,46,47,483,504,489,495,493,492,494,503,498,500,501,502,496,497,499,491,490,485,484,487,488,486,505,506,507,508,466,509,511,512,510,88,49,89,50,51,52,53,54,55,56,57,58,59,60,48,61,62,63,90,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,87,80,81,82,83,84,85,86,513,514,515,516,517,518,463,274,543,544,519,522,541,542,532,531,529,524,537,535,539,523,536,540,525,526,538,520,527,528,530,534,545,533,521,558,557,552,554,553,546,547,549,551,555,556,548,550,559,560,223,561,562,563,564,565,566,567,254,393,207,213,208,209,210,211,212,226,94,130,114,135,136,425,391,392,222,122,123,121,299,296,297,295,294,300,304,303,302,301,298,253,252,179,185,184,186,187,293,292,456,250,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,1,33,454,455,457,458]},"version":"4.3.5"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/bitgojsError.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/ts3.6/base.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/base.d.ts","../../../node_modules/@types/node/index.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/networks.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/address.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/crypto.d.ts","../../../node_modules/bip174/src/lib/interfaces.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/types.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/embed.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2ms.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2pk.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2pkh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2sh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2tr.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2tr_ns.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2wpkh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/p2wsh.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/lazy.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/payments/index.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/ops.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script_number.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script_signature.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/script.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/taproot.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/transaction.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/block.d.ts","../../../node_modules/bip174/src/lib/psbt.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/psbt.d.ts","../../utxo-lib/node_modules/bitcoinjs-lib/src/index.d.ts","../../utxo-lib/dist/src/networks.d.ts","../../utxo-lib/dist/src/addressFormat.d.ts","../../utxo-lib/dist/src/bitgo/bitcoincash/address.d.ts","../../utxo-lib/dist/src/bitgo/bitcoincash/index.d.ts","../../../node_modules/ecpair/src/networks.d.ts","../../../node_modules/ecpair/src/ecpair.d.ts","../../../node_modules/ecpair/src/index.d.ts","../../utxo-lib/dist/src/bitgo/keyutil.d.ts","../../utxo-lib/dist/src/bitgo/nonStandardHalfSigned.d.ts","../../utxo-lib/dist/src/bitgo/types.d.ts","../../utxo-lib/dist/src/bitgo/wallet/chains.d.ts","../../utxo-lib/dist/src/bitgo/outputScripts.d.ts","../../../node_modules/@brandonblack/musig/lib/index.d.ts","../../../node_modules/bip174/src/lib/proprietaryKeyVal.d.ts","../../utxo-lib/dist/src/bitgo/PsbtUtil.d.ts","../../utxo-lib/dist/src/bitgo/Musig2.d.ts","../../utxo-lib/dist/src/bitgo/UtxoTransaction.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashTransaction.d.ts","../../../node_modules/bip32/types/bip32.d.ts","../../../node_modules/bip32/types/index.d.ts","../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts","../../utxo-lib/dist/src/transaction_builder.d.ts","../../utxo-lib/dist/src/bitgo/UtxoTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/dash/DashTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/dash/index.d.ts","../../utxo-lib/dist/src/bitgo/parseInput.d.ts","../../utxo-lib/dist/src/bitgo/signature.d.ts","../../utxo-lib/dist/src/bitgo/transaction.d.ts","../../utxo-lib/dist/src/bitgo/Unspent.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletKeys.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts","../../utxo-lib/dist/src/bitgo/wallet/Unspent.d.ts","../../utxo-lib/dist/src/bitgo/wallet/Psbt.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletOutput.d.ts","../../utxo-lib/dist/src/bitgo/wallet/WalletScripts.d.ts","../../utxo-lib/dist/src/bitgo/wallet/index.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashTransaction.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashPsbt.d.ts","../../utxo-lib/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/zcash/index.d.ts","../../utxo-lib/dist/src/bitgo/tnumber.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/LitecoinTransactionBuilder.d.ts","../../utxo-lib/dist/src/bitgo/litecoin/index.d.ts","../../utxo-lib/dist/src/bitgo/index.d.ts","../../utxo-lib/dist/src/address.d.ts","../../utxo-lib/dist/src/classify.d.ts","../../utxo-lib/dist/src/taproot.d.ts","../../utxo-lib/dist/src/testutil/keys.d.ts","../../utxo-lib/dist/src/testutil/mock.d.ts","../../utxo-lib/dist/src/testutil/psbt.d.ts","../../utxo-lib/dist/src/testutil/transaction.d.ts","../../utxo-lib/dist/src/testutil/index.d.ts","../../utxo-lib/dist/src/noble_ecc.d.ts","../../utxo-lib/dist/src/payments/p2tr_ns.d.ts","../../utxo-lib/dist/src/payments/p2tr.d.ts","../../utxo-lib/dist/src/payments/index.d.ts","../../utxo-lib/dist/src/index.d.ts","../src/bitgo/types.ts","../src/bitgo/bitcoin.ts","../../../node_modules/openpgp/openpgp.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/types.d.ts","../../sdk-lib-mpc/dist/src/curves/baseCurve.d.ts","../../sdk-lib-mpc/dist/src/curves/secp256k1.d.ts","../../sdk-lib-mpc/dist/src/curves/index.d.ts","../../../node_modules/paillier-bigint/types/PublicKey.d.ts","../../../node_modules/paillier-bigint/types/PrivateKey.d.ts","../../../node_modules/paillier-bigint/types/generateRandomKeys.d.ts","../../../node_modules/paillier-bigint/types/index.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/rangeproof.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/paillierproof.d.ts","../../sdk-lib-mpc/dist/src/tss/ecdsa/index.d.ts","../../sdk-lib-mpc/dist/src/tss/index.d.ts","../../sdk-lib-mpc/dist/src/util.d.ts","../../sdk-lib-mpc/dist/src/openssl/openssl.d.ts","../../sdk-lib-mpc/dist/src/openssl/index.d.ts","../../sdk-lib-mpc/dist/src/index.d.ts","../src/account-lib/mpc/curves/baseCurve.ts","../src/account-lib/mpc/util.ts","../src/account-lib/mpc/curves/ed25519.ts","../src/account-lib/mpc/curves/secp256k1.ts","../src/account-lib/mpc/curves/index.ts","../src/account-lib/mpc/types.ts","../src/account-lib/mpc/shamir.ts","../src/account-lib/mpc/hdTree.ts","../src/account-lib/mpc/tss/eddsa/types.ts","../src/account-lib/mpc/tss/eddsa/eddsa.ts","../src/account-lib/mpc/tss/eddsa/index.ts","../../../node_modules/bigint-crypto-utils/node_modules/bigint-mod-arith/dist/index.d.ts","../../../node_modules/bigint-crypto-utils/types/isProbablyPrime.d.ts","../../../node_modules/bigint-crypto-utils/types/prime.d.ts","../../../node_modules/bigint-crypto-utils/types/randBetween.d.ts","../../../node_modules/bigint-crypto-utils/types/randBits.d.ts","../../../node_modules/bigint-crypto-utils/types/randBytes.d.ts","../../../node_modules/bigint-crypto-utils/types/index.d.ts","../../../node_modules/@noble/secp256k1/lib/index.d.ts","../src/account-lib/mpc/tss/ecdsa/types.ts","../src/account-lib/mpc/tss/ecdsa/ecdsa.ts","../src/account-lib/mpc/tss/ecdsa/rangeproof.ts","../src/account-lib/mpc/tss/ecdsa/index.ts","../src/account-lib/mpc/tss/index.ts","../src/api/bip32path.ts","../../../node_modules/@types/cookiejar/index.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/superagent/index.d.ts","../src/api/types.ts","../src/api/index.ts","../../../node_modules/bignumber.js/bignumber.d.ts","../src/bitgo/internal/internal.ts","../src/bitgo/pendingApproval/iPendingApproval.ts","../src/bitgo/pendingApproval/iPendingApprovals.ts","../src/bitgo/utils/opengpgUtils.ts","../src/bitgo/utils/abstractUtxoCoinUtil.ts","../../statics/dist/src/networks.d.ts","../../statics/dist/src/base.d.ts","../../statics/dist/src/map.d.ts","../../statics/dist/src/coins.d.ts","../../statics/dist/src/errors.d.ts","../../statics/dist/src/tokenConfig.d.ts","../../statics/dist/src/ofc.d.ts","../../statics/dist/src/utxo.d.ts","../../statics/dist/src/account.d.ts","../../statics/dist/src/index.d.ts","../src/account-lib/baseCoin/errors.ts","../src/account-lib/baseCoin/baseTransactionBuilder.ts","../src/account-lib/baseCoin/baseTransactionBuilderFactory.ts","../src/account-lib/baseCoin/iface.ts","../src/account-lib/baseCoin/enum.ts","../src/account-lib/baseCoin/baseTransaction.ts","../src/account-lib/baseCoin/baseUtils.ts","../src/account-lib/baseCoin/baseKeyPair.ts","../../../node_modules/tweetnacl/nacl.d.ts","../../../node_modules/@stablelib/hex/lib/hex.d.ts","../../../node_modules/noble-bls12-381/math.d.ts","../../../node_modules/noble-bls12-381/index.d.ts","../../../node_modules/base-x/src/index.d.ts","../../../node_modules/@types/bs58/index.d.ts","../src/account-lib/util/crypto.ts","../../../node_modules/@types/create-hmac/index.d.ts","../src/account-lib/util/ed25519KeyDeriver.ts","../src/account-lib/baseCoin/ed25519KeyPair.ts","../src/account-lib/baseCoin/blsKeyPair.ts","../src/account-lib/baseCoin/secp256k1ExtendedKeyPair.ts","../src/account-lib/baseCoin/index.ts","../src/bitgo/utils/iBlsUtils.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../src/bitgo/tss/ecdsa/types.ts","../src/bitgo/tss/types.ts","../src/bitgo/tss/common.ts","../../../node_modules/@types/keccak/index.d.ts","../src/bitgo/tss/ecdsa/ecdsa.ts","../src/bitgo/tss/ecdsa/index.ts","../src/bitgo/utils/tss/baseTSSUtils.ts","../src/bitgo/utils/tss/ecdsa/types.ts","../../../node_modules/@types/secp256k1/index.d.ts","../src/bitgo/ecdh.ts","../src/bitgo/utils/tss/ecdsa/ecdsa.ts","../src/bitgo/utils/tss/ecdsa/index.ts","../src/bitgo/utils/tss/baseTypes.ts","../src/bitgo/utils/mpcUtils.ts","../src/bitgo/utils/blsUtils.ts","../src/bitgo/utils/promise-utils.ts","../src/bitgo/utils/triple.ts","../src/account-lib/mpc/index.ts","../src/account-lib/staking/utils.ts","../src/account-lib/staking/index.ts","../src/account-lib/index.ts","../src/bitgo/utils/tss/eddsa/types.ts","../src/bitgo/utils/tss/eddsa/eddsa.ts","../src/bitgo/utils/tss/eddsa/index.ts","../src/bitgo/utils/tss/index.ts","../src/bitgo/errors.ts","../../../node_modules/rlp/dist/types.d.ts","../../../node_modules/rlp/dist/index.d.ts","../../../node_modules/ethereumjs-util/dist/externals.d.ts","../../../node_modules/ethereumjs-util/dist/constants.d.ts","../../../node_modules/ethereumjs-util/dist/address.d.ts","../../../node_modules/ethereumjs-util/dist/bytes.d.ts","../../../node_modules/ethereumjs-util/dist/types.d.ts","../../../node_modules/ethereumjs-util/dist/account.d.ts","../../../node_modules/ethereumjs-util/dist/hash.d.ts","../../../node_modules/ethereumjs-util/dist/signature.d.ts","../../../node_modules/ethereumjs-util/dist/object.d.ts","../../../node_modules/ethereumjs-util/dist/internal.d.ts","../../../node_modules/ethereumjs-util/dist/index.d.ts","../src/bitgo/utils/util.ts","../node_modules/fp-ts/lib/JoinSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts","../node_modules/fp-ts/lib/MeetSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts","../node_modules/fp-ts/lib/BoundedLattice.d.ts","../node_modules/fp-ts/lib/Lattice.d.ts","../node_modules/fp-ts/HKT.d.ts","../node_modules/fp-ts/lib/Contravariant.d.ts","../node_modules/fp-ts/lib/Bounded.d.ts","../node_modules/fp-ts/lib/Predicate.d.ts","../node_modules/fp-ts/lib/Magma.d.ts","../node_modules/fp-ts/lib/Functor.d.ts","../node_modules/fp-ts/lib/Apply.d.ts","../node_modules/fp-ts/lib/Pointed.d.ts","../node_modules/fp-ts/lib/Applicative.d.ts","../node_modules/fp-ts/lib/Alt.d.ts","../node_modules/fp-ts/lib/Bifunctor.d.ts","../node_modules/fp-ts/lib/Chain.d.ts","../node_modules/fp-ts/lib/ChainRec.d.ts","../node_modules/fp-ts/lib/Extend.d.ts","../node_modules/fp-ts/lib/Zero.d.ts","../node_modules/fp-ts/lib/Alternative.d.ts","../node_modules/fp-ts/lib/Monad.d.ts","../node_modules/fp-ts/lib/Foldable.d.ts","../node_modules/fp-ts/lib/Refinement.d.ts","../node_modules/fp-ts/lib/FromEither.d.ts","../node_modules/fp-ts/lib/MonadThrow.d.ts","../node_modules/fp-ts/lib/Comonad.d.ts","../node_modules/fp-ts/lib/FoldableWithIndex.d.ts","../node_modules/fp-ts/lib/FunctorWithIndex.d.ts","../node_modules/fp-ts/lib/Show.d.ts","../node_modules/fp-ts/lib/Traversable.d.ts","../node_modules/fp-ts/lib/TraversableWithIndex.d.ts","../node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts","../node_modules/fp-ts/lib/Separated.d.ts","../node_modules/fp-ts/lib/Witherable.d.ts","../node_modules/fp-ts/lib/Option.d.ts","../node_modules/fp-ts/lib/Filterable.d.ts","../node_modules/fp-ts/lib/Either.d.ts","../node_modules/fp-ts/lib/Compactable.d.ts","../node_modules/fp-ts/lib/FilterableWithIndex.d.ts","../node_modules/fp-ts/lib/Unfoldable.d.ts","../node_modules/fp-ts/lib/ReadonlyRecord.d.ts","../node_modules/fp-ts/lib/Semigroup.d.ts","../node_modules/fp-ts/lib/Endomorphism.d.ts","../node_modules/fp-ts/lib/Monoid.d.ts","../node_modules/fp-ts/lib/Eq.d.ts","../node_modules/fp-ts/lib/Ordering.d.ts","../node_modules/fp-ts/lib/Ord.d.ts","../node_modules/fp-ts/lib/DistributiveLattice.d.ts","../node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts","../node_modules/fp-ts/lib/HeytingAlgebra.d.ts","../node_modules/fp-ts/lib/BooleanAlgebra.d.ts","../node_modules/fp-ts/lib/Semiring.d.ts","../node_modules/fp-ts/lib/Ring.d.ts","../node_modules/fp-ts/lib/function.d.ts","../node_modules/fp-ts/lib/Json.d.ts","../node_modules/io-ts/lib/index.d.ts","../src/bitgo/utils/decode.ts","../src/bitgo/utils/index.ts","../src/bitgo/pendingApproval/pendingApproval.ts","../src/bitgo/pendingApproval/pendingApprovals.ts","../src/bitgo/pendingApproval/index.ts","../src/bitgo/staking/iStakingWallet.ts","../src/bitgo/staking/stakingWallet.ts","../src/bitgo/staking/index.ts","../src/bitgo/trading/affirmation.ts","../src/bitgo/trading/affirmations.ts","../src/bitgo/trading/payload.ts","../src/bitgo/trading/iAffirmation.ts","../src/bitgo/trading/iAffirmations.ts","../src/bitgo/trading/trade.ts","../src/bitgo/trading/iSettlement.ts","../src/bitgo/trading/iSettlements.ts","../src/bitgo/trading/iTradingPartner.ts","../src/bitgo/trading/iTradingPartners.ts","../src/bitgo/trading/iTradingAccount.ts","../src/bitgo/trading/lock.ts","../src/bitgo/trading/settlement.ts","../src/bitgo/trading/settlements.ts","../src/bitgo/trading/tradingAccount.ts","../src/bitgo/trading/tradingPartner.ts","../src/bitgo/trading/tradingPartners.ts","../src/bitgo/trading/index.ts","../src/bitgo/lightning/iLightning.ts","../../../node_modules/bolt11/node_modules/@types/bn.js/index.d.ts","../../../node_modules/bolt11/payreq.d.ts","../../../node_modules/bech32/dist/index.d.ts","../src/bitgo/lightning/lnurlCodec.ts","../src/bitgo/lightning/lightningUtils.ts","../src/bitgo/lightning/lightning.ts","../src/bitgo/lightning/index.ts","../src/bitgo/wallet/iWallet.ts","../src/bitgo/wallet/wallet.ts","../src/bitgo/wallet/iWallets.ts","../src/bitgo/wallet/wallets.ts","../src/bitgo/wallet/index.ts","../src/bitgo/keychain/ovcJsonCodec.ts","../src/bitgo/keychain/iKeychains.ts","../src/bitgo/keychain/keychains.ts","../src/bitgo/keychain/index.ts","../src/bitgo/internal/keycard.ts","../src/bitgo/internal/index.ts","../src/bitgo/enterprise/enterprise.ts","../src/bitgo/enterprise/iEnterprise.ts","../src/bitgo/enterprise/iEnterprises.ts","../src/bitgo/enterprise/enterprises.ts","../src/bitgo/enterprise/index.ts","../src/bitgo/market/iMarkets.ts","../src/bitgo/market/markets.ts","../src/bitgo/market/index.ts","../src/bitgo/environments.ts","../src/bitgo/config.ts","../src/bitgo/recovery/initiate.ts","../src/bitgo/recovery/index.ts","../src/bitgo/webhook/iWebhooks.ts","../src/bitgo/inscriptionBuilder/iInscriptionBuilder.ts","../src/bitgo/inscriptionBuilder/index.ts","../src/bitgo/baseCoin/iBaseCoin.ts","../../../node_modules/bitcoinjs-message/index.d.ts","../src/bitgo/bip32util.ts","../src/bitgo/webhook/webhooks.ts","../src/bitgo/webhook/index.ts","../src/bitgo/baseCoin/baseCoin.ts","../src/bitgo/baseCoin/index.ts","../src/bitgo/coinFactory.ts","../src/bitgo/bitgoBase.ts","../src/bitgo/tss/eddsa/types.ts","../src/bitgo/tss/eddsa/eddsa.ts","../src/bitgo/tss/eddsa/index.ts","../src/bitgo/tss/index.ts","../src/bitgo/legacyBitcoin.ts","../src/bitgo/index.ts","../src/common.ts","../src/coins/fiateur.ts","../src/coins/tfiateur.ts","../src/coins/fiatgbp.ts","../src/coins/tfiatgbp.ts","../src/coins/fiatusd.ts","../src/coins/tfiatusd.ts","../src/coins/ofc.ts","../src/coins/ofcToken.ts","../src/coins/susd.ts","../src/coins/tsusd.ts","../src/coins/index.ts","../src/openssl/index.ts","../src/units.ts","../src/index.ts","../../../types/bignumber.js/index.d.ts","../../../types/express/index.d.ts","../../../node_modules/should/should.d.ts","../../../types/should-sinon/index.d.ts","../../../types/superagent/index.d.ts","../../../node_modules/@types/archy/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../../node_modules/@types/keyv/index.d.ts","../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../../../node_modules/@types/cacheable-request/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/eccrypto/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/ethereumjs-util/index.d.ts","../../../node_modules/@types/eventsource/dom-monkeypatch.d.ts","../../../node_modules/@types/eventsource/index.d.ts","../../../node_modules/@types/expect/index.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../node_modules/@types/jasmine/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/linkify-it/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/mdurl/encode.d.ts","../../../node_modules/@types/mdurl/decode.d.ts","../../../node_modules/@types/mdurl/parse.d.ts","../../../node_modules/@types/mdurl/format.d.ts","../../../node_modules/@types/mdurl/index.d.ts","../../../node_modules/@types/markdown-it/lib/common/utils.d.ts","../../../node_modules/@types/markdown-it/lib/token.d.ts","../../../node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../../node_modules/@types/markdown-it/lib/ruler.d.ts","../../../node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../../node_modules/@types/markdown-it/lib/parser_block.d.ts","../../../node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../../node_modules/@types/markdown-it/lib/renderer.d.ts","../../../node_modules/@types/markdown-it/lib/index.d.ts","../../../node_modules/@types/markdown-it/index.d.ts","../../../node_modules/@types/mime-types/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/pbkdf2/index.d.ts","../../../node_modules/@types/qrcode/index.d.ts","../../../node_modules/@types/raf/index.d.ts","../../../node_modules/@types/randombytes/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sha.js/index.d.ts","../../../node_modules/@types/sinon/ts3.1/index.d.ts","../../../node_modules/@types/urijs/dom-monkeypatch.d.ts","../../../node_modules/@types/urijs/index.d.ts","../../../node_modules/@types/utf8/index.d.ts","../../../node_modules/@types/websocket/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../utxo-lib/node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},{"version":"c52a0da37f3e3da6039848cc58ccd652a3b7624c6caf8f0629ec1726e4a4cf9b","signature":"10199870eb8115e4d7732c92b6ba7e9396a411566158a6158ad812fb788a85fb"},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},{"version":"de3195627ed1d4ee51c5047f93cd76ce59a8601c0a5c6c391438d7f6cb3edf4d","affectsGlobalScope":true},"5cd9c902b221c5aca739cbc3fb4339c3c5115198808d4f5d7610a674e4b9c66d","fe892fea1e75a442fffb4a604d7eeb451e858787a9f2f01c4e83bf12a3b5048d","645912db9bbd041bf791e9a403de27d03d24625cbe4253edd71872c092251ec6","ce629710e5e58724902b753212e97861fd73e2aa09f5d88cb6d55dc763cf8c8a","525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d","e1e8a8a24bc0fe64cc9c5ccfa60e89f6e20783da8e8b76a242ebf99ef0ef07f3","4ade8ea27bacf52458daa4509626f0c37489488631abb0da183dfe2cd5406df0","f5093bf8e4ed54d6bfe5e7e88ee2b85fc4720586649c3c56f5cd14d972082ff8","05e732266b5a36789fd9eb846b1f45fec1b6e318b740e3f20fc22fd95f9ebf31","baeda1fadac9fd31920480b85340ab9c4266a25ad08403dee8e15fd0751101fb","8059976d7f408e08be353de1833172139bbaa70fc33d01b98249f7226c122119","2b9170bcb449ae83b40f7232158b0625226d20bf41d3161a1a934814e50e5601","bd1d7a809d5cbd2626b0c9f5161dcf222bc9cb9567fd4bf02546bd546d3bd975","2e314cce67882577dc93d2c5746cd7069672a425722f440a7d592d6318b35929","dacbe08610729f6343ea9880ea8e737c6d7a6efa4a318d8f6acaf85db4aceed6","8cfa78f4c052a93ac1e7accb0a78ce331dbd14f277ee0e193279ec31ce7efb25","03394bf8deb8781b490ae9266a843fbdf00647947d79e25fcbf1d89a9e9c8a66","cc5fac2b9e45a6670b96fd32cb42c97e0d4a7b2ee12c87963c6fe0f55fa84f50","37307ad10f30884fb9470a4e170b7be5f68a33b3d458cc3b7c63cd494802e594","5fb30076f0e0e5744db8993648bfb67aadd895f439edad5cce039127a87a8a36","3a986a6d59e0de61d21b9a8f044dcd523535eb8f7c5d0511bc7563d45f723793","3a8848a9c307429b861402cc69bc472ffe0c05b86474fc158723169161e16389","3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c","32faa6602e78c7f2e30fddb6ea36fe8a40ea2aba1536dfd7c93922a51874dad4","b2ab3f2ac6a9889ccedb5d501d8f5c4487f0f6ab01af3703f436ce92a644fd39","3b13fd501c9f75c98acb87302b4ce284c09e7ef5eb39a23a74d0d6d16bbd4046","63cf1510b32cad5d0578dfbebd125d099f3f538c866a76788e9cb4c7ab24af2b","17e157df6125098a1a34eb4d201ee4ac03bbe97e471ab5627bb2c40fce555948","b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9","3dc921e8a181e348f2559e903734e655a23c555a5703036f19bf68f4ab17f475","978aecd2e6bc2ac094e9a35eda98ff8586713857b3655e7c98ca5ed8f7d50662","9e666de17856eb640570276c9c71755080f0ba0bfea840438cabf25ef063886e","10e2924698b196d32b502876f727c194689c999636db42243604caa4584a6a53","ca78820a17b0e56d6899e355ace672444c8b3227be177f301413d1ca5cc08a52","6ad2dd29dbf3aea031062298e9978d4b2a1fadd0997eb9d8caaf95aaa89e7033","0f3abcfff40d142dff635e8332a9817b6fb9c8ee062be0dd8874cac52db7fd59","3e797a974bc761b6e9f4755d6a9ec816c2dc181311ddccc2865735e2c698a43f","741fd2b9e47486d4ca7638a7df1ec378cfaf9fb92e4ce24dd088be319706e82c","c4fe30f3f235b8aa991491f977b5c5dfc7955d6c639a95211d97acc4e2de5faf","3497438242251378cf232f36a7fabac70e7bd8229d68dac8955534e63ffc8ff4","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","a2267091f78b005b511883f9f9c464189bdb7550932f9d0f0f79d4301788cba2","6168e4aed14a6ff6e0407266f3a597fb98e5024c48e23537be3f758cb1fd51f3","035fd4564409153531cc683821b48048fd01982a8522c120b5a17f9a6320a229","f491f3939bf1c85ad2ebe4cdd99d09c2efda9589f5405256bcdd8ff8492f662b","3e1f9b3c69152720aee400a26c71cf57f0a7e3190a8b237d8398dc7b3e510b42","66978ea7a01c26f9a0432f4c41e7060b4d327f56e243cd297f8a5c77a72b8cf7","a29a7b9ade7876d0f527b716a5bc5c7bc84554d155577020441f2d3c735589be","9cd42ff83837551961fa8788f14bd3498306fb2c1d35358f2b6bf3af05bf0890","5e51773d5624b8c871d8d140c88f944466338673fbc60ac4bf409eb60e6665cf","39b10cd95b70bbdc1cf8c832002618c3f81cd980438fe5e3694d99286ef90911","95244212208717085038a74378ea2a03e49c06a3a195b2826c01c978f14684c2","c91084ba90468037b6d266f3cae698aaa76c0864cf076aa099d981d847b74c2d","dc58c9eb8817b8c46f40712df9e588c0c70357931f5ebebb3aa445949de993c8","7362eeca79ce50eb72b2a0149e323f6d64daf4fbc8067592310859622c3dbcfe","8c0a305a7b10513d9d07bf739456bf9845bd4336027c85442b674a417facb57a","75ea79a4508fc9df7d5f3d17d3d64941c537e9071d84cb50e489ba63366d2c92","b76e336a02283957d3ec16132a031edb1a41e3ba23c85cd7e601da5fe533df08","0f3fa7383d3f2ebed173ff59c102b4a68d10acdff5db4a009b73429ddaa15768","973d36af083ce019e3c38b99ca43cb6815b47082cf1e07215387df336192f447","617012176a8cb5be290ae89040aac88ec74321c2a8b984f01a7ba6eb9a2eddc2","2f25953a957da0ad16d44dbdca3b1c9b9ea5e891c011e3533e374aab8c2d2131","9bf8b9d7ef41b69a572131f5ef7240cb48ba833c2e972780dead3cd8f2fca5ae","249cfa3a5ac82c494f563e457a33ff576c842825e4cdd2f1ecd9b6e0d6d754b4","83a8c6dbc3c4a5eac6e4e0328bd9e30fdaf53e02eeac194442c2f6aded8f6c3c","9010bcd6fb2da0e3d050d2bdc99772bc65f0aded76b88cdef97cae19ff1b7111","f0f9439e4302fb7127a172ad73fa9335ab8cf340ebdc4356700adf641fe74b62","337f691218cb82b34341cefc01b06141d25cdcbd78822ad8ac5b003088f0bc39","6185284ab4f31c094de925d004063eacc4eef37335ad3b30d147a07ed7319532","fbc630f48dad838d3ac2bb9420cd97a6f3be26707915c792ae6114d2d8df379b","fe89f6decc8896721129284b4e3b1189f5f42b9d16bed836873faeae101014b1","b838405edd6c2e68b261abb25dcb55bd223a310541016208ee1b93ba179dfb64","52e60c0b5293af2043d7b5cad439207ea035c6b96c246ad9bf3b07ae2f1e223e","c2b96b0689637cff5f67318289e6daf9aa7b4d7b1186abdbf75c042fdeb577bf","22efdd0b3d0d96510bb03ffc515cf533e0ba710dcad568dee1cf66df28a69125","d2d155d8c33c15911e0a80478505927400c751435746672406b2c2be64d83b0c","770ba645782e35f9931fc9480d101c70071ff454c1e2cb44bbc5748acd970359","68f18b63c9f01ba41c0c14bbf514074a9b08a03fb1e718ec2b99a02e69e407a1","e4960123c866ad66c1decf7b52d407978ee21193765353638326d75c46c394ae","2888551d6cce4a6cfe67546e46e74c07a52af03dd231adcaac720b155cb8e977","e46c000f93dafb4fc49a0ac11087aa2f5eef0901a86cd653ecae0b73352a3628","e4c94bbc250fdc12eb67d2eeab41b50771be16ea342f2f9a13a85854e2c2f385","1529f6d2dbe43ea11779497342aea5ae362e64e7d84dcfebcbb6bb9f7594b6ee","d36976b497242d0ce26b09d80cef24f18cf4e93db3221badac8f0c88eb4a6037","684e031ec8a911ebe107159504ed48b2a20367a0a1bc1e0500c35c1f85280669","7df2b9c4e93eeab03cc5eba9061a6468b682b605c55312ca09e4c9c201819c10","bcba99e785dcaf8c662da39e88d4b19b7bd1ac6f2747326627af703aeee75076","6bc78ca431af68b902781d24cbf7c6ae662e6b1610e56ed6173f3a9384c50304","9d020ee88148f771d32375258d6dd401ffcc0b27bec34457c8830ad1770b5a27","93038b83dd63cf756b03e1cbfb7207998f0aee0ecdc2f5094060522b669d2080","8ddb1dad7b5888be6d29136e1865d70ed1e98748c95a9255aa6b49062f40d8b3","82d6ece84116a45b8136c086360264a711a133fcf0a185bd870dba4ab9fcde2b","1009527147cde989b77a59104491215ec5e98b38b17d007af8981e5c619bb39f","ae6554a7ab624729f4ce2db9c7f18983b0a4983a460f5b426d232c7995dd2ebb","8ddbd5b217234804631bf628b3cb9ec2b4cf580abf361ce26e69c967ddf1973d","80de98817715b9dc60749586a495ab032252e607db57a1baadffc7be2e1feb2c","d172876eea3e1a92509352a08e7b0e99e4b31631f239b230536ef99d5d7d8885","f949d95cf452a28ed7bb8c73cd221afaf6c9160b1931f9cedc2177678215c70e","b936a8a1d166fa7eea071b345b837b12e0abb10083aeefa3fbe3c386d81263a7","fab40e05b35d6b6d12b5fc29892dbd52cd84f363f833ed2ba7e27b9bca77a8d5","abc70e9efe86f9037a1696881ad60ca634018d5a093ad3250c43bb0a3e3b6c1e","e016e3d45a1706b6167a49ba775ccee8d3b41132f28af149d9fd7fc5228e8b09","8d01647a7acd10dcee6f45fbe781c86ad34ae70dd047e651b965103d156e8dcc","e8433a064976c584a4a691556f442e8282eec9e679828de9ed804ea0ceda38c3","ebab1593bb34816ac3726fe572560c9f089361f49b52c0893b840592ee5e2cb2","9799d233d38c8c2ee81db9ae60543c876f225bc2eaf3aa4f799d75e8c1287569","a6b9095d530cd9e2e28653a173bd4bd975b9b2759abc55d8bbcbc0d64dfba12f","fa77bea96eaa815e9937f2960b113df6a98826187a76a1f7e9af52c75be93e81","11212bb86739807fe0424857f95c380b9df416bea017648088883023b88b26cd","b9ad9e94c0a2b496ab1552503d2fb89b9f4ea4f4341c5a44382b26d739bca6df","6d259c78a98a89a17fabc30ceb15e6b25c00ee31bac4608c3eecafc2c7361c91","c305e7e6fae2dd94be0535ce16a7892aade8f06cdb32f3a71d1122b2fdb0523b","9867266ae1eae922ffeb5e0d05e8603366a14c03928369f95af3607c21195751","69e2d572533ea1c2329a1e00146bdc4ac7007007bab55ca28165576e4bb3328d","341841903dd2de5fc09628b691832e9b7d8783ccc0f502eb46167bd1a7bff7ee","5b0e8d4a207e1381f32269540020919c1d934b96ca7fd2a5ca1fb32dae56ff80","2c948c62182575b74b2d4d8264f473828eecd468d6a8b5696a830e9494f9cfe9","ae6980bc5c77153a715fc013beb4853769bd976e7c23f549179d4a8838462402","42f9bf86a24d44f75ddf7e8063326d640ea8cc0d13f29c7921d74da89fee3ecc","b172212e75e5f3f9383dd1cf04f73e25379336ca8c3b54aed8012616bf1b0f84","b5c3249de61b1fe38b7ea958926e5ce51f4cbb8df0c3f3ebb9bf3637041e8a7e","deac5d294f2ba98c692609997af27d97adf932cb271f4cad2c7149a8667440dc","cd20c95c5e1156fd6f1f6e01e789fc98ade117fd3dd1d8ec56827ab711347b14","935f2f183413bfb559b5308d59e15c663ea8a7a26609a7e42e4361f696334f63","7466283b8832a2f4b3228509efb43dc1bf6726a78aaed524f3b3b0c028ed5c0f","59ba497ed3002dd2614c17df69cd0ba227d351b649d5a3f9df2d82564b7aa366","9ca59686ca4a2d630f4421cc906c3872f2f5cc7b37ce8af0a20b0859c4f47d4b","a6956bda1e7042dc49ac85d87875310fb65b798d67bda5f67d2ebb0c5ece433a",{"version":"651a757b4950d14f779350e604641b5b25567f22bbc372408de10591b1fc6dd1","signature":"8066f6916ae55f987a2ae1908d7ec4b2f6ae927f78946945a8e2b4fff1ba8777"},{"version":"a8167f76312b1ed7799262b6d8e7da018e2a172a430d027f5f4139818f626e3c","signature":"8412f4ad39d7a87e115d406ab73858fd2ab67b7fdddc9ad8416b30c3b57f3698"},"b8cd6612a280bee6151f7580e48983533b4b055d51894928487570ed21557b9c","cfe1012f8175c674dd19a39cf93391a0103aebd465920faa6718842bd1740389","d368716cf32dc5ea7975f7b08943b107c57ec5b182ef881cdd20373eb212c0ae","355d4c9436c26539ce47bbc3b13b3dcbea9364f78b2a68c37360348e88eaeb04","5c57cfc1e2eefc34d61c967318d06439fcb7d2c0a84b3fad179eca46aab43f58","2755882608d931e0eed4ba7ab0161124973ac6e3fa156fac2bd9a3c77d4d1f02","30eb1f14b2f34f205ced83acb9146df9a106fc782ff3185a56e0f0289808b587","004f33767de4ebd56e9d6a80cbce883618c645467fa6e21bf6aaae20f3ccda02","5843659624bc89456b607b9a1cc7142c886f81d56daa4dc7c887df79d0360d9f","8b22694f385be2f039e3676ea7d112b449729da6333e3e1af5f08aae3db99d2b","f7a684dc92f6027cd074080aa2f6105ece4a65c2c64bce2a7214ca4a2ce38d3c","b9707f86e0e401b657ed40193fcae1cff492e43c201624f9a72aef2f328d76b7","a92e95f58dd6504c0723e1edd377139e9861a7861f175d3ca62142eba1ae72c4","ba550feb8b9e414177b5401a7f23efc1c2d31a0dd9666c365b7c66e2016e7177","31e6062345138f878e1813f965d26f31a9a2e91b5daf3b1101e415dd424335a6","bc580e666ed9141b648308ef30cda43214b36620f0c9eaa3a1380d27124a6ecd","13a8e31ae2b0004e4fab84b790e9a8bc0faf140c53c20e7d55af61ba4eebb18f",{"version":"c3ad364effd1dff06e1f81719862b10f93cbad7042b1df44b0ce80fbf1bf62b0","signature":"5e33357d66ee738656752293912954991f334b13f265bd89e3ac36f30d053a9c"},{"version":"5e770f3b0adb2ea1d7ee5355620179c7a0ff577850389b9d2d1f9a8f858d4918","signature":"f60dad848a3ad983d34fe4935bdc93633ed527e85d31237bc6e3b1092f0b9aae"},{"version":"b1b5768e0a33d2b0e7930aac747ba2e6891464418a772dc4c8cde79c03edfeef","signature":"b017549b9d6329b2c279bd74e35cc7d34e70aac82cccb620f0003c01ac1249b6"},"8ac508362d051217ef3f3b3a739fed7623a1e4ec9ed0b0b4d3b0dc2a1d31954e",{"version":"18ad0d545ab08eb42d73fb1613270c80e33e075ae3a656cfe9f713a79b71ca8f","signature":"93ed60c6a16361ddfb47e27a2b151a6e1557111102bcc5549131627bbf6c72e0"},{"version":"03d683110ef0e464a2b1ae762181998c7ca50f6e2631a8e321e9bacebf8a0573","signature":"e80f30bf8b16bda4afe7a5aa8c0c732f8431e8c01c6663f4d5b3193a20ef5ca8"},{"version":"ffaf2a25f3012b7c8c5c6287fc617a2fb486650d95b6c911bb549b72bdb20e25","signature":"7c6b0d9840c07df4e6cd52f2c273116ce0f0d1a99d15dd322eccedee959152e0"},{"version":"0d81be72d675cdb2968e8ae81e2e3cbdb4e2dfb407ac239f8a37dbe88e5171ed","signature":"23cd5dddb91a0d1eba93117933b6a1758891b1db8a5e1d3cd3060d019908b8b6"},{"version":"3d1b6741f43245961fdfb79735588ee66d7f04da85b07028a26b8d10cf56f60e","signature":"fadf3ca9953c797c70c8afa463e004977f28a79739b33f02b88d3820939a7612"},{"version":"00c8c78a89a4d4a554c2238318e225db398ec0c5e2812c764b7b94c01f260cb1","signature":"f6b6f968b16a3f982ef05805611ad4d31c117d59659da3ddc1ed6a69cb940fbc"},{"version":"b07a12211b6e4d928d34c875aa336743ebaf95f8cba35a075abcc73628f858cb","signature":"e8543e6080dc8219961e4059737df7a5a7dec2103030ef0d24f295444884eb03"},"12dbe6d3f68617679c3ea816be2b870d3c8c186ddcbe9ddbb1eae5965c1e0967","bee6f24746280c738429f5e1f14db1c9767b979cbdfc3942b8166a6751d02d39","7c95fdcd8dcd86d9bd727a187120e38e92c35b3f16f01eecc62b083d55f7ce17","db83f60f371a1bfe8e5948018e246252feb077d2047e9a2a935d33ec15592842","a9ee5ca65c43848c9723293afc80e4b0028eccab1ec0398dd4370b32b76d2eb0","8fe755ed3e85112f8ee6c31e53926cdf2ce9fbe7003c9be7fd22ddba8e70087c","f90997069b7e96fe5883f0427a4be525ea6dc72334a016459f8d9d8938d7067c","5a3dcc9298412e6b92b1805ed396d3a208e1de1e6b0d3270d92305c15b1e03b7",{"version":"1ec420a00f622ea36b7c7a52f60c3e3f1a8e082eab2f66a55efb7571e28f1353","signature":"eac4bf0f59a2e1389b8efefcf471ba71cdd99857b1ed4d4be0a90ef6af7f72ec"},{"version":"0e25035ed9e35c3c3e394a50cc16a37e1a9b13eb9ff7552bd32c0505c8317cbb","signature":"7a1588b1e2b8a09f2e260795ba728a8094b2132d6b09afcf3546ccf5594b69e2"},{"version":"06cd2ee214bf1f0b1d1c2ec7421c95be00b80947babc16f7d1d5d43bb808b44f","signature":"8386d630328c85d974b19c965dd2649912428f124305d65893aa37a22af2132d"},{"version":"446d0ed1a5467113b904aaee1d4177816e0b1769de26af992ce079843d9a5a76","signature":"e227fb8de8d9e3ffc74cbc9f2f4d143d77de77f0cede5efbabefb65b16f58665"},{"version":"cf12abf5ff49c9d1b8cbce54f6d8b830389049a913cf0b30f3308f93a9dac4cd","signature":"80ead69eb1c6b2e6f2312386bcaa66c89d583d9108e3684b9ef33111e611c4f9"},{"version":"35926cf456631166daab38a23a430fc3616b64052f68cceeb46c237c181eab2d","signature":"97ee18a584c4cb8d38fb80c0642a70d059ae4a5c7f9e5f40141d146990a36fe6"},"8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef",{"version":"df477450bfd081ff4ef8fdcbdbc3b01ce3e95a6f60675072fadfca2dbbdba23b","signature":"14cbb9666b71ccb2bd2c9d77e3fb3e915604d4ef0242aba3ff74e0f4916a29a8"},"2acb6b79354aebbbfa708c281ba8f19e0d3029db9c6d679ddd493801e2b36090","a2d875a97eeee8872d7a6d30c65fc2c19aee4fca3b98edda1c2f5ce7323c16da",{"version":"a3411f08ae3502388a551af3f54c27c316cc02b53884144e61581e5687546b48","signature":"5c776e3f4ecd2119b576730171f581595133e2dbb6199f5708e5fc43566b5f13"},{"version":"b76018cb1bed3170c247b993159f9a626f19f97bdfbebed3981135bb69d48610","signature":"6e2aa4faa3e5407bde7b225807af3fe20594bea3ca7566cfdb8533aa146108ed"},{"version":"683335d31f39b462175ed7d9a089700360614e857d01c1ae358ef50447ace90d","signature":"624072089bdd943c9de26767a0f72ef7cd4f688e91da3a533a27f0d15a73e22b"},{"version":"418071c627f59ea475ef0a844b5a6e25dc7ec565719b1e9550d60f6fecb2fdb9","signature":"d192e149aa59515c1257aebb883dc09713df6546522916e335bf45d7f031c907"},{"version":"75ba8ea682a062bd303b390761ea9c37a980fc196db3592965a76a272df8d28d","signature":"5ac8951e58fb1421536977b6141285046f325468e38fbbe5eab1aec7b2bd40c7"},"b33cc379e4b39788804c792d43a287fd921a4b8c5a611b57b4dc5f9cf5cf1ff4","9ca9556fe5454a0d0415ac28a0c285f98903d6931433484a3eb28cc16342c4f1","539036099e015c91c44b586d0e87dc138cfdead89de3c924ce94a3a13008cfd9","27d354399096bb8841e6b1050246b625f8c9f7404b6e3ad7bc22348c1b1557c7","a9c18cd6324289f39e248281e97ede0ca37c0ff3706c2514c89826fd217c8570","ad7d80da39636240915656265f0a1456765fa18b6277c0e176195a546fc6227b","7217b81f9740849592010b0c777aa4cae14ec11d4f6f95f3fb8cfd1bc8616a47","8e26328f0c85ecdb769c582454527da6ce1e6b8951203112b6e2f453aa733d16","857e24c2b3646eb0d3a568dcf16e187f8649866f6352a2234f93abbcb72c21dc","5896adafae00503bcfc62403ed7e03d89f95471ae563be2f67ed23dbc2e51d4f",{"version":"e35b7ebb66c54915f5f277a5203646e74c1967c1ca00d40a9755b2ce7f9cf57d","signature":"eaf8f3a36eddd3cd944ce182477bc604ae2b47a53cc5a6f5e3053cdb5971bc28"},{"version":"400f9843e8f14bc58be6c73d66d4d3ca9fb59cd60bea582a7ae05451a5ba0521","signature":"9dcdc9e4d5a464eb64a1fe8162b9747973c7158931badfa81e27982f7230c98e"},{"version":"19451185b962854122fb4e0a1d6ee546096df9bc6334b8e238b45c63e6da5936","signature":"042dd2480ae8d2a2eee927fc87c1e6f40910692b6a3f6cc47cb8097169b96140"},{"version":"e92575c05e26a724619d55a8641b5feceaf6f88790e972860c72e02393cb6216","signature":"16d9ffb92709feba13f3a68274f86fc17395a991aac5059b3c5ed1914bd15aab"},{"version":"7fb4cfdad4ddee79d13402c893c74b5de27ccd47ea26966135b95ae44e19a6ae","signature":"557e54fc40018d4f8a57c3d3d2fe588689c1690cb6eb372c380895a555f1dbf3"},{"version":"9b5f8bed8569caa0d8de319e927240f2ad44f1d240058ae371d0b78f1ec36242","signature":"88e99640928227784676b0736ec1ca196f0eb22dd35b7beb390f890713618fa7"},{"version":"60f1976fa671c2bedd4bab63c6b5d6441153fa7cde081e711875683365ed9d86","signature":"8ad5210b201e59da9453657c4de56a3aa9410deb3d9fdb53123ddbdf5b002289"},{"version":"29c889672a037cd997f86e8987cb1cf0a1f990da0ee2c3ef419e9eb9a898d5bd","signature":"20b071de0f57fe39239ec811c719cd13d4e497cf2f3e71d33c11fcb507269d80"},"60592f5ae1b739c9607a99895d4a3ad5c865b16903e4180e50b256e360a4a104","a79d5df3df6d6688b6b33cb5970757b89350ec8cca6696a9637fd8431e751766","ec6bebedf1805dc3459fb9b92746a2e330c9f018d1561207662b8509ab0b0782","43e0ecc04c2dd89eafe3db81f3db486129fcacf9adba9fd4e10f90afca21656a","e91751abb2372a36a90869d36f6ad5d5e69a84c5513ca99d236554e4dd8b9aa1","5cbc27193321e6ba10f4e9f3c5519649d9e2716cf103efd7eaa7a89e0f8ed1d4",{"version":"d0231519ef565ab150e8894d7ff70fec0298ab9ce8392ca0ef026e13fbdf0ffa","signature":"02f0465665690c6d38b768c790e3b4b799510893fd588eca1c97c6b0ab90e19b"},"f5011428f5bc27b1e1624e627a9c455185a15b762f23e4cdbdaf82e2dff767b9",{"version":"09b354895c0d689c6b46cb2914a25d897907d35a395b487cbb2d83729cb182a3","signature":"f958e961e37a67698d4cf981ec93c6d6158ac6413f0e6097ab70f828574e4159"},{"version":"4d9e04e45fe3229f1d26bf99bbe48e3e6ca9cd6e110988071e75fbd59398bb11","signature":"0030d6d659f1117c07ed8fdda6d68d7c52bd7e1a5e589926b8115bb27a21a65c"},{"version":"f76eb5b5c6afe69b6e5cb19357e7a033c2c689e1903e30035d324f183dda2c03","signature":"430a1849ed5608070519b0b7434c620190dae5fe1e0432480d522e98d319fce3"},{"version":"2722c3400b1235dfa253b8f684f87ef2aa91af7dd2620bc60686f617e8561e82","signature":"a7e294f718c9c31fca2ac482040be1e04d4e418e0419071af62e2ddcb0fd39de"},"05e04f701cd880d05869ebbbfd40f6e235736b21906e1feabcf8a234ab50a6f1",{"version":"37df5532205fb8925e9a6c9167659023f3ccaaff05386c9d5eb15e89258e89b5","signature":"4d6414b4639842f21b8d15f3cc58c47dd9e941384fc2a9c8d1f743cf1f659670"},"01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216",{"version":"21bfd54f395a989da0b06787c244ac33df9551ece6275568838201460c6d4da8","signature":"e67f98f2422dac96dae6dcdfdbb112baed7c683fb8bcac88c315e620f7428219"},{"version":"e9eccfa377004559a106d4e20aec19605d33033fbb915402195842fc4e1da349","signature":"c8f8209c90add753a4a41116fd20f4403dd7dbc1f9efdd2cacd41448c8d42f1e"},{"version":"c0c79b81782eecfbb9d533bd7befd60213cc2b1fb4d7a2e36ed38a1a459702e5","signature":"678418428be6c5862bfdebbf9e1c2e524e27b02a5a97e385cbb4aeea40d38ee1"},"44469f7cd056fda8a8c31ce768df26a401262098db908b436155b3f7860734c1",{"version":"e17e73ad87ddf50c51404d043fda32695e08d6ecc04ec5550901a0db1e104bf0","signature":"1ed3c7d3b29299a3b3fdc741705fda7cb6926858021594011b3b9716ed2b8a2c"},{"version":"ce179c5f204972788af904f27b73dbab32827290c500f66340e4fff0862d1cc7","signature":"14c3c8f9b0393190bc9c0ceb84a62ac3602fae7dee5d1e4d3a38bd87c26491b7"},{"version":"59e90f442b81458bad340225fb7197d50c083274bf5e2c3b229464c4e34b7f50","signature":"5dcc49d402b4417cdccb7e352be8709fdeecdd8e0448499775298ea3ca760615"},{"version":"ac1ec7ccdcdb51bd7476511af3af4f295e83159b40ee58eb9c2102d906330c37","signature":"d142dc3e16574d0fd87e03bf96cd7d3ee7df1de858873ec0df1d6e6d1c621ddd"},"3dce33e7eb25594863b8e615f14a45ab98190d85953436750644212d8a18c066",{"version":"0935801325cb10de80425aa3ca8f89689e530d960312149648aaad9a7226f499","signature":"e033f5aaabc4c100888d5270c17266d1201808d77844313ddf1c2d19466a4350"},{"version":"af71246391e0d9f0ff383daa4eb17b58cc7ca5be60115ffb2d0e5899bccc3fc1","signature":"5f672aa634137f49496b0b2cb51c07f369648d0f42b8a92c3b80712f34432f8f"},"08ca7fb61c20a0a49ac12c40a19788170d0615b7a4ca41bcb2b66e7e05650576",{"version":"448831be887f04d483c9110c2150bab77d3584a094792bed284a3551ed63762f","signature":"f64ec840554a2b68b20e225572578957467b72a41809e0badeaf7ebb03b1accf"},{"version":"0af7d9ec6f20704e25fdf6f4dbff839451ba737c7c0d3004ceef55e69c81d2dc","signature":"45d535535c83400cb39b0ac78376c4165bae00f30cbedb9ae4de66f85127e284"},{"version":"92af612f7059a5b52e6915d7c230e3e48d8e999e49dbc3a92db2718fa8171e91","signature":"8b479931d3e7050714e4f7e8b1013cbf1cc06490b6d65685722537e8bd31b2a9"},{"version":"c951312973c57f624791e838042cf2712d6f695c38d879c1d75a3070cc0f7530","signature":"15eed019c31c05b2caed4ae6286bdc719ac0d248500dffaba3483bb2710f35c2"},{"version":"eafc8908dca504220220de30b0664776803d2a7732cffbde3a2553c8e7e747f4","signature":"6816b5c5ac89a96fda9f4f364b7c3f719f9bf55a00d418f308849f979d447c72"},{"version":"3a9b59ced7fbd1c6a5bb00ec427fe2db24c8bdaf572daa33d7f1a057c1395fb3","signature":"47a3900fd1964ee1f454b39634c12e1f852721aadef401982ea158b909deaf5e"},{"version":"221222cdf08a86471bd5d3fe7a8dfa87b90a50bd6c0e15807dba9738a75c7ece","signature":"3636a1a0294a3885867fa020e7dd87e1c8dd16938a3212c6e7a5e9491a71c609"},"7bb6dfa42f1353cfcd5a8dd77a509471436b3068e1a947deb309b39cc3c011ab",{"version":"28525aaff28710069c35a85b445619c5f69254425ffda21b9e0ee98b75820f3c","signature":"1f459338ba4161fabbc3f8097b1cc1158122618b1909aa0f3fdf24f4736de0a1"},{"version":"be1a535dbface335e65e39a1858670a97e720137ac189fd9d03a2e39c437b21d","signature":"128271b9f9ad9bb9d670a22baa338a57ff29bfec61f73a4a68b419aab5dd3068"},{"version":"a6b1384dde94ffb8276287be8baaa3074ceb89293aaca9fd4c90cc11438ba7e4","signature":"fb462e7161e43914c3b36f6320dced9a0a64793affc19cc705255452020c878a"},{"version":"740659eb781d9b7916d45838804cd7ae17658d05b470b2719e5c14b19da17736","signature":"0a669b3ee10ed8006023ccd752a7cc89a02d07f1fe2b20c3185fd1320d2547a6"},{"version":"344c6954204743186ee3d9a91768b7ab3da10595989650577a11405a0cbb1b73","signature":"826bcd0a8f30a946410786f56ef7912e0417d9e7ab933d92229a8873aaf0e8f5"},{"version":"ebcbf9dd326932f03f42407bf432ac2b450fcefc300ad0c9ae232f5d81cdaa07","signature":"b6881de986e15ada51ded9df632e73500dea27a0dde0afeaadad2a9058ffc042"},"1ee47e6ed1cf98c573934f9a63e65cd7acf7314a2654da2630c2be6bda12871b","8fcc2bc8dae2c29f7db02ca5112f343936e544bab0dd66c997ec2045fae4b660","89a120f976e17500b9e242637ae377462850517b04aa45981c92c60a490386ee","5e27d8df0309ba8dbd8459750ef7c2c1db5aedeabbc819220a1ecca79c84f4dc","8ef5395d145d1ae1306c20580380779723542f0a4d5c22c0dfe536d5922022ec","155d9f9576b2bb2662e58b8dc5979c3b614250c3279bbdddfbe54749b0ef2ec2","8a9e43259a9f444d80be68f87fd5d8a90c7915b519ef2d3e434d68a835490978","ee80d37ca2d62bd6e33106596fdf39827c248fab4b6dedcee5bdf6f9b4fca454","e95f565a375c039e04187524457c39b362419bdd537afcd52162e8df04e1f87c","d57804e7c53f370b8df0417df2aaea2c5cc2bcae96d6bb06f6bbdf8c3f06f939","a4dad01f270d6cd8ff8d8229d0975833ebf847e560dafaded532f8e31a497ecf","4e78c87355f7e4fd9524d7582a14bf72771aeee33acb73a848de8bf2e44d8831","71a2be4b91958938b4ada303568f2b7fedab5e7e8bc36ca952d51e10e712ae75",{"version":"1859a37a3e36433da3ad6328975dfdd6da57dffbc3dfa0da8a9d92ac306f561a","signature":"2adcb55c824175f9261dec0ff3c7aab0450df6f3aebdc42dc99bcce194dad298"},"0dffb71a150679ddb64f93ee1dc1c4e0a9c29e7e955c58b784be425d9dade113","577027a6a930472c459f3335a44f3743e7e5c25ff3fced921da64c4bd0f9eb40","912153b1d2a38807622e6786010b9ec3da099dccc5dc57cd991c9a38465bfa86","58d18a147391ee4ca6334bd5c577bd06d2891b6e1aa5831beaecae3ecb546d1e","39d246c1fdeb35b9b91c7e87c52b93032406ce1c4be7ede9bae087af1f49ab6a","35f66b637d6fa2a0a3fbf582e59f4b8ea3dd793197b2c342e006470967e060d3","35dc8360ec43ec195f38dc9a3a09c0610096bdb48dbf72dff36a4b84eeb9a081","94cc7bf431f3bf2677c1860a4ee1ff541b253dc5f85a05acac61defe9e9bf591","a1e824c3a6098e9d2e5ffa20b837c6f7adad3e162558e192995e586b7ba3814d","316c8125fe3f12e88e773835e5b7c3ea98674bb9c59d2c21b8e93b020fa07ad7","d176c26f8449419a883a17c2e21176a7c285911b3bcb8e25dc122acbf5b1f3df","938ebb9e8886ccd3c463aa9a6becef6109533c9c5f73cb8f39d4c5b39a070bf3","dec046916e60d4d65e1e861573c8712831383b31f84f52161352d06c25ce0cf4","d8407537466a907ee6b5b3a3759c983c916bdfab68ea1e633c0f5ee7cb43c3f4","73af630d0524c261b9258e6460a4da1fdc00124081dbe7fcc725b166decc6c98","5bb2fe480d35c40db123a3e2014c259e62bf80a33e89c8b600b98e4d93e8ea5e","41b893af46d1f675d25764ff11a6261f99e2b805a4ede479fcd24ae97ecb8011","c7b4cfd511f802a81236e26279d9aaae85dafd75e3475a267bae03b4832e2267","a98e893eb080c21d3157a1c443c96b6a6fb04f1c9f14de684da2a922b21c2961","c53fa4a411d39e3637b047d27abca64cd3cc0d0fec65e785829a7915b5c47bdd","149c7e21aefc2ea04e9f2679e3c88c7b9067a702cab5a53cbbcba0a4960c6caa","eea6ac77d824b8e153c674c947fa7bb287c54ab7539fd45d61ed51e23b2d0829","9016564a05de3860f3cb1744354fccc4caa37a2680e1cc0ddf7a982f026a4ee0","67d7be7d127c2488e886ad1a5c6e9245f7c2d97242abc1b78b61823fd038f5aa","37e981a83e46cbb9bf8fd184aded3db880fb3f1574d104f8d58ca6b7aac81590","4cb843daf1c038117a7e3a4eefd8e7e7466fce0596e310b51a03585aaa28f6a0","57491e2838c68be56e0b88005a5b228d2c27eeadc3d2fcc5a28787b3f868978e","aecf4724de592761d5fe0ff0428bbac595b6493bb127081e62c6829e3a40fe48","276021d90fc4c1435aa0638659147159f41fd8d2559abbd133b651824c80c6bf","da64479de0f2e80f598db0aa0efeaeb51df8d49243d85ad3f73fd183ea6e04d1","60d2790771a24f1dbcebef2dcd34c3bf56a0b504d13b0111182cbfb4c4e30baf","25fe2e9666d90ade5913f31f309391c58d268ce3c5553a41d7a84e4e26c91342","5509d07a6a598798b9a03a97e9a01ce9a949ef6914cbcb16314b9e62e74b7dd0","22133a7899ff76ca6558864bafb58f9674094fda894299978d8e83562c7fb409","7beb26c462791d31790d1eb9ef0ed1868d970efc01ad446d4eeec7d0f142dd88","e0e93d62d8063ac515acadb9d1b152996a96e8df26475736ecff4b1023bb56a5","e01062cac4b274b472c8a46e9fee0ff63eb8263182211b4abaa5f063f47a08d9","16c6f0224cf150ed1ab8144d60a91d1d83fec81c7bd0e53f02f1eb0e9ebf5925","aaad90530d1e21eeb26b2390233fac7daefd82c96c19af5d1c41d6b7d191b18d","682979de27178401721b6c18d7eead3d9d06d832abf47b2660d10a6d4abb858b","bd4bd29bdcba22c675b0a62da0e60fb6472fb2479e5f0cc483edfd23a384a0e1","df220fa1c3aad1cbf8ac8e3d7f25e95d37cc1ddf54c77b328a1458d1071f6137","d83cd382dee5139a136c3ccd3f52a9d8e8702a2b53dcd81c76807932bf2b5b57","ab8492b33c9d6a086013a7ce136b8a1ff16d684acc416d2623719c8146f373a1","ad5dd431da11184b37ec2e55487958e7dbd591b54f1155906bb113661a20b5a3","e490a1200bc2fd80f98b376715c65a00a0c29e0ec5fbb9869be0b689d0a082c8","cb999135eb4320c88bb60fe7e4d19a2fc98d17a949aa35eb8ca4d12a30dce627","1dfea586acb84bbe87e08a092cae356265001ffee64258c8cdae2483ee5beffc","ad5b06007c303280d89c6883369e9e9af979e199562c9765bf709d567abb8c1d","cf1efeee7a245e2baf930c0ba8c1be174e175c8a95e12eb6db70398aed294f6d","62c4bdf6937f4884a45ebbb5b33c0f31267e4085353be632dac46f9b49883296","6e2e0cb1e911d0e769c989c2d89e5556614f48d44738708630bddaaa82da996d","8921a0268e2ae1eabbb0a246271df000ea1f09992d8a29d6716d1595fbba6f2b","4d11730841ec9de1b0a257a36f1dcf329d458703972e202adabf45cc11ad0b7e","6a1a667b57b2912c88030279304b7bb9df5d69b17dd9cf1194fdc28bcacba93a","8681e2b00900f0fa3cb81623e151f7027b3ae836436f224691b1739bfa53c267","41703355ce9bd47532b5e8cb875c6be5e3c36e399eca652c63293c9159fe11fb","6291c890d71c10fba98e717d3d66b1b96618a59ab9222355f39aa4f8b1bcd616",{"version":"3349a9c1033483cfab1b99e20bed946d21285d5a0816fcf40e9c2d457f660530","signature":"da0d4b8af4236f9ff707be3b734a60625b264c3e84fd3c4aee55e5b5e245ccda"},{"version":"33330e4e470b14d092c1a43dba936a07b2be29c27118491d9e9141604285a6e7","signature":"9c1c603df4afdf5c8623237bb8ddfcb38fb889c2bd5f8112a65145167af1f51c"},{"version":"4802f9f93059e9a4edc28950c825549a9e0156071f47be1176e2d96b8e581329","signature":"6f7832da6d34b86ef8987e0a4e1af2a78c00abacfc646b24a2bd7e03ba95b188"},{"version":"82bbb4ab4eca6571e203fa7bc111d52fe781f4531127b264e7312d30775a8c97","signature":"cb15a3e457e04b72ed7034c9f7391c129fdf5e21fcc0e99f3562b6ace5fff834"},"af43e2fbefcb987495af3885475bc20fec590234df2ca53afd1891d38f10527c",{"version":"45f859a2712ee9bc1f583cf64250b2e0a5d4d3c745ac74fd2120e80bfb6acf29","signature":"eaa9a57679b8cdafac3193dd76f8061e6c43a36bfcd666c00d146ea55d2c44ff"},{"version":"f03db74a2aa1817e50db7b84b19c7b44db7c5a312b487249dd74ce19c160c57d","signature":"91820021fc0cea6268b5bd310256e874b04113766d4410b6b2f7945e4a81f790"},"3b538101dd1fe980dececea18d08ad347a371e95b29cb4c4172cf10a21520689",{"version":"98526834a7377b0c4edac5245872e9d6c588548695ceee91e44ceb9e137856de","signature":"c2739c59f84fe557bc939d500ef26b8a72412c0e25de59722c4741e77b23174f"},{"version":"a5a520d7bdb8c782c912b558553fd1b8fde273f1438993b195f82ac1043aab8f","signature":"70fb8bbffef46c1de7dab4ea95790c40b99b366079d45e15661fc09a3f47c7e7"},{"version":"1898a4b23af042b05220337f52f9545662776b8541384544cbcde86c7c9c93db","signature":"41390db16ee8c6174d43035e0dd8cb95feb1c27c2d2714474830506776ea49d6"},{"version":"338e86270e9a1212f0dbc3ec26c7f1a762c342218387bcf444301a35aa1327a4","signature":"9fd34f53674703b52e87fffec7558236bc38be35ee123b274293afd667d9469e"},{"version":"c8932ce1b0819d532210079b052cff64a57ba9ca7a195c9025eb17a566a042e3","signature":"d2be4fce51176f5d1a089b7d128d0e4a1d1d76574e711011bfeacf6a6e7fd975"},{"version":"1b5734071307568ca212d1fbe9c72c41f52a8e1440829b14779e384f52bb9cc0","signature":"9e00154ed338ac78ce25ccba552841af065e80f6c166fb26cf5c5757209695ef"},{"version":"010e9e2f30452a1637e6716bef5192ca3bc86444b908ed207cfff8260d87e846","signature":"a8726095f712c366103eb12f36a6f86c41d7af79dc0709acf9dbd4d8a591ff07"},{"version":"a3dfa48f5b700b4b2f3434c3c6ab6e901447fd51faaa036ef231016a12b6ef79","signature":"0fa1009b7a3e7d65fed2d78ce43c28d5688e592dca7d08458a46767c683ffe51"},{"version":"bb8c6145979cbca0b3f3fb7a306e8d62e0051fc960de079d12a303d7b9849dd6","signature":"8c8d1c8481cd97dea4fa51692a275c00078c69f745f7a695130483dae70be9c9"},{"version":"31365e2fc957f608654295a66214d7bc9acc4ea7e0b06fef7df688322596f5b3","signature":"7585f9594f66297d43618b79b91c7f63f47197b7530dcc370e61e32b01055c67"},{"version":"f82b455903fec1570517cb9a1abd61ea4a79fd7b07939c0c83c297b648e018a3","signature":"5084c6731a407e152679059a9090a0e33612d6006ce565432cda599f66b7c17f"},{"version":"a43cbcd616e880ee8900641f5576216a9611a2d32756981de43f23f23e85c389","signature":"a8a91f35c90a89bcb4eb19363066b852ff3d1f206d70aa19b9d58a66a0b460df"},{"version":"e764ebbd576a44cda0c3f26efeff47539749f3718c99c9d9b13b3e5b82589d8b","signature":"741d63f5f8d9b317b9a8ac42fb7bc65d28808f4a32608c852ebe410518a852a0"},{"version":"7452617d3f10d5445742ea862d6893de551a1525d7c36b51e84ea7e38f81774d","signature":"b7dd1043a7b88ec6863d1d9faaee6c1b88f2cee1d6fa30b0f8841ad66e6f8ec1"},{"version":"81f33b10e9846596a899ab3536d6cf17e5dee177322fe32cb3f6751c2decfe8a","signature":"bc62d97b6ae3d63bb751f4d4b4be09c8c4201efe6888ae186da181668d7fe130"},{"version":"a2b1d452d105c3dd7332e833285ab04576a1fa78e205c7ddf8749657fb536de7","signature":"c51b8ec155e0e48ade2454f1b4fdee987183815af3807af61a104cdd0e7a85dc"},{"version":"d8fb4b93f32a1357c02b451d2b65eadd09fd001738766d0078d0ef04a118912c","signature":"93afddf96dcaea0fe2ad8f91cde215c299f29238e2e95fc1096f8801b68fac30"},"0ba637a67e23360aa6f43331ef6ac0111f805dc868cddd8105ac750a6157b71e",{"version":"292d7f402e0c2dc9d6ff2544548292fe11db7e6de0cd16616893c907a641dc4d","signature":"767a9be119709b9f24cdfff6715467c3243125df2ee89e5a0525797558fdb937"},"bc6dd50ac2fc9a7ca6488811b116bd0ddd606338db0bb97852c8fcf757e2d7f5","982017b9d20d48b8d7dd48a07f93a367ddae106846a04146cf58171571ceafed","a7a74b55a74b69119990ec09675e3f7c484cea5e7fc21639d7aafe26225b118f",{"version":"b514542e63c5fadc5086357194e976a30b8ca13f419fad5f3d0b5dc183989d87","signature":"fa82b90cf1844a45072819f105810d52864a8ad34ad08e3593f96d21d20ccf08"},{"version":"6db57f6e0b5775a3327a17e8b671b20746bb7254b639c61440f48e24f40f739c","signature":"cc3abbdac27a8cda4c7045fc5ce3561c52b1966e15d362b3a3e1ef5dc7ac5a7a"},{"version":"00d77fcf992d9f0a08b9f32b2486c4caf50746f8ec774258bd855bac7fc42b39","signature":"4ded1bce1ce217ec01619bdbcf24b91500316063f46eaf7b916f4005d871a174"},"309f8809904d650f26f4d485f192e4db8586275086a88fb211c2ccc35c4bfcdb",{"version":"a48e95e5b4f56daca7efd31eefae08c7690efd22a91cbb39398e3281dacc2514","signature":"cafbf3ac2d0b516e494ed5a69e8e65f75f30d99dd9520a7c18db5fd62a24e4b3"},{"version":"0d2396acb8114cc90a94970d3e0227e3424688727bea701caa03e68fd1863785","signature":"8d3a24675c9d521f4f4b6d1ff1f6725930d2f706cdee58a800c4d3fea1f30ad2"},{"version":"cf6c0a4f630123d685f7f89779f28e870d255e752fa015605fb3c9987cb5d301","signature":"5cd765283a7e38be6eddbae8c7172447b6b33734c5f838d08547034346d4c8eb"},{"version":"5fcdcdad99061e099cb8dd287a382dc112d7e995106b4d086ae0e3225d927d8d","signature":"65e35f186ca4cdd28c2b31f1d00625d2b044474082fca06060c4c9885b51892a"},"b938dcd1f76e9e454e5d7f8fb263387dbc4b1c6a9b08dc8c01dbbda0bd1b35d4",{"version":"8e8fa46b85b847a411622f0719416076c92255c5de9ae8c0cc9509e625b66356","signature":"80e05e562c6618ef9ea6a354cc2b0685e5c386fb8b8a98de4495518e5b26075c"},{"version":"d895e2f3d812f282a23f62b77ff7f5cd0d196186c10ec27df98a79ab7ca52147","signature":"ec0d2bace4ab2d364f7f000aa7b457781b1cd6126406b242a4f73a5c3a314053"},{"version":"c349d1812a187fe9ebe3b5a19593f650986730442b2d73fb9a8d151fad9934f1","signature":"d7f0c6f4acc00dba1e48419af5b0480d3facfba3038589fa8adbacad6f7690f1"},"bdf359626b0f43cfef035a3f421f94f1fde72a368ed46bcb7b81f03bd426bbbe",{"version":"f743ade02ac8bf818d6ff252d035467df7293b1036191bbdbb60dec578cc2083","signature":"0c841ce1594ac220ca0b88545d7523aebcdb7338f7940d7171d5055e40d6373b"},"d4da9754445ea9eefe81c37e29c40fc5541fc5716c01676896575f1ad7dfeaf1",{"version":"3f2d8515455dc6463bfa490f19330c57b89f0d992f880ed477fc5b37dc81c6f4","signature":"14f2aee86d59020450a611d982b67b52bccb1ed3be69235bd534f0979a3428a6"},{"version":"dd43edc707491040dab83f4a516235e309a2b46bda832609ab87154dc634673e","signature":"f07b4ebd2e94ebd50f9c59c6b523a98344a4d8796d95f5cc39c1ce1abdc412cc"},{"version":"58d7f38b53d16da3cb329560664b9251bf0aa4f8be52f943107eb7b210d24244","signature":"5ccf107326a57f88fdf8cbc4cf4ddaf61c82aee27eb104daa18da89cf2115cf7"},{"version":"9316d35f72ca38887f97965725c9a0e819cf51ef1d37732569b50be352132afc","signature":"8bc568980d5d1ac432eb38605a1539ac940096784839655dc7f2057704b53b8b"},"b3edd21907680a84bc7bbc6c72c37b77e93ca0fd4f82f4080b7b6a2254d0872c",{"version":"8339e981a787f62feff9a471c82f8b696cc80b26580eca0c81a18b4a488c02a1","signature":"7a7877232ce50135a0511a2758d4378ebe4cc8dc5eda26d7811292ec933a28a5"},{"version":"d77d86686983a7413ec0d242dd08e1001bf8ea4525a9f98145e46e85fcd1f962","signature":"904fc035816d6b5130ad858d55be6d3385f40eb4f0ff3f9113345c790bbf39ab"},"59a22f4bfc55490c51d999c805802f25f015ec21d83c11aa5db20a48a7d6fd7c",{"version":"a380f6eb4b4d506952733777948b26a9ae11e9da71c5daa30ad98339b60a893b","signature":"206077649afc172aca74e7dcee888e9f3534d4337c5df6f5df817f62cd7b57b7"},{"version":"5ee7c421ee5fd5cc76e56f59eb83e5393a243e735dc213d201052463ac7fdd49","signature":"b95d47e18e72a7f90c8555ebfe5e1781716e3fb19fb611c2adae3c0850cb6d33"},{"version":"3966c5c46ee7941f74e4ae6a0963914b02b358c6b1e61a3b0844e4f5aa4c9353","signature":"4105da24ffc6cf3424b6875a478f7e9f61be81962e3d59dae904c7e3442a9416"},"8bf9eb184fe55d122cbda02300633f9ccf8f740c8d519959052bdfc958355fdb",{"version":"d4ec0046d622b5849e2980cd2c58247d53c07badbe350a0b2384e5f190d0f229","signature":"2ab909e818fcd7db22ebc7ce4185da7d2142abe1e1ec7df33d4687cf30012f8b"},{"version":"31cd52eb2a7aae47db1a77409d817dedfe827dbf23c957b734551aa97bb265b0","signature":"46708fcae3999344326c95961786347cceb0cd634a797f98cd0f346e0458118e"},"2362353e2d9faf8016a5b46a3da76823cf48156b3018dd371e4f80f1e6239616",{"version":"cbd37dd6b2f4acf4f7c69fdd3c51bbdc59ac6378e92fd9e33cb4afd319ef9540","signature":"3806f25c807e84c2f072797ae36011f6443bcd78e4fa57654ced0013a7ad16f7"},"88957d2e3a59673392fea81daf51ac4ecc8018844280e0d99ad595994af8a010",{"version":"1bf14bc941351852d94d10d76628698e5af020b493bda2a2a50dd9cbd3b1278b","signature":"dbd3ac227c7bd2e59e3a386b77339d5ed4d597e61c10e9943c2507201f350571"},{"version":"886b0e6956266b1d68074f5045143552cee82bc6f57db0e8ffcb51aa84e8948d","signature":"8a9cb8acbd873d36a7cd523724d3a2ee35334bf721ff2077c410da9933ba286f"},"b38b31cd0d2a33394106638287abcfa9a92a3211126c22cd1c072479dc397985",{"version":"ddae376c70c83285f82eccffcb5f104ba85c1e7a644c9536a392eb27cc3692ae","signature":"2e534ed67713dde3fa041ca2656100b5650094c79a078f7697f49f9133fc51cd"},"fa7828312d84b7d311e6e4f2fbbb131bf80d41a51fb741c668cde40204471d03",{"version":"31a7969cbdfc0819fa685f7777c61d4972170f5e46a3e25088ba580bbddb62c2","signature":"43023b363e9b54db63bda90809520c615747e54eaceaada90f9d3a2b47e670a4"},{"version":"9ceebfbb5c2aa678bbc93358ca4b80e42f992c77165587509b0b90ff67ae5fe4","signature":"beeaae3ae7f26f640265e3caa0f4623caf9efe1cbdfdc6d155a42def66e80038"},{"version":"1842f092d2761e1202a4ff112cabf20d0c0d833d55227f497cd9c4357074ee55","signature":"4e4ccc8541aee8556c652955258e8389c58b741cc9cbea6e323c5e90a785f400"},{"version":"bad83313f9f18438b1695753c0464d06e1dfa1ec51b3f8fecf32474a3932a6a7","signature":"f81448b6f90de5a81c5dbe857ab630a0b8acd45bf0ede8cef3717721ad70fb54"},{"version":"f15f3c57d9633b1cc96f60f41f03bfff8bfc7ace73f1a2fe1eb984c0f9412657","signature":"674749ffe6f73cfe1a74c7b4267eb2a1876973feb796c93385f8480bf61899b7"},{"version":"6914b73e018f46bb7f03b8fc3a1896c88803a482396adfa1f4a78de12b5d6b4d","signature":"0956c60ae7bce834e722c679c31a18012298d671ac94abc2791b347d79084c2c"},{"version":"167bf258552650e615309142147b555c680c8dc7847cbe5939111ea0c30935ae","signature":"4cc50be13d26e63825d8c700bc1e5a44aa4d396481a03b817a779c226e796d59"},{"version":"107c61f75c31bbf50af518fd263da0d21c86b39e9aa089fc183e1a69084281de","signature":"f1db78d36e1a53c8ee6830a7db8be92f68c3d9e45c0b4382eafea6325a713a1d"},{"version":"02f021d19076b9bdc57c2925993b8f1ab5cc21603d37f12d630ba24ba5931980","signature":"efc0a4b94f5e3b88fabb1c98570d0fbba2949d0caa3270bd21c38a30bec455d6"},{"version":"c5eb57b9afea27a6e8656ab693e8bd7d160d530293a8f629a85cf85ec5f0e20b","signature":"43eb156c0ead0e5b12f31411d4ffb478ffada60a2aae6e75442a1aa86c4eafdd"},{"version":"0f027a86c258818cddb10d50d211565236dd5e2eb2f757540d522e0ec12911b5","signature":"0a313686b7e5c6b69ab598926657f51256bb291059985f4aad5f84fb825c141c"},{"version":"78f17995980d42d8407e08469dc7840605c7ee25256fef50f283e699b7f358af","signature":"8847f3277b95d8046da47c63d626e7d9104c9d8c5acbb6f8440a9e199df0c56f"},{"version":"ca55349bee4f153993eafdef9efc58bd5cd4ffe8fb554398ed6bb9fa3dcd789b","signature":"48a2d314c1a990acae887e7ef51177199c3176e733cad4d57739ba6a22d5ead0"},{"version":"75a0f0d89e7441a77310165306c730266368a07954353bad7c996b8399e23e44","signature":"3cd4fb38f6f16d46640727d99f4bbc77fb2b0d3c1d821fec0a1629dc32c6d1be"},{"version":"fc9b89cd1928a865cf791155e7a1abcabf479d02c37b567782fde963fb26259e","signature":"48adfdb8ce6d65b3d2ffb05971ed501833e835b1ec7751402ede274a56a1a697"},{"version":"711a781aa2a3f208f57c73f2ea061f7a87571b3af39677f69876cef1a6831b17","signature":"e67388d1ce444d71a00104cf32f4e9e5d8e5801b5b432aab18bdf1767b0e694e"},{"version":"ad3620638c1842060e964aa81dfe2272e61c4d3a1fcd845c4d56788da0649e26","signature":"5723a348cf1a316106cc66bbe841491a11efebdf5e14a19f48d3e6a7d531bf91"},{"version":"30eb8b112548d3078871f02b7fb80b8ccfb57751d4476b173ea3f9c154b71b85","signature":"9069cd6d4cf3f00a363ebe2a6c1d306e51b86268a00872cc4cebf017184ea347"},{"version":"1624831c405e833248137ae723cd36fdf1a709026b4949360cb8309c1bc5c424","signature":"6a9e02efd45b5bb617f270fa7d2d6da5de09017cac12da05b728bf338d1bf57a"},"a1396a5e67084c5669c2c65f5130acd7671ecb5552680abc05f95fc118bbc991","8bd139fbb1bede0acf6220aa169bcffb63b3555dc807f5951df14165a7d01177",{"version":"4ffc566fe57b0d52b928db0a4fc750416b56852e9a672200887499c19e5c6931","signature":"cd1d67c575ebbf5801114902eed14a4483a6c6da60e5afefc056fa3adc9239d5"},"0b8638c8c4169b36461a991601f51882e8a3911c4c4094ab114c223442d413e3","1cf13a0e412ccde6ac154f59ad8e7c04ec603951a090c7799e107e5aff594c5c",{"version":"70f0ddc58f8b7283e1cffa39863938ab694e14fb3dcf0cac4d78b2d002f91255","affectsGlobalScope":true},{"version":"79da89e1b61cecf107f52a0c2578f31528bc0accdc73bec7325f468a5706a559","affectsGlobalScope":true},"4de163cf9037509faf9276540c717c0879309ee4e385b5ccfe6de54868d50de1","d1d83c8c4de498736fe415d9a44d5c5d0f025d584d4759267c38c4f026289322","c31294ba7381e921caa30d4408fa7637053d9cb3456a750f276fd8a9bb0e42d8","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","e86f1ef04706b7c7f3955bcb6db09f559ad7b33f08a29f30e03283d53b17750c",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"bee89e1eb6425eb49894f3f25e4562dc2564e84e5aa7610b7e13d8ecddf8f5db","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","dea2650c477f53d503a27f78ed17b13d7184c2f922eb4d3367ccf52634765467","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","085d4c9f010e6f363961dd1939a851d029b97994f705d79f2a72a0c88a5c4bc5",{"version":"16a14d16cdf08b9a913f46e4a0e4d423158065b0ee276378775d5d5616059cfa","affectsGlobalScope":true},"a639a78cbf73be91da5c954684b705e98e3b809d6c8e0026b114cda70802c37c","975f84de013567851d216d78a3a86736bb330cae11fdc907b222dffa148b31d2","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044",{"version":"51d5f2027771221d30dbb2a45dcd35d06164e1842ad6c2e9058bc6bbe90a02e9","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","6503fb6addf62f9b10f8564d9869ad824565a914ec1ac3dd7d13da14a3f57036","0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","f313731860257325f13351575f381fef333d4dfe30daf5a2e72f894208feea08","951b37f7d86f6012f09e6b35f1de57c69d75f16908cb0adaa56b93675ea0b853","3816fc03ffd9cbd1a7a3362a264756a4a1d547caabea50ca68303046be40e376","0c417b4ec46b88fb62a43ec00204700b560d01eb5677c7faa8ecd34610f096a8","13d29cdeb64e8496424edf42749bbb47de5e42d201cf958911a4638cbcffbd3f","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","c757372a092924f5c16eaf11a1475b80b95bb4dae49fe3242d2ad908f97d5abe","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true},"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","c8a34d0c858532a9fab7f0b65f3cff6507df055a0cd8b965c4fd5667b5a0cf7d","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","a73a445c1e0a6d0f8b48e8eb22dc9d647896783a7f8991cbbc31c0d94bf1f5a2","e7500c5c071db4d1e20e87166be266f489dd632b738e885b221e6efa6c8efe89","bd85e061719661505dc7c273cb72a4c7fba05fb4e24520e8caca9f9f074462c3","e109f5f766ef2fb64aa3c0a8918ebfb66c011f3f43611b536512675bc1d32834","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b6a6fb3519346f9cd67d89bb7455138328691b1780688fac1febe03ae3648cd9","168435ab3390620aebf1aa0001b380983582d0849755eeb17f2c501d1fc57587",{"version":"159733de19927f949b83112a45b7c52ebc0bbad1605a668d5c19ba65e0ee9128","affectsGlobalScope":true},{"version":"c16dbaa3868bacd3383a553f462f20fa8fa671dfa1e92ac464a5c7ffcfcc37c9","affectsGlobalScope":true},"a6a80d576cb7beda26af64d1e0a23e382c9986fae214de994870f4cd7b4e0ea1","aec59f80c62291ec634283d443b27ebe6fc6cf57670057aa9a172927675bfbea","829c6dfd3224be3b599c64ce7fa9136a3422ac7ab4569cc52469c65574facb23","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","b7b0003c5404c9cae2d7caf5d6b469b190cea06cce7815ba0e479a4457875290"],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"inlineSourceMap":true,"inlineSources":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":false,"target":6},"fileIdsList":[[312,317,361],[312,320,321,326,349,351],[312,317,318,319,351],[312,317,349],[312],[357],[354],[310,354,355],[306],[307,309],[308],[312,318],[312,323,344],[312,325],[312,317,340,342,344],[311,354],[312,315,317,318,319,320,321,322,323,324,325,328,329,330,331,332,336,337,339,340,341,342,343,345,348,349,350,351,352,354,361],[312,315,339,340,342,344,348,349,351,352,354],[312,313,315,339,340,342,344,348,349,350,351,354],[312,317],[312,315,317,330,340,342,344,345],[312,335,340,342,343,344],[312,320,328,351],[312,329,351],[312,315,323,330,342,344,361],[356],[344],[306,308],[315,350],[312,320,323],[312,328],[314,348,349,350],[312,315,317,318,319,320,321,323,325,326,327,328,329,330,331,332,336,337,339,340,341,343,344,345,348,349,350,351,352,354,361],[312,313,315,339,340,342,344,348,349,350,351,352,353],[349,351,352],[312,313,339,340,342,344,348,349,350,351,352,354],[312,315,317,318,319,320,321,323,328,329,330,333,334,335,336,337,338,340,342,344,348,349,350,352,354,361],[312,315,316,317,320,329,330,334,335,336,337,338,339,340,341,342,343,344,345,346,347,349,350,351,352,354],[342,344],[359],[316,348,354],[312,315,317,322,339,342,344,348,350,352,354],[348],[312,317,320,329],[312,320,334,335,337],[312,342],[312,320,337,340,342,343,344,345],[312,319],[349,351,358,359,360],[344,361],[246],[241,242,245,246],[226,241,242,245,247],[241],[55,88,242,245,246,249,256],[245,246,249,250,256,258],[243,244,438],[242,243,244,245,246,247,248,249,259,260,261],[176,242,245,246,249,256],[256,258,262,283,285],[195],[55,196,197],[196,198,199],[55,195,197,200],[197,200,202,203,219],[197,200,201],[55,176,187,195,197,200,202,203,213,214,215],[215,216,217],[55,88,197,200,202,203,204],[204,205],[204,206,218],[284],[241,262],[176,195,250,251,253,255,262],[257],[220,224],[223],[55,176,226,286,368,402,406,413,416,420,423,424,426,428,432],[55,225,226,241,277,286,289,368,402,406,413,416,420,421,423],[424,429],[47,176,425],[176,177,439],[225,406,417,430,431],[241,291,430,432],[47,241,417],[88,176,274],[47,195,277,389,402,408,413,430,432],[47,409,411,430,432],[50,195,277,389,402],[410],[409,410,411,412],[177],[34],[177,178,275,291,365,368,371,389,397,402,406,408,413,416,417,418,420,423,426,428,430,431,432,436,437],[176,402],[422],[227,407],[47,430,432],[47,406],[225,402,403,430],[403,404,405],[47,88,364,365,403,404,430,432,439],[363],[176,178,225],[390,394,395,396],[55,364,390,395,402,432],[55,223,364,390,392,394],[393],[414,415],[416,430,432,439],[225],[228],[228,229,366,367],[47,176,365,368,402,430,432,439],[47,368,430,432,439],[419],[176,418,430,432],[402,430],[369,370],[365,369,402,432],[389,432],[374],[375],[375,377],[374,377,378],[374,376,379,381],[380],[372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388],[226,389,402,432],[88,179,267,365,432],[55,88,176,179,195,215,219,255,266,267,268,269,365,406,432],[266,270],[219],[47,88,179,203,219,247,267,268,365,432,433],[433,434],[206,219],[267,268,271,435],[176],[55,179,262,263,279,404,406,430,432],[339,342,344,361,362,363],[179,406,430],[230,231,263,279,280,281,282,290,305,364],[88,179,230,278,402,406,430,432],[47,55,176,179,432],[47,179,219,225,278,279,402,406,430,432,436],[55,179,219,225,277,402,406,430],[50,88,176,179,195,219,230,265,266,267,268,270,271,272,273,275,278,402,406,430,432,436],[273,276],[179,195,219,271,278,402],[88,179,219,230,255,268,272,278,286,287,406,430,434,436],[278,287,288],[179,219,272,278],[272,277,278,289],[47,55,176,225,291,304],[215,225,365,368,371,389,397,406,430,432],[225,398,399,430],[398,399,400,401],[47,55,88,178,226,227,241,275,277,289,291,365,368,370,386,397,398,406,407,430,432,436,439],[47,88,176,225,226,275,365,399,400,406,430,432,439],[421,427],[47,421,430,432,439],[453],[440,441,442,443,444,445,446,447,448,449],[55,176,453],[47,241,446,453],[440,453],[442,453],[444,453],[448,453],[47,438],[34,204,225,286,288,438,439,450,451,452],[226,241],[90],[181,182],[90,181],[183,191,192,194],[193],[180,188,189],[180,183,187],[190],[90,187],[232,233],[232],[234],[233],[232,233,234,235,236,237,238,239,240],[92,116,117,567],[117,567],[94,126,129,131,567],[94,130,567],[116,133,140,176,567],[94,114,126,131,133,136,176,567],[116,117,567],[116,133,139,176,567],[117,118,567],[119],[114,117,134,137,567],[116,117,133,567],[116,117,133,134,140,567],[134,138,141],[94,120,124,125,126,128,131,132,133,137,140,142,143,144,145,146,153,157,158,162],[117,123,567],[114,117,137,159,567],[117,133,567],[116,117,133,140,159],[159,160,161],[116,126,127,176,567],[116,567],[116,117,126,128,133,136,140,567],[116,117,133,137,140,567],[94],[94,116,126,133,136,137,143,147,149,567],[126,127,133,137,140,146,147,148,176,567],[126,136,567],[127,137,147],[128,147,163,176],[126,136,147],[128],[127,147,148,149,150,151,152],[114,115,137,154,176,567],[116,140,154,176,567],[154,155,156],[567],[116,117,118,139,163,164,165,166,171,172,175],[123,129,136],[173,174],[116],[94,116,567],[167,168,169,170],[136,163],[117,136,163,567],[117,128,163],[176,567],[90,91],[90,112],[91,92,93,106,107,109,110,111,112,113,115],[106],[90,91,94,95,96,97,98,99,100,101,102,103,104,105],[90,91,94,112,114],[90,106,107,108,109],[90,94,95],[254],[59,61,81,90,461,462,463],[61,90],[55,90],[466],[264],[470,472],[469,470,471],[90,264],[475],[60,90],[75,90],[59,90],[35,37,38,39,40,41,42,43,44,45,46,47],[35,36,38,39,40,41,42,43,44,45,46,47],[36,37,38,39,40,41,42,43,44,45,46,47],[35,36,37,39,40,41,42,43,44,45,46,47],[35,36,37,38,40,41,42,43,44,45,46,47],[35,36,37,38,39,41,42,43,44,45,46,47],[35,36,37,38,39,40,42,43,44,45,46,47],[35,36,37,38,39,40,41,43,44,45,46,47],[35,36,37,38,39,40,41,42,44,45,46,47],[35,36,37,38,39,40,41,42,43,45,46,47],[35,36,37,38,39,40,41,42,43,44,46,47],[35,36,37,38,39,40,41,42,43,44,45,47],[35,36,37,38,39,40,41,42,43,44,45,46],[503],[488],[492,493,494],[491],[493],[482,489,490,495,498,500,501,502],[490,496,497,503],[496,499],[490,491,496,503],[490,503],[484,485,486,487],[61,81,90,509,510],[61,75,90],[87,88],[59,66,75],[51,59,66],[75],[57,59,66],[59],[59,75,81],[59,66,75,81],[59,60,61,66,75,78,81],[59,61,78,81],[89],[57,59,75],[49],[59,75],[73,82,84],[55,57,66,75],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],[66],[72],[59,75,84],[518,557],[518,542,557],[557],[518],[518,543,557],[518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556],[543,557],[50,60,61,75,90,221],[560],[59,61,63,66,81,90],[59,61,63,66,81,86,90],[565],[207,208,209,210,211,212],[90,94],[135],[391],[90,121],[122],[90,264,294,298],[90,264,294],[50,90,264,294],[264,293],[90,294],[294,295,296,297,298,299,300,301,302,303],[90,298],[90,264,294,296,297],[252],[184],[184,185],[184,185,186],[90,292],[226],[456],[241,245,246],[226,241,245,247],[245,246,249],[176,245,246,249],[196],[195,200],[200,201],[55,195,200,202,203,215],[200,202,203,204],[195,262],[55,368,402,406,413,416,420,423,424,428,432],[176,177],[241,430,432],[241,417],[195,277,389,402,413,430,432],[409,411,430,432],[195,277,389,402],[430,432],[406],[403,404,430,432],[390,402,432],[390],[416,430,432],[365,368,402,430,432],[368,430,432],[365,369,402],[389],[389,402,432],[179,267,365,432],[55,179,215,266,267,365,406,432],[179,219,247,268,365,432,433],[179,263,279,406,430,432],[344,363],[179,278,402,406,430,432],[179,432],[179,219,225,278,279,402,406,430,432],[179,195,266,267,272,273,278,402,406,430,432],[219,272,278,287,406,430],[365,368,370,386,397,398,430,432],[399,400,430,432],[421,430,432],[241,446,453],[438]],"referencedMap":[[321,1],[327,2],[320,3],[318,4],[322,5],[358,6],[314,7],[356,8],[307,9],[310,10],[309,11],[323,12],[324,13],[333,14],[345,15],[313,5],[355,16],[344,17],[350,18],[352,19],[325,20],[343,21],[346,22],[329,23],[334,24],[331,25],[317,5],[335,20],[357,26],[362,27],[311,28],[316,29],[328,30],[332,31],[351,32],[342,33],[354,34],[353,35],[319,5],[315,36],[339,37],[348,38],[330,39],[360,40],[349,41],[340,42],[336,43],[337,44],[338,45],[347,46],[341,47],[326,48],[361,49],[363,50],[249,51],[247,52],[243,53],[244,54],[260,55],[259,56],[245,57],[262,58],[261,59],[286,60],[196,61],[198,62],[200,63],[199,61],[203,64],[283,65],[202,66],[216,67],[218,68],[217,61],[215,61],[205,69],[206,70],[219,71],[197,61],[285,72],[284,73],[256,74],[258,75],[225,76],[224,77],[429,78],[424,79],[430,80],[426,81],[178,82],[432,83],[431,84],[418,85],[275,86],[409,87],[412,88],[410,89],[411,90],[413,91],[417,92],[291,93],[438,94],[422,95],[423,96],[408,97],[227,98],[407,99],[404,100],[406,101],[405,102],[403,103],[437,104],[390,103],[397,105],[396,106],[395,107],[394,108],[416,109],[415,110],[228,111],[229,112],[368,113],[366,114],[367,115],[420,116],[419,117],[369,118],[371,119],[370,120],[372,121],[373,121],[375,122],[376,123],[378,124],[379,125],[382,126],[381,127],[389,128],[384,121],[385,121],[386,129],[387,121],[388,121],[268,130],[270,131],[271,132],[266,133],[434,134],[435,135],[433,136],[436,137],[267,61],[231,138],[280,139],[364,140],[263,141],[365,142],[279,143],[230,144],[272,145],[278,146],[276,147],[277,148],[273,149],[288,150],[289,151],[287,152],[290,153],[305,154],[398,155],[400,156],[402,157],[399,158],[401,159],[428,160],[427,161],[440,162],[442,162],[444,162],[450,163],[446,164],[447,165],[448,162],[441,166],[443,167],[445,168],[449,169],[439,170],[453,171],[451,61],[452,172],[181,173],[183,174],[182,175],[195,176],[194,177],[190,178],[188,179],[191,180],[192,181],[240,182],[233,183],[235,184],[236,185],[241,186],[234,185],[232,185],[238,182],[239,182],[164,187],[118,188],[132,189],[131,190],[146,191],[137,192],[133,193],[140,194],[119,195],[120,196],[138,197],[134,198],[141,199],[142,200],[163,201],[124,202],[160,203],[159,204],[161,205],[162,206],[125,138],[128,207],[143,208],[144,209],[145,210],[126,211],[150,212],[149,213],[147,214],[151,215],[152,216],[148,217],[127,218],[153,219],[155,220],[154,204],[156,221],[157,222],[165,223],[176,224],[172,225],[175,226],[174,227],[173,227],[166,228],[171,229],[167,230],[168,231],[169,232],[170,232],[139,233],[92,234],[113,235],[93,173],[116,236],[96,237],[106,238],[97,237],[98,237],[99,237],[100,237],[101,237],[102,237],[103,237],[104,237],[115,239],[110,240],[108,173],[109,173],[111,241],[112,173],[95,173],[264,173],[255,242],[464,243],[465,244],[257,245],[467,246],[468,173],[265,247],[473,248],[472,249],[474,250],[476,251],[478,252],[269,253],[461,254],[36,255],[37,256],[35,257],[38,258],[39,259],[40,260],[41,261],[42,262],[43,263],[44,264],[45,265],[46,266],[47,267],[504,268],[489,269],[495,270],[492,271],[494,272],[503,273],[498,274],[500,275],[501,276],[502,277],[497,277],[499,277],[491,277],[487,269],[488,278],[486,269],[511,279],[509,280],[89,281],[51,282],[52,283],[55,284],[56,285],[58,286],[59,286],[60,287],[61,288],[62,289],[63,290],[90,291],[64,286],[66,292],[69,293],[73,294],[74,295],[75,286],[78,296],[87,297],[80,298],[81,299],[83,284],[85,300],[86,284],[514,173],[515,253],[517,245],[463,280],[274,173],[542,301],[543,302],[518,303],[521,303],[540,301],[541,301],[531,301],[530,304],[528,301],[523,301],[536,301],[534,301],[538,301],[522,301],[535,301],[539,301],[524,301],[525,301],[537,301],[519,301],[526,301],[527,301],[529,301],[533,301],[544,305],[532,301],[520,301],[557,306],[551,305],[553,307],[552,305],[545,305],[546,305],[548,305],[550,305],[554,307],[555,307],[547,307],[549,307],[558,245],[223,308],[561,309],[563,310],[564,311],[566,312],[254,173],[213,313],[211,173],[212,173],[94,173],[130,173],[114,314],[135,173],[136,315],[391,173],[392,316],[122,317],[123,318],[299,319],[296,320],[297,319],[295,321],[294,322],[300,323],[304,324],[301,325],[298,326],[253,327],[185,328],[186,329],[187,330],[293,331],[292,250],[454,332],[457,333],[458,77]],"exportedModulesMap":[[321,1],[327,2],[320,3],[318,4],[322,5],[358,6],[314,7],[356,8],[307,9],[310,10],[309,11],[323,12],[324,13],[333,14],[345,15],[313,5],[355,16],[344,17],[350,18],[352,19],[325,20],[343,21],[346,22],[329,23],[334,24],[331,25],[317,5],[335,20],[357,26],[362,27],[311,28],[316,29],[328,30],[332,31],[351,32],[342,33],[354,34],[353,35],[319,5],[315,36],[339,37],[348,38],[330,39],[360,40],[349,41],[340,42],[336,43],[337,44],[338,45],[347,46],[341,47],[326,48],[361,49],[363,50],[249,51],[247,334],[243,335],[244,54],[260,336],[259,336],[245,57],[262,58],[261,337],[286,60],[196,61],[198,338],[200,63],[199,61],[203,339],[283,65],[202,340],[216,341],[218,68],[217,61],[215,61],[205,342],[206,70],[219,71],[197,61],[285,72],[284,73],[256,343],[225,76],[224,77],[429,344],[424,79],[430,80],[426,138],[178,345],[432,83],[431,346],[418,347],[275,138],[409,348],[412,349],[410,350],[411,90],[413,91],[417,92],[291,93],[438,94],[422,95],[423,96],[408,97],[227,351],[407,352],[404,100],[406,101],[405,353],[403,103],[437,138],[390,103],[397,105],[396,354],[395,355],[416,109],[415,356],[228,111],[229,112],[368,113],[366,357],[367,358],[420,116],[419,117],[369,118],[371,119],[370,359],[372,121],[373,121],[375,122],[376,123],[378,124],[379,125],[382,126],[381,127],[389,128],[384,360],[385,121],[386,361],[387,121],[388,121],[268,362],[270,363],[271,132],[266,133],[434,364],[435,135],[433,136],[436,137],[267,61],[231,138],[280,365],[364,366],[263,141],[365,142],[279,367],[230,368],[272,369],[278,146],[276,370],[277,148],[273,149],[288,371],[289,151],[287,152],[290,153],[305,111],[398,155],[400,156],[402,157],[399,372],[401,373],[428,160],[427,374],[440,162],[442,162],[444,162],[450,163],[446,162],[447,375],[448,162],[441,166],[443,167],[445,168],[449,169],[439,376],[453,171],[451,61],[452,332],[181,173],[183,174],[182,175],[195,176],[194,177],[190,178],[188,179],[191,180],[192,181],[240,182],[233,183],[235,184],[236,185],[241,186],[234,185],[232,185],[238,182],[239,182],[164,187],[118,188],[132,189],[131,190],[146,191],[137,192],[133,193],[140,194],[119,195],[120,196],[138,197],[134,198],[141,199],[142,200],[163,201],[124,202],[160,203],[159,204],[161,205],[162,206],[125,138],[128,207],[143,208],[144,209],[145,210],[126,211],[150,212],[149,213],[147,214],[151,215],[152,216],[148,217],[127,218],[153,219],[155,220],[154,204],[156,221],[157,222],[165,223],[176,224],[172,225],[175,226],[174,227],[173,227],[166,228],[171,229],[167,230],[168,231],[169,232],[170,232],[139,233],[92,234],[113,235],[93,173],[116,236],[96,237],[106,238],[97,237],[98,237],[99,237],[100,237],[101,237],[102,237],[103,237],[104,237],[115,239],[110,240],[108,173],[109,173],[111,241],[112,173],[95,173],[264,173],[255,242],[464,243],[465,244],[257,245],[467,246],[468,173],[265,247],[473,248],[472,249],[474,250],[476,251],[478,252],[269,253],[461,254],[36,255],[37,256],[35,257],[38,258],[39,259],[40,260],[41,261],[42,262],[43,263],[44,264],[45,265],[46,266],[47,267],[504,268],[489,269],[495,270],[492,271],[494,272],[503,273],[498,274],[500,275],[501,276],[502,277],[497,277],[499,277],[491,277],[487,269],[488,278],[486,269],[511,279],[509,280],[89,281],[51,282],[52,283],[55,284],[56,285],[58,286],[59,286],[60,287],[61,288],[62,289],[63,290],[90,291],[64,286],[66,292],[69,293],[73,294],[74,295],[75,286],[78,296],[87,297],[80,298],[81,299],[83,284],[85,300],[86,284],[514,173],[515,253],[517,245],[463,280],[274,173],[542,301],[543,302],[518,303],[521,303],[540,301],[541,301],[531,301],[530,304],[528,301],[523,301],[536,301],[534,301],[538,301],[522,301],[535,301],[539,301],[524,301],[525,301],[537,301],[519,301],[526,301],[527,301],[529,301],[533,301],[544,305],[532,301],[520,301],[557,306],[551,305],[553,307],[552,305],[545,305],[546,305],[548,305],[550,305],[554,307],[555,307],[547,307],[549,307],[558,245],[223,308],[561,309],[563,310],[564,311],[566,312],[254,173],[213,313],[211,173],[212,173],[94,173],[130,173],[114,314],[135,173],[136,315],[391,173],[392,316],[122,317],[123,318],[299,319],[296,320],[297,319],[295,321],[294,322],[300,323],[304,324],[301,325],[298,326],[253,327],[185,328],[186,329],[187,330],[293,331],[292,250],[454,332],[457,333],[458,77]],"semanticDiagnosticsPerFile":[312,321,327,320,318,322,358,314,356,307,310,309,323,324,333,345,313,355,344,350,352,325,343,346,329,334,331,317,335,357,306,362,311,316,308,328,332,351,342,354,353,319,315,339,348,330,360,349,359,340,336,337,338,347,341,326,361,363,249,247,243,244,248,260,259,246,242,245,262,261,286,196,198,200,199,203,283,202,216,218,217,215,205,206,204,219,201,197,285,284,256,258,220,225,224,429,424,430,426,178,432,431,418,275,409,412,410,411,413,417,291,438,422,423,408,227,407,404,406,405,403,437,390,397,396,395,394,414,416,415,228,229,368,366,367,420,419,369,371,370,372,373,375,376,378,379,382,380,381,389,383,374,384,385,377,386,387,388,268,270,271,266,434,435,433,436,267,177,231,280,364,263,365,279,230,281,282,272,278,276,277,273,288,289,287,290,305,398,400,402,399,401,421,428,427,34,440,442,444,450,446,447,448,441,443,445,449,439,453,451,452,181,183,182,195,194,193,190,189,188,180,191,192,240,233,235,236,241,234,232,238,237,239,164,118,132,131,146,137,133,140,119,120,138,134,141,142,163,124,160,159,161,162,125,128,143,144,158,145,126,150,149,147,151,152,148,127,153,155,154,156,157,165,176,117,172,175,174,173,166,171,167,168,169,170,139,92,113,93,116,91,107,96,106,105,97,98,99,100,101,102,103,104,115,110,108,109,111,112,95,129,214,251,459,460,264,255,464,465,221,257,467,468,265,473,469,472,470,474,475,476,477,478,479,462,480,471,481,269,461,482,36,37,35,38,39,40,41,42,43,44,45,46,47,483,504,489,495,493,492,494,503,498,500,501,502,496,497,499,491,490,485,484,487,488,486,505,506,507,508,466,510,511,509,88,49,89,50,51,52,53,54,55,56,57,58,59,60,48,61,62,63,90,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,87,80,81,82,83,84,85,86,512,513,514,515,516,517,463,274,542,543,518,521,540,541,531,530,528,523,536,534,538,522,535,539,524,525,537,519,526,527,529,533,544,532,520,557,556,551,553,552,545,546,548,550,554,555,547,549,558,559,223,560,561,562,563,564,565,566,254,393,207,213,208,209,210,211,212,226,94,130,114,135,136,425,391,392,222,122,123,121,299,296,297,295,294,300,304,303,302,301,298,253,252,179,185,184,186,187,293,292,456,250,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,1,33,454,455,457,458]},"version":"4.3.5"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-core",
3
- "version": "8.2.1-beta.74",
3
+ "version": "8.2.1-beta.76",
4
4
  "description": "core library functions for BitGoJS",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -36,10 +36,10 @@
36
36
  ]
37
37
  },
38
38
  "dependencies": {
39
- "@bitgo-beta/bls-dkg": "1.1.1-beta.313",
40
- "@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.65",
41
- "@bitgo-beta/statics": "15.1.1-beta.76",
42
- "@bitgo-beta/utxo-lib": "8.0.3-beta.74",
39
+ "@bitgo-beta/bls-dkg": "1.1.1-beta.315",
40
+ "@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.67",
41
+ "@bitgo-beta/statics": "15.1.1-beta.78",
42
+ "@bitgo-beta/utxo-lib": "8.0.3-beta.76",
43
43
  "@noble/secp256k1": "1.6.3",
44
44
  "@stablelib/hex": "^1.0.0",
45
45
  "@types/elliptic": "^6.4.12",
@@ -73,5 +73,5 @@
73
73
  "@types/lodash": "^4.14.151",
74
74
  "nyc": "^15.0.0"
75
75
  },
76
- "gitHead": "dc4962663ea766e73974932c06b94c7fa8e775dc"
76
+ "gitHead": "32f798ff54f5fa3e4cdd8b94c19704ec3da8ab73"
77
77
  }