@gitpod/gitpod-protocol 0.1.5-server-vscode-ouath2.18 → 0.1.5-server-vscode-oauth2.24

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 (330) hide show
  1. package/data/gitpod-schema.json +49 -4
  2. package/lib/accounting-protocol.d.ts +10 -11
  3. package/lib/accounting-protocol.d.ts.map +1 -1
  4. package/lib/accounting-protocol.js +31 -41
  5. package/lib/accounting-protocol.js.map +1 -1
  6. package/lib/admin-protocol.d.ts +20 -2
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js +2 -13
  9. package/lib/admin-protocol.js.map +1 -1
  10. package/lib/analytics.d.ts +12 -1
  11. package/lib/analytics.d.ts.map +1 -1
  12. package/lib/analytics.js.map +1 -1
  13. package/lib/auth.d.ts.map +1 -1
  14. package/lib/context-url.d.ts +18 -5
  15. package/lib/context-url.d.ts.map +1 -1
  16. package/lib/context-url.js +63 -10
  17. package/lib/context-url.js.map +1 -1
  18. package/lib/context-url.spec.d.ts +2 -0
  19. package/lib/context-url.spec.d.ts.map +1 -1
  20. package/lib/context-url.spec.js +81 -48
  21. package/lib/context-url.spec.js.map +1 -1
  22. package/lib/email-protocol.d.ts +1 -1
  23. package/lib/email-protocol.d.ts.map +1 -1
  24. package/lib/email-protocol.js +4 -4
  25. package/lib/email-protocol.js.map +1 -1
  26. package/lib/encryption/container-module.d.ts.map +1 -1
  27. package/lib/encryption/container-module.js +4 -4
  28. package/lib/encryption/container-module.js.map +1 -1
  29. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  30. package/lib/encryption/encryption-engine.js +25 -26
  31. package/lib/encryption/encryption-engine.js.map +1 -1
  32. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  33. package/lib/encryption/encryption-engine.spec.js +29 -37
  34. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  35. package/lib/encryption/encryption-service.d.ts.map +1 -1
  36. package/lib/encryption/encryption-service.js +30 -44
  37. package/lib/encryption/encryption-service.js.map +1 -1
  38. package/lib/encryption/key-provider.d.ts.map +1 -1
  39. package/lib/encryption/key-provider.js +31 -38
  40. package/lib/encryption/key-provider.js.map +1 -1
  41. package/lib/env.d.ts +1 -2
  42. package/lib/env.d.ts.map +1 -1
  43. package/lib/env.js +17 -19
  44. package/lib/env.js.map +1 -1
  45. package/lib/gitpod-file-parser.d.ts.map +1 -1
  46. package/lib/gitpod-file-parser.js +26 -42
  47. package/lib/gitpod-file-parser.js.map +1 -1
  48. package/lib/gitpod-file-parser.spec.js +145 -142
  49. package/lib/gitpod-file-parser.spec.js.map +1 -1
  50. package/lib/gitpod-service.d.ts +67 -31
  51. package/lib/gitpod-service.d.ts.map +1 -1
  52. package/lib/gitpod-service.js +162 -309
  53. package/lib/gitpod-service.js.map +1 -1
  54. package/lib/headless-workspace-log.d.ts +1 -0
  55. package/lib/headless-workspace-log.d.ts.map +1 -1
  56. package/lib/headless-workspace-log.js +2 -1
  57. package/lib/headless-workspace-log.js.map +1 -1
  58. package/lib/ide-frontend-service.d.ts +1 -1
  59. package/lib/ide-protocol.d.ts +105 -0
  60. package/lib/ide-protocol.d.ts.map +1 -0
  61. package/lib/ide-protocol.js +8 -0
  62. package/lib/ide-protocol.js.map +1 -0
  63. package/lib/index.d.ts +16 -13
  64. package/lib/index.d.ts.map +1 -1
  65. package/lib/index.js +3 -0
  66. package/lib/index.js.map +1 -1
  67. package/lib/installation-admin-protocol.d.ts +27 -0
  68. package/lib/installation-admin-protocol.d.ts.map +1 -0
  69. package/lib/installation-admin-protocol.js +30 -0
  70. package/lib/installation-admin-protocol.js.map +1 -0
  71. package/lib/license-protocol.d.ts.map +1 -1
  72. package/lib/license-protocol.js.map +1 -1
  73. package/lib/messaging/browser/connection.d.ts +3 -3
  74. package/lib/messaging/browser/connection.d.ts.map +1 -1
  75. package/lib/messaging/browser/connection.js +173 -36
  76. package/lib/messaging/browser/connection.js.map +1 -1
  77. package/lib/messaging/browser/window-connection.d.ts +4 -4
  78. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  79. package/lib/messaging/browser/window-connection.js +42 -59
  80. package/lib/messaging/browser/window-connection.js.map +1 -1
  81. package/lib/messaging/client-call-metrics.d.ts +2 -2
  82. package/lib/messaging/client-call-metrics.d.ts.map +1 -1
  83. package/lib/messaging/client-call-metrics.js +37 -38
  84. package/lib/messaging/client-call-metrics.js.map +1 -1
  85. package/lib/messaging/error.d.ts +2 -1
  86. package/lib/messaging/error.d.ts.map +1 -1
  87. package/lib/messaging/error.js +4 -2
  88. package/lib/messaging/error.js.map +1 -1
  89. package/lib/messaging/handler.d.ts +10 -0
  90. package/lib/messaging/handler.d.ts.map +1 -1
  91. package/lib/messaging/handler.js +1 -1
  92. package/lib/messaging/node/connection.d.ts +1 -17
  93. package/lib/messaging/node/connection.d.ts.map +1 -1
  94. package/lib/messaging/node/connection.js +24 -60
  95. package/lib/messaging/node/connection.js.map +1 -1
  96. package/lib/messaging/proxy-factory.d.ts +3 -1
  97. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  98. package/lib/messaging/proxy-factory.js +74 -163
  99. package/lib/messaging/proxy-factory.js.map +1 -1
  100. package/lib/oss-allowlist.d.ts +14 -0
  101. package/lib/oss-allowlist.d.ts.map +1 -0
  102. package/lib/oss-allowlist.js +8 -0
  103. package/lib/oss-allowlist.js.map +1 -0
  104. package/lib/payment-protocol.d.ts.map +1 -1
  105. package/lib/payment-protocol.js +1 -1
  106. package/lib/payment-protocol.js.map +1 -1
  107. package/lib/permission.d.ts +9 -4
  108. package/lib/permission.d.ts.map +1 -1
  109. package/lib/permission.js +39 -31
  110. package/lib/permission.js.map +1 -1
  111. package/lib/plans.d.ts +4 -4
  112. package/lib/plans.d.ts.map +1 -1
  113. package/lib/plans.js +225 -209
  114. package/lib/plans.js.map +1 -1
  115. package/lib/protocol.d.ts +83 -78
  116. package/lib/protocol.d.ts.map +1 -1
  117. package/lib/protocol.js +131 -190
  118. package/lib/protocol.js.map +1 -1
  119. package/lib/snapshot-url.d.ts +14 -0
  120. package/lib/snapshot-url.d.ts.map +1 -0
  121. package/lib/snapshot-url.js +26 -0
  122. package/lib/snapshot-url.js.map +1 -0
  123. package/{src/theia-plugins.ts → lib/snapshot-url.spec.d.ts} +2 -6
  124. package/lib/snapshot-url.spec.d.ts.map +1 -0
  125. package/lib/snapshot-url.spec.js +41 -0
  126. package/lib/snapshot-url.spec.js.map +1 -0
  127. package/lib/team-subscription-protocol.d.ts +5 -3
  128. package/lib/team-subscription-protocol.d.ts.map +1 -1
  129. package/lib/team-subscription-protocol.js +17 -17
  130. package/lib/team-subscription-protocol.js.map +1 -1
  131. package/lib/teams-projects-protocol.d.ts +16 -3
  132. package/lib/teams-projects-protocol.d.ts.map +1 -1
  133. package/lib/teams-projects-protocol.js +11 -15
  134. package/lib/teams-projects-protocol.js.map +1 -1
  135. package/lib/typings/globals.d.ts +2 -2
  136. package/lib/typings/globals.d.ts.map +1 -1
  137. package/lib/util/analytics.d.ts.map +1 -1
  138. package/lib/util/analytics.js +44 -26
  139. package/lib/util/analytics.js.map +1 -1
  140. package/lib/util/async-iterator.d.ts.map +1 -1
  141. package/lib/util/async-iterator.js +57 -135
  142. package/lib/util/async-iterator.js.map +1 -1
  143. package/lib/util/cancelable.js +17 -59
  144. package/lib/util/cancelable.js.map +1 -1
  145. package/lib/util/date-time.js +11 -11
  146. package/lib/util/date-time.js.map +1 -1
  147. package/lib/util/deferred.js +10 -12
  148. package/lib/util/deferred.js.map +1 -1
  149. package/lib/util/disposable.d.ts.map +1 -1
  150. package/lib/util/disposable.js +27 -40
  151. package/lib/util/disposable.js.map +1 -1
  152. package/lib/util/event.d.ts.map +1 -1
  153. package/lib/util/event.js +63 -77
  154. package/lib/util/event.js.map +1 -1
  155. package/lib/util/garbage-collected-cache.d.ts +1 -0
  156. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  157. package/lib/util/garbage-collected-cache.js +27 -47
  158. package/lib/util/garbage-collected-cache.js.map +1 -1
  159. package/lib/util/generate-workspace-id.d.ts +1 -1
  160. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  161. package/lib/util/generate-workspace-id.js +460 -499
  162. package/lib/util/generate-workspace-id.js.map +1 -1
  163. package/lib/util/generate-workspace-id.spec.js +61 -78
  164. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  165. package/lib/util/gitpod-cookie.d.ts +20 -0
  166. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  167. package/lib/util/gitpod-cookie.js +41 -0
  168. package/lib/util/gitpod-cookie.js.map +1 -0
  169. package/lib/util/gitpod-host-url.d.ts +1 -1
  170. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  171. package/lib/util/gitpod-host-url.js +106 -114
  172. package/lib/util/gitpod-host-url.js.map +1 -1
  173. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  174. package/lib/util/gitpod-host-url.spec.js +97 -135
  175. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  176. package/lib/util/grpc.d.ts.map +1 -1
  177. package/lib/util/grpc.js +3 -3
  178. package/lib/util/grpc.js.map +1 -1
  179. package/lib/util/jaeger-client-types.d.ts +68 -0
  180. package/lib/util/jaeger-client-types.d.ts.map +1 -0
  181. package/lib/{theia-plugins.js → util/jaeger-client-types.js} +1 -1
  182. package/lib/util/jaeger-client-types.js.map +1 -0
  183. package/lib/util/logging.d.ts +33 -33
  184. package/lib/util/logging.d.ts.map +1 -1
  185. package/lib/util/logging.js +87 -129
  186. package/lib/util/logging.js.map +1 -1
  187. package/lib/util/make-link.js +5 -5
  188. package/lib/util/make-link.js.map +1 -1
  189. package/lib/util/parse-workspace-id.d.ts +10 -0
  190. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  191. package/lib/util/parse-workspace-id.js +30 -7
  192. package/lib/util/parse-workspace-id.js.map +1 -1
  193. package/lib/util/parse-workspace-id.spec.d.ts +4 -0
  194. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  195. package/lib/util/parse-workspace-id.spec.js +123 -84
  196. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  197. package/lib/util/queue.js +16 -55
  198. package/lib/util/queue.js.map +1 -1
  199. package/lib/util/queue.spec.js +147 -288
  200. package/lib/util/queue.spec.js.map +1 -1
  201. package/lib/util/repeat.d.ts +15 -0
  202. package/lib/util/repeat.d.ts.map +1 -0
  203. package/lib/util/repeat.js +55 -0
  204. package/lib/util/repeat.js.map +1 -0
  205. package/lib/util/semaphore.d.ts.map +1 -1
  206. package/lib/util/semaphore.js +15 -46
  207. package/lib/util/semaphore.js.map +1 -1
  208. package/lib/util/skip-if.d.ts.map +1 -1
  209. package/lib/util/skip-if.js +6 -6
  210. package/lib/util/skip-if.js.map +1 -1
  211. package/lib/util/timeutil.d.ts.map +1 -1
  212. package/lib/util/timeutil.js +16 -16
  213. package/lib/util/timeutil.js.map +1 -1
  214. package/lib/util/timeutil.spec.d.ts.map +1 -1
  215. package/lib/util/timeutil.spec.js +21 -24
  216. package/lib/util/timeutil.spec.js.map +1 -1
  217. package/lib/util/tracing.d.ts +52 -6
  218. package/lib/util/tracing.d.ts.map +1 -1
  219. package/lib/util/tracing.js +199 -64
  220. package/lib/util/tracing.js.map +1 -1
  221. package/lib/util/tracing.spec.d.ts +7 -0
  222. package/lib/util/tracing.spec.d.ts.map +1 -0
  223. package/lib/util/tracing.spec.js +121 -0
  224. package/lib/util/tracing.spec.js.map +1 -0
  225. package/lib/util/workspace-port-authentication.d.ts +7 -7
  226. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  227. package/lib/util/workspace-port-authentication.js +9 -12
  228. package/lib/util/workspace-port-authentication.js.map +1 -1
  229. package/lib/workspace-cluster.d.ts +15 -3
  230. package/lib/workspace-cluster.d.ts.map +1 -1
  231. package/lib/workspace-cluster.js +19 -4
  232. package/lib/workspace-cluster.js.map +1 -1
  233. package/lib/workspace-instance.d.ts +25 -4
  234. package/lib/workspace-instance.d.ts.map +1 -1
  235. package/lib/wsready.d.ts +1 -1
  236. package/lib/wsready.d.ts.map +1 -1
  237. package/lib/wsready.js +2 -2
  238. package/package.json +22 -13
  239. package/pkg-yarn.lock +12 -7
  240. package/provenance-bundle.jsonl +2 -0
  241. package/src/accounting-protocol.ts +53 -53
  242. package/src/admin-protocol.ts +43 -20
  243. package/src/analytics.ts +28 -15
  244. package/src/auth.ts +2 -2
  245. package/src/context-url.spec.ts +37 -9
  246. package/src/context-url.ts +94 -36
  247. package/src/email-protocol.ts +5 -6
  248. package/src/encryption/container-module.ts +2 -3
  249. package/src/encryption/encryption-engine.spec.ts +9 -8
  250. package/src/encryption/encryption-engine.ts +14 -14
  251. package/src/encryption/encryption-service.ts +4 -5
  252. package/src/encryption/key-provider.ts +16 -19
  253. package/src/env.ts +9 -10
  254. package/src/gitpod-file-parser.spec.ts +55 -61
  255. package/src/gitpod-file-parser.ts +16 -17
  256. package/src/gitpod-service.ts +174 -109
  257. package/src/headless-workspace-log.ts +6 -4
  258. package/src/ide-frontend-service.ts +2 -2
  259. package/src/ide-protocol.ts +119 -0
  260. package/src/index.ts +16 -13
  261. package/src/installation-admin-protocol.ts +42 -0
  262. package/src/license-protocol.ts +5 -6
  263. package/src/messaging/browser/connection.ts +185 -21
  264. package/src/messaging/browser/window-connection.ts +39 -29
  265. package/src/messaging/client-call-metrics.ts +70 -71
  266. package/src/messaging/error.ts +6 -5
  267. package/src/messaging/handler.ts +13 -1
  268. package/src/messaging/node/connection.ts +23 -70
  269. package/src/messaging/proxy-factory.ts +32 -33
  270. package/src/oss-allowlist.ts +15 -0
  271. package/src/payment-protocol.ts +2 -2
  272. package/src/permission.ts +40 -33
  273. package/src/plans.ts +236 -189
  274. package/src/protocol.ts +280 -277
  275. package/src/snapshot-url.spec.ts +27 -0
  276. package/src/snapshot-url.ts +27 -0
  277. package/src/team-subscription-protocol.ts +33 -23
  278. package/src/teams-projects-protocol.ts +27 -9
  279. package/src/typings/globals.ts +4 -4
  280. package/src/util/analytics.ts +56 -18
  281. package/src/util/async-iterator.ts +4 -5
  282. package/src/util/cancelable.ts +3 -3
  283. package/src/util/date-time.ts +8 -8
  284. package/src/util/deferred.ts +6 -6
  285. package/src/util/disposable.ts +3 -6
  286. package/src/util/event.ts +9 -11
  287. package/src/util/garbage-collected-cache.ts +9 -6
  288. package/src/util/generate-workspace-id.spec.ts +26 -6
  289. package/src/util/generate-workspace-id.ts +458 -440
  290. package/src/util/gitpod-cookie.ts +38 -0
  291. package/src/util/gitpod-host-url.spec.ts +40 -13
  292. package/src/util/gitpod-host-url.ts +41 -38
  293. package/src/util/grpc.ts +4 -4
  294. package/src/util/jaeger-client-types.ts +102 -0
  295. package/src/util/logging.ts +109 -86
  296. package/src/util/make-link.ts +6 -7
  297. package/src/util/parse-workspace-id.spec.ts +37 -8
  298. package/src/util/parse-workspace-id.ts +32 -7
  299. package/src/util/queue.spec.ts +27 -25
  300. package/src/util/repeat.ts +45 -0
  301. package/src/util/semaphore.ts +4 -6
  302. package/src/util/skip-if.ts +9 -6
  303. package/src/util/timeutil.spec.ts +14 -15
  304. package/src/util/timeutil.ts +15 -11
  305. package/src/util/tracing.spec.ts +88 -0
  306. package/src/util/tracing.ts +202 -31
  307. package/src/util/workspace-port-authentication.ts +10 -13
  308. package/src/workspace-cluster.ts +26 -8
  309. package/src/workspace-instance.ts +53 -23
  310. package/src/wsready.ts +3 -3
  311. package/data/builtin-theia-plugins.json +0 -372
  312. package/lib/messaging/connection-error-handler.d.ts +0 -27
  313. package/lib/messaging/connection-error-handler.d.ts.map +0 -1
  314. package/lib/messaging/connection-error-handler.js +0 -46
  315. package/lib/messaging/connection-error-handler.js.map +0 -1
  316. package/lib/theia-plugins.d.ts +0 -11
  317. package/lib/theia-plugins.d.ts.map +0 -1
  318. package/lib/theia-plugins.js.map +0 -1
  319. package/lib/util/repeater.d.ts +0 -22
  320. package/lib/util/repeater.d.ts.map +0 -1
  321. package/lib/util/repeater.js +0 -118
  322. package/lib/util/repeater.js.map +0 -1
  323. package/lib/util/safe-promise.d.ts +0 -11
  324. package/lib/util/safe-promise.d.ts.map +0 -1
  325. package/lib/util/safe-promise.js +0 -34
  326. package/lib/util/safe-promise.js.map +0 -1
  327. package/src/messaging/connection-error-handler.ts +0 -62
  328. package/src/util/jaeger-client.d.ts +0 -105
  329. package/src/util/repeater.ts +0 -49
  330. package/src/util/safe-promise.ts +0 -26
@@ -18,6 +18,10 @@ export interface WorkspaceInstance {
18
18
  status: WorkspaceInstanceStatus;
19
19
  configuration?: WorkspaceInstanceConfiguration;
20
20
  readonly deleted?: boolean;
21
+ /**
22
+ * Contains information about the image build, if there was any
23
+ */
24
+ imageBuildInfo?: ImageBuildInfo;
21
25
  }
22
26
  export interface WorkspaceInstanceStatus {
23
27
  phase: WorkspaceInstancePhase;
@@ -36,16 +40,16 @@ export interface WorkspaceInstanceConditions {
36
40
  failed?: string;
37
41
  timeout?: string;
38
42
  pullingImages?: boolean;
39
- serviceExists?: boolean;
40
43
  deployed?: boolean;
41
44
  neededImageBuild?: boolean;
42
45
  firstUserActivity?: string;
46
+ headlessTaskFailed?: string;
47
+ stoppedByRequest?: boolean;
43
48
  }
44
- export declare type AdmissionLevel = 'owner_only' | 'everyone';
45
- export declare type PortVisibility = 'public' | 'private';
49
+ export declare type AdmissionLevel = "owner_only" | "everyone";
50
+ export declare type PortVisibility = "public" | "private";
46
51
  export interface WorkspaceInstancePort {
47
52
  port: number;
48
- targetPort?: number;
49
53
  visibility?: PortVisibility;
50
54
  url?: string;
51
55
  }
@@ -63,5 +67,22 @@ export interface WorkspaceInstanceConfiguration {
63
67
  theiaVersion?: string;
64
68
  featureFlags?: NamedWorkspaceFeatureFlag[];
65
69
  ideImage: string;
70
+ desktopIdeImage?: string;
71
+ supervisorImage?: string;
72
+ }
73
+ /**
74
+ * Holds information about the image build (if there was one) for this WorkspaceInstance
75
+ */
76
+ export interface ImageBuildInfo {
77
+ log?: ImageBuildLogInfo;
78
+ }
79
+ /**
80
+ * Holds information about how to access logs for this an image build
81
+ */
82
+ export interface ImageBuildLogInfo {
83
+ url: string;
84
+ headers: {
85
+ [key: string]: string;
86
+ };
66
87
  }
67
88
  //# sourceMappingURL=workspace-instance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-instance.d.ts","sourceRoot":"","sources":["../src/workspace-instance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAE9B,EAAE,EAAE,MAAM,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,EAAE,MAAM,CAAC;IAIf,MAAM,EAAE,MAAM,CAAC;IAIf,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,uBAAuB,CAAC;IAKhC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAG/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,MAAM,WAAW,uBAAuB;IAEpC,KAAK,EAAE,sBAAsB,CAAC;IAG9B,UAAU,EAAE,2BAA2B,CAAC;IAGxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAGvC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAGnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,oBAAY,sBAAsB,GAG9B,SAAS,GAIT,WAAW,GAKX,SAAS,GAKT,UAAU,GAIV,cAAc,GAId,SAAS,GAIT,aAAa,GAGb,UAAU,GAGV,SAAS,CAAC;AAEd,MAAM,WAAW,2BAA2B;IAExC,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAGD,oBAAY,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAGvD,oBAAY,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IAElC,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,cAAc,CAAC;IAG5B,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,2BAA2B;IAExC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAG7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAG5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAChC;AAGD,MAAM,WAAW,8BAA8B;IAG3C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAG3C,QAAQ,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"workspace-instance.d.ts","sourceRoot":"","sources":["../src/workspace-instance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAE9B,EAAE,EAAE,MAAM,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,EAAE,MAAM,CAAC;IAIf,MAAM,EAAE,MAAM,CAAC;IAIf,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,uBAAuB,CAAC;IAKhC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAG/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAGD,MAAM,WAAW,uBAAuB;IAEpC,KAAK,EAAE,sBAAsB,CAAC;IAG9B,UAAU,EAAE,2BAA2B,CAAC;IAGxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAGvC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAGnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,oBAAY,sBAAsB,GAG5B,SAAS,GAIT,WAAW,GAKX,SAAS,GAKT,UAAU,GAIV,cAAc,GAId,SAAS,GAIT,aAAa,GAGb,UAAU,GAGV,SAAS,CAAC;AAEhB,MAAM,WAAW,2BAA2B;IAGxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAM3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,oBAAY,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAGvD,oBAAY,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IAElC,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,CAAC,EAAE,cAAc,CAAC;IAG5B,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,2BAA2B;IAExC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAGD,MAAM,WAAW,8BAA8B;IAG3C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACtC"}
package/lib/wsready.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wsready.d.ts","sourceRoot":"","sources":["../src/wsready.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,oBAAY,mBAAmB;IAC3B,uBAAuB,gBAAgB;IACvC,yBAAyB,kBAAkB;IAC3C,sBAAsB,eAAe;CACxC;AACD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,mBAAmB,CAAA;CAC9B"}
1
+ {"version":3,"file":"wsready.d.ts","sourceRoot":"","sources":["../src/wsready.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,oBAAY,mBAAmB;IAC3B,uBAAuB,gBAAgB;IACvC,yBAAyB,kBAAkB;IAC3C,sBAAsB,eAAe;CACxC;AACD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,mBAAmB,CAAC;CAC/B"}
package/lib/wsready.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
+ * Copyright (c) 2022 Gitpod GmbH. All rights reserved.
4
4
  * Licensed under the GNU Affero General Public License (AGPL).
5
5
  * See License-AGPL.txt in the project root for license information.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.WorkspaceInitSource = void 0;
9
- // generated using github.com/32leaves/bel on 2021-08-03 10:42:32.582603295 +0000 UTC m=+0.005734479
9
+ // generated using github.com/32leaves/bel on 2022-02-15 11:53:18.380158212 +0000 UTC m=+0.011913675
10
10
  // DO NOT MODIFY
11
11
  var WorkspaceInitSource;
12
12
  (function (WorkspaceInitSource) {
package/package.json CHANGED
@@ -1,37 +1,45 @@
1
1
  {
2
2
  "dependencies": {
3
+ "@types/react": "17.0.32",
3
4
  "ajv": "^6.5.4",
4
5
  "analytics-node": "^4.0.1",
5
- "inversify": "^5.0.1",
6
- "jaeger-client": "3.17.2",
6
+ "cookie": "^0.4.2",
7
+ "inversify": "^5.1.1",
8
+ "jaeger-client": "^3.18.1",
7
9
  "js-yaml": "^3.10.0",
8
- "opentracing": "^0.14.4",
10
+ "opentracing": "^0.14.5",
9
11
  "prom-client": "^13.2.0",
10
12
  "random-number-csprng": "^1.0.2",
13
+ "react": "17.0.2",
14
+ "react-dom": "17.0.2",
11
15
  "reconnecting-websocket": "^4.4.0",
12
- "reflect-metadata": "^0.1.10",
13
- "uuid": "^3.3.3",
16
+ "reflect-metadata": "^0.1.13",
17
+ "uuid": "^8.3.2",
14
18
  "vscode-jsonrpc": "^5.0.1",
15
- "vscode-languageserver-protocol": "3.15.3",
19
+ "vscode-languageserver-protocol": "3.16.0",
20
+ "vscode-languageserver-types": "3.16.0",
16
21
  "vscode-uri": "^1.0.1",
17
22
  "vscode-ws-jsonrpc": "^0.2.0",
18
23
  "ws": "^7.4.6"
19
24
  },
20
25
  "devDependencies": {
21
- "@types/analytics-node": "^3.1.4",
22
- "@types/chai-subset": "^1.3.1",
26
+ "@types/analytics-node": "^3.1.5",
27
+ "@types/chai-subset": "^1.3.3",
28
+ "@types/cookie": "^0.4.1",
29
+ "@types/jaeger-client": "^3.18.3",
23
30
  "@types/js-yaml": "^3.10.1",
24
31
  "@types/mocha": "^5.2.7",
32
+ "@types/node": "^16.11.6",
25
33
  "@types/random-number-csprng": "^1.0.0",
26
- "@types/uuid": "^3.4.5",
34
+ "@types/uuid": "^8.3.1",
27
35
  "@types/ws": "^5.1.2",
28
- "chai": "^4.1.2",
36
+ "chai": "^4.3.4",
29
37
  "chai-subset": "^1.6.0",
30
38
  "mocha": "^5.0.0",
31
39
  "mocha-typescript": "^1.1.11",
32
40
  "rimraf": "^2.6.2",
33
41
  "ts-node": "^9.0.0",
34
- "typescript": "~4.1.2",
42
+ "typescript": "~4.4.2",
35
43
  "typescript-json-schema": "^0.50.1",
36
44
  "typescript-parser": "^2.6.1"
37
45
  },
@@ -39,7 +47,8 @@
39
47
  "lib",
40
48
  "data/*.json",
41
49
  "src",
42
- "pkg-yarn.lock"
50
+ "pkg-yarn.lock",
51
+ "provenance-bundle.jsonl"
43
52
  ],
44
53
  "license": "UNLICENSED",
45
54
  "main": "./lib/index.js",
@@ -52,5 +61,5 @@
52
61
  "watch": "leeway exec --package .:lib --transitive-dependencies --filter-type yarn --components --parallel -- tsc -w --preserveWatchOutput"
53
62
  },
54
63
  "types": "./lib/index.d.ts",
55
- "version": "0.1.5-server-vscode-ouath2.18"
64
+ "version": "0.1.5-server-vscode-oauth2.24"
56
65
  }
package/pkg-yarn.lock CHANGED
@@ -4,21 +4,26 @@
4
4
 
5
5
  "@gitpod/gitpod-protocol@0.1.5":
6
6
  version "0.1.5"
7
- resolved "file:///tmp/cache/fd433e294dbd0a7afaaf750f52d756fca7db787b.tar.gz"
7
+ resolved "file:///tmp/cache/76401edec780c74f200dc7a17df3dc3cc5f76cc6.tar.gz"
8
8
  dependencies:
9
+ "@types/react" "17.0.32"
9
10
  ajv "^6.5.4"
10
11
  analytics-node "^4.0.1"
11
- inversify "^5.0.1"
12
- jaeger-client "3.17.2"
12
+ cookie "^0.4.2"
13
+ inversify "^5.1.1"
14
+ jaeger-client "^3.18.1"
13
15
  js-yaml "^3.10.0"
14
- opentracing "^0.14.4"
16
+ opentracing "^0.14.5"
15
17
  prom-client "^13.2.0"
16
18
  random-number-csprng "^1.0.2"
19
+ react "17.0.2"
20
+ react-dom "17.0.2"
17
21
  reconnecting-websocket "^4.4.0"
18
- reflect-metadata "^0.1.10"
19
- uuid "^3.3.3"
22
+ reflect-metadata "^0.1.13"
23
+ uuid "^8.3.2"
20
24
  vscode-jsonrpc "^5.0.1"
21
- vscode-languageserver-protocol "3.15.3"
25
+ vscode-languageserver-protocol "3.16.0"
26
+ vscode-languageserver-types "3.16.0"
22
27
  vscode-uri "^1.0.1"
23
28
  vscode-ws-jsonrpc "^0.2.0"
24
29
  ws "^7.4.6"
@@ -0,0 +1,2 @@
1
+ {"payloadType":"application/vnd.in-toto+json","payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vc2xzYS5kZXYvcHJvdmVuYW5jZS92MC4xIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJhZjA4NzEwNTc4MTAwNjBiN2VkNzVkNjAzYjQ0ZTExMmZmZGYxYTQ0NDY1ZTVhYTIwZTI3MjNkMjVhZDAyNjMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NDkyNmNmM2QwOTg3ZjQzY2I0NzQzZjFiZDEzMTRlYjU5MmQ0OGNlMTM0OGQ2YmYyODIzNTNjNzAxYmJhZWEwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2Vudi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5Y2YxMzYwNmJmNDU4YjgyZDVhYzliMDdjYmRhYWUzZDE0OTg5Y2QyNTkyNTM0M2NiYzYyNjhjZThlZmI1YTI0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGRiNWZiZTg0MzU0NWNjMjI1YTI1MmU0NGI0MGUyYzY1ZWQ3YWRhOWQwZjZmZTRiMGE4ZGQwYWI4Y2YyYWJhMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tc2VydmljZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4NWViMzhjMjFmMGE3YjlmYzNmYmQ3MTdmN2FhYWU5YWY4NjBlN2U2MDgyMGVkMDVmZDY4MzI3NTJhMjczZDBmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYW5hbHl0aWNzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyYTkxYWI1MjQ4MDUxZDVkYzQxMmQ1Y2ZkNjk1ZTc0NmI2Yzc0NDA2YjJlZDQxYThmZDg1MDY1NDI3Mzg5ZmFkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VtYWlsLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQzYTIxYzZkMGIzODY2ZDUwZDcxNTc1NWFmMzE5MmI1YjkzOTk4YWJjNjc3YTQxNjdkZGMzY2Q0YTE3ZDE4ZDMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMThkZDU2YzIzNWQwNTQ2NWFkZmRiMDk3NGRmZTg5M2NmNTQwZDQ5NzQ5OWVmNDc3OGMyOTc3MDFhMDM3NGNkNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dhcmJhZ2UtY29sbGVjdGVkLWNhY2hlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM0ZWFjOGVhMjBhYTU1NjQ3MjkxNGI3ZGFiYjFmNWFkMTcxYjQzMmYxODk5NTk0ODNiOTRmYzI2NjRkMTUxNmUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9jb250YWluZXItbW9kdWxlLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhNGZkMTFmMTczMjA2YTZjMTliNzY1ZDhmNDhkMTQzYzUwNWE4Y2Q3M2IwYzNkMDk1NjgwYjg0ZDdmOGY3NzFjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW1zLXByb2plY3RzLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjUzYmY2M2JjZWY3M2ViZmQ2OTUwNjFkNjg0YmM3Y2EzODAwNDY4YWU5ZTYwNDY2ODVlYjRjYWI3ODBiOGU0YjYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLXNlcnZpY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZhZGI5Yjk2YjhmOTI0M2E2MTIwOTNhZGQwNjQ3NThjYWMyZDA4NTYwODhhMzFlMzJhN2Y2YzYyN2JhNzhkOTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDJiNTJkODVkYWQxZWY4ZTkwMTIzZjc5YTk3YTNkYzViYjdmYzJhNmJlMmIzNzUzZTUyZGEzOGI2ZWU0MGI3ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY3Y2MwYTY4MjVmMzk2NGM3MDgwOWU5YzY5MmIyMjU1ZmIzM2I2ZGI1MGQ1NTAxNTg2YmI3ZDkyMTAzODJjNzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdHlwaW5ncy9nbG9iYWxzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzZDY3MTkyMDdiZjlhODk2NDQ5N2NjZjg0NWY0Yjk5NWY3MTIxNmYyZTc3ODRlOTYwMmViZjVmMzQ5ZTY0YmQwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FkbWluLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNWI4N2Q3Mjg2YTQ3MGQ4NGNhNjRjZjM3YjE0NWVjOTk5M2Q5YmFjNmM2ODUwMTIwMTA3MzU5MGFjZGYwOTNmOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg2ZGM3Nzk1MTEwNzE4ZDZlYTdiMTllMWIwMzE3Yzc2MGYzZGRmNjcyYzExOWQ3Nzc4YzlmMjJiOWE4YTBmNjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzkxOGVkMDQyOWI0M2E5YmQ2MTUyNGY2YWM0Y2ZmOTAzN2JlYWE1NjQzYTU1MTI4ZTY5YTAwZTQwODliZmQ3YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMWRmNjYyYzgzMWMyNWRlZWQzNjJjZWU4ODNkNWFkNjUzNTZmOTE1NGU1MzM3ZTM1NzIyMDFmNzU2NWJiZmVmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VtYWlsLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU0ODlkNDA1ZDg3NmVhM2RlNDM0NTViZDEzMjRjODIxMGU3OTk0OGNjMzJlZTg5ZWE2NTU4NWUwNWRjYTk2ZmUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2E0NWUyNWE1ZDFjZWQwOWVmMWI1OGU0YThkOGE5ZTIyMGJlNjRmNDVhZWJjMzEyOGI1NTRkYTRjNDMwODhmMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbWFpbC1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNjMjdjODlhODE4NDAwZTAyYTI1NWYyOTdmMTdhYjMwZGVkZmRhNjMyMTYwMWEzOTQ1MmU4MjZmNWQ5NzYzYzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nYXJiYWdlLWNvbGxlY3RlZC1jYWNoZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzliMzM3NTBiZjY2ZTcwNzk2MDc0N2IyOTEyODE4NzJlNmVlOTZiZTQ3MzY3ZWRlMjMxZjQzYjUzNzg0ZGQ0NiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hZG1pbi1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwYWFjYTcwOWNkMzdkMTA4ZTViYzA1NmJiZjU0OTNmYTc4YjIyMzkyYTgyNGQ4ZTJmMWU4MjAzNTFjYTM0MWVkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVlcC1wYXJ0aWFsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA1ZTY4MTEzODI3MDUxY2RkOTE5NTdkMjlhZTYzYTgxZWQwZTg0N2JhODkxOWM3YmY4Zjk3ZTliZjY5YTBkNGEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTk5OTlmNGU2ZmFmMGFmN2MzNGZlNDlhZDQ0NDQyZTkwOWY2MTVjMmRhMTVmYTk1MGRmMWQ1M2ZhM2M2YjAyNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGM2YWQyNTVjN2NjZDljNDVmZTQxYjM1NzkzN2JmYTM2NDY1MDBiNjBhMTU2YmQyZWJlNmM0MjU2YzAzOGE3MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hbmFseXRpY3MuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyYTZkMDJmNjJhMGRiNzA1OTAzMGRhYzc3NGUxMGY1NzczNWQ4M2RjNzAyMWU5NzdlNTg1NGQwMGFmY2IyMzczIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGY0MWZkZGIyOWY1NGJkZWY2NjExZjFkMmQxOTZhMzRkOGJiMGRmYjRjMThkNTFkNDkxMGM5ZDk3MDhlMWI3MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjc1NTE0OWZlODMxM2IwNmI0MTIxZjJjZmQyMDA5MmRmMTkwMWQ2NTdhYjkwZWM4MmQ2OTkwNmY0OTIwNTliYjkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvY29ubmVjdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwMWZhZjdhNzA5YTlhODJiODVhZmJjNjA3NDRhZWJkYjVjNWM5MmQ5ZjllMDg0OTZiYzQ2ZTA1YTU3ZTk0YzJmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FjY291bnRpbmctcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmFjOGQ0N2VmNmQ0NjcyMmU5ZGFkY2Y2YThhNzY1NTBiM2VhZjE2NDlkZDQ5ZjE1Yzg2YTljNTVmYmE1MjNjNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEzODY3ZGNlNmRkNGY5N2EyOWY0ZjhmZmM3NDg1ZTdmYzlkYTNhODg3YmI4NzlmNmE0YzhhNTg3YzUwNTdmYTciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImI5NjFkMzA1MDMyZTE1N2FiNmUzYmJlMzdiNDFhYzRmMWQ0MzBlYzUyMTM2N2YwYThmMjI4ZWEzZTk3YzAyMzciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiNDQ4ZDlhMjU3Yjc0MjVhNzg0YzI0ZTNkZDNmMDQ2NDZmZGZlODJmNjJiN2M4ZTE1ZTliYmU1ZTdlOGYzNDFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9jbGllbnQtY2FsbC1tZXRyaWNzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzA2NzE3NjkzNDYzZTFhM2I2OGJkNzNlNmE2ODc4MjAzMWM5YWY1N2FkMjZlMDhiMzFmMGI2MWY3OWU5MmVmNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmNGJhZDI0ODY5NTNlZGExZDU2YjVhNmNlYzlkYTFlMzJiZWFjNTRhMDRlMWEwYzM0MzQxNjFjNGE3NjAwNTk0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9jbGllbnQtY2FsbC1tZXRyaWNzLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU0NTEzMDk2MzdlM2Q3MDFkYjA4ZmM4YjU5ZDhhZmZhZjk5ZmFiMWM0ZTZjMzBlNWRmYWI3MDUwYzNlMTAzOGMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk5MTU3MjRjODg0NDRmNzg0MDlmYjhkOGJmM2Y5ODhmNTZhY2I3YzRiZTI3NWZmOGMzMTJiMWQyNzg2YTBlMjMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzYTZiYzQyNjUzYjMwMjc0Zjk1NDlkODViMDFkNmY5ZDEzZjc4YTZkNjI5ZWVkZDc4NTkzY2E0YzUzYzczNWExIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2luc3RhbGxhdGlvbi1hZG1pbi1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMwYmVhNWM0NWVjYjEwYWZmY2Q4YjIxMDc3YWQ2ZmM1ZjRlNWI1MmI2MGU4YzQwZWEwZDMyNWYzNmE3MzQ3MWYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvc25hcHNob3QtdXJsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk4Y2RlNTc1ZGQ3ZjE4MTE0MDM0OWIyMTUxOTcxOWRjZTNmZGIxMWI2MWMyNDg5NjcxMTE4MzBkNDlhYjE2M2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdHlwaW5ncy9nbG9iYWxzLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjRjNzJlMzcyM2RiZDlkZjUyY2ZmZTY4Y2NiOGU5N2QzNjllZjdkYjFhMjNiNWU1ZTE2Y2Q5YzViNzA0MzM4ZjgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg4Y2I1NTlmNzc2MGE5OTY3MTlhOTIyYjAyYTNkYjVjMTRkOWQ3YjQ5ZWFlM2Q3OGZjOTYzYmY2Yjk4NGE1YjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkODRjYWY3OWVmYzc5OTI0ZDRkYjVmZGZkNjBmYzk5Y2ExZmM3MGYyM2VmYjE4NjY1MzFiMWJiZDRhYzE3OWYxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BsYW5zLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTkwMDJkOGVkNzIxZGRlNjI1ZWRkYmM0OWJlYTM3ZWY0ODYwZmE0N2U0OWU5NGNjMDk4ZWYxYmI3OTEzNWZkYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvbm9kZS9jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiY2Q0MTg5OWFjMjllN2ZiN2U3Y2E3MTE5YjNkMmI3ZTBkMTUzNTEwNjZjMTVhYzM5ZDBiYzY5NmY5ZjhlZDZkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiYTc2MTVhYWE3YzdmYTQzNDZlY2M3Njk5ZDJhMGNmMDgzNDZjZGY5YzZlMWE4MzgyZWVmZmE0MmQxOTY3Mzk5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FjY291bnRpbmctcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTNlOTA3YTM4M2MxYzM5ODc2NzAyMWVmYjViZjFjMzc4MTc0MDI0NGU3MjJjZmI4NjMxYTVmNWFkYjUxYTcxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtaW5zdGFuY2UuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTBhNjQzZTBiMjM2N2E0OWNhNTU0MTBiOGQ0MzE5YWUyMWU3ZmRmZmZkNDg5OTQ5YmZhMTI5ZTY4NjBlNjZlZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3JlcGVhdC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkOTkwNTkxNWNjYTk1YTE5ZjU0ZmRmZWRmNzdlZGIyMTI2NWU2MDRmZThiYjY1NGZmZmU4N2IzMjMwZWE3ODcyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjI4NjYxYjY1NTUyZjdiYzJkZWJiZTU1MzBjMTg4MTMxOWRmMzk4YWQ5MjBjZjI4ZGRhZGUyYzA1NDIyYzA2YzkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kZWVwLXBhcnRpYWwuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5NjRhMjkzMWMxNzkzZGRlYTVhODZmMjU3NmNmYmU0M2IzMmFlMDIwZjZkYTk1OGFlNGY2OTA1ZjlmNTFmMjEwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmY0ODI2NjgxMjYxZGFmMDEwZmQzMTk4ZGMzMTQ0Yjg2YTNkY2FmMzYxNDg1NTQ1YmNmNTVlYmM5OWFiZTc4MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWFlN2MxNzk3ZWNiZjNhZDU1MzZhMzE4MTI5MjRmMjUwM2YyODQ0Y2ZkYzBlNGNhNDc1NDI0ZDVlNzY2YzEwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2NvbnRleHQtdXJsLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwYjliYmRiY2U0N2M0ZGIzMjM0YzRiMDdhZTM0ZGE3N2ZmNjkyYTQxODI3NTkzZDk5NTU5NjE0MDFkNjBlYjZlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQwMmI1MTUxNzc1OWZmOTIyODEzYzZjYTMxYTY0ZjFmMjczZjU5NTRiNGIzMzUwZjlhZDE3NzFiYjk5ZmM4M2QiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuc3BlYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWRkYjk4YjZmYTE2NTg3M2NkMDNhMDY3ZTA0OTlhMmQxYTlkNGJmY2I2YWRjNDhmZGY0OTIxNjIwMzgyMDE1NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImE4OGU4ZWViZmQzODkwOTkwOGUzMDhjNjA4NmJlMzRjMWRjOWFjNTM4YmEzOGY4NTVlOTAzMDFiNzQ3ODQ5MWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWVlYWVlODhjZDdiMTYyOTc3OTQ4YzU0Y2E3M2I5MzFjZGY4M2YwMDlmMWI3ZTBlM2I2NjNhNjEyMDJjYWM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0MDgxNWM4ZWMxNzUwYTg2ZGFmOWUwOTQzZWQzZDMzMWIwOTEyOWExZDJlN2ZmZmY1OTJjOTk4NTIyOGI2NWQ2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxODQ4NzkwYmIzZWMxNTg5MjA5Yjk4MzZlMzI5NmY3NzMzOGE1OTg3OWYwYWZmZWRiMjg5Mzc4Y2Y5YjI4MDkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDViN2EwMzg4N2EwYzRkZDRmNTRjYzE0ODc2Y2JkZmQ1MDk1OGRmZDU0MGIxOGNmN2Q2OGFhYmNkN2VmNjQyMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjUxMTU5ZjIyYThiNjZiMmYxYzVlNjUxZTM4YWExZjU3YmU0ZTY3YjUyMzMwZDAxNmJkMzZkMTRmODVjZTc2ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hdXRoLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyODg5MjExNmMyMjYyMDYyYjllOWMzMjQwMGQ3YzhhYWViNzZkNjI3ZTg3OTQ5Zjg1NTRhZjhlZjBmN2ZlY2RjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImMyZjU2ZWUwYzc1MzljMzlmNjk3MWVlOWZhODFjMDQ1MGRmZjQ0YWEzZjAxZDY2NmM4YWQ2MjI5YmRmMzM0NjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9zZW1hcGhvcmUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTRmNmQ5ZjcxYTk3OTljNzk3MTg1N2RhZGE5YzZkODNmNTg0ZTc0MDg5NGUwNTg5ZjZjYjZlOTZiY2YxODFmOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTdjNzJlZmQxNWNlZTg5OWI0ZjQ2Mjg3Mzk0OGNlN2Q4OWFjMjNkZDQzYWRjY2VjMzlkYTBlNzA3OTEyMzUyYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvaGFuZGxlci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3Mjg3YzRlMGE0MDE3ZTkwOGNiNjYwODhlYWU0M2JlMmVkZWUzYmUxYjAxMGFkYjAyMzc3Mzg0MzExOTUyYmFmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTQzZGUxNTUyMDExMTU5MTcyZGJkNTFkNGI5YmQzNjBjZDUzZWVhNjBjZDFhZDA1MTJlMDQwZDFlNGQ1MmY5YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE4NjkyZjM2YWQzYTExMDkzOGNiMGRhZTY3NzQ5NjE3ZGRjMmFkNTdkZjNlM2Y3ODE1ZDNlNjE5YmUxMmU2MmUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9jYW5jZWxhYmxlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJhYTg2OWVkMzk4MGI2YTBmN2NjOTcyMDdjZTkxZjI5ZjdjZGMyZTM3NzI2YjNiNTcxN2QwZjYyYzJlMTA1MTgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9zZW1hcGhvcmUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjY0ZTc4NDQ2M2EwZWYwMWQxYjliYzE5MWI3Y2UyMTEzYzEzZjkyZTgyYmEwMTQzZTJhYjJjMDU0MWJhZjI1YSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2QtZmlsZS1wYXJzZXIuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjRiZGM2YTc5OGE1ZmNlM2U3NDAxYWJhYTNlNjBlODA2N2U1NzgxZTk2NjdmN2VhYjg2YzQ2MGNjMTQwM2U0YmQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvb3NzLWFsbG93bGlzdC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkMmM3NTFhZTdhMTgxZWFmM2ZkZTM5ZDgzYjVkNmVmMWE5MTU5YjIwMDRkMDUzMzlkMzdlNTkwN2IzNjE2MWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGU4ZDhjMWE0ZmQ3Y2UyOWQwOWQxZDAzZjE5ZWQzYmE0MDNiODc0YWYwZTFhNmIxOGNmYTFiZWY1MWNiZmQ5OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2QtZmlsZS1wYXJzZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzA4NGNlMzNiMGNjN2FmMGZjMWI0ZDVkM2RjZDY2NjI3Y2M1ZTAyY2UyN2E0ZGRmYTBlMDk4NTEzZTIzMjU1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVjYzkwOWE1MmE1OTMyMDZjMDNkNmFjMTVmZDk2ODJkMDU3ODE0Yzc0ZjNiOWZhOWU1YjFhODYwZTVhMzVhYjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDYxMWJmMzUzYWQwZmIzMWMyYmI0Nzg0NTQ3OWFlOWFkZWNhZDI5NGY3NWQyNzcxNzUwMzJhN2YxMTE0ZTQ2NSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtY2x1c3Rlci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2ZDRlOTNkMTBhNGRmNGY5YzRhNTY4YmRjYjU2ZTFiYzMxMTFmMjJmNTdjYTgzOWZmODBmMzEzN2M3ZDE2ZmU4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FkbWluLXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNzI4ODU0YzZiNTY3MWY2YjIxZWIyZDQzZDMwYzZkMzQ1OGFlNzNiNTE4MTZmN2Q4M2MzNmRkN2M3MTJiMWJhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvamFlZ2VyLWNsaWVudC10eXBlcy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZDcxYjJjMmI4Mjg0ZjIwZTg4YzcyMjcwOTc5YjY4ZTVmODk5OGRmODM2ZTg3YzczYzNkYzgyN2FlNmU3MDgwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9oYW5kbGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE3NGE4ODFhOTliNjI3MTlhOWRhMWMxYjNiMjZlZWUyM2U0OWU2MmE3ZTg3YzY3NTU5MGRhMDM5NTZlMDkzYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWIxOWJhNWY2ZDk5M2ZjY2Q0N2VjNmE2Nzg4MDU1MzM2YTQyZTY5MjJmYTRjYmU4OWMyYjQ3NjVmMzIyMWIwYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkN2EzYWFkNGY5YTJjMTVjODEyNDZjMDFjMDY5MWU1OTMzYTliY2JjNjcxYmY1ODg2NDA1NjRkODI0NWNiZWQyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVkY2Q0NjVhYzgzZDEyMGI3ZTE2MWY3ZGNiYzhmNmRlM2Y3MWM4YWVhYjBiNjQ3MzNhZjM5MWNiMWE5ODFhMWMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGF5bWVudC1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVjOGEzOTA3M2Y2ZGVmOWZmMjlmMjBlMGY5YzFkNjRjYzNmMTE4NWE1MTdmNmIwMzZmNjRiZTE4Y2U3NzVkMzQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYXV0aC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3YjI4ZjEyNzlmZDdlZjAxMDc3ODZiY2QzNzAxOGIwZGYzZmNlY2RkYzNlOTBmMTk2MWM0YzUwZWEwMmQ2YjU3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTdjYTYwMzRiOTU3ZmUyODVmNzZmMWNkYzQ1MjA1OTQ4ZGJmOWE3MzAxMThjMzI5MjYwZmFkMzg0OTU3ZmU4NiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtaW5zdGFuY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxMzFkNzY5MjMyYTRiNDBkYmE4N2NiODg4MWE3NzFmM2JmMWVhZDA5OTYzOTk0MTAxMTcxYjk3MWI4MzFiZjZiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNjM5NjUxZmVmMDhhNjFjNjdkZDBiOTBkNDdhNWQxNDAxNDljMzRhMjU2M2VhNWRiMGU1ZWNmNTcwMjViYTE0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2tpcC1pZi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTAzOTFkZGM5NjkxZTk5YmUzNWNlZGQ1MDdjZmI3MzdmZTUxNmIyZTBhZTA5NzRhZGI3MzIzNzQ5ZWZlOGQ0ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tc2VydmljZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkMmVkMDBiODk4MjY5MTU4MmViZTg5OWVhMWE4NmMzOGNmYTljYjNmM2E1OWUxYWFjMjM4OTQ0NDZmOWJmZWM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIveWFybi5sb2NrIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjUzYzI4OWQzNjQ2MWIwYTRiMTNkZDdlMjA0NjFjYmZlMGNlMTE0OGRkNjMzZWVhZjczNGRhY2EyMzdiNGNhODMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWMzZjFhOWNlMmI1OWZiZjFiZTRjNjA5Y2QzYTg5YThlZTdmNWVmOTdjYzFkMDgzZDYwN2FlOWNjYjk3MDVjYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmNDcxZWFkZDU3MzBlNmFiMWFiZDdjNWRiYzY2ZGVhMTRjMzAzYmMxMTIwYjBiMDljY2EwNmE0NzQ0YTU0OTA1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQzMzFiYTIwZWIzMzI0ZDA3NDIwMWZmMjIxOGFiYzBlM2NkMTRmOTJlNDViMjM1YWUzMmY0MTQ5YThhNDM0MzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9sb2dnaW5nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdlOTg4YzczMzM3NmEzOTJiZjRlZWFmYTBhYzc3OTc1Yzk3YTIxMjdiZjI3ZTJiM2E1NWY5MzQ5MWFiYzk3NzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjYwMTAzOWRkYmI3NmYyYjY5YmEyNDljMTI1MjFhYjI5ZTQ3YWE5OTJjOGViMDVlYjBlMTc3MzE1N2U5Zjg5ODciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL3Byb3h5LWZhY3RvcnkuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzk4ZjBkMzBjOTBhOWMwNTYyY2RkOWZkMzk3ZDk3ZjA1ODUxZjYwODhhZjdkZjgwMmNmNzZkYWI3YzhjMmI4ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjcyMmYzM2E3NDc3NTQwMTg1YTYxZWFlNjg3ZjI5ZjFkM2NhYWNmYTQ0MmM4YTRkZDEzYjZlZjc0NWUwZmY4YWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kaXNwb3NhYmxlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDgwOGZkMjc4MTBkY2E2ZjliMDY0NTZiZjEzMGVlMGViMWUyNzI2MmY2Y2EwYjYzNGYyZDUyYTU2NzZlYjc2YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FzeW5jLWl0ZXJhdG9yLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImE4YzYwMjM1Y2ExMzBlOWQyMDY4YjVhOThkOTcxYTg4NjY2NDA4YjdjZDE2MDM0N2QxYzJhNTBlZTE0ZWI0MWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL25vZGUvY29ubmVjdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzNThhZWVhNjVmZWRlNDEwZmI5YjcwNTY1OGYzZDk0MjAwOThhMjRhMTU1OTc3OWUyODBhNWNiMjRkNjM0NTQ3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjYzZTJlZDIwOTY1YTg3ODBlMDIyYWIwMjE2MjcyMjMyYzJmM2MwNzVlN2Y0ZWZhNTIxODU4MWNjMjE3NjAzMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9oZWFkbGVzcy13b3Jrc3BhY2UtbG9nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdjNGFiMTY3OWVhY2ZjMjg2ZTlmNGI0NDExMzYyYzYxZWVkMmIxOTBkOTliYWRjYmZkMGU1MjVkNGRhMmIzYmUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg4MjhmZmI0OTFiMjAxZmUzYWNiNmJhMzA3OWNkODA2ZmY0OTdlMjhlODA3MWQ5YjIxYjZlNjMzZWY4ZWYzOTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTNkNTI3OGE3NDlhZThlMDllYWFlZWNlMDJhNTM4YTIwNzkxOGU4MDdmODZiN2IyYjZmMjI2MzU4NjQ3YmU4MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZXAtcGFydGlhbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDFlMDEyYTcxYmYyZmRmMGI4ZWQ1YmMwNGE0NGRhOTI5NmU4OGEzN2EwMzlhYjQ3OWNkOGViNmQzMzI5OGY2NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2QtZmlsZS1wYXJzZXIuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MzExOTgyNDA0N2ZhMzY5YjJiOGNlNjBhYmIzMWY1ZGY2MWQ3ODA4MTQ1ODg1NWJmNDgzODM2YWI0ZGZhMGQ3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2Vudi5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjYyMmY0OTY0MTRhZGMwMjk4NTgxNjFiMDFjNTkyZjIwMTlmZTQ3NmY3MTk0ODYyNDIyNDNmZDc2NTRlNjg1MjgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3NTM2NWI0MjkzYzc3NDNjYTU0ZmE0ODRiMDZkZWI2NzdiNWZkYjVkY2M0YjhjZDY4ZGVhMTY2NmE2YzMyMWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzMGY2MGUyNDQ3ZjU4M2E2YWI4ZjQ5M2ZlY2ZhOGU5OWY4M2ExMmMzZTM4OWRmZGE1ZGM3YjQzMDE4ZTBkYmU1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3Byb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5NWY2ZjZhYTM1OTRkNDA2N2YxMWE2NTllOWU0NmIxZjk5MzJkOTczNWI5M2FhMWI4MTVhZThjZmU3NzBlMjAxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg3MDJmNDg5MjBlOTFhMjFlY2VhZjkzM2U3MzE1M2RhNTExMGZjMjdhNjkzZWVhNTAyYWQ2Yjg5MjFmMGRhOWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGRkYzA3NGFhZThlNDdjYzUyNmY3MTdiYTY4MjRlN2RlNDUzNzlhNzU0OThjNjBlOGNkMWIwODRmYmZhNjJmYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZXAtcGFydGlhbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NmQ5ZDhkMmFmODhjYTE3MjI2NGVkOTBhOTVkZGZiMzZkZTcxZmQ3MTUxYTE0NGJjNjQ2M2UwNmU1ZjZjMTI0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYXN5bmMtaXRlcmF0b3IuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE3NjY1M2M0MGIwMDFmZGU1OGE1OWQyYjI5MmE0ZGNhZDVkMTFkZGM0MGYzMjdkYzdlMzBlYWRmY2I4Yzg4ZTMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGRhNWMxMmI0ZjdkMGZjN2QyOGIyYTBhNjA3ZDQyNGM5NjRhNTJlNzk2NGY5MmQyOTc5NTdkOWU1YjU0NmMxMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvbm9kZS9jb25uZWN0aW9uLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZmYmQ3OGQzZjFlYmZhNTZmYzg5OGRiNWE3MjM4ZTIyMzhiMTY3NmUzMWNmZDQzOGE4ZmU1ZjA1YjA5ZjI2ZmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9jYW5jZWxhYmxlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWRmNWJjNTM5MGJkMzlmNGZhMjRjMWRjOGU1NmM2NWE1NWIxYzUzYWQ4N2NhYmMwNTZlZjJhNGQwY2ZkYzI2OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM5ZDI5MmRkYjQ3ZjZmNzA3NGY2NjgyYTg1NjEzMThlOWVjMjVjM2Y1NTRiZThhZmI1NDgwNjM4Yzc2OWY4YWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmQwZGU2Njg4NWEwMDI4NGM5ZDEwMDRkZGRhMGVjOGFkNWYyYzhiZThkMTkwMmRmMmMyMjA2NTUwMDE1MGQ3YSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxM2FkOTAzZjk4OWU5ODk4OGVmN2M1NWYwYWI0ODM1ZDhhODgxMGUzM2RkNWU4MTZhYWI1NDEyMTI1MjQ5MTg3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2NvbnRleHQtdXJsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlMWM0ZjcyZGFjNjdjNGNlZjg1MjQyNzgxYzkxOGQzZGY0MzIwY2VhMjA2YWVkNzE4ZjFlNmMxZDRmMGU2MDIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGQ0Nzc5YmViYWI4ZmZjZGM4OTZiYmY4ODMwZDQwOGQ0ZTEyOTBiZjhlNjUxNTM1ZmFhNGMwYmZiOTM5NDU5MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dhcmJhZ2UtY29sbGVjdGVkLWNhY2hlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTk1OTBhYzM1YWQ0MTM5YjM0Yjk0ZjJlNTRhZjczODBjM2E4M2I0MTA5YTEzOTFkYzk5YjA4ZmZiY2Q1NTEwNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmE0NGEyNjVjZTYxZDZhOWQ4ODc3MzI3Y2YwMzE0MDExOTZlM2YyYTU3OTlmNTU1NjU3NjYwNmM4MGZkMmQ4YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjkxZDIzYTAzYTA4NGM0YTZiODA2ZjU4ZjEyODNkNzBhYzVlMDdhNGU3NjlkMmIyYzk3NjIxNzUyNDNmZTYyMDMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGMzYjYzZGNlMmRmYjlhY2M5Mjg3MDAxOTMwNGQwNmQ3MTljNWVjYzU3N2Q2ZWRjYzNmYmRjYWNhNzdmNWRmNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjYxNzRhYjZjMDg2ZWI4YjU3ZTM2NGI5MTUzYjdmZGVhZTlmZWEzMDE5YjBiZGI2MjE5ZDkwNjI1YTYxMjU5MDYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbGljZW5zZS1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmNGVhZjA5ZTI1Y2RiNDYwMzljZmQwNmY2Y2ExMWY5M2FmMDdjYmZmYjZjM2Y2ZmY5YTk1NDg5NjVhY2UwNDYyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGlzcG9zYWJsZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGYwZDc5NzRkYWYzMjUxYTQ1MDY2NjU3NTk5YTA2NDE5ZWIwZGU1NmU3MDE5MWU0ZDM1YTU0MDFiYjU1ZDY2NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDIwMmViMGEzMmMwMmU4OGIzY2I5ZTNjMjc2MDU2NDg0OTlkY2I4MGQxNGMwMTVkNDBkNDAyNDcxMDE3ZTRhMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjZmZDE0OTEwNTc2MzU0NmRjMzZhOTg2N2UzNDczMTkwMzhlZWZlNDIyOTk2ZjY1Y2FjN2YxYzFiZmZlYmZkZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtLXN1YnNjcmlwdGlvbi1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZhZjNmN2M2YjA1NWMxZTc4YjM2ZjI0YWVjYTMwMzVjZTMzYTkxMWFhM2EyNjkyNTdmMDFlMjczYmI3ZTI1ZjciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwMDY3ZGM4MzBiMmE1ZGUwZDUyZTc0ZTMyMzgxMjdlNjc5YTkzNmUwYTc3MGFhY2JjZTY2MTYyYjIyMDAzMTRiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjQ4ODVjNDI3NmRlMTVhN2QzMmZmZGNmMzQ0ZTZhMjQxM2I5OTFkNDAzOWQ0YTNjODdmYmQ4OTk3Y2ExMmRmYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL21ha2UtbGluay5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDNmZjQ2M2FmZTk3NWQwNWVjMWYzMjM3ZWUzMGVlYTM1MGIyNTU1OWZjYzEzNGMyNGVmYTFlNjNmNWI3YTlkMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dhcmJhZ2UtY29sbGVjdGVkLWNhY2hlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZkZjUyMjVhODZkZGVhYmM1NWQ0NjVhZWVlMmVjNGMyMzM4MTVhYTIxZDNkNmUxNWI3ZDU2Yjc4ZWJhODY5NDIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWNsdXN0ZXIuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1YmYzYzJiYjA2ZjI5ZWE5YmQ4ODIxMTg3MGUxNzcyYzUwNWVlZjgyNjY5NmYyZTY2Y2NhMGYzYzI0M2E4MTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL3Byb3h5LWZhY3RvcnkuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImI4NjJhNjYyNWJiNjAxZDE4YjY1MjVmYWQ4YmY3ODMyNjU1MjIyYmMxOTU4ZWZjNTljNWIxYTVhMGFkODYxODMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRkZDc2MmNiYzRiNTEwYjFlZTg0ODViYzI4ODg3Yjk3NjBkZGZlODk0YTVjM2UzOGQ3ZTg3ZGQwZmEyYjgzOTciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWEwN2Q4MWVmMTI0YjkwMTE2MjMwMzA5YTAwZGYzYzdhZGZmMzRmNDVkZjUwYTczMjUxODg3N2FkMDAwNDA1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjZkMThhYmEwMzcwMTVjNzc3YThhZDk2N2NiMWQxZjc5YTA4OTJhOTRkMTYwZGE2N2RlMzI3MDRjNmZlMjEzZmIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3MDk3NDA3YjM4N2I0MjNhOTE4OWUwZmNlNzQyOTk3NjkwMDJiYjViN2QzNWRjYTRkYzZjM2M1YjFlNzcxNjJmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcXVldWUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkOWJhYmM1YjQ5MzYwMzk3NWQ4OGRhZmRlYzRlYjkxNWY1NTE0ZDhmMGEyNmJmNGRmMGI2OGIwNTBlMmIzNTYzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImIwNjQ4N2YwMzQyYTBhNWEzNzU5ZjgzOWFlYTM0OWM3NzFjZDc4MzVlYjJkZDRhYjkxMDg1OWQ4MWE3YjI2MjYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmM0NDBlNDkzNmQxY2MzN2Y4NWNhNzgzYTI0NmQ3N2I2ODljNTQwNTgyZWFiOTFkN2U0MTZkMWI0N2U5OGYxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVhYjhkMDhhMzdiNDYyNzY4MGI5MjY2YWNiMTlhNTY4ZWRlMzgyNmFlNDNmZmUxMjY0ODRiNjlmNzhlNjc1N2YiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk2MzVkNDk5N2YxNDkxYjdjZjM5OGJlMWZkZDJmZDEzMTQ2N2FiZTI1MWFmNWVmYWRmYTA0MmRjODE5M2E1NWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvd2luZG93LWNvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdmZDUyMWI3MGI3NzNmYjg0OGQxMjY5ZGM3NTVhYTRhNjY5M2RhMmIxODNhODY4MTQ2M2U1NGFhZDA4MjMwZjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM2YjZlOTJlYTU4NWMxOGZjYTllNDUyMmU1ZmViNmQ1MjVkNTE0NDhmNjk3YzExNzhhYjVmYjZmNTcwYjJmZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU4Zjk1MDAwYTk0ZTM5Njk4MTBmYjAwNGVhOTU0ZTYzZWY1MTAwMzgxNDFjNGRhZTBkYTE0NjQ5ZjJjYjIxNTQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd3NyZWFkeS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0YjE5NTM5NTVlZDE2NzU5ZjAyNjFiMGU4MmRhM2YzZjJiNmVhYWMwNjJmNTQ4YWJjOWQ3OTFhMmE1MmVjNDI5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YjJhNDkyOGU0MDQ3MGVkMGFhN2E1NGM2MGExZGI4ZTg5YWRjNTMzMDQ4MjBmMjJjYWY0YzljY2RkMTk2NjRhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZXZlbnQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGZiMGJlMGMyZGQ2MzFkY2MyOWVkNzJkMGVmODgxMTk4NDAwNGJjY2QxMTlmZTZhMjQ1ZGE0OTQwNTUwYTc1MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbnN0YWxsYXRpb24tYWRtaW4tcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVlNGE4OTI2MjdlY2E5MGIxNGE3OTM1NWIxNWNkYjQ0MWFmMDg3MjZlYzllNjczZjU5NjQyNGI1Mzc2ZjIyZjYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlMmI0MjhjYzZhN2U5YjI1NjVjMTIzYzhjNzQ1ZDA5NGUzMDUyYTQzNjQyZWNmOWIyOTc0NDRiMGJkYmMxNTQ2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2F1dGguanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzJkZDY3MDU2NGMwNDJlZTAzZmE4MDJiMGE3ZTNkYjM2YTM4MDFiMzdkYWYzYzA4NTEyODBiMzViNzE4OTJjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbWFpbC1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWM1YTJiYzE1MjRhYzFlOTY5MzhmMjQ1ZDhmNzBmOTJmZTMwYWZjZjJhZTJiYmE4NjNlMzQwZWU5NTkwNGQyNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbnYuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWZiNjEyNjg5MjYwZTY4ZTczNGM2ZGNkYWJmODhhNzJjZTE0Yzk2NDUwNTA0Yzg1ZGRjMzI5ZGQyMDMzOGM4ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuc3BlYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDg2OGVhMjliZjljNmFjOWFmNDE5YmE0ZTVlMTg4Zjk4ZWU3YTI3NjE0MjMzODU3MzJjMDZhYzEyYTAxYTdjMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93c3JlYWR5LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2ZTg4N2ZhMzY5ZjhkNjg1NTVjM2E1ZjJlYmU2ODEyMGNhN2QzNTJkMzNhZTc2ZGFhNmM5Yjg5MTAwZjIwMmYyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjgwYzAzMjYyOGM2YjgwNjRjMWRhMDk3Y2RlMDE2YjQwYzQ4MWEwY2EwNWEzYTY3ZWFkYjgyMGZhZmZmNmMzMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3N2U5M2QzY2ZlNDAzODI0YmU5MWI1NGExMDIxMGRmM2Q2MTk1YWRjNDJmZTBkMGNlZDY5ZmVhODU2MTkxYWQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTc3YjMxMDFmNjM3YzgzZGZmYmM0MzVkY2U1NTczMWI1MDcxOTQ1ZmVlNDIwMTc3ODJmYzQ2ZmZjZjY4ZGIyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5YWJmM2I1N2JjODM0NjI3MmUxNGU0MmEyMmFmZmUyMDlkYzYzY2JlOTVjOTIwMjdhNjRjNjI0ZGEwMDVmNzY0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1lbmdpbmUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTZkNTJjMTI3NDFiY2UzNjg4YmMxMDNjNzZlYWExY2I3M2VhN2FjYjZlMzQ5M2Y2ZWUzYzhjZWM3NjA1NjcwNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9oZWFkbGVzcy13b3Jrc3BhY2UtbG9nLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGExYmFiYmRlMTA5Y2YyMDVkYWY4MDQ0OWQxNTRhZTVjZjU0ZTZlYTE2NTkxNGQ2NmYwZDZjNjQ1YzZmYTg2ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTc3N2ZiZWY4Nzc0MjA2ZTc1MzM2ZjFmOGY2ZmY5ZmRmMjkxYjUzMTEwNTVlYjUyNmFhZmFjMmI1Y2VlMjNhZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtZnJvbnRlbmQtc2VydmljZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWFhZDNmMThmYjA0OWY5YTUxM2MwYzg4MmRiNGEzYjFhOTQ4M2JlM2NlNmY0MjEzYzgwYjAxMWI1MWYyNmQzNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3NlbWFwaG9yZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU1MGNlZTcwYzMxY2FlNDM2NzIyYjE0OTdhOTUxZTAzYjJkMWY0ZjNmMjc5ZGZlY2YwYzhmYzBlOTBlYjgzODQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2hhbmRsZXIuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE0MzczMGQxNzcwY2I2NGMzMzYzMTQzZmI4ODY3ODMyZWU4ODdhNDAxYjhmYjUwMzAzNDYyYzQ5MTZjYmU5MTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9sb2dnaW5nLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzlhZDRkODk5Y2U1ODhhMGVhNWE0MWNjYjE2OTQ4NDU1YTgzZjA0NTlhZmY3NGI1MjZjZmZkNDQ0NGEzNjVjMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmRlYTY3YWNlY2EyNzRlYjRhNDVmMTQ4NjJmYTMzMTcxNDJhN2YzNjFlY2U5YTA1MmY0ZDg4ZjU3Njg2MzFjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2tleS1wcm92aWRlci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlYjUyMWU0Yzc2ZjY1Y2Y0MWRkODk5M2VlNjQzYzI0YTk2YjcwMzAzNmUzNzcwMDc2OWEwNmMzMzIwOWQ2NzQ3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FkbWluLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA5YWZkZTA5MDRkZWUzMTE2NGMwNmQwNGI2N2VjN2NmNDk4NmNkZDAzZGJmNmQ0ZGI2YTFhNmJhMTY4ZGY3NzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjc3ODhmMjMxMDYwMzhjNWYzOTdkYmY0YzNmY2Y2OWE1M2ViYzE5M2EzNmM4ZDg3MTc0YzM3YTVmNGUyNWQ0MWMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0NGZhZDczZDU5ZDg1NDJiYzU5MGRjM2VkYzQ2MDI3ZGJiMTI4ZmVmM2EzYTk4NmNkMjFhZjljZmZkMDVlNDBmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2MGEyZDYyNjgwMTU5MmNiYmIzZDMxMzEwMzcyNjFiNmI1MWI1Y2ZjMmMyOTU0ZTIzYzUyZWQxZDMwZGI0NjIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjMTVlYWU5MThjMmY2NWVjOWQ4YjBhM2MxMDVmZDQ0NjVlNzJmOTc0ZTM4NzA4ODQ1MTc3MzZiMGU4NmM5MTc2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2NjZlZTBhMDM5YWM1ODM4YTI1OWQ4MzU0NDAwOTE5Y2QwNGUwZWE4MjFhZTk0MGZjM2EyYzZkOWMwMGQxZGY3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL3dpbmRvdy1jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzg2Nzg4ZGM4ZGM5YzAyZDRkNDQyN2E2ZjYyZjRjNzE4OTYyNWEwNzFhNGIwYzk1MmM4YzNiZWUwOGI1ODYxOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJhMzk2NGIzMzE3NzcxYzBhMTk5MGZjNTdhZjlmYmZmM2JmMmQ2Njk1NzgyNDk1MjE2YjQxZTMwOTI4YWFlNTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYjg2NmVkN2YxMGI2NjJkZWJmNzkzNjY0MDAxMmNmMmEwMjQ2Zjc5ZjU1ODEwOGYzY2M0NzdhNDgzNDM3NTkxYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZhM2ViOTE3ZWEzMmVlMDgwOTRjYjY1Mjk5NTNkMzYzYWZhMDU2ODU4M2I5NzM1MTdmMjlkYTM1ZDZmNGE0NDAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImE3ZmQwMjkzZDUyYTFhMjkwZmQ3NzJhMmI3N2VkNmM3YjhlMmZmNGI3Y2Y1NTA0YTMxNDEwM2ExMWUwMGZjOTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzk3ZjhlOTQ0NmE4MmUzMzVhNDNmZjIxZjQ0MTBlNTZmNTU0ODY5MDNiMWE4ZWM2MTRiMDVhMWJkN2E1MzgxNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTRiNWVmYjg4YjZiYWNhYTAzMTE2NDQ1MDJjODdlZmU1MDQ0OGZlNzM2ZWMyMmM0NDc2ZDYxYzYxNjFkOWNkZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmYjcwZGI4NThkZTU3NDYzMGZiNTU4MDFlMzQwMzIxOTUxM2EzMDk0YTNlZjBjZDkzMDg0OTM4MzFjZTM0ZDZmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNGZhN2EwNjg2OWM3ODlkMjc0NmQ5OWViY2RjZGEyODgxYjU3MGUyOTk1Mjk3N2U2YjdlNGJhN2M1NGI1NWU1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkNDMzMmIyZWM1YzQ2YzdkZmNmMjViMjcyNzIwYjUxYTIxZWUwZDRmODNkZDE3YWQxMzRlYzdmOGM5NjVjMGQ1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dvcmtzcGFjZS1pbnN0YW5jZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZTY2NTQ3ZWQ2YTk5NjM1MGQ5NmRmNWRiZjA3MTMyN2ViM2M5MDUyMmI4NzU5Njg3OWMxNTdmNzA5ZDE3NjEyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlkODc1YTNjNmY0OTdlZDFmOWUzYjk4MDAxOTQ1ZjhiZDE5N2IxOTk5ZmI2YWQ4N2UxNzlkNDc3ZDIyZmQ3ODEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC93b3Jrc3BhY2UtcG9ydC1hdXRoZW50aWNhdGlvbi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmFiODkyM2E0MWQ1NWVkNjYyMGZjN2EyM2M0MTk5ZGM1YjM4OTk5MDgyNGZmNDI3MzY2Mjg2ZTg3ZWE3OThmYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtZnJvbnRlbmQtc2VydmljZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNzA5YjJjZDQwN2Q3MzQwNGU1YmI3NTdmMzRhNTIxMWU5Mzk4NzhiNDRkYTJkZjk0MjJmZWFhODY1YWVhYjU4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcXVldWUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxMzAzOWU1ZmVhMTkwMjkxMDYwNWEzNmNiMmY1ZDNhZjA0ZTBlN2U1MDMzNjkyZTNkMWQ5ZWZhNTczNWVjZjMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvY29ubmVjdGlvbi5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImE3NTBkNmUwZDlmZmViZjQ5ZTgwMjBkMDAzY2MzNWIzZGE0OTE1ZTc2OTFlOGY1NTNkYTA2ZGE2MmY1NWNlM2MiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbGljZW5zZS1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOWE5ZGIzNjM1NmRmOTkxMzJlMjVmYjZmYWVkYzRhN2QzODc3ODExM2NhZTAzNDdlZjEyYzJkNWVjNzRkYWNiMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbmRleC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmY2UyMGU3M2VkOWY3NWM5Mjc2ZGRjOGEwNDRjNGIxMTA3ZDQ4MDM2NTkyZDNmZjQyYzIxYjhmMzM3OTM1YmMzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGlzcG9zYWJsZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhZTk5MTRmN2IyZDJjMWY4NGI5YjA5ODg1YWExMzcxYjA4N2MxNmIxNzdkODRmNGQxYzYwNGYyYTVhNGM4MDlmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dzcmVhZHkuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4MzIwNzJhOTA1OGRmNDEyM2ExY2ZjMmYyNmVlNzY4MDY0N2YzNDVlNTc4Y2FlOTNkZDM1YjgxM2M5NGVkZTlkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3Blcm1pc3Npb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMmJlOTI5MmRkNzY0NDYxYTVkZWQyZTI3M2MxMmJjNzBkOWVjZGFiNmZlMGViMWU4MTY0NjlmN2RmNjA1ZmUzNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbmRleC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1MmVmYWRmNTZhNWVkZDdmYzgyZWViOTgzNDJhZDJmYjA2ZmYxYzY4ZWE4Y2UzMjFiMTU4YjMxY2I5MmRmZDEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hc3luYy1pdGVyYXRvci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxMTNiMGU2NTk1YjRjMGY5NWM1MzhiMTVmNTVjNTIyZjQxODQyZjYxYTQ4ZWZmODg1ZDRjODA5ZGJhOTcwODgyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNWI4YTE4MzZmYWMwNGZjN2EzODYwOGYyNDQ0YmI4NmYzMGU0MmNlMmJkOGIyOGY3YzE1ZWFlYjQ1YzI3Y2IyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbWFrZS1saW5rLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE4YmJmOGRjZTljZjUyMjc2OTFhMDZhNGJlN2ViNzU2ZjgxZDE4NDVlMWExOGU1ODA5YzYyMzg5ZTg0OGIzOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MTAwMmFlMzRkZjIxMzFmNjAzZGVjMmZjMTMzOTY4OTc5NWExMGI3YWFhNGVmNjc0ZWIyOGRlZTdlMWIzZDFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1zZXJ2aWNlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjAzMzAwY2M1MTkyZjM2YWQ0N2Y3NTc2MmI0ZThhMWQ4NDlhZmE1N2Y1OTFiZjFkOGVkNDZiYWJlOTExMWJiMWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd3NyZWFkeS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjMWVmNDFjY2FjMzkxZGI5YzZkYjQxMDU2MWVmMDJhYzE1YzI4NDU4YzJlMTY2MTA0MDRhOWI0OThiZjA2ZWViIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdHJhY2luZy5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNWQ0MGE1NGJhZDIzOGE2MjczOGFhMDRmZTQ4NjdjYzBjODEzZDljMWFhYjIwYTFlMjhhYTk4ZWI2YjA1MTEwZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dycGMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzOTI1MGIxNGExNTJhN2Y0MjdmZWEzODVjN2NlY2U1ZTM2ZGI4YTZlMzEwYjEyMzljNmViMTg4MWRlOTU1MTk5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxZTZlZjJjMTEwMjA0N2ZmZmJhZDJjYTAzNTI0ZWU4ZjQwZWQ1NTlmZDc3NDBmMTJhMDg2ZWU0Y2JjNTU1MTU3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjVkYmE3YmUxOGQwMWU4ZjRlN2Y3YzZiYjAxNTcyNDdiMWVkZDY4YWQ2N2MwNzIyYTU4YzBlNWRlYzkxN2M1ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtaW5zdGFuY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTU0MGZlNTI4ZjhiOGJlYzhmNjY2NzQ2NjMyNTg1MGJhOWMwYjA4YjcwNDZiNjI4MjIxMmQwYjJkMTdlMWNhZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wYXltZW50LXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdmMmQ0NjczOGI5MTczZDNiNDNmYzMyZTMyMGFhZjE3YmRmZWQyNWRkOTk2NGNmMTc0MDkyNTIxY2RkYmIyOWYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDkzOTQwZWRlZGNjYmZjNGEzNGY4M2EzOTBjNmVhMDRlMDQ2OTFjOTU5OWJjMzIwYjE1N2EyN2RjMTkyZTI2ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wYXltZW50LXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjI3N2MzYWZlMzRlYmVkYWMzMjU0OWM0MTFkYWUwMDEyY2M4OGIyM2NiZjY5ODFlMzQxMTY1MDAyNjc3MmZlYmUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2NsaWVudC1jYWxsLW1ldHJpY3MuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImMyZTEyMTIyZWQ2ZDg0MDg4MWEwODI1ZTczYmY1ZGM2MTlmNGUyNWQ4NmUzZDE0MjExNTY4MzUxZTNiMWI3YjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzYTEwMzk0ODMwMmIyNjJhZWUxNGI1YzAyYmE5OGM5OGE1ZGJiYTEwZjYyM2RkM2E1NmRlNzRjNWE2ZDg5NDY3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlYTg0OGE4YzRjYjI5ZDM3YWFhOWM5ODZmNTE0ZGFmMDZiZGVmNjQ0Mzc1MDhiYTY4YTk0YzQxODExODc2NGU2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dvcmtzcGFjZS1jbHVzdGVyLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRjZDEzYzE4Mzg1ODc0Y2ZkYmY4MjVjMTNjYmQyMzZiMjczN2VhYTAzODhmZTFhM2FjZDgwOTEzNjZiYzRkYTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL25vZGUvY29ubmVjdGlvbi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzNlZGYxZWJlMDVkM2UwYjMwM2U3MDEwMzc4YmVhYWU3ZGY3YzE1MDI4MWY5OWQ5ODRhYjc5YjNhMjZhN2FjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYmI4YjYwZTZmNWE3Y2JhNWVmNWI1NzUzYTM2ZmRjNjhhYTMyY2ZkMmU5ZWMyNTk5MGMzY2Y2ODVkNDEwODQ5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2tpcC1pZi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiMzQ5OWE0NzE4YjcxZTVmMTg3NThjNjQ4OGEyZDNhNWZmZGRiMTc4N2QzN2FiZDlkMWI3Yjc0NmNlMGEwN2NhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdHJhY2luZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZDgwZmI5YzM4MGM3ZDkxNzEzN2JjMTgxOWExZGIyNWM0Y2UyZDBhMDhlNGM5MTdlZThlM2VhYTg5ZTBlMDI2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlNGU1NzJkZWY2Y2VkOTNjYWI3MGZkY2VkYjE2ZTE1NGExYmQ1NDczMjM3M2QyZDJmZGU4ZTEzNzRkNmVmNDM3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1mcm9udGVuZC1zZXJ2aWNlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYjgyZjI2OGExZjZiZGM2MjhiYzYyOTE2OTNlNDE2ZTY2ODA1ZGIzNjc0M2YwOGU2MWQ0MjYwYmRjMDVjNjMwOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGIyZDNiZmRlOTk0NTgyNzkyY2JkZDczZDI0ZTkzZGE5YTNiNzNhMTFlZjhmNTM1Njc1ZDQzOTYwYWE2MGZiYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMjQ5OGFkZDIyMmQxMjA2YzA4ZTU2YzQ5ZmNhYmZmNDJlOGE4NzVjODJlNWIwMmQ4Y2E3YjQyNDI1NDg4N2E5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vY29udGFpbmVyLW1vZHVsZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM4YTY5N2I0ZGJkYjVmMWFhODU4OTZjMTU3ZDI0Y2UwZDVkMTE1Yzc0ZjRhZDhhZjcxMjhkNDNiMGQ1NmE1NzgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImE5NzlmN2Y1MzcxODU4NjFmOTBmZWU4ZDMzZjI5Y2FmYjZkOWMzMDBhOTc4NDJjYWY5NTAzZDA4ZjczZjNmNWMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC93b3Jrc3BhY2UtcG9ydC1hdXRoZW50aWNhdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlYjMzOGFiMDZiYjQzZGFjMTg2NjQ2ZDk4MmI2OGI1YjFlYmY0Yzg0ODM4ZTlhZWNkMzY1ZmI3ZTJkNmRjN2YzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9wcm94eS1mYWN0b3J5LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZmYzdiNmFiY2EwNjNlYzI1YTBiYjYyMTk3ZWQyZTk0MDFlMGQ4ZDJiNDcxZTg1MGI2MWZjMmE3YzY3MGFiZTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWNjb3VudGluZy1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTVjM2JkZTdmOWI1OWIyOGQ1MzY4OTBmNTFjMDQwNWFmM2I2ZTY5ZWQxZDhjMmQ5MmE4YjJmOWE2NzBjNTRlMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hY2NvdW50aW5nLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDdjYzk3ZWVjY2E3YWM0MWViYTdkNTNhZTM4ZjgyOGU2Mzc1MTUzMjBjODY0ZTNhY2E3NjgzMTBjYmM4NTJjNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wYXltZW50LXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2OGI0NmI3ZTg5ZmJkY2VjZWI3YmNmMzlkMDRjMDFiMjRjZTNmMDExM2EwMTZlYWE4ZmMyMDA1NTc0MDZiZTVkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg4YWQ1ZWU0YzQzMDAxZTE0OTQxY2JkZDAzNDMyNzY3MWE5NzY3YmY1OGU1ZjVhYmI5ZDM5M2QzNjExMmIwYTUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYjJiNTVkMjY2ZDQzY2NlZGRiOTA1NWJmODNlMDQ5MDU5YjZjYzk4OGMzN2UxNGZkN2U0ZjYwYzY2YzViNGMwYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzg2ZjQwYjg3ZjhkYmFiMDU4ZjU1YWZhMjUyNWZjZTI3OTU3ZTI1Yzg0NDJiMTA3OTRmZTZkNTYwZWFhOTVhOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwZWJhMmM1NjA2YTk1NTk2ZmQwMjE0ZDg1MzIzM2RiZmI3YTRlNDM1Y2UwY2NmODZlNWJkNjA4Y2E3ZDQ0MjExIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2VtYXBob3JlLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhYjllYTViMDljYTc5ZWIyYTZmZmJkM2U0MzNiOGZiOTM0NDU0MDEwNmUzMTBjOGE4NjkyNTM3YWVhMTE5NTcyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjhiYzg0ZjUxNTEzYjQ1MTE3NTllMjc4NDU2MzQwMWNjYzk3NjI5NWU5NzU0YzhjZjUwNGRjODUwODcyMDYxYjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY2YmMyM2JiMDU4ZTc4OTNjYjk0ZDk1YmE0NzQ4NDcyMGRlYzk0ODdhZGY2MWM3ZDA4NzQ0YzBmNDM4YjA1OGQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2hhbmRsZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2E5NzdlMDU5MzM4ZjcxNWRmNzE1NzBkZWFmZTljMjc5Zjc4NDAwMGVmZThlZDk0MTMzZjFjNjc4ZDFiYWRjNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FuYWx5dGljcy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwYmE1YmQ2MTQ5MzQ5Zjc1MTE1ZTI3NDhjNTk5ZmQwZmZkNTZhMTVjOThmODU2OWE2NmM0NmQ5OGNiNTdkZWFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkMGRhNzYzYTQxZTE4ZDUwNTNlNjg4NWRiYjIxOTI1MWQ2NjQ1NmQ3ZGMxZTliNWIzMjdmNTNiNjkwYjY5YTI5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGF0ZS10aW1lLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY4NzhiZWIwZjdjZWYyZmE4OTI2NjU1ZTVjNTk5MGMwOWE2YjljODBjMDQxNjYxMDI0YmIwYjBiZjIyYzhhMTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjZGE5NWFiMGQyYmYyNGQ3NDQ2ZmE1MzhiMTFkMjlkNDlkMDk1OTA5YzE5ODFlZjI3OGViNmM3M2E1MTY4Y2E3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2luZGV4LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjZhOWFiOWQ3NmZmNGE4ODk3ODI2NzFjN2YyY2Q5ZDBlOGMwMjE5NWUzNzZhNjE3YjRlNjkwMzU0MTczN2E0MjgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3NWY5NTM2MmEwYTFlYTk0MzVhODU3MDg4M2I4MmFhMWJlZTBmMjZlODIxYWRjYmVkMjNlMTM2NDczN2Q5ODJiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvamFlZ2VyLWNsaWVudC10eXBlcy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjkwMWZiZjgyN2QwYjBlODM2Yjc2ZWZjNzkzYWU0NTgzOWZkYjFlOGE2NTI2YTNmMjcwMTZkNTc1ZTRmMzg3ZTUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9jb250YWluZXItbW9kdWxlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkZWMyMjg4NGZjYmUxMmVlNDgzZDkzY2VkMjJlMmI5OGJlNjEzYTVmMDlmNzYyNWY3NjEzMTc1MWUyMzI5NTgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjI0NzFmZjE1NGY1Y2I5MWUzYTU5OGZmZDVhYzM2MWExNzE2ZmM3MGM4YmZkOTAxMmQ1ZDE5MjRjNTJjMzQ5ZDQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC93b3Jrc3BhY2UtcG9ydC1hdXRoZW50aWNhdGlvbi5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImI1NjljNmQ3NWFhNDgzNWIyOTIwN2JmZWI1ZTJjMzkzZGMyYTVkYzUzZGYxNGQ1YzVlYTAzOTQ4OGZiNjAyNGMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmMjU5MDg0MmRkNzY3ZWY5MDk1NzZiYmFiODExMDVmNTA0NTk0YjQ2ZWNiYTkyZDZiZmZkZGEwZTY2ZjBlMTA3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg1OWU5ZGRiZGY0NTg3OGFkM2UyYzFmYTE4MWMwMGY1N2YyZTk5OGUxYWQxMmE1NDQ0YTU5MTRjZGIzZTJiMzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTU4NWQyMGE0N2EyYmYwOThiNGRjYTI1ZjQwZjZlZTg5NWUxMmRlNjMzY2MyNGY4MWEyOTliNTJlZjE1YmZjMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEyNjVmNjgzMzNlYjQyODcyZjJhMjQ2NGUwMTY0ZGU1YmY4ZmZjNDQ2MWRhM2VjMWExOWRhNDU0OWU0NzIyNmEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZTJlYTA5ODhiZDA5NmU2OGRiNGEzZGZmMmYwNmMzOWVkNTk2YTMyZTEwM2FjYWI3NGNkNjFhNDNhOWYwMzM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2tpcC1pZi5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwNDUwZWM0YjBlMTFmMTBhNjg3NzhkMTdkZTE5Mzg0OWMwMWZmNDkzZGE4YTUzYjQwNTAzNTU2NjBiYjE2ODgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3NDQyNDc5ZmE1MzE2ZWZmNjA5Njk1Njk3NzZjN2YxNzdlYWJhNzAwMDcwOGUxYThlYmNlYzBiNGMxZjlmZDUxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcXVldWUuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0M2U2ZmMyMTQxODMyZWZiZGUxYjA5YTg2NzQ4NzY3NTVjMTgyNDI4YzU5ZjVjNGQwZjQzNDUzMTQ0NDU5ZjZjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjRiYmJjZGJkMTk1NGIxNDQ0N2QxMjY0NzNiYzQxYmIwM2MxMmVmZTllMjYxMDFjMjU0YTg2MTdhNTgxYzljZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjBiNTEyOTE4ZDYwYWQyMWQxNmRkMWM3N2Q3OGQ1ZjQ5ZmM0ZWJjMDJjNDBjMmEzMzkxYTRjZWI4NDQ4OTJlZWYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjNjhhZTEyMDA1OTgxOWUwZWM2ZmYzYTQ4N2Y4NDgzOGE5NmJmYzcxZTc5MGNlZGZkYzdlMmU5MjM3ZDk1NmNmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY0MmMyY2JkMWNjM2IwYzVmZDAwYzgxODg3MzIxZWI3OTNlNGMxNmE2MzBlNjhjMjJkY2QwYzFmNmQ2M2JkYTciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU5ZjUyNGIzOGU5MzU3NDNlMWFhNzc0NTBkYmMyYzM2YjFhMWNlZGQwNjQ1ZWFiOGVmNmFjNzdmMjhiNDgzNTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9jb250YWluZXItbW9kdWxlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNlMzg3N2ZhNDI3OGQ4ZTMyZjRiYmYwMjNjZjJlOTJlMzQ4YmU2ZmZkNmQ5NWVlZjAzYjUwYzlkYmI2NTMzOTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhYmI1YWU1OTk4OGUzNTMwOWMzZTRkYmJhMjdmZmM4YzIzMGY5YjlkZDEzYTJhYzlkZmU1ZTJjZjFlZGJmMDM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BsYW5zLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmN2EwZjg5NWIzNTliZmJhZDA5NjAyNDcwOTRhZTRiNmYxNmU5ZmE4M2MyMGVmM2I3NzI5N2MwMWVmOTc1MzZkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2Vudi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODA0YzRhYzQ1YTUzNmM0NGY1YTY2NjRmYjk1NDFlOTUyZDcyMDBhODBkNjI3YThmZGM2ZDhjNmRmMzgzMGQwYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjdlZWMyMGIxYmFiMjAyYjY1ZjYyMDkxYjlkNWNjN2U1OTUxZmM3MjQzZTVkNzM0ZDEzN2VmMGVkOTNkOGJjNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FzeW5jLWl0ZXJhdG9yLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2EwNTY0ZTA1MzM2NWJmMWQyY2ViMWM2N2IzZGNhNTQ1NjM2MTE5YjNjZTU1Y2YyNzhiNzVkOWUwZmUxZGIwNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtcy1wcm9qZWN0cy1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZjkyMTE0ZDdkZWU2MWU1NmY0ZmRhYmQ5MmJlMjhiNDY5ZDdhMTBjZTgxZTY0MmQzY2U0ZjUyNTUyYzhmNjJmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dvcmtzcGFjZS1jbHVzdGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjdkMWJmNzljN2ZhZDU1MzEyNGM2NDJhMjIyODI5NzkwNzA2NDZhMDczMDM1YzNkZDgxMmM0MWFlMzFmOTM2YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1MjJjNGYxNzM2Nzk1YzAwMzYwNGE1ZWJmZTQyNDVhZjQ1YTI3NzdiZDViYjk2OTUxZGQzMDk2MGQ4YTM3NDVkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9jbGllbnQtY2FsbC1tZXRyaWNzLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImViOTA0ZTEyMjkxZGYwODVmZDhjYzk2MjA3MmYwZTIwZjc1NDNmODBhZmEyZjU4ZGZhMjc0MDJlOGE1Njg3N2QiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kaXNwb3NhYmxlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjI4NWY4NWU5OTQ4N2Q0ZmQ4YWVkOTY2ZmIyMzE3OTllMmE5ZTlmZjQ4ZTk0Y2JlZmNmNmMzZWViNzdjYjkwZDUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9jYW5jZWxhYmxlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImYzYmFjYjY4MmM5MGNmODBlZWEyMmVlYjg3NDI5MDk5MTAzMzUwY2IzZTZlZTlhZGMzOWZjMTA1OTg1MzhhOWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9jYW5jZWxhYmxlLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwNTNiMDcyY2RiZDkyMjM5NTRkZDVmZGE5MmQ5MmM5OWY4MDk5ZDhlYWU1MGNmYTZjNGJmMmRhYWRkMDYxYTBhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDA1MzRkNTU4OWU1ZmI3ODU3ZTg0NTRlMjYzNjc5NjRjZjgwMTM4NmQxZmI4ZmMwNTE1Y2UyZTQxYjEwOWU4ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hdXRoLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNWIzOThkZTQ5Y2I0ZGQyNWVkMjM3MzY4MzMxZDdjNDI1ZGI1MGNiOGU2YWRiZDgyOGVlM2YxZjBjMDEzZWM0OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtLXN1YnNjcmlwdGlvbi1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2Q3YmM3MWQyMWJlYmE5M2U0NTliNzI2OWVlNTQyYmJlYjQ2NzM3N2E3NGI5N2RiZDkxZDE0NGY0Yjc4NmVhOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxZDYzZTAxYTQ0Yzk2ZmFhZDk1MWE0NGU3ZjNkMDMzMjE1NjYzNzE0Njg3NjNmZWNjODZhZDhjNTgyOGQ3ZTc0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjEyMTc2NGYwYTFlNjUwMjcwNjE3NzI4YTAyNTJmZTg0NGNjZGY0YzZjZDkzOTE5ZmU4ODdmYjdjYmFhMzc4ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjZhNDJhZWI1NzNhMTZjNGFkZmUwMzNiY2E5MWU2YTJkMjJlNjUzNGNiYTBkOGUxYzFjNDc0ZmM4NjZiN2FjZDgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdHlwaW5ncy9nbG9iYWxzLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImYzNTQ1MjBlMTM0NmQ4Njc0Y2NmODUxMDY5NTQ1Nzk5ZTA0YmNkMzI1MzY5ODRkMDQyNDA0ZjgyMjIxNDIyZjgiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGUiOiB7CiAgICAiYnVpbGRlciI6IHsKICAgICAgImlkIjogImdpdGh1Yi5jb20vZ2l0cG9kLWlvL2xlZXdheTowLjIuMTctM2ViZmIyYUBzaGEyNTY6Yjk2MjllMmQwNDMyYWRlYTFiZTdkZGRiMzYwM2UzNmQ5ZjY5YjA5ZDg5ODVmNzI1MjU3YWRhYWRlNTFkNGE0MCIKICAgIH0sCiAgICAicmVjaXBlIjogewogICAgICAidHlwZSI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2l0cG9kLWlvL2xlZXdheS9idWlsZEB5YXJuOjciLAogICAgICAiZGVmaW5lZEluTWF0ZXJpYWwiOiAwLAogICAgICAiZW50cnlQb2ludCI6ICJjb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbDpsaWIiLAogICAgICAiYXJndW1lbnRzIjogWwogICAgICAgICJsZWV3YXkiLAogICAgICAgICJidWlsZCIsCiAgICAgICAgIi0tZG9ja2VyLWJ1aWxkLW9wdGlvbnMiLAogICAgICAgICJuZXR3b3JrPWhvc3QiLAogICAgICAgICItLXdlcmZ0PXRydWUiLAogICAgICAgICItYyIsCiAgICAgICAgInJlbW90ZSIsCiAgICAgICAgIi0tZG9udC1yZXRhZyIsCiAgICAgICAgIi0tY292ZXJhZ2Utb3V0cHV0LXBhdGg9L3RtcC90bXAucVFnaGIwWE5DaSIsCiAgICAgICAgIi1EdmVyc2lvbj1zZXJ2ZXItdnNjb2RlLW9hdXRoMi4yNCIsCiAgICAgICAgIi1EcmVtb3ZlU291cmNlcz1mYWxzZSIsCiAgICAgICAgIi1EaW1hZ2VSZXBvQmFzZT1ldS5nY3IuaW8vZ2l0cG9kLWNvcmUtZGV2L2J1aWxkIiwKICAgICAgICAiLURsb2NhbEFwcFZlcnNpb249dW5rbm93biIsCiAgICAgICAgIi1EU0VHTUVOVF9JT19UT0tFTj1YM2JOYXRZUHVkSUpjQ3o2a0ZsVG41NHBydW1RQXFHaCIsCiAgICAgICAgIi1EUkVQTElDQVRFRF9BUElfVE9LRU49ZGVhMTBjOGZiNTg3NTVmZDUxYWI5OTZjY2JhYWI4OTYyZjVlOTA2YWI0NDEyYWU2Nzc5OTZlYTc0ZTg1YWUzNSIsCiAgICAgICAgIi1EUkVQTElDQVRFRF9BUFA9Z2l0cG9kIiwKICAgICAgICAiLURucG1QdWJsaXNoVHJpZ2dlcj1mYWxzZSIsCiAgICAgICAgIi1EamJNYXJrZXRwbGFjZVB1Ymxpc2hUcmlnZ2VyPWZhbHNlIgogICAgICBdLAogICAgICAiZW52aXJvbm1lbnQiOiB7CiAgICAgICAgIm1hbmlmZXN0IjogewogICAgICAgICAgImFyY2giOiAiYW1kNjQiLAogICAgICAgICAgImdvIjogImdvIHZlcnNpb24gZ28xLjE3LjUgbGludXgvYW1kNjQiLAogICAgICAgICAgIm5vZGUiOiAidjE2LjE0LjAiLAogICAgICAgICAgIm9zIjogImxpbnV4IiwKICAgICAgICAgICJ5YXJuIjogIjEuMjIuMTgiCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIm1ldGFkYXRhIjogewogICAgICAiYnVpbGRTdGFydGVkT24iOiAiMjAyMi0wNC0xMVQxODowMjowNS45NDUzNDg0ODVaIiwKICAgICAgImJ1aWxkRmluaXNoZWRPbiI6ICIyMDIyLTA0LTExVDE4OjAyOjM0LjU4NzEwOTA3NVoiLAogICAgICAiY29tcGxldGVuZXNzIjogewogICAgICAgICJhcmd1bWVudHMiOiB0cnVlLAogICAgICAgICJlbnZpcm9ubWVudCI6IGZhbHNlLAogICAgICAgICJtYXRlcmlhbHMiOiB0cnVlCiAgICAgIH0sCiAgICAgICJyZXByb2R1Y2libGUiOiBmYWxzZQogICAgfSwKICAgICJtYXRlcmlhbHMiOiBbCiAgICAgIHsKICAgICAgICAidXJpIjogImdpdCtodHRwczovL2dpdGh1Yi5jb20vZ2l0cG9kLWlvL2dpdHBvZC5naXQiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImFhYTQ2MmNmZmM3OGQxMzBkZDgzNDZmM2FhZmFlODU4MWUzODg4ZGUiCiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfQp9","signatures":null}
2
+
@@ -4,9 +4,9 @@
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
- import * as uuidv4 from 'uuid/v4';
8
- import { User } from './protocol';
9
- import { oneMonthLater } from './util/timeutil';
7
+ import { v4 as uuidv4 } from "uuid";
8
+ import { User } from "./protocol";
9
+ import { oneMonthLater } from "./util/timeutil";
10
10
 
11
11
  /*
12
12
  * Subscription and acocunting data
@@ -33,7 +33,7 @@ export interface AccountEntry {
33
33
  /**
34
34
  * credit: end of validity
35
35
  */
36
- expiryDate?: string; // exclusive
36
+ expiryDate?: string; // exclusive
37
37
 
38
38
  kind: AccountEntryKind;
39
39
 
@@ -46,26 +46,26 @@ export interface AccountEntry {
46
46
  description?: object;
47
47
  }
48
48
  export namespace AccountEntry {
49
- export function create<T extends AccountEntry>(entry: Omit<T, 'uid'>): T {
49
+ export function create<T extends AccountEntry>(entry: Omit<T, "uid">): T {
50
50
  const result = entry as T;
51
51
  result.uid = uuidv4();
52
52
  return result;
53
- };
53
+ }
54
54
  }
55
55
 
56
- export type DebitAccountEntryKind = 'session' | 'expiry' | 'loss';
57
- export type AccountEntryKind = 'credit' | DebitAccountEntryKind | 'carry' | 'open';
56
+ export type DebitAccountEntryKind = "session" | "expiry" | "loss";
57
+ export type AccountEntryKind = "credit" | DebitAccountEntryKind | "carry" | "open";
58
58
 
59
59
  export interface Credit extends AccountEntry {
60
- kind: 'credit';
60
+ kind: "credit";
61
61
  expiryDate: string;
62
62
  }
63
63
  export type Debit = LossDebit | ExpiryDebit | SessionDebit;
64
64
  export interface LossDebit extends AccountEntry {
65
- kind: 'loss';
65
+ kind: "loss";
66
66
  }
67
67
  export interface ExpiryDebit extends AccountEntry {
68
- kind: 'expiry';
68
+ kind: "expiry";
69
69
  creditId: undefined;
70
70
  }
71
71
  export interface SessionDebit extends AccountEntry {
@@ -80,9 +80,7 @@ export interface CreditDescription {
80
80
  }
81
81
  export namespace CreditDescription {
82
82
  export function is(obj: any): obj is CreditDescription {
83
- return !!obj
84
- && obj.hasOwnProperty('subscriptionId')
85
- && obj.hasOwnProperty('planId');
83
+ return !!obj && obj.hasOwnProperty("subscriptionId") && obj.hasOwnProperty("planId");
86
84
  }
87
85
  }
88
86
  export interface SessionDescription {
@@ -90,16 +88,16 @@ export interface SessionDescription {
90
88
  contextUrl: string;
91
89
  workspaceId: string;
92
90
  workspaceInstanceId: string;
93
- private: boolean;
94
91
  }
95
92
  export namespace SessionDescription {
96
93
  export function is(obj: any): obj is SessionDescription {
97
- return !!obj
98
- && obj.hasOwnProperty('contextTitle')
99
- && obj.hasOwnProperty('contextUrl')
100
- && obj.hasOwnProperty('workspaceId')
101
- && obj.hasOwnProperty('workspaceInstanceId')
102
- && obj.hasOwnProperty('private');
94
+ return (
95
+ !!obj &&
96
+ obj.hasOwnProperty("contextTitle") &&
97
+ obj.hasOwnProperty("contextUrl") &&
98
+ obj.hasOwnProperty("workspaceId") &&
99
+ obj.hasOwnProperty("workspaceInstanceId")
100
+ );
103
101
  }
104
102
  }
105
103
 
@@ -113,11 +111,11 @@ export namespace SessionDescription {
113
111
  export interface Subscription {
114
112
  uid: string;
115
113
  userId: string;
116
- startDate: string; // inclusive
114
+ startDate: string; // inclusive
117
115
  /** When the subscription will end (must be >= cancellationDate!) */
118
- endDate?: string; // exclusive
116
+ endDate?: string; // exclusive
119
117
  /** When the subscription was cancelled */
120
- cancellationDate?: string; // exclusive
118
+ cancellationDate?: string; // exclusive
121
119
  /** Number of granted hours */
122
120
  amount: number;
123
121
  /** Number of granted hours for the first month: If this is set, use this value for the first month */
@@ -147,8 +145,7 @@ export interface UserPaidSubscription extends Subscription {
147
145
  }
148
146
  export namespace UserPaidSubscription {
149
147
  export function is(data: any): data is UserPaidSubscription {
150
- return !!data
151
- && data.hasOwnProperty('paymentReference');
148
+ return !!data && data.hasOwnProperty("paymentReference");
152
149
  }
153
150
  }
154
151
 
@@ -157,41 +154,44 @@ export interface AssignedTeamSubscription extends Subscription {
157
154
  }
158
155
  export namespace AssignedTeamSubscription {
159
156
  export function is(data: any): data is AssignedTeamSubscription {
160
- return !!data
161
- && data.hasOwnProperty('teamSubscriptionSlotId');
157
+ return !!data && data.hasOwnProperty("teamSubscriptionSlotId");
162
158
  }
163
159
  }
164
160
 
165
161
  export namespace Subscription {
166
- export function create(newSubscription: Omit<Subscription, 'uid'>) {
162
+ export function create(newSubscription: Omit<Subscription, "uid">) {
167
163
  const subscription = newSubscription as Subscription;
168
164
  subscription.uid = uuidv4();
169
165
  return subscription;
170
- };
166
+ }
171
167
  export function cancelSubscription(s: Subscription, cancellationDate: string, endDate?: string) {
172
168
  s.endDate = endDate || cancellationDate;
173
169
  s.cancellationDate = cancellationDate;
174
- };
170
+ }
175
171
  export function isSame(s1: Subscription | undefined, s2: Subscription | undefined): boolean {
176
- return !!s1 && !!s2
177
- && s1.userId === s2.userId
178
- && s1.planId === s2.planId
179
- && s1.startDate === s2.startDate
180
- && s1.endDate === s2.endDate
181
- && s1.amount === s2.amount
182
- && s1.cancellationDate === s2.cancellationDate
183
- && s1.deleted === s2.deleted
184
- && ((s1.paymentData === undefined && s2.paymentData === undefined)
185
- || (!!s1.paymentData && !!s2.paymentData
186
- && s1.paymentData.downgradeDate === s2.paymentData.downgradeDate
187
- && s1.paymentData.newPlan === s2.paymentData.newPlan));
188
- };
172
+ return (
173
+ !!s1 &&
174
+ !!s2 &&
175
+ s1.userId === s2.userId &&
176
+ s1.planId === s2.planId &&
177
+ s1.startDate === s2.startDate &&
178
+ s1.endDate === s2.endDate &&
179
+ s1.amount === s2.amount &&
180
+ s1.cancellationDate === s2.cancellationDate &&
181
+ s1.deleted === s2.deleted &&
182
+ ((s1.paymentData === undefined && s2.paymentData === undefined) ||
183
+ (!!s1.paymentData &&
184
+ !!s2.paymentData &&
185
+ s1.paymentData.downgradeDate === s2.paymentData.downgradeDate &&
186
+ s1.paymentData.newPlan === s2.paymentData.newPlan))
187
+ );
188
+ }
189
189
  export function isActive(s: Subscription, date: string): boolean {
190
190
  return s.startDate <= date && (s.endDate === undefined || date < s.endDate);
191
- };
191
+ }
192
192
  export function isDowngraded(s: Subscription) {
193
193
  return s.paymentData && s.paymentData.downgradeDate;
194
- };
194
+ }
195
195
  export function calculateCurrentPeriod(startDate: string, now: Date) {
196
196
  let nextStartDate = startDate;
197
197
  do {
@@ -199,19 +199,19 @@ export namespace Subscription {
199
199
  nextStartDate = oneMonthLater(startDate, new Date(startDate).getDate());
200
200
  } while (nextStartDate < now.toISOString());
201
201
  return { startDate, endDate: nextStartDate };
202
- };
202
+ }
203
203
  }
204
204
 
205
205
  export type MaybeSubscription = Subscription | undefined;
206
206
 
207
207
  export interface Period {
208
- startDate: string; // inclusive
209
- endDate: string; // exclusive
208
+ startDate: string; // inclusive
209
+ endDate: string; // exclusive
210
210
  }
211
211
 
212
212
  export type MaybePeriod = Period | undefined;
213
213
 
214
- export type AccountEntryFixedPeriod = Omit<AccountEntry, 'uid'> & { expiryDate: string };
214
+ export type AccountEntryFixedPeriod = Omit<AccountEntry, "uid"> & { expiryDate: string };
215
215
  export interface AccountStatement extends Period {
216
216
  userId: string;
217
217
  /**
@@ -223,9 +223,9 @@ export interface AccountStatement extends Period {
223
223
  /** Remaining valid hours (accumulated from credits) */
224
224
  remainingHours: RemainingHours;
225
225
  }
226
- export type RemainingHours = number | 'unlimited';
226
+ export type RemainingHours = number | "unlimited";
227
227
 
228
228
  export interface CreditAlert {
229
- userId: string,
230
- remainingUsageHours: number
229
+ userId: string;
230
+ remainingUsageHours: number;
231
231
  }