@lifeready/core 6.1.3 → 6.1.5

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.
Files changed (77) hide show
  1. package/bundles/lifeready-core.umd.js +303 -295
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/auth/auth.config.js +57 -0
  6. package/esm2015/lib/auth/auth.gql.private.js +85 -0
  7. package/esm2015/lib/auth/auth.service.js +602 -0
  8. package/esm2015/lib/auth/auth.types.js +21 -0
  9. package/esm2015/lib/idle/idle.service.js +3 -3
  10. package/esm2015/lib/item/item.gql.js +164 -0
  11. package/esm2015/lib/item/item.gql.private.js +23 -0
  12. package/esm2015/lib/item/item.service.js +592 -0
  13. package/esm2015/lib/item/item.types.js +2 -0
  14. package/esm2015/lib/key-exchange/key-exchange.gql.js +174 -0
  15. package/esm2015/lib/key-exchange/key-exchange.service.js +480 -0
  16. package/esm2015/lib/lbop/lbop.service.js +7 -15
  17. package/esm2015/lib/life-ready.module.js +2 -2
  18. package/esm2015/lib/password/password.service.js +1 -1
  19. package/esm2015/lib/plan/plan.gql.js +91 -0
  20. package/esm2015/lib/plan/plan.service.js +191 -0
  21. package/esm2015/lib/plan/plan.types.js +2 -0
  22. package/esm2015/lib/profile/profile.gql.js +2 -2
  23. package/esm2015/lib/profile/profile.service.js +1 -8
  24. package/esm2015/lib/profile/profile.types.js +1 -8
  25. package/esm2015/lib/scenario/scenario.service.js +8 -8
  26. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +1 -1
  27. package/esm2015/lib/trusted-party/trusted-party.gql.js +64 -0
  28. package/esm2015/lib/trusted-party/trusted-party.gql.private.js +25 -0
  29. package/esm2015/lib/trusted-party/trusted-party.service.js +240 -0
  30. package/esm2015/lib/trusted-party/trusted-party.types.js +2 -0
  31. package/esm2015/public-api.js +17 -12
  32. package/fesm2015/lifeready-core.js +191 -213
  33. package/fesm2015/lifeready-core.js.map +1 -1
  34. package/lib/{auth2/auth2.service.d.ts → auth/auth.service.d.ts} +2 -2
  35. package/lib/idle/idle.service.d.ts +9 -2
  36. package/lib/{item2/item2.service.d.ts → item/item.service.d.ts} +39 -39
  37. package/lib/key-exchange/{key-exchange2.service.d.ts → key-exchange.service.d.ts} +2 -2
  38. package/lib/lbop/lbop.service.d.ts +1 -5
  39. package/lib/password/password.service.d.ts +1 -1
  40. package/lib/{plan2/plan2.service.d.ts → plan/plan.service.d.ts} +20 -20
  41. package/lib/profile/profile.service.d.ts +1 -2
  42. package/lib/profile/profile.types.d.ts +2 -15
  43. package/lib/scenario/scenario.service.d.ts +3 -3
  44. package/lib/shared-contact-card/shared-contact-card2.service.d.ts +1 -1
  45. package/lib/trusted-party/{trusted-party2.service.d.ts → trusted-party.service.d.ts} +6 -6
  46. package/lifeready-core.metadata.json +1 -1
  47. package/package.json +1 -1
  48. package/public-api.d.ts +16 -11
  49. package/esm2015/lib/auth2/auth.config.js +0 -57
  50. package/esm2015/lib/auth2/auth2.gql.private.js +0 -85
  51. package/esm2015/lib/auth2/auth2.service.js +0 -602
  52. package/esm2015/lib/auth2/auth2.types.js +0 -21
  53. package/esm2015/lib/item2/item2.gql.js +0 -164
  54. package/esm2015/lib/item2/item2.gql.private.js +0 -23
  55. package/esm2015/lib/item2/item2.service.js +0 -592
  56. package/esm2015/lib/item2/item2.types.js +0 -2
  57. package/esm2015/lib/key-exchange/key-exchange2.gql.js +0 -174
  58. package/esm2015/lib/key-exchange/key-exchange2.service.js +0 -480
  59. package/esm2015/lib/plan2/plan2.gql.js +0 -91
  60. package/esm2015/lib/plan2/plan2.service.js +0 -191
  61. package/esm2015/lib/plan2/plan2.types.js +0 -2
  62. package/esm2015/lib/trusted-party/trusted-party2.gql.js +0 -64
  63. package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +0 -25
  64. package/esm2015/lib/trusted-party/trusted-party2.service.js +0 -240
  65. package/esm2015/lib/trusted-party/trusted-party2.types.js +0 -2
  66. /package/lib/{auth2 → auth}/auth.config.d.ts +0 -0
  67. /package/lib/{auth2/auth2.gql.private.d.ts → auth/auth.gql.private.d.ts} +0 -0
  68. /package/lib/{auth2/auth2.types.d.ts → auth/auth.types.d.ts} +0 -0
  69. /package/lib/{item2/item2.gql.d.ts → item/item.gql.d.ts} +0 -0
  70. /package/lib/{item2/item2.gql.private.d.ts → item/item.gql.private.d.ts} +0 -0
  71. /package/lib/{item2/item2.types.d.ts → item/item.types.d.ts} +0 -0
  72. /package/lib/key-exchange/{key-exchange2.gql.d.ts → key-exchange.gql.d.ts} +0 -0
  73. /package/lib/{plan2/plan2.gql.d.ts → plan/plan.gql.d.ts} +0 -0
  74. /package/lib/{plan2/plan2.types.d.ts → plan/plan.types.d.ts} +0 -0
  75. /package/lib/trusted-party/{trusted-party2.gql.d.ts → trusted-party.gql.d.ts} +0 -0
  76. /package/lib/trusted-party/{trusted-party2.gql.private.d.ts → trusted-party.gql.private.d.ts} +0 -0
  77. /package/lib/trusted-party/{trusted-party2.types.d.ts → trusted-party.types.d.ts} +0 -0
@@ -0,0 +1,240 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, Injector, NgZone } from '@angular/core';
3
+ import { JWK } from 'node-jose';
4
+ import { LrMutation, LrService } from '../api/lr-graphql';
5
+ import { EncryptionService } from '../encryption/encryption.service';
6
+ import { ItemService } from '../item/item.service';
7
+ import { KeyFactoryService } from '../key/key-factory.service';
8
+ import { KeyGraphService } from '../key/key-graph.service';
9
+ import { KeyService } from '../key/key.service';
10
+ import { KcBadStateException } from '../_common/exceptions';
11
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
12
+ import { CompleteTpMkReshareMutation, DeleteTpMutation, RequestTpMkReshareMutation, RespondTpMkReshareMutation, ShareDirectoryMutation, ShareFileMutation, UnshareDirectoryMutation, UnshareFileMutation, } from './trusted-party.gql';
13
+ import { TpCurrentUserSharedKeyQuery } from './trusted-party.gql.private';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../key/key-graph.service";
16
+ import * as i2 from "../item/item.service";
17
+ import * as i3 from "../key/key.service";
18
+ import * as i4 from "../key/key-factory.service";
19
+ import * as i5 from "../encryption/encryption.service";
20
+ let TrustedPartyService = class TrustedPartyService extends LrService {
21
+ constructor(ngZone, injector, keyGraph, itemService, keyService, keyFactory, encryptionService) {
22
+ super(injector);
23
+ this.ngZone = ngZone;
24
+ this.injector = injector;
25
+ this.keyGraph = keyGraph;
26
+ this.itemService = itemService;
27
+ this.keyService = keyService;
28
+ this.keyFactory = keyFactory;
29
+ this.encryptionService = encryptionService;
30
+ }
31
+ deleteTp(tpId) {
32
+ return this.mutate(this.deleteTpMutation(tpId));
33
+ }
34
+ deleteTpMutation(tpId) {
35
+ return new LrMutation({
36
+ mutation: DeleteTpMutation,
37
+ variables: {
38
+ input: {
39
+ id: tpId,
40
+ },
41
+ },
42
+ });
43
+ }
44
+ shareDirectory(options) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return this.mutate(this.shareDirectoryMutation(options));
47
+ });
48
+ }
49
+ shareDirectoryMutation(options) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ return this.shareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true }));
52
+ });
53
+ }
54
+ shareFile(options) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ return this.mutate(this.shareFileMutation(options));
57
+ });
58
+ }
59
+ shareFileMutation(options) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ return this.shareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false }));
62
+ });
63
+ }
64
+ shareItemMutation({ itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory, }) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
67
+ ? this.itemService.getDirectoryKeyId(itemId)
68
+ : this.itemService.getFileKeyId(itemId));
69
+ const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
70
+ const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
71
+ return new LrMutation({
72
+ mutation: isDirectory ? ShareDirectoryMutation : ShareFileMutation,
73
+ variables: {
74
+ input: {
75
+ id: itemId,
76
+ tpId,
77
+ accessRole,
78
+ keyId: itemKey.id,
79
+ wrappingKeyId: wrappingKey.id,
80
+ wrappedKey,
81
+ },
82
+ },
83
+ });
84
+ });
85
+ }
86
+ unshareDirectory(options) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ return this.mutate(this.unshareDirectoryMutation(options));
89
+ });
90
+ }
91
+ unshareDirectoryMutation(options) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true }));
94
+ });
95
+ }
96
+ unshareFile(options) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ return this.mutate(this.unshareFileMutation(options));
99
+ });
100
+ }
101
+ unshareFileMutation(options) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false }));
104
+ });
105
+ }
106
+ unshareItemMutation({ itemId, tpId, isDirectory, }) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ return new LrMutation({
109
+ mutation: isDirectory ? UnshareDirectoryMutation : UnshareFileMutation,
110
+ variables: {
111
+ input: {
112
+ id: itemId,
113
+ tpId,
114
+ },
115
+ },
116
+ });
117
+ });
118
+ }
119
+ requestMkReshareMutation(tpId) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
122
+ if (userSharedKey.mkSharedKey) {
123
+ throw new KcBadStateException('TP already has mkSharedKey');
124
+ }
125
+ const masterKey = this.keyService.currentMasterKey;
126
+ const prk = yield this.keyFactory.createPkcKey();
127
+ const mkWrappedMkPrk = yield this.encryptionService.encryptToString(masterKey.jwk, prk.toJSON(true));
128
+ const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
129
+ const mkReshareRequestCipher = yield this.encryptionService.encryptToString(sharedKey.jwk, {
130
+ pbk: prk.toJSON(),
131
+ });
132
+ return yield new LrMutation({
133
+ mutation: RequestTpMkReshareMutation,
134
+ variables: {
135
+ input: {
136
+ tpId,
137
+ masterKeyId: masterKey.id,
138
+ mkPbk: JSON.stringify(prk.toJSON()),
139
+ mkWrappedMkPrk,
140
+ sharedKeyId: sharedKey.id,
141
+ mkReshareRequestCipher,
142
+ },
143
+ },
144
+ });
145
+ });
146
+ }
147
+ respondMkReshare(tpId) {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
150
+ if (!userSharedKey.mkSharedKey) {
151
+ throw new KcBadStateException('No access to the mkSharedKey so cannot reshare it with TP');
152
+ }
153
+ const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
154
+ const plainMkReshareRequestCipher = yield this.encryptionService.decrypt(sharedKey, userSharedKey.mkReshareRequestCipher);
155
+ const pbk = yield JWK.asKey(plainMkReshareRequestCipher.pbk);
156
+ const mkSharedKey = yield this.keyGraph.getKey(userSharedKey.mkSharedKey.id);
157
+ const plainMkReshareResponseCipher = {
158
+ mkSharedKey: {
159
+ id: mkSharedKey.id,
160
+ jwk: mkSharedKey.jwk.toJSON(true),
161
+ },
162
+ };
163
+ // Wrap with sharedKey then again with Pbk
164
+ const mkReshareResponseCipher = yield this.encryptionService.encryptToString(pbk, yield this.encryptionService.encryptToString(sharedKey.jwk, plainMkReshareResponseCipher));
165
+ return new LrMutation({
166
+ mutation: RespondTpMkReshareMutation,
167
+ variables: {
168
+ input: {
169
+ tpId,
170
+ mkSharedKeyId: mkSharedKey.id,
171
+ mkReshareResponseCipher,
172
+ },
173
+ },
174
+ });
175
+ });
176
+ }
177
+ completeMkReshare(tpId) {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
180
+ const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
181
+ const prk = yield this.keyGraph.getKey(userSharedKey.mkPxk.id);
182
+ const plainMkReshareResponseCipher = yield this.encryptionService.decrypt(sharedKey, yield this.encryptionService.decrypt(prk, userSharedKey.mkReshareResponseCipher));
183
+ // Double check it's a valid key.
184
+ const mkSharedKey = {
185
+ id: plainMkReshareResponseCipher.mkSharedKey.id,
186
+ jwk: yield JWK.asKey(plainMkReshareResponseCipher.mkSharedKey.jwk),
187
+ };
188
+ const masterKey = this.keyService.currentMasterKey;
189
+ const mkWrappedMkSharedKey = yield this.encryptionService.encryptToString(masterKey.jwk, mkSharedKey.jwk.toJSON(true));
190
+ return new LrMutation({
191
+ mutation: CompleteTpMkReshareMutation,
192
+ variables: {
193
+ input: {
194
+ tpId,
195
+ masterKeyId: masterKey.id,
196
+ mkSharedKeyId: mkSharedKey.id,
197
+ mkWrappedMkSharedKey,
198
+ },
199
+ },
200
+ });
201
+ });
202
+ }
203
+ // ------------------------------------------------------------------------------------
204
+ // ------------------------------------------------------------------------------------
205
+ // Helpers
206
+ // ------------------------------------------------------------------------------------
207
+ // ------------------------------------------------------------------------------------
208
+ getTpCurrentUserSharedKey(tpId) {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ return (yield this.lrGraphQL.query({
211
+ query: TpCurrentUserSharedKeyQuery,
212
+ variables: {
213
+ id: tpId,
214
+ },
215
+ })).tp.currentUserSharedKey.userSharedKey;
216
+ });
217
+ }
218
+ };
219
+ TrustedPartyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TrustedPartyService_Factory() { return new TrustedPartyService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.KeyGraphService), i0.ɵɵinject(i2.ItemService), i0.ɵɵinject(i3.KeyService), i0.ɵɵinject(i4.KeyFactoryService), i0.ɵɵinject(i5.EncryptionService)); }, token: TrustedPartyService, providedIn: "root" });
220
+ TrustedPartyService.decorators = [
221
+ { type: Injectable, args: [{
222
+ providedIn: 'root',
223
+ },] }
224
+ ];
225
+ TrustedPartyService.ctorParameters = () => [
226
+ { type: NgZone },
227
+ { type: Injector },
228
+ { type: KeyGraphService },
229
+ { type: ItemService },
230
+ { type: KeyService },
231
+ { type: KeyFactoryService },
232
+ { type: EncryptionService }
233
+ ];
234
+ TrustedPartyService = __decorate([
235
+ RunOutsideAngular({
236
+ ngZoneName: 'ngZone',
237
+ })
238
+ ], TrustedPartyService);
239
+ export { TrustedPartyService };
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsbUJBQW1CLEdBQ3BCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7SUFTN0QsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLFNBQVM7SUFDaEQsWUFDVSxNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsUUFBeUIsRUFDekIsV0FBd0IsRUFDeEIsVUFBc0IsRUFDdEIsVUFBNkIsRUFDN0IsaUJBQW9DO1FBRTVDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVJSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUc5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBb0I7UUFDbkMsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsRUFBRSxFQUFFLElBQUk7aUJBQ1Q7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFSyxjQUFjLENBQUMsT0FBeUI7O1lBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO0tBQUE7SUFFSyxzQkFBc0IsQ0FBQyxPQUF5Qjs7WUFDcEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLGlDQUFNLE9BQU8sS0FBRSxXQUFXLEVBQUUsSUFBSSxJQUFHLENBQUM7UUFDbkUsQ0FBQztLQUFBO0lBRUssU0FBUyxDQUFDLE9BQXlCOztZQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0lBRUssaUJBQWlCLENBQUMsT0FBeUI7O1lBQy9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixpQ0FBTSxPQUFPLEtBQUUsV0FBVyxFQUFFLEtBQUssSUFBRyxDQUFDO1FBQ3BFLENBQUM7S0FBQTtJQUVhLGlCQUFpQixDQUFDLEVBQzlCLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxFQUNKLGFBQWEsRUFDYixVQUFVLEVBQ1YsV0FBVyxHQUdaOztZQUNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUN6RCxXQUFXO2dCQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUMxQyxDQUFDO1lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2pFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ3JFLENBQUM7WUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekUsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDbEUsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxFQUFFLEVBQUUsTUFBTTt3QkFDVixJQUFJO3dCQUNKLFVBQVU7d0JBQ1YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUNqQixhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUU7d0JBQzdCLFVBQVU7cUJBQ1g7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxnQkFBZ0IsQ0FBQyxPQUEyQjs7WUFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FBQTtJQUVLLHdCQUF3QixDQUFDLE9BQTJCOztZQUN4RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsaUNBQU0sT0FBTyxLQUFFLFdBQVcsRUFBRSxJQUFJLElBQUcsQ0FBQztRQUNyRSxDQUFDO0tBQUE7SUFFSyxXQUFXLENBQUMsT0FBMkI7O1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FBQyxPQUEyQjs7WUFDbkQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLGlDQUFNLE9BQU8sS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUM7UUFDdEUsQ0FBQztLQUFBO0lBRWEsbUJBQW1CLENBQUMsRUFDaEMsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEdBQ21DOztZQUM5QyxPQUFPLElBQUksVUFBVSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO2dCQUN0RSxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLEVBQUUsRUFBRSxNQUFNO3dCQUNWLElBQUk7cUJBQ0w7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyx3QkFBd0IsQ0FBQyxJQUFvQjs7WUFDakQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsSUFBSSxhQUFhLENBQUMsV0FBVyxFQUFFO2dCQUM3QixNQUFNLElBQUksbUJBQW1CLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUM3RDtZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2pELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDakUsU0FBUyxDQUFDLEdBQUcsRUFDYixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDO1lBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUN6RSxTQUFTLENBQUMsR0FBRyxFQUNiO2dCQUNFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFO2FBQ2xCLENBQ0YsQ0FBQztZQUVGLE9BQU8sTUFBTSxJQUFJLFVBQVUsQ0FBQztnQkFDMUIsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJO3dCQUNKLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNuQyxjQUFjO3dCQUNkLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDekIsc0JBQXNCO3FCQUN2QjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVLLGdCQUFnQixDQUFDLElBQW9COztZQUN6QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtnQkFDOUIsTUFBTSxJQUFJLG1CQUFtQixDQUMzQiwyREFBMkQsQ0FDNUQsQ0FBQzthQUNIO1lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUN0RSxTQUFTLEVBQ1QsYUFBYSxDQUFDLHNCQUFzQixDQUNyQyxDQUFDO1lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzVDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUM3QixDQUFDO1lBRUYsTUFBTSw0QkFBNEIsR0FBRztnQkFDbkMsV0FBVyxFQUFFO29CQUNYLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtvQkFDbEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDbEM7YUFDRixDQUFDO1lBRUYsMENBQTBDO1lBQzFDLE1BQU0sdUJBQXVCLEdBQzNCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDMUMsR0FBRyxFQUNILE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDMUMsU0FBUyxDQUFDLEdBQUcsRUFDYiw0QkFBNEIsQ0FDN0IsQ0FDRixDQUFDO1lBRUosT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJO3dCQUNKLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRTt3QkFDN0IsdUJBQXVCO3FCQUN4QjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVLLGlCQUFpQixDQUFDLElBQW9COztZQUMxQyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqRSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUN2RSxTQUFTLEVBQ1QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUNsQyxHQUFHLEVBQ0gsYUFBYSxDQUFDLHVCQUF1QixDQUN0QyxDQUNGLENBQUM7WUFFRixpQ0FBaUM7WUFDakMsTUFBTSxXQUFXLEdBQVE7Z0JBQ3ZCLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDL0MsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO2FBQ25FLENBQUM7WUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQ25ELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUN2RSxTQUFTLENBQUMsR0FBRyxFQUNiLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUM3QixDQUFDO1lBRUYsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJO3dCQUNKLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDekIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFO3dCQUM3QixvQkFBb0I7cUJBQ3JCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN2RixVQUFVO0lBQ1YsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN6RSx5QkFBeUIsQ0FBQyxJQUFvQjs7WUFDMUQsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxFQUFFLEVBQUUsSUFBSTtpQkFDVDthQUNGLENBQUMsQ0FDSCxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7UUFDMUMsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBNVBBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBOUI4QixNQUFNO1lBQWhCLFFBQVE7WUFPcEIsZUFBZTtZQUZmLFdBQVc7WUFHWCxVQUFVO1lBRlYsaUJBQWlCO1lBRmpCLGlCQUFpQjs7QUEyQmIsbUJBQW1CO0lBTi9CLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxtQkFBbUIsQ0F5UC9CO1NBelBZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vaXRlbS9pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtjQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBEZWxldGVUcE11dGF0aW9uLFxuICBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgUmVzcG9uZFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIFNoYXJlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFNoYXJlRmlsZU11dGF0aW9uLFxuICBVbnNoYXJlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVuc2hhcmVGaWxlTXV0YXRpb24sXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS5ncWwnO1xuaW1wb3J0IHsgVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5IH0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LmdxbC5wcml2YXRlJztcbmltcG9ydCB7IFNoYXJlSXRlbU9wdGlvbnMsIFVuc2hhcmVJdGVtT3B0aW9ucyB9IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS50eXBlcyc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVtU2VydmljZTogSXRlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZGVsZXRlVHAodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVUcE11dGF0aW9uKHRwSWQpKTtcbiAgfVxuXG4gIGRlbGV0ZVRwTXV0YXRpb24odHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRwTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZURpcmVjdG9yeShvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUl0ZW1NdXRhdGlvbih7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlKG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVJdGVtTXV0YXRpb24oeyAuLi5vcHRpb25zLCBpc0RpcmVjdG9yeTogZmFsc2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNoYXJlSXRlbU11dGF0aW9uKHtcbiAgICBpdGVtSWQsXG4gICAgaXRlbUtleUlkLFxuICAgIHRwSWQsXG4gICAgdHBTaGFyZWRLZXlJZCxcbiAgICBhY2Nlc3NSb2xlLFxuICAgIGlzRGlyZWN0b3J5LFxuICB9OiBTaGFyZUl0ZW1PcHRpb25zICYge1xuICAgIGlzRGlyZWN0b3J5OiBib29sZWFuO1xuICB9KSB7XG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZChpdGVtSWQpXG4gICAgICAgIDogdGhpcy5pdGVtU2VydmljZS5nZXRGaWxlS2V5SWQoaXRlbUlkKVxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBpbmdLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh0cFNoYXJlZEtleUlkLCAoKSA9PlxuICAgICAgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpLnRoZW4oKHJlcykgPT4gcmVzLnNoYXJlZEtleS5pZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkod3JhcHBpbmdLZXksIGl0ZW1LZXkuandrKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogaXNEaXJlY3RvcnkgPyBTaGFyZURpcmVjdG9yeU11dGF0aW9uIDogU2hhcmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgICAgICBrZXlJZDogaXRlbUtleS5pZCxcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVEaXJlY3Rvcnkob3B0aW9uczogVW5zaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbU11dGF0aW9uKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyB1bnNoYXJlRmlsZShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bnNoYXJlRmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9uczogVW5zaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMudW5zaGFyZUl0ZW1NdXRhdGlvbih7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdW5zaGFyZUl0ZW1NdXRhdGlvbih7XG4gICAgaXRlbUlkLFxuICAgIHRwSWQsXG4gICAgaXNEaXJlY3RvcnksXG4gIH06IFVuc2hhcmVJdGVtT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfSkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogaXNEaXJlY3RvcnkgPyBVbnNoYXJlRGlyZWN0b3J5TXV0YXRpb24gOiBVbnNoYXJlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgICB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3RNa1Jlc2hhcmVNdXRhdGlvbih0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBpZiAodXNlclNoYXJlZEtleS5ta1NoYXJlZEtleSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oJ1RQIGFscmVhZHkgaGFzIG1rU2hhcmVkS2V5Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZVBrY0tleSgpO1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgcHJrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgbWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgIHtcbiAgICAgICAgcGJrOiBwcmsudG9KU09OKCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICB0cElkLFxuICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgbWtQYms6IEpTT04uc3RyaW5naWZ5KHByay50b0pTT04oKSksXG4gICAgICAgICAgbWtXcmFwcGVkTWtQcmssXG4gICAgICAgICAgc2hhcmVkS2V5SWQ6IHNoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlc3BvbmRNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgaWYgKCF1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ05vIGFjY2VzcyB0byB0aGUgbWtTaGFyZWRLZXkgc28gY2Fubm90IHJlc2hhcmUgaXQgd2l0aCBUUCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtSZXNoYXJlUmVxdWVzdENpcGhlclxuICAgICk7XG4gICAgY29uc3QgcGJrID0gYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlci5wYmspO1xuICAgIGNvbnN0IG1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoXG4gICAgICB1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5LmlkXG4gICAgKTtcblxuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSB7XG4gICAgICBta1NoYXJlZEtleToge1xuICAgICAgICBpZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgIGp3azogbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIFdyYXAgd2l0aCBzaGFyZWRLZXkgdGhlbiBhZ2FpbiB3aXRoIFBia1xuICAgIGNvbnN0IG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyID1cbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBwYmssXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICAgIHNoYXJlZEtleS5qd2ssXG4gICAgICAgICAgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWtTaGFyZWRLZXlJZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkubWtQeGsuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBzaGFyZWRLZXksXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIHByayxcbiAgICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBEb3VibGUgY2hlY2sgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCBta1NoYXJlZEtleTogS2V5ID0ge1xuICAgICAgaWQ6IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuaWQsXG4gICAgICBqd2s6IGF3YWl0IEpXSy5hc0tleShwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyLm1rU2hhcmVkS2V5Lmp3ayksXG4gICAgfTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50TWFzdGVyS2V5O1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1dyYXBwZWRNa1NoYXJlZEtleSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIGFzeW5jIGdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwucXVlcnkoe1xuICAgICAgICBxdWVyeTogVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS50cC5jdXJyZW50VXNlclNoYXJlZEtleS51c2VyU2hhcmVkS2V5O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc1JvbGVDaG9pY2UsIExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcblxuLy8gSWYgeHh4S2V5SWQgbm90IGdpdmVuLCB0aGVuIGZldGNoIHRoZW0gd2l0aCBBUEkgY2FsbHNcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVJdGVtT3B0aW9ucyB7XG4gIGl0ZW1JZDogTHJSZWxheUlkSW5wdXQ7XG4gIGl0ZW1LZXlJZD86IExyUmVsYXlJZElucHV0O1xuICB0cElkOiBMclJlbGF5SWRJbnB1dDtcbiAgdHBTaGFyZWRLZXlJZD86IExyUmVsYXlJZElucHV0O1xuICBhY2Nlc3NSb2xlOiBBY2Nlc3NSb2xlQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuc2hhcmVJdGVtT3B0aW9ucyB7XG4gIGl0ZW1JZDogc3RyaW5nO1xuICB0cElkOiBzdHJpbmc7XG59XG4iXX0=
@@ -5,16 +5,18 @@ export * from './lib/api/lr-apollo.service';
5
5
  export * from './lib/api/lr-graphql';
6
6
  export * from './lib/api/query-processor';
7
7
  export * from './lib/api/types';
8
- export * from './lib/auth2/auth.config';
9
- export * from './lib/auth2/auth2.service';
8
+ export * from './lib/auth/auth.config';
9
+ export * from './lib/auth/auth.service';
10
+ export * from './lib/auth/auth.types';
10
11
  export * from './lib/contact-card/contact-card2.service';
11
12
  export * from './lib/file-upload/file-upload.service';
12
13
  export * from './lib/idle/idle.service';
13
14
  export * from './lib/idle/idle.types';
14
- export * from './lib/item2/item2.service';
15
- export * from './lib/item2/item2.types';
16
- export * from './lib/key-exchange/key-exchange2.gql';
17
- export * from './lib/key-exchange/key-exchange2.service';
15
+ export * from './lib/item/item.gql';
16
+ export * from './lib/item/item.service';
17
+ export * from './lib/item/item.types';
18
+ export * from './lib/key-exchange/key-exchange.gql';
19
+ export * from './lib/key-exchange/key-exchange.service';
18
20
  export * from './lib/lbop/lbop.service';
19
21
  export * from './lib/life-ready.config';
20
22
  export * from './lib/life-ready.module';
@@ -22,26 +24,31 @@ export * from './lib/lock/lock.service';
22
24
  export * from './lib/notification/notification.service';
23
25
  export * from './lib/password/password.service';
24
26
  export * from './lib/persist/persist.service';
25
- export * from './lib/plan2/plan2.service';
26
- export * from './lib/plan2/plan2.types';
27
+ export * from './lib/plan/plan.service';
28
+ export * from './lib/plan/plan.types';
27
29
  export * from './lib/profile/profile-details.service';
28
30
  export * from './lib/profile/profile.gql';
29
31
  export * from './lib/profile/profile.service';
30
32
  export * from './lib/profile/profile.types';
31
33
  export * from './lib/register/register.service';
34
+ export * from './lib/register/register.types';
32
35
  export * from './lib/reminder/reminder.service';
33
36
  export * from './lib/reminder/reminder.types';
37
+ export * from './lib/scenario/scenario.gql';
34
38
  export * from './lib/scenario/scenario.service';
35
39
  export * from './lib/scenario/scenario.types';
36
40
  export * from './lib/server-config/server-config.service';
41
+ export * from './lib/shared-contact-card/shared-contact-card2.gql';
37
42
  export * from './lib/shared-contact-card/shared-contact-card2.service';
38
43
  export * from './lib/time/time.service';
39
44
  export * from './lib/tp-assembly/tp-assembly.types';
40
45
  export * from './lib/tp-password-reset/tp-password-reset-request.service';
41
46
  export * from './lib/tp-password-reset/tp-password-reset-user.service';
47
+ export * from './lib/tp-password-reset/tp-password-reset.gql';
42
48
  export * from './lib/tp-password-reset/tp-password-reset.service';
43
49
  export * from './lib/tp-password-reset/tp-password-reset.types';
44
- export * from './lib/trusted-party/trusted-party2.service';
50
+ export * from './lib/trusted-party/trusted-party.service';
51
+ export * from './lib/trusted-party/trusted-party.types';
45
52
  export * from './lib/two-factor/two-factor.service';
46
53
  export * from './lib/user/user.gql';
47
54
  export * from './lib/user/user.service';
@@ -50,6 +57,4 @@ export * from './lib/web-crypto/web-crypto.service';
50
57
  export { gqlTyped } from './lib/_common/ast';
51
58
  export * from './lib/_common/exceptions';
52
59
  export * from './lib/_common/queries.gql';
53
- export { AuthTypes };
54
- import * as AuthTypes from './lib/auth2/auth2.types';
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ3JCLE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGxyLWF1dGhcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2xyLWdyYXBocWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3F1ZXJ5LXByb2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aDIvYXV0aC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aDIvYXV0aDIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250YWN0LWNhcmQvY29udGFjdC1jYXJkMi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWRsZS9pZGxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWRsZS9pZGxlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2l0ZW0yL2l0ZW0yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaXRlbTIvaXRlbTIudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2V5LWV4Y2hhbmdlL2tleS1leGNoYW5nZTIuZ3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2UyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGJvcC9sYm9wLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlmZS1yZWFkeS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlmZS1yZWFkeS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9jay9sb2NrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bhc3N3b3JkL3Bhc3N3b3JkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdC9wZXJzaXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGxhbjIvcGxhbjIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGFuMi9wbGFuMi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9maWxlL3Byb2ZpbGUtZGV0YWlscy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2ZpbGUvcHJvZmlsZS5ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZmlsZS9wcm9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZ2lzdGVyL3JlZ2lzdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVtaW5kZXIvcmVtaW5kZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZW1pbmRlci9yZW1pbmRlci50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zY2VuYXJpby9zY2VuYXJpby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NjZW5hcmlvL3NjZW5hcmlvLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZlci1jb25maWcvc2VydmVyLWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZDIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aW1lL3RpbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cC1hc3NlbWJseS90cC1hc3NlbWJseS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC1yZXF1ZXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQtdXNlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5Mi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R3by1mYWN0b3IvdHdvLWZhY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VzZXIvdXNlci5ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci91c2VyLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dlYi1jcnlwdG8vd2ViLWNyeXB0by5zZXJ2aWNlJztcbmV4cG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi9saWIvX2NvbW1vbi9hc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9leGNlcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vcXVlcmllcy5ncWwnO1xuZXhwb3J0IHsgQXV0aFR5cGVzIH07XG5pbXBvcnQgKiBhcyBBdXRoVHlwZXMgZnJvbSAnLi9saWIvYXV0aDIvYXV0aDIudHlwZXMnO1xuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbHItYXV0aFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvbHItZ3JhcGhxbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvcXVlcnktcHJvY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2F1dGguY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvYXV0aC50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250YWN0LWNhcmQvY29udGFjdC1jYXJkMi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWRsZS9pZGxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWRsZS9pZGxlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2l0ZW0vaXRlbS5ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaXRlbS9pdGVtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaXRlbS9pdGVtLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2UuZ3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYm9wL2xib3Auc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saWZlLXJlYWR5LmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saWZlLXJlYWR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2NrL2xvY2suc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFzc3dvcmQvcGFzc3dvcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wZXJzaXN0L3BlcnNpc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGFuL3BsYW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGFuL3BsYW4udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZmlsZS9wcm9maWxlLWRldGFpbHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9maWxlL3Byb2ZpbGUuZ3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2ZpbGUvcHJvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWdpc3Rlci9yZWdpc3Rlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZ2lzdGVyL3JlZ2lzdGVyLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlbWluZGVyL3JlbWluZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVtaW5kZXIvcmVtaW5kZXIudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2NlbmFyaW8vc2NlbmFyaW8uZ3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NjZW5hcmlvL3NjZW5hcmlvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2NlbmFyaW8vc2NlbmFyaW8udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmVyLWNvbmZpZy9zZXJ2ZXItY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLWNvbnRhY3QtY2FyZC9zaGFyZWQtY29udGFjdC1jYXJkMi5ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLWNvbnRhY3QtY2FyZC9zaGFyZWQtY29udGFjdC1jYXJkMi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RpbWUvdGltZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RwLWFzc2VtYmx5L3RwLWFzc2VtYmx5LnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LXJlcXVlc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC11c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuZ3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5LnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R3by1mYWN0b3IvdHdvLWZhY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VzZXIvdXNlci5ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci91c2VyLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dlYi1jcnlwdG8vd2ViLWNyeXB0by5zZXJ2aWNlJztcbmV4cG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi9saWIvX2NvbW1vbi9hc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvX2NvbW1vbi9leGNlcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL19jb21tb24vcXVlcmllcy5ncWwnO1xuIl19