@lifeready/core 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/lifeready-core.umd.js +7390 -8456
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +2 -2
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/utils.js +9 -1
- package/esm2015/lib/api/lock.service.js +10 -10
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +1 -1
- package/esm2015/lib/api/query-processor/query-processor.service.js +71 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +31 -1
- package/esm2015/lib/auth/life-ready-auth.service.js +12 -24
- package/esm2015/lib/cryptography/encryption.service.js +3 -3
- package/esm2015/lib/cryptography/key-graph.service.js +24 -5
- package/esm2015/lib/items2/item2.gql.js +139 -0
- package/esm2015/lib/items2/item2.service.js +498 -0
- package/esm2015/lib/items2/item2.types.js +1 -0
- package/esm2015/lib/scenario/scenario.constants.js +2 -0
- package/esm2015/lib/scenario/scenario.controller.js +34 -0
- package/esm2015/lib/scenario/scenario.gql.js +35 -331
- package/esm2015/lib/scenario/scenario.gql.private.js +198 -0
- package/esm2015/lib/scenario/scenario.service.js +420 -493
- package/esm2015/lib/scenario/scenario.types.js +1 -64
- package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +22 -0
- package/esm2015/lib/trusted-parties/tp-assembly.js +362 -0
- package/esm2015/lib/trusted-parties/tp-assembly.types.js +1 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +4 -3
- package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +34 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +5 -1
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +36 -240
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +3 -3
- package/esm2015/lifeready-core.js +6 -3
- package/esm2015/public-api.js +6 -15
- package/fesm2015/lifeready-core.js +6127 -6909
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/utils.d.ts +6 -0
- package/lib/api/lock.service.d.ts +12 -3
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +1 -0
- package/lib/api/query-processor/query-processor.service.d.ts +1 -1
- package/lib/api/types/lr-graphql.types.d.ts +107 -2
- package/lib/auth/life-ready-auth.service.d.ts +3 -1
- package/lib/cryptography/key-graph.service.d.ts +9 -1
- package/lib/{api → items2}/item2.gql.d.ts +28 -1
- package/lib/items2/item2.service.d.ts +203 -0
- package/lib/items2/item2.types.d.ts +70 -0
- package/lib/scenario/scenario.constants.d.ts +1 -0
- package/lib/scenario/scenario.controller.d.ts +10 -0
- package/lib/scenario/scenario.gql.d.ts +52 -24
- package/lib/scenario/scenario.gql.private.d.ts +16 -0
- package/lib/scenario/scenario.service.d.ts +229 -54
- package/lib/scenario/scenario.types.d.ts +47 -214
- package/lib/trusted-parties/tp-assembly.d.ts +177 -0
- package/lib/trusted-parties/tp-assembly.gql.private.d.ts +5 -0
- package/lib/trusted-parties/tp-assembly.types.d.ts +38 -0
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +3 -3
- package/lib/trusted-parties/tp-password-reset.controller.d.ts +10 -0
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +5 -0
- package/lib/trusted-parties/tp-password-reset.service.d.ts +99 -41
- package/lib/trusted-parties/trusted-party2.service.d.ts +1 -1
- package/lifeready-core.d.ts +5 -2
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -14
- package/esm2015/lib/api/item2.gql.js +0 -110
- package/esm2015/lib/api/item2.service.js +0 -311
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +0 -105
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +0 -1
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +0 -300
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +0 -52
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +0 -97
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +0 -1
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +0 -150
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +0 -229
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +0 -1
- package/esm2015/lib/scenario/scenario-setup.service.js +0 -269
- package/lib/api/item2.service.d.ts +0 -177
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +0 -7
- package/lib/scenario/approvals/scenario-approval.types.d.ts +0 -63
- package/lib/scenario/approvals/scenario-approver.service.d.ts +0 -32
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +0 -5
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +0 -17
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +0 -18
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +0 -8
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +0 -30
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +0 -54
- package/lib/scenario/scenario-setup.service.d.ts +0 -22
|
@@ -54,9 +54,10 @@ let TpPasswordResetRequestService = class TpPasswordResetRequestService extends
|
|
|
54
54
|
})));
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
// ?? TODO The return from this should not be any.
|
|
58
57
|
approveRequest(sharedResetId, pbkFingerPrint) {
|
|
59
|
-
return
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
return this.lrGraphQL.lrMutate(yield this.approveRequestMutation(sharedResetId, pbkFingerPrint));
|
|
60
|
+
});
|
|
60
61
|
}
|
|
61
62
|
approveRequestMutation(sharedResetId, pbkFingerPrint) {
|
|
62
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -109,4 +110,4 @@ TpPasswordResetRequestService = __decorate([
|
|
|
109
110
|
})
|
|
110
111
|
], TpPasswordResetRequestService);
|
|
111
112
|
export { TpPasswordResetRequestService };
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90cnVzdGVkLXBhcnRpZXMvdHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFFVixTQUFTLEdBQ1YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsb0NBQW9DLEVBQ3BDLDBCQUEwQixFQUMxQiwyQkFBMkIsR0FDNUIsTUFBTSx5QkFBeUIsQ0FBQzs7O0lBUXBCLDZCQUE2QixTQUE3Qiw2QkFBOEIsU0FBUSxTQUFTO0lBQzFELFlBQ1UsTUFBYyxFQUNkLFFBQWtCLEVBQ2xCLGlCQUFvQztRQUU1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKUixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRzlDLENBQUM7SUFFSyxlQUFlOztZQUNuQixPQUFPLENBQ0wsTUFBTSxJ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b25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHtcbiAgTHJHcmFwaFFMU2VydmljZSxcbiAgTHJNZXJnZWRNdXRhdGlvbixcbiAgTHJNdXRhdGlvbixcbiAgTHJNdXRhdGlvbkJhc2UsXG4gIExyU2VydmljZSxcbn0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgVHBBc3NlbWJseVN0YXRlLCBUcENsYWltQXBwcm92ZXJTdGF0ZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTHJCYWRTdGF0ZUV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxuICBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gIFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxuICBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnksXG59IGZyb20gJy4vdHAtcGFzc3dvcmQtcmVzZXQuZ3FsJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRwUGFzc3dvcmRSZXNldFJlcXVlc3RTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBhc3luYyBnZXRTaGFyZWRSZXNldHMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogU2hhcmVkVHBQYXNzd29yZFJlc2V0c1F1ZXJ5LFxuICAgICAgfSlcbiAgICApLnNoYXJlZFRwUGFzc3dvcmRSZXNldHM7XG4gIH1cblxuICBhc3luYyBnZXRTaGFyZWRSZXNldChpZCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5zaGFyZWRUcFBhc3N3b3JkUmVzZXQ7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2ZVJlcXVlc3RPclJhaXNlKHNoYXJlZFJlc2V0KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSBzaGFyZWRSZXNldC5zaGFyZWRSZXF1ZXN0LmNsYWltLnN0YXRlO1xuICAgIGlmIChzdGF0ZSAhPT0gVHBBc3NlbWJseVN0YXRlLkNMQUlNRUQpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZFN0YXRlRXhjZXB0aW9uKGBDbGFpbSBpcyBhbHJlYWR5IGluICR7c3RhdGV9IHN0YXRlLmApO1xuICAgIH1cbiAgfVxuXG4gIHJlamVjdFJlcXVlc3Qoc2hhcmVkUmVzZXRJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMucmVqZWN0UmVxdWVzdE11dGF0aW9uKHNoYXJlZFJlc2V0SWQpKTtcbiAgfVxuXG4gIGFzeW5jIHJlamVjdFJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzaGFyZWRSZXNldCA9IGF3YWl0IHRoaXMuZ2V0U2hhcmVkUmVzZXQoc2hhcmVkUmVzZXRJZCk7XG5cbiAgICB0aGlzLmFjdGl2ZVJlcXVlc3RPclJhaXNlKHNoYXJlZFJlc2V0KTtcblxuICAgIHJldHVybiBMck1lcmdlZE11dGF0aW9uLmNyZWF0ZShcbiAgICAgIHNoYXJlZFJlc2V0LnNoYXJlZFJlcXVlc3QuY2xhaW0uYXNDbGFpbUFwcHJvdmVycy5lZGdlc1xuICAgICAgICAuZmlsdGVyKChlZGdlKSA9PiBlZGdlLm5vZGUuc3RhdGUgPT09IFRwQ2xhaW1BcHByb3ZlclN0YXRlLkNMQUlNRUQpXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKGVkZ2UpID0+XG4gICAgICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgICAgIG11dGF0aW9uOiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gICAgICAgICAgICAgIHZhcmlhYmxlczogeyBpbnB1dDogeyBjbGFpbUFwcHJvdmVySWQ6IGVkZ2Uubm9kZS5pZCB9IH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8vID8/IFRPRE8gVGhlIHJldHVybiBmcm9tIHRoaXMgc2hvdWxkIG5vdCBiZSBhbnkuXG4gIGFwcHJvdmVSZXF1ZXN0KHNoYXJlZFJlc2V0SWQ6IHN0cmluZywgcGJrRmluZ2VyUHJpbnQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUoXG4gICAgICB0aGlzLmFwcHJvdmVSZXF1ZXN0TXV0YXRpb24oc2hhcmVkUmVzZXRJZCwgcGJrRmluZ2VyUHJpbnQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGFwcHJvdmVSZXF1ZXN0TXV0YXRpb24oc2hhcmVkUmVzZXRJZDogc3RyaW5nLCBwYmtGaW5nZXJQcmludD86IHN0cmluZykge1xuICAgIGNvbnN0IHNoYXJlZFJlc2V0ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRSZXNldChzaGFyZWRSZXNldElkKTtcblxuICAgIHRoaXMuYWN0aXZlUmVxdWVzdE9yUmFpc2Uoc2hhcmVkUmVzZXQpO1xuXG4gICAgY29uc3QgcGJrID0gYXdhaXQgSldLLmFzS2V5KEpTT04ucGFyc2Uoc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5weGsucGJrKSk7XG4gICAgY29uc29sZS5sb2cocGJrLnRvSlNPTigpKTtcblxuICAgIC8vIFRPRE8gPEFaPiBWZXJpZnkgcGJrIGFnYWluc3QgcGJrRmluZ2VyUHJpbnRcblxuICAgIGNvbnN0IGNsYWltQXBwcm92ZXJzID0gc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5jbGFpbS5hc0NsYWltQXBwcm92ZXJzLmVkZ2VzLmZpbHRlcihcbiAgICAgIChlZGdlKSA9PiBlZGdlLm5vZGUuc3RhdGUgPT09IFRwQ2xhaW1BcHByb3ZlclN0YXRlLkNMQUlNRURcbiAgICApO1xuXG4gICAgLy8gQSBzaW5nbGUgYXBwcm92ZXIgbWF5IGJlbG9uZyB0byBtdWx0aXBsZSBzdWItYXNzZW1ibGllcy4gV2UgYXBwcm92ZSB0aGVtIGFsbCBoZXJlIGluIGEgc2luZ2xlXG4gICAgLy8gdHJhbnNhY3Rpb24uXG4gICAgcmV0dXJuIExyTWVyZ2VkTXV0YXRpb24uY3JlYXRlKFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGNsYWltQXBwcm92ZXJzLm1hcChhc3luYyAoYXBwcm92ZXJFZGdlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2EgPSBhcHByb3ZlckVkZ2Uubm9kZTtcbiAgICAgICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgICAgIGNsYWltQXBwcm92ZXJJZDogY2EuaWQsXG4gICAgICAgICAgICByZWNlaXZlckFwcHJvdmFsczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIGNhLnJlY2VpdmVyQXBwcm92YWxzLmVkZ2VzLm1hcChhc3luYyAocmVjZWl2ZXJFZGdlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmEgPSByZWNlaXZlckVkZ2Uubm9kZTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbElkOiByYS5pZCxcbiAgICAgICAgICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyOiAnJyxcbiAgICAgICAgICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgcGJrLFxuICAgICAgICAgICAgICAgICAgICBjYS5zaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb25cbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTtcblxuICAgICAgICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgICBtdXRhdGlvbjogQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90cnVzdGVkLXBhcnRpZXMvdHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFFVixTQUFTLEdBQ1YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsb0NBQW9DLEVBQ3BDLDBCQUEwQixFQUMxQiwyQkFBMkIsR0FDNUIsTUFBTSx5QkFBeUIsQ0FBQzs7O0lBUXBCLDZCQUE2QixTQUE3Qiw2QkFBOEIsU0FBUSxTQUFTO0lBQzFELFlBQ1UsTUFBYyxFQUNkLFFBQWtCLEVBQ2xCLGlCQUFvQztRQUU1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKUixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRzlDLENBQUM7SUFFSyxlQUFlOztZQUNuQixPQUFPLENBQ0wsTUFBTSxJ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dG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQge1xuICBMckdyYXBoUUxTZXJ2aWNlLFxuICBMck1lcmdlZE11dGF0aW9uLFxuICBMck11dGF0aW9uLFxuICBMck11dGF0aW9uQmFzZSxcbiAgTHJTZXJ2aWNlLFxufSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBUcEFzc2VtYmx5U3RhdGUsIFRwQ2xhaW1BcHByb3ZlclN0YXRlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMckJhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gIFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgU2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnksXG4gIFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSxcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5ncWwnO1xuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0UmVxdWVzdFNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIGFzeW5jIGdldFNoYXJlZFJlc2V0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnksXG4gICAgICB9KVxuICAgICkuc2hhcmVkVHBQYXNzd29yZFJlc2V0cztcbiAgfVxuXG4gIGFzeW5jIGdldFNoYXJlZFJlc2V0KGlkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogU2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnNoYXJlZFRwUGFzc3dvcmRSZXNldDtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlUmVxdWVzdE9yUmFpc2Uoc2hhcmVkUmVzZXQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHNoYXJlZFJlc2V0LnNoYXJlZFJlcXVlc3QuY2xhaW0uc3RhdGU7XG4gICAgaWYgKHN0YXRlICE9PSBUcEFzc2VtYmx5U3RhdGUuQ0xBSU1FRCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oYENsYWltIGlzIGFscmVhZHkgaW4gJHtzdGF0ZX0gc3RhdGUuYCk7XG4gICAgfVxuICB9XG5cbiAgcmVqZWN0UmVxdWVzdChzaGFyZWRSZXNldElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5yZWplY3RSZXF1ZXN0TXV0YXRpb24oc2hhcmVkUmVzZXRJZCkpO1xuICB9XG5cbiAgYXN5bmMgcmVqZWN0UmVxdWVzdE11dGF0aW9uKHNoYXJlZFJlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHNoYXJlZFJlc2V0ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRSZXNldChzaGFyZWRSZXNldElkKTtcblxuICAgIHRoaXMuYWN0aXZlUmVxdWVzdE9yUmFpc2Uoc2hhcmVkUmVzZXQpO1xuXG4gICAgcmV0dXJuIExyTWVyZ2VkTXV0YXRpb24uY3JlYXRlKFxuICAgICAgc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5jbGFpbS5hc0NsYWltQXBwcm92ZXJzLmVkZ2VzXG4gICAgICAgIC5maWx0ZXIoKGVkZ2UpID0+IGVkZ2Uubm9kZS5zdGF0ZSA9PT0gVHBDbGFpbUFwcHJvdmVyU3RhdGUuQ0xBSU1FRClcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAoZWRnZSkgPT5cbiAgICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgICAgbXV0YXRpb246IFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgICAgdmFyaWFibGVzOiB7IGlucHV0OiB7IGNsYWltQXBwcm92ZXJJZDogZWRnZS5ub2RlLmlkIH0gfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYXBwcm92ZVJlcXVlc3Qoc2hhcmVkUmVzZXRJZDogc3RyaW5nLCBwYmtGaW5nZXJQcmludD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgIGF3YWl0IHRoaXMuYXBwcm92ZVJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkLCBwYmtGaW5nZXJQcmludClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYXBwcm92ZVJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkOiBzdHJpbmcsIHBia0ZpbmdlclByaW50Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2hhcmVkUmVzZXQgPSBhd2FpdCB0aGlzLmdldFNoYXJlZFJlc2V0KHNoYXJlZFJlc2V0SWQpO1xuXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0T3JSYWlzZShzaGFyZWRSZXNldCk7XG5cbiAgICBjb25zdCBwYmsgPSBhd2FpdCBKV0suYXNLZXkoSlNPTi5wYXJzZShzaGFyZWRSZXNldC5zaGFyZWRSZXF1ZXN0LnB4ay5wYmspKTtcbiAgICBjb25zb2xlLmxvZyhwYmsudG9KU09OKCkpO1xuXG4gICAgLy8gVE9ETyA8QVo+IFZlcmlmeSBwYmsgYWdhaW5zdCBwYmtGaW5nZXJQcmludFxuXG4gICAgY29uc3QgY2xhaW1BcHByb3ZlcnMgPSBzaGFyZWRSZXNldC5zaGFyZWRSZXF1ZXN0LmNsYWltLmFzQ2xhaW1BcHByb3ZlcnMuZWRnZXMuZmlsdGVyKFxuICAgICAgKGVkZ2UpID0+IGVkZ2Uubm9kZS5zdGF0ZSA9PT0gVHBDbGFpbUFwcHJvdmVyU3RhdGUuQ0xBSU1FRFxuICAgICk7XG5cbiAgICAvLyBBIHNpbmdsZSBhcHByb3ZlciBtYXkgYmVsb25nIHRvIG11bHRpcGxlIHN1Yi1hc3NlbWJsaWVzLiBXZSBhcHByb3ZlIHRoZW0gYWxsIGhlcmUgaW4gYSBzaW5nbGVcbiAgICAvLyB0cmFuc2FjdGlvbi5cbiAgICByZXR1cm4gTHJNZXJnZWRNdXRhdGlvbi5jcmVhdGUoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgY2xhaW1BcHByb3ZlcnMubWFwKGFzeW5jIChhcHByb3ZlckVkZ2UpID0+IHtcbiAgICAgICAgICBjb25zdCBjYSA9IGFwcHJvdmVyRWRnZS5ub2RlO1xuICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICAgICAgY2xhaW1BcHByb3ZlcklkOiBjYS5pZCxcbiAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgY2EucmVjZWl2ZXJBcHByb3ZhbHMuZWRnZXMubWFwKGFzeW5jIChyZWNlaXZlckVkZ2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYSA9IHJlY2VpdmVyRWRnZS5ub2RlO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICByZWNlaXZlckFwcHJvdmFsSWQ6IHJhLmlkLFxuICAgICAgICAgICAgICAgICAgcmVjZWl2ZXJDaXBoZXI6ICcnLFxuICAgICAgICAgICAgICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk6IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICBwYmssXG4gICAgICAgICAgICAgICAgICAgIGNhLnNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvblxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc29sZS5sb2coaW5wdXQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgIG11dGF0aW9uOiBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable, Injector, NgZone } from '@angular/core';
|
|
3
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
4
|
+
import { TpAssemblyController } from './tp-assembly';
|
|
5
|
+
import { TP_PASSWORD_RESET_SLIP39_PASSPHRASE } from './tp-password-reset.constants';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
let TpPasswordResetAssemblyController = class TpPasswordResetAssemblyController extends TpAssemblyController {
|
|
8
|
+
constructor(ngZone, injector) {
|
|
9
|
+
super(injector);
|
|
10
|
+
this.ngZone = ngZone;
|
|
11
|
+
this.injector = injector;
|
|
12
|
+
this.slip39Passphrase = TP_PASSWORD_RESET_SLIP39_PASSPHRASE;
|
|
13
|
+
}
|
|
14
|
+
getTpWrappingKeyId(tp) {
|
|
15
|
+
return tp.currentUserSharedKey.userSharedKey.mkSharedKey.id;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
TpPasswordResetAssemblyController.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetAssemblyController_Factory() { return new TpPasswordResetAssemblyController(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR)); }, token: TpPasswordResetAssemblyController, providedIn: "root" });
|
|
19
|
+
TpPasswordResetAssemblyController.decorators = [
|
|
20
|
+
{ type: Injectable, args: [{
|
|
21
|
+
providedIn: 'root',
|
|
22
|
+
},] }
|
|
23
|
+
];
|
|
24
|
+
TpPasswordResetAssemblyController.ctorParameters = () => [
|
|
25
|
+
{ type: NgZone },
|
|
26
|
+
{ type: Injector }
|
|
27
|
+
];
|
|
28
|
+
TpPasswordResetAssemblyController = __decorate([
|
|
29
|
+
RunOutsideAngular({
|
|
30
|
+
ngZoneName: 'ngZone',
|
|
31
|
+
})
|
|
32
|
+
], TpPasswordResetAssemblyController);
|
|
33
|
+
export { TpPasswordResetAssemblyController };
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0lBUXZFLGlDQUFpQyxTQUFqQyxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFHekUsWUFBb0IsTUFBYyxFQUFVLFFBQWtCO1FBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjlELHFCQUFnQixHQUFHLG1DQUFtQyxDQUFDO0lBSXZELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVO1FBQzNCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBQzlELENBQUM7Q0FDRixDQUFBOzs7WUFiQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVg4QixNQUFNO1lBQWhCLFFBQVE7O0FBWWhCLGlDQUFpQztJQU43QyxpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsaUNBQWlDLENBVTdDO1NBVlksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHBOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IFRwQXNzZW1ibHlDb250cm9sbGVyIH0gZnJvbSAnLi90cC1hc3NlbWJseSc7XG5pbXBvcnQgeyBUUF9QQVNTV09SRF9SRVNFVF9TTElQMzlfUEFTU1BIUkFTRSB9IGZyb20gJy4vdHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlciBleHRlbmRzIFRwQXNzZW1ibHlDb250cm9sbGVyIHtcbiAgc2xpcDM5UGFzc3BocmFzZSA9IFRQX1BBU1NXT1JEX1JFU0VUX1NMSVAzOV9QQVNTUEhSQVNFO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZ2V0VHBXcmFwcGluZ0tleUlkKHRwOiBUcE5vZGUpIHtcbiAgICByZXR1cm4gdHAuY3VycmVudFVzZXJTaGFyZWRLZXkudXNlclNoYXJlZEtleS5ta1NoYXJlZEtleS5pZDtcbiAgfVxufVxuIl19
|
|
@@ -173,6 +173,7 @@ query TpPasswordResetQuery {
|
|
|
173
173
|
assembly {
|
|
174
174
|
singleReject
|
|
175
175
|
quorum
|
|
176
|
+
subjectCipherData
|
|
176
177
|
subjectKey {
|
|
177
178
|
id
|
|
178
179
|
}
|
|
@@ -187,6 +188,9 @@ query TpPasswordResetQuery {
|
|
|
187
188
|
singleReject
|
|
188
189
|
quorum
|
|
189
190
|
subjectCipherData
|
|
191
|
+
subjectKey {
|
|
192
|
+
id
|
|
193
|
+
}
|
|
190
194
|
approvers {
|
|
191
195
|
edges {
|
|
192
196
|
node {
|
|
@@ -229,4 +233,4 @@ mutation UpdateTpPasswordResetMutation($input: UpdateTpPasswordResetInput!) {
|
|
|
229
233
|
}
|
|
230
234
|
}
|
|
231
235
|
}`;
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuZ3FsLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90cnVzdGVkLXBhcnRpZXMvdHAtcGFzc3dvcmQtcmVzZXQuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQStEMUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFEakYsQ0FBQztBQVNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBbUM7Ozs7Ozs7Ozs7RUFVcEYsNkJBQTZCO0NBQzlCLENBQUM7QUFLRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQWtDOzs7Ozs7RUFNbEYsNkJBQTZCO0NBQzlCLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxRQUFRLENBQTRDOzs7OztFQUt0RyxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsUUFBUSxDQUE0Qzs7Ozs7OztFQU90RyxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsUUFBUSxDQUFpRDs7Ozs7OztFQU9oSCxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsUUFBUSxDQUE4Qzs7Ozs7OztFQU8xRyxDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsUUFBUSxDQUE2Qzs7Ozs7Ozs7O0VBU3hHLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxRQUFRLENBQTRDOzs7Ozs7Ozs7RUFTdEcsQ0FBQztBQTJDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQWdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlDOUUsQ0FBQztBQTRDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQTRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlDdEUsQ0FBQztBQVNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFFBQVEsQ0FBcUM7Ozs7Ozs7RUFPeEYsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFFBQVEsQ0FBcUM7Ozs7O0VBS3hGLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7Ozs7O0VBT3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljU2NhbGFyLCBJRCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7XG4gIFRwQ2xhaW1TdGF0ZSxcbiAgVHBDbGFpbUFwcHJvdmVyU3RhdGUsXG59IGZyb20gJy4uL2FwaS90eXBlcy9sci1ncmFwaHFsLnR5cGVzJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnLi4vYXBpL3R5cGVzL2dyYXBocWwudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50UmVzdWx0IHtcbiAgaWQ6IElEO1xuICB0cDoge1xuICAgIGlkOiBJRDtcbiAgICBvdGhlcjoge1xuICAgICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBhc3NlbWJseToge1xuICAgIGFzQXBwcm92ZXJzOiB7XG4gICAgICBlZGdlczoge1xuICAgICAgICBub2RlOiB7XG4gICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgIHNoYXJlZEtleToge1xuICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgIH07XG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YTogc3RyaW5nO1xuICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb246IGFueTtcbiAgICAgICAgfTtcbiAgICAgIH1bXTtcbiAgICB9O1xuICB9O1xuICBzaGFyZWRSZXF1ZXN0OiB7XG4gICAgaWQ6IElEO1xuICAgIHB4azoge1xuICAgICAgaWQ6IElEO1xuICAgICAgcGJrOiBzdHJpbmc7XG4gICAgfTtcbiAgICBjbGFpbToge1xuICAgICAgaWQ6IElEO1xuICAgICAgc3RhdGU6IFRwQ2xhaW1TdGF0ZTtcbiAgICAgIGFzQ2xhaW1BcHByb3ZlcnM6IHtcbiAgICAgICAgZWRnZXM6IHtcbiAgICAgICAgICBub2RlOiB7XG4gICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICBzdGF0ZTogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG4gICAgICAgICAgICBzaGFyZWRLZXk6IHtcbiAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YTogc3RyaW5nO1xuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhQ2xlYXJKc29uOiBhbnk7XG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk6IHN0cmluZztcbiAgICAgICAgICAgIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbjogYW55O1xuICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbHM6IHtcbiAgICAgICAgICAgICAgZWRnZXM6IHtcbiAgICAgICAgICAgICAgICBub2RlOiB7XG4gICAgICAgICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVtdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuICAgICAgICB9W107XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5jb25zdCBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudCA9IGdxbFR5cGVkPFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50UmVzdWx0PmBcbmZyYWdtZW50IFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50IG9uIFNoYXJlZFRwUGFzc3dvcmRSZXNldE5vZGUge1xuICBpZFxuICB0cCB7XG4gICAgaWRcbiAgICBvdGhlciB7XG4gICAgICB1c2VybmFtZVxuICAgIH1cbiAgfVxuICBhc3NlbWJseSB7XG4gICAgYXNBcHByb3ZlcnMge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH1cbiAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc2hhcmVkUmVxdWVzdCB7XG4gICAgaWRcbiAgICBweGsge1xuICAgICAgaWRcbiAgICAgIHBia1xuICAgIH1cbiAgICBjbGFpbSB7XG4gICAgICBpZFxuICAgICAgc3RhdGVcbiAgICAgIGFzQ2xhaW1BcHByb3ZlcnMge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFcbiAgICAgICAgICAgIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleVxuICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbHMge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0c1F1ZXJ5UmVzdWx0IHtcbiAgc2hhcmVkVHBQYXNzd29yZFJlc2V0czoge1xuICAgIGVkZ2VzOiB7XG4gICAgICBub2RlOiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFJlc3VsdDtcbiAgICB9W107XG4gIH07XG59XG5leHBvcnQgY29uc3QgU2hhcmVkVHBQYXNzd29yZFJlc2V0c1F1ZXJ5ID0gZ3FsVHlwZWQ8U2hhcmVkVHBQYXNzd29yZFJlc2V0c1F1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSB7XG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldHMge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAuLi5TaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuJHtTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQge1xuICBzaGFyZWRUcFBhc3N3b3JkUmVzZXQ6IFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50UmVzdWx0O1xufVxuZXhwb3J0IGNvbnN0IFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5ID0gZ3FsVHlwZWQ8U2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQ+YFxucXVlcnkgU2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgc2hhcmVkVHBQYXNzd29yZFJlc2V0KGlkOiAkaWQpIHtcbiAgICAuLi5TaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFxuICB9XG59XG4ke1NoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICBjYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0OiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24ge1xuICBjYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0KGlucHV0OiB7fSkge1xuICAgIGlkXG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvblJlc3VsdCB7XG4gIGNyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2U6IHtcbiAgICBjaGFsbGVuZ2U6IGFueTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlTXV0YXRpb24gPSBncWxUeXBlZDxDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uKFxuICAkaW5wdXQ6IENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VJbnB1dCFcbikge1xuICBjcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlKGlucHV0OiAkaW5wdXQpIHtcbiAgICBjaGFsbGVuZ2VcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICBwcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcbiAgICBpZHBQYXNzd29yZDogc3RyaW5nO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uID0gZ3FsVHlwZWQ8UHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXG4gICRpbnB1dDogUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0SW5wdXQhXG4pIHtcbiAgcHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0KGlucHV0OiAkaW5wdXQpIHtcbiAgICBpZHBQYXNzd29yZFxuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdCB7XG4gIGNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgIGlkOiBJRDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uKFxuICAkaW5wdXQ6IENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdElucHV0IVxuKSB7XG4gIGNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XG4gICAgaWRcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdCB7XG4gIGFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0OiB7XG4gICAgY2xhaW1BcHByb3Zlcjoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbihcbiAgJGlucHV0OiBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdElucHV0IVxuKSB7XG4gIGFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0KGlucHV0OiAkaW5wdXQpIHtcbiAgICBjbGFpbUFwcHJvdmVyIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICByZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0OiB7XG4gICAgY2xhaW1BcHByb3Zlcjoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgUmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uID0gZ3FsVHlwZWQ8UmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbihcbiAgJGlucHV0OiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0SW5wdXQhXG4pIHtcbiAgcmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XG4gICAgY2xhaW1BcHByb3ZlciB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5UmVzdWx0IHtcbiAgdHBQYXNzd29yZFJlc2V0VXNlcjoge1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcmVzZXRVc2VybmFtZTogc3RyaW5nO1xuICAgIHN0YXRlOiBUcENsYWltU3RhdGU7XG4gICAgcGFzc0tleToge1xuICAgICAgaWQ6IElEO1xuICAgICAgcGFzc0tleVBhcmFtczogR2VuZXJpY1NjYWxhcjtcbiAgICAgIHBhc3NJZHBQYXJhbXM6IEdlbmVyaWNTY2FsYXI7XG4gICAgfTtcbiAgICBtYXN0ZXJLZXk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICAgIHB4azoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gICAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IHN0cmluZztcbiAgICBhc3NlbWJseToge1xuICAgICAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICAgICAgcXVvcnVtOiBudW1iZXI7XG4gICAgICBzdWJBc3NlbWJsaWVzOiB7XG4gICAgICAgIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcbiAgICAgICAgcXVvcnVtOiBudW1iZXI7XG4gICAgICAgIGFwcHJvdmVyczoge1xuICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgIHN0YXRlOiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgICAgICAgfVtdO1xuICAgICAgfVtdO1xuICAgIH07XG4gICAgYXBwcm92YWxzOiB7XG4gICAgICBpZDogSUQ7XG4gICAgICBtb2RpZmllZDogRGF0ZVRpbWU7XG4gICAgICBhcHByb3ZlckVtYWlsOiBzdHJpbmc7XG4gICAgICByZWNlaXZlckNpcGhlcjogc3RyaW5nO1xuICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk6IHN0cmluZztcbiAgICB9W107XG4gICAgYXNzZW1ibHlDaXBoZXJEYXRhOiBzdHJpbmc7XG4gICAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcms6IHN0cmluZztcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnkgPSBncWxUeXBlZDxUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnlSZXN1bHQ+YFxucXVlcnkgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5IHtcbiAgdHBQYXNzd29yZFJlc2V0VXNlciB7XG4gICAgdXNlcm5hbWVcbiAgICByZXNldFVzZXJuYW1lXG4gICAgc3RhdGVcbiAgICBwYXNzS2V5IHtcbiAgICAgIGlkXG4gICAgICBwYXNzS2V5UGFyYW1zXG4gICAgICBwYXNzSWRwUGFyYW1zXG4gICAgfVxuICAgIG1hc3RlcktleSB7XG4gICAgICBpZFxuICAgIH1cbiAgICBweGsge1xuICAgICAgaWRcbiAgICB9XG4gICAgc2Vzc2lvbkVuY3J5cHRpb25LZXlcbiAgICBhc3NlbWJseSB7XG4gICAgICBzaW5nbGVSZWplY3RcbiAgICAgIHF1b3J1bVxuICAgICAgc3ViQXNzZW1ibGllcyB7XG4gICAgICAgIHNpbmdsZVJlamVjdFxuICAgICAgICBxdW9ydW1cbiAgICAgICAgYXBwcm92ZXJzIHtcbiAgICAgICAgICBuYW1lXG4gICAgICAgICAgZW1haWxcbiAgICAgICAgICBzdGF0ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGFwcHJvdmFscyB7XG4gICAgICBpZFxuICAgICAgbW9kaWZpZWRcbiAgICAgIGFwcHJvdmVyRW1haWxcbiAgICAgIHJlY2VpdmVyQ2lwaGVyXG4gICAgICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleVxuICAgIH1cbiAgICBhc3NlbWJseUNpcGhlckRhdGFcbiAgICB3cmFwcGVkQXNzZW1ibHlLZXlWZXJpZmllclBya1xuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRRdWVyeVJlc3VsdCB7XG4gIHRwUGFzc3dvcmRSZXNldDoge1xuICAgIGlkOiBJRDtcbiAgICBhcHBsaWVkOiBib29sZWFuO1xuICAgIGFzc2VtYmx5OiB7XG4gICAgICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XG4gICAgICBxdW9ydW06IG51bWJlcjtcbiAgICAgIHN1YmplY3RLZXk6IHtcbiAgICAgICAgaWQ6IElEO1xuICAgICAgfTtcbiAgICAgIGFzc2VtYmx5S2V5OiB7XG4gICAgICAgIGlkOiBJRDtcbiAgICAgIH07XG4gICAgICBhc3NlbWJseUNpcGhlckRhdGE6IHN0cmluZztcbiAgICAgIHN1YkFzc2VtYmxpZXM6IHtcbiAgICAgICAgZWRnZXM6IHtcbiAgICAgICAgICBub2RlOiB7XG4gICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XG4gICAgICAgICAgICBxdW9ydW06IG51bWJlcjtcbiAgICAgICAgICAgIHN1YmplY3RDaXBoZXJEYXRhOiBzdHJpbmc7XG4gICAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbjogYW55O1xuICAgICAgICAgICAgYXBwcm92ZXJzOiB7XG4gICAgICAgICAgICAgIGVkZ2VzOiB7XG4gICAgICAgICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgICAgICAgdHA6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleToge1xuICAgICAgICAgICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1bXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfVtdO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFRwUGFzc3dvcmRSZXNldFF1ZXJ5ID0gZ3FsVHlwZWQ8VHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQ+YFxucXVlcnkgVHBQYXNzd29yZFJlc2V0UXVlcnkge1xuICB0cFBhc3N3b3JkUmVzZXQge1xuICAgIGlkXG4gICAgYXBwbGllZFxuICAgIGFzc2VtYmx5IHtcbiAgICAgIHNpbmdsZVJlamVjdFxuICAgICAgcXVvcnVtXG4gICAgICBzdWJqZWN0S2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIGFzc2VtYmx5S2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIGFzc2VtYmx5Q2lwaGVyRGF0YVxuICAgICAgc3ViQXNzZW1ibGllcyB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzaW5nbGVSZWplY3RcbiAgICAgICAgICAgIHF1b3J1bVxuICAgICAgICAgICAgc3ViamVjdENpcGhlckRhdGFcbiAgICAgICAgICAgIGFwcHJvdmVycyB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB0cCB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQge1xuICBjcmVhdGVUcFBhc3N3b3JkUmVzZXQ6IHtcbiAgICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24oJGlucHV0OiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCEpIHtcbiAgY3JlYXRlVHBQYXNzd29yZFJlc2V0KGlucHV0OiAkaW5wdXQpIHtcbiAgICB0cFBhc3N3b3JkUmVzZXQge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uUmVzdWx0IHtcbiAgZGVsZXRlVHBQYXNzd29yZFJlc2V0OiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8RGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24ge1xuICBkZWxldGVUcFBhc3N3b3JkUmVzZXQoaW5wdXQ6IHt9KSB7XG4gICAgaWRcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQge1xuICB1cGRhdGVUcFBhc3N3b3JkUmVzZXQ6IHtcbiAgICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVwZGF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gVXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24oJGlucHV0OiBVcGRhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCEpIHtcbiAgdXBkYXRlVHBQYXNzd29yZFJlc2V0KGlucHV0OiAkaW5wdXQpIHtcbiAgICB0cFBhc3N3b3JkUmVzZXQge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuIl19
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuZ3FsLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90cnVzdGVkLXBhcnRpZXMvdHAtcGFzc3dvcmQtcmVzZXQuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQStEMUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFEakYsQ0FBQztBQVNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBbUM7Ozs7Ozs7Ozs7RUFVcEYsNkJBQTZCO0NBQzlCLENBQUM7QUFLRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQWtDOzs7Ozs7RUFNbEYsNkJBQTZCO0NBQzlCLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxRQUFRLENBQTRDOzs7OztFQUt0RyxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsUUFBUSxDQUE0Qzs7Ozs7OztFQU90RyxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsUUFBUSxDQUFpRDs7Ozs7OztFQU9oSCxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsUUFBUSxDQUE4Qzs7Ozs7OztFQU8xRyxDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsUUFBUSxDQUE2Qzs7Ozs7Ozs7O0VBU3hHLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxRQUFRLENBQTRDOzs7Ozs7Ozs7RUFTdEcsQ0FBQztBQTJDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQWdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlDOUUsQ0FBQztBQWlESCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQTRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2Q3RFLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7Ozs7O0VBT3hGLENBQUM7QUFPSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7OztFQUt4RixDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsUUFBUSxDQUFxQzs7Ozs7OztFQU94RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJpY1NjYWxhciwgSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBUcENsYWltU3RhdGUsXG4gIFRwQ2xhaW1BcHByb3ZlclN0YXRlLFxufSBmcm9tICcuLi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcyc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJy4uL2FwaS90eXBlcy9ncmFwaHFsLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFJlc3VsdCB7XG4gIGlkOiBJRDtcbiAgdHA6IHtcbiAgICBpZDogSUQ7XG4gICAgb3RoZXI6IHtcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgYXNzZW1ibHk6IHtcbiAgICBhc0FwcHJvdmVyczoge1xuICAgICAgZWRnZXM6IHtcbiAgICAgICAgbm9kZToge1xuICAgICAgICAgIGlkOiBJRDtcbiAgICAgICAgICBzaGFyZWRLZXk6IHtcbiAgICAgICAgICAgIGlkOiBJRDtcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNoYXJlZENpcGhlckRhdGE6IHN0cmluZztcbiAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uOiBhbnk7XG4gICAgICAgIH07XG4gICAgICB9W107XG4gICAgfTtcbiAgfTtcbiAgc2hhcmVkUmVxdWVzdDoge1xuICAgIGlkOiBJRDtcbiAgICBweGs6IHtcbiAgICAgIGlkOiBJRDtcbiAgICAgIHBiazogc3RyaW5nO1xuICAgIH07XG4gICAgY2xhaW06IHtcbiAgICAgIGlkOiBJRDtcbiAgICAgIHN0YXRlOiBUcENsYWltU3RhdGU7XG4gICAgICBhc0NsYWltQXBwcm92ZXJzOiB7XG4gICAgICAgIGVkZ2VzOiB7XG4gICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgc3RhdGU6IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xuICAgICAgICAgICAgc2hhcmVkS2V5OiB7XG4gICAgICAgICAgICAgIGlkOiBJRDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE6IHN0cmluZztcbiAgICAgICAgICAgIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbjogYW55O1xuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBzdHJpbmc7XG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb246IGFueTtcbiAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzOiB7XG4gICAgICAgICAgICAgIGVkZ2VzOiB7XG4gICAgICAgICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1bXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfVtdO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuY29uc3QgU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnQgPSBncWxUeXBlZDxTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFJlc3VsdD5gXG5mcmFnbWVudCBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudCBvbiBTaGFyZWRUcFBhc3N3b3JkUmVzZXROb2RlIHtcbiAgaWRcbiAgdHAge1xuICAgIGlkXG4gICAgb3RoZXIge1xuICAgICAgdXNlcm5hbWVcbiAgICB9XG4gIH1cbiAgYXNzZW1ibHkge1xuICAgIGFzQXBwcm92ZXJzIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgaWRcbiAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICB9XG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHNoYXJlZFJlcXVlc3Qge1xuICAgIGlkXG4gICAgcHhrIHtcbiAgICAgIGlkXG4gICAgICBwYmtcbiAgICB9XG4gICAgY2xhaW0ge1xuICAgICAgaWRcbiAgICAgIHN0YXRlXG4gICAgICBhc0NsYWltQXBwcm92ZXJzIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhXG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeVJlc3VsdCB7XG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldHM6IHtcbiAgICBlZGdlczoge1xuICAgICAgbm9kZTogU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnRSZXN1bHQ7XG4gICAgfVtdO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSA9IGdxbFR5cGVkPFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeVJlc3VsdD5gXG5xdWVyeSBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnkge1xuICBzaGFyZWRUcFBhc3N3b3JkUmVzZXRzIHtcbiAgICBlZGdlcyB7XG4gICAgICBub2RlIHtcbiAgICAgICAgLi4uU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiR7U2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5UmVzdWx0IHtcbiAgc2hhcmVkVHBQYXNzd29yZFJlc2V0OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFJlc3VsdDtcbn1cbmV4cG9ydCBjb25zdCBTaGFyZWRUcFBhc3N3b3JkUmVzZXRRdWVyeSA9IGdxbFR5cGVkPFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5KCRpZDogTHJSZWxheUlkSW5wdXQhKSB7XG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldChpZDogJGlkKSB7XG4gICAgLi4uU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnRcbiAgfVxufVxuJHtTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0IHtcbiAgY2FuY2VsVHBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgIGlkOiBJRDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQ2FuY2VsVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uIHtcbiAgY2FuY2VsVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDoge30pIHtcbiAgICBpZFxuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlTXV0YXRpb25SZXN1bHQge1xuICBjcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlOiB7XG4gICAgY2hhbGxlbmdlOiBhbnk7XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbihcbiAgJGlucHV0OiBDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlSW5wdXQhXG4pIHtcbiAgY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZShpbnB1dDogJGlucHV0KSB7XG4gICAgY2hhbGxlbmdlXG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0IHtcbiAgcHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0OiB7XG4gICAgaWRwUGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uKFxuICAkaW5wdXQ6IFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdElucHV0IVxuKSB7XG4gIHByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XG4gICAgaWRwUGFzc3dvcmRcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICBjb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcbiAgICBpZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbihcbiAgJGlucHV0OiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RJbnB1dCFcbikge1xuICBjb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGlkXG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICBhcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgIGNsYWltQXBwcm92ZXI6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXG4gICRpbnB1dDogQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RJbnB1dCFcbikge1xuICBhcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XG4gICAgY2xhaW1BcHByb3ZlciB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0IHtcbiAgcmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgIGNsYWltQXBwcm92ZXI6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXG4gICRpbnB1dDogUmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdElucHV0IVxuKSB7XG4gIHJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3QoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGNsYWltQXBwcm92ZXIge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJRdWVyeVJlc3VsdCB7XG4gIHRwUGFzc3dvcmRSZXNldFVzZXI6IHtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHJlc2V0VXNlcm5hbWU6IHN0cmluZztcbiAgICBzdGF0ZTogVHBDbGFpbVN0YXRlO1xuICAgIHBhc3NLZXk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICAgIHBhc3NLZXlQYXJhbXM6IEdlbmVyaWNTY2FsYXI7XG4gICAgICBwYXNzSWRwUGFyYW1zOiBHZW5lcmljU2NhbGFyO1xuICAgIH07XG4gICAgbWFzdGVyS2V5OiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgICBweGs6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBzdHJpbmc7XG4gICAgYXNzZW1ibHk6IHtcbiAgICAgIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcbiAgICAgIHF1b3J1bTogbnVtYmVyO1xuICAgICAgc3ViQXNzZW1ibGllczoge1xuICAgICAgICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XG4gICAgICAgIHF1b3J1bTogbnVtYmVyO1xuICAgICAgICBhcHByb3ZlcnM6IHtcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICBzdGF0ZTogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG4gICAgICAgIH1bXTtcbiAgICAgIH1bXTtcbiAgICB9O1xuICAgIGFwcHJvdmFsczoge1xuICAgICAgaWQ6IElEO1xuICAgICAgbW9kaWZpZWQ6IERhdGVUaW1lO1xuICAgICAgYXBwcm92ZXJFbWFpbDogc3RyaW5nO1xuICAgICAgcmVjZWl2ZXJDaXBoZXI6IHN0cmluZztcbiAgICAgIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIGFzc2VtYmx5Q2lwaGVyRGF0YTogc3RyaW5nO1xuICAgIHdyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY29uc3QgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5ID0gZ3FsVHlwZWQ8VHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IFRwUGFzc3dvcmRSZXNldFVzZXJRdWVyeSB7XG4gIHRwUGFzc3dvcmRSZXNldFVzZXIge1xuICAgIHVzZXJuYW1lXG4gICAgcmVzZXRVc2VybmFtZVxuICAgIHN0YXRlXG4gICAgcGFzc0tleSB7XG4gICAgICBpZFxuICAgICAgcGFzc0tleVBhcmFtc1xuICAgICAgcGFzc0lkcFBhcmFtc1xuICAgIH1cbiAgICBtYXN0ZXJLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgcHhrIHtcbiAgICAgIGlkXG4gICAgfVxuICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5XG4gICAgYXNzZW1ibHkge1xuICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICBxdW9ydW1cbiAgICAgIHN1YkFzc2VtYmxpZXMge1xuICAgICAgICBzaW5nbGVSZWplY3RcbiAgICAgICAgcXVvcnVtXG4gICAgICAgIGFwcHJvdmVycyB7XG4gICAgICAgICAgbmFtZVxuICAgICAgICAgIGVtYWlsXG4gICAgICAgICAgc3RhdGVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBhcHByb3ZhbHMge1xuICAgICAgaWRcbiAgICAgIG1vZGlmaWVkXG4gICAgICBhcHByb3ZlckVtYWlsXG4gICAgICByZWNlaXZlckNpcGhlclxuICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICB9XG4gICAgYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQge1xuICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICBpZDogSUQ7XG4gICAgYXBwbGllZDogYm9vbGVhbjtcbiAgICBhc3NlbWJseToge1xuICAgICAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICAgICAgcXVvcnVtOiBudW1iZXI7XG4gICAgICBzdWJqZWN0Q2lwaGVyRGF0YTogc3RyaW5nO1xuICAgICAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb246IGFueTtcbiAgICAgIHN1YmplY3RLZXk6IHtcbiAgICAgICAgaWQ6IElEO1xuICAgICAgfTtcbiAgICAgIGFzc2VtYmx5S2V5OiB7XG4gICAgICAgIGlkOiBJRDtcbiAgICAgIH07XG4gICAgICBhc3NlbWJseUNpcGhlckRhdGE6IHN0cmluZztcbiAgICAgIHN1YkFzc2VtYmxpZXM6IHtcbiAgICAgICAgZWRnZXM6IHtcbiAgICAgICAgICBub2RlOiB7XG4gICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XG4gICAgICAgICAgICBxdW9ydW06IG51bWJlcjtcbiAgICAgICAgICAgIHN1YmplY3RDaXBoZXJEYXRhOiBzdHJpbmc7XG4gICAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbjogYW55O1xuICAgICAgICAgICAgc3ViamVjdEtleToge1xuICAgICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXBwcm92ZXJzOiB7XG4gICAgICAgICAgICAgIGVkZ2VzOiB7XG4gICAgICAgICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgICAgICAgdHA6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IElEO1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleToge1xuICAgICAgICAgICAgICAgICAgICBpZDogSUQ7XG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1bXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfVtdO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFRwUGFzc3dvcmRSZXNldFF1ZXJ5ID0gZ3FsVHlwZWQ8VHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQ+YFxucXVlcnkgVHBQYXNzd29yZFJlc2V0UXVlcnkge1xuICB0cFBhc3N3b3JkUmVzZXQge1xuICAgIGlkXG4gICAgYXBwbGllZFxuICAgIGFzc2VtYmx5IHtcbiAgICAgIHNpbmdsZVJlamVjdFxuICAgICAgcXVvcnVtXG4gICAgICBzdWJqZWN0Q2lwaGVyRGF0YVxuICAgICAgc3ViamVjdEtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBhc3NlbWJseUtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBhc3NlbWJseUNpcGhlckRhdGFcbiAgICAgIHN1YkFzc2VtYmxpZXMge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICAgICAgICBxdW9ydW1cbiAgICAgICAgICAgIHN1YmplY3RDaXBoZXJEYXRhXG4gICAgICAgICAgICBzdWJqZWN0S2V5IHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFwcHJvdmVycyB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB0cCB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQge1xuICBjcmVhdGVUcFBhc3N3b3JkUmVzZXQ6IHtcbiAgICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24oJGlucHV0OiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCEpIHtcbiAgY3JlYXRlVHBQYXNzd29yZFJlc2V0KGlucHV0OiAkaW5wdXQpIHtcbiAgICB0cFBhc3N3b3JkUmVzZXQge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uUmVzdWx0IHtcbiAgZGVsZXRlVHBQYXNzd29yZFJlc2V0OiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8RGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24ge1xuICBkZWxldGVUcFBhc3N3b3JkUmVzZXQoaW5wdXQ6IHt9KSB7XG4gICAgaWRcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQge1xuICB1cGRhdGVUcFBhc3N3b3JkUmVzZXQ6IHtcbiAgICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVwZGF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gVXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24oJGlucHV0OiBVcGRhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCEpIHtcbiAgdXBkYXRlVHBQYXNzd29yZFJlc2V0KGlucHV0OiAkaW5wdXQpIHtcbiAgICB0cFBhc3N3b3JkUmVzZXQge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuIl19
|
|
@@ -1,39 +1,19 @@
|
|
|
1
|
-
import { __awaiter, __decorate
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
2
|
import { Injectable, Injector, NgZone } from '@angular/core';
|
|
3
|
-
import { KeyService } from '../cryptography/key.service';
|
|
4
|
-
import { EncryptionService } from '../cryptography/encryption.service';
|
|
5
3
|
import { CreateTpPasswordResetMutation, DeleteTpPasswordResetMutation, TpPasswordResetQuery, UpdateTpPasswordResetMutation, CancelTpPasswordResetRequestMutation, } from './tp-password-reset.gql';
|
|
6
|
-
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
7
|
-
import * as slip from '../cryptography/slip39.service';
|
|
8
|
-
import { LrBadArgumentException, LrBadLogicException, } from '../_common/exceptions';
|
|
9
|
-
import { KeyFactoryService } from '../cryptography/key-factory.service';
|
|
10
|
-
import { LrMutation, LrService } from '../api/lr-graphql';
|
|
11
4
|
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
12
5
|
import { TP_PASSWORD_RESET_SLIP39_PASSPHRASE } from './tp-password-reset.constants';
|
|
6
|
+
import { TpPasswordResetAssemblyController } from './tp-password-reset.controller';
|
|
7
|
+
import { LrMutation, LrService } from '../api/lr-graphql';
|
|
13
8
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "
|
|
15
|
-
import * as i2 from "../cryptography/key-factory.service";
|
|
16
|
-
import * as i3 from "../cryptography/encryption.service";
|
|
17
|
-
import * as i4 from "../cryptography/key-graph.service";
|
|
18
|
-
import * as i5 from "../cryptography/slip39.service";
|
|
19
|
-
export class CreateSubAssembliesInput {
|
|
20
|
-
}
|
|
21
|
-
export class UpdateSubAssembliesInput extends CreateSubAssembliesInput {
|
|
22
|
-
}
|
|
23
|
-
export class CreateTpPasswordResetInput {
|
|
24
|
-
}
|
|
25
|
-
export class UpdateTpPasswordResetInput extends CreateTpPasswordResetInput {
|
|
26
|
-
}
|
|
9
|
+
import * as i1 from "./tp-password-reset.controller";
|
|
27
10
|
let TpPasswordResetService = class TpPasswordResetService extends LrService {
|
|
28
|
-
constructor(ngZone, injector,
|
|
11
|
+
constructor(ngZone, injector, assemblyController) {
|
|
29
12
|
super(injector);
|
|
30
13
|
this.ngZone = ngZone;
|
|
31
14
|
this.injector = injector;
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.encryptionService = encryptionService;
|
|
35
|
-
this.keyGraph = keyGraph;
|
|
36
|
-
this.slip39Service = slip39Service;
|
|
15
|
+
this.assemblyController = assemblyController;
|
|
16
|
+
this.slip39Passphrase = TP_PASSWORD_RESET_SLIP39_PASSPHRASE;
|
|
37
17
|
}
|
|
38
18
|
getReset() {
|
|
39
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -42,20 +22,12 @@ let TpPasswordResetService = class TpPasswordResetService extends LrService {
|
|
|
42
22
|
})).tpPasswordReset;
|
|
43
23
|
});
|
|
44
24
|
}
|
|
45
|
-
|
|
46
|
-
return this.mutate(this.
|
|
25
|
+
cancelResetRequest() {
|
|
26
|
+
return this.mutate(this.cancelResetRequestMutation());
|
|
47
27
|
}
|
|
48
|
-
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
return this.prepareSlip39(input.createSubAssemblies, input.quorum, rawAssemblyKey);
|
|
52
|
-
}));
|
|
53
|
-
return new LrMutation({
|
|
54
|
-
mutation: CreateTpPasswordResetMutation,
|
|
55
|
-
variables: {
|
|
56
|
-
input: mutationInput,
|
|
57
|
-
},
|
|
58
|
-
});
|
|
28
|
+
cancelResetRequestMutation() {
|
|
29
|
+
return new LrMutation({
|
|
30
|
+
mutation: CancelTpPasswordResetRequestMutation,
|
|
59
31
|
});
|
|
60
32
|
}
|
|
61
33
|
deleteReset() {
|
|
@@ -66,216 +38,44 @@ let TpPasswordResetService = class TpPasswordResetService extends LrService {
|
|
|
66
38
|
mutation: DeleteTpPasswordResetMutation,
|
|
67
39
|
});
|
|
68
40
|
}
|
|
69
|
-
|
|
70
|
-
return this.
|
|
41
|
+
validateApprovers(approvers) {
|
|
42
|
+
return this.assemblyController.validateApprovers(approvers);
|
|
71
43
|
}
|
|
72
|
-
|
|
44
|
+
createReset(input) {
|
|
45
|
+
return this.mutate(this.createResetMutation(input));
|
|
46
|
+
}
|
|
47
|
+
createResetMutation(input) {
|
|
73
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
const
|
|
75
|
-
const { mutationInput, subjectKey, slipAssembly, assemblyKeyParams, } = yield this._createReset(input, (rawAssemblyKey) => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
return this.prepareSlip39(input.createSubAssemblies.concat(input.updateSubAssemblies), input.quorum, rawAssemblyKey);
|
|
77
|
-
}));
|
|
78
|
-
const updateSubAssemblies = yield Promise.all(input.updateSubAssemblies.map((sa, saIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const subjectCipherData = yield this.encryptionService.encryptToString(subjectKey, {
|
|
80
|
-
name: sa.name,
|
|
81
|
-
});
|
|
82
|
-
// Get the existing sub-assembly
|
|
83
|
-
const existingSa = passwordReset.assembly.subAssemblies.edges.find((edge) => edge.node.id === sa.id).node;
|
|
84
|
-
// Get approvers that do not exist yet
|
|
85
|
-
const createApprovers = [];
|
|
86
|
-
const updateApprovers = [];
|
|
87
|
-
sa.approverTps.forEach((tp) => {
|
|
88
|
-
var _a;
|
|
89
|
-
const approver = (_a = existingSa.approvers.edges.find((edge) => edge.node.tp.id === tp.id)) === null || _a === void 0 ? void 0 : _a.node;
|
|
90
|
-
if (approver) {
|
|
91
|
-
updateApprovers.push({
|
|
92
|
-
tp,
|
|
93
|
-
approverId: approver.id,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
createApprovers.push({
|
|
98
|
-
tp,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
return {
|
|
103
|
-
subAssemblyId: sa.id,
|
|
104
|
-
singleReject: sa.singleReject,
|
|
105
|
-
quorum: sa.quorum,
|
|
106
|
-
subjectCipherData,
|
|
107
|
-
createApprovers: yield Promise.all(createApprovers.map(({ tp }, approverIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
108
|
-
return this.prepareApprover({
|
|
109
|
-
tp,
|
|
110
|
-
approverIndex,
|
|
111
|
-
saIndex: saIndex + input.createSubAssemblies.length,
|
|
112
|
-
slipAssembly,
|
|
113
|
-
assemblyKeyParams,
|
|
114
|
-
subjectKey,
|
|
115
|
-
});
|
|
116
|
-
}))),
|
|
117
|
-
updateApprovers: yield Promise.all(updateApprovers.map(({ tp, approverId }, approverIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
return this.prepareApprover({
|
|
119
|
-
approverId,
|
|
120
|
-
tp,
|
|
121
|
-
approverIndex: approverIndex + createApprovers.length,
|
|
122
|
-
saIndex: saIndex + input.createSubAssemblies.length,
|
|
123
|
-
slipAssembly,
|
|
124
|
-
assemblyKeyParams,
|
|
125
|
-
subjectKey,
|
|
126
|
-
});
|
|
127
|
-
}))),
|
|
128
|
-
};
|
|
129
|
-
})));
|
|
49
|
+
const { mutationInput } = yield this.assemblyController.prepareCreate(input);
|
|
130
50
|
return new LrMutation({
|
|
131
|
-
mutation:
|
|
51
|
+
mutation: CreateTpPasswordResetMutation,
|
|
132
52
|
variables: {
|
|
133
|
-
input:
|
|
53
|
+
input: {
|
|
54
|
+
assembly: Object.assign({}, mutationInput),
|
|
55
|
+
},
|
|
134
56
|
},
|
|
135
57
|
});
|
|
136
58
|
});
|
|
137
59
|
}
|
|
138
|
-
|
|
139
|
-
return this.mutate(this.
|
|
140
|
-
}
|
|
141
|
-
cancelResetRequestMutation() {
|
|
142
|
-
return new LrMutation({
|
|
143
|
-
mutation: CancelTpPasswordResetRequestMutation,
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
validateApprovers(approvers) {
|
|
147
|
-
// Ensure all approvers have mkSharedKey.
|
|
148
|
-
for (const tp of approvers) {
|
|
149
|
-
if (!tp.currentUserSharedKey.userSharedKey.mkSharedKey) {
|
|
150
|
-
const msg = `tp ${tp.other.username} does not have mkSharedKey`;
|
|
151
|
-
console.log(msg);
|
|
152
|
-
throw new LrBadArgumentException(msg);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
60
|
+
updateReset(input) {
|
|
61
|
+
return this.mutate(this.updateResetMutation(input));
|
|
155
62
|
}
|
|
156
|
-
|
|
63
|
+
updateResetMutation(input) {
|
|
157
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// For subject to access shared_key
|
|
166
|
-
const subjectKeyWrappedSharedKey = yield this.encryptionService.encryptToString(subjectKey, sharedKey.toJSON(true));
|
|
167
|
-
const saSlip = slipAssembly.subAssemblies[saIndex];
|
|
168
|
-
if (saSlip.index !== saIndex) {
|
|
169
|
-
// Paranoia
|
|
170
|
-
throw new LrBadLogicException('slip sub assembly index should match with array index');
|
|
171
|
-
}
|
|
172
|
-
// If quorum is 1, then using the same share for every member.
|
|
173
|
-
const share = saSlip.threshold === 1 ? saSlip.shares[0] : saSlip.shares[approverIndex];
|
|
174
|
-
const partialAssemblyKey = {
|
|
175
|
-
slip39: {
|
|
176
|
-
share,
|
|
177
|
-
subAssembly: {
|
|
178
|
-
quorum: saSlip.threshold,
|
|
179
|
-
size: saSlip.size,
|
|
65
|
+
const passwordReset = yield this.getReset();
|
|
66
|
+
const { mutationInput } = yield this.assemblyController.prepareUpdate(input, passwordReset.assembly);
|
|
67
|
+
return new LrMutation({
|
|
68
|
+
mutation: UpdateTpPasswordResetMutation,
|
|
69
|
+
variables: {
|
|
70
|
+
input: {
|
|
71
|
+
assembly: Object.assign({}, mutationInput),
|
|
180
72
|
},
|
|
181
73
|
},
|
|
182
|
-
assemblyKeyParams,
|
|
183
|
-
};
|
|
184
|
-
console.log('partialAssemblyKey', partialAssemblyKey);
|
|
185
|
-
return {
|
|
186
|
-
tpMkSharedKeyId: tpMkSharedKey.id,
|
|
187
|
-
tpMkSharedKeyWrappedSharedKey,
|
|
188
|
-
subjectKeyWrappedSharedKey,
|
|
189
|
-
sharedCipherData: yield this.encryptionService.encryptToString(sharedKey, { a: '123' }),
|
|
190
|
-
sharedCipherApprovalData: '',
|
|
191
|
-
sharedCipherPartialAssemblyKey: yield this.encryptionService.encryptToString(sharedKey, partialAssemblyKey),
|
|
192
|
-
approverId: approverId || void 0,
|
|
193
|
-
tpId: approverId ? void 0 : tp.id,
|
|
194
|
-
};
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
// Prepare slip39
|
|
198
|
-
prepareSlip39(subAssemblies, assemblyQuorum, rawAssemblyKey) {
|
|
199
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
// Is there enough sub assemblies to meet quorum
|
|
201
|
-
if (subAssemblies.length < assemblyQuorum) {
|
|
202
|
-
throw new LrBadArgumentException('Not enough sub assemblies to meet quorum');
|
|
203
|
-
}
|
|
204
|
-
const slipAssembly = new slip.Assembly(assemblyQuorum);
|
|
205
|
-
subAssemblies.forEach((sa, index) => {
|
|
206
|
-
let approverCount = sa.approverTps.length;
|
|
207
|
-
// slip39 restricts quorum == 1 to have only 1 member. So we just share the same
|
|
208
|
-
// partial key for all sub assembly members.
|
|
209
|
-
if (sa.quorum === 1) {
|
|
210
|
-
approverCount = 1;
|
|
211
|
-
}
|
|
212
|
-
slipAssembly.addSubAssembly(new slip.SubAssembly(index, sa.quorum, approverCount));
|
|
213
74
|
});
|
|
214
|
-
yield this.slip39Service.generateShares(rawAssemblyKey, TP_PASSWORD_RESET_SLIP39_PASSPHRASE, slipAssembly);
|
|
215
|
-
return slipAssembly;
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
_createReset(input, createSlipAssembly) {
|
|
219
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
220
|
-
// Create subject key
|
|
221
|
-
const masterKey = yield this.keyService.getCurrentMasterKey();
|
|
222
|
-
const subjectKey = yield this.keyFactory.createKey();
|
|
223
|
-
const assemblyKey = yield this.keyFactory.createKey();
|
|
224
|
-
const _a = assemblyKey.toJSON(true), { k: rawAssemblyKey } = _a, assemblyKeyParams = __rest(_a, ["k"]);
|
|
225
|
-
const assemblyKeyVerifierPrk = yield this.keyFactory.createPkcSignKey();
|
|
226
|
-
const wrappedAssemblyKeyVerifierPrk = yield this.encryptionService.encryptToString(assemblyKey, assemblyKeyVerifierPrk.toJSON(true));
|
|
227
|
-
const masterKeyWrappedSubjectKey = yield this.encryptionService.encryptToString(masterKey.jwk, subjectKey.toJSON(true));
|
|
228
|
-
const subjectKeyWrappedAssemblyKey = yield this.encryptionService.encryptToString(subjectKey, assemblyKey.toJSON(true));
|
|
229
|
-
// Encrypt the rootKey with the assemblyKey
|
|
230
|
-
const rootKey = yield this.keyService.getCurrentRootKey();
|
|
231
|
-
const assemblyCipherData = yield this.encryptionService.encryptToString(assemblyKey, {
|
|
232
|
-
rootKey: rootKey.jwk.toJSON(true),
|
|
233
|
-
});
|
|
234
|
-
const slipAssembly = yield createSlipAssembly(rawAssemblyKey);
|
|
235
|
-
// const slipAssembly = await this.prepareSlip39(input.createSubAssemblies, input.quorum, rawAssemblyKey);
|
|
236
|
-
const createSubAssemblies = yield Promise.all(input.createSubAssemblies.map((sa, saIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
237
|
-
const subjectCipherData = yield this.encryptionService.encryptToString(subjectKey, {
|
|
238
|
-
name: sa.name,
|
|
239
|
-
});
|
|
240
|
-
return {
|
|
241
|
-
singleReject: sa.singleReject,
|
|
242
|
-
quorum: sa.quorum,
|
|
243
|
-
subjectCipherData,
|
|
244
|
-
createApprovers: yield Promise.all(sa.approverTps.map((approverTp, approverIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
245
|
-
return this.prepareApprover({
|
|
246
|
-
tp: approverTp,
|
|
247
|
-
approverIndex,
|
|
248
|
-
saIndex,
|
|
249
|
-
slipAssembly,
|
|
250
|
-
assemblyKeyParams,
|
|
251
|
-
subjectKey,
|
|
252
|
-
});
|
|
253
|
-
}))),
|
|
254
|
-
};
|
|
255
|
-
})));
|
|
256
|
-
return {
|
|
257
|
-
subjectKey,
|
|
258
|
-
slipAssembly,
|
|
259
|
-
assemblyKeyParams,
|
|
260
|
-
mutationInput: {
|
|
261
|
-
assembly: {
|
|
262
|
-
singleReject: input.singleReject,
|
|
263
|
-
quorum: input.quorum,
|
|
264
|
-
masterKeyId: masterKey.id,
|
|
265
|
-
masterKeyWrappedSubjectKey,
|
|
266
|
-
subjectKeyWrappedAssemblyKey,
|
|
267
|
-
subjectCipherData: '',
|
|
268
|
-
assemblyCipherData,
|
|
269
|
-
createSubAssemblies,
|
|
270
|
-
assemblyKeyVerifierPbk: JSON.stringify(assemblyKeyVerifierPrk.toJSON()),
|
|
271
|
-
wrappedAssemblyKeyVerifierPrk,
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
};
|
|
275
75
|
});
|
|
276
76
|
}
|
|
277
77
|
};
|
|
278
|
-
TpPasswordResetService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetService_Factory() { return new TpPasswordResetService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.
|
|
78
|
+
TpPasswordResetService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetService_Factory() { return new TpPasswordResetService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.TpPasswordResetAssemblyController)); }, token: TpPasswordResetService, providedIn: "root" });
|
|
279
79
|
TpPasswordResetService.decorators = [
|
|
280
80
|
{ type: Injectable, args: [{
|
|
281
81
|
providedIn: 'root',
|
|
@@ -284,11 +84,7 @@ TpPasswordResetService.decorators = [
|
|
|
284
84
|
TpPasswordResetService.ctorParameters = () => [
|
|
285
85
|
{ type: NgZone },
|
|
286
86
|
{ type: Injector },
|
|
287
|
-
{ type:
|
|
288
|
-
{ type: KeyFactoryService },
|
|
289
|
-
{ type: EncryptionService },
|
|
290
|
-
{ type: KeyGraphService },
|
|
291
|
-
{ type: slip.Slip39Service }
|
|
87
|
+
{ type: TpPasswordResetAssemblyController }
|
|
292
88
|
];
|
|
293
89
|
TpPasswordResetService = __decorate([
|
|
294
90
|
RunOutsideAngular({
|
|
@@ -296,4 +92,4 @@ TpPasswordResetService = __decorate([
|
|
|
296
92
|
})
|
|
297
93
|
], TpPasswordResetService);
|
|
298
94
|
export { TpPasswordResetService };
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLDZCQUE2QixFQUM3QixvQ0FBb0MsR0FDckMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxLQUFLLElBQUksTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixHQUNwQixNQUFNLHVCQUF1QixDQUFDO0FBSS9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBb0IsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBRXBGLE1BQU0sT0FBTyx3QkFBd0I7Q0FLcEM7QUFFRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0NBRXJFO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtDQUl0QztBQUVELE1BQU0sT0FB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Q25CLHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3BDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUNoQzt3QkFDRCw2QkFBNkI7cUJBQzlCO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7S0FBQTtDQUNGLENBQUE7OztZQXBZQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTlGOEIsTUFBTTtZQUFoQixRQUFRO1lBQ3BCLFVBQVU7WUFrQlYsaUJBQWlCO1lBakJqQixpQkFBaUI7WUFRakIsZUFBZTtZQUNaLElBQUksQ0E0RmdCLGFBQWE7O0FBUmhDLHNCQUFzQjtJQU5sQyxpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsc0JBQXNCLENBaVlsQztTQWpZWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gIFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxuICBVcGRhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgQ2FuY2VsVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxufSBmcm9tICcuL3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgc2xpcCBmcm9tICcuLi9jcnlwdG9ncmFwaHkvc2xpcDM5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbixcbiAgTHJCYWRMb2dpY0V4Y2VwdGlvbixcbn0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFBhcnRpYWxBc3NlbWJseUtleSB9IGZyb20gJy4uL3NjZW5hcmlvL3NjZW5hcmlvLnR5cGVzJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvY3J5cHRvZ3JhcGh5LnR5cGVzJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTHJHcmFwaFFMU2VydmljZSwgTHJNdXRhdGlvbiwgTHJTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgVHBOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IFRQX1BBU1NXT1JEX1JFU0VUX1NMSVAzOV9QQVNTUEhSQVNFIH0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlU3ViQXNzZW1ibGllc0lucHV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBxdW9ydW06IG51bWJlcjtcbiAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICBhcHByb3ZlclRwczogVHBOb2RlW107XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVTdWJBc3NlbWJsaWVzSW5wdXQgZXh0ZW5kcyBDcmVhdGVTdWJBc3NlbWJsaWVzSW5wdXQge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlVHBQYXNzd29yZFJlc2V0SW5wdXQge1xuICBxdW9ydW06IG51bWJlcjtcbiAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICBjcmVhdGVTdWJBc3NlbWJsaWVzOiBDcmVhdGVTdWJBc3NlbWJsaWVzSW5wdXRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVRwUGFzc3dvcmRSZXNldElucHV0IGV4dGVuZHMgQ3JlYXRlVHBQYXNzd29yZFJlc2V0SW5wdXQge1xuICB1cGRhdGVTdWJBc3NlbWJsaWVzOiBVcGRhdGVTdWJBc3NlbWJsaWVzSW5wdXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXBwcm92ZXJzIHtcbiAgaWQ6IHN0cmluZztcbiAgdHA6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9O1xuICBzaGFyZWRLZXk6IEtleTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IGFueTtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTdWJBc3NlbWJseSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcbiAgcXVvcnVtOiBudW1iZXI7XG4gIHN1YmplY3RDaXBoZXJEYXRhOiBzdHJpbmc7XG4gIHBsYWluU3ViamVjdENpcGhlckRhdGE6IGFueTtcbiAgYXBwcm92ZXJzOiBUcEFzc2VtYmx5QXBwcm92ZXJzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcbiAgcXVvcnVtOiBudW1iZXI7XG4gIHN1YmplY3RLZXk6IEtleTtcbiAgYXNzZW1ibHlLZXk6IEtleTtcbiAgYXNzZW1ibHlDaXBoZXJEYXRhOiBzdHJpbmc7XG4gIHBsYWluQXNzZW1ibHlDaXBoZXJEYXRhOiBhbnk7XG4gIHN1YkFzc2VtYmxpZXM6IFRwU3ViQXNzZW1ibHlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXQge1xuICBpZDogc3RyaW5nO1xuICBhc3NlbWJseTogVHBBc3NlbWJseTtcbiAgYXBwbGllZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UmVzZXRSZXN1bHQge1xuICBpZDogc3RyaW5nO1xuICBhc3NvY2lhdGVfcmVzZXRfdXNlcl90b2tlbjogc3RyaW5nO1xuICByZXNldF91c2VybmFtZTogc3RyaW5nO1xufVxuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0U2VydmljZSBleHRlbmRzIExyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2xpcDM5U2VydmljZTogc2xpcC5TbGlwMzlTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIGFzeW5jIGdldFJlc2V0KCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxuICAgICAgfSlcbiAgICApLnRwUGFzc3dvcmRSZXNldDtcbiAgfVxuXG4gIGNyZWF0ZVJlc2V0KGlucHV0OiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZVJlc2V0TXV0YXRpb24oaW5wdXQpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVJlc2V0TXV0YXRpb24oaW5wdXQ6IENyZWF0ZVRwUGFzc3dvcmRSZXNldElucHV0KSB7XG4gICAgY29uc3QgeyBtdXRhdGlvbklucHV0IH0gPSBhd2FpdCB0aGlzLl9jcmVhdGVSZXNldChcbiAgICAgIGlucHV0LFxuICAgICAgYXN5bmMgKHJhd0Fzc2VtYmx5S2V5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXBhcmVTbGlwMzkoXG4gICAgICAgICAgaW5wdXQuY3JlYXRlU3ViQXNzZW1ibGllcyxcbiAgICAgICAgICBpbnB1dC5xdW9ydW0sXG4gICAgICAgICAgcmF3QXNzZW1ibHlLZXlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogbXV0YXRpb25JbnB1dCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVSZXNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVSZXNldE11dGF0aW9uKCkpO1xuICB9XG5cbiAgZGVsZXRlUmVzZXRNdXRhdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUmVzZXQoaW5wdXQ6IFVwZGF0ZVRwUGFzc3dvcmRSZXNldElucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudXBkYXRlUmVzZXRNdXRhdGlvbihpbnB1dCkpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUmVzZXRNdXRhdGlvbihpbnB1dDogVXBkYXRlVHBQYXNzd29yZFJlc2V0SW5wdXQpIHtcbiAgICBjb25zdCBwYXNzd29yZFJlc2V0ID0gYXdhaXQgdGhpcy5nZXRSZXNldCgpO1xuXG4gICAgY29uc3Qge1xuICAgICAgbXV0YXRpb25JbnB1dCxcbiAgICAgIHN1YmplY3RLZXksXG4gICAgICBzbGlwQXNzZW1ibHksXG4gICAgICBhc3NlbWJseUtleVBhcmFtcyxcbiAgICB9ID0gYXdhaXQgdGhpcy5fY3JlYXRlUmVzZXQoaW5wdXQsIGFzeW5jIChyYXdBc3NlbWJseUtleSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZVNsaXAzOShcbiAgICAgICAgaW5wdXQuY3JlYXRlU3ViQXNzZW1ibGllcy5jb25jYXQoaW5wdXQudXBkYXRlU3ViQXNzZW1ibGllcyksXG4gICAgICAgIGlucHV0LnF1b3J1bSxcbiAgICAgICAgcmF3QXNzZW1ibHlLZXlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB1cGRhdGVTdWJBc3NlbWJsaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBpbnB1dC51cGRhdGVTdWJBc3NlbWJsaWVzLm1hcChhc3luYyAoc2EsIHNhSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViamVjdENpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgICBzdWJqZWN0S2V5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IHNhLm5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEdldCB0aGUgZXhpc3Rpbmcgc3ViLWFzc2VtYmx5XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nU2EgPSBwYXNzd29yZFJlc2V0LmFzc2VtYmx5LnN1YkFzc2VtYmxpZXMuZWRnZXMuZmluZChcbiAgICAgICAgICAoZWRnZSkgPT4gZWRnZS5ub2RlLmlkID09PSBzYS5pZFxuICAgICAgICApLm5vZGU7XG5cbiAgICAgICAgLy8gR2V0IGFwcHJvdmVycyB0aGF0IGRvIG5vdCBleGlzdCB5ZXRcbiAgICAgICAgY29uc3QgY3JlYXRlQXBwcm92ZXJzID0gW107XG4gICAgICAgIGNvbnN0IHVwZGF0ZUFwcHJvdmVycyA9IFtdO1xuXG4gICAgICAgIHNhLmFwcHJvdmVyVHBzLmZvckVhY2goKHRwKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXBwcm92ZXIgPSBleGlzdGluZ1NhLmFwcHJvdmVycy5lZGdlcy5maW5kKFxuICAgICAgICAgICAgKGVkZ2UpID0+IGVkZ2Uubm9kZS50cC5pZCA9PT0gdHAuaWRcbiAgICAgICAgICApPy5ub2RlO1xuICAgICAgICAgIGlmIChhcHByb3Zlcikge1xuICAgICAgICAgICAgdXBkYXRlQXBwcm92ZXJzLnB1c2goe1xuICAgICAgICAgICAgICB0cCxcbiAgICAgICAgICAgICAgYXBwcm92ZXJJZDogYXBwcm92ZXIuaWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3JlYXRlQXBwcm92ZXJzLnB1c2goe1xuICAgICAgICAgICAgICB0cCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWJBc3NlbWJseUlkOiBzYS5pZCxcbiAgICAgICAgICBzaW5nbGVSZWplY3Q6IHNhLnNpbmdsZVJlamVjdCxcbiAgICAgICAgICBxdW9ydW06IHNhLnF1b3J1bSxcbiAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YSxcbiAgICAgICAgICBjcmVhdGVBcHByb3ZlcnM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgY3JlYXRlQXBwcm92ZXJzLm1hcChhc3luYyAoeyB0cCB9LCBhcHByb3ZlckluZGV4KSA9PlxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVBcHByb3Zlcih7XG4gICAgICAgICAgICAgICAgdHAsXG4gICAgICAgICAgICAgICAgYXBwcm92ZXJJbmRleCxcbiAgICAgICAgICAgICAgICBzYUluZGV4OiBzYUluZGV4ICsgaW5wdXQuY3JlYXRlU3ViQXNzZW1ibGllcy5sZW5ndGgsIC8vIHNsaXBBc3NlbWJseSBpcyBhbGwgc3ViLWFzc2VtYmxpZXMgY29tYmluZWRcbiAgICAgICAgICAgICAgICBzbGlwQXNzZW1ibHksXG4gICAgICAgICAgICAgICAgYXNzZW1ibHlLZXlQYXJhbXMsXG4gICAgICAgICAgICAgICAgc3ViamVjdEtleSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIHVwZGF0ZUFwcHJvdmVyczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB1cGRhdGVBcHByb3ZlcnMubWFwKGFzeW5jICh7IHRwLCBhcHByb3ZlcklkIH0sIGFwcHJvdmVySW5kZXgpID0+XG4gICAgICAgICAgICAgIHRoaXMucHJlcGFyZUFwcHJvdmVyKHtcbiAgICAgICAgICAgICAgICBhcHByb3ZlcklkLFxuICAgICAgICAgICAgICAgIHRwLFxuICAgICAgICAgICAgICAgIGFwcHJvdmVySW5kZXg6IGFwcHJvdmVySW5kZXggKyBjcmVhdGVBcHByb3ZlcnMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIHNhSW5kZXg6IHNhSW5kZXggKyBpbnB1dC5jcmVhdGVTdWJBc3NlbWJsaWVzLmxlbmd0aCwgLy8gc2xpcEFzc2VtYmx5IGlzIGFsbCBzdWItYXNzZW1ibGllcyBjb21iaW5lZFxuICAgICAgICAgICAgICAgIHNsaXBBc3NlbWJseSxcbiAgICAgICAgICAgICAgICBhc3NlbWJseUtleVBhcmFtcyxcbiAgICAgICAgICAgICAgICBzdWJqZWN0S2V5LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgLi4ubXV0YXRpb25JbnB1dCxcbiAgICAgICAgICBhc3NlbWJseToge1xuICAgICAgICAgICAgLi4ubXV0YXRpb25JbnB1dC5hc3NlbWJseSxcbiAgICAgICAgICAgIHVwZGF0ZVN1YkFzc2VtYmxpZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY2FuY2VsUmVzZXRSZXF1ZXN0TXV0YXRpb24oKSk7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3RNdXRhdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlQXBwcm92ZXJzKGFwcHJvdmVyczogVHBOb2RlW10pOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgYWxsIGFwcHJvdmVycyBoYXZlIG1rU2hhcmVkS2V5LlxuICAgIGZvciAoY29uc3QgdHAgb2YgYXBwcm92ZXJzKSB7XG4gICAgICBpZiAoIXRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgICAgY29uc3QgbXNnID0gYHRwICR7dHAub3RoZXIudXNlcm5hbWV9IGRvZXMgbm90IGhhdmUgbWtTaGFyZWRLZXlgO1xuICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xuICAgICAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbihtc2cpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUFwcHJvdmVyKHtcbiAgICBhcHByb3ZlcklkLFxuICAgIHRwLFxuICAgIGFwcHJvdmVySW5kZXgsXG4gICAgc2FJbmRleCxcbiAgICBzbGlwQXNzZW1ibHksXG4gICAgYXNzZW1ibHlLZXlQYXJhbXMsXG4gICAgc3ViamVjdEtleSxcbiAgfToge1xuICAgIGFwcHJvdmVySWQ/OiBzdHJpbmc7XG4gICAgdHA6IFRwTm9kZTtcbiAgICBhcHByb3ZlckluZGV4OiBudW1iZXI7XG4gICAgc2FJbmRleDogbnVtYmVyO1xuICAgIHNsaXBBc3NlbWJseTogc2xpcC5Bc3NlbWJseTtcbiAgICBhc3NlbWJseUtleVBhcmFtczogb2JqZWN0O1xuICAgIHN1YmplY3RLZXk6IEpXSy5LZXk7XG4gIH0pIHtcbiAgICBpZiAoIXRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICBgVHAgJHt0cC5vdGhlci51c2VybmFtZX0gZG9lcyBub3QgaGF2ZSBta1NoYXJlZEtleS4gTmVlZCB0byByZXNoYXJlZCBpdCBmaXJzdC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcbiAgICBjb25zdCB0cE1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoXG4gICAgICB0cC5jdXJyZW50VXNlclNoYXJlZEtleS51c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5LmlkXG4gICAgKTtcbiAgICAvLyBGb3IgVFAgdG8gYWNjZXNzIHNoYXJlZF9rZXlcbiAgICBjb25zdCB0cE1rU2hhcmVkS2V5V3JhcHBlZFNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgdHBNa1NoYXJlZEtleS5qd2ssXG4gICAgICBzaGFyZWRLZXkudG9KU09OKHRydWUpXG4gICAgKTtcbiAgICAvLyBGb3Igc3ViamVjdCB0byBhY2Nlc3Mgc2hhcmVkX2tleVxuICAgIGNvbnN0IHN1YmplY3RLZXlXcmFwcGVkU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBzdWJqZWN0S2V5LFxuICAgICAgc2hhcmVkS2V5LnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICBjb25zdCBzYVNsaXAgPSBzbGlwQXNzZW1ibHkuc3ViQXNzZW1ibGllc1tzYUluZGV4XTtcbiAgICBpZiAoc2FTbGlwLmluZGV4ICE9PSBzYUluZGV4KSB7XG4gICAgICAvLyBQYXJhbm9pYVxuICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICdzbGlwIHN1YiBhc3NlbWJseSBpbmRleCBzaG91bGQgbWF0Y2ggd2l0aCBhcnJheSBpbmRleCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSWYgcXVvcnVtIGlzIDEsIHRoZW4gdXNpbmcgdGhlIHNhbWUgc2hhcmUgZm9yIGV2ZXJ5IG1lbWJlci5cbiAgICBjb25zdCBzaGFyZSA9XG4gICAgICBzYVNsaXAudGhyZXNob2xkID09PSAxID8gc2FTbGlwLnNoYXJlc1swXSA6IHNhU2xpcC5zaGFyZXNbYXBwcm92ZXJJbmRleF07XG5cbiAgICBjb25zdCBwYXJ0aWFsQXNzZW1ibHlLZXk6IFBhcnRpYWxBc3NlbWJseUtleSA9IHtcbiAgICAgIHNsaXAzOToge1xuICAgICAgICBzaGFyZSxcbiAgICAgICAgc3ViQXNzZW1ibHk6IHtcbiAgICAgICAgICBxdW9ydW06IHNhU2xpcC50aHJlc2hvbGQsXG4gICAgICAgICAgc2l6ZTogc2FTbGlwLnNpemUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYXNzZW1ibHlLZXlQYXJhbXMsXG4gICAgfTtcblxuICAgIGNvbnNvbGUubG9nKCdwYXJ0aWFsQXNzZW1ibHlLZXknLCBwYXJ0aWFsQXNzZW1ibHlLZXkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRwTWtTaGFyZWRLZXlJZDogdHBNa1NoYXJlZEtleS5pZCxcbiAgICAgIHRwTWtTaGFyZWRLZXlXcmFwcGVkU2hhcmVkS2V5LFxuICAgICAgc3ViamVjdEtleVdyYXBwZWRTaGFyZWRLZXksXG4gICAgICBzaGFyZWRDaXBoZXJEYXRhOiBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgc2hhcmVkS2V5LFxuICAgICAgICB7IGE6ICcxMjMnIH1cbiAgICAgICksXG4gICAgICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE6ICcnLFxuICAgICAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgc2hhcmVkS2V5LFxuICAgICAgICBwYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICksXG4gICAgICBhcHByb3ZlcklkOiBhcHByb3ZlcklkIHx8IHZvaWQgMCxcbiAgICAgIHRwSWQ6IGFwcHJvdmVySWQgPyB2b2lkIDAgOiB0cC5pZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gUHJlcGFyZSBzbGlwMzlcbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlU2xpcDM5KFxuICAgIHN1YkFzc2VtYmxpZXMsXG4gICAgYXNzZW1ibHlRdW9ydW06IG51bWJlcixcbiAgICByYXdBc3NlbWJseUtleTogc3RyaW5nXG4gICk6IFByb21pc2U8c2xpcC5Bc3NlbWJseT4ge1xuICAgIC8vIElzIHRoZXJlIGVub3VnaCBzdWIgYXNzZW1ibGllcyB0byBtZWV0IHF1b3J1bVxuICAgIGlmIChzdWJBc3NlbWJsaWVzLmxlbmd0aCA8IGFzc2VtYmx5UXVvcnVtKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgICAgICAgJ05vdCBlbm91Z2ggc3ViIGFzc2VtYmxpZXMgdG8gbWVldCBxdW9ydW0nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNsaXBBc3NlbWJseSA9IG5ldyBzbGlwLkFzc2VtYmx5KGFzc2VtYmx5UXVvcnVtKTtcblxuICAgIHN1YkFzc2VtYmxpZXMuZm9yRWFjaCgoc2EsIGluZGV4KSA9PiB7XG4gICAgICBsZXQgYXBwcm92ZXJDb3VudCA9IHNhLmFwcHJvdmVyVHBzLmxlbmd0aDtcblxuICAgICAgLy8gc2xpcDM5IHJlc3RyaWN0cyBxdW9ydW0gPT0gMSB0byBoYXZlIG9ubHkgMSBtZW1iZXIuIFNvIHdlIGp1c3Qgc2hhcmUgdGhlIHNhbWVcbiAgICAgIC8vIHBhcnRpYWwga2V5IGZvciBhbGwgc3ViIGFzc2VtYmx5IG1lbWJlcnMuXG4gICAgICBpZiAoc2EucXVvcnVtID09PSAxKSB7XG4gICAgICAgIGFwcHJvdmVyQ291bnQgPSAxO1xuICAgICAgfVxuICAgICAgc2xpcEFzc2VtYmx5LmFkZFN1YkFzc2VtYmx5KFxuICAgICAgICBuZXcgc2xpcC5TdWJBc3NlbWJseShpbmRleCwgc2EucXVvcnVtLCBhcHByb3ZlckNvdW50KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuc2xpcDM5U2VydmljZS5nZW5lcmF0ZVNoYXJlcyhcbiAgICAgIHJhd0Fzc2VtYmx5S2V5LFxuICAgICAgVFBfUEFTU1dPUkRfUkVTRVRfU0xJUDM5X1BBU1NQSFJBU0UsXG4gICAgICBzbGlwQXNzZW1ibHlcbiAgICApO1xuICAgIHJldHVybiBzbGlwQXNzZW1ibHk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jcmVhdGVSZXNldChcbiAgICBpbnB1dDogQ3JlYXRlVHBQYXNzd29yZFJlc2V0SW5wdXQsXG4gICAgY3JlYXRlU2xpcEFzc2VtYmx5XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gQ3JlYXRlIHN1YmplY3Qga2V5XG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRNYXN0ZXJLZXkoKTtcbiAgICBjb25zdCBzdWJqZWN0S2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IGFzc2VtYmx5S2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHsgazogcmF3QXNzZW1ibHlLZXksIC4uLmFzc2VtYmx5S2V5UGFyYW1zIH0gPSBhc3NlbWJseUtleS50b0pTT04oXG4gICAgICB0cnVlXG4gICAgKSBhcyBhbnk7XG4gICAgY29uc3QgYXNzZW1ibHlLZXlWZXJpZmllclByayA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVQa2NTaWduS2V5KCk7XG4gICAgY29uc3Qgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIGFzc2VtYmx5S2V5LFxuICAgICAgYXNzZW1ibHlLZXlWZXJpZmllclByay50b0pTT04odHJ1ZSlcbiAgICApO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFN1YmplY3RLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBzdWJqZWN0S2V5LnRvSlNPTih0cnVlKVxuICAgICk7XG4gICAgY29uc3Qgc3ViamVjdEtleVdyYXBwZWRBc3NlbWJseUtleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgc3ViamVjdEtleSxcbiAgICAgIGFzc2VtYmx5S2V5LnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICAvLyBFbmNyeXB0IHRoZSByb290S2V5IHdpdGggdGhlIGFzc2VtYmx5S2V5XG4gICAgY29uc3Qgcm9vdEtleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50Um9vdEtleSgpO1xuXG4gICAgY29uc3QgYXNzZW1ibHlDaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBhc3NlbWJseUtleSxcbiAgICAgIHtcbiAgICAgICAgcm9vdEtleTogcm9vdEtleS5qd2sudG9KU09OKHRydWUpLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBzbGlwQXNzZW1ibHkgPSBhd2FpdCBjcmVhdGVTbGlwQXNzZW1ibHkocmF3QXNzZW1ibHlLZXkpO1xuICAgIC8vIGNvbnN0IHNsaXBBc3NlbWJseSA9IGF3YWl0IHRoaXMucHJlcGFyZVNsaXAzOShpbnB1dC5jcmVhdGVTdWJBc3NlbWJsaWVzLCBpbnB1dC5xdW9ydW0sIHJhd0Fzc2VtYmx5S2V5KTtcblxuICAgIGNvbnN0IGNyZWF0ZVN1YkFzc2VtYmxpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGlucHV0LmNyZWF0ZVN1YkFzc2VtYmxpZXMubWFwKGFzeW5jIChzYSwgc2FJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJqZWN0Q2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICAgIHN1YmplY3RLZXksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogc2EubmFtZSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzaW5nbGVSZWplY3Q6IHNhLnNpbmdsZVJlamVjdCxcbiAgICAgICAgICBxdW9ydW06IHNhLnF1b3J1bSxcbiAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YSxcbiAgICAgICAgICBjcmVhdGVBcHByb3ZlcnM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgc2EuYXBwcm92ZXJUcHMubWFwKGFzeW5jIChhcHByb3ZlclRwLCBhcHByb3ZlckluZGV4KSA9PlxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVBcHByb3Zlcih7XG4gICAgICAgICAgICAgICAgdHA6IGFwcHJvdmVyVHAsXG4gICAgICAgICAgICAgICAgYXBwcm92ZXJJbmRleCxcbiAgICAgICAgICAgICAgICBzYUluZGV4LFxuICAgICAgICAgICAgICAgIHNsaXBBc3NlbWJseSxcbiAgICAgICAgICAgICAgICBhc3NlbWJseUtleVBhcmFtcyxcbiAgICAgICAgICAgICAgICBzdWJqZWN0S2V5LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3ViamVjdEtleSxcbiAgICAgIHNsaXBBc3NlbWJseSxcbiAgICAgIGFzc2VtYmx5S2V5UGFyYW1zLFxuICAgICAgbXV0YXRpb25JbnB1dDoge1xuICAgICAgICBhc3NlbWJseToge1xuICAgICAgICAgIHNpbmdsZVJlamVjdDogaW5wdXQuc2luZ2xlUmVqZWN0LFxuICAgICAgICAgIHF1b3J1bTogaW5wdXQucXVvcnVtLFxuICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgbWFzdGVyS2V5V3JhcHBlZFN1YmplY3RLZXksXG4gICAgICAgICAgc3ViamVjdEtleVdyYXBwZWRBc3NlbWJseUtleSxcbiAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YTogJycsXG4gICAgICAgICAgYXNzZW1ibHlDaXBoZXJEYXRhLFxuICAgICAgICAgIGNyZWF0ZVN1YkFzc2VtYmxpZXMsXG4gICAgICAgICAgYXNzZW1ibHlLZXlWZXJpZmllclBiazogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBhc3NlbWJseUtleVZlcmlmaWVyUHJrLnRvSlNPTigpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cmFwcGVkQXNzZW1ibHlLZXlWZXJpZmllclByayxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsNkJBQTZCLEVBQzdCLG9DQUFvQyxHQUNyQyxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztJQXdEN0Msc0JBQXNCLFNBQXRCLHNCQUF1QixTQUFRLFNBQVM7SUFHbkQsWUFDVSxNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsa0JBQXFEO1FBRTdELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUM7UUFML0QscUJBQWdCLEdBQUcsbUNBQW1DLENBQUM7SUFRdkQsQ0FBQztJQUVLLFFBQVE7O1lBQ1osT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDZixLQUFLLEVBQUUsb0JBQW9CO2FBQzVCLENBQUMsQ0FDSCxDQUFDLGVBQWUsQ0FBQztRQUNwQixDQUFDO0tBQUE7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxvQ0FBb0M7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsUUFBUSxFQUFFLDZCQUE2QjtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE0QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVLLG1CQUFtQixDQUFDLEtBQTRCOztZQUNwRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUNuRSxLQUFLLENBQ04sQ0FBQztZQUVGLE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsUUFBUSxvQkFDSCxhQUFhLENBQ2pCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsV0FBVyxDQUFDLEtBQTRCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUssbUJBQW1CLENBQUMsS0FBNEI7O1lBQ3BELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTVDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQ25FLEtBQUssRUFDTCxhQUFhLENBQUMsUUFBUSxDQUN2QixDQUFDO1lBRUYsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxRQUFRLG9CQUNILGFBQWEsQ0FDakI7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUExRkEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFuRThCLE1BQU07WUFBaEIsUUFBUTtZQVdwQixpQ0FBaUM7O0FBeUQ3QixzQkFBc0I7SUFObEMsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLHNCQUFzQixDQXVGbEM7U0F2Rlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gIERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uLFxuICBUcFBhc3N3b3JkUmVzZXRRdWVyeSxcbiAgVXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gIENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5ncWwnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2NyeXB0b2dyYXBoeS50eXBlcyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUUF9QQVNTV09SRF9SRVNFVF9TTElQMzlfUEFTU1BIUkFTRSB9IGZyb20gJy4vdHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlciB9IGZyb20gJy4vdHAtcGFzc3dvcmQtcmVzZXQuY29udHJvbGxlcic7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBUcE5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVHBBc3NlbWJseUlucHV0LFxuICBVcGRhdGVUcEFzc2VtYmx5SW5wdXQsXG59IGZyb20gJy4vdHAtYXNzZW1ibHkudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHlBcHByb3ZlcnMge1xuICBpZDogc3RyaW5nO1xuICB0cDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG4gIHNoYXJlZEtleTogS2V5O1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogYW55O1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFN1YkFzc2VtYmx5IHtcbiAgaWQ6IHN0cmluZztcbiAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICBxdW9ydW06IG51bWJlcjtcbiAgc3ViamVjdENpcGhlckRhdGE6IHN0cmluZztcbiAgcGxhaW5TdWJqZWN0Q2lwaGVyRGF0YTogYW55O1xuICBhcHByb3ZlcnM6IFRwQXNzZW1ibHlBcHByb3ZlcnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5IHtcbiAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xuICBxdW9ydW06IG51bWJlcjtcbiAgc3ViamVjdEtleTogS2V5O1xuICBhc3NlbWJseUtleTogS2V5O1xuICBhc3NlbWJseUNpcGhlckRhdGE6IHN0cmluZztcbiAgcGxhaW5Bc3NlbWJseUNpcGhlckRhdGE6IGFueTtcbiAgc3ViQXNzZW1ibGllczogVHBTdWJBc3NlbWJseVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFzc2VtYmx5OiBUcEFzc2VtYmx5O1xuICBhcHBsaWVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNldFJlc3VsdCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFzc29jaWF0ZV9yZXNldF91c2VyX3Rva2VuOiBzdHJpbmc7XG4gIHJlc2V0X3VzZXJuYW1lOiBzdHJpbmc7XG59XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcFBhc3N3b3JkUmVzZXRTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgc2xpcDM5UGFzc3BocmFzZSA9IFRQX1BBU1NXT1JEX1JFU0VUX1NMSVAzOV9QQVNTUEhSQVNFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBhc3NlbWJseUNvbnRyb2xsZXI6IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlclxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBhc3luYyBnZXRSZXNldCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRRdWVyeSxcbiAgICAgIH0pXG4gICAgKS50cFBhc3N3b3JkUmVzZXQ7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY2FuY2VsUmVzZXRSZXF1ZXN0TXV0YXRpb24oKSk7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3RNdXRhdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZVJlc2V0KCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZVJlc2V0TXV0YXRpb24oKSk7XG4gIH1cblxuICBkZWxldGVSZXNldE11dGF0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUFwcHJvdmVycyhhcHByb3ZlcnM6IFRwTm9kZVtdKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnZhbGlkYXRlQXBwcm92ZXJzKGFwcHJvdmVycyk7XG4gIH1cblxuICBjcmVhdGVSZXNldChpbnB1dDogQ3JlYXRlVHBBc3NlbWJseUlucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlUmVzZXRNdXRhdGlvbihpbnB1dCkpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUmVzZXRNdXRhdGlvbihpbnB1dDogQ3JlYXRlVHBBc3NlbWJseUlucHV0KSB7XG4gICAgY29uc3QgeyBtdXRhdGlvbklucHV0IH0gPSBhd2FpdCB0aGlzLmFzc2VtYmx5Q29udHJvbGxlci5wcmVwYXJlQ3JlYXRlKFxuICAgICAgaW5wdXRcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGFzc2VtYmx5OiB7XG4gICAgICAgICAgICAuLi5tdXRhdGlvbklucHV0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUmVzZXQoaW5wdXQ6IFVwZGF0ZVRwQXNzZW1ibHlJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZVJlc2V0TXV0YXRpb24oaW5wdXQpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVJlc2V0TXV0YXRpb24oaW5wdXQ6IFVwZGF0ZVRwQXNzZW1ibHlJbnB1dCkge1xuICAgIGNvbnN0IHBhc3N3b3JkUmVzZXQgPSBhd2FpdCB0aGlzLmdldFJlc2V0KCk7XG5cbiAgICBjb25zdCB7IG11dGF0aW9uSW5wdXQgfSA9IGF3YWl0IHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnByZXBhcmVVcGRhdGUoXG4gICAgICBpbnB1dCxcbiAgICAgIHBhc3N3b3JkUmVzZXQuYXNzZW1ibHlcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGFzc2VtYmx5OiB7XG4gICAgICAgICAgICAuLi5tdXRhdGlvbklucHV0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|