@lifeready/core 1.0.21 → 1.0.22

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 (228) hide show
  1. package/bundles/lifeready-core.umd.js +9745 -9700
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +2 -2
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/run-outside-angular.js +2 -2
  6. package/esm2015/lib/_common/types.js +1 -1
  7. package/esm2015/lib/api/lr-apollo.service.js +3 -3
  8. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +3 -3
  9. package/esm2015/lib/api/query-processor/common-processors.service.js +3 -3
  10. package/esm2015/lib/api/query-processor/query-processor.service.js +4 -4
  11. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +6 -5
  12. package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
  13. package/esm2015/lib/auth/auth.gql.js +1 -28
  14. package/esm2015/lib/auth/auth.types.js +1 -1
  15. package/esm2015/lib/auth/life-ready-auth.service.js +32 -31
  16. package/esm2015/lib/category/category.gql.js +1 -1
  17. package/esm2015/lib/category/category.service.js +6 -6
  18. package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
  19. package/esm2015/lib/contact-card/contact-card.service.js +154 -0
  20. package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
  21. package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
  22. package/esm2015/lib/encryption/encryption.service.js +189 -0
  23. package/esm2015/lib/file-upload/file-upload.service.js +74 -0
  24. package/esm2015/lib/file-upload/file-upload.types.js +1 -0
  25. package/esm2015/lib/{auth → idle}/idle.service.js +7 -7
  26. package/esm2015/lib/{auth → idle}/idle.types.js +1 -1
  27. package/esm2015/lib/items2/item2.service.js +20 -20
  28. package/esm2015/lib/key/key-factory.service.js +237 -0
  29. package/esm2015/lib/{cryptography → key}/key-graph.service.js +10 -10
  30. package/esm2015/lib/key/key-meta.service.js +200 -0
  31. package/esm2015/lib/key/key.service.js +124 -0
  32. package/esm2015/lib/key/key.types.js +11 -0
  33. package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
  34. package/esm2015/lib/key-exchange/key-exchange.service.js +443 -0
  35. package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
  36. package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
  37. package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
  38. package/esm2015/lib/lbop/lbop.service.js +355 -0
  39. package/esm2015/lib/life-ready.module.js +2 -27
  40. package/esm2015/lib/lock/lock.gql.js +40 -0
  41. package/esm2015/lib/lock/lock.service.js +64 -0
  42. package/esm2015/lib/message/message.gql.js +32 -0
  43. package/esm2015/lib/message/message.service.js +116 -0
  44. package/esm2015/lib/message/message.types.js +1 -0
  45. package/esm2015/lib/password/password.gql.js +28 -0
  46. package/esm2015/lib/password/password.service.js +315 -0
  47. package/esm2015/lib/persist/persist.service.js +180 -0
  48. package/esm2015/lib/profile/profile-details.service.js +214 -0
  49. package/esm2015/lib/profile/profile.gql.js +97 -0
  50. package/esm2015/lib/profile/profile.service.js +169 -0
  51. package/esm2015/lib/profile/profile.types.js +34 -0
  52. package/esm2015/lib/record/record-attachment.service.js +15 -15
  53. package/esm2015/lib/record/record.service.js +3 -3
  54. package/esm2015/lib/register/register.service.js +172 -0
  55. package/esm2015/lib/scenario/scenario.controller.js +2 -2
  56. package/esm2015/lib/scenario/{scenario.gql.private.js → scenario.private.gql.js} +1 -1
  57. package/esm2015/lib/scenario/scenario.service.js +9 -9
  58. package/esm2015/lib/scenario/scenario.types.js +1 -1
  59. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
  60. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
  61. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
  62. package/esm2015/lib/slip39/slip39.service.js +169 -0
  63. package/esm2015/lib/time/time.service.js +146 -0
  64. package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
  65. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
  66. package/esm2015/lib/tp-assembly/tp-assembly.types.js +1 -0
  67. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
  68. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +117 -0
  69. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
  70. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
  71. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
  72. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
  73. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
  74. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
  75. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -0
  76. package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
  77. package/esm2015/lib/trusted-party/trusted-party.service.js +326 -0
  78. package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
  79. package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
  80. package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
  81. package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
  82. package/esm2015/lib/trusted-party/trusted-party2.types.js +1 -0
  83. package/esm2015/lib/two-factor/two-factor.service.js +74 -0
  84. package/esm2015/lib/user/user.gql.js +60 -0
  85. package/esm2015/lib/user/user.service.js +79 -0
  86. package/esm2015/lib/user/user.types.js +1 -0
  87. package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
  88. package/esm2015/lifeready-core.js +15 -13
  89. package/esm2015/public-api.js +49 -51
  90. package/fesm2015/lifeready-core.js +9232 -9214
  91. package/fesm2015/lifeready-core.js.map +1 -1
  92. package/lib/_common/types.d.ts +3 -1
  93. package/lib/api/lr-apollo.service.d.ts +1 -1
  94. package/lib/api/lr-graphql/lr-graphql.service.d.ts +1 -1
  95. package/lib/api/query-processor/common-processors.service.d.ts +1 -1
  96. package/lib/api/query-processor/query-processor.service.d.ts +1 -1
  97. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +1 -1
  98. package/lib/api/types/lr-graphql.types.d.ts +11 -0
  99. package/lib/auth/auth.gql.d.ts +0 -3
  100. package/lib/auth/auth.types.d.ts +2 -2
  101. package/lib/auth/life-ready-auth.service.d.ts +12 -12
  102. package/lib/category/category.gql.d.ts +1 -1
  103. package/lib/category/category.service.d.ts +2 -2
  104. package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
  105. package/lib/contact-card/contact-card2.gql.d.ts +25 -0
  106. package/lib/{api → contact-card}/contact-card2.service.d.ts +11 -12
  107. package/lib/{cryptography → encryption}/encryption.service.d.ts +2 -2
  108. package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +3 -7
  109. package/lib/file-upload/file-upload.types.d.ts +5 -0
  110. package/lib/{auth → idle}/idle.service.d.ts +4 -4
  111. package/lib/items2/item2.service.d.ts +11 -11
  112. package/lib/{cryptography → key}/key-factory.service.d.ts +2 -2
  113. package/lib/{cryptography → key}/key-graph.service.d.ts +5 -5
  114. package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
  115. package/lib/{cryptography → key}/key.service.d.ts +2 -2
  116. package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +9 -13
  117. package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
  118. package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
  119. package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
  120. package/lib/{api → key-exchange}/key-exchange2.service.d.ts +71 -18
  121. package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
  122. package/lib/{api → lock}/lock.gql.d.ts +1 -1
  123. package/lib/{api → lock}/lock.service.d.ts +1 -1
  124. package/lib/message/message.gql.d.ts +13 -0
  125. package/lib/message/message.service.d.ts +29 -0
  126. package/lib/message/message.types.d.ts +12 -0
  127. package/lib/password/password.gql.d.ts +3 -0
  128. package/lib/{auth → password}/password.service.d.ts +8 -8
  129. package/lib/{api → persist}/persist.service.d.ts +3 -3
  130. package/lib/{users → profile}/profile-details.service.d.ts +3 -3
  131. package/lib/{users → profile}/profile.gql.d.ts +2 -2
  132. package/lib/{users → profile}/profile.service.d.ts +6 -6
  133. package/lib/{users → profile}/profile.types.d.ts +1 -1
  134. package/lib/record/record-attachment.service.d.ts +6 -6
  135. package/lib/record/record.service.d.ts +1 -1
  136. package/lib/{auth → register}/register.service.d.ts +4 -4
  137. package/lib/scenario/scenario.controller.d.ts +1 -1
  138. package/lib/scenario/scenario.service.d.ts +2 -2
  139. package/lib/scenario/scenario.types.d.ts +1 -1
  140. package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
  141. package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
  142. package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
  143. package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
  144. package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +1 -1
  145. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +4 -8
  146. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
  147. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
  148. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
  149. package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
  150. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
  151. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
  152. package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
  153. package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
  154. package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
  155. package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
  156. package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
  157. package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
  158. package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
  159. package/lib/{users → user}/user.gql.d.ts +1 -1
  160. package/lib/{users → user}/user.types.d.ts +1 -1
  161. package/lifeready-core.d.ts +14 -12
  162. package/lifeready-core.metadata.json +1 -1
  163. package/package.json +1 -1
  164. package/public-api.d.ts +48 -50
  165. package/esm2015/lib/api/contact-card.gql.js +0 -79
  166. package/esm2015/lib/api/contact-card.service.js +0 -154
  167. package/esm2015/lib/api/contact-card2.gql.js +0 -60
  168. package/esm2015/lib/api/contact-card2.service.js +0 -103
  169. package/esm2015/lib/api/file.service.js +0 -74
  170. package/esm2015/lib/api/key-exchange.gql.js +0 -188
  171. package/esm2015/lib/api/key-exchange.service.js +0 -442
  172. package/esm2015/lib/api/key-exchange.types.js +0 -7
  173. package/esm2015/lib/api/key-exchange2.gql.js +0 -171
  174. package/esm2015/lib/api/key-exchange2.service.js +0 -480
  175. package/esm2015/lib/api/lock.gql.js +0 -40
  176. package/esm2015/lib/api/lock.service.js +0 -64
  177. package/esm2015/lib/api/message.service.js +0 -138
  178. package/esm2015/lib/api/persist.service.js +0 -181
  179. package/esm2015/lib/api/shared-contact-card.service.js +0 -119
  180. package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
  181. package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
  182. package/esm2015/lib/api/time.service.js +0 -146
  183. package/esm2015/lib/auth/lbop.service.js +0 -355
  184. package/esm2015/lib/auth/password.service.js +0 -315
  185. package/esm2015/lib/auth/register.service.js +0 -172
  186. package/esm2015/lib/auth/two-factor.service.js +0 -74
  187. package/esm2015/lib/cryptography/cryptography.types.js +0 -11
  188. package/esm2015/lib/cryptography/encryption.service.js +0 -189
  189. package/esm2015/lib/cryptography/key-factory.service.js +0 -237
  190. package/esm2015/lib/cryptography/key-meta.service.js +0 -200
  191. package/esm2015/lib/cryptography/key.service.js +0 -124
  192. package/esm2015/lib/cryptography/slip39.service.js +0 -169
  193. package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
  194. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
  195. package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
  196. package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
  197. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
  198. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
  199. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
  200. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
  201. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
  202. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
  203. package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
  204. package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
  205. package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
  206. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
  207. package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
  208. package/esm2015/lib/users/profile-details.service.js +0 -214
  209. package/esm2015/lib/users/profile.gql.js +0 -97
  210. package/esm2015/lib/users/profile.service.js +0 -169
  211. package/esm2015/lib/users/profile.types.js +0 -34
  212. package/esm2015/lib/users/user.gql.js +0 -60
  213. package/esm2015/lib/users/user.service.js +0 -79
  214. package/esm2015/lib/users/user.types.js +0 -1
  215. package/lib/api/contact-card2.gql.d.ts +0 -34
  216. package/lib/api/message.service.d.ts +0 -59
  217. /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
  218. /package/lib/{auth → idle}/idle.types.d.ts +0 -0
  219. /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
  220. /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
  221. /package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -0
  222. /package/lib/{api → time}/time.service.d.ts +0 -0
  223. /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
  224. /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
  225. /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
  226. /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
  227. /package/lib/{users → user}/user.service.d.ts +0 -0
  228. /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
@@ -0,0 +1,188 @@
1
+ import gql from 'graphql-tag';
2
+ import { FetchKeyGraphField, KeyGraphFragment } from '../_common/queries.gql';
3
+ export const KeyExchangeFields = `
4
+ id
5
+ token
6
+ state
7
+ mode
8
+ isInitiator
9
+ initiator {
10
+ id
11
+ username
12
+ }
13
+ responder {
14
+ id
15
+ username
16
+ }
17
+ created
18
+ modified
19
+ tokenExpiryTime
20
+ isExpired
21
+ initiatorRootKeyCipher
22
+ initiatorActionRequired
23
+ responderActionRequired
24
+ responderEmailAddress
25
+ otk {
26
+ state
27
+ otKeyParams
28
+ otKeyCipher
29
+ sharedKey {
30
+ id
31
+ }
32
+ mkSharedKey {
33
+ id
34
+ }
35
+ initiatorSigPxk {
36
+ id
37
+ }
38
+ responderSigPxk {
39
+ id
40
+ }
41
+ initiatorOneTimePbkCipher
42
+ responderPbkCipher
43
+ }`;
44
+ export const UserSharedKeyFields = `
45
+ userSigPrk {
46
+ id
47
+ }
48
+ otherSigPbk {
49
+ id
50
+ }
51
+ sharedKey {
52
+ id
53
+ }
54
+ mkSharedKey {
55
+ id
56
+ }
57
+ mkPxk {
58
+ id
59
+ pbk
60
+ }
61
+ mkReshareRequestCipher
62
+ mkReshareResponseCipher
63
+ mkReshareRequestSent
64
+ mkReshareResponseSent
65
+ `;
66
+ export const CurrentUserSharedKeyQuery = gql `
67
+ query CurrentUserSharedKeyQuery(
68
+ $username: String
69
+ $userId: LrRelayIdInput
70
+ $cachedKeyIds: [LrRelayIdInput!]
71
+ ) {
72
+ currentUserSharedKey(
73
+ username: $username
74
+ userId: $userId
75
+ ) {
76
+ userSharedKey {
77
+ ${UserSharedKeyFields}
78
+ }
79
+ }
80
+ keyGraph(cachedKeyIds: $cachedKeyIds) {
81
+ ...KeyGraphFragment
82
+ }
83
+ }
84
+ ${KeyGraphFragment}`;
85
+ export const KeyExchangesQuery = gql `
86
+ query KeyExchangeQuery(
87
+ $orderBy: String
88
+ $isExpired: Boolean
89
+ $initiatorActionRequired: Boolean
90
+ $responderActionRequired: Boolean
91
+ $initiator: ID
92
+ $responder: ID
93
+ $state: String
94
+ ) {
95
+ keyExchanges(
96
+ orderBy: $orderBy
97
+ isExpired: $isExpired
98
+ initiatorActionRequired: $initiatorActionRequired
99
+ responderActionRequired: $responderActionRequired
100
+ initiator: $initiator
101
+ responder: $responder
102
+ state: $state
103
+ ) {
104
+ edges {
105
+ node {
106
+ ${KeyExchangeFields}
107
+ }
108
+ }
109
+ }
110
+ keyGraph {
111
+ ...KeyGraphFragment
112
+ }
113
+ }
114
+ ${KeyGraphFragment}
115
+ `;
116
+ export const KeyExchangeQuery = gql `
117
+ query KeyExchangeQuery(
118
+ $id: LrRelayIdInput!
119
+ ) {
120
+ keyExchange(
121
+ id: $id
122
+ ) {
123
+ ${KeyExchangeFields}
124
+ }
125
+ keyGraph {
126
+ ...KeyGraphFragment
127
+ }
128
+ }
129
+ ${KeyGraphFragment}
130
+ `;
131
+ // Key graph is only available for authenticated users. This query
132
+ // is for unauthenticated users.
133
+ export const KeyExchangeTokenQuery = gql `
134
+ query KeyExchangeQuery(
135
+ $id: LrRelayIdInput!
136
+ $token: String
137
+ ) {
138
+ keyExchange(
139
+ id: $id
140
+ token: $token
141
+ ) {
142
+ ${KeyExchangeFields}
143
+ }
144
+ }`;
145
+ export const InitiateOtkMutation = gql `
146
+ mutation InitiateKeyExchangeOtk(
147
+ $input: InitiateKeyExchangeOtkInput!
148
+ ) {
149
+ initiateKeyExchangeOtk(input: $input) {
150
+ keyExchange {
151
+ ${KeyExchangeFields}
152
+ }
153
+ }
154
+ ${FetchKeyGraphField}
155
+ }`;
156
+ export const RespondOtkMutation = gql `
157
+ mutation RespondKeyExchangeOtk(
158
+ $input: RespondKeyExchangeOtkInput!
159
+ ) {
160
+ respondKeyExchangeOtk(input: $input) {
161
+ keyExchange {
162
+ ${KeyExchangeFields}
163
+ }
164
+ userSharedKey {
165
+ ${UserSharedKeyFields}
166
+ }
167
+ tp {
168
+ id
169
+ }
170
+ }
171
+ }`;
172
+ export const CompleteOtkMutation = gql `
173
+ mutation CompleteKeyExchangeOtk(
174
+ $input: CompleteKeyExchangeOtkInput!
175
+ ) {
176
+ completeKeyExchangeOtk(input: $input) {
177
+ keyExchange {
178
+ ${KeyExchangeFields}
179
+ }
180
+ userSharedKey {
181
+ ${UserSharedKeyFields}
182
+ }
183
+ tp {
184
+ id
185
+ }
186
+ }
187
+ }`;
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWV4Y2hhbmdlLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIva2V5LWV4Y2hhbmdlL2tleS1leGNoYW5nZS5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0MvQixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7UUFXcEMsbUJBQW1COzs7Ozs7O0VBT3pCLGdCQUFnQixFQUFFLENBQUM7QUFFckIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFxQjVCLGlCQUFpQjs7Ozs7Ozs7RUFRdkIsZ0JBQWdCO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPN0IsaUJBQWlCOzs7Ozs7RUFNckIsZ0JBQWdCO0NBQ2pCLENBQUM7QUFFRixrRUFBa0U7QUFDbEUsZ0NBQWdDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O01BU2xDLGlCQUFpQjs7RUFFckIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTWhDLGlCQUFpQjs7O0VBR3JCLGtCQUFrQjtFQUNsQixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNN0IsaUJBQWlCOzs7UUFHakIsbUJBQW1COzs7Ozs7RUFNekIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1FBTTlCLGlCQUFpQjs7O1FBR2pCLG1CQUFtQjs7Ozs7O0VBTXpCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7IEZldGNoS2V5R3JhcGhGaWVsZCwgS2V5R3JhcGhGcmFnbWVudCB9IGZyb20gJy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xuXG5leHBvcnQgY29uc3QgS2V5RXhjaGFuZ2VGaWVsZHMgPSBgXG4gIGlkXG4gIHRva2VuXG4gIHN0YXRlXG4gIG1vZGVcbiAgaXNJbml0aWF0b3JcbiAgaW5pdGlhdG9yIHtcbiAgICBpZFxuICAgIHVzZXJuYW1lXG4gIH1cbiAgcmVzcG9uZGVyIHtcbiAgICBpZFxuICAgIHVzZXJuYW1lXG4gIH1cbiAgY3JlYXRlZFxuICBtb2RpZmllZFxuICB0b2tlbkV4cGlyeVRpbWVcbiAgaXNFeHBpcmVkXG4gIGluaXRpYXRvclJvb3RLZXlDaXBoZXJcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyRW1haWxBZGRyZXNzXG4gIG90ayB7XG4gICAgc3RhdGVcbiAgICBvdEtleVBhcmFtc1xuICAgIG90S2V5Q2lwaGVyXG4gICAgc2hhcmVkS2V5IHtcbiAgICAgIGlkXG4gICAgfVxuICAgIG1rU2hhcmVkS2V5IHtcbiAgICAgIGlkXG4gICAgfVxuICAgIGluaXRpYXRvclNpZ1B4ayB7XG4gICAgICBpZFxuICAgIH1cbiAgICByZXNwb25kZXJTaWdQeGsge1xuICAgICAgaWRcbiAgICB9XG4gICAgaW5pdGlhdG9yT25lVGltZVBia0NpcGhlclxuICAgIHJlc3BvbmRlclBia0NpcGhlclxufWA7XG5cbmV4cG9ydCBjb25zdCBVc2VyU2hhcmVkS2V5RmllbGRzID0gYFxuICB1c2VyU2lnUHJrIHtcbiAgICBpZFxuICB9XG4gIG90aGVyU2lnUGJrIHtcbiAgICBpZFxuICB9XG4gIHNoYXJlZEtleSB7XG4gICAgaWRcbiAgfVxuICBta1NoYXJlZEtleSB7XG4gICAgaWRcbiAgfVxuICBta1B4ayB7XG4gICAgaWRcbiAgICBwYmtcbiAgfVxuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyXG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gIG1rUmVzaGFyZVJlcXVlc3RTZW50XG4gIG1rUmVzaGFyZVJlc3BvbnNlU2VudFxuYDtcblxuZXhwb3J0IGNvbnN0IEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkgPSBncWxgXG5xdWVyeSBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5KFxuICAkdXNlcm5hbWU6IFN0cmluZ1xuICAkdXNlcklkOiBMclJlbGF5SWRJbnB1dFxuICAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXVxuKSB7XG4gIGN1cnJlbnRVc2VyU2hhcmVkS2V5KFxuICAgIHVzZXJuYW1lOiAkdXNlcm5hbWVcbiAgICB1c2VySWQ6ICR1c2VySWRcbiAgKSB7XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICB9XG4gIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fWA7XG5cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZXNRdWVyeSA9IGdxbGBcbnF1ZXJ5IEtleUV4Y2hhbmdlUXVlcnkoXG4kb3JkZXJCeTogU3RyaW5nXG4kaXNFeHBpcmVkOiBCb29sZWFuXG4kaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWQ6IEJvb2xlYW5cbiRyZXNwb25kZXJBY3Rpb25SZXF1aXJlZDogQm9vbGVhblxuJGluaXRpYXRvcjogSURcbiRyZXNwb25kZXI6IElEXG4kc3RhdGU6IFN0cmluZ1xuKSB7XG5rZXlFeGNoYW5nZXMoXG4gIG9yZGVyQnk6ICRvcmRlckJ5XG4gIGlzRXhwaXJlZDogJGlzRXhwaXJlZFxuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZDogJGluaXRpYXRvckFjdGlvblJlcXVpcmVkXG4gIHJlc3BvbmRlckFjdGlvblJlcXVpcmVkOiAkcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWRcbiAgaW5pdGlhdG9yOiAkaW5pdGlhdG9yXG4gIHJlc3BvbmRlcjogJHJlc3BvbmRlclxuICBzdGF0ZTogJHN0YXRlXG4pIHtcbiAgZWRnZXMge1xuICAgIG5vZGUge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gIH1cbn1cbmtleUdyYXBoIHtcbiAgLi4uS2V5R3JhcGhGcmFnbWVudFxufVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlUXVlcnkgPSBncWxgXG5xdWVyeSBLZXlFeGNoYW5nZVF1ZXJ5KFxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxuKSB7XG4gIGtleUV4Y2hhbmdlKFxuICAgIGlkOiAkaWRcbiAgKSB7XG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgfVxuICBrZXlHcmFwaCB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG4vLyBLZXkgZ3JhcGggaXMgb25seSBhdmFpbGFibGUgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuIFRoaXMgcXVlcnlcbi8vIGlzIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMuXG5leHBvcnQgY29uc3QgS2V5RXhjaGFuZ2VUb2tlblF1ZXJ5ID0gZ3FsYFxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeShcbiAgJGlkOiBMclJlbGF5SWRJbnB1dCFcbiAgJHRva2VuOiBTdHJpbmdcbikge1xuICBrZXlFeGNoYW5nZShcbiAgICBpZDogJGlkXG4gICAgdG9rZW46ICR0b2tlblxuICApIHtcbiAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IEluaXRpYXRlT3RrTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBJbml0aWF0ZUtleUV4Y2hhbmdlT3RrKFxuJGlucHV0OiBJbml0aWF0ZUtleUV4Y2hhbmdlT3RrSW5wdXQhXG4pIHtcbmluaXRpYXRlS2V5RXhjaGFuZ2VPdGsoaW5wdXQ6ICRpbnB1dCkge1xuICBrZXlFeGNoYW5nZSB7XG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgfVxufVxuJHtGZXRjaEtleUdyYXBoRmllbGR9XG59YDtcblxuZXhwb3J0IGNvbnN0IFJlc3BvbmRPdGtNdXRhdGlvbiA9IGdxbGBcbm11dGF0aW9uIFJlc3BvbmRLZXlFeGNoYW5nZU90ayhcbiAgJGlucHV0OiBSZXNwb25kS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuICByZXNwb25kS2V5RXhjaGFuZ2VPdGsoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGtleUV4Y2hhbmdlIHtcbiAgICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XG4gICAgfVxuICAgIHVzZXJTaGFyZWRLZXkge1xuICAgICAgJHtVc2VyU2hhcmVkS2V5RmllbGRzfVxuICAgIH1cbiAgICB0cCB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBjb25zdCBDb21wbGV0ZU90a011dGF0aW9uID0gZ3FsYFxubXV0YXRpb24gQ29tcGxldGVLZXlFeGNoYW5nZU90ayhcbiAgJGlucHV0OiBDb21wbGV0ZUtleUV4Y2hhbmdlT3RrSW5wdXQhXG4pIHtcbiAgY29tcGxldGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcbiJdfQ==