@lifeready/core 6.0.5 → 6.1.1

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 (97) hide show
  1. package/bundles/lifeready-core.umd.js +3474 -7307
  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/auth2/auth.config.js +57 -0
  6. package/esm2015/lib/auth2/auth2.gql.private.js +8 -1
  7. package/esm2015/lib/auth2/auth2.service.js +3 -4
  8. package/esm2015/lib/auth2/auth2.types.js +1 -1
  9. package/esm2015/lib/file-upload/file-upload.service.js +4 -4
  10. package/esm2015/lib/idle/idle.service.js +1 -2
  11. package/esm2015/lib/item2/item2.service.js +15 -45
  12. package/esm2015/lib/key/key-meta.service.js +16 -8
  13. package/esm2015/lib/key-exchange/key-exchange2.service.js +6 -25
  14. package/esm2015/lib/life-ready.module.js +2 -9
  15. package/esm2015/lib/password/password.service.js +1 -1
  16. package/esm2015/lib/profile/profile-details.service.js +120 -75
  17. package/esm2015/lib/profile/profile.gql.js +134 -1
  18. package/esm2015/lib/profile/profile.service.js +8 -5
  19. package/esm2015/lib/profile/profile.types.js +14 -3
  20. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +2 -2
  21. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -1
  22. package/esm2015/lib/trusted-party/trusted-party2.service.js +3 -7
  23. package/esm2015/lifeready-core.js +7 -9
  24. package/esm2015/public-api.js +2 -20
  25. package/fesm2015/lifeready-core.js +3206 -6520
  26. package/fesm2015/lifeready-core.js.map +1 -1
  27. package/lib/auth2/auth2.gql.private.d.ts +15 -2
  28. package/lib/auth2/auth2.service.d.ts +1 -1
  29. package/lib/auth2/auth2.types.d.ts +19 -2
  30. package/lib/file-upload/file-upload.service.d.ts +2 -2
  31. package/lib/item2/item2.service.d.ts +11 -74
  32. package/lib/key/key-meta.service.d.ts +8 -1
  33. package/lib/key-exchange/key-exchange2.service.d.ts +5 -66
  34. package/lib/password/password.service.d.ts +1 -1
  35. package/lib/profile/profile-details.service.d.ts +10 -11
  36. package/lib/profile/profile.gql.d.ts +12 -0
  37. package/lib/profile/profile.service.d.ts +1 -3
  38. package/lib/profile/profile.types.d.ts +31 -4
  39. package/lib/shared-contact-card/shared-contact-card.service.d.ts +1 -2
  40. package/lib/tp-password-reset/tp-password-reset.types.d.ts +3 -3
  41. package/lib/trusted-party/trusted-party2.service.d.ts +2 -7
  42. package/lifeready-core.d.ts +6 -8
  43. package/lifeready-core.metadata.json +1 -1
  44. package/package.json +1 -1
  45. package/public-api.d.ts +1 -19
  46. package/esm2015/lib/auth/auth.config.js +0 -57
  47. package/esm2015/lib/auth/auth.gql.js +0 -16
  48. package/esm2015/lib/auth/auth.types.js +0 -18
  49. package/esm2015/lib/auth/life-ready-auth.service.js +0 -568
  50. package/esm2015/lib/category/category-meta.service.js +0 -99
  51. package/esm2015/lib/category/category.gql.js +0 -385
  52. package/esm2015/lib/category/category.service.js +0 -361
  53. package/esm2015/lib/category/category.types.js +0 -29
  54. package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -188
  55. package/esm2015/lib/key-exchange/key-exchange.service.js +0 -436
  56. package/esm2015/lib/key-exchange/key-exchange.types.js +0 -7
  57. package/esm2015/lib/message/message.gql.js +0 -32
  58. package/esm2015/lib/message/message.service.js +0 -118
  59. package/esm2015/lib/message/message.types.js +0 -2
  60. package/esm2015/lib/plan/plan.gql.js +0 -123
  61. package/esm2015/lib/plan/plan.service.js +0 -150
  62. package/esm2015/lib/plan/plan.types.js +0 -11
  63. package/esm2015/lib/record/record-attachment.service.js +0 -102
  64. package/esm2015/lib/record/record.gql.js +0 -182
  65. package/esm2015/lib/record/record.service.js +0 -194
  66. package/esm2015/lib/record/record.types.js +0 -15
  67. package/esm2015/lib/record-type/record-type.service.js +0 -75
  68. package/esm2015/lib/record-type/record-type.types.js +0 -28
  69. package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -148
  70. package/esm2015/lib/trusted-party/trusted-party.service.js +0 -308
  71. package/esm2015/lib/trusted-party/trusted-party.types.js +0 -41
  72. package/lib/auth/auth.gql.d.ts +0 -12
  73. package/lib/auth/auth.types.d.ts +0 -52
  74. package/lib/auth/life-ready-auth.service.d.ts +0 -73
  75. package/lib/category/category-meta.service.d.ts +0 -23
  76. package/lib/category/category.gql.d.ts +0 -44
  77. package/lib/category/category.service.d.ts +0 -66
  78. package/lib/category/category.types.d.ts +0 -75
  79. package/lib/key-exchange/key-exchange.gql.d.ts +0 -9
  80. package/lib/key-exchange/key-exchange.service.d.ts +0 -37
  81. package/lib/key-exchange/key-exchange.types.d.ts +0 -188
  82. package/lib/message/message.gql.d.ts +0 -13
  83. package/lib/message/message.service.d.ts +0 -36
  84. package/lib/message/message.types.d.ts +0 -12
  85. package/lib/plan/plan.gql.d.ts +0 -11
  86. package/lib/plan/plan.service.d.ts +0 -34
  87. package/lib/plan/plan.types.d.ts +0 -32
  88. package/lib/record/record-attachment.service.d.ts +0 -16
  89. package/lib/record/record.gql.d.ts +0 -14
  90. package/lib/record/record.service.d.ts +0 -25
  91. package/lib/record/record.types.d.ts +0 -56
  92. package/lib/record-type/record-type.service.d.ts +0 -11
  93. package/lib/record-type/record-type.types.d.ts +0 -50
  94. package/lib/trusted-party/trusted-party.gql.d.ts +0 -9
  95. package/lib/trusted-party/trusted-party.service.d.ts +0 -43
  96. package/lib/trusted-party/trusted-party.types.d.ts +0 -101
  97. /package/lib/{auth → auth2}/auth.config.d.ts +0 -0
@@ -1,99 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { CategoryService } from './category.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./category.service";
8
- export class LoadedCategoryTree {
9
- }
10
- export class CategoryMetaService {
11
- constructor(http, categoryService) {
12
- this.http = http;
13
- this.categoryService = categoryService;
14
- }
15
- getCoreCategories() {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- if (!this.categories) {
18
- this.categories = yield this.http
19
- .get('/assets/meta/categories.json')
20
- .toPromise();
21
- }
22
- return Promise.resolve(this.categories);
23
- });
24
- }
25
- loadCategories(categoryTrees, selectedCategoryId, trustedPartyId) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const rootCategories = trustedPartyId
28
- ? (yield this.categoryService.getTrustedPartyCategories(trustedPartyId))
29
- .categories
30
- : yield this.categoryService.getCategories();
31
- const selectedCategory = selectedCategoryId
32
- ? yield this.categoryService.getCategory(selectedCategoryId)
33
- : null;
34
- const categoryPromises = categoryTrees.map((x) => __awaiter(this, void 0, void 0, function* () {
35
- return ({
36
- categoryTree: x,
37
- category: yield this.loadCategory([...x], rootCategories, selectedCategory),
38
- });
39
- }));
40
- const loadedCategories = yield Promise.all(categoryPromises);
41
- const loadedCategoryTree = {
42
- categories: [],
43
- missingCategories: [],
44
- };
45
- loadedCategories.forEach((x) => x.category
46
- ? loadedCategoryTree.categories.push(x.category)
47
- : loadedCategoryTree.missingCategories.push(x.categoryTree));
48
- return loadedCategoryTree;
49
- });
50
- }
51
- loadCategoriesForRole(categories) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const rootCategories = yield this.categoryService.getCategories();
54
- return yield Promise.all(categories.map((x) => __awaiter(this, void 0, void 0, function* () {
55
- return ({
56
- category: yield this.loadCategory([...x.category], rootCategories),
57
- accessLevel: x.accessLevel,
58
- });
59
- })));
60
- });
61
- }
62
- loadCategory(categoryTree, categories, selectedCategory) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const name = categoryTree.shift();
65
- const currentCategory = categories.find((x) => x.code === name && !x.isCustom);
66
- if (currentCategory) {
67
- if (categoryTree.length) {
68
- const { subCategories } = yield this.categoryService.getCategory(currentCategory.id);
69
- return this.loadCategory(categoryTree, subCategories, selectedCategory);
70
- }
71
- else {
72
- const { category } = yield this.categoryService.getCategory(currentCategory.id);
73
- if (selectedCategory &&
74
- selectedCategory.category.parents.some((x) => x.id === category.id)) {
75
- return selectedCategory.category;
76
- }
77
- return category;
78
- }
79
- }
80
- else if (categoryTree.length) {
81
- return this.loadCategory(categoryTree, categories, selectedCategory);
82
- }
83
- else {
84
- return null;
85
- }
86
- });
87
- }
88
- }
89
- CategoryMetaService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CategoryMetaService_Factory() { return new CategoryMetaService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.CategoryService)); }, token: CategoryMetaService, providedIn: "root" });
90
- CategoryMetaService.decorators = [
91
- { type: Injectable, args: [{
92
- providedIn: 'root',
93
- },] }
94
- ];
95
- CategoryMetaService.ctorParameters = () => [
96
- { type: HttpClient },
97
- { type: CategoryService }
98
- ];
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NhdGVnb3J5L2NhdGVnb3J5LW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBU3JELE1BQU0sT0FBTyxrQkFBa0I7Q0FHOUI7QUFLRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQ1UsSUFBZ0IsRUFDaEIsZUFBZ0M7UUFEaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVTLGlCQUFpQjs7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSTtxQkFDOUIsR0FBRyxDQUFvQiw4QkFBOEIsQ0FBQztxQkFDdEQsU0FBUyxFQUFFLENBQUM7YUFDaEI7WUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7S0FBQTtJQUVLLGNBQWMsQ0FDbEIsYUFBeUIsRUFDekIsa0JBQTJCLEVBQzNCLGNBQXVCOztZQUV2QixNQUFNLGNBQWMsR0FBRyxjQUFjO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQ25FLFVBQVU7Z0JBQ2YsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUUvQyxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQjtnQkFDekMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVELENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFVCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRTtnQkFBQyxPQUFBLENBQUM7b0JBQ3ZELFlBQVksRUFBRSxDQUFDO29CQUNmLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQy9CLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDTixjQUFjLEVBQ2QsZ0JBQWdCLENBQ2pCO2lCQUNGLENBQUMsQ0FBQTtjQUFBLENBQUMsQ0FBQztZQUVKLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFFN0QsTUFBTSxrQkFBa0IsR0FBdUI7Z0JBQzdDLFVBQVUsRUFBRSxFQUFFO2dCQUNkLGlCQUFpQixFQUFFLEVBQUU7YUFDdEIsQ0FBQztZQUVGLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzdCLENBQUMsQ0FBQyxRQUFRO2dCQUNSLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUM5RCxDQUFDO1lBRUYsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO0tBQUE7SUFFSyxxQkFBcUIsQ0FDekIsVUFBOEQ7O1lBRTlELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUVsRSxPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFPLENBQUMsRUFBRSxFQUFFO2dCQUFDLE9BQUEsQ0FBQztvQkFDM0IsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsQ0FBQztvQkFDbEUsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2lCQUMzQixDQUFDLENBQUE7Y0FBQSxDQUFDLENBQ0osQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVhLFlBQVksQ0FDeEIsWUFBc0IsRUFDdEIsVUFBc0IsRUFDdEIsZ0JBQWdDOztZQUVoQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFbEMsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDdEMsQ0FBQztZQUVGLElBQUksZUFBZSxFQUFFO2dCQUNuQixJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUM5RCxlQUFlLENBQUMsRUFBRSxDQUNuQixDQUFDO29CQUNGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7aUJBQ3pFO3FCQUFNO29CQUNMLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUN6RCxlQUFlLENBQUMsRUFBRSxDQUNuQixDQUFDO29CQUVGLElBQ0UsZ0JBQWdCO3dCQUNoQixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQ25FO3dCQUNBLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDO3FCQUNsQztvQkFDRCxPQUFPLFFBQVEsQ0FBQztpQkFDakI7YUFDRjtpQkFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTs7OztZQTNHRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQWxCUSxVQUFVO1lBRVYsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWNjZXNzTGV2ZWwsXG4gIENhdGVnb3J5LFxuICBDdXJyZW50Q2F0ZWdvcnksXG4gIERlZmF1bHRDYXRlZ29yeSxcbiAgVmF1bHRDYXRlZ29yeSxcbn0gZnJvbSAnLi9jYXRlZ29yeS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBMb2FkZWRDYXRlZ29yeVRyZWUge1xuICBjYXRlZ29yaWVzOiBDdXJyZW50Q2F0ZWdvcnlbXTtcbiAgbWlzc2luZ0NhdGVnb3JpZXM6IHN0cmluZ1tdW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeU1ldGFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYXRlZ29yaWVzOiBEZWZhdWx0Q2F0ZWdvcnlbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldENvcmVDYXRlZ29yaWVzKCk6IFByb21pc2U8RGVmYXVsdENhdGVnb3J5W10+IHtcbiAgICBpZiAoIXRoaXMuY2F0ZWdvcmllcykge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8RGVmYXVsdENhdGVnb3J5W10+KCcvYXNzZXRzL21ldGEvY2F0ZWdvcmllcy5qc29uJylcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY2F0ZWdvcmllcyk7XG4gIH1cblxuICBhc3luYyBsb2FkQ2F0ZWdvcmllcyhcbiAgICBjYXRlZ29yeVRyZWVzOiBzdHJpbmdbXVtdLFxuICAgIHNlbGVjdGVkQ2F0ZWdvcnlJZD86IHN0cmluZyxcbiAgICB0cnVzdGVkUGFydHlJZD86IHN0cmluZ1xuICApOiBQcm9taXNlPExvYWRlZENhdGVnb3J5VHJlZT4ge1xuICAgIGNvbnN0IHJvb3RDYXRlZ29yaWVzID0gdHJ1c3RlZFBhcnR5SWRcbiAgICAgID8gKGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXModHJ1c3RlZFBhcnR5SWQpKVxuICAgICAgICAgIC5jYXRlZ29yaWVzXG4gICAgICA6IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkQ2F0ZWdvcnkgPSBzZWxlY3RlZENhdGVnb3J5SWRcbiAgICAgID8gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnkoc2VsZWN0ZWRDYXRlZ29yeUlkKVxuICAgICAgOiBudWxsO1xuXG4gICAgY29uc3QgY2F0ZWdvcnlQcm9taXNlcyA9IGNhdGVnb3J5VHJlZXMubWFwKGFzeW5jICh4KSA9PiAoe1xuICAgICAgY2F0ZWdvcnlUcmVlOiB4LFxuICAgICAgY2F0ZWdvcnk6IGF3YWl0IHRoaXMubG9hZENhdGVnb3J5KFxuICAgICAgICBbLi4ueF0sXG4gICAgICAgIHJvb3RDYXRlZ29yaWVzLFxuICAgICAgICBzZWxlY3RlZENhdGVnb3J5XG4gICAgICApLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGxvYWRlZENhdGVnb3JpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChjYXRlZ29yeVByb21pc2VzKTtcblxuICAgIGNvbnN0IGxvYWRlZENhdGVnb3J5VHJlZTogTG9hZGVkQ2F0ZWdvcnlUcmVlID0ge1xuICAgICAgY2F0ZWdvcmllczogW10sXG4gICAgICBtaXNzaW5nQ2F0ZWdvcmllczogW10sXG4gICAgfTtcblxuICAgIGxvYWRlZENhdGVnb3JpZXMuZm9yRWFjaCgoeCkgPT5cbiAgICAgIHguY2F0ZWdvcnlcbiAgICAgICAgPyBsb2FkZWRDYXRlZ29yeVRyZWUuY2F0ZWdvcmllcy5wdXNoKHguY2F0ZWdvcnkpXG4gICAgICAgIDogbG9hZGVkQ2F0ZWdvcnlUcmVlLm1pc3NpbmdDYXRlZ29yaWVzLnB1c2goeC5jYXRlZ29yeVRyZWUpXG4gICAgKTtcblxuICAgIHJldHVybiBsb2FkZWRDYXRlZ29yeVRyZWU7XG4gIH1cblxuICBhc3luYyBsb2FkQ2F0ZWdvcmllc0ZvclJvbGUoXG4gICAgY2F0ZWdvcmllczogeyBjYXRlZ29yeTogc3RyaW5nW107IGFjY2Vzc0xldmVsOiBBY2Nlc3NMZXZlbCB9W11cbiAgKTogUHJvbWlzZTx7IGNhdGVnb3J5OiBDdXJyZW50Q2F0ZWdvcnk7IGFjY2Vzc0xldmVsOiBBY2Nlc3NMZXZlbCB9W10+IHtcbiAgICBjb25zdCByb290Q2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcblxuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNhdGVnb3JpZXMubWFwKGFzeW5jICh4KSA9PiAoe1xuICAgICAgICBjYXRlZ29yeTogYXdhaXQgdGhpcy5sb2FkQ2F0ZWdvcnkoWy4uLnguY2F0ZWdvcnldLCByb290Q2F0ZWdvcmllcyksXG4gICAgICAgIGFjY2Vzc0xldmVsOiB4LmFjY2Vzc0xldmVsLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZENhdGVnb3J5KFxuICAgIGNhdGVnb3J5VHJlZTogc3RyaW5nW10sXG4gICAgY2F0ZWdvcmllczogQ2F0ZWdvcnlbXSxcbiAgICBzZWxlY3RlZENhdGVnb3J5PzogVmF1bHRDYXRlZ29yeVxuICApOiBQcm9taXNlPEN1cnJlbnRDYXRlZ29yeT4ge1xuICAgIGNvbnN0IG5hbWUgPSBjYXRlZ29yeVRyZWUuc2hpZnQoKTtcblxuICAgIGNvbnN0IGN1cnJlbnRDYXRlZ29yeSA9IGNhdGVnb3JpZXMuZmluZChcbiAgICAgICh4KSA9PiB4LmNvZGUgPT09IG5hbWUgJiYgIXguaXNDdXN0b21cbiAgICApO1xuXG4gICAgaWYgKGN1cnJlbnRDYXRlZ29yeSkge1xuICAgICAgaWYgKGNhdGVnb3J5VHJlZS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgeyBzdWJDYXRlZ29yaWVzIH0gPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShcbiAgICAgICAgICBjdXJyZW50Q2F0ZWdvcnkuaWRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZENhdGVnb3J5KGNhdGVnb3J5VHJlZSwgc3ViQ2F0ZWdvcmllcywgc2VsZWN0ZWRDYXRlZ29yeSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5IH0gPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShcbiAgICAgICAgICBjdXJyZW50Q2F0ZWdvcnkuaWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeSAmJlxuICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnkucGFyZW50cy5zb21lKCh4KSA9PiB4LmlkID09PSBjYXRlZ29yeS5pZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhdGVnb3J5O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2F0ZWdvcnlUcmVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZENhdGVnb3J5KGNhdGVnb3J5VHJlZSwgY2F0ZWdvcmllcywgc2VsZWN0ZWRDYXRlZ29yeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,385 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import gql from 'graphql-tag';
3
- import { KeyGraphFragment } from '../_common/queries.gql';
4
- export const DEFAULT_BREADCRUMB_DEPTH = 5;
5
- export const DEFAULT_DESCENDANTS_DEPTH = 5;
6
- export var DirectoryType;
7
- (function (DirectoryType) {
8
- DirectoryType["Vault"] = "vault";
9
- DirectoryType["Category"] = "category";
10
- DirectoryType["Record"] = "record";
11
- })(DirectoryType || (DirectoryType = {}));
12
- export const DefaultVaultFilter = JSON.stringify({
13
- filter: [
14
- {
15
- contains: {
16
- directoryType: DirectoryType.Vault,
17
- default: true,
18
- },
19
- },
20
- ],
21
- });
22
- export const CategoryFilter = JSON.stringify({
23
- filter: [
24
- {
25
- contains: {
26
- directoryType: DirectoryType.Category,
27
- },
28
- },
29
- ],
30
- });
31
- export const RecordFilter = JSON.stringify({
32
- filter: [
33
- {
34
- contains: {
35
- directoryType: DirectoryType.Record,
36
- },
37
- },
38
- ],
39
- });
40
- const descendantDirectories = `
41
- descendantDirectories(depth: ${DEFAULT_DESCENDANTS_DEPTH}, plainMeta: $categoryFilter, archived: false) {
42
- recordsCount: directoriesCount(plainMeta: $recordFilter, archived: false)
43
- }
44
- `;
45
- export const CategoryFields = `
46
- id
47
- keyId
48
- archived
49
- plainMeta
50
- cipherMeta
51
- ${descendantDirectories}
52
- `;
53
- export const VaultFields = `
54
- id
55
- keyId
56
- plainMeta
57
- cipherMeta
58
- `;
59
- export const GetRootDirectoryIdsQuery = gql `
60
- query GetRootDirectoryIdsQuery($archived: Boolean) {
61
- rootDirectories(archived: $archived) {
62
- edges {
63
- node {
64
- id
65
- }
66
- }
67
- }
68
- }
69
- `;
70
- export const GetCategoriesQuery = gql `
71
- query GetCategoriesQuery($vaultDirectoryId: LrRelayIdInput!, $categoryFilter: LrJSONFilter!, $recordFilter: LrJSONFilter!, $archived: Boolean)
72
- {
73
- directory(id: $vaultDirectoryId) {
74
- childDirectoryLinks(plainMeta: $categoryFilter, orderBy: "created", archived: $archived) {
75
- edges {
76
- node {
77
- childDirectory {
78
- ${CategoryFields}
79
- }
80
- }
81
- }
82
- }
83
- }
84
- keyGraph {
85
- ...KeyGraphFragment
86
- }
87
- }
88
- ${KeyGraphFragment}
89
- `;
90
- export const GetVaultsQuery = gql `
91
- query GetVaults($plainMetaFilter: LrJSONFilter!, $cachedKeyIds: [LrRelayIdInput!])
92
- {
93
- list: rootDirectories(plainMeta: $plainMetaFilter, orderBy: "created") {
94
- edges {
95
- node {
96
- ${VaultFields}
97
- }
98
- }
99
- }
100
- keyGraph(cachedKeyIds: $cachedKeyIds) {
101
- ...KeyGraphFragment
102
- }
103
- }
104
- ${KeyGraphFragment}
105
- `;
106
- export const GetTrustedPartyCategoriesQuery = gql `
107
- query GetTrustedPartyCategoriesQuery($trustedPartyId: LrRelayIdInput!, $categoryFilter: LrJSONFilter!, $recordFilter: LrJSONFilter!, $contentFilter: LrJSONFilter, $cachedKeyIds: [LrRelayIdInput!])
108
- {
109
- tp(id: $trustedPartyId) {
110
- theirItems {
111
- list: directories(plainMeta: $categoryFilter, orderBy: "created") {
112
- edges {
113
- node {
114
- ${CategoryFields}
115
- }
116
- }
117
- }
118
- records: directories(plainMeta: $recordFilter, orderBy: "created") {
119
- edges {
120
- node {
121
- id
122
- keyId
123
- archived
124
- plainMeta
125
- cipherMeta
126
- created
127
- modified
128
- content: childFileLinks(plainMeta: $contentFilter) {
129
- edges {
130
- node {
131
- childFile {
132
- id
133
- archived
134
- currentVersion {
135
- state {
136
- keyId
137
- plainMeta
138
- cipherMeta
139
- created
140
- modified
141
- }
142
- }
143
- }
144
- }
145
- }
146
- }
147
- }
148
- }
149
- }
150
- }
151
- }
152
- keyGraph(cachedKeyIds: $cachedKeyIds) {
153
- ...KeyGraphFragment
154
- }
155
- }
156
- ${KeyGraphFragment}
157
- `;
158
- export const GetMySharedCategoriesQuery = gql `
159
- query GetMySharedCategoriesQuery($trustedPartyId: LrRelayIdInput!, $categoryFilter: LrJSONFilter!, $recordFilter: LrJSONFilter!, $contentFilter: LrJSONFilter, $cachedKeyIds: [LrRelayIdInput!])
160
- {
161
- tp(id: $trustedPartyId) {
162
- myItems {
163
- list: directories(plainMeta: $categoryFilter, orderBy: "created") {
164
- edges {
165
- node {
166
- ${CategoryFields}
167
- }
168
- }
169
- }
170
- records: directories(plainMeta: $recordFilter, orderBy: "created") {
171
- edges {
172
- node {
173
- id
174
- keyId
175
- archived
176
- plainMeta
177
- cipherMeta
178
- created
179
- modified
180
- content: childFileLinks(plainMeta: $contentFilter) {
181
- edges {
182
- node {
183
- childFile {
184
- id
185
- archived
186
- currentVersion {
187
- state {
188
- keyId
189
- plainMeta
190
- cipherMeta
191
- created
192
- modified
193
- }
194
- }
195
- }
196
- }
197
- }
198
- }
199
- }
200
- }
201
- }
202
- }
203
- }
204
- keyGraph(cachedKeyIds: $cachedKeyIds) {
205
- ...KeyGraphFragment
206
- }
207
- }
208
- ${KeyGraphFragment}
209
- `;
210
- export const parentCategoriesField = (depth = DEFAULT_BREADCRUMB_DEPTH) => {
211
- if (!depth) {
212
- return '';
213
- }
214
- return `
215
- parentCategories: parentDirectoryLinks(plainMeta: $categoryFilter) {
216
- edges {
217
- node {
218
- parentDirectory {
219
- id
220
- keyId
221
- archived
222
- plainMeta
223
- cipherMeta
224
- ${parentCategoriesField(depth - 1)}
225
- }
226
- }
227
- }
228
- }
229
- `;
230
- };
231
- export const GetCategoryQuery = (depth = DEFAULT_BREADCRUMB_DEPTH) => gql `
232
- query GetCategory(
233
- $id: LrRelayIdInput!,
234
- $categoryFilter: LrJSONFilter!,
235
- $recordFilter: LrJSONFilter!,
236
- $contentFilter: LrJSONFilter,
237
- $cachedKeyIds: [LrRelayIdInput!]) {
238
- category: directory(id: $id) {
239
- id
240
- keyId
241
- archived
242
- plainMeta
243
- cipherMeta
244
- ${descendantDirectories}
245
- ${parentCategoriesField(depth)}
246
- subCategories: childDirectoryLinks(plainMeta: $categoryFilter, orderBy: "created") {
247
- edges {
248
- node {
249
- childDirectory {
250
- ${CategoryFields}
251
- }
252
- }
253
- }
254
- }
255
- records: childDirectoryLinks(plainMeta: $recordFilter, orderBy: "created") {
256
- edges {
257
- node {
258
- childDirectory {
259
- id
260
- keyId
261
- archived
262
- plainMeta
263
- cipherMeta
264
- created
265
- modified
266
- content: childFileLinks(plainMeta: $contentFilter) {
267
- edges {
268
- node {
269
- childFile {
270
- id
271
- archived
272
- currentVersion {
273
- state {
274
- keyId
275
- plainMeta
276
- cipherMeta
277
- created
278
- modified
279
- }
280
- }
281
- }
282
- }
283
- }
284
- }
285
- }
286
- }
287
- }
288
- }
289
- }
290
- keyGraph(cachedKeyIds: $cachedKeyIds) {
291
- ...KeyGraphFragment
292
- }
293
- }
294
- ${KeyGraphFragment} `;
295
- export const GetCategoryKeyIdQuery = gql `
296
- query GetCategoryKeyIdQuery(
297
- $id: LrRelayIdInput!
298
- $cachedKeyIds: [LrRelayIdInput!]
299
- ) {
300
- category: directory(id: $id) {
301
- keyId
302
- }
303
- keyGraph(cachedKeyIds: $cachedKeyIds) {
304
- ...KeyGraphFragment
305
- }
306
- }
307
- ${KeyGraphFragment}
308
- `;
309
- export const CreateCategoryMutation = gql `
310
- mutation CreateCategory(
311
- $plainMeta: LrJSONString
312
- $cipherMeta: String
313
- $parentDirectories: [ParentDirectoryInput!]
314
- $parentRootDirectory: ParentRootDirectoryInput
315
- ) {
316
- new: createDirectory(
317
- input: {
318
- plainMeta: $plainMeta
319
- cipherMeta: $cipherMeta
320
- parentDirectories: $parentDirectories
321
- parentRootDirectory: $parentRootDirectory
322
- }
323
- ) {
324
- category: directory {
325
- id
326
- keyId
327
- }
328
- }
329
- }
330
- `;
331
- export const CreateVaultMutation = gql `
332
- mutation CreateCategory(
333
- $plainMeta: LrJSONString
334
- $cipherMeta: String
335
- $parentRootDirectory: ParentRootDirectoryInput
336
- ) {
337
- new: createDirectory(
338
- input: {
339
- plainMeta: $plainMeta
340
- cipherMeta: $cipherMeta
341
- parentRootDirectory: $parentRootDirectory
342
- }
343
- ) {
344
- vault: directory {
345
- id
346
- keyId
347
- }
348
- }
349
- }
350
- `;
351
- export const UpdateCategoryMutation = gql `
352
- mutation UpdateCategory($input: UpdateDirectoryInput!) {
353
- updateDirectory(input: $input) {
354
- directory {
355
- id
356
- }
357
- }
358
- }
359
- `;
360
- export const DeleteCategoryMutation = gql `
361
- mutation DeleteCategory($categoryId: LrRelayIdInput!) {
362
- deleteDirectory(input: { directoryId: $categoryId }) {
363
- id
364
- }
365
- }
366
- `;
367
- export const ArchiveDirectoryMutation = gql `
368
- mutation ArchiveDirectory($input: ArchiveDirectoryInput!) {
369
- archiveDirectory(input: $input) {
370
- directory {
371
- id
372
- }
373
- }
374
- }
375
- `;
376
- export const UnarchiveDirectoryMutation = gql `
377
- mutation UnarchiveDirectory($input: UnarchiveDirectoryInput!) {
378
- unarchiveDirectory(input: $input) {
379
- directory {
380
- id
381
- }
382
- }
383
- }
384
- `;
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NhdGVnb3J5L2NhdGVnb3J5LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2Ysc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQyxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQ2xDLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsTUFBTSxFQUFFO1FBQ047WUFDRSxRQUFRLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFLGFBQWEsQ0FBQyxRQUFRO2FBQ3RDO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sRUFBRTtRQUNOO1lBQ0UsUUFBUSxFQUFFO2dCQUNSLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTTthQUNwQztTQUNGO0tBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLHFCQUFxQixHQUFHOytCQUNDLHlCQUF5Qjs7O0NBR3ZELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7Ozs7OztJQU0xQixxQkFBcUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRzs7Ozs7Q0FLMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVUxQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVF2QixjQUFjOzs7Ozs7Ozs7O0VBVTFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O1VBTXZCLFdBQVc7Ozs7Ozs7O0VBUW5CLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVFuQyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBV0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztjQVEvQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQzFCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLEVBQUUsRUFBRTtJQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU87Ozs7Ozs7Ozs7VUFVQyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOzs7OztDQUt6QyxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsUUFBZ0Isd0JBQXdCLEVBQ3hDLEVBQUUsQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7TUFhRixxQkFBcUI7TUFDckIscUJBQXFCLENBQUMsS0FBSyxDQUFDOzs7OztjQUtwQixjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRDMUIsZ0JBQWdCLEdBQUcsQ0FBQztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztJQVlwQyxnQkFBZ0I7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJ4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtleUdyYXBoRnJhZ21lbnQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcbmltcG9ydCB7IEhhc0VkZ2VzIH0gZnJvbSAnLi4vX2NvbW1vbi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JSRUFEQ1JVTUJfREVQVEggPSA1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVTQ0VOREFOVFNfREVQVEggPSA1O1xuXG5leHBvcnQgZW51bSBEaXJlY3RvcnlUeXBlIHtcbiAgVmF1bHQgPSAndmF1bHQnLFxuICBDYXRlZ29yeSA9ICdjYXRlZ29yeScsXG4gIFJlY29yZCA9ICdyZWNvcmQnLFxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdFZhdWx0RmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlZhdWx0LFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICBdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yeUZpbHRlciA9IEpTT04uc3RyaW5naWZ5KHtcbiAgZmlsdGVyOiBbXG4gICAge1xuICAgICAgY29udGFpbnM6IHtcbiAgICAgICAgZGlyZWN0b3J5VHlwZTogRGlyZWN0b3J5VHlwZS5DYXRlZ29yeSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVjb3JkRmlsdGVyID0gSlNPTi5zdHJpbmdpZnkoe1xuICBmaWx0ZXI6IFtcbiAgICB7XG4gICAgICBjb250YWluczoge1xuICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlJlY29yZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pO1xuXG5jb25zdCBkZXNjZW5kYW50RGlyZWN0b3JpZXMgPSBgXG5kZXNjZW5kYW50RGlyZWN0b3JpZXMoZGVwdGg6ICR7REVGQVVMVF9ERVNDRU5EQU5UU19ERVBUSH0sIHBsYWluTWV0YTogJGNhdGVnb3J5RmlsdGVyLCBhcmNoaXZlZDogZmFsc2UpIHtcbiAgcmVjb3Jkc0NvdW50OiBkaXJlY3Rvcmllc0NvdW50KHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgYXJjaGl2ZWQ6IGZhbHNlKVxufVxuYDtcblxuZXhwb3J0IGNvbnN0IENhdGVnb3J5RmllbGRzID0gYFxuICBpZFxuICBrZXlJZFxuICBhcmNoaXZlZFxuICBwbGFpbk1ldGFcbiAgY2lwaGVyTWV0YVxuICAke2Rlc2NlbmRhbnREaXJlY3Rvcmllc31cbmA7XG5cbmV4cG9ydCBjb25zdCBWYXVsdEZpZWxkcyA9IGBcbiAgaWRcbiAga2V5SWRcbiAgcGxhaW5NZXRhXG4gIGNpcGhlck1ldGFcbmA7XG5cbmV4cG9ydCBjb25zdCBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnkgPSBncWxgXG4gIHF1ZXJ5IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSgkYXJjaGl2ZWQ6IEJvb2xlYW4pIHtcbiAgICByb290RGlyZWN0b3JpZXMoYXJjaGl2ZWQ6ICRhcmNoaXZlZCkge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgR2V0Q2F0ZWdvcmllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0Q2F0ZWdvcmllc1F1ZXJ5KCR2YXVsdERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCEsICRjYXRlZ29yeUZpbHRlcjogTHJKU09ORmlsdGVyISwgJHJlY29yZEZpbHRlcjogTHJKU09ORmlsdGVyISwgJGFyY2hpdmVkOiBCb29sZWFuKVxue1xuICBkaXJlY3RvcnkoaWQ6ICR2YXVsdERpcmVjdG9yeUlkKSB7XG4gICAgY2hpbGREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIsIGFyY2hpdmVkOiAkYXJjaGl2ZWQpIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgY2hpbGREaXJlY3Rvcnkge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IEdldFZhdWx0c1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VmF1bHRzKCRwbGFpbk1ldGFGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICBsaXN0OiByb290RGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkcGxhaW5NZXRhRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke1ZhdWx0RmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdHA6IHtcbiAgICB0aGVpckl0ZW1zOiB7XG4gICAgICBsaXN0OiBIYXNFZGdlczxhbnk+O1xuICAgICAgcmVjb3JkczogSGFzRWRnZXM8YW55PjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5KCR0cnVzdGVkUGFydHlJZDogTHJSZWxheUlkSW5wdXQhLCAkY2F0ZWdvcnlGaWx0ZXI6IExySlNPTkZpbHRlciEsICRyZWNvcmRGaWx0ZXI6IExySlNPTkZpbHRlciEsICRjb250ZW50RmlsdGVyOiBMckpTT05GaWx0ZXIsICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdKVxue1xuICB0cChpZDogJHRydXN0ZWRQYXJ0eUlkKSB7XG4gICAgdGhlaXJJdGVtcyB7XG4gICAgICBsaXN0OiBkaXJlY3RvcmllcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgJHtDYXRlZ29yeUZpZWxkc31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlY29yZHM6IGRpcmVjdG9yaWVzKHBsYWluTWV0YTogJHJlY29yZEZpbHRlciwgb3JkZXJCeTogXCJjcmVhdGVkXCIpIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgY29udGVudDogY2hpbGRGaWxlTGlua3MocGxhaW5NZXRhOiAkY29udGVudEZpbHRlcikge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBjaGlsZEZpbGUge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBhcmNoaXZlZFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmVyc2lvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdHA6IHtcbiAgICBteUl0ZW1zOiB7XG4gICAgICBsaXN0OiBIYXNFZGdlczxhbnk+O1xuICAgICAgcmVjb3JkczogSGFzRWRnZXM8YW55PjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnkgPSBncWxgXG5xdWVyeSBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSgkdHJ1c3RlZFBhcnR5SWQ6IExyUmVsYXlJZElucHV0ISwgJGNhdGVnb3J5RmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkcmVjb3JkRmlsdGVyOiBMckpTT05GaWx0ZXIhLCAkY29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyLCAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSlcbntcbiAgdHAoaWQ6ICR0cnVzdGVkUGFydHlJZCkge1xuICAgIG15SXRlbXMge1xuICAgICAgbGlzdDogZGlyZWN0b3JpZXMocGxhaW5NZXRhOiAkY2F0ZWdvcnlGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICR7Q2F0ZWdvcnlGaWVsZHN9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZWNvcmRzOiBkaXJlY3RvcmllcyhwbGFpbk1ldGE6ICRyZWNvcmRGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAgICAgY3JlYXRlZFxuICAgICAgICAgICAgbW9kaWZpZWRcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNoaWxkRmlsZUxpbmtzKHBsYWluTWV0YTogJGNvbnRlbnRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgY2hpbGRGaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZWRcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZlcnNpb24ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IHBhcmVudENhdGVnb3JpZXNGaWVsZCA9IChkZXB0aCA9IERFRkFVTFRfQlJFQURDUlVNQl9ERVBUSCkgPT4ge1xuICBpZiAoIWRlcHRoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBgXG5wYXJlbnRDYXRlZ29yaWVzOiBwYXJlbnREaXJlY3RvcnlMaW5rcyhwbGFpbk1ldGE6ICRjYXRlZ29yeUZpbHRlcikge1xuICBlZGdlcyB7XG4gICAgbm9kZSB7XG4gICAgICBwYXJlbnREaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgICBrZXlJZFxuICAgICAgICBhcmNoaXZlZFxuICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICAke3BhcmVudENhdGVnb3JpZXNGaWVsZChkZXB0aCAtIDEpfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuYDtcbn07XG5cbmV4cG9ydCBjb25zdCBHZXRDYXRlZ29yeVF1ZXJ5ID0gKFxuICBkZXB0aDogbnVtYmVyID0gREVGQVVMVF9CUkVBRENSVU1CX0RFUFRIXG4pID0+IGdxbGBcbnF1ZXJ5IEdldENhdGVnb3J5KFxuICAkaWQ6IExyUmVsYXlJZElucHV0ISxcbiAgJGNhdGVnb3J5RmlsdGVyOiBMckpTT05GaWx0ZXIhLFxuICAkcmVjb3JkRmlsdGVyOiBMckpTT05GaWx0ZXIhLFxuICAkY29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyLFxuICAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSkge1xuICBjYXRlZ29yeTogZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICBpZFxuICAgIGtleUlkXG4gICAgYXJjaGl2ZWRcbiAgICBwbGFpbk1ldGFcbiAgICBjaXBoZXJNZXRhXG4gICAgJHtkZXNjZW5kYW50RGlyZWN0b3JpZXN9XG4gICAgJHtwYXJlbnRDYXRlZ29yaWVzRmllbGQoZGVwdGgpfVxuICAgIHN1YkNhdGVnb3JpZXM6IGNoaWxkRGlyZWN0b3J5TGlua3MocGxhaW5NZXRhOiAkY2F0ZWdvcnlGaWx0ZXIsIG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIGNoaWxkRGlyZWN0b3J5IHtcbiAgICAgICAgICAgICR7Q2F0ZWdvcnlGaWVsZHN9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlY29yZHM6IGNoaWxkRGlyZWN0b3J5TGlua3MocGxhaW5NZXRhOiAkcmVjb3JkRmlsdGVyLCBvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBjaGlsZERpcmVjdG9yeSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAga2V5SWRcbiAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgICAgIGNpcGhlck1ldGFcbiAgICAgICAgICAgIGNyZWF0ZWRcbiAgICAgICAgICAgIG1vZGlmaWVkXG4gICAgICAgICAgICBjb250ZW50OiBjaGlsZEZpbGVMaW5rcyhwbGFpbk1ldGE6ICRjb250ZW50RmlsdGVyKSB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkRmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWZXJzaW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5NZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJNZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH0gYDtcblxuZXhwb3J0IGNvbnN0IEdldENhdGVnb3J5S2V5SWRRdWVyeSA9IGdxbGBcbiAgcXVlcnkgR2V0Q2F0ZWdvcnlLZXlJZFF1ZXJ5KFxuICAgICRpZDogTHJSZWxheUlkSW5wdXQhXG4gICAgJGNhY2hlZEtleUlkczogW0xyUmVsYXlJZElucHV0IV1cbiAgKSB7XG4gICAgY2F0ZWdvcnk6IGRpcmVjdG9yeShpZDogJGlkKSB7XG4gICAgICBrZXlJZFxuICAgIH1cbiAgICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcbiAgICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgICB9XG4gIH1cbiAgJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNhdGVnb3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENyZWF0ZUNhdGVnb3J5KFxuICAgICRwbGFpbk1ldGE6IExySlNPTlN0cmluZ1xuICAgICRjaXBoZXJNZXRhOiBTdHJpbmdcbiAgICAkcGFyZW50RGlyZWN0b3JpZXM6IFtQYXJlbnREaXJlY3RvcnlJbnB1dCFdXG4gICAgJHBhcmVudFJvb3REaXJlY3Rvcnk6IFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dFxuICApIHtcbiAgICBuZXc6IGNyZWF0ZURpcmVjdG9yeShcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIHBsYWluTWV0YTogJHBsYWluTWV0YVxuICAgICAgICBjaXBoZXJNZXRhOiAkY2lwaGVyTWV0YVxuICAgICAgICBwYXJlbnREaXJlY3RvcmllczogJHBhcmVudERpcmVjdG9yaWVzXG4gICAgICAgIHBhcmVudFJvb3REaXJlY3Rvcnk6ICRwYXJlbnRSb290RGlyZWN0b3J5XG4gICAgICB9XG4gICAgKSB7XG4gICAgICBjYXRlZ29yeTogZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgICAga2V5SWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVWYXVsdE11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBDcmVhdGVDYXRlZ29yeShcbiAgICAkcGxhaW5NZXRhOiBMckpTT05TdHJpbmdcbiAgICAkY2lwaGVyTWV0YTogU3RyaW5nXG4gICAgJHBhcmVudFJvb3REaXJlY3Rvcnk6IFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dFxuICApIHtcbiAgICBuZXc6IGNyZWF0ZURpcmVjdG9yeShcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIHBsYWluTWV0YTogJHBsYWluTWV0YVxuICAgICAgICBjaXBoZXJNZXRhOiAkY2lwaGVyTWV0YVxuICAgICAgICBwYXJlbnRSb290RGlyZWN0b3J5OiAkcGFyZW50Um9vdERpcmVjdG9yeVxuICAgICAgfVxuICAgICkge1xuICAgICAgdmF1bHQ6IGRpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICAgIGtleUlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ2F0ZWdvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gVXBkYXRlQ2F0ZWdvcnkoJGlucHV0OiBVcGRhdGVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICB1cGRhdGVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgZGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDYXRlZ29yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBEZWxldGVDYXRlZ29yeSgkY2F0ZWdvcnlJZDogTHJSZWxheUlkSW5wdXQhKSB7XG4gICAgZGVsZXRlRGlyZWN0b3J5KGlucHV0OiB7IGRpcmVjdG9yeUlkOiAkY2F0ZWdvcnlJZCB9KSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gQXJjaGl2ZURpcmVjdG9yeSgkaW5wdXQ6IEFyY2hpdmVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICBhcmNoaXZlRGlyZWN0b3J5KGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGRpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIFVuYXJjaGl2ZURpcmVjdG9yeSgkaW5wdXQ6IFVuYXJjaGl2ZURpcmVjdG9yeUlucHV0ISkge1xuICAgIHVuYXJjaGl2ZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICBkaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcbiJdfQ==