@gitpod/gitpod-protocol 0.1.5-minor-updates.3 → 0.1.5-mixpanel-migration-prep.0

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 (293) hide show
  1. package/data/gitpod-schema.json +25 -24
  2. package/lib/accounting-protocol.d.ts +3 -6
  3. package/lib/accounting-protocol.d.ts.map +1 -1
  4. package/lib/accounting-protocol.js +10 -16
  5. package/lib/accounting-protocol.js.map +1 -1
  6. package/lib/admin-protocol.d.ts +25 -4
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js +15 -0
  9. package/lib/admin-protocol.js.map +1 -1
  10. package/lib/analytics.d.ts +44 -0
  11. package/lib/analytics.d.ts.map +1 -0
  12. package/lib/analytics.js +10 -0
  13. package/lib/analytics.js.map +1 -0
  14. package/lib/context-url.d.ts +31 -0
  15. package/lib/context-url.d.ts.map +1 -0
  16. package/lib/context-url.js +102 -0
  17. package/lib/context-url.js.map +1 -0
  18. package/lib/context-url.spec.d.ts +14 -0
  19. package/lib/context-url.spec.d.ts.map +1 -0
  20. package/lib/context-url.spec.js +94 -0
  21. package/lib/context-url.spec.js.map +1 -0
  22. package/lib/email-protocol.d.ts +1 -2
  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.js +4 -4
  27. package/lib/encryption/container-module.js.map +1 -1
  28. package/lib/encryption/encryption-engine.js +19 -20
  29. package/lib/encryption/encryption-engine.js.map +1 -1
  30. package/lib/encryption/encryption-engine.spec.js +29 -36
  31. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  32. package/lib/encryption/encryption-service.js +29 -43
  33. package/lib/encryption/encryption-service.js.map +1 -1
  34. package/lib/encryption/key-provider.js +25 -30
  35. package/lib/encryption/key-provider.js.map +1 -1
  36. package/lib/env.d.ts +1 -2
  37. package/lib/env.d.ts.map +1 -1
  38. package/lib/env.js +20 -21
  39. package/lib/env.js.map +1 -1
  40. package/lib/gitpod-file-parser.js +25 -41
  41. package/lib/gitpod-file-parser.js.map +1 -1
  42. package/lib/gitpod-file-parser.spec.js +116 -116
  43. package/lib/gitpod-file-parser.spec.js.map +1 -1
  44. package/lib/gitpod-service.d.ts +124 -22
  45. package/lib/gitpod-service.d.ts.map +1 -1
  46. package/lib/gitpod-service.js +167 -278
  47. package/lib/gitpod-service.js.map +1 -1
  48. package/lib/headless-workspace-log.d.ts +8 -11
  49. package/lib/headless-workspace-log.d.ts.map +1 -1
  50. package/lib/headless-workspace-log.js +4 -7
  51. package/lib/headless-workspace-log.js.map +1 -1
  52. package/lib/ide-protocol.d.ts +105 -0
  53. package/lib/ide-protocol.d.ts.map +1 -0
  54. package/lib/ide-protocol.js +8 -0
  55. package/lib/ide-protocol.js.map +1 -0
  56. package/lib/index.d.ts +6 -0
  57. package/lib/index.d.ts.map +1 -1
  58. package/lib/index.js +6 -0
  59. package/lib/index.js.map +1 -1
  60. package/lib/installation-admin-protocol.d.ts +27 -0
  61. package/lib/installation-admin-protocol.d.ts.map +1 -0
  62. package/lib/installation-admin-protocol.js +30 -0
  63. package/lib/installation-admin-protocol.js.map +1 -0
  64. package/lib/messaging/browser/connection.d.ts +5 -3
  65. package/lib/messaging/browser/connection.d.ts.map +1 -1
  66. package/lib/messaging/browser/connection.js +183 -33
  67. package/lib/messaging/browser/connection.js.map +1 -1
  68. package/lib/messaging/browser/window-connection.js +35 -55
  69. package/lib/messaging/browser/window-connection.js.map +1 -1
  70. package/lib/messaging/client-call-metrics.d.ts +35 -0
  71. package/lib/messaging/client-call-metrics.d.ts.map +1 -0
  72. package/lib/messaging/client-call-metrics.js +83 -0
  73. package/lib/messaging/client-call-metrics.js.map +1 -0
  74. package/lib/messaging/error.d.ts +3 -1
  75. package/lib/messaging/error.d.ts.map +1 -1
  76. package/lib/messaging/error.js +6 -2
  77. package/lib/messaging/error.js.map +1 -1
  78. package/lib/messaging/handler.d.ts +10 -0
  79. package/lib/messaging/handler.d.ts.map +1 -1
  80. package/lib/messaging/node/connection.d.ts +1 -17
  81. package/lib/messaging/node/connection.d.ts.map +1 -1
  82. package/lib/messaging/node/connection.js +23 -59
  83. package/lib/messaging/node/connection.js.map +1 -1
  84. package/lib/messaging/proxy-factory.d.ts +2 -0
  85. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  86. package/lib/messaging/proxy-factory.js +74 -159
  87. package/lib/messaging/proxy-factory.js.map +1 -1
  88. package/lib/oss-allowlist.d.ts +14 -0
  89. package/lib/oss-allowlist.d.ts.map +1 -0
  90. package/lib/oss-allowlist.js +8 -0
  91. package/lib/oss-allowlist.js.map +1 -0
  92. package/lib/permission.d.ts +8 -1
  93. package/lib/permission.d.ts.map +1 -1
  94. package/lib/permission.js +36 -15
  95. package/lib/permission.js.map +1 -1
  96. package/lib/plans.d.ts +210 -0
  97. package/lib/plans.d.ts.map +1 -0
  98. package/lib/plans.js +570 -0
  99. package/lib/plans.js.map +1 -0
  100. package/lib/protocol.d.ts +119 -54
  101. package/lib/protocol.d.ts.map +1 -1
  102. package/lib/protocol.js +117 -131
  103. package/lib/protocol.js.map +1 -1
  104. package/lib/snapshot-url.d.ts +14 -0
  105. package/lib/snapshot-url.d.ts.map +1 -0
  106. package/lib/snapshot-url.js +26 -0
  107. package/lib/snapshot-url.js.map +1 -0
  108. package/{src/util/without.ts → lib/snapshot-url.spec.d.ts} +2 -3
  109. package/lib/snapshot-url.spec.d.ts.map +1 -0
  110. package/lib/snapshot-url.spec.js +41 -0
  111. package/lib/snapshot-url.spec.js.map +1 -0
  112. package/lib/team-subscription-protocol.d.ts +4 -4
  113. package/lib/team-subscription-protocol.d.ts.map +1 -1
  114. package/lib/team-subscription-protocol.js +15 -12
  115. package/lib/team-subscription-protocol.js.map +1 -1
  116. package/lib/teams-projects-protocol.d.ts +113 -0
  117. package/lib/teams-projects-protocol.d.ts.map +1 -0
  118. package/lib/teams-projects-protocol.js +30 -0
  119. package/lib/teams-projects-protocol.js.map +1 -0
  120. package/lib/util/analytics.d.ts +8 -0
  121. package/lib/util/analytics.d.ts.map +1 -0
  122. package/lib/util/analytics.js +88 -0
  123. package/lib/util/analytics.js.map +1 -0
  124. package/lib/util/async-iterator.js +55 -133
  125. package/lib/util/async-iterator.js.map +1 -1
  126. package/lib/util/cancelable.js +17 -59
  127. package/lib/util/cancelable.js.map +1 -1
  128. package/lib/util/date-time.js +8 -8
  129. package/lib/util/date-time.js.map +1 -1
  130. package/lib/util/deferred.js +10 -12
  131. package/lib/util/deferred.js.map +1 -1
  132. package/lib/util/disposable.js +26 -39
  133. package/lib/util/disposable.js.map +1 -1
  134. package/lib/util/event.js +58 -74
  135. package/lib/util/event.js.map +1 -1
  136. package/lib/util/garbage-collected-cache.d.ts +1 -0
  137. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  138. package/lib/util/garbage-collected-cache.js +26 -46
  139. package/lib/util/garbage-collected-cache.js.map +1 -1
  140. package/lib/util/generate-workspace-id.d.ts +1 -1
  141. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  142. package/lib/util/generate-workspace-id.js +31 -68
  143. package/lib/util/generate-workspace-id.js.map +1 -1
  144. package/lib/util/generate-workspace-id.spec.js +57 -78
  145. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  146. package/lib/util/gitpod-cookie.d.ts +20 -0
  147. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  148. package/lib/util/gitpod-cookie.js +44 -0
  149. package/lib/util/gitpod-cookie.js.map +1 -0
  150. package/lib/util/gitpod-host-url.d.ts +1 -2
  151. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  152. package/lib/util/gitpod-host-url.js +95 -98
  153. package/lib/util/gitpod-host-url.js.map +1 -1
  154. package/lib/util/gitpod-host-url.spec.d.ts +7 -1
  155. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  156. package/lib/util/gitpod-host-url.spec.js +103 -31
  157. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  158. package/lib/util/grpc.d.ts +15 -0
  159. package/lib/util/grpc.d.ts.map +1 -0
  160. package/lib/util/grpc.js +18 -0
  161. package/lib/util/grpc.js.map +1 -0
  162. package/lib/util/jaeger-client-types.d.ts +68 -0
  163. package/lib/util/jaeger-client-types.d.ts.map +1 -0
  164. package/lib/util/{without.js → jaeger-client-types.js} +1 -1
  165. package/lib/util/jaeger-client-types.js.map +1 -0
  166. package/lib/util/logging.d.ts +49 -33
  167. package/lib/util/logging.d.ts.map +1 -1
  168. package/lib/util/logging.js +107 -110
  169. package/lib/util/logging.js.map +1 -1
  170. package/lib/util/make-link.js +2 -2
  171. package/lib/util/make-link.js.map +1 -1
  172. package/lib/util/parse-workspace-id.d.ts +10 -0
  173. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  174. package/lib/util/parse-workspace-id.js +31 -7
  175. package/lib/util/parse-workspace-id.js.map +1 -1
  176. package/lib/util/parse-workspace-id.spec.d.ts +4 -0
  177. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  178. package/lib/util/parse-workspace-id.spec.js +123 -84
  179. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  180. package/lib/util/queue.js +16 -55
  181. package/lib/util/queue.js.map +1 -1
  182. package/lib/util/queue.spec.js +144 -288
  183. package/lib/util/queue.spec.js.map +1 -1
  184. package/lib/util/repeat.d.ts +15 -0
  185. package/lib/util/repeat.d.ts.map +1 -0
  186. package/lib/util/repeat.js +55 -0
  187. package/lib/util/repeat.js.map +1 -0
  188. package/lib/util/semaphore.js +15 -46
  189. package/lib/util/semaphore.js.map +1 -1
  190. package/lib/util/skip-if.js +6 -6
  191. package/lib/util/skip-if.js.map +1 -1
  192. package/lib/util/timeutil.js +16 -16
  193. package/lib/util/timeutil.js.map +1 -1
  194. package/lib/util/timeutil.spec.js +21 -24
  195. package/lib/util/timeutil.spec.js.map +1 -1
  196. package/lib/util/tracing.d.ts +51 -5
  197. package/lib/util/tracing.d.ts.map +1 -1
  198. package/lib/util/tracing.js +197 -62
  199. package/lib/util/tracing.js.map +1 -1
  200. package/lib/util/tracing.spec.d.ts +7 -0
  201. package/lib/util/tracing.spec.d.ts.map +1 -0
  202. package/lib/util/tracing.spec.js +121 -0
  203. package/lib/util/tracing.spec.js.map +1 -0
  204. package/lib/util/workspace-port-authentication.js +2 -2
  205. package/lib/util/workspace-port-authentication.js.map +1 -1
  206. package/lib/workspace-cluster.d.ts +76 -0
  207. package/lib/workspace-cluster.d.ts.map +1 -0
  208. package/lib/workspace-cluster.js +33 -0
  209. package/lib/workspace-cluster.js.map +1 -0
  210. package/lib/workspace-instance.d.ts +24 -2
  211. package/lib/workspace-instance.d.ts.map +1 -1
  212. package/lib/wsready.d.ts +1 -1
  213. package/lib/wsready.js +2 -2
  214. package/package.json +31 -17
  215. package/pkg-yarn.lock +17 -9
  216. package/provenance-bundle.jsonl +2 -0
  217. package/src/accounting-protocol.ts +4 -10
  218. package/src/admin-protocol.ts +46 -5
  219. package/src/analytics.ts +52 -0
  220. package/src/context-url.spec.ts +53 -0
  221. package/src/context-url.ts +107 -0
  222. package/src/email-protocol.ts +2 -3
  223. package/src/env.ts +10 -10
  224. package/src/gitpod-service.ts +181 -44
  225. package/src/headless-workspace-log.ts +7 -11
  226. package/src/ide-frontend-service.ts +1 -1
  227. package/src/ide-protocol.ts +119 -0
  228. package/src/index.ts +7 -1
  229. package/src/installation-admin-protocol.ts +42 -0
  230. package/src/messaging/browser/connection.ts +195 -14
  231. package/src/messaging/client-call-metrics.ts +97 -0
  232. package/src/messaging/error.ts +8 -2
  233. package/src/messaging/handler.ts +12 -0
  234. package/src/messaging/node/connection.ts +21 -68
  235. package/src/messaging/proxy-factory.ts +13 -5
  236. package/src/oss-allowlist.ts +15 -0
  237. package/src/permission.ts +24 -4
  238. package/src/plans.ts +632 -0
  239. package/src/protocol.ts +194 -85
  240. package/src/snapshot-url.spec.ts +25 -0
  241. package/src/snapshot-url.ts +27 -0
  242. package/src/team-subscription-protocol.ts +7 -5
  243. package/src/teams-projects-protocol.ts +147 -0
  244. package/src/util/analytics.ts +105 -0
  245. package/src/util/garbage-collected-cache.ts +9 -3
  246. package/src/util/generate-workspace-id.spec.ts +20 -3
  247. package/src/util/generate-workspace-id.ts +22 -2
  248. package/src/util/gitpod-cookie.ts +39 -0
  249. package/src/util/gitpod-host-url.spec.ts +25 -1
  250. package/src/util/gitpod-host-url.ts +22 -13
  251. package/src/util/grpc.ts +15 -0
  252. package/src/util/jaeger-client-types.ts +102 -0
  253. package/src/util/logging.ts +102 -38
  254. package/src/util/parse-workspace-id.spec.ts +21 -1
  255. package/src/util/parse-workspace-id.ts +32 -6
  256. package/src/util/repeat.ts +45 -0
  257. package/src/util/semaphore.ts +2 -2
  258. package/src/util/skip-if.ts +1 -1
  259. package/src/util/timeutil.ts +4 -4
  260. package/src/util/tracing.spec.ts +83 -0
  261. package/src/util/tracing.ts +183 -17
  262. package/src/workspace-cluster.ts +104 -0
  263. package/src/workspace-instance.ts +45 -13
  264. package/src/wsready.ts +2 -2
  265. package/lib/messaging/connection-error-handler.d.ts +0 -27
  266. package/lib/messaging/connection-error-handler.d.ts.map +0 -1
  267. package/lib/messaging/connection-error-handler.js +0 -46
  268. package/lib/messaging/connection-error-handler.js.map +0 -1
  269. package/lib/util/context-url.d.ts +0 -13
  270. package/lib/util/context-url.d.ts.map +0 -1
  271. package/lib/util/context-url.js +0 -26
  272. package/lib/util/context-url.js.map +0 -1
  273. package/lib/util/context-url.spec.d.ts +0 -10
  274. package/lib/util/context-url.spec.d.ts.map +0 -1
  275. package/lib/util/context-url.spec.js +0 -52
  276. package/lib/util/context-url.spec.js.map +0 -1
  277. package/lib/util/repeater.d.ts +0 -22
  278. package/lib/util/repeater.d.ts.map +0 -1
  279. package/lib/util/repeater.js +0 -118
  280. package/lib/util/repeater.js.map +0 -1
  281. package/lib/util/safe-promise.d.ts +0 -11
  282. package/lib/util/safe-promise.d.ts.map +0 -1
  283. package/lib/util/safe-promise.js +0 -34
  284. package/lib/util/safe-promise.js.map +0 -1
  285. package/lib/util/without.d.ts +0 -7
  286. package/lib/util/without.d.ts.map +0 -1
  287. package/lib/util/without.js.map +0 -1
  288. package/src/messaging/connection-error-handler.ts +0 -62
  289. package/src/util/context-url.spec.ts +0 -25
  290. package/src/util/context-url.ts +0 -23
  291. package/src/util/jaeger-client.d.ts +0 -105
  292. package/src/util/repeater.ts +0 -49
  293. package/src/util/safe-promise.ts +0 -26
@@ -10,6 +10,7 @@ export interface WorkspaceInstance {
10
10
  creationTime: string;
11
11
  deployedTime?: string;
12
12
  startedTime?: string;
13
+ stoppingTime?: string;
13
14
  stoppedTime?: string;
14
15
  ideUrl: string;
15
16
  region: string;
@@ -17,6 +18,10 @@ export interface WorkspaceInstance {
17
18
  status: WorkspaceInstanceStatus;
18
19
  configuration?: WorkspaceInstanceConfiguration;
19
20
  readonly deleted?: boolean;
21
+ /**
22
+ * Contains information about the image build, if there was any
23
+ */
24
+ imageBuildInfo?: ImageBuildInfo;
20
25
  }
21
26
  export interface WorkspaceInstanceStatus {
22
27
  phase: WorkspaceInstancePhase;
@@ -35,16 +40,16 @@ export interface WorkspaceInstanceConditions {
35
40
  failed?: string;
36
41
  timeout?: string;
37
42
  pullingImages?: boolean;
38
- serviceExists?: boolean;
39
43
  deployed?: boolean;
40
44
  neededImageBuild?: boolean;
41
45
  firstUserActivity?: string;
46
+ headlessTaskFailed?: string;
47
+ stoppedByRequest?: boolean;
42
48
  }
43
49
  export declare type AdmissionLevel = 'owner_only' | 'everyone';
44
50
  export declare type PortVisibility = 'public' | 'private';
45
51
  export interface WorkspaceInstancePort {
46
52
  port: number;
47
- targetPort?: number;
48
53
  visibility?: PortVisibility;
49
54
  url?: string;
50
55
  }
@@ -62,5 +67,22 @@ export interface WorkspaceInstanceConfiguration {
62
67
  theiaVersion?: string;
63
68
  featureFlags?: NamedWorkspaceFeatureFlag[];
64
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
+ };
65
87
  }
66
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,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,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;IACF,cAAc,CAAC,EAAE,cAAc,CAAC;CACpC;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,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,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,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;IAGjB,eAAe,CAAC,EAAE,MAAM,CAAA;IAGxB,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) 2020 Gitpod GmbH. All rights reserved.
2
+ * Copyright (c) 2021 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
  */
package/lib/wsready.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
+ * Copyright (c) 2021 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 2020-06-11 14:47:30.351829728 +0000 UTC m=+0.002956090
9
+ // generated using github.com/32leaves/bel on 2021-11-04 12:16:53.917570766 +0000 UTC m=+0.006002884
10
10
  // DO NOT MODIFY
11
11
  var WorkspaceInitSource;
12
12
  (function (WorkspaceInitSource) {
package/package.json CHANGED
@@ -1,40 +1,54 @@
1
1
  {
2
2
  "dependencies": {
3
+ "@types/react": "17.0.32",
3
4
  "ajv": "^6.5.4",
4
- "inversify": "^5.0.1",
5
- "jaeger-client": "3.17.2",
5
+ "analytics-node": "^4.0.1",
6
+ "cookie": "^0.4.1",
7
+ "inversify": "^5.1.1",
8
+ "jaeger-client": "^3.18.1",
6
9
  "js-yaml": "^3.10.0",
7
- "opentracing": "^0.14.4",
8
- "prom-client": "^10.2.0",
10
+ "opentracing": "^0.14.5",
11
+ "prom-client": "^13.2.0",
9
12
  "random-number-csprng": "^1.0.2",
10
- "reconnecting-websocket": "^4.2.0",
11
- "reflect-metadata": "^0.1.10",
12
- "uuid": "^3.3.3",
13
+ "react": "17.0.2",
14
+ "react-dom": "17.0.2",
15
+ "reconnecting-websocket": "^4.4.0",
16
+ "reflect-metadata": "^0.1.13",
17
+ "uuid": "^8.3.2",
18
+ "vscode-jsonrpc": "^5.0.1",
19
+ "vscode-languageserver-protocol": "3.16.0",
20
+ "vscode-languageserver-types": "3.16.0",
13
21
  "vscode-uri": "^1.0.1",
14
22
  "vscode-ws-jsonrpc": "^0.2.0",
15
- "ws": "^5.2.2"
23
+ "ws": "^7.4.6"
16
24
  },
17
25
  "devDependencies": {
18
- "@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",
19
30
  "@types/js-yaml": "^3.10.1",
31
+ "@types/mocha": "^5.2.7",
32
+ "@types/node": "^16.11.6",
20
33
  "@types/random-number-csprng": "^1.0.0",
21
- "@types/uuid": "^3.4.5",
34
+ "@types/uuid": "^8.3.1",
22
35
  "@types/ws": "^5.1.2",
23
- "chai": "^4.1.2",
36
+ "chai": "^4.3.4",
24
37
  "chai-subset": "^1.6.0",
25
38
  "mocha": "^5.0.0",
26
39
  "mocha-typescript": "^1.1.11",
27
40
  "rimraf": "^2.6.2",
28
41
  "ts-node": "^9.0.0",
29
- "typescript": "~4.1.2",
30
- "typescript-json-schema": "^0.43.0",
42
+ "typescript": "~4.4.2",
43
+ "typescript-json-schema": "^0.50.1",
31
44
  "typescript-parser": "^2.6.1"
32
45
  },
33
46
  "files": [
34
47
  "lib",
35
48
  "data/*.json",
36
49
  "src",
37
- "pkg-yarn.lock"
50
+ "pkg-yarn.lock",
51
+ "provenance-bundle.jsonl"
38
52
  ],
39
53
  "license": "UNLICENSED",
40
54
  "main": "./lib/index.js",
@@ -43,9 +57,9 @@
43
57
  "build": "tsc",
44
58
  "clean": "rimraf lib",
45
59
  "prepare": "yarn run clean && yarn run build",
46
- "test": "mocha --opts mocha.opts '**/*.spec.ts'",
60
+ "test": "mocha --opts mocha.opts './**/*.spec.ts' --exclude './node_modules/**'",
47
61
  "watch": "leeway exec --package .:lib --transitive-dependencies --filter-type yarn --components --parallel -- tsc -w --preserveWatchOutput"
48
62
  },
49
63
  "types": "./lib/index.d.ts",
50
- "version": "0.1.5-minor-updates.3"
51
- }
64
+ "version": "0.1.5-mixpanel-migration-prep.0"
65
+ }
package/pkg-yarn.lock CHANGED
@@ -4,19 +4,27 @@
4
4
 
5
5
  "@gitpod/gitpod-protocol@0.1.5":
6
6
  version "0.1.5"
7
- resolved "file:///tmp/cache/b13203dd1eab452591f4a0947f4f84862528ea37.tar.gz"
7
+ resolved "file:///tmp/cache/10dc30151d9f590270aa197c91d475f289df235c.tar.gz"
8
8
  dependencies:
9
+ "@types/react" "17.0.32"
9
10
  ajv "^6.5.4"
10
- inversify "^5.0.1"
11
- jaeger-client "3.17.2"
11
+ analytics-node "^4.0.1"
12
+ cookie "^0.4.1"
13
+ inversify "^5.1.1"
14
+ jaeger-client "^3.18.1"
12
15
  js-yaml "^3.10.0"
13
- opentracing "^0.14.4"
14
- prom-client "^10.2.0"
16
+ opentracing "^0.14.5"
17
+ prom-client "^13.2.0"
15
18
  random-number-csprng "^1.0.2"
16
- reconnecting-websocket "^4.2.0"
17
- reflect-metadata "^0.1.10"
18
- uuid "^3.3.3"
19
+ react "17.0.2"
20
+ react-dom "17.0.2"
21
+ reconnecting-websocket "^4.4.0"
22
+ reflect-metadata "^0.1.13"
23
+ uuid "^8.3.2"
24
+ vscode-jsonrpc "^5.0.1"
25
+ vscode-languageserver-protocol "3.16.0"
26
+ vscode-languageserver-types "3.16.0"
19
27
  vscode-uri "^1.0.1"
20
28
  vscode-ws-jsonrpc "^0.2.0"
21
- ws "^5.2.2"
29
+ ws "^7.4.6"
22
30
 
@@ -0,0 +1,2 @@
1
+ {"payloadType":"application/vnd.in-toto+json","payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vc2xzYS5kZXYvcHJvdmVuYW5jZS92MC4xIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9oZWFkbGVzcy13b3Jrc3BhY2UtbG9nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkZjJmMWZiOWEwNjg2NjlmMzJmMzU4ODAwNzM4MGI4NWFjNTc5YWI0YTJhYzAwNzY0YjZmMDg4OWE5YjZmN2UiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODA0NTBlYzRiMGUxMWYxMGE2ODc3OGQxN2RlMTkzODQ5YzAxZmY0OTNkYThhNTNiNDA1MDM1NTY2MGJiMTY4OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWZhMjMyMGE0NWQwNmQwZWI1MDM4ZTM4ZGZiY2I4OWZiNDMwZTFlMDZjZjQxZTdkMzI3ZDY1NjNmMmYyYzZjOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTc3N2ZiZWY4Nzc0MjA2ZTc1MzM2ZjFmOGY2ZmY5ZmRmMjkxYjUzMTEwNTVlYjUyNmFhZmFjMmI1Y2VlMjNhZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2Rpc3Bvc2FibGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkODA4ZmQyNzgxMGRjYTZmOWIwNjQ1NmJmMTMwZWUwZWIxZTI3MjYyZjZjYTBiNjM0ZjJkNTJhNTY3NmViNzZiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9wcm94eS1mYWN0b3J5LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU1OGNhNDAxMTIwMzg5MGRhZDExYTkwNDZmYWFjMzQxYjU0MmMzNmQ0ZjNiNTg2NmY0NWU0NDY2NGY2ODBkODUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlmOGUyYzAyYjMzMmJjYWJmNGIwOWJlZjVhZWNiYzlkMTEzMWY3MTNkODJiNTc2NTVhN2Y0Nzg4NDI3OTczMGUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDZkNjRlZWQ3MGQzNzc4OThjOGJmOGY0MWZkMzhhZjgzYzk4N2M4MDQ1OTY4MjAyODU2YTIwYzQ1ZTEyYzViMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM5OTJhNTM0OTFlYzFhMzBlYmQyZGM5MTNlMTYyYTc4ZTQyODg0ZWM3Yjk3M2M1MDMxMTFmZDU5OGM1YTExNzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg4Y2I1NTlmNzc2MGE5OTY3MTlhOTIyYjAyYTNkYjVjMTRkOWQ3YjQ5ZWFlM2Q3OGZjOTYzYmY2Yjk4NGE1YjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2U0MjRiMTYzMDM2Y2E1MmU4ZmU2NzgzZTNlMmJjNzExYzE5MWNlMzBlNjYzMTVkMWM1YzU2ZDdhN2QwNTVlYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlYmNiNWEyMTVjN2NlMTczOTA0OWJhNGU3MTRmNTdhZjk3ODM5ZGQ5NTlkNDI3ZjU3Y2I0Zjk3MDBjOThjYmRiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2F1dGguZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YjM5OGRlNDljYjRkZDI1ZWQyMzczNjgzMzFkN2M0MjVkYjUwY2I4ZTZhZGJkODI4ZWUzZjFmMGMwMTNlYzQ5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTRmZjdjNDMwNjMxMzQ2NTk3MTcyYWIxYjFlMWYyMGNhY2YwYjNkNzViYmNkMmZkNWE3ODA3MzZjYjFkZjhhYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2Rpc3Bvc2FibGUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDJlOTQwNGMyMGJhYjRhODFlZTgzNGUwOGE4ZTQ4NzVmYjMxYzBkNjFhZjE5OTUxZDU4NDhhY2E4ZWM4OTVjZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzOGE2OTdiNGRiZGI1ZjFhYTg1ODk2YzE1N2QyNGNlMGQ1ZDExNWM3NGY0YWQ4YWY3MTI4ZDQzYjBkNTZhNTc4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZXZlbnQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzQ1MjNkNTlhMzVhZDU5Y2ExZTY5ZGVmMTlhOGYxYzAwYjA3YzJiZDQxYjE4ZWQ4NWMxMWYyYTVkNTgzYzQ4NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hY2NvdW50aW5nLXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjN2EyNzExMzQ3MzAwZWFlMzVkYmZmODkyMmQ2OTRmMDkxN2U3NmRkOTMxYzE5NzYwNTU2MTYwNmZmODIxZTExIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2tpcC1pZi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGNiZjYyMDIyYjY1NjE2YzVhMWVjMGQ1OWJlYzgxMTY4NWZlYWJlMjFiMDM4NGM4YjllYWY1ZTc0MWFiMjNmZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjAwNjdkYzgzMGIyYTVkZTBkNTJlNzRlMzIzODEyN2U2NzlhOTM2ZTBhNzcwYWFjYmNlNjYxNjJiMjIwMDMxNGIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzI5MDU2MjFhNGNlNTZkZmExZDVkZTFmNjg1NDEwOWNjNGI5MDVlMWE0Y2RlMmMwNTMzYTYyNWI5ZjY0NDcxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkZTJlZGIzNTZjNjE5YjMwOTE4ZjZkMThmNWNkOTFiOWY0ZTcwM2ZkMWZlZDViNTVmZjA5M2YzZDUzMWQxODgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2hhbmRsZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDkyMWY4OWI3NGM2MmZjYmUxYzdkZjAwOGE5MjhiZTNmYmU5YmZiMzg5YzA5ZTNkNTQ2ODgyMjgxODUxNGQ2MiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wbGFucy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRhYjJiYmU1YjUyMThkMjYwYjgxZGQ5YjU0OTcwZmIwYzk1OWRiMjA2MzFmOGJlODlmNTkwMjFhODQwMmE1MzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWE5Mzg2MWZlZDFmZDBlZTNiZWQ5NDcwMmJmMGU0YjY4NTgwMDVjYTU2NjRjMzAwYTY3ZjJlZjUyNmIwMjBjYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2xvZ2dpbmcuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU1Y2NjYjg4MjdkN2E5MGQ1YmNjYmQ5MDU2MDg2OTJhYTA1M2YyYzA0Mzg2ZGZjZTVkZWZkMGEzYmIxNjM3ZDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE5YWI5ZDc2ZmY0YTg4OTc4MjY3MWM3ZjJjZDlkMGU4YzAyMTk1ZTM3NmE2MTdiNGU2OTAzNTQxNzM3YTQyOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEyNjVmNjgzMzNlYjQyODcyZjJhMjQ2NGUwMTY0ZGU1YmY4ZmZjNDQ2MWRhM2VjMWExOWRhNDU0OWU0NzIyNmEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3YzJmMjU5NjdmODVhZDc2M2IxMGRlOWUxNjQ2N2Y2N2FjNzM2OWYwOTE4NDYzYjg4NjUyNzUzNmNjNTZkZTk4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImEwZDlmYzcwZDA0NGNlMDAxYmVkZjk1NTI0NTlmMjVhY2JmZWI4Njk2NGRjY2IxYzc1M2E1NjRmYWI0MzMyMmQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU1MjM1NzZjOTQ1OWNmODVkNjZhN2VhNmM2MjgzNzZkNzYwYmIyODVhYTE2NzYxNGY4OGVmNGExYThhOGMzYjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9jb250YWluZXItbW9kdWxlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE0NjNlYzJmMDkxOWRlMDIxMmY3MWYwNGYzNGMxYTdmNzI3NzgxYTQzNTVlYTg0YzkyODQzNTQ2ODlhMTUyNWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU5ZTM0NzM2MmNhNzQ5NzAwYjE2NDJhNzY1ZTJkNjYwMWJmYmU2MGVmYWVkNmExZjkxMTliNjgzZTlkNjc1ZDkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuc3BlYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImUxYzRmNzJkYWM2N2M0Y2VmODUyNDI3ODFjOTE4ZDNkZjQzMjBjZWEyMDZhZWQ3MThmMWU2YzFkNGYwZTYwMjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzBiZWE1YzQ1ZWNiMTBhZmZjZDhiMjEwNzdhZDZmYzVmNGU1YjUyYjYwZThjNDBlYTBkMzI1ZjM2YTczNDcxZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ4NGNhZjc5ZWZjNzk5MjRkNGRiNWZkZmQ2MGZjOTljYTFmYzcwZjIzZWZiMTg2NjUzMWIxYmJkNGFjMTc5ZjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvb3NzLWFsbG93bGlzdC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3MjJmMzNhNzQ3NzU0MDE4NWE2MWVhZTY4N2YyOWYxZDNjYWFjZmE0NDJjOGE0ZGQxM2I2ZWY3NDVlMGZmOGFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzY4YWUxMjAwNTk4MTllMGVjNmZmM2E0ODdmODQ4MzhhOTZiZmM3MWU3OTBjZWRmZGM3ZTJlOTIzN2Q5NTZjZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci9jb25uZWN0aW9uLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkNTUxZGViODQyNGM0NWU5M2E5MWQ4YWVhZmIyNGY0NDY1ODcyM2NmOTYyZjgxNmI3ODgxYjhlZWIxNTZkNWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2QzNzk0YmI2NDkxYTkxYmNkMTQwMDc0NWViN2Y3NDA4ODNhYjE0NTRhOWU5ZTM4OTYxMjUxMGMzMDgxYTVlZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL21ha2UtbGluay5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxOTk5OWY0ZTZmYWYwYWY3YzM0ZmU0OWFkNDQ0NDJlOTA5ZjYxNWMyZGExNWZhOTUwZGYxZDUzZmEzYzZiMDI3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjAyNGU0MjQ4Y2E0MGM0YmVhY2EyZDliMTVlM2M3NzY5MmY5ZDE4ZGEyOWU3MmQ2YzQzOTcwZmUzMWIxMDkzYjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ncnBjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjFlNmVmMmMxMTAyMDQ3ZmZmYmFkMmNhMDM1MjRlZThmNDBlZDU1OWZkNzc0MGYxMmEwODZlZTRjYmM1NTUxNTciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3NzU4ODQ4Njk3MWNkYzdmMzQyMTRkYzdiOGU4OGE2NWY4YTFmOWZiMzg1ZDM0ZjhkOWE2ZjMwODEwZGRkZmQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjFkMTM0ZGE5NTA3MzNkMWI0MGI5NDhhOWY2YmE0YmFkOTU0OTc3YjJhNGM2MTM0NDZjNjhhZmYwMTlhMzJiZTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODc5ODFkZTYwOTU1MjhjY2E3NTBiOWYwNDI5Y2ZjMGQzNmE4NGU0YjQyMTdjMzc4YWJkOTQ1YjE1NDRiODYxNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhMjEwMjBhY2IxOTZlYmFjOGM0OTU3MDU2NGM0NGFmN2QzNjE2Y2M3MzFlYmQyYTZiMWQ1M2ViOGNiOWRmYTIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdHJhY2luZy5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmYjYyMDQyNGQ3MGUzODgwYjMyNDlmYzdiNzhmYWY5OTk0Y2RiNWQ1NDY5ODk0MDQ3YTlmZjEyYWU5YzA0NDFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDA1MzRkNTU4OWU1ZmI3ODU3ZTg0NTRlMjYzNjc5NjRjZjgwMTM4NmQxZmI4ZmMwNTE1Y2UyZTQxYjEwOWU4ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbmRleC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJiMTJiMTk3ZjhhNjNmOTY4M2M0ZWY0MDQ5ODZkOWIzMWFiZTYwODUwZTJlN2VjNTBjOTRiNGY2OWNmNjZjYzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvd2luZG93LWNvbm5lY3Rpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmVkYTVkMWMyYTcwN2FlZjRiYTVjM2UxYTQyMzNmN2Q5ZTRhNTBlMzFhYWJmM2RiYjk5Yzg4NDYyZTk4NmZlOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1MTUwMWQ1N2U3YTEzNDg5MzFjOTNhNDNhZjI0NTkxYTZjZTM2YzRjYzdhMzE3YzBhYzUyN2RmYzEwOTFkYTYzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcGFyc2Utd29ya3NwYWNlLWlkLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiY2RhOTVhYjBkMmJmMjRkNzQ0NmZhNTM4YjExZDI5ZDQ5ZDA5NTkwOWMxOTgxZWYyNzhlYjZjNzNhNTE2OGNhNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2QtZmlsZS1wYXJzZXIuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2NDJjMmNiZDFjYzNiMGM1ZmQwMGM4MTg4NzMyMWViNzkzZTRjMTZhNjMwZTY4YzIyZGNkMGMxZjZkNjNiZGE3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vY29udGFpbmVyLW1vZHVsZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjOTIzNDIwN2NjMzgzNjVlN2FhNThmOWZmNWQ3N2RlMDg2ODM3ZjhkMGRmYzM0OWRhMzYwMzg2NmIxZDczZTM5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3Blcm1pc3Npb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM1MmQ2NWY4YjJjMDJhZTMxMDQ1ZmE5YjU0MGE5MWZmZTg0ODMwYTUyZjQ1ZDBhYWUwZjg1NzdkMGMyZTViYTQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDg0N2ZkM2NiZGE2NzMwZjc4OGNiN2JmMDY0OWYwY2VhOTYwOWNmMTczZGFkNGRlYzQwZTMyNTA3YmM3NTRkYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY0ZWFmMDllMjVjZGI0NjAzOWNmZDA2ZjZjYTExZjkzYWYwN2NiZmZiNmMzZjZmZjlhOTU0ODk2NWFjZTA0NjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2Y1ZmM0MmZjOWJiNWZhZDE4MjhjNDJlN2E3YTdkMWRhYzM0MWNhMTlmNzEwMzgzZjZjMTJlNjQ3NjdjNTliZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4OWYzNDE1OWQwMzQ4NTc3NTE1MzE4NTFhYTYwNDk0ODhjYzZlYTZiYmRhMzM0NGJkNTI0YzQ0NjUwYzg5ZGFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2NvbnRleHQtdXJsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZhYjI2ZWJhNGYxMTA0M2RlMDgyYjNiYjAyZTE0NmNkYjZhOWY1NzQwMGI0OTBhNmQ2NWVjMGZlYzM1OTUyMDQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImFhYWQzZjE4ZmIwNDlmOWE1MTNjMGM4ODJkYjRhM2IxYTk0ODNiZTNjZTZmNDIxM2M4MGIwMTFiNTFmMjZkMzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGF5bWVudC1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkYzc3NDFkZDM5ODQ5OTcyYzk1ZTlkMWE3OWY1NWVjODk2OTZkZWM3YTQ3NjllMWNkNjdhNDUxNDVjNjkxMGFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2FyYmFnZS1jb2xsZWN0ZWQtY2FjaGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5OTU5MGFjMzVhZDQxMzliMzRiOTRmMmU1NGFmNzM4MGMzYTgzYjQxMDlhMTM5MWRjOTliMDhmZmJjZDU1MTA2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dzcmVhZHkuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjMwNjUzNWM1MjdjZTY3OTJjNDYwMzVjZjlhN2QyOGFmZjFkZmM1ODU4ZDgwYzg0YWFlNzM0ZDM1YzljMjcxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMTMwMzllNWZlYTE5MDI5MTA2MDVhMzZjYjJmNWQzYWYwNGUwZTdlNTAzMzY5MmUzZDFkOWVmYTU3MzVlY2YzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImMyZjU2ZWUwYzc1MzljMzlmNjk3MWVlOWZhODFjMDQ1MGRmZjQ0YWEzZjAxZDY2NmM4YWQ2MjI5YmRmMzM0NjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjBiN2FmOTMwM2UyNGMzMjVmYzk5NmY4MzVlZWZkNzM2MTk4ODdkOWFmOWVmN2MxNjJjNGZiOTc5MWUwM2YzMTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nYXJiYWdlLWNvbGxlY3RlZC1jYWNoZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYjQzNDRlZWE0NzRmZTk3OTk4N2M5YmZlZjk1MWZhMzg4ZGM1MmRkZTVlMTVlZmNjZmEyMjA2YzE3NzNmMTBkNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtcy1wcm9qZWN0cy1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImViMGZjOGRmOTc0ODgwMGZkYjYyNDQxMTg5MjIyMzA4MTBiNmVmZDZhZDg2YTYzNDE3OGVmMzBjZjA2OTkwNGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZjYWFmMGY0ZmUwOTk3OTgxY2NmNDMwMzljZjBlNWE3YTM5NTUzMWM0MDkxNjc5ZGJiZGY1ZmI1M2FlODRlYTMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdHlwaW5ncy9nbG9iYWxzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTg2OTcxYzQ4YTZkMTQ2M2Q4Yzg1YWIxZDg3NmZkNDM3ZDA3MjE4ODc2ODMxNjY3NTk0NWU5OTMzNjQ3ZWZmMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDIwMmViMGEzMmMwMmU4OGIzY2I5ZTNjMjc2MDU2NDg0OTlkY2I4MGQxNGMwMTVkNDBkNDAyNDcxMDE3ZTRhMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhN2ZiMjRlZDhmYjdmMjk0ZWNmZDk3MmZkM2JjYjdhOTdmYTc5ODNhODc5NjRiZWVkMzBiMzMxMDQ3M2NiMzM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4NzdlN2I2Y2IzYmVlYTAxYWU0ZDM3NWFkNDkzYWY2N2E0MWIzMzM4NzI3MGY5NTQxZDNjODUzZjIyZjY2N2UwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTQzZGUxNTUyMDExMTU5MTcyZGJkNTFkNGI5YmQzNjBjZDUzZWVhNjBjZDFhZDA1MTJlMDQwZDFlNGQ1MmY5YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzg2ZjQwYjg3ZjhkYmFiMDU4ZjU1YWZhMjUyNWZjZTI3OTU3ZTI1Yzg0NDJiMTA3OTRmZTZkNTYwZWFhOTVhOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjU5NmQxZTQ0MDA4YThmZjJjMTM5YjI1N2Q0OTFkZTJkMGI4MGNiYjA3YTdmYTdjMTMyMTBjNDFhMWEwMThhMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hZG1pbi1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwZTI4NjkwYTc2MzA2YjFlOWIyMTBmYmRlOTVhZTZlZWZmNzY0ZjkwM2E4ZWE5ODlhYWY3YzNhOTc0NGI5ZjNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3ZmZlZTc3NTY2ZGYzYTc5YzhjMDg4YWZhODRjODVlNGQ4NDA4NDAzODgxZTMyMzJmMjRhMTE2OGIwMzY0ZWE4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZXZlbnQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTdhMjczMWQzNWJjNjNiYzlkMzNlODdmY2NhMzU3ZjY3M2RjYzMwYTAwMWNjNDUxZGQ4YTBkMDdhNmU5MTk5YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbnN0YWxsYXRpb24tYWRtaW4tcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ2NWEyYmRjMjBiNjUzYmM1NDM0N2NhMzNkMzU4ZDIyMTIwMDg5ZTdjZTVjNWMxNmNhODEzMjIzOTFkYTA3MWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjUwYTY0M2UwYjIzNjdhNDljYTU1NDEwYjhkNDMxOWFlMjFlN2ZkZmZmZDQ4OTk0OWJmYTEyOWU2ODYwZTY2ZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlhZGMwYmI3MTYwMWU4MWU0YmYzZGRjYWI3NGMzYTA4YzQ3ZDQ0ZTIyOTI1YzljOTFlMGVhYjhlOTdiMWNhYmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDM4YWQ4YTlmNjRlNWI4NzMxMTg5YjYwNTA0YmJiYTM1M2IwNzJjY2ZjM2VkZTg4YWNkYzQ0YThlOWQ2NmVlZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuc3BlYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkNDBhNTRiYWQyMzhhNjI3MzhhYTA0ZmU0ODY3Y2MwYzgxM2Q5YzFhYWIyMGExZTI4YWE5OGViNmIwNTExMGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJkYjEzZTUxNWUyY2IxOGFmZjhkNTZiMTc4MWMzYzM5NGI2ZjJlNmIxOTkyYWEwNjRmZWFkNjgyNDY2ZGI5YmEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMyNTVmYTBkNzc4OGY0MzVjZDA4NTI5NTI5ZWI5OWUzZjVhM2QxZmE1MjUyOGFmNTY0N2MwZWNkODFjZGQ5NGIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9yZXBlYXQuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhN2NhNjAzNGI5NTdmZTI4NWY3NmYxY2RjNDUyMDU5NDhkYmY5YTczMDExOGMzMjkyNjBmYWQzODQ5NTdmZTg2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjhiYzg0ZjUxNTEzYjQ1MTE3NTllMjc4NDU2MzQwMWNjYzk3NjI5NWU5NzU0YzhjZjUwNGRjODUwODcyMDYxYjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi95YXJuLmxvY2siLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZTY3ZTMyNTRhYzAwNzAzOWFkYTQwNWZlZmQwMzNjMmNkMWRlYTA1ODUxYmQyNzI0YzhjZmQ4OGZmODkxZTM5YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MDFmYmY4MjdkMGIwZTgzNmI3NmVmYzc5M2FlNDU4MzlmZGIxZThhNjUyNmEzZjI3MDE2ZDU3NWU0ZjM4N2U1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjkzMTE5ODI0MDQ3ZmEzNjliMmI4Y2U2MGFiYjMxZjVkZjYxZDc4MDgxNDU4ODU1YmY0ODM4MzZhYjRkZmEwZDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNDFjZmFhMjA2M2VlMGM5ZmZjYmRhYjcwNTMyY2Y3ZTNjMmQ2ZjRhMWVjMmI2NmFkMjBmMGQ5NWVlMjRhMTk0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL3dpbmRvdy1jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGZhMzViOTlhMmI5NmVlN2MyYjQ4Y2YwOTAzOTUzZTYwMjkxM2UxODk5MmVhYjE2Y2ExYjg3MmM0MDIxNzY1YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMDk1NzcyYjVjYzhlZWZlNWM0M2E5YWQ2YTU0OTZjMWVjMmExMTc1YzJiZjhkNjM4NTM2ZDkzYTRkYjI1NjA4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGF0ZS10aW1lLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE0MmFlYjU3M2ExNmM0YWRmZTAzM2JjYTkxZTZhMmQyMmU2NTM0Y2JhMGQ4ZTFjMWM0NzRmYzg2NmI3YWNkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY0OTZiMDg0OGJhYmQ2YWI2OWUwYzA2NGQ0MWZmMmUwYjUzMDBkZWMyNzU1YTYwNjFlNDg3OGRlMGI4YWM1ZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hc3luYy1pdGVyYXRvci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNjkzY2ExMjIyOGM4NjUyYWI1ZWMwYmEyZWM1NzM3MTJhNTk1NjdmNTY5MDQ5ZmVmZmNiOTRiNWMyZmJiNTZiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2VtYXBob3JlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNiMWQ5YTU2YmU5YWMzZTM2NmI3Y2UyZWVjZWQ0M2M5MDM2ZDNkYzhiOWVhMjEyMWQ3NjgyYjEzMWYyNTNiYjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk5MTU3MjRjODg0NDRmNzg0MDlmYjhkOGJmM2Y5ODhmNTZhY2I3YzRiZTI3NWZmOGMzMTJiMWQyNzg2YTBlMjMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL25vZGUvY29ubmVjdGlvbi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4YzYxZDdkZGVmZTg1MzRkNGZmZjBiNzc4MmU2YTRhM2U0Njc2N2Q3MWY2OGEzMDU1ODQyOGZjOWZkOWFlOTU4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2hlYWRsZXNzLXdvcmtzcGFjZS1sb2cuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmOGRjNTZiNTBlMWRhNjM4ZGE4ZmRmMWY3N2EzMThiMTUxZDM4YjczZDk2NjYwYzU4OWIwMzc3YjYzNDJmMmFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjVkYmE3YmUxOGQwMWU4ZjRlN2Y3YzZiYjAxNTcyNDdiMWVkZDY4YWQ2N2MwNzIyYTU4YzBlNWRlYzkxN2M1ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwMTYyMjFjNmFlOThiNmIyZDhkM2IxNDg0ZTJjNTQyNzk1ZWI3OWM1N2QzM2FmMDZlZDU5YzFjOWNmN2JjZDA5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvd29ya3NwYWNlLXBvcnQtYXV0aGVudGljYXRpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmY4MzZhZGYxMjU2MzI0ODk5ZjQxMGM3ZDVmOGU0MzAyZGQwZGY3YTFmNTAwOGExZDY3ZmI5YmU0NTc2OThjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1ZTg1MjRhYWM0NDBhYjZmZTMzOTYxMjZhN2M3NzZlZGMzOTc1YTUzM2I4MmVjYjgxOGI5ODI2YzIyOTA4YTZlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGRiNWZiZTg0MzU0NWNjMjI1YTI1MmU0NGI0MGUyYzY1ZWQ3YWRhOWQwZjZmZTRiMGE4ZGQwYWI4Y2YyYWJhMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiMmFiNmY3MTE4NzJjZjM1YmMwNGE2NzI5MWY3ZGMzMjBiZjNjYTQ0ZDliNGVmNTIwZDlhZTAxMTY3ZGY2MTNiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNGZhN2EwNjg2OWM3ODlkMjc0NmQ5OWViY2RjZGEyODgxYjU3MGUyOTk1Mjk3N2U2YjdlNGJhN2M1NGI1NWU1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FjY291bnRpbmctcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNTMyYjNmZGU1YThjOTc0MDVkMDc5Zjg2YWEzYmFlMWVhZWZkYmM0YzdmYjBkY2FlY2MyZTU1Y2E5N2UwMzkxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1lbmdpbmUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWI1ZTdkYzUwOWZkMjNiZDM0MTIzMjE4ODExZTAwNWE4MzE4M2JkMzQ4NDhlYjFjOTVmZjM2ZWVjODY0YWI1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjBhMmQ2MjY4MDE1OTJjYmJiM2QzMTMxMDM3MjYxYjZiNTFiNWNmYzJjMjk1NGUyM2M1MmVkMWQzMGRiNDYyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTA5OTc5NjlhYWE0NzUwNjI4NWMxODJkZmM1ODk4MDlkZWJlYzc1MWVhNTI3NjMzNTY2YWJmZmZiN2ViZTQzMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDliYWJjNWI0OTM2MDM5NzVkODhkYWZkZWM0ZWI5MTVmNTUxNGQ4ZjBhMjZiZjRkZjBiNjhiMDUwZTJiMzU2MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hdXRoLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyODg5MjExNmMyMjYyMDYyYjllOWMzMjQwMGQ3YzhhYWViNzZkNjI3ZTg3OTQ5Zjg1NTRhZjhlZjBmN2ZlY2RjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2VtYXBob3JlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY2NGU3ODQ0NjNhMGVmMDFkMWI5YmMxOTFiN2NlMjExM2MxM2Y5MmU4MmJhMDE0M2UyYWIyYzA1NDFiYWYyNWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTQxZTIzNjEwMzczY2VkZWFlZmFhM2MyZjA0NzQ5YWE1NWNhNzhhM2M1ZWJkOTU4OGFmYjI4OTA4NWI1NWRmZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ2Nzc2ZWUyMmZmYzQwYzBmOTA1YmUwZDZlMTI5MzhjNGE5Zjc2N2YwMzM3YzRlNjZjMTE1YmU5MTM0OWU4NmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2E0NWUyNWE1ZDFjZWQwOWVmMWI1OGU0YThkOGE5ZTIyMGJlNjRmNDVhZWJjMzEyOGI1NTRkYTRjNDMwODhmMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1ODI4YzIwODMxMTI3ZjU1ZTQ3ZGZkNzhiNWNjNzU5MDI2MDRkMDRlOTMyYjNkY2E1YWE5Mzk4NTE5YzMyY2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjMzYWM1OTIwZGEyNDRiODYzMzg3NDkyNGU4ZTM2ODA1Zjg4YzQ4MGViNTE4YjliNjBhMzI0YzIwMzE4ZDdlZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FzeW5jLWl0ZXJhdG9yLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQyMWNmYzIyZjRhMTE2YmJmYzdhZTgwYmRkYWViZGJiODlhOWJjZjM5YWNmMjk1Yjk4NDc4NjM5ODNmYjQ2MzMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA1YTZlZGQ2ZDMxYWM3N2Q0ZmM3ZGE5NTczMTI3NTUzNGQxOWIyYWZiMjFkMTE4NTlhMjc1ZjQ2NzBiZjc0NzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQxYjVkNTliNGY3YWRmZTdmOGMxNzFkNmFhODdkZWUxMGEwYzllYjU2MTMyNjQ3ZWUzMTNiZGY1MTk2NmU5ODMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWNsdXN0ZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTQzNGVhNmE2M2ZiMmM1NjA0ZTg4NTc0OTBmYjU0ZWU5NzE1YWIyMzgxMDA2YTE4YWI1MGZkNDE0MDFkZjE1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQzMzhhMzkwMDY0NTkwMDRmOTQ3OWJhODBiZjBiNjNhMjA3MTQ3MWQzNDAwMjI2MmY0YzgzNzc0M2RhOTQ2ZjYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWNjb3VudGluZy1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkNDYyMDFkOWEyZDVhNDdkMjc5ZTA4YTllYmM0MTQ4MTQ5MmU2YmRlMTcyNmY1ODdhMzgyNjZlYWQ2NmU1ODc1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvamFlZ2VyLWNsaWVudC10eXBlcy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZDcxYjJjMmI4Mjg0ZjIwZTg4YzcyMjcwOTc5YjY4ZTVmODk5OGRmODM2ZTg3YzczYzNkYzgyN2FlNmU3MDgwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzYyYjEwNjVjZDk1MmM5YjczZmI3NmUzNGM1MTkzYzEwMTY2ZjM5OWEzNzlhMjUwMjkzZmY4YzY5MTAyZjI1NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmRlYTY3YWNlY2EyNzRlYjRhNDVmMTQ4NjJmYTMzMTcxNDJhN2YzNjFlY2U5YTA1MmY0ZDg4ZjU3Njg2MzFjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0YmMyNWNiZDMwYjQzMmFjOTYwMmNhMDkzYTVhMzc2ZTRiMDUyNzYxN2NmYTU1M2E4YzVlNTI4ZmQzZWJhNmQ3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FuYWx5dGljcy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJhNmQwMmY2MmEwZGI3MDU5MDMwZGFjNzc0ZTEwZjU3NzM1ZDgzZGM3MDIxZTk3N2U1ODU0ZDAwYWZjYjIzNzMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk1N2I5ODkyN2RhZDBhOTdkZjQyM2NiOGUwYTFmNjBjMDlkY2ZmOTI4MWQxN2JmMmI0ZWJjMjMyMmViZmI5ZjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjM3ODNmYzhiYjEwZjQ2MDg5ZWFjODRhNTE3ZGQzNjVhZTljMTZmOGI4Nzg2YmJmNDJhYjZmZmJlYWY0ZDk2ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjI4MjQ5MmZlMTFiNzVmMzU2OWY5ZGQ5MzI3MWYzNDA2OTM1OTFlNDNmMGU4NzA2OWZhYzM4NWZiY2IwZWUzMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dhcmJhZ2UtY29sbGVjdGVkLWNhY2hlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNjODI4MDZkY2RlMWZhOWM4OTg3NjYyODY3NWJmMDc1MmIyZDFlYTVkMmQzZGFhODJjMWNkOWU2OGYwMTVkNDQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxNGFhMjU2NTY0ZDUzNzlmMzMzNzhhODZkMDk5OTYwNTM4MDYwNmRiNWU3Mjk5MDg5Nzk1NDJkNWY1MThiMTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODFlOTkzMDBiZWFlZTZmMzdmMDYwYzk2OTU4NTdmMzgxMzQ4MjMzYWZiZGE1NzYzOTZlMTM4YmQ2ODE1ZDc5MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmE0NGEyNjVjZTYxZDZhOWQ4ODc3MzI3Y2YwMzE0MDExOTZlM2YyYTU3OTlmNTU1NjU3NjYwNmM4MGZkMmQ4YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVjYThhMDhjYzJmMmJhYTIwZGUxOTc1YzdmZTY2YTE3YmNlNzFjNTI5NjgzM2ZmZDM3MjgzNWViMjhlY2YyOGUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYXV0aC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxZjhiNDc0OTgyNjM2YzU4MTk4MWU1NjRhY2Q4NjI4YjZlZjM0ZmE4ZDEzYzE3ZjExMTg3Y2ViMzgyMjVhYzI1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL29zcy1hbGxvd2xpc3QuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiZDJjNzUxYWU3YTE4MWVhZjNmZGUzOWQ4M2I1ZDZlZjFhOTE1OWIyMDA0ZDA1MzM5ZDM3ZTU5MDdiMzYxNjFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYW5hbHl0aWNzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzQ0MjQ3OWZhNTMxNmVmZjYwOTY5NTY5Nzc2YzdmMTc3ZWFiYTcwMDA3MDhlMWE4ZWJjZWMwYjRjMWY5ZmQ1MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZTYyNTQxNjY1ODUxMDAyZjQ4NTMyYTVjYjg4MTk5Y2JkOTY5Y2VlMTU4MDUxZTU0NjU4YjAzZmNlY2JiYzg4MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjI3YWYxZjM1NTZkYmFkNzM1OGVkMjVjZGNhZTY1ZjEyYjUzOThjNjNiNWFmOWIzMzliNDRhZjc4ZDNhZWYyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbWFpbC1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjcyNjJjNzQyNjIxOGM5NjcwOWEyY2M2NjhmMTI3ZTNjODQ4MTAxNGU1MDU5ZDA1YWUyOTA3YzVlNjFiYTY2NDgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nYXJiYWdlLWNvbGxlY3RlZC1jYWNoZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1MGRkZjFiM2M1MmMzZjdlY2NmZGIyNmRlZGM4MTkwZDkwMTJhZDg4MmJjOTMzYjhjZTVjZjZjMzYyOWEwNDFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24uZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzU4YWVlYTY1ZmVkZTQxMGZiOWI3MDU2NThmM2Q5NDIwMDk4YTI0YTE1NTk3NzllMjgwYTVjYjI0ZDYzNDU0NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wbGFucy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTA3ZTY5MDY5NGRkMmQzODFmYWQyNzJjYzg1NzQ3ZjVjNjg0ZDc5MGVmYTVkNGI0YmYwYzFmZjA0ZjcwNjhkNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtY2x1c3Rlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmE1NGQzMGZmZWY5YThhZTFmOGUyODExNDVjNTMxYWJjY2NkMTAyZWRkNDI0ZTE2M2E2N2IwMjUxMjBiOGEwOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3JlcGVhdC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTYzOTY1MWZlZjA4YTYxYzY3ZGQwYjkwZDQ3YTVkMTQwMTQ5YzM0YTI1NjNlYTVkYjBlNWVjZjU3MDI1YmExNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGUyYzBkZmRlOTcwMmEyYjg1OTczODczZThjYjYwM2RhYzJiZDYwMjg3NTQ4MjYzYjBjMzM2Mjk2NmRkMDBjNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YTRjN2UxODUxODllNDEwZWFmMDY4OWY5NmRhMTNiZTg5NjUwNWNjNjQxZmYyY2M4ODg0MDNlMDkzYzcxNjZjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVkMDRlM2M5ZDExZjE4ZDdhY2YzZmFkMDcxOWZiZWQ0MWNlM2UzZThlOThjMmUxNzVkYmE5MzY2ZDA3NTM1ZWQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kaXNwb3NhYmxlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwZjZkNjIzNjlmYWUzNmZlYjg2NmYxZDA5MTg5YTE5ZDYwZDk5YTM5ZjM4OWVkNzg1ZmY0NGI1Nzc5MTU0YWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNDU5ZmYxZjIxYTBiYjJmZTJhNmEwM2RjYzQyNjUyODQ2Mjk3ZjllZDI2ODJiNTU2YmU0ODE1MTQ1OTk2NmQ1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwNjI3MmM2NmYzY2RiNzJhMGM2Y2EyYWQ4NGMwZThkOWNmNTBkNmU2YjkwNjJlYWRkYWJmNzA1YzM3OTE2NjcyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9oYW5kbGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE3NGE4ODFhOTliNjI3MTlhOWRhMWMxYjNiMjZlZWUyM2U0OWU2MmE3ZTg3YzY3NTU5MGRhMDM5NTZlMDkzYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGM2YWQyNTVjN2NjZDljNDVmZTQxYjM1NzkzN2JmYTM2NDY1MDBiNjBhMTU2YmQyZWJlNmM0MjU2YzAzOGE3MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3NlbWFwaG9yZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOWViOTllY2JhNTFiZjYyODNkZTRmNGE4OTA0MGQxNmQzZjBmMmY5YjJmMjc5M2NkZDE3YWZkYmM3ZTUwOWM5NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTRiNWVmYjg4YjZiYWNhYTAzMTE2NDQ1MDJjODdlZmU1MDQ0OGZlNzM2ZWMyMmM0NDc2ZDYxYzYxNjFkOWNkZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNTQ0YzQ2NmRiOTU5ZTcxOTk0Y2M2NTE2NjZhYzFmMTViZjBlNzE1NmRhMDEzNzM1MWZkOTBlOTk0MmYwMzFkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNWFiOGQwOGEzN2I0NjI3NjgwYjkyNjZhY2IxOWE1NjhlZGUzODI2YWU0M2ZmZTEyNjQ4NGI2OWY3OGU2NzU3ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3N2U5M2QzY2ZlNDAzODI0YmU5MWI1NGExMDIxMGRmM2Q2MTk1YWRjNDJmZTBkMGNlZDY5ZmVhODU2MTkxYWQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVlM2E3Y2ViYjRiMDhmMjg1NDdmODliZmM0ZTZhYzM2NmY4NjViMjkzNjRmYWE1ZTVmYmY0OWU1YmVjZmExZDUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjRiYWQyNDg2OTUzZWRhMWQ1NmI1YTZjZWM5ZGExZTMyYmVhYzU0YTA0ZTFhMGMzNDM0MTYxYzRhNzYwMDU5NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1MzMzNmEyY2RmYWEzZDIxNmRjYWVjZDgzYjg1NmIxZGMxNjRjZGI2NTZjNmZjZWFkMjBiMjI0ZTI3NjQ1MWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRmZDY3MTYxNDAzN2VmMjcxZWVlMzVhMGJjZGNkMzM4ODdmYTdkYjQwNWJjMTY5NmYxMjMyZTQzYjJlMTVmODQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjAwNTRjOWFhOTRkOWIzNjZmNjFmZWZjMGM5OGNlNDE0NTI3NzI4ZmUwNDJjZjM1OGRlNzAxMzc1MzU2ZTI0NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTJiNjhjNWZkNTlmOWUzYmFmYzAxYWM4Njg1ZmIwNjlmYTEyNTkxMTAyNjg0N2E2N2FlMWQwZGQ3Y2ExZDhkMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvaGFuZGxlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTQzNzMwZDE3NzBjYjY0YzMzNjMxNDNmYjg4Njc4MzJlZTg4N2E0MDFiOGZiNTAzMDM0NjJjNDkxNmNiZTkxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRlNjUyMDhmZTdkMGQzMDNkMjJmZjI3NjgzYmM2NDRhMGE0Zjk1MGEzMGRmNzQ5ODdjYzVkMmY2NGMzZDkwZWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGQ5ZTkyNjk0NmYyYWU3OWNiMDA0NDc2MWIwZTc5NDMzNDM4OGFiOTNkMmRiNzA1YTYyZDg5NzU4ZTA1MmE1MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci9jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMmM0MDg5YzkwZTcyNDNhNTQyNzY5OTJlMTAyNDEwNDc5ODhjZDAxMTlhMThhNjU1MWRhZjMxMTU1NTc5OTQ4NiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJiNmZhNWQzYjhiMzFiNjllOWY0OGE5YTIxMWQyNGNkODc4YTEwYjY5ZjIyMTViYjAxYmUyMjg0YzI0NmUyMDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWRtaW4tcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWRhZDg0ODFkNjM0MTZiNWRlYjU1YzE4M2NmMmYzM2FiMGJlOTIyYzk2OWNkNjIxODVlNDU5NDkxMjI0MjY3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTYxMTQ3MzM3YTViZjZlZWQ4NDJlNmE0Y2IwMGRjYzU4YTNjNTM1ZTE1NDU0NDg4NWRhYmQ5YjYyZTAxZjZkNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZlNWNiMzI3NjMzNDdiOTI3MTAzNjgyY2JhZDA0NjhlYjBmYjFlOTM4Njc5YzQ0NjQ1NjA5N2Y1ZGRlMDc2OWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiYzFjN2QzOTdmY2ZiZWI2MTY5NmY2NzJhMTY2Y2I1NGVlMTQ4ZGE1ZDU1NWNjNTM3Nzc1NWRkODYwYmIzYTRmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGF0ZS10aW1lLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY4NzhiZWIwZjdjZWYyZmE4OTI2NjU1ZTVjNTk5MGMwOWE2YjljODBjMDQxNjYxMDI0YmIwYjBiZjIyYzhhMTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLXNlcnZpY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3NGVmMmJkMTlmZjY0N2M0NzQ4MDg5MjA0MjcyMmYxM2FkMmNjYzNjZmE5NmM5YjgyODI1MjgyZjg5NTVjZTNlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDQxZjBjM2E3NmFkYmRkNjFiOGIyOWJlNDI1M2QxZDhkNTMwZDg5ODA5NDc0YmE4N2E2NmI2YjNlZTc5MDU4OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTdjNzJlZmQxNWNlZTg5OWI0ZjQ2Mjg3Mzk0OGNlN2Q4OWFjMjNkZDQzYWRjY2VjMzlkYTBlNzA3OTEyMzUyYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODU4MmMxOTFjNDM2MjQwNGU3ODc1M2ZhMDE1NWFhZjMyOWEzODYyYjAzODgzYTAyOTQ3N2I0ZTZmNjA5ZGQwNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiOWZmYTNmNGM4ZTdiMzNiNWIyZmFlMzRmMTNhODU3ZWVjOTc2MGZjOTg3NzRkYzkzZmI0MWZlMDg3MjUxOGEzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVlcC1wYXJ0aWFsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTY0YTI5MzFjMTc5M2RkZWE1YTg2ZjI1NzZjZmJlNDNiMzJhZTAyMGY2ZGE5NThhZTRmNjkwNWY5ZjUxZjIxMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYmI4YjYwZTZmNWE3Y2JhNWVmNWI1NzUzYTM2ZmRjNjhhYTMyY2ZkMmU5ZWMyNTk5MGMzY2Y2ODVkNDEwODQ5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RoZWlhLXBsdWdpbnMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTgwYjc0NmM0NWIzMGE1NWI4ODZjZDA1NTRlZTczMjRiNWI4YTI4YmI4ZjMwOTA4MDE5NjAxN2ZkMGM0MWU1ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTdmY2UwNGQyYzgwYWRiYjZiYmZhN2ZmMWI5ODM5ODIwNTYyYWM0MjM3YzM5ODJmZjYyNmQ3MWMwNmJkMWUxNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dycGMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDEzNjQ1ZjdlNDgzNGUzZmU2MTM2NWQ1ZDI1Y2JlZTE1MTQ1NDdhYjY4MzM2MmMwMWY1N2E4OWU1ZGI2ZThkMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2xvZ2dpbmcuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiYTlmZGQ2ODEyY2Y0NDUxNDkyYmM0MmQzMjAzY2YxYTIzNGJlZjVhNTY3NjJkZGQzMzA3MWU5ZjYwYzlhMDdhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RoZWlhLXBsdWdpbnMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxMWExNWMzNDU1ZWNhNzMzZTg3N2VmMTc5MWQyOTY0OTI2ZDJhMzE1NDdkNTRjOGY5YzBjMDYyMjZlMjNlNjciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjcwOWIyY2Q0MDdkNzM0MDRlNWJiNzU3ZjM0YTUyMTFlOTM5ODc4YjQ0ZGEyZGY5NDIyZmVhYTg2NWFlYWI1OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2OGRlYmRkYzIyMWQ2M2EyMjkxMzMwMWMzNGQ1ODliNGRhMjU3MGIxNmE0YWUxOWYxMDNjZjg0MDRjNGNkNDZhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1lbmdpbmUuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkN2IyMWQ5Y2YyM2FmNTRkNGQ1MTI2MTJmMTIxMTNlYzI5NjA4MzlmM2QyZmNiZjlkMTU3ZDk5NTNiMGE0ZDhjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGlzcG9zYWJsZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWIyNmJjMGQ4N2UzOGYyZDBlYzYzOGEyNGJlMGYwNjkwYTYxYmEzMTFlOGUyN2NkYmNiMDU4MGVmZjQyOWM0NSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZXAtcGFydGlhbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NmQ5ZDhkMmFmODhjYTE3MjI2NGVkOTBhOTVkZGZiMzZkZTcxZmQ3MTUxYTE0NGJjNjQ2M2UwNmU1ZjZjMTI0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ5OTA1OTE1Y2NhOTVhMTlmNTRmZGZlZGY3N2VkYjIxMjY1ZTYwNGZlOGJiNjU0ZmZmZTg3YjMyMzBlYTc4NzIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC93b3Jrc3BhY2UtcG9ydC1hdXRoZW50aWNhdGlvbi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjI5ODJjZDBiYjBmODE1ZWRjYmNjMzFlZjdkZTRhYWQzMTEzZTA2NjIyY2U5NmY5YTgwNmUzYTU1NzQxM2YyYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MWEzYWEyOThjMjc2NjQ4YzdhYzI0YTg0MTE1YmY1YzhkNzM3NWYxYmZjMzU3MjgyZjFjYjQzOGM1ODk4NDgwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVlcC1wYXJ0aWFsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA1ZTY4MTEzODI3MDUxY2RkOTE5NTdkMjlhZTYzYTgxZWQwZTg0N2JhODkxOWM3YmY4Zjk3ZTliZjY5YTBkNGEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQwODE1YzhlYzE3NTBhODZkYWY5ZTA5NDNlZDNkMzMxYjA5MTI5YTFkMmU3ZmZmZjU5MmM5OTg1MjI4YjY1ZDYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvd2luZG93LWNvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM0MzFkN2EwNjhkZGVhNzUxODUyOTQ3MjQ4MzhhZmJlMWU0OWEzN2RiOWY0MTkwNzgyYWQ3NGZmNDhlODE5NzQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGhlaWEtcGx1Z2lucy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjRjNTM0MDdmYmQ1ZGY4ZjhjMmJjZjk0MjQzODczODNjNTYzOTEyM2FjYzUyYmYxMzhlZDg5NjcxMDkxNWFmZjkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3Y2JhYzk2MTNlZDQwMDIzMWExNmNjYmU5ZDg5MWUyZDZhYmU4Mjc0Yjc3MGI1YjZkMjBhMzQ2MDA2NGM1OTk2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BheW1lbnQtcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YzhhMzkwNzNmNmRlZjlmZjI5ZjIwZTBmOWMxZDY0Y2MzZjExODVhNTE3ZjZiMDM2ZjY0YmUxOGNlNzc1ZDM0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGYyMWRkNmNmYjJmMTRmODk4NDFjMWJhNzVkNTFlODA2ZDVkMDY5YzUyYmU3YWM3OGEyNGViNTQ5ZDIzNjUyNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NmI4M2U1MTc3MTk0YjYyYTQ2NDEzNzNkNzJmMzAyMDgxYzg4OTUzNzFjYjkwMTE1MzcyNWZkOGM3OTFmY2MwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dzcmVhZHkuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmVkODM4OTE3ZTNkYTQwNjlkYTAyNGQyZDRmMWFkMGY0M2EwNjkwNTM4Y2M2ODg4OTEyMjVhYTk2NmEwNjA5OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wYXltZW50LXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg1NGViM2VjNTViYzhkNzllOGM2ZTkzM2FjNDQxNTdiZGJlZDM4YjY2YWQ3M2IzYTRmZGNhNGFiNDY5MmVjYTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkZGRiYjRhZjQ5YjY3OWNlNDViZDY5MjUwM2U1Yjc1NDQ0N2NkNGExOTZmNWQ1NjgwYmNjNDU3ZjU1ZGRhZGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNGZhNjQ5YTllYzRmYzdkYWQxNTljNThiODA3ZGQ3MmUyYTM1YmNlOWRlNjU3ZmU1YmRlZDU0NzcxNzBjYzIzNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg2ZGM3Nzk1MTEwNzE4ZDZlYTdiMTllMWIwMzE3Yzc2MGYzZGRmNjcyYzExOWQ3Nzc4YzlmMjJiOWE4YTBmNjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGQyNjI3YTRmZjJjMDgxYjhkNDdiY2MzNjBmZDljNTdmNDk0YjRlOGQzZjI2YjM3ZTc5MzYzZDY3YTZjNDFlMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMyN2Y4NjJjNTRlNzljZDZlODMzNjcyOGU2YmZhZmQ5YzcwNWU3OTEzYThkOWI0M2M3Yzk1OTM5ZTNiNzc5ZDIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDNhMjFjNmQwYjM4NjZkNTBkNzE1NzU1YWYzMTkyYjViOTM5OThhYmM2NzdhNDE2N2RkYzNjZDRhMTdkMThkMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY4MWY5NGQ5N2Y3M2I0MDA2MTU3YjI4MzBhMmE0NmJkMmNjNTc3Y2Q3OWU2ZTY3MzQ4ZDQwMjNmMjk3N2ZiMzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxMTU1YjdjMTdhZGY1MmRjZDFiOWJiN2U2MDAzYjllY2YyMzhhNzkzYzI4MmExZGJjOTkxMjE0MmY1MDYxMjIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhM2VlNTNhM2JmYTYzY2U5NTJiNzExYzI1ZGIwMDYwZDJjOTI2MTQ1ZjY4OWU5NDEzODA0NzI4MzFmMmIzMTQzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvY2FuY2VsYWJsZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmM2JhY2I2ODJjOTBjZjgwZWVhMjJlZWI4NzQyOTA5OTEwMzM1MGNiM2U2ZWU5YWRjMzlmYzEwNTk4NTM4YTliIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGUyZWEwOTg4YmQwOTZlNjhkYjRhM2RmZjJmMDZjMzllZDU5NmEzMmUxMDNhY2FiNzRjZDYxYTQzYTlmMDMzOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMmFhODY5ZWQzOTgwYjZhMGY3Y2M5NzIwN2NlOTFmMjlmN2NkYzJlMzc3MjZiM2I1NzE3ZDBmNjJjMmUxMDUxOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93c3JlYWR5LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2ZTg4N2ZhMzY5ZjhkNjg1NTVjM2E1ZjJlYmU2ODEyMGNhN2QzNTJkMzNhZTc2ZGFhNmM5Yjg5MTAwZjIwMmYyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3MTc4NWM0MTYwMzhjMmY3MmQxOTcxOTI5OTM5NDkxODJkZjY5ZGZjZGIyYjA2ZDY0MTg4YjcxYTg0NTNlZTA3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEzYmIxZTU1MGJkMGEzZTlmODMxMzA0ZDc0MGNmZWE3Y2NkZDcwZWQ0YTAzZjAwYTBjMDE5YzYzMjIwYzI0YTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDU0MGVjNzhlOTUwY2I3MzdmMmI2M2M4ODJhODZkOTM5ODEyYzY2MTJlZTRmMmUzYWM3N2EyNjVmOTMzMjc2MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNkNjcxOTIwN2JmOWE4OTY0NDk3Y2NmODQ1ZjRiOTk1ZjcxMjE2ZjJlNzc4NGU5NjAyZWJmNWYzNDllNjRiZDAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzU4N2Q0ODRlMDY1N2EwODAzYWVmYWJlNTA3MjdjZWM4MDNmYmUzNDljNTFjOTA1N2UzNDBjMGVlNGFkOGIwMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImI3MTNjMDM0MmU2ZmFiOGUyM2ZhNTIwMDFiNmE0NTdlY2MzNzdmMWUyZjNhMjNiNjA5NDdmNGJjZTUwYWJmMmYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmMjU5MDg0MmRkNzY3ZWY5MDk1NzZiYmFiODExMDVmNTA0NTk0YjQ2ZWNiYTkyZDZiZmZkZGEwZTY2ZjBlMTA3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BheW1lbnQtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjc1Y2JkODAzNmEyYTdiNmM3N2RlYzU5YzE5NzhmYWFhNjk1N2NiOWZlNThkNTViNDkwMWIzN2U2ZGU3YTNiNGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWVlYWVlODhjZDdiMTYyOTc3OTQ4YzU0Y2E3M2I5MzFjZGY4M2YwMDlmMWI3ZTBlM2I2NjNhNjEyMDJjYWM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbWFrZS1saW5rLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE4YmJmOGRjZTljZjUyMjc2OTFhMDZhNGJlN2ViNzU2ZjgxZDE4NDVlMWExOGU1ODA5YzYyMzg5ZTg0OGIzOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWQ5MDFiM2JlMGQwOGRjOTNiMmE5YmM3Y2JhYzlmZmM0YzczMzRhYzNmM2JmZDQ2MjQ3NDM2YTcyOGJkNjdjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU5ZWNiMjAyOWRmMWM1YjJiNzdlMDVlMDQ0NWJjMDUxZDVmNmI0NmYyMDI1NTFjNjJiNzYyZjdhNjBjODc5MTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmNlMjBlNzNlZDlmNzVjOTI3NmRkYzhhMDQ0YzRiMTEwN2Q0ODAzNjU5MmQzZmY0MmMyMWI4ZjMzNzkzNWJjMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvbm9kZS9jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiY2Q0MTg5OWFjMjllN2ZiN2U3Y2E3MTE5YjNkMmI3ZTBkMTUzNTEwNjZjMTVhYzM5ZDBiYzY5NmY5ZjhlZDZkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FuYWx5dGljcy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTBmZjcwNzBhMGNhYmIwYWVlMzhkNTYwN2NiZTAwZGRjNGY2OTdjNTkwZjU2Yzk3M2RjOTRmOTg5YTYxNTE4MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjc1ZjZjNWI4NGY2MGExYjBkY2QwYjUyNzE0M2FmNWFlNDYxMzdhZDAwNjE1M2RkMDEwYjMzZjViODFhZTg5MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNGM3MmUzNzIzZGJkOWRmNTJjZmZlNjhjY2I4ZTk3ZDM2OWVmN2RiMWEyM2I1ZTVlMTZjZDljNWI3MDQzMzhmOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MTAwMmFlMzRkZjIxMzFmNjAzZGVjMmZjMTMzOTY4OTc5NWExMGI3YWFhNGVmNjc0ZWIyOGRlZTdlMWIzZDFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9jbGllbnQtY2FsbC1tZXRyaWNzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDY0OGU2MjUyMzgwMzRkYmJhMjQyZTliYjliYjliMDYyMzJkNzdjMzhhNTE3ZmJmZWI4NzczYzJkMGJmMjc3MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbnYuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlkMDA4MzlhZGIxZjJjZmMxZDExYWY0NWFmZjM0ZTg0MTIzYmY2MGZkZjMxMmUzZjUxNjdlZTE1N2Y1OGNhNTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd3NyZWFkeS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwZGVmNDAwM2VjMDNkOWM0M2QzZmFkNGFlZmJhZjkxODIzZDVlYzAwZTZmM2I5NDJjNjJlOGE3NmE0MTk0YTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzQwNWZmOTk4YWJmOThkNDAxYjFlNTRlZThjNTdiZTA1MjdkNjNlNWJlMjIyZDA2ZmE1ODQ5NjQwM2E0NTU5YSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY3Y2MwYTY4MjVmMzk2NGM3MDgwOWU5YzY5MmIyMjU1ZmIzM2I2ZGI1MGQ1NTAxNTg2YmI3ZDkyMTAzODJjNzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODEzNjliNjAxOWFiNDM5MmRiOWVhYTQyNmExZmNhNDU4MjNkMmUzNzY4Y2YxNzhhZDkxMTA5ZjE0OWExZjNjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlZGY1YmM1MzkwYmQzOWY0ZmEyNGMxZGM4ZTU2YzY1YTU1YjFjNTNhZDg3Y2FiYzA1NmVmMmE0ZDBjZmRjMjY4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5OGNkZTU3NWRkN2YxODExNDAzNDliMjE1MTk3MTlkY2UzZmRiMTFiNjFjMjQ4OTY3MTExODMwZDQ5YWIxNjNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dvcmtzcGFjZS1jbHVzdGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmQxZTJhMGZmODllZmMwZTEwYmFlOWE5YjA3Y2YwNGU5ZmE0N2QyMDQxOTllYWU3MzQ1M2JjYjMyZTViMmZmZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3OTdmOGU5NDQ2YTgyZTMzNWE0M2ZmMjFmNDQxMGU1NmY1NTQ4NjkwM2IxYThlYzYxNGIwNWExYmQ3YTUzODE0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9oYW5kbGVyLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg5YTA2NmU3OWQ0ZWY4ZmFkNDdlYjY5ZWY5MTFlZjkwMDM5YzcyZWQxNjg4OGM4ZDQxYzA0ZmEyNmExZGI2OTUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL3Byb3h5LWZhY3RvcnkuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWVmODZmZDUzMDA4ZjQ0OGVhZDNmOTA0MGMxOGU3MDk1ZjdiYmIyOTU4MjE1Yzc3NmYyYzlmM2I0ZjNkMmFkYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWIxOWJhNWY2ZDk5M2ZjY2Q0N2VjNmE2Nzg4MDU1MzM2YTQyZTY5MjJmYTRjYmU4OWMyYjQ3NjVmMzIyMWIwYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hZG1pbi1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTYyNGYwZTE1YjY0YzZjMWY2ODRiMjk5ZTM1MGU1YTVhN2YzZmYwNTVhNWE5NzQ4MGE1N2E3YzBkN2QwZjkwMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0YmJiY2RiZDE5NTRiMTQ0NDdkMTI2NDczYmM0MWJiMDNjMTJlZmU5ZTI2MTAxYzI1NGE4NjE3YTU4MWM5Y2VlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxOThmZTBlZmIzMmYwNzc0NWE2ZmMyZmQ1MzRlMTFjYjU4MzBlNzVlNmY3YWI2M2I4YTE4YzlhZWVlZTlkNzFmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YzY5ZDM5YmUxMTMwOTQyOWExNmIzMWMxNjBkM2M0MDMwMmY3MTNjNjAzNGFlMTI2YWFjMmJlNDVkMzhkY2JmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYXN5bmMtaXRlcmF0b3IuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImYzY2E0YmQwZTkwYWQwNzQ3ODBjYzY2OWFmYWFmMTA5NDZlNmVkNTU3ZTU0NzYzYzlhZDk3ZWE0OWRlN2VjYzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9qYWVnZXItY2xpZW50LXR5cGVzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5ZDg3NWEzYzZmNDk3ZWQxZjllM2I5ODAwMTk0NWY4YmQxOTdiMTk5OWZiNmFkODdlMTc5ZDQ3N2QyMmZkNzgxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2F1dGguanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzJkZDY3MDU2NGMwNDJlZTAzZmE4MDJiMGE3ZTNkYjM2YTM4MDFiMzdkYWYzYzA4NTEyODBiMzViNzE4OTJjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wZXJtaXNzaW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmEyOGI5Y2NiYmE3NDQwOTc3MTgwNDBkMjE1NjFiN2ZiNTE3NDRiYzQ1ZDM3YTM0N2ZlZmFjMDRmMWNmMjk1ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWE4NDhhOGM0Y2IyOWQzN2FhYTljOTg2ZjUxNGRhZjA2YmRlZjY0NDM3NTA4YmE2OGE5NGM0MTgxMTg3NjRlNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtZnJvbnRlbmQtc2VydmljZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwNzE2ZDgyNjgxZjk4N2ViM2U1NGI3ZGFkMjE5MDZjYmI4OGZkZjE0ZWNiMjc4NWU0N2U3NmI1OTIxMDk3YTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hc3luYy1pdGVyYXRvci5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdhMDU2NGUwNTMzNjViZjFkMmNlYjFjNjdiM2RjYTU0NTYzNjExOWIzY2U1NWNmMjc4Yjc1ZDllMGZlMWRiMDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9zZW1hcGhvcmUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlNTBjZWU3MGMzMWNhZTQzNjcyMmIxNDk3YTk1MWUwM2IyZDFmNGYzZjI3OWRmZWNmMGM4ZmMwZTkwZWI4Mzg0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2xpY2Vuc2UtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMwMjRiNGM1MTUyNTFlMmExOTc3ZDQ3ZTE5M2Q5ZDI0ZmFlNTAxZmUwNmJjZTFmOTljNTU3YzhkMWE0YzU1NzciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmM0NDBlNDkzNmQxY2MzN2Y4NWNhNzgzYTI0NmQ3N2I2ODljNTQwNTgyZWFiOTFkN2U0MTZkMWI0N2U5OGYxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiOTA1OWFkYzM5ZmNiNTQyMTEzZDJjY2IyODc1MmQ4NjJiNWI2M2NlNWJhZTFkNmU4NTkzODUwNDNiOWE0ZTk3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg3MDJmNDg5MjBlOTFhMjFlY2VhZjkzM2U3MzE1M2RhNTExMGZjMjdhNjkzZWVhNTAyYWQ2Yjg5MjFmMGRhOWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWRtaW4tcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDlhZmRlMDkwNGRlZTMxMTY0YzA2ZDA0YjY3ZWM3Y2Y0OTg2Y2RkMDNkYmY2ZDRkYjZhMWE2YmExNjhkZjc3MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTg0MGUyNTViZTA3MTI5YTQwMGI3OWNjZGYxZmRjODMzNDg1N2YwM2M0M2RmYmNjZDFmY2ExNTJiYzhmNGZhNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtaW5zdGFuY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU2NjU0N2VkNmE5OTYzNTBkOTZkZjVkYmYwNzEzMjdlYjNjOTA1MjJiODc1OTY4NzljMTU3ZjcwOWQxNzYxMjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmI3MGRiODU4ZGU1NzQ2MzBmYjU1ODAxZTM0MDMyMTk1MTNhMzA5NGEzZWYwY2Q5MzA4NDkzODMxY2UzNGQ2ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImUyZTJjYzE4NWQ4NGQyZThiMjk4M2M0YjZhZTk4MTRiM2JhMjE0OGUwNDJlMDk1ZDZlMzZmMjQyZGFlMWY3N2YiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kZWVwLXBhcnRpYWwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQxZTAxMmE3MWJmMmZkZjBiOGVkNWJjMDRhNDRkYTkyOTZlODhhMzdhMDM5YWI0NzljZDhlYjZkMzMyOThmNjciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWNjb3VudGluZy1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyOGI4OWU5ZGZiYTBlMzdlNGU4NTIzNTZhM2I4YjM3MjlhYWVmMmU5YjNjNTkwYTgyMDMxYWUxNzdhN2ZmZWJkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM5MjUwYjE0YTE1MmE3ZjQyN2ZlYTM4NWM3Y2VjZTVlMzZkYjhhNmUzMTBiMTIzOWM2ZWIxODgxZGU5NTUxOTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhZTg2Njc5ODM5MGFjZTMyN2Y1NTliMWIxZGNhNWU5YTJmNWZjYWI0ZDYwZDk1Zjg2MWQ5ZTZkZGEzOTQ2YTA4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1ODExYWE3NTNmMWU5NWU3Yjg1OTRiNDE2ODJjM2NkMTRiNmM0NGI5NWNhYmNhM2EyOWRmYTM5MmI5ZGViYmY5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2hlYWRsZXNzLXdvcmtzcGFjZS1sb2cuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQwZTQwNmFjYWI1NjU1YTY4ZDE1NWIzYTdkNDBhZGY5OWRkODU1ZmQ2MjkxZTU2ZDI2MzYzOGU2NGQxMmNiNjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImIzNDk5YTQ3MThiNzFlNWYxODc1OGM2NDg4YTJkM2E1ZmZkZGIxNzg3ZDM3YWJkOWQxYjdiNzQ2Y2UwYTA3Y2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWNsdXN0ZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODc0MGVmNjFhMTYyMmUzOWIxMWVlY2Q3NTJhMjI0NzViOTU0ZTVlZjc1ZTIxYWQ3ZTFhMjdmNWM2NTkyYTNjZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtcy1wcm9qZWN0cy1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0MGYyOWM4OTZhNmI4ZTZiMTcyNzk2ZWRiNTMyN2Y2OWUwY2IzZDMwZDQ2NjUxYzg5N2M2YzBlOWNhMWI2NTAxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NTdhYWEzY2EyYjc0ODRjMWI1ZWIyZGQxZTFmZWRlMjBlNTI0YzcwNmNlMTE2ZWJmYjQ0YzRhNzQ4MzI1OGI1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU3ODUzZDdiN2U1MWQ2YTM0NjE0YzJlYWE3NDlkZWMxYTQwMmI2ZGI4NThjMDNhOTdkYTY4MmFhMjg2MTBhYmIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGJlOTk3MDU3NWJmMzAwOTZmZTI1NWFlNWUyOWUyY2VmNjkyMzgyODU2MTZmMGNlNDFmZmJiNGM2N2MzMDU2YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzYjNkOTE4ZTQyNTI0NzNmZWUzYTUzMmQxMTJjMmQ4YjM5ZmYwYjQxM2RkZjhjMDUxYjZhNTIzNTA0MmRhNmNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTg4ZThlZWJmZDM4OTA5OTA4ZTMwOGM2MDg2YmUzNGMxZGM5YWM1MzhiYTM4Zjg1NWU5MDMwMWI3NDc4NDkxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tc2VydmljZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGNmMDA3MjgwYjYzMWU3YTQyNThhYmExNzA2MGQyY2I3YmE4ZmNlNzAzMmEwOGJmMDE3Y2U1ZWMzZGU0NjIzYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90aGVpYS1wbHVnaW5zLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxMDFhZGFiYjIyNTRmNTE2ODJjYjNkYTAzZjliNGE2NGM1YTNlNjgyMGIzMzA3ZDg4NzNkYzE2ZDEwZDE0NmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyOWExZjUwZmMxZmNmMzY2YzAzMTEyMWI2NWVmNjIyOTVkY2M5ZGIyOWM5OTZmY2QyMGY3ZTg2MzE0ZjNkZjU1IgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlIjogewogICAgImJ1aWxkZXIiOiB7CiAgICAgICJpZCI6ICJnaXRodWIuY29tL2dpdHBvZC1pby9sZWV3YXk6MC4yLjE2LWI3ZDJiNTRAc2hhMjU2Ojk1MTJhZjFhYTRhY2MwOTYwZGQ1ZTk3YzUwYjdjZjFhNjY3MTNhODFhMDlmODI0NWFkOTUxMThlZTEwNzBmYmMiCiAgICB9LAogICAgInJlY2lwZSI6IHsKICAgICAgInR5cGUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpdHBvZC1pby9sZWV3YXkvYnVpbGRAeWFybjo3IiwKICAgICAgImRlZmluZWRJbk1hdGVyaWFsIjogODAsCiAgICAgICJlbnRyeVBvaW50IjogImNvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sOmxpYiIsCiAgICAgICJhcmd1bWVudHMiOiBbCiAgICAgICAgImxlZXdheSIsCiAgICAgICAgImJ1aWxkIiwKICAgICAgICAiLS1kb2NrZXItYnVpbGQtb3B0aW9ucyIsCiAgICAgICAgIm5ldHdvcms9aG9zdCIsCiAgICAgICAgIi0td2VyZnQ9dHJ1ZSIsCiAgICAgICAgIi1jIiwKICAgICAgICAicmVtb3RlIiwKICAgICAgICAiLS1kb250LXJldGFnIiwKICAgICAgICAiLS1jb3ZlcmFnZS1vdXRwdXQtcGF0aD0vdG1wL3RtcC5wUXpoUHFaaE9MIiwKICAgICAgICAiLUR2ZXJzaW9uPW1peHBhbmVsLW1pZ3JhdGlvbi1wcmVwLjAiLAogICAgICAgICItRHJlbW92ZVNvdXJjZXM9ZmFsc2UiLAogICAgICAgICItRGltYWdlUmVwb0Jhc2U9ZXUuZ2NyLmlvL2dpdHBvZC1jb3JlLWRldi9idWlsZCIsCiAgICAgICAgIi1EbG9jYWxBcHBWZXJzaW9uPXVua25vd24iLAogICAgICAgICItRFNFR01FTlRfSU9fVE9LRU49WDNiTmF0WVB1ZElKY0N6NmtGbFRuNTRwcnVtUUFxR2giLAogICAgICAgICItRG5wbVB1Ymxpc2hUcmlnZ2VyPWZhbHNlIiwKICAgICAgICAiLURqYk1hcmtldHBsYWNlUHVibGlzaFRyaWdnZXI9ZmFsc2UiCiAgICAgIF0sCiAgICAgICJlbnZpcm9ubWVudCI6IHsKICAgICAgICAibWFuaWZlc3QiOiB7CiAgICAgICAgICAiYXJjaCI6ICJhbWQ2NCIsCiAgICAgICAgICAiZ28iOiAiZ28gdmVyc2lvbiBnbzEuMTcuNSBsaW51eC9hbWQ2NCIsCiAgICAgICAgICAibm9kZSI6ICJ2MTYuMTMuMSIsCiAgICAgICAgICAib3MiOiAibGludXgiLAogICAgICAgICAgInlhcm4iOiAiMS4yMi4xNyIKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJidWlsZFN0YXJ0ZWRPbiI6ICIyMDIyLTAyLTIxVDE1OjU5OjQzLjU4MjMzMjA0OFoiLAogICAgICAiYnVpbGRGaW5pc2hlZE9uIjogIjIwMjItMDItMjFUMTY6MDA6MDQuNDkzMDUyMTIzWiIsCiAgICAgICJjb21wbGV0ZW5lc3MiOiB7CiAgICAgICAgImFyZ3VtZW50cyI6IHRydWUsCiAgICAgICAgImVudmlyb25tZW50IjogZmFsc2UsCiAgICAgICAgIm1hdGVyaWFscyI6IHRydWUKICAgICAgfSwKICAgICAgInJlcHJvZHVjaWJsZSI6IGZhbHNlCiAgICB9LAogICAgIm1hdGVyaWFscyI6IFsKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9hdXRoLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4ODdlN2E3MWZjODE5ODQ1OTQ5MmU4NmVhNjdjMTM0MzY3YWZiYmZlZWQ4ZjIyNDI2MmVmN2VmMjYwNzQwNDg5IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2dpdHBvZC1ob3N0LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjBmZTE0N2ZlNTg2OTVkMDYxOGM4YTk3M2QzMzMyNTU5OTA4NWY0ODQ4NTI2M2U3NmNjNDJjMzliZWI0YzBiZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9jYW5jZWxhYmxlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhN2ViYzliNmFiNzk5Y2MwNjY5YTFlYzk1YjY4YjM5ODFkNTI2NTYwY2FjZDRlZTE1ZDZhZDE4MDM0MTIzODkzIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjdjODdjODAzYjg0MmQ5ODFjZTJjMzVkOWY0OWZmZTQ5YWVmZjZhZjIwMzI4OTAzZTI0ZTljZDhmYTBmN2M1ZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9tYWtlLWxpbmsudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImY1ZDQ2ODQzYzlmZTRkYmU4NDdlZmRkMWUyNzAwYTQ2NmE1MjQxMjkyOTJlMTAwOWU5NWZkMTNmNmI0OTY3ODMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvc2tpcC1pZi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZDMyYzBhOTYyNDRhMjIzNWY0YmNmYTNiNDIyZmI4OTJhZGMxNTE1Y2YzZDM1MzY4MjFmMDljYWU3MmM0ZjE4OCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9ldmVudC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNzk1NzAwOTEzMTRlMDY1MDY1NGRiMDI0NWJlOTcwOWY4MGZiN2E0YmE1YWY3YzdhZTdkNWZiOGEwNjhiMDlhOCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcGVybWlzc2lvbi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMWE0MDZkZGE5MWY2MjkyNzJjYWY2NDllMmUyMTY3ZDQxMjEzZWFlMDljNzRkZTE3NzRlMmJjYWI0ZTBjY2NmNyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDQ1NzU0ZjM2NjBiYjJjYzQ2YmM5MWE4ZWI3Nzc0NTIwOTNlYzhhM2Y0MDZjZGYwODY4MDBjYjY0Yjk1MDdjZSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNzZkNWM5MTM1NWRiMTU1YmFlMzIxNzUzZGYyNDk5NjRiMzZkYTcxNWQxZjQ2MjFkZmY5ZWI0NzY1ZDI2NzU5ZiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjRmYzJlNmM0ZTg2NjA5NWIwZDcyMjEyMTJkYWVjMmU4YWFkNThjOGIzNjU0ZDljYWFkZTBmOWY3NmQ1ZDNhNjgiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ3JwYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMWFhNTA0YzRmMWY3N2FlYTkwYjY4NTEyNzkwM2JmZDMxYmI1YjhiYjhkYjhlNGIwMzk0MzA1MzRiZGIyNmE5YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9hbmFseXRpY3MudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjg4OWJmNDg3ODNjMmFjOTlhZjc1NTAzYjMxYTZlNzhjMDU3ODY0MDExMjM4OTAyZWQwYjk0MTJhYzNiZDJkZTEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2FuYWx5dGljcy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGQwNjM3MjQ3MThlN2ZkMWI5NzE3ZTM2MWVjYTA1MGM1ZTZhNWU2NDJlZDUyZmZiZmNhZmM5YTM4OGY0OWI2YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaWRlLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwNWUzYWNjMjBiMWMzMzgzYzEzMDIzYWE3YmE2ZmYxMmIwNjBiOWU2ZDcyZTE3NTI3NTkxMzA1YzU5MzNiNDk0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9zbmFwc2hvdC11cmwuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMTA1YTFhZTk5MmRhYjBmOTM1MDUyNGYzNjYwNDNlYzllYzI1OGQ0MDY5ZWFlNzk5ODJlMWVlNDcxOGI2YzkyNSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW1haWwtcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImZmN2Y5NWZmNDMzN2Q0NzEwNGJmY2VlZDVlOGQ1MjY5ZGVhZjlmN2NiNDY4OWFlOWRkMGZjMTVlM2JiNmY1OWIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1zZXJ2aWNlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIxZDdlNGNjNDFkZTk4ZDYyNTZmMzJkZWNhYjAxOGM5Yjg5MzExNTczYzExNWNkNzkwZTRhNTIyMTUxYmVmYTFhIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImUwNTA2YmZhNzNiMzllYjU3YTM4MDYzNmY4YTZjYjIwMzYzNDgxNjM4MjI0Y2JjMjgwYmJhZDBkYjAwOTZlMTQiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3RoZWlhLXBsdWdpbnMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImM5YzZlYzNhMTJhOWI5NzM4YTE0ZjI5NDc1MWM2MTg3ZGYxMjk0YTc1OWUyMzU4M2UxNmY4OWVlN2MyYjM1NmMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ2FyYmFnZS1jb2xsZWN0ZWQtY2FjaGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQzMzUxZjQ1ODViZjlkOGEyZWI2ZWQ2ZTRkOWQ4MjhlZGNlZTZhMTUyODcyMjcyODU0ZmFhNTkwYzMxNTVkMzQiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvbW9jaGEub3B0cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZGQ1ZDNlMjEzN2U5ZGI4NTkzMmI5ZGI2YWMyN2QyNDNmNzU2NDkwNGI4MjA5ODVlMWE5NTI3YzU4ZmFkZTE2YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZ2l0cG9kLXNlcnZpY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImJkMWIwYjQ3MzU5MTAxOWY2NTUzYzRjMTk2ZjdkMzc4YzcwYzYxOGM0ODFhMDk4MzRiYTAyMDNhNjJhMmNiYWYiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3RlYW1zLXByb2plY3RzLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIxYWIzZDFhMmEyZGM5ODc3ZjQwYjcwMWIyMTNmMjhjZWZiOTliNDY1ODEzMTk1NjcxYjkxODRlMGUxYTU5YTljIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2xvZ2dpbmcudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjQ0Mjc4MjkzYTFjMTZlMGU3NzhjZDNlNzY1MTcyZGUyNWU1OGQxNmE0MzIzYjE5NGNkZDE5YWZkOGM1ZTBiNjYiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvdGVzdC9maXh0dXJlcy9lbmNyeXB0aW9uL3Rlc3RrZXkiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjhkZjBhMGFiZWJmZjVhOWY4ODdkNzczMzk1ZGM4OWQxZjNiY2U4ZTQyMWZiOGNjMTZkNzhlYTEwN2NkMWE1NDUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2dpdHBvZC1maWxlLXBhcnNlci50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDVkMzNmOTliZjgyMjdhYWM1YzdiODgwODFjNTRlMjU0Njg4Yzg5NTQ3OTFiNWZlYzNlOGY1NjRlMjI1MGNlMSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcGxhbnMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImE3OTZmNDVmMWYxN2M4YTM0NmFjZjIwMzk0MDU4Y2RlZmQ0YWE3MGQzNjdjNThiMzAyMGI3ZjdlZTVjNTYzN2IiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3dvcmtzcGFjZS1jbHVzdGVyLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4ODdhOTI2MDZlZjk2Nzc4YTQxMGE4MjdjM2FhODA0MzQ1NWM1NWNlNmZlMmE0ZGE3MzM0NTI3OTRmZWQzNjg0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2phZWdlci1jbGllbnQtdHlwZXMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImRiNzhjYzFhYThmMTNjZjlkNTNmMjUxNWE4ZTMwNzE2ZjcyNjdhZjk3ZTU5N2E0NzFjNTQ0YzQ1NDdiZDgwZWMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvZGF0YS9idWlsdGluLXRoZWlhLXBsdWdpbnMuanNvbiIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYzQ4OWY3NGU3MWE3YzczNWFjNzI2ZDAwZjM2ZTQwNTM5M2FhZGM5YzBjODJhOTUxZTllOWNkMGQwYzQ2ZGRmNCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdHlwaW5ncy9nbG9iYWxzLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI2Mjc4N2NiMjJlNTU5ZTBiMGRhZWQ3OTBhNjljMzVmYmNkNmIzN2Y0YjkyYTM3ZmI5ZWQzMzZhYmY4NjBkMWQyIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL3lhcm4ubG9jayIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNjY4YjlmOGRiNGNkNjJjZjc2OGU3ZjkwMDgyYmE4ZmVlNGU2NTA5MWE1NDMwYWQ4NGYwNWE3ZjgyMmEyZDM3YyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvYWRtaW4tcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImUzYWI2ODc5YzM0MDAwYmUzOGU3NTJhN2UwOWZiNjI5YjNjOGJkOGJlODliYjQ3YWQyMjgwNWJiNjExNzVhZDkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2NvbnRleHQtdXJsLnNwZWMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImY1MjM3ODQwZDU0NmYzNTIwZmM2NjBiYjZjZjEwNTUwNzY3OTE3OTY4MDMwOTBiYzhiMjljY2EzZjMxMWQwODciCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2luc3RhbGxhdGlvbi1hZG1pbi1wcm90b2NvbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMDFlZGRlMmIxNjEyOGExZGVjOWRmYTI4NzdkYjkwZmIzMDM1YTQ2ZDRhMmMwNmZhZWM5YjBkZDA4NDM5YjAxOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGI4NjAyNTRiODBlZjkxNzdmOGUyNjZkMDNjMDM1NzZkZTkwZDk3OTI5NjE3ODE1MDhiMTgwZTRmNmIzNGEyZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9xdWV1ZS5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI3NjhkZjg2ZDRmZGFkYmU2NDNkMzk3YWY1MWM0ZDJjYjI3NTU0YTFmM2Y2YzgxNzBlZDI2ZjMzMmJlNTNjNDg1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3JlcGVhdC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYTE1MmVmOWNmZTU5M2VlOGNiM2RlZDMzNTM1ZGIwZDViMzRjNmU5MWNiNDcxYTdkNmEyMTEwM2IzNjE1MTU3OCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjBhZGRhZjVmZjUyMDQ0ZDc2YTc5NzVjNDUxYTM0MWFjOTYxY2U5MzEzYjE2NGQ1NDIxNTY3OGRmN2IxN2FjOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvbWVzc2FnaW5nL2NsaWVudC1jYWxsLW1ldHJpY3MudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjA1NDEyNGE3MzlkNjE1ODdmYjI5ZWFjMjdhNTlkMDViZWJmNmEwY2ZiNjNmZjhhMDZjNGQ0N2JiY2EyZTJlODAiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2luZGV4LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhYjEwYzI0NzgxMTJiMTg4MjBmNGUzOThjMjRmNTZlMzcwMzI0ZjIzZDhmZjY4N2VmZDE0ZTExMzliYTIyNzIwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9jb250ZXh0LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZDM3MWMxYzcxZWVhMTY0OTgxOTMzZmVlZWFkYzY0YTA1NjE0MWE3ODk3MjE1NzBiZDU2MjI5ZmJlMDQ1Y2RhYiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW52LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI0NjUyMzdkZGRlNTFjN2VmOGIwZTdmZjJjM2M2Mzc1ODY4NWM2MDdhMzk5YzIyZWM3M2VjNGQwNzA1ZWJjMzMzIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2RlZXAtcGFydGlhbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiOWRhMjMyZDE0OWE3NTA0YjA3ZDQzNmZkMWI5ODk2ZmE2MjYzM2UyNzRkNmZjOTg3Njg3YWRkOWMxZmY3YTk0ZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9kYXRlLXRpbWUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjg0ZDY2NGRlOGFlNDRjMDhlZGU4YTNkNjVkNzQ0ZmIzODBkYTI0OWIxNDg2MTdmMGE1YjZiZTBhMDIyYzYxMDkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvc2VtYXBob3JlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIzZGFjMjdkZWUyZTJmN2IwOTRiYTQ3OTRjYWFiZTVhM2I4NDIyMTAwM2MxMDg4OTE3NTZhZTJiYmQzMTZlOGE2IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2Rpc3Bvc2FibGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImRkYzMxN2Q5YmI1YTc2ZjM4NTQ4ZDE4MmE4ZGQ2NmVhYjk3OWVkNGZiNWM2MDg2MzJkNzE4YmVjNjYyODA3NjEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3NuYXBzaG90LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYWIxM2JiZDhkNzFmMjU4ZDhmYWMxMWFhYWNmYjdmMzRiYzljM2JkNzRjNjVkYTJmMGMwMzg0M2JjNTI2NGJlOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvbWVzc2FnaW5nL2Vycm9yLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwODYzZGFhMzIwNjk4MzM5MDkxZTNhYTFiZTc3ZWJiMjE2MmQ5ZjdkYTU2ZmM5MjgzZDVkYjNmMTMyMmU0YjllIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9saWNlbnNlLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5MmJiNGM5ODQ5ODYxZmQ0M2RlYmZlZmE1MzhjOWNiOWRlZDA5ZmMxY2JkNDc2MjYxMjBkMjM5OGExMjdjNDhlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3RyYWNpbmcudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjJhYTk5MDhkNmY4NjkyNmIzOTUwNjg4NDA3MWUwMGFjNDE1Yjc0MTQ4YzRjNWE1YWYyYjRhZjhiMGYyMzcyY2IiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvdGltZXV0aWwudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImI5YzU0ZTNiODRlYzMxOWIzNDI1YzFmYmRhOTY4ZTY3MWRkYzY2ZjQyYjJmMTkzZDcyNjZiNTEzMjQ1NzUyNGUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvYXN5bmMtaXRlcmF0b3IudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjE5ODcyYWFkZDVlYzQ3NjdhODYzNWE0YzIzNDVhZTUzNzc1ZWQyM2RmOTFkYWE0ZWUwNzIxYWM3YjZkMDA2MjUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvdHJhY2luZy5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwZjgzNGNlOTEwODU3MDU5MDZhOWE1MWI3ZTQ4ZDY2ZTQ5ZDk3M2YzZjkxOWZiM2EyYWU2NjE3YzU2ZThmZjI0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy93c3JlYWR5LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhNjExNmJjYmQxNTE3MmVjN2Q5MmQwZjYxNmM5NmRlZDdiZTdkMjMwMmQyNmE3Nzk4MDgzZjM3YWQ0OGUzMjI1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9hY2NvdW50aW5nLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4MjRlYTYyZDI4ODhmMjE2MTQ1OGQyYTM0ZTgzYmQyNDc1MWFhN2NhMjljZjczZWMyZDgyNmUwNzNlM2YzYWZmIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDU1Yzc2OGQ1MTAzYTA1NjMxNmJlNDk2MzBmOTkzMzk4OTIyYjM2NzNmY2QxYzQzYzE3ZTU0NDE1ZDA5NGY2OSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC90c2NvbmZpZy5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIzODk1NDM0NzFkODMzOGViY2E3MGQ3OTg3MjZmOTE5N2U0MjNlYjQyYmUzZWJjZTI4ZDQxOTFjNWZhMzM5YmQ5IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvaGFuZGxlci50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNWQ0M2VmN2ZkMmEzZTA4YzU1MGMwYjBmYWYwOWFhMmY2MmJiZmE2MTU4Nzk2MDBhYzZjZDg2NTMyODIxMTI1YiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaWRlLWZyb250ZW5kLXNlcnZpY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQ3NjcxYmY5MzJhYmIwNTYyNzE1N2NjYjhkMDM3Mjk4MDRlMmY2ZThmOWI3YmNkZTg2ZDk1MzIwZTA2ZDMxNTkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24udHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjVmMWRkZjc1MzNjYzI3YzgyZDcyYzljZDJhYmExOGU1MDhmOTRkYWRkYjY0ZDlkNmFiMGI3M2U0YTg2MThjYzIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24udHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImFiMGIxNjU0YTU5MDk2MTljZTEzOWJiYTBjYWJmNWNiNWFlOGIwZjE1YWI4MjFjYzA3NTM5MzNhMjE4OGNkMDciCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI1MTgzNDE1YjMyM2NiN2ZjZTRhNzMzMThiYWZiNTFlNTQzNTFkODU3NjUxN2FhODlmZjhmNjcxMjNkNzJjMTA1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL2RhdGEvZ2l0cG9kLXNjaGVtYS5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJjNWVmN2E5YzhjZjJiODdhODhkOGVlMWEwYzUwOTRmY2Q2ZDJjZmEwMDI5MjBlZWEyYzFkN2YxZDY2MjRmOTQwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYTk3NTNmZDQwOTM1OWY5MzNjMjIyYjNiODgzOTFkMmQ3OGU2OTQ4NGFlMDVkOTJlODVlZjE1ZTk3NjM2N2M2NyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4NWQxZTZkNmVmNjYyOTQwZDZiZWU3MWIzNzYyZGIxYTZkYTUwMjk2MWM2ZmRkMDc3Mjk3Zjk4YWNmMmNiODIyIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3F1ZXVlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJiZDVlMzFiNzk0M2U2ZTE4NWEwZjU0ODAyOGNhMzg1MGU1ZDA0MDE0YjIxMTE4YjFiYmQwYWQ1ZWNlMjQzMDIwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJkNzQ5N2Y4OTMxMjdmYThhNmY2NDAyYjQyMzBhNWYxMzYwMDlhZTZkMDM5NTRlZjVhY2JlYWNiNTQzNmZhOGE1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy90ZWFtLXN1YnNjcmlwdGlvbi1wcm90b2NvbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYmYzYThkMjUzMzJiZTY5YzhiYmQxMWUxY2M0Y2FjMmYxMDNkOGQ5NWUyN2E0NmIyNmRiNjU0NzdkMTYyZTIwNyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjQ3NTk1NTgzNTg2MGIyMmFhODBiMzEwZjdjMTRkZWFjZmNhZjJiZDZmY2Y1ZTY1MzM2YzBhNzRlMGRiMWVkY2QiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3BheW1lbnQtcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjJhYzk2YTdmMDc5YWQ0YTI5ZjdjOTQ0M2I2ZjYzOWM0YTk3YjZhYjM1NzkzNWEzMjhkYTZiNDk0Njc4Y2M3YTAiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvcGFyc2Utd29ya3NwYWNlLWlkLnNwZWMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjVmNTFhYzIyMTk3MTg5Y2YzNzFkNTk3NGI4YmQ4OTZlMzQzN2I5ODQxNWE3ZDUwNTFjYTgyNWNhMzE0Nzg4NGUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZGVmZXJyZWQudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQ1ODU5MmM5NDY3YTFjN2UyZDNhNzIwODc2YjY4YzdjMWNjMmNjMWUxZTMxM2EyNjAzMzFjNWIyOGQyM2FmZDgiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvcGFja2FnZS5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5MTkyMTY0YWFjYzY1N2NmMzA2ZDc5OGFmNzFiOWY2MGRkYjY0NmFhODkyNmU4MTVmNTQ1ZmViYmI4OWQ5MjM1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy93b3Jrc3BhY2UtaW5zdGFuY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImMwNTA1NDQ4NWY3ZjljNWE3ZTVhOWQwZDQ1NGM3NWNmMjMxY2YxNzNjNzgxMjAyYmFiNDQ0ZmEyZmEwODUxMzEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL29zcy1hbGxvd2xpc3QudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImI5YjMyYzY4OWZkZWVhZWJkNTk4M2IyNmU1ODYzNjUwYTM3N2RjZTM0MTk4ODljMjdmNWI2NDk1YzA1ZmNiNGIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ2l0cG9kLWNvb2tpZS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMzRmYmUzMmE1NDViN2Y2M2JiNThiZDZmZmJiYTFjZGQ5OWRhMWVjZGNlZGI0NGQ0ZDk1MTE0NDE4YzMxYTljMyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC90aW1ldXRpbC5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5N2U4YzBiZDMxN2U5YjVmZDhmMDZiMTAxYWM5MjBlNzMyMzBhNjA0OWZiYWVhNTdmMjY4MmI2NWUyMGMxNDdjIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9naXRwb2QtZmlsZS1wYXJzZXIuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGE2OWJjNGIzM2Q4MGIyMDE1MWYyMGRiMTJlYzljZjgwODA5MjE3Yzk5Y2U4ODUwYmY0MjkyZDg1MzBiZGE0MSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9CVUlMRC55YW1sIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJjN2UyZTllOTc1NGFjMGI0OTIyYmNkODE5YTA2ODk3MTc3YWViOTY1ZjM0MTdiNDhjMDliYjg2ZjQ0ZWU1MDhhIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL1dPUktTUEFDRS55YW1sIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhMDQ0MWVmYjJhMWY3MDVmYjgzNThhODdhZmVjOGU3ZGU5NjE1YjUxZTgwMzZkNDQxM2ViNDhhMmM3MWNmYzM4IgogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ==","signatures":null}
2
+
@@ -4,8 +4,7 @@
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 { Without } from "./util/without";
7
+ import { v4 as uuidv4 } from 'uuid';
9
8
  import { User } from './protocol';
10
9
  import { oneMonthLater } from './util/timeutil';
11
10
 
@@ -47,7 +46,7 @@ export interface AccountEntry {
47
46
  description?: object;
48
47
  }
49
48
  export namespace AccountEntry {
50
- export function create<T extends AccountEntry>(entry: Without<T, 'uid'>): T {
49
+ export function create<T extends AccountEntry>(entry: Omit<T, 'uid'>): T {
51
50
  const result = entry as T;
52
51
  result.uid = uuidv4();
53
52
  return result;
@@ -91,7 +90,6 @@ export interface SessionDescription {
91
90
  contextUrl: string;
92
91
  workspaceId: string;
93
92
  workspaceInstanceId: string;
94
- private: boolean;
95
93
  }
96
94
  export namespace SessionDescription {
97
95
  export function is(obj: any): obj is SessionDescription {
@@ -100,7 +98,6 @@ export namespace SessionDescription {
100
98
  && obj.hasOwnProperty('contextUrl')
101
99
  && obj.hasOwnProperty('workspaceId')
102
100
  && obj.hasOwnProperty('workspaceInstanceId')
103
- && obj.hasOwnProperty('private');
104
101
  }
105
102
  }
106
103
 
@@ -164,7 +161,7 @@ export namespace AssignedTeamSubscription {
164
161
  }
165
162
 
166
163
  export namespace Subscription {
167
- export function create(newSubscription: Without<Subscription, 'uid'>) {
164
+ export function create(newSubscription: Omit<Subscription, 'uid'>) {
168
165
  const subscription = newSubscription as Subscription;
169
166
  subscription.uid = uuidv4();
170
167
  return subscription;
@@ -193,9 +190,6 @@ export namespace Subscription {
193
190
  export function isDowngraded(s: Subscription) {
194
191
  return s.paymentData && s.paymentData.downgradeDate;
195
192
  };
196
- export function isCancelled(s: Subscription) {
197
- return !!s.cancellationDate;
198
- };
199
193
  export function calculateCurrentPeriod(startDate: string, now: Date) {
200
194
  let nextStartDate = startDate;
201
195
  do {
@@ -215,7 +209,7 @@ export interface Period {
215
209
 
216
210
  export type MaybePeriod = Period | undefined;
217
211
 
218
- export type AccountEntryFixedPeriod = Without<AccountEntry, 'uid'> & { expiryDate: string };
212
+ export type AccountEntryFixedPeriod = Omit<AccountEntry, 'uid'> & { expiryDate: string };
219
213
  export interface AccountStatement extends Period {
220
214
  userId: string;
221
215
  /**
@@ -5,10 +5,13 @@
5
5
  */
6
6
 
7
7
  import { User, Workspace, NamedWorkspaceFeatureFlag } from "./protocol";
8
- import { Without } from "./util/without";
8
+ import { FindPrebuildsParams } from "./gitpod-service";
9
+ import { PrebuildWithStatus } from "./teams-projects-protocol"
10
+ import { Project, Team } from "./teams-projects-protocol";
9
11
  import { WorkspaceInstance, WorkspaceInstancePhase } from "./workspace-instance";
10
12
  import { RoleOrPermission } from "./permission";
11
13
  import { AccountStatement } from "./accounting-protocol";
14
+ import { InstallationAdminSettings } from "./installation-admin-protocol";
12
15
 
13
16
  export interface AdminServer {
14
17
  adminGetUsers(req: AdminGetListRequest<User>): Promise<AdminGetListResult<User>>;
@@ -18,16 +21,27 @@ export interface AdminServer {
18
21
  adminModifyRoleOrPermission(req: AdminModifyRoleOrPermissionRequest): Promise<User>;
19
22
  adminModifyPermanentWorkspaceFeatureFlag(req: AdminModifyPermanentWorkspaceFeatureFlagRequest): Promise<User>;
20
23
 
24
+ adminGetTeamById(id: string): Promise<Team | undefined>;
25
+
21
26
  adminGetWorkspaces(req: AdminGetWorkspacesRequest): Promise<AdminGetListResult<WorkspaceAndInstance>>;
22
27
  adminGetWorkspace(id: string): Promise<WorkspaceAndInstance>;
23
28
  adminForceStopWorkspace(id: string): Promise<void>;
29
+ adminRestoreSoftDeletedWorkspace(id: string): Promise<void>;
30
+
31
+ adminGetProjectsBySearchTerm(req: AdminGetListRequest<Project>): Promise<AdminGetListResult<Project>>;
32
+ adminGetProjectById(id: string): Promise<Project | undefined>;
24
33
 
34
+ adminFindPrebuilds(params: FindPrebuildsParams): Promise<PrebuildWithStatus[]>;
25
35
  adminSetLicense(key: string): Promise<void>;
26
36
 
27
37
  adminGetAccountStatement(userId: string): Promise<AccountStatement>;
28
38
  adminSetProfessionalOpenSource(userId: string, shouldGetProfOSS: boolean): Promise<void>;
29
39
  adminIsStudent(userId: string): Promise<boolean>;
30
40
  adminAddStudentEmailDomain(userId: string, domain: string): Promise<void>;
41
+ adminGrantExtraHours(userId: string, extraHours: number): Promise<void>;
42
+
43
+ adminGetSettings(): Promise<InstallationAdminSettings>
44
+ adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>
31
45
  }
32
46
 
33
47
  export interface AdminGetListRequest<T> {
@@ -64,7 +78,7 @@ export interface AdminModifyPermanentWorkspaceFeatureFlagRequest {
64
78
  }[]
65
79
  }
66
80
 
67
- export interface WorkspaceAndInstance extends Without<Workspace, "id"|"creationTime">, Without<WorkspaceInstance, "id"|"creationTime"> {
81
+ export interface WorkspaceAndInstance extends Omit<Workspace, "id" | "creationTime">, Omit<WorkspaceInstance, "id" | "creationTime"> {
68
82
  workspaceId: string;
69
83
  workspaceCreationTime: string;
70
84
  instanceId: string;
@@ -72,6 +86,33 @@ export interface WorkspaceAndInstance extends Without<Workspace, "id"|"creationT
72
86
  phase: WorkspaceInstancePhase;
73
87
  }
74
88
 
75
- export interface AdminGetWorkspacesRequest extends AdminGetListRequest<WorkspaceAndInstance> {
76
- ownerId?: string
77
- }
89
+ export namespace WorkspaceAndInstance {
90
+ export function toWorkspace(wai: WorkspaceAndInstance): Workspace {
91
+ return {
92
+ id: wai.workspaceId,
93
+ creationTime: wai.workspaceCreationTime,
94
+ ...wai
95
+ };
96
+ }
97
+
98
+ export function toInstance(wai: WorkspaceAndInstance): WorkspaceInstance | undefined {
99
+ if (!wai.instanceId) {
100
+ return undefined;
101
+ }
102
+ return {
103
+ id: wai.instanceId,
104
+ creationTime: wai.instanceCreationTime,
105
+ ...wai
106
+ };
107
+ }
108
+ }
109
+
110
+ export type AdminGetWorkspacesRequest = AdminGetListRequest<WorkspaceAndInstance> & AdminGetWorkspacesQuery;
111
+ /** The fields are meant to be used either OR (not combined) */
112
+ export type AdminGetWorkspacesQuery = {
113
+ /** we use this field in case we have a UUIDv4 and don't know whether it's an (old) workspace or instance id */
114
+ instanceIdOrWorkspaceId?: string;
115
+ instanceId?: string;
116
+ workspaceId?: string;
117
+ ownerId?: string;
118
+ };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
+ * Licensed under the GNU Affero General Public License (AGPL).
4
+ * See License-AGPL.txt in the project root for license information.
5
+ */
6
+
7
+
8
+ export const IAnalyticsWriter = Symbol("IAnalyticsWriter");
9
+
10
+ type Identity =
11
+ | { userId: string | number; anonymousId?: string | number }
12
+ | { userId?: string | number; anonymousId: string | number };
13
+
14
+ interface Message {
15
+ messageId?: string;
16
+ }
17
+
18
+ export type IdentifyMessage = Message & Identity & {
19
+ traits?: any;
20
+ timestamp?: Date;
21
+ context?: any;
22
+ };
23
+
24
+ export type TrackMessage = Message & Identity & {
25
+ event: string;
26
+ properties?: any;
27
+ timestamp?: Date;
28
+ context?: any;
29
+ };
30
+
31
+ export type PageMessage = Message & Identity & {
32
+ properties?: any;
33
+ timestamp?: Date;
34
+ context?: any;
35
+ };
36
+
37
+ export type RemoteTrackMessage = Omit<TrackMessage, "timestamp" | "userId">;
38
+ export type RemotePageMessage = Omit<PageMessage, "timestamp" | "userId"> & {
39
+ includePII?: boolean;
40
+ };
41
+
42
+ export type RemoteIdentifyMessage = Omit<IdentifyMessage, "timestamp" | "userId">;
43
+
44
+ export interface IAnalyticsWriter {
45
+
46
+ identify(msg: IdentifyMessage): void;
47
+
48
+ track(msg: TrackMessage): void;
49
+
50
+ page(msg: PageMessage): void;
51
+
52
+ }