sonamu 0.10.12 → 0.10.13

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 (513) hide show
  1. package/dist/ai/agents/agent.d.ts +1 -1
  2. package/dist/ai/agents/agent.d.ts.map +1 -1
  3. package/dist/ai/agents/agent.js +5 -6
  4. package/dist/ai/agents/types.d.ts +1 -1
  5. package/dist/ai/agents/types.d.ts.map +1 -1
  6. package/dist/ai/providers/rtzr/api.js +18 -18
  7. package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
  8. package/dist/ai/providers/rtzr/error.js +17 -15
  9. package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
  10. package/dist/ai/providers/rtzr/model.js +3 -2
  11. package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
  12. package/dist/ai/providers/rtzr/options.js +16 -16
  13. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
  14. package/dist/ai/providers/rtzr/provider.js +9 -9
  15. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
  16. package/dist/ai/providers/rtzr/utils.js +1 -1
  17. package/dist/api/caster.d.ts.map +1 -1
  18. package/dist/api/caster.js +17 -17
  19. package/dist/api/code-converters.d.ts +4 -2
  20. package/dist/api/code-converters.d.ts.map +1 -1
  21. package/dist/api/code-converters.js +100 -19
  22. package/dist/api/config.d.ts +16 -1
  23. package/dist/api/config.d.ts.map +1 -1
  24. package/dist/api/config.js +28 -21
  25. package/dist/api/context.d.ts +2 -2
  26. package/dist/api/context.d.ts.map +1 -1
  27. package/dist/api/context.js +1 -1
  28. package/dist/api/decorators.d.ts.map +1 -1
  29. package/dist/api/decorators.js +18 -11
  30. package/dist/api/http-validator.d.ts +36 -0
  31. package/dist/api/http-validator.d.ts.map +1 -0
  32. package/dist/api/http-validator.js +72 -0
  33. package/dist/api/index.js +6 -4
  34. package/dist/api/sonamu.d.ts +59 -20
  35. package/dist/api/sonamu.d.ts.map +1 -1
  36. package/dist/api/sonamu.js +250 -106
  37. package/dist/api/websocket-helpers.d.ts +7 -5
  38. package/dist/api/websocket-helpers.d.ts.map +1 -1
  39. package/dist/api/websocket-helpers.js +6 -6
  40. package/dist/auth/audit-log/builders.d.ts.map +1 -1
  41. package/dist/auth/audit-log/builders.js +1 -1
  42. package/dist/auth/audit-log/client-ip.d.ts +1 -1
  43. package/dist/auth/audit-log/client-ip.d.ts.map +1 -1
  44. package/dist/auth/audit-log/client-ip.js +4 -2
  45. package/dist/auth/audit-log/events.d.ts +5 -1
  46. package/dist/auth/audit-log/events.d.ts.map +1 -1
  47. package/dist/auth/audit-log/events.js +1 -1
  48. package/dist/auth/audit-log/plugin.d.ts +0 -8
  49. package/dist/auth/audit-log/plugin.d.ts.map +1 -1
  50. package/dist/auth/audit-log/plugin.js +48 -52
  51. package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
  52. package/dist/auth/audit-log-ingestor.js +16 -12
  53. package/dist/auth/auth-generator.d.ts.map +1 -1
  54. package/dist/auth/auth-generator.js +1 -1
  55. package/dist/auth/better-auth-request.d.ts.map +1 -1
  56. package/dist/auth/better-auth-request.js +6 -5
  57. package/dist/auth/knex-adapter.js +1 -1
  58. package/dist/auth/plugins/entity-definitions/index.d.ts +13 -1
  59. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  60. package/dist/auth/plugins/entity-definitions/index.js +1 -1
  61. package/dist/auth/plugins/wrappers/admin.d.ts +1 -1
  62. package/dist/bin/build-config.d.ts +25 -0
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +105 -2
  65. package/dist/bin/cli.js +131 -27
  66. package/dist/bin/compiler-policy.d.ts +3 -0
  67. package/dist/bin/compiler-policy.d.ts.map +1 -0
  68. package/dist/bin/compiler-policy.js +24 -0
  69. package/dist/bin/fixture.d.ts.map +1 -1
  70. package/dist/bin/fixture.js +5 -3
  71. package/dist/bin/test-command.d.ts +22 -1
  72. package/dist/bin/test-command.d.ts.map +1 -1
  73. package/dist/bin/test-command.js +18 -10
  74. package/dist/bin/ts-loader-registration.d.ts +7 -1
  75. package/dist/bin/ts-loader-registration.d.ts.map +1 -1
  76. package/dist/bin/ts-loader-registration.js +13 -4
  77. package/dist/cache/decorator.d.ts.map +1 -1
  78. package/dist/cache/decorator.js +11 -4
  79. package/dist/compress/compress.d.ts.map +1 -1
  80. package/dist/compress/compress.js +1 -1
  81. package/dist/cone/cone-generator.d.ts +14 -1
  82. package/dist/cone/cone-generator.d.ts.map +1 -1
  83. package/dist/cone/cone-generator.js +13 -9
  84. package/dist/database/_batch_update.js +1 -1
  85. package/dist/database/base-model.d.ts +22 -10
  86. package/dist/database/base-model.d.ts.map +1 -1
  87. package/dist/database/base-model.js +26 -16
  88. package/dist/database/base-model.types.d.ts +15 -3
  89. package/dist/database/base-model.types.d.ts.map +1 -1
  90. package/dist/database/db.d.ts +12 -2
  91. package/dist/database/db.d.ts.map +1 -1
  92. package/dist/database/db.js +10 -7
  93. package/dist/database/knex.d.ts.map +1 -1
  94. package/dist/database/knex.js +17 -14
  95. package/dist/database/puri.d.ts +11 -9
  96. package/dist/database/puri.d.ts.map +1 -1
  97. package/dist/database/puri.js +93 -79
  98. package/dist/database/puri.types.d.ts +21 -21
  99. package/dist/database/puri.types.d.ts.map +1 -1
  100. package/dist/database/puri.types.js +1 -1
  101. package/dist/database/upsert-builder.d.ts +12 -10
  102. package/dist/database/upsert-builder.d.ts.map +1 -1
  103. package/dist/database/upsert-builder.js +20 -12
  104. package/dist/dict/sd.d.ts.map +1 -1
  105. package/dist/dict/sd.js +1 -1
  106. package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
  107. package/dist/dict/sonamu-dictionary.js +1 -1
  108. package/dist/dict/utils.d.ts.map +1 -1
  109. package/dist/dict/utils.js +7 -2
  110. package/dist/entity/entity-manager.d.ts +13 -4
  111. package/dist/entity/entity-manager.d.ts.map +1 -1
  112. package/dist/entity/entity-manager.js +19 -11
  113. package/dist/entity/entity-template-cone.d.ts +73 -5
  114. package/dist/entity/entity-template-cone.d.ts.map +1 -1
  115. package/dist/entity/entity-template-cone.js +4 -2
  116. package/dist/entity/entity.d.ts +6 -2
  117. package/dist/entity/entity.d.ts.map +1 -1
  118. package/dist/entity/entity.js +30 -28
  119. package/dist/env.d.ts +3 -1
  120. package/dist/env.d.ts.map +1 -1
  121. package/dist/env.js +1 -1
  122. package/dist/exceptions/error-handler.d.ts.map +1 -1
  123. package/dist/exceptions/error-handler.js +7 -2
  124. package/dist/exceptions/so-exceptions.d.ts +24 -20
  125. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  126. package/dist/exceptions/so-exceptions.js +4 -2
  127. package/dist/filter/utils.d.ts +7 -2
  128. package/dist/filter/utils.d.ts.map +1 -1
  129. package/dist/filter/utils.js +8 -6
  130. package/dist/index.d.ts +3 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +12 -6
  133. package/dist/logger/configure.d.ts.map +1 -1
  134. package/dist/logger/configure.js +10 -10
  135. package/dist/migration/code-generation.d.ts.map +1 -1
  136. package/dist/migration/code-generation.js +50 -46
  137. package/dist/migration/index-where-predicate.d.ts.map +1 -1
  138. package/dist/migration/index-where-predicate.js +22 -8
  139. package/dist/migration/migration-set.d.ts.map +1 -1
  140. package/dist/migration/migration-set.js +1 -1
  141. package/dist/migration/migrator.d.ts +3 -2
  142. package/dist/migration/migrator.d.ts.map +1 -1
  143. package/dist/migration/migrator.js +27 -21
  144. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
  145. package/dist/migration/postgresql-schema-reader.js +51 -36
  146. package/dist/migration/slack-confirm.d.ts.map +1 -1
  147. package/dist/migration/slack-confirm.js +1 -1
  148. package/dist/naite/naite-reporter.js +2 -2
  149. package/dist/naite/naite.d.ts +74 -15
  150. package/dist/naite/naite.d.ts.map +1 -1
  151. package/dist/naite/naite.js +5 -19
  152. package/dist/runtime-type.d.ts +6 -0
  153. package/dist/runtime-type.d.ts.map +1 -0
  154. package/dist/runtime-type.js +26 -0
  155. package/dist/ssr/hmr-opt-out.d.ts +26 -0
  156. package/dist/ssr/hmr-opt-out.d.ts.map +1 -0
  157. package/dist/ssr/hmr-opt-out.js +59 -0
  158. package/dist/ssr/renderer.d.ts.map +1 -1
  159. package/dist/ssr/renderer.js +4 -1
  160. package/dist/storage/base-file.js +14 -14
  161. package/dist/storage/buffered-file.d.ts +2 -2
  162. package/dist/storage/buffered-file.d.ts.map +1 -1
  163. package/dist/storage/buffered-file.js +12 -12
  164. package/dist/storage/s3-driver.d.ts.map +1 -1
  165. package/dist/storage/s3-driver.js +1 -1
  166. package/dist/storage/uploaded-file.d.ts +2 -2
  167. package/dist/storage/uploaded-file.d.ts.map +1 -1
  168. package/dist/storage/uploaded-file.js +8 -8
  169. package/dist/stream/sse.js +11 -11
  170. package/dist/stream/ws-core.d.ts +1 -1
  171. package/dist/stream/ws-core.d.ts.map +1 -1
  172. package/dist/stream/ws-delivery.d.ts +1 -1
  173. package/dist/stream/ws-delivery.d.ts.map +1 -1
  174. package/dist/stream/ws-delivery.js +6 -4
  175. package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
  176. package/dist/stream/ws-local-connection-store.js +4 -2
  177. package/dist/stream/ws-presence-store.js +1 -1
  178. package/dist/stream/ws-registry.d.ts +4 -4
  179. package/dist/stream/ws-registry.d.ts.map +1 -1
  180. package/dist/stream/ws-registry.js +4 -2
  181. package/dist/stream/ws-telemetry.d.ts +16 -12
  182. package/dist/stream/ws-telemetry.d.ts.map +1 -1
  183. package/dist/stream/ws-telemetry.js +22 -18
  184. package/dist/stream/ws.d.ts +18 -12
  185. package/dist/stream/ws.d.ts.map +1 -1
  186. package/dist/stream/ws.js +26 -22
  187. package/dist/syncer/api-parser.js +1 -1
  188. package/dist/syncer/checksum.d.ts.map +1 -1
  189. package/dist/syncer/checksum.js +7 -8
  190. package/dist/syncer/code-generator.d.ts.map +1 -1
  191. package/dist/syncer/code-generator.js +13 -14
  192. package/dist/syncer/entity-operations.d.ts.map +1 -1
  193. package/dist/syncer/entity-operations.js +5 -6
  194. package/dist/syncer/file-copy.d.ts +5 -0
  195. package/dist/syncer/file-copy.d.ts.map +1 -0
  196. package/dist/syncer/file-copy.js +36 -0
  197. package/dist/syncer/file-patterns.d.ts +1 -0
  198. package/dist/syncer/file-patterns.d.ts.map +1 -1
  199. package/dist/syncer/file-patterns.js +5 -2
  200. package/dist/syncer/file-tracking.d.ts.map +1 -1
  201. package/dist/syncer/file-tracking.js +5 -4
  202. package/dist/syncer/filesystem-dependencies.d.ts +15 -0
  203. package/dist/syncer/filesystem-dependencies.d.ts.map +1 -0
  204. package/dist/syncer/filesystem-dependencies.js +53 -0
  205. package/dist/syncer/module-loader.d.ts +1 -1
  206. package/dist/syncer/module-loader.d.ts.map +1 -1
  207. package/dist/syncer/module-loader.js +6 -4
  208. package/dist/syncer/syncer-actions.d.ts +4 -0
  209. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  210. package/dist/syncer/syncer-actions.js +34 -17
  211. package/dist/syncer/syncer.d.ts +17 -6
  212. package/dist/syncer/syncer.d.ts.map +1 -1
  213. package/dist/syncer/syncer.js +71 -29
  214. package/dist/syncer/watcher.d.ts.map +1 -1
  215. package/dist/syncer/watcher.js +3 -3
  216. package/dist/tasks/decorator.d.ts +6 -6
  217. package/dist/tasks/decorator.d.ts.map +1 -1
  218. package/dist/tasks/decorator.js +4 -4
  219. package/dist/tasks/step-wrapper.d.ts +6 -4
  220. package/dist/tasks/step-wrapper.d.ts.map +1 -1
  221. package/dist/tasks/step-wrapper.js +5 -5
  222. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  223. package/dist/tasks/workflow-manager.js +13 -7
  224. package/dist/template/entity-converter.d.ts +1 -1
  225. package/dist/template/entity-converter.d.ts.map +1 -1
  226. package/dist/template/entity-converter.js +2 -2
  227. package/dist/template/helpers.d.ts +8 -6
  228. package/dist/template/helpers.d.ts.map +1 -1
  229. package/dist/template/helpers.js +1 -1
  230. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  231. package/dist/template/implementations/generated.template.js +4 -4
  232. package/dist/template/implementations/generated_http.template.d.ts +7 -4
  233. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  234. package/dist/template/implementations/generated_http.template.js +21 -21
  235. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  236. package/dist/template/implementations/generated_sso.template.js +6 -3
  237. package/dist/template/implementations/http_validators.template.d.ts +18 -0
  238. package/dist/template/implementations/http_validators.template.d.ts.map +1 -0
  239. package/dist/template/implementations/http_validators.template.js +127 -0
  240. package/dist/template/implementations/model.template.d.ts.map +1 -1
  241. package/dist/template/implementations/model.template.js +1 -1
  242. package/dist/template/implementations/queries.template.js +1 -1
  243. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  244. package/dist/template/implementations/sd.template.js +79 -39
  245. package/dist/template/implementations/services.template.d.ts.map +1 -1
  246. package/dist/template/implementations/services.template.js +6 -4
  247. package/dist/template/implementations/view_form.template.d.ts +6 -1
  248. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  249. package/dist/template/implementations/view_form.template.js +23 -15
  250. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  251. package/dist/template/implementations/view_list.template.js +11 -6
  252. package/dist/template/template-manager.d.ts.map +1 -1
  253. package/dist/template/template-manager.js +9 -7
  254. package/dist/template/template-types.d.ts +12 -5
  255. package/dist/template/template-types.d.ts.map +1 -1
  256. package/dist/template/template-types.js +1 -1
  257. package/dist/template/template.d.ts +2 -2
  258. package/dist/template/template.d.ts.map +1 -1
  259. package/dist/template/template.js +6 -4
  260. package/dist/template/zod-converter.d.ts +0 -19
  261. package/dist/template/zod-converter.d.ts.map +1 -1
  262. package/dist/template/zod-converter.js +100 -84
  263. package/dist/testing/_relation-graph.d.ts.map +1 -1
  264. package/dist/testing/_relation-graph.js +2 -1
  265. package/dist/testing/bootstrap.d.ts.map +1 -1
  266. package/dist/testing/bootstrap.js +9 -6
  267. package/dist/testing/data-explorer.d.ts +32 -7
  268. package/dist/testing/data-explorer.d.ts.map +1 -1
  269. package/dist/testing/data-explorer.js +77 -31
  270. package/dist/testing/dev-test-routes.d.ts +8 -1
  271. package/dist/testing/dev-test-routes.d.ts.map +1 -1
  272. package/dist/testing/dev-test-routes.js +125 -108
  273. package/dist/testing/dev-vitest-manager.d.ts +54 -8
  274. package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
  275. package/dist/testing/dev-vitest-manager.js +24 -9
  276. package/dist/testing/faker-mappings.d.ts +412 -1
  277. package/dist/testing/faker-mappings.d.ts.map +1 -1
  278. package/dist/testing/faker-mappings.js +1 -1
  279. package/dist/testing/filesystem.d.ts +2 -0
  280. package/dist/testing/filesystem.d.ts.map +1 -0
  281. package/dist/testing/filesystem.js +7 -0
  282. package/dist/testing/fixture-generator.d.ts +25 -8
  283. package/dist/testing/fixture-generator.d.ts.map +1 -1
  284. package/dist/testing/fixture-generator.js +132 -73
  285. package/dist/testing/fixture-loader.d.ts +3 -1
  286. package/dist/testing/fixture-loader.d.ts.map +1 -1
  287. package/dist/testing/fixture-loader.js +1 -20
  288. package/dist/testing/fixture-manager.d.ts +8 -7
  289. package/dist/testing/fixture-manager.d.ts.map +1 -1
  290. package/dist/testing/fixture-manager.js +91 -59
  291. package/dist/testing/global-setup.d.ts.map +1 -1
  292. package/dist/testing/global-setup.js +5 -2
  293. package/dist/testing/index.d.ts +2 -0
  294. package/dist/testing/index.d.ts.map +1 -1
  295. package/dist/testing/index.js +6 -3
  296. package/dist/types/types.d.ts +101 -99
  297. package/dist/types/types.d.ts.map +1 -1
  298. package/dist/types/types.js +234 -225
  299. package/dist/ui/ai-api.d.ts.map +1 -1
  300. package/dist/ui/ai-api.js +1 -1
  301. package/dist/ui/ai-client.d.ts.map +1 -1
  302. package/dist/ui/ai-client.js +28 -18
  303. package/dist/ui/api.d.ts.map +1 -1
  304. package/dist/ui/api.js +135 -128
  305. package/dist/ui/async-route.d.ts +3 -0
  306. package/dist/ui/async-route.d.ts.map +1 -0
  307. package/dist/ui/async-route.js +12 -0
  308. package/dist/ui/cdd-service.d.ts +9 -7
  309. package/dist/ui/cdd-service.d.ts.map +1 -1
  310. package/dist/ui/cdd-service.js +7 -5
  311. package/dist/ui/migrations-api.d.ts.map +1 -1
  312. package/dist/ui/migrations-api.js +17 -15
  313. package/dist/ui-web/assets/index-DV1AAq6W.js +178 -0
  314. package/dist/ui-web/index.html +1 -1
  315. package/dist/utils/formatter.d.ts.map +1 -1
  316. package/dist/utils/formatter.js +7 -5
  317. package/dist/utils/fs-utils.d.ts +3 -3
  318. package/dist/utils/fs-utils.d.ts.map +1 -1
  319. package/dist/utils/fs-utils.js +6 -6
  320. package/dist/utils/model.d.ts +3 -5
  321. package/dist/utils/model.d.ts.map +1 -1
  322. package/dist/utils/model.js +1 -1
  323. package/dist/utils/object-utils.d.ts +1 -1
  324. package/dist/utils/object-utils.d.ts.map +1 -1
  325. package/dist/utils/object-utils.js +17 -16
  326. package/dist/utils/process-utils.d.ts.map +1 -1
  327. package/dist/utils/process-utils.js +4 -2
  328. package/dist/utils/runtime-value.d.ts +13 -0
  329. package/dist/utils/runtime-value.d.ts.map +1 -0
  330. package/dist/utils/runtime-value.js +40 -0
  331. package/dist/utils/sql-parser.d.ts +8 -1
  332. package/dist/utils/sql-parser.d.ts.map +1 -1
  333. package/dist/utils/sql-parser.js +6 -3
  334. package/dist/utils/type-utils.d.ts.map +1 -1
  335. package/dist/utils/type-utils.js +10 -8
  336. package/dist/utils/utils.d.ts +2 -2
  337. package/dist/utils/utils.d.ts.map +1 -1
  338. package/dist/utils/utils.js +11 -8
  339. package/dist/utils/zod-error.d.ts.map +1 -1
  340. package/dist/utils/zod-error.js +7 -4
  341. package/dist/vector/chunking.d.ts.map +1 -1
  342. package/dist/vector/chunking.js +1 -1
  343. package/dist/vector/embedding.d.ts.map +1 -1
  344. package/dist/vector/embedding.js +1 -1
  345. package/dist/vector/types.d.ts +3 -2
  346. package/dist/vector/types.d.ts.map +1 -1
  347. package/package.json +5 -3
  348. package/src/ai/agents/agent.ts +5 -5
  349. package/src/ai/agents/types.ts +1 -1
  350. package/src/ai/providers/rtzr/__tests__/model.test.ts +2 -2
  351. package/src/ai/providers/rtzr/error.ts +5 -3
  352. package/src/ai/providers/rtzr/model.ts +3 -2
  353. package/src/ai/providers/rtzr/options.ts +10 -5
  354. package/src/ai/providers/rtzr/provider.ts +10 -10
  355. package/src/ai/providers/rtzr/utils.ts +3 -1
  356. package/src/api/__tests__/config.test.ts +11 -21
  357. package/src/api/__tests__/sonamu.http-validator.test.ts +512 -0
  358. package/src/api/__tests__/sonamu.websocket.test.ts +51 -41
  359. package/src/api/__tests__/zod-compiler-policy.test.ts +95 -0
  360. package/src/api/caster.ts +6 -8
  361. package/src/api/code-converters.ts +136 -36
  362. package/src/api/config.ts +62 -4
  363. package/src/api/context.ts +3 -3
  364. package/src/api/decorators.ts +28 -17
  365. package/src/api/http-validator.ts +149 -0
  366. package/src/api/sonamu.ts +459 -152
  367. package/src/api/websocket-helpers.ts +24 -17
  368. package/src/auth/audit-log/builders.ts +3 -2
  369. package/src/auth/audit-log/client-ip.ts +4 -2
  370. package/src/auth/audit-log/events.ts +15 -1
  371. package/src/auth/audit-log/plugin.ts +129 -200
  372. package/src/auth/audit-log-ingestor.ts +19 -15
  373. package/src/auth/auth-generator.ts +10 -5
  374. package/src/auth/better-auth-request.ts +4 -3
  375. package/src/auth/knex-adapter.ts +8 -2
  376. package/src/auth/plugins/entity-definitions/index.ts +6 -5
  377. package/src/bin/__tests__/http-validator-benchmark.test.ts +94 -0
  378. package/src/bin/__tests__/test-command.test.ts +9 -15
  379. package/src/bin/__tests__/ts-loader-register.test.ts +15 -17
  380. package/src/bin/__tests__/zod-compiler-build.test.ts +307 -0
  381. package/src/bin/build-config.ts +167 -0
  382. package/src/bin/cli.ts +153 -36
  383. package/src/bin/compiler-policy.ts +35 -0
  384. package/src/bin/fixture.ts +14 -3
  385. package/src/bin/test-command.ts +74 -29
  386. package/src/bin/ts-loader-registration.ts +22 -4
  387. package/src/cache/decorator.ts +10 -3
  388. package/src/compress/compress.ts +17 -4
  389. package/src/cone/cone-generator.ts +34 -6
  390. package/src/database/__tests__/db.test.ts +1 -0
  391. package/src/database/__tests__/puri.test.ts +16 -15
  392. package/src/database/__tests__/transaction-scope.test.ts +5 -0
  393. package/src/database/_batch_update.ts +1 -0
  394. package/src/database/base-model.ts +81 -50
  395. package/src/database/base-model.types.ts +6 -6
  396. package/src/database/db.ts +29 -19
  397. package/src/database/knex.ts +30 -17
  398. package/src/database/puri-subset.test-d.ts +17 -0
  399. package/src/database/puri.ts +181 -143
  400. package/src/database/puri.types.test-d.ts +31 -1
  401. package/src/database/puri.types.ts +23 -21
  402. package/src/database/upsert-builder.ts +75 -53
  403. package/src/dict/sd.ts +15 -5
  404. package/src/dict/sonamu-dictionary.ts +6 -6
  405. package/src/dict/utils.ts +9 -1
  406. package/src/entity/entity-manager.ts +26 -9
  407. package/src/entity/entity-template-cone.ts +5 -10
  408. package/src/entity/entity.ts +50 -34
  409. package/src/env.ts +7 -3
  410. package/src/exceptions/error-handler.ts +17 -2
  411. package/src/exceptions/so-exceptions.ts +26 -20
  412. package/src/filter/utils.ts +21 -11
  413. package/src/index.ts +3 -0
  414. package/src/logger/configure.ts +26 -18
  415. package/src/migration/__tests__/migrator.test.ts +50 -57
  416. package/src/migration/code-generation.ts +132 -104
  417. package/src/migration/index-where-predicate.ts +51 -24
  418. package/src/migration/migration-set.ts +11 -5
  419. package/src/migration/migrator.ts +68 -41
  420. package/src/migration/postgresql-schema-reader.ts +52 -47
  421. package/src/migration/slack-confirm.ts +17 -15
  422. package/src/naite/naite-reporter.ts +1 -1
  423. package/src/naite/naite.ts +97 -24
  424. package/src/runtime-type.ts +34 -0
  425. package/src/ssr/hmr-opt-out.ts +78 -0
  426. package/src/ssr/renderer.ts +6 -0
  427. package/src/storage/base-file.ts +13 -13
  428. package/src/storage/buffered-file.ts +11 -11
  429. package/src/storage/s3-driver.ts +4 -1
  430. package/src/storage/uploaded-file.ts +8 -8
  431. package/src/stream/__tests__/ws-contracts.test.ts +4 -2
  432. package/src/stream/__tests__/ws-telemetry.test.ts +1 -1
  433. package/src/stream/__tests__/ws.test.ts +30 -6
  434. package/src/stream/sse.ts +12 -11
  435. package/src/stream/ws-core.ts +1 -1
  436. package/src/stream/ws-delivery.ts +16 -7
  437. package/src/stream/ws-local-connection-store.ts +2 -3
  438. package/src/stream/ws-presence-store.ts +6 -1
  439. package/src/stream/ws-registry.ts +16 -7
  440. package/src/stream/ws-telemetry.ts +66 -43
  441. package/src/stream/ws.ts +73 -39
  442. package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +3 -2
  443. package/src/syncer/__tests__/http-validator-registry.test.ts +137 -0
  444. package/src/syncer/api-parser.ts +67 -27
  445. package/src/syncer/checksum.ts +17 -11
  446. package/src/syncer/code-generator.ts +25 -17
  447. package/src/syncer/entity-operations.ts +3 -5
  448. package/src/syncer/file-copy.ts +46 -0
  449. package/src/syncer/file-patterns.ts +11 -8
  450. package/src/syncer/file-tracking.ts +3 -4
  451. package/src/syncer/filesystem-dependencies.ts +73 -0
  452. package/src/syncer/module-loader.ts +8 -4
  453. package/src/syncer/syncer-actions.ts +56 -18
  454. package/src/syncer/syncer.ts +116 -43
  455. package/src/syncer/watcher.ts +8 -4
  456. package/src/tasks/decorator.ts +20 -12
  457. package/src/tasks/step-wrapper.ts +19 -9
  458. package/src/tasks/workflow-manager.ts +15 -9
  459. package/src/template/__tests__/http_validators.template.test.ts +160 -0
  460. package/src/template/__tests__/services.template.mutation.test.ts +24 -23
  461. package/src/template/__tests__/services.template.websocket.test.ts +21 -25
  462. package/src/template/entity-converter.ts +5 -2
  463. package/src/template/helpers.ts +8 -9
  464. package/src/template/implementations/generated.template.ts +5 -4
  465. package/src/template/implementations/generated_http.template.ts +61 -15
  466. package/src/template/implementations/generated_sso.template.ts +15 -4
  467. package/src/template/implementations/http_validators.template.ts +175 -0
  468. package/src/template/implementations/model.template.ts +3 -1
  469. package/src/template/implementations/sd.template.ts +81 -41
  470. package/src/template/implementations/services.template.ts +2 -2
  471. package/src/template/implementations/view_form.template.ts +56 -39
  472. package/src/template/implementations/view_list.template.ts +31 -23
  473. package/src/template/template-manager.ts +15 -13
  474. package/src/template/template-types.ts +13 -5
  475. package/src/template/template.ts +4 -3
  476. package/src/template/zod-converter.ts +206 -91
  477. package/src/testing/__tests__/dev-test-routes.test.ts +85 -25
  478. package/src/testing/__tests__/dev-vitest-manager.test.ts +15 -15
  479. package/src/testing/_relation-graph.ts +4 -1
  480. package/src/testing/bootstrap.ts +12 -5
  481. package/src/testing/data-explorer.ts +102 -53
  482. package/src/testing/dev-test-routes.ts +87 -50
  483. package/src/testing/dev-vitest-manager.ts +88 -32
  484. package/src/testing/faker-mappings.ts +2 -2
  485. package/src/testing/filesystem.ts +1 -0
  486. package/src/testing/fixture-generator.ts +191 -131
  487. package/src/testing/fixture-loader.ts +5 -1
  488. package/src/testing/fixture-manager.ts +129 -90
  489. package/src/testing/global-setup.ts +7 -3
  490. package/src/testing/index.ts +5 -0
  491. package/src/types/__tests__/entity-json-schema-search-text.test.ts +9 -3
  492. package/src/types/types.ts +184 -158
  493. package/src/ui/ai-api.ts +9 -7
  494. package/src/ui/ai-client.ts +61 -56
  495. package/src/ui/api.ts +727 -616
  496. package/src/ui/async-route.ts +4 -0
  497. package/src/ui/cdd-service.ts +35 -12
  498. package/src/ui/migrations-api.ts +63 -51
  499. package/src/utils/formatter.ts +7 -3
  500. package/src/utils/fs-utils.ts +5 -5
  501. package/src/utils/model.ts +4 -5
  502. package/src/utils/object-utils.ts +32 -22
  503. package/src/utils/process-utils.ts +4 -1
  504. package/src/utils/runtime-value.ts +43 -0
  505. package/src/utils/sql-parser.ts +13 -6
  506. package/src/utils/type-utils.ts +9 -7
  507. package/src/utils/utils.ts +19 -21
  508. package/src/utils/zod-error.ts +4 -2
  509. package/src/vector/chunking.ts +6 -1
  510. package/src/vector/embedding.ts +2 -1
  511. package/src/vector/types.ts +4 -2
  512. package/tsdown.api.config.ts +5 -2
  513. package/dist/ui-web/assets/index-C0m1pk6K.js +0 -177
@@ -1,6 +1,11 @@
1
1
  import { type Server } from "http";
2
2
  import { type WebsocketPluginOptions } from "@fastify/websocket";
3
3
  import { type FastifyReply } from "fastify";
4
+ interface WebSocketCloseDescriptor {
5
+ code: number;
6
+ reason: string;
7
+ logLevel: "warn" | "error";
8
+ }
4
9
  export declare function resolveIntegratedViteHmrOptions({ httpServer, requiresDedicatedWebSocketServer, rawPort, }: {
5
10
  httpServer: Server;
6
11
  requiresDedicatedWebSocketServer: boolean;
@@ -13,10 +18,7 @@ export declare function resolveIntegratedViteHmrOptions({ httpServer, requiresDe
13
18
  export declare function resolveWebSocketPluginOptions({ rawPluginOption, }: {
14
19
  rawPluginOption: boolean | WebsocketPluginOptions | undefined;
15
20
  }): WebsocketPluginOptions | undefined;
16
- export declare function resolveWebSocketCloseDescriptor(error: unknown): {
17
- code: number;
18
- reason: string;
19
- logLevel: "warn" | "error";
20
- };
21
+ export declare function resolveWebSocketCloseDescriptor(cause: unknown): WebSocketCloseDescriptor;
21
22
  export declare function createWebSocketReplyStub(): FastifyReply;
23
+ export {};
22
24
  //# sourceMappingURL=websocket-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-helpers.d.ts","sourceRoot":"","sources":["../../src/api/websocket-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAO5C,wBAAgB,+BAA+B,CAAC,EAC9C,UAAU,EACV,gCAAgC,EAChC,OAA0C,GAC3C,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC,EAAE,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAOxC;AAGD,wBAAgB,6BAA6B,CAAC,EAC5C,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAAC;CAC/D,GAAG,sBAAsB,GAAG,SAAS,CAWrC;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAgCA;AAID,wBAAgB,wBAAwB,IAAI,YAAY,CAQvD"}
1
+ {"version":3,"file":"websocket-helpers.d.ts","sourceRoot":"","sources":["../../src/api/websocket-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAID,wBAAgB,+BAA+B,CAAC,EAC9C,UAAU,EACV,gCAAgC,EAChC,OAA0C,GAC3C,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC,EAAE,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAOxC;AAGD,wBAAgB,6BAA6B,CAAC,EAC5C,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAAC;CAC/D,GAAG,sBAAsB,GAAG,SAAS,CAarC;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAgCxF;AAID,wBAAgB,wBAAwB,IAAI,YAAY,CAWvD"}
@@ -13,19 +13,19 @@ function resolveWebSocketPluginOptions({ rawPluginOption }) {
13
13
  if (Object.keys(serverOptions).length > 0) pluginOptions.options = serverOptions;
14
14
  return Object.keys(pluginOptions).length > 0 ? pluginOptions : void 0;
15
15
  }
16
- function resolveWebSocketCloseDescriptor(error) {
17
- if (isSoException(error)) {
18
- if (error.statusCode === 400) return {
16
+ function resolveWebSocketCloseDescriptor(cause) {
17
+ if (isSoException(cause)) {
18
+ if (cause.statusCode === 400) return {
19
19
  code: 1008,
20
20
  reason: "Invalid websocket handshake",
21
21
  logLevel: "warn"
22
22
  };
23
- if (error.statusCode === 401 || error.statusCode === 403) return {
23
+ if (cause.statusCode === 401 || cause.statusCode === 403) return {
24
24
  code: 1008,
25
25
  reason: "Unauthorized websocket connection",
26
26
  logLevel: "warn"
27
27
  };
28
- if (error.statusCode >= 400 && error.statusCode < 500) return {
28
+ if (cause.statusCode >= 400 && cause.statusCode < 500) return {
29
29
  code: 1008,
30
30
  reason: "Rejected websocket connection",
31
31
  logLevel: "warn"
@@ -50,4 +50,4 @@ var init_websocket_helpers = __esmMin((() => {
50
50
  init_websocket_helpers();
51
51
  export { createWebSocketReplyStub, init_websocket_helpers, resolveIntegratedViteHmrOptions, resolveWebSocketCloseDescriptor, resolveWebSocketPluginOptions };
52
52
 
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWhlbHBlcnMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS93ZWJzb2NrZXQtaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFNlcnZlciB9IGZyb20gXCJodHRwXCI7XG5cbmltcG9ydCB7IHR5cGUgV2Vic29ja2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS93ZWJzb2NrZXRcIjtcbmltcG9ydCB7IHR5cGUgRmFzdGlmeVJlcGx5IH0gZnJvbSBcImZhc3RpZnlcIjtcblxuaW1wb3J0IHsgaXNTb0V4Y2VwdGlvbiB9IGZyb20gXCIuLi9leGNlcHRpb25zL3NvLWV4Y2VwdGlvbnNcIjtcbmltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcblxuLy8gRmFzdGlmeSB3ZWJzb2NrZXQgcm91dGXsmYAgVml0ZSBITVIgd2Vic29ja2V07J20IOqwmeydgCBzZXJ2ZXIgc29ja2V07J2EIOuRkOqzoCDstqnrj4ztlZjripQg6rKD7J2EIOuwqeyngO2VmOq4sCDsnITtlbQsXG4vLyBXUyByb3V0ZeqwgCDsobTsnqztlZjrqbQgSE1S7J2EIOuzhOuPhCDtj6ztirjroZwg67aE66as7ZW0IOudhOybgFxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbnRlZ3JhdGVkVml0ZUhtck9wdGlvbnMoe1xuICBodHRwU2VydmVyLFxuICByZXF1aXJlc0RlZGljYXRlZFdlYlNvY2tldFNlcnZlcixcbiAgcmF3UG9ydCA9IHByb2Nlc3MuZW52LlNPTkFNVV9WSVRFX0hNUl9QT1JULFxufToge1xuICBodHRwU2VydmVyOiBTZXJ2ZXI7XG4gIHJlcXVpcmVzRGVkaWNhdGVkV2ViU29ja2V0U2VydmVyOiBib29sZWFuO1xuICByYXdQb3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufSk6IHsgc2VydmVyOiBTZXJ2ZXIgfSB8IHsgcG9ydDogbnVtYmVyIH0ge1xuICBpZiAoIXJlcXVpcmVzRGVkaWNhdGVkV2ViU29ja2V0U2VydmVyKSB7XG4gICAgcmV0dXJuIHsgc2VydmVyOiBodHRwU2VydmVyIH07XG4gIH1cblxuICBjb25zdCBwYXJzZWRQb3J0ID0gcmF3UG9ydD8udHJpbSgpID8gTnVtYmVyKHJhd1BvcnQpIDogMjQ2Nzg7XG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkUG9ydCkgJiYgcGFyc2VkUG9ydCA+IDAgPyB7IHBvcnQ6IHBhcnNlZFBvcnQgfSA6IHsgcG9ydDogMjQ2NzggfTtcbn1cblxuLy8gQGZhc3RpZnkvd2Vic29ja2V0IHRyYW5zcG9ydCBvcHRpb27snYAgc2VydmVyLnBsdWdpbnMud3Psl5Ag66qF7Iuc65CcIOqwkuunjCDsgqzsmqntlaguXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdlYlNvY2tldFBsdWdpbk9wdGlvbnMoe1xuICByYXdQbHVnaW5PcHRpb24sXG59OiB7XG4gIHJhd1BsdWdpbk9wdGlvbjogYm9vbGVhbiB8IFdlYnNvY2tldFBsdWdpbk9wdGlvbnMgfCB1bmRlZmluZWQ7XG59KTogV2Vic29ja2V0UGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBsdWdpbk9wdGlvbnMgPSByYXdQbHVnaW5PcHRpb24gJiYgcmF3UGx1Z2luT3B0aW9uICE9PSB0cnVlID8geyAuLi5yYXdQbHVnaW5PcHRpb24gfSA6IHt9O1xuICBjb25zdCBzZXJ2ZXJPcHRpb25zID0gaXNQbGFpbk9iamVjdChwbHVnaW5PcHRpb25zLm9wdGlvbnMpXG4gICAgPyB7IC4uLnBsdWdpbk9wdGlvbnMub3B0aW9ucyB9XG4gICAgOiAoe30gYXMgTm9uTnVsbGFibGU8V2Vic29ja2V0UGx1Z2luT3B0aW9uc1tcIm9wdGlvbnNcIl0+KTtcblxuICBpZiAoT2JqZWN0LmtleXMoc2VydmVyT3B0aW9ucykubGVuZ3RoID4gMCkge1xuICAgIHBsdWdpbk9wdGlvbnMub3B0aW9ucyA9IHNlcnZlck9wdGlvbnM7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMocGx1Z2luT3B0aW9ucykubGVuZ3RoID4gMCA/IHBsdWdpbk9wdGlvbnMgOiB1bmRlZmluZWQ7XG59XG5cbi8vIGhhbmRzaGFrZS9hdXRoL3ZhbGlkYXRpb24g7Iuk7Yyo66W8IGdlbmVyaWMgMTAxMeuhnCDrrYnqsJzsp4Ag7JWK6rOgIDEwMDgocG9saWN5IHZpb2xhdGlvbinroZwg66ek7ZWR7ZW0LFxuLy8gY2xvc2UgY29kZSBwb2xpY3nrpbwg7ZWcIOqzs+yXkOyEnCDsoJXsnZjtlahcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2ViU29ja2V0Q2xvc2VEZXNjcmlwdG9yKGVycm9yOiB1bmtub3duKToge1xuICBjb2RlOiBudW1iZXI7XG4gIHJlYXNvbjogc3RyaW5nO1xuICBsb2dMZXZlbDogXCJ3YXJuXCIgfCBcImVycm9yXCI7XG59IHtcbiAgaWYgKGlzU29FeGNlcHRpb24oZXJyb3IpKSB7XG4gICAgaWYgKGVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMTAwOCxcbiAgICAgICAgcmVhc29uOiBcIkludmFsaWQgd2Vic29ja2V0IGhhbmRzaGFrZVwiLFxuICAgICAgICBsb2dMZXZlbDogXCJ3YXJuXCIsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChlcnJvci5zdGF0dXNDb2RlID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDAzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiAxMDA4LFxuICAgICAgICByZWFzb246IFwiVW5hdXRob3JpemVkIHdlYnNvY2tldCBjb25uZWN0aW9uXCIsXG4gICAgICAgIGxvZ0xldmVsOiBcIndhcm5cIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGVycm9yLnN0YXR1c0NvZGUgPj0gNDAwICYmIGVycm9yLnN0YXR1c0NvZGUgPCA1MDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IDEwMDgsXG4gICAgICAgIHJlYXNvbjogXCJSZWplY3RlZCB3ZWJzb2NrZXQgY29ubmVjdGlvblwiLFxuICAgICAgICBsb2dMZXZlbDogXCJ3YXJuXCIsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY29kZTogMTAxMSxcbiAgICByZWFzb246IFwiV2ViU29ja2V0IGhhbmRsZXIgZmFpbGVkXCIsXG4gICAgbG9nTGV2ZWw6IFwiZXJyb3JcIixcbiAgfTtcbn1cblxuLy8gV1Mg6rK966Gc7JeQ7ISc64qUIHJlcGx56rCAIOyhtOyerO2VmOyngCDslYrsnLzrr4DroZwg7KCR6re8IOyLnOuPhOulvCDsponsi5wg7JeQ65+s66GcIHN1cmZhY2XtlbQgdHJhbnNwb3J0IG1pc3VzZeulvCDruajrpqwg65Oc65+s64OEXG4vLyBTU0UvcmVwbHnsl5Ag7J2Y7KG07ZWY64qUIGNvbnRleHRQcm92aWRlcuqwgCDsnojsnLzrqbQgd2Vic29ja2V0Q29udGV4dFByb3ZpZGVy66W8IOuUsOuhnCDsoJXsnZjtlZjrnbzripQg6rCA7J2065OcIOyXre2VoOuPhCDtlahcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJTb2NrZXRSZXBseVN0dWIoKTogRmFzdGlmeVJlcGx5IHtcbiAgcmV0dXJuIG5ldyBQcm94eSh7fSBhcyBGYXN0aWZ5UmVwbHksIHtcbiAgICBnZXQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRmFzdGlmeVJlcGx5IGlzIG5vdCBhdmFpbGFibGUgaW4gd2Vic29ja2V0IGNvbnRleHQuIERlZmluZSB3ZWJzb2NrZXRDb250ZXh0UHJvdmlkZXIgaWYgeW91ciBjb250ZXh0IHNldHVwIGRlcGVuZHMgb24gcmVwbHkgbXV0YXRpb24uXCIsXG4gICAgICApO1xuICAgIH0sXG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBVUEsU0FBZ0IsZ0NBQWdDLEVBQzlDLFlBQ0Esa0NBQ0EsVUFBVSxRQUFRLElBQUksd0JBS2tCO0NBQ3hDLElBQUksQ0FBQyxrQ0FDSCxPQUFPLEVBQUUsUUFBUSxXQUFXO0NBRzlCLE1BQU0sYUFBYSxTQUFTLEtBQUssSUFBSSxPQUFPLE9BQU8sSUFBSTtDQUN2RCxPQUFPLE9BQU8sU0FBUyxVQUFVLEtBQUssYUFBYSxJQUFJLEVBQUUsTUFBTSxXQUFXLElBQUksRUFBRSxNQUFNLE1BQU07QUFDOUY7QUFHQSxTQUFnQiw4QkFBOEIsRUFDNUMsbUJBR3FDO0NBQ3JDLE1BQU0sZ0JBQWdCLG1CQUFtQixvQkFBb0IsT0FBTyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksQ0FBQztDQUM5RixNQUFNLGdCQUFnQixjQUFjLGNBQWMsT0FBTyxJQUNyRCxFQUFFLEdBQUcsY0FBYyxRQUFRLElBQzFCLENBQUM7Q0FFTixJQUFJLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxTQUFTLEdBQ3RDLGNBQWMsVUFBVTtDQUcxQixPQUFPLE9BQU8sS0FBSyxhQUFhLENBQUMsQ0FBQyxTQUFTLElBQUksZ0JBQWdCO0FBQ2pFO0FBSUEsU0FBZ0IsZ0NBQWdDLE9BSTlDO0NBQ0EsSUFBSSxjQUFjLEtBQUssR0FBRztFQUN4QixJQUFJLE1BQU0sZUFBZSxLQUN2QixPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7RUFHRixJQUFJLE1BQU0sZUFBZSxPQUFPLE1BQU0sZUFBZSxLQUNuRCxPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7RUFHRixJQUFJLE1BQU0sY0FBYyxPQUFPLE1BQU0sYUFBYSxLQUNoRCxPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7Q0FFSjtDQUVBLE9BQU87RUFDTCxNQUFNO0VBQ04sUUFBUTtFQUNSLFVBQVU7Q0FDWjtBQUNGO0FBSUEsU0FBZ0IsMkJBQXlDO0NBQ3ZELE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBbUIsRUFDbkMsTUFBTTtFQUNKLE1BQU0sSUFBSSxNQUNSLHNJQUNGO0NBQ0YsRUFDRixDQUFDO0FBQ0g7O29CQTFGMkQ7WUFDYiJ9
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWhlbHBlcnMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS93ZWJzb2NrZXQtaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFNlcnZlciB9IGZyb20gXCJodHRwXCI7XG5cbmltcG9ydCB7IHR5cGUgV2Vic29ja2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS93ZWJzb2NrZXRcIjtcbmltcG9ydCB7IHR5cGUgRmFzdGlmeVJlcGx5IH0gZnJvbSBcImZhc3RpZnlcIjtcblxuaW1wb3J0IHsgaXNTb0V4Y2VwdGlvbiB9IGZyb20gXCIuLi9leGNlcHRpb25zL3NvLWV4Y2VwdGlvbnNcIjtcbmltcG9ydCB7IGlzUGxhaW5PYmplY3QgfSBmcm9tIFwiLi4vdXRpbHMvdXRpbHNcIjtcblxuaW50ZXJmYWNlIFdlYlNvY2tldENsb3NlRGVzY3JpcHRvciB7XG4gIGNvZGU6IG51bWJlcjtcbiAgcmVhc29uOiBzdHJpbmc7XG4gIGxvZ0xldmVsOiBcIndhcm5cIiB8IFwiZXJyb3JcIjtcbn1cblxuLy8gRmFzdGlmeSB3ZWJzb2NrZXQgcm91dGXsmYAgVml0ZSBITVIgd2Vic29ja2V07J20IOqwmeydgCBzZXJ2ZXIgc29ja2V07J2EIOuRkOqzoCDstqnrj4ztlZjripQg6rKD7J2EIOuwqeyngO2VmOq4sCDsnITtlbQsXG4vLyBXUyByb3V0ZeqwgCDsobTsnqztlZjrqbQgSE1S7J2EIOuzhOuPhCDtj6ztirjroZwg67aE66as7ZW0IOudhOybgFxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbnRlZ3JhdGVkVml0ZUhtck9wdGlvbnMoe1xuICBodHRwU2VydmVyLFxuICByZXF1aXJlc0RlZGljYXRlZFdlYlNvY2tldFNlcnZlcixcbiAgcmF3UG9ydCA9IHByb2Nlc3MuZW52LlNPTkFNVV9WSVRFX0hNUl9QT1JULFxufToge1xuICBodHRwU2VydmVyOiBTZXJ2ZXI7XG4gIHJlcXVpcmVzRGVkaWNhdGVkV2ViU29ja2V0U2VydmVyOiBib29sZWFuO1xuICByYXdQb3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufSk6IHsgc2VydmVyOiBTZXJ2ZXIgfSB8IHsgcG9ydDogbnVtYmVyIH0ge1xuICBpZiAoIXJlcXVpcmVzRGVkaWNhdGVkV2ViU29ja2V0U2VydmVyKSB7XG4gICAgcmV0dXJuIHsgc2VydmVyOiBodHRwU2VydmVyIH07XG4gIH1cblxuICBjb25zdCBwYXJzZWRQb3J0ID0gcmF3UG9ydD8udHJpbSgpID8gTnVtYmVyKHJhd1BvcnQpIDogMjQ2Nzg7XG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGFyc2VkUG9ydCkgJiYgcGFyc2VkUG9ydCA+IDAgPyB7IHBvcnQ6IHBhcnNlZFBvcnQgfSA6IHsgcG9ydDogMjQ2NzggfTtcbn1cblxuLy8gQGZhc3RpZnkvd2Vic29ja2V0IHRyYW5zcG9ydCBvcHRpb27snYAgc2VydmVyLnBsdWdpbnMud3Psl5Ag66qF7Iuc65CcIOqwkuunjCDsgqzsmqntlaguXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdlYlNvY2tldFBsdWdpbk9wdGlvbnMoe1xuICByYXdQbHVnaW5PcHRpb24sXG59OiB7XG4gIHJhd1BsdWdpbk9wdGlvbjogYm9vbGVhbiB8IFdlYnNvY2tldFBsdWdpbk9wdGlvbnMgfCB1bmRlZmluZWQ7XG59KTogV2Vic29ja2V0UGx1Z2luT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBsdWdpbk9wdGlvbnMgPSByYXdQbHVnaW5PcHRpb24gJiYgcmF3UGx1Z2luT3B0aW9uICE9PSB0cnVlID8geyAuLi5yYXdQbHVnaW5PcHRpb24gfSA6IHt9O1xuICBjb25zdCBzZXJ2ZXJPcHRpb25zOiBOb25OdWxsYWJsZTxXZWJzb2NrZXRQbHVnaW5PcHRpb25zW1wib3B0aW9uc1wiXT4gPSBpc1BsYWluT2JqZWN0KFxuICAgIHBsdWdpbk9wdGlvbnMub3B0aW9ucyxcbiAgKVxuICAgID8geyAuLi5wbHVnaW5PcHRpb25zLm9wdGlvbnMgfVxuICAgIDoge307XG5cbiAgaWYgKE9iamVjdC5rZXlzKHNlcnZlck9wdGlvbnMpLmxlbmd0aCA+IDApIHtcbiAgICBwbHVnaW5PcHRpb25zLm9wdGlvbnMgPSBzZXJ2ZXJPcHRpb25zO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHBsdWdpbk9wdGlvbnMpLmxlbmd0aCA+IDAgPyBwbHVnaW5PcHRpb25zIDogdW5kZWZpbmVkO1xufVxuXG4vLyBoYW5kc2hha2UvYXV0aC92YWxpZGF0aW9uIOyLpO2MqOulvCBnZW5lcmljIDEwMTHroZwg662J6rCc7KeAIOyViuqzoCAxMDA4KHBvbGljeSB2aW9sYXRpb24p66GcIOunpO2Vke2VtCxcbi8vIGNsb3NlIGNvZGUgcG9saWN566W8IO2VnCDqs7Psl5DshJwg7KCV7J2Y7ZWoXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdlYlNvY2tldENsb3NlRGVzY3JpcHRvcihjYXVzZTogdW5rbm93bik6IFdlYlNvY2tldENsb3NlRGVzY3JpcHRvciB7XG4gIGlmIChpc1NvRXhjZXB0aW9uKGNhdXNlKSkge1xuICAgIGlmIChjYXVzZS5zdGF0dXNDb2RlID09PSA0MDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IDEwMDgsXG4gICAgICAgIHJlYXNvbjogXCJJbnZhbGlkIHdlYnNvY2tldCBoYW5kc2hha2VcIixcbiAgICAgICAgbG9nTGV2ZWw6IFwid2FyblwiLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoY2F1c2Uuc3RhdHVzQ29kZSA9PT0gNDAxIHx8IGNhdXNlLnN0YXR1c0NvZGUgPT09IDQwMykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMTAwOCxcbiAgICAgICAgcmVhc29uOiBcIlVuYXV0aG9yaXplZCB3ZWJzb2NrZXQgY29ubmVjdGlvblwiLFxuICAgICAgICBsb2dMZXZlbDogXCJ3YXJuXCIsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjYXVzZS5zdGF0dXNDb2RlID49IDQwMCAmJiBjYXVzZS5zdGF0dXNDb2RlIDwgNTAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiAxMDA4LFxuICAgICAgICByZWFzb246IFwiUmVqZWN0ZWQgd2Vic29ja2V0IGNvbm5lY3Rpb25cIixcbiAgICAgICAgbG9nTGV2ZWw6IFwid2FyblwiLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNvZGU6IDEwMTEsXG4gICAgcmVhc29uOiBcIldlYlNvY2tldCBoYW5kbGVyIGZhaWxlZFwiLFxuICAgIGxvZ0xldmVsOiBcImVycm9yXCIsXG4gIH07XG59XG5cbi8vIFdTIOqyveuhnOyXkOyEnOuKlCByZXBseeqwgCDsobTsnqztlZjsp4Ag7JWK7Jy866+A66GcIOygkeq3vCDsi5zrj4Trpbwg7KaJ7IucIOyXkOufrOuhnCBzdXJmYWNl7ZW0IHRyYW5zcG9ydCBtaXN1c2Xrpbwg67mo66asIOuTnOufrOuDhFxuLy8gU1NFL3JlcGx57JeQIOydmOyhtO2VmOuKlCBjb250ZXh0UHJvdmlkZXLqsIAg7J6I7Jy866m0IHdlYnNvY2tldENvbnRleHRQcm92aWRlcuulvCDrlLDroZwg7KCV7J2Y7ZWY652864qUIOqwgOydtOuTnCDsl63tlaDrj4Qg7ZWoXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViU29ja2V0UmVwbHlTdHViKCk6IEZhc3RpZnlSZXBseSB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHt9IGFzIEZhc3RpZnlSZXBseSxcbiAgICB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkZhc3RpZnlSZXBseSBpcyBub3QgYXZhaWxhYmxlIGluIHdlYnNvY2tldCBjb250ZXh0LiBEZWZpbmUgd2Vic29ja2V0Q29udGV4dFByb3ZpZGVyIGlmIHlvdXIgY29udGV4dCBzZXR1cCBkZXBlbmRzIG9uIHJlcGx5IG11dGF0aW9uLlwiLFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9LFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBZ0JBLFNBQWdCLGdDQUFnQyxFQUM5QyxZQUNBLGtDQUNBLFVBQVUsUUFBUSxJQUFJLHdCQUtrQjtDQUN4QyxJQUFJLENBQUMsa0NBQ0gsT0FBTyxFQUFFLFFBQVEsV0FBVztDQUc5QixNQUFNLGFBQWEsU0FBUyxLQUFLLElBQUksT0FBTyxPQUFPLElBQUk7Q0FDdkQsT0FBTyxPQUFPLFNBQVMsVUFBVSxLQUFLLGFBQWEsSUFBSSxFQUFFLE1BQU0sV0FBVyxJQUFJLEVBQUUsTUFBTSxNQUFNO0FBQzlGO0FBR0EsU0FBZ0IsOEJBQThCLEVBQzVDLG1CQUdxQztDQUNyQyxNQUFNLGdCQUFnQixtQkFBbUIsb0JBQW9CLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixJQUFJLENBQUM7Q0FDOUYsTUFBTSxnQkFBZ0UsY0FDcEUsY0FBYyxPQUNoQixJQUNJLEVBQUUsR0FBRyxjQUFjLFFBQVEsSUFDM0IsQ0FBQztDQUVMLElBQUksT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLFNBQVMsR0FDdEMsY0FBYyxVQUFVO0NBRzFCLE9BQU8sT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFBZ0I7QUFDakU7QUFJQSxTQUFnQixnQ0FBZ0MsT0FBMEM7Q0FDeEYsSUFBSSxjQUFjLEtBQUssR0FBRztFQUN4QixJQUFJLE1BQU0sZUFBZSxLQUN2QixPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7RUFHRixJQUFJLE1BQU0sZUFBZSxPQUFPLE1BQU0sZUFBZSxLQUNuRCxPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7RUFHRixJQUFJLE1BQU0sY0FBYyxPQUFPLE1BQU0sYUFBYSxLQUNoRCxPQUFPO0dBQ0wsTUFBTTtHQUNOLFFBQVE7R0FDUixVQUFVO0VBQ1o7Q0FFSjtDQUVBLE9BQU87RUFDTCxNQUFNO0VBQ04sUUFBUTtFQUNSLFVBQVU7Q0FDWjtBQUNGO0FBSUEsU0FBZ0IsMkJBQXlDO0NBQ3ZELE9BQU8sSUFBSSxNQUM4QyxDQUFDLEdBQ3hELEVBQ0UsTUFBTTtFQUNKLE1BQU0sSUFBSSxNQUNSLHNJQUNGO0NBQ0YsRUFDRixDQUNGO0FBQ0Y7O29CQWpHMkQ7WUFDYiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/builders.ts"],"names":[],"mappings":"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"}
@@ -305,4 +305,4 @@ const buildAuditEventCatalog = () => ({
305
305
  //#endregion
306
306
  export { buildAuditEventCatalog };
307
307
 
308
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvYXVkaXQtbG9nL2J1aWxkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW1wb3J0IHtcbiAgdHlwZSBBY2NvdW50U25hcHNob3QsXG4gIHR5cGUgQXVkaXRMb2dFdmVudCxcbiAgdHlwZSBCdWlsZGVyLFxuICB0eXBlIEJ1aWxkZXJMb2NhdGlvbixcbiAgdHlwZSBCdWlsZGVyVHJpZ2dlcixcbiAgRVZFTlRfVFlQRVMsXG4gIHR5cGUgSW52aXRhdGlvblNuYXBzaG90LFxuICB0eXBlIE1lbWJlclNuYXBzaG90LFxuICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMsXG4gIHR5cGUgT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHR5cGUgU2Vzc2lvblNuYXBzaG90LFxuICB0eXBlIFRlYW1TbmFwc2hvdCxcbiAgdHlwZSBVc2VyUHJvZmlsZUxpdGUsXG4gIHR5cGUgVXNlclNuYXBzaG90LFxuICB0eXBlIFZlcmlmaWNhdGlvblNuYXBzaG90LFxufSBmcm9tIFwiLi9ldmVudHNcIjtcblxuLy8g66qo65OgIOu5jOuNlCDqs7XthrUg7ZWE65OcKHRyaWdnZXJlZEJ5L3RyaWdnZXJDb250ZXh0LCBpcEFkZHJlc3MvY2l0eS9jb3VudHJ5L2NvdW50cnlDb2RlKeulvCDtlanshLHtlZzri6QuXG5jb25zdCBjcmVhdGVFdmVudCA9IChcbiAgYmFzZTogeyBldmVudEtleTogc3RyaW5nOyBldmVudFR5cGU6IHN0cmluZzsgZXZlbnREaXNwbGF5TmFtZT86IHN0cmluZyB9LFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uPzogQnVpbGRlckxvY2F0aW9uLFxuKTogQXVkaXRMb2dFdmVudCA9PiAoe1xuICAuLi5iYXNlLFxuICBldmVudElkOiByYW5kb21VVUlEKCksXG4gIGV2ZW50RGF0YToge1xuICAgIC4uLmRhdGEsXG4gICAgdHJpZ2dlcmVkQnk6IHRyaWdnZXIudHJpZ2dlcmVkQnksXG4gICAgdHJpZ2dlckNvbnRleHQ6IHRyaWdnZXIudHJpZ2dlckNvbnRleHQsXG4gIH0sXG4gIGlwQWRkcmVzczogbG9jYXRpb24/LmlwQWRkcmVzcyxcbiAgY2l0eTogbG9jYXRpb24/LmNpdHksXG4gIGNvdW50cnk6IGxvY2F0aW9uPy5jb3VudHJ5LFxuICBjb3VudHJ5Q29kZTogbG9jYXRpb24/LmNvdW50cnlDb2RlLFxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFjY291bnQg67mM642UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgdHlwZSBBY2NvdW50RXZlbnRCdWlsZGVycyA9IHtcbiAgdHJhY2tBY2NvdW50TGlua2luZzogQnVpbGRlcjxcbiAgICBbQWNjb3VudFNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrQWNjb3VudFVubGluazogQnVpbGRlcjxcbiAgICBbQWNjb3VudFNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrQWNjb3VudFBhc3N3b3JkQ2hhbmdlOiBCdWlsZGVyPFxuICAgIFtBY2NvdW50U25hcHNob3QsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbn07XG5cbmNvbnN0IGJ1aWxkQWNjb3VudEV2ZW50ID0gKFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgZXZlbnREaXNwbGF5TmFtZTogc3RyaW5nLFxuICBhY2NvdW50OiBBY2NvdW50U25hcHNob3QsXG4gIHVzZXI6IFVzZXJQcm9maWxlTGl0ZSxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IGFjY291bnQudXNlcklkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICB1c2VySWQ6IGFjY291bnQudXNlcklkLFxuICAgICAgdXNlckVtYWlsOiB1c2VyPy5lbWFpbCA/PyBcInVua25vd25cIixcbiAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgYWNjb3VudElkOiBhY2NvdW50LmlkLFxuICAgICAgcHJvdmlkZXJJZDogYWNjb3VudC5wcm92aWRlcklkLFxuICAgIH0sXG4gICAgdHJpZ2dlcixcbiAgICBsb2NhdGlvbixcbiAgKTtcblxuY29uc3QgYnVpbGRBY2NvdW50RXZlbnRzID0gKCk6IEFjY291bnRFdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrQWNjb3VudExpbmtpbmc6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLkFDQ09VTlRfTElOS0VELFxuICAgICAgYExpbmtlZCAke2FjY291bnQucHJvdmlkZXJJZH0gYWNjb3VudGAsXG4gICAgICBhY2NvdW50LFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja0FjY291bnRVbmxpbms6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLkFDQ09VTlRfVU5MSU5LRUQsXG4gICAgICBgVW5saW5rZWQgJHthY2NvdW50LnByb3ZpZGVySWR9IGFjY291bnRgLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tBY2NvdW50UGFzc3dvcmRDaGFuZ2U6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlBBU1NXT1JEX0NIQU5HRUQsXG4gICAgICBcIlBhc3N3b3JkIGNoYW5nZWRcIixcbiAgICAgIGFjY291bnQsXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG59KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2Vzc2lvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB0eXBlIFNlc3Npb25FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja1VzZXJTaWduZWRJbjogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrVXNlclNpZ25lZE91dDogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrU2Vzc2lvbkNyZWF0ZWQ6IEJ1aWxkZXI8XG4gICAgW1Nlc3Npb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xuICB0cmFja1Nlc3Npb25SZXZva2VkOiBCdWlsZGVyPFxuICAgIFtTZXNzaW9uU25hcHNob3QsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tTZXNzaW9uUmV2b2tlZEFsbDogQnVpbGRlcjxbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyXT47XG4gIHRyYWNrVXNlckltcGVyc29uYXRlZDogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tVc2VySW1wZXJzb25hdGlvblN0b3A6IEJ1aWxkZXI8XG4gICAgW1Nlc3Npb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrRW1haWxWZXJpZmljYXRpb25TZW50OiBCdWlsZGVyPFxuICAgIFtTZXNzaW9uU25hcHNob3QsIHsgbmFtZT86IHN0cmluZzsgZW1haWw/OiBzdHJpbmcgfSwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrRW1haWxTaWduSW5BdHRlbXB0OiBCdWlsZGVyPFxuICAgIFtcbiAgICAgIHsgZW1haWw6IHN0cmluZzsgbG9naW5NZXRob2Q6IHN0cmluZyB8IG51bGwgfSxcbiAgICAgIFVzZXJQcm9maWxlTGl0ZSxcbiAgICAgIEJ1aWxkZXJUcmlnZ2VyLFxuICAgICAgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkLFxuICAgIF1cbiAgPjtcbiAgdHJhY2tTb2NpYWxTaWduSW5BdHRlbXB0OiBCdWlsZGVyPFxuICAgIFt7IGxvZ2luTWV0aG9kOiBzdHJpbmcgfCBudWxsIH0sIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tTb2NpYWxTaWduSW5SZWRpcmVjdGlvbkF0dGVtcHQ6IEJ1aWxkZXI8XG4gICAgW3sgbG9naW5NZXRob2Q6IHN0cmluZyB8IG51bGwgfSwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xufTtcblxuY29uc3Qgc2Vzc2lvbkxpZmVjeWNsZURhdGEgPSAoc2Vzc2lvbjogU2Vzc2lvblNuYXBzaG90LCB1c2VyOiBVc2VyUHJvZmlsZUxpdGUpID0+ICh7XG4gIHVzZXJJZDogc2Vzc2lvbi51c2VySWQsXG4gIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICB1c2VyRW1haWw6IHVzZXI/LmVtYWlsID8/IFwidW5rbm93blwiLFxuICBzZXNzaW9uSWQ6IHNlc3Npb24uaWQsXG4gIGxvZ2luTWV0aG9kOiBzZXNzaW9uLmxvZ2luTWV0aG9kID8/IFwidW5rbm93blwiLFxuICB1c2VyQWdlbnQ6IHNlc3Npb24udXNlckFnZW50LFxufSk7XG5cbmNvbnN0IGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50ID0gKFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgZXZlbnREaXNwbGF5TmFtZTogc3RyaW5nLFxuICBzZXNzaW9uOiBTZXNzaW9uU25hcHNob3QsXG4gIHVzZXI6IFVzZXJQcm9maWxlTGl0ZSxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IHNlc3Npb24udXNlcklkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICBzZXNzaW9uTGlmZWN5Y2xlRGF0YShzZXNzaW9uLCB1c2VyKSxcbiAgICB0cmlnZ2VyLFxuICAgIGxvY2F0aW9uLFxuICApO1xuXG5jb25zdCBidWlsZEltcGVyc29uYXRpb25FdmVudCA9IChcbiAgZXZlbnRUeXBlOiBzdHJpbmcsXG4gIGV2ZW50RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgc2Vzc2lvbjogU2Vzc2lvblNuYXBzaG90LFxuICB1c2VyOiBVc2VyUHJvZmlsZUxpdGUsXG4gIGltcGVyc29uYXRvcjogVXNlclByb2ZpbGVMaXRlLFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbiAgbG9jYXRpb246IEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZCxcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogc2Vzc2lvbi51c2VySWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIHtcbiAgICAgIC4uLnNlc3Npb25MaWZlY3ljbGVEYXRhKHNlc3Npb24sIHVzZXIpLFxuICAgICAgaW1wZXJzb25hdGVkQnk6IGltcGVyc29uYXRvcj8ubmFtZSA/PyBpbXBlcnNvbmF0b3I/LmVtYWlsID8/IHNlc3Npb24uaW1wZXJzb25hdGVkQnksXG4gICAgICBpbXBlcnNvbmF0ZWRCeUlkOiBzZXNzaW9uLmltcGVyc29uYXRlZEJ5LFxuICAgIH0sXG4gICAgdHJpZ2dlcixcbiAgICBsb2NhdGlvbixcbiAgKTtcblxuY29uc3QgU0lHTl9JTl9GQUlMRURfRElTUExBWSA9IFwiVXNlciBzaWduLWluIGF0dGVtcHQgZmFpbGVkXCI7XG5cbmNvbnN0IGJ1aWxkU2Vzc2lvbkV2ZW50cyA9ICgpOiBTZXNzaW9uRXZlbnRCdWlsZGVycyA9PiAoe1xuICB0cmFja1VzZXJTaWduZWRJbjogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9TSUdORURfSU4sXG4gICAgICBgU2lnbmVkIGluIHZpYSAke3Nlc3Npb24ubG9naW5NZXRob2QgPz8gXCJ1bmtub3duXCJ9YCxcbiAgICAgIHNlc3Npb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrVXNlclNpZ25lZE91dDogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9TSUdORURfT1VULFxuICAgICAgXCJVc2VyIHNpZ25lZCBvdXRcIixcbiAgICAgIHNlc3Npb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrU2Vzc2lvbkNyZWF0ZWQ6IChzZXNzaW9uLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFNlc3Npb25MaWZlY3ljbGVFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlNFU1NJT05fQ1JFQVRFRCxcbiAgICAgIFwiU2Vzc2lvbiBjcmVhdGVkXCIsXG4gICAgICBzZXNzaW9uLFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1Nlc3Npb25SZXZva2VkOiAoc2Vzc2lvbiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRTZXNzaW9uTGlmZWN5Y2xlRXZlbnQoXG4gICAgICBFVkVOVF9UWVBFUy5TRVNTSU9OX1JFVk9LRUQsXG4gICAgICBcIlNlc3Npb24gcmV2b2tlZFwiLFxuICAgICAgc2Vzc2lvbixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tTZXNzaW9uUmV2b2tlZEFsbDogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBzZXNzaW9uLnVzZXJJZCxcbiAgICAgICAgZXZlbnRUeXBlOiBFVkVOVF9UWVBFUy5BTExfU0VTU0lPTlNfUkVWT0tFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogXCJBbGwgc2Vzc2lvbnMgcmV2b2tlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdXNlcklkOiBzZXNzaW9uLnVzZXJJZCxcbiAgICAgICAgdXNlck5hbWU6IHVzZXI/Lm5hbWUgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJFbWFpbDogdXNlcj8uZW1haWwgPz8gXCJ1bmtub3duXCIsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja1VzZXJJbXBlcnNvbmF0ZWQ6IChzZXNzaW9uLCB1c2VyLCBpbXBlcnNvbmF0b3IsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkSW1wZXJzb25hdGlvbkV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9JTVBFUlNPTkFURUQsXG4gICAgICBcIlVzZXIgaW1wZXJzb25hdGVkXCIsXG4gICAgICBzZXNzaW9uLFxuICAgICAgdXNlcixcbiAgICAgIGltcGVyc29uYXRvcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1VzZXJJbXBlcnNvbmF0aW9uU3RvcDogKHNlc3Npb24sIHVzZXIsIGltcGVyc29uYXRvciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRJbXBlcnNvbmF0aW9uRXZlbnQoXG4gICAgICBFVkVOVF9UWVBFUy5VU0VSX0lNUEVSU09OQVRFRF9TVE9QUEVELFxuICAgICAgXCJVc2VyIGltcGVyc29uYXRpb24gc3RvcHBlZFwiLFxuICAgICAgc2Vzc2lvbixcbiAgICAgIHVzZXIsXG4gICAgICBpbXBlcnNvbmF0b3IsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tFbWFpbFZlcmlmaWNhdGlvblNlbnQ6IChzZXNzaW9uLCB1c2VyLCB0cmlnZ2VyKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogc2Vzc2lvbi51c2VySWQsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTlQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiVmVyaWZpY2F0aW9uIGVtYWlsIHNlbnRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbi51c2VySWQsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgIHVzZXJFbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgc2Vzc2lvbklkOiBzZXNzaW9uLmlkLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgLy8g7KO87J2YOiDquLDsobQg64+Z7J6RIOycoOyngCDigJQgYG5hbWVOYW1lYCDsmKTtg4Ag7ZWE65Oc66qF64+EIOq3uOuMgOuhnCDrs7TsobTtlZzri6QuXG4gIHRyYWNrRW1haWxTaWduSW5BdHRlbXB0OiAoYXR0ZW1wdCwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiB1c2VyPy5pZCA/PyBcInVua25vd25cIixcbiAgICAgICAgZXZlbnRUeXBlOiBFVkVOVF9UWVBFUy5VU0VSX1NJR05fSU5fRkFJTEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBTSUdOX0lOX0ZBSUxFRF9ESVNQTEFZLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdXNlcklkOiB1c2VyPy5pZCA/PyBcInVua25vd25cIixcbiAgICAgICAgbmFtZU5hbWU6IHVzZXI/Lm5hbWUgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJFbWFpbDogYXR0ZW1wdC5lbWFpbCxcbiAgICAgICAgbG9naW5NZXRob2Q6IGF0dGVtcHQubG9naW5NZXRob2QsXG4gICAgICB9LFxuICAgICAgeyB0cmlnZ2VyZWRCeTogdXNlcj8uaWQgPz8gdHJpZ2dlci50cmlnZ2VyZWRCeSwgdHJpZ2dlckNvbnRleHQ6IHRyaWdnZXIudHJpZ2dlckNvbnRleHQgfSxcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrU29jaWFsU2lnbkluQXR0ZW1wdDogKGF0dGVtcHQsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuVVNFUl9TSUdOX0lOX0ZBSUxFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogU0lHTl9JTl9GQUlMRURfRElTUExBWSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgICB1c2VyRW1haWw6IHVzZXI/LmVtYWlsID8/IFwidW5rbm93blwiLFxuICAgICAgICBsb2dpbk1ldGhvZDogYXR0ZW1wdC5sb2dpbk1ldGhvZCxcbiAgICAgIH0sXG4gICAgICB7IHRyaWdnZXJlZEJ5OiB1c2VyPy5pZCA/PyB0cmlnZ2VyLnRyaWdnZXJlZEJ5LCB0cmlnZ2VyQ29udGV4dDogdHJpZ2dlci50cmlnZ2VyQ29udGV4dCB9LFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgLy8g7KO87J2YOiDquLDsobQg64+Z7J6RIOycoOyngCDigJQgdXNlckVtYWlsIOqwkuydtCB1c2VyPy5pZOuhnCDshKTsoJXrkJjripQg6riw7KG0IOuPmeyekeuPhCDqt7jrjIDroZwg67O07KG07ZWc64ukLlxuICB0cmFja1NvY2lhbFNpZ25JblJlZGlyZWN0aW9uQXR0ZW1wdDogKGF0dGVtcHQsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuVVNFUl9TSUdOX0lOX0ZBSUxFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogU0lHTl9JTl9GQUlMRURfRElTUExBWSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgICB1c2VyRW1haWw6IHVzZXI/LmlkID8/IFwidW5rbm93blwiLFxuICAgICAgICBsb2dpbk1ldGhvZDogYXR0ZW1wdC5sb2dpbk1ldGhvZCxcbiAgICAgIH0sXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbn0pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVc2VyIOu5jOuNlFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IHR5cGUgVXNlckV2ZW50QnVpbGRlcnMgPSB7XG4gIHRyYWNrVXNlclNpZ25lZFVwOiBCdWlsZGVyPFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdPjtcbiAgdHJhY2tVc2VyRGVsZXRlZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG4gIHRyYWNrVXNlclByb2ZpbGVVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtVc2VyU25hcHNob3QsIHN0cmluZ1tdLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xuICB0cmFja1VzZXJQcm9maWxlSW1hZ2VVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrVXNlckJhbm5lZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG4gIHRyYWNrVXNlclVuQmFubmVkOiBCdWlsZGVyPFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdPjtcbiAgdHJhY2tVc2VyRW1haWxWZXJpZmllZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG59O1xuXG5jb25zdCB1c2VySWRlbnRpdHlEYXRhID0gKHVzZXI6IFVzZXJTbmFwc2hvdCkgPT4gKHtcbiAgdXNlcklkOiB1c2VyLmlkLFxuICB1c2VyRW1haWw6IHVzZXIuZW1haWwsXG4gIHVzZXJOYW1lOiB1c2VyLm5hbWUsXG59KTtcblxuY29uc3QgYnVpbGRVc2VyRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIHVzZXI6IFVzZXJTbmFwc2hvdCxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4gIGV4dHJhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IHVzZXIuaWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIHsgLi4udXNlcklkZW50aXR5RGF0YSh1c2VyKSwgLi4uZXh0cmEgfSxcbiAgICB0cmlnZ2VyLFxuICAgIGxvY2F0aW9uLFxuICApO1xuXG5jb25zdCBidWlsZFVzZXJFdmVudHMgPSAoKTogVXNlckV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tVc2VyU2lnbmVkVXA6ICh1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFVzZXJFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlVTRVJfQ1JFQVRFRCxcbiAgICAgIGAke3VzZXIubmFtZSB8fCB1c2VyLmVtYWlsfSBzaWduZWQgdXBgLFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1VzZXJEZWxldGVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuVVNFUl9ERUxFVEVELCBcIlVzZXIgZGVsZXRlZFwiLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbiksXG4gIHRyYWNrVXNlclByb2ZpbGVVcGRhdGVkOiAodXNlciwgdXBkYXRlZEZpZWxkcywgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuUFJPRklMRV9VUERBVEVELCBcIlByb2ZpbGUgdXBkYXRlZFwiLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbiwge1xuICAgICAgdXBkYXRlZEZpZWxkcyxcbiAgICB9KSxcbiAgdHJhY2tVc2VyUHJvZmlsZUltYWdlVXBkYXRlZDogKHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkVXNlckV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuUFJPRklMRV9JTUFHRV9VUERBVEVELFxuICAgICAgXCJQcm9maWxlIGltYWdlIHVwZGF0ZWRcIixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tVc2VyQmFubmVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+IHtcbiAgICBjb25zdCByZWFzb25TdWZmaXggPSB1c2VyLmJhblJlYXNvbiA/IGA6ICR7dXNlci5iYW5SZWFzb259YCA6IFwiXCI7XG4gICAgY29uc3QgZXhwaXJlc1N1ZmZpeCA9IHVzZXIuYmFuRXhwaXJlcyA/IGAgKHVudGlsICR7dXNlci5iYW5FeHBpcmVzLnRvSVNPU3RyaW5nKCl9KWAgOiBcIlwiO1xuICAgIHJldHVybiBidWlsZFVzZXJFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlVTRVJfQkFOTkVELFxuICAgICAgYFVzZXIgYmFubmVkJHtyZWFzb25TdWZmaXh9JHtleHBpcmVzU3VmZml4fWAsXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICAge1xuICAgICAgICBiYW5uZWQ6IHVzZXIuYmFubmVkLFxuICAgICAgICBiYW5SZWFzb246IHVzZXIuYmFuUmVhc29uLFxuICAgICAgICBiYW5FeHBpcmVzOiB1c2VyLmJhbkV4cGlyZXMsXG4gICAgICB9LFxuICAgICk7XG4gIH0sXG4gIHRyYWNrVXNlclVuQmFubmVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuVVNFUl9VTkJBTk5FRCwgXCJVc2VyIHVuYmFubmVkXCIsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uLCB7XG4gICAgICBiYW5uZWQ6IHVzZXIuYmFubmVkLFxuICAgIH0pLFxuICB0cmFja1VzZXJFbWFpbFZlcmlmaWVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuRU1BSUxfVkVSSUZJRUQsIFwiRW1haWwgdmVyaWZpZWRcIiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pLFxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZlcmlmaWNhdGlvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB0eXBlIFZlcmlmaWNhdGlvbkV2ZW50QnVpbGRlcnMgPSB7XG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3Q6IEJ1aWxkZXI8XG4gICAgW1ZlcmlmaWNhdGlvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3RDb21wbGV0aW9uOiBCdWlsZGVyPFxuICAgIFtWZXJpZmljYXRpb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xufTtcblxuY29uc3QgYnVpbGRWZXJpZmljYXRpb25FdmVudCA9IChcbiAgZXZlbnRUeXBlOiBzdHJpbmcsXG4gIGV2ZW50RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgdmVyaWZpY2F0aW9uOiBWZXJpZmljYXRpb25TbmFwc2hvdCxcbiAgdXNlcjogVXNlclByb2ZpbGVMaXRlLFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbiAgbG9jYXRpb246IEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZCxcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogdmVyaWZpY2F0aW9uLnZhbHVlLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICB1c2VySWQ6IHZlcmlmaWNhdGlvbi52YWx1ZSxcbiAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgdXNlckVtYWlsOiB1c2VyPy5lbWFpbCA/PyBcInVua25vd25cIixcbiAgICB9LFxuICAgIHRyaWdnZXIsXG4gICAgbG9jYXRpb24sXG4gICk7XG5cbmNvbnN0IGJ1aWxkVmVyaWZpY2F0aW9uRXZlbnRzID0gKCk6IFZlcmlmaWNhdGlvbkV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tQYXNzd29yZFJlc2V0UmVxdWVzdDogKHZlcmlmaWNhdGlvbiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRWZXJpZmljYXRpb25FdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlBBU1NXT1JEX1JFU0VUX1JFUVVFU1RFRCxcbiAgICAgIFwiUGFzc3dvcmQgcmVzZXQgcmVxdWVzdGVkXCIsXG4gICAgICB2ZXJpZmljYXRpb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3RDb21wbGV0aW9uOiAodmVyaWZpY2F0aW9uLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFZlcmlmaWNhdGlvbkV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuUEFTU1dPUkRfUkVTRVRfQ09NUExFVEVELFxuICAgICAgXCJQYXNzd29yZCByZXNldCBjb21wbGV0ZWRcIixcbiAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbn0pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPcmdhbml6YXRpb24gLyBUZWFtIC8gTWVtYmVyIC8gSW52aXRhdGlvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmNvbnN0IG9yZ2FuaXphdGlvbklkZW50aXR5RGF0YSA9IChvcmdhbml6YXRpb246IE9yZ2FuaXphdGlvblNuYXBzaG90KSA9PiAoe1xuICBvcmdhbml6YXRpb25JZDogb3JnYW5pemF0aW9uLmlkLFxuICBvcmdhbml6YXRpb25TbHVnOiBvcmdhbml6YXRpb24uc2x1ZyxcbiAgb3JnYW5pemF0aW9uTmFtZTogb3JnYW5pemF0aW9uLm5hbWUsXG59KTtcblxuZXhwb3J0IHR5cGUgT3JnYW5pemF0aW9uRXZlbnRCdWlsZGVycyA9IHtcbiAgdHJhY2tPcmdhbml6YXRpb25DcmVhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdPjtcbiAgdHJhY2tPcmdhbml6YXRpb25VcGRhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdPjtcbn07XG5cbmNvbnN0IGJ1aWxkT3JnYW5pemF0aW9uRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRyaWdnZXI6IEJ1aWxkZXJUcmlnZ2VyLFxuKTogQXVkaXRMb2dFdmVudCA9PlxuICBjcmVhdGVFdmVudChcbiAgICB7IGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIG9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgIHRyaWdnZXIsXG4gICk7XG5cbmNvbnN0IGJ1aWxkT3JnYW5pemF0aW9uRXZlbnRzID0gKCk6IE9yZ2FuaXphdGlvbkV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tPcmdhbml6YXRpb25DcmVhdGVkOiAob3JnYW5pemF0aW9uLCB0cmlnZ2VyKSA9PlxuICAgIGJ1aWxkT3JnYW5pemF0aW9uRXZlbnQoXG4gICAgICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX0NSRUFURUQsXG4gICAgICBcIk9yZ2FuaXphdGlvbiBDcmVhdGVkXCIsXG4gICAgICBvcmdhbml6YXRpb24sXG4gICAgICB0cmlnZ2VyLFxuICAgICksXG4gIHRyYWNrT3JnYW5pemF0aW9uVXBkYXRlZDogKG9yZ2FuaXphdGlvbiwgdHJpZ2dlcikgPT5cbiAgICBidWlsZE9yZ2FuaXphdGlvbkV2ZW50KFxuICAgICAgT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9VUERBVEVELFxuICAgICAgXCJPcmdhbml6YXRpb24gVXBkYXRlZFwiLFxuICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxufSk7XG5cbmV4cG9ydCB0eXBlIFRlYW1FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1DcmVhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1VcGRhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1EZWxldGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1NZW1iZXJBZGRlZDogQnVpbGRlcjxcbiAgICBbXG4gICAgICBPcmdhbml6YXRpb25TbmFwc2hvdCxcbiAgICAgIFRlYW1TbmFwc2hvdCxcbiAgICAgIFVzZXJTbmFwc2hvdCxcbiAgICAgIHsgdGVhbUlkOiBzdHJpbmc7IHVzZXJJZDogc3RyaW5nIH0sXG4gICAgICBCdWlsZGVyVHJpZ2dlcixcbiAgICBdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uVGVhbU1lbWJlclJlbW92ZWQ6IEJ1aWxkZXI8XG4gICAgW1xuICAgICAgT3JnYW5pemF0aW9uU25hcHNob3QsXG4gICAgICBUZWFtU25hcHNob3QsXG4gICAgICBVc2VyU25hcHNob3QsXG4gICAgICB7IHRlYW1JZDogc3RyaW5nOyB1c2VySWQ6IHN0cmluZyB9LFxuICAgICAgQnVpbGRlclRyaWdnZXIsXG4gICAgXVxuICA+O1xufTtcblxuY29uc3QgYnVpbGRUZWFtTGlmZWN5Y2xlRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRlYW06IFRlYW1TbmFwc2hvdCxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCwgZXZlbnRUeXBlLCBldmVudERpc3BsYXlOYW1lIH0sXG4gICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgdGVhbUlkOiB0ZWFtLmlkLCB0ZWFtTmFtZTogdGVhbS5uYW1lIH0sXG4gICAgdHJpZ2dlcixcbiAgKTtcblxuY29uc3QgYnVpbGRUZWFtTWVtYmVyRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRlYW06IFRlYW1TbmFwc2hvdCxcbiAgdXNlcjogVXNlclNuYXBzaG90LFxuICB0ZWFtTWVtYmVyOiB7IHRlYW1JZDogc3RyaW5nOyB1c2VySWQ6IHN0cmluZyB9LFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogb3JnYW5pemF0aW9uLmlkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgIHRlYW1JZDogdGVhbU1lbWJlci50ZWFtSWQsXG4gICAgICB0ZWFtTmFtZTogdGVhbS5uYW1lLFxuICAgICAgdXNlcmlkOiB0ZWFtTWVtYmVyLnVzZXJJZCxcbiAgICAgIG1lbWJlck5hbWU6IHVzZXIubmFtZSxcbiAgICB9LFxuICAgIHRyaWdnZXIsXG4gICk7XG5cbmNvbnN0IGJ1aWxkVGVhbUV2ZW50cyA9ICgpOiBUZWFtRXZlbnRCdWlsZGVycyA9PiAoe1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1DcmVhdGVkOiAob3JnYW5pemF0aW9uLCB0ZWFtLCB0cmlnZ2VyKSA9PlxuICAgIGJ1aWxkVGVhbUxpZmVjeWNsZUV2ZW50KFxuICAgICAgT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9URUFNX0NSRUFURUQsXG4gICAgICBcIk9yZ2FuaXphdGlvbiB0ZWFtIGNyZWF0ZWRcIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB0cmlnZ2VyLFxuICAgICksXG4gIHRyYWNrT3JnYW5pemF0aW9uVGVhbVVwZGF0ZWQ6IChvcmdhbml6YXRpb24sIHRlYW0sIHRyaWdnZXIpID0+XG4gICAgYnVpbGRUZWFtTGlmZWN5Y2xlRXZlbnQoXG4gICAgICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX1RFQU1fVVBEQVRFRCxcbiAgICAgIFwiT3JnYW5pemF0aW9uIHRlYW0gdXBkYXRlZFwiLFxuICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgdGVhbSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25UZWFtRGVsZXRlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1MaWZlY3ljbGVFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9ERUxFVEVELFxuICAgICAgXCJPcmdhbml6YXRpb24gdGVhbSBkZWxldGVkXCIsXG4gICAgICBvcmdhbml6YXRpb24sXG4gICAgICB0ZWFtLFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvblRlYW1NZW1iZXJBZGRlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdXNlciwgdGVhbU1lbWJlciwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1NZW1iZXJFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfQURERUQsXG4gICAgICBcIlVzZXIgYWRkZWQgdG8gb3JnYW5pemF0aW9uIHRlYW1cIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB1c2VyLFxuICAgICAgdGVhbU1lbWJlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25UZWFtTWVtYmVyUmVtb3ZlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdXNlciwgdGVhbU1lbWJlciwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1NZW1iZXJFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfUkVNT1ZFRCxcbiAgICAgIFwiVXNlciByZW1vdmVkIGZyb20gb3JnYW5pemF0aW9uIHRlYW1cIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB1c2VyLFxuICAgICAgdGVhbU1lbWJlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBNZW1iZXJFdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckFkZGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgTWVtYmVyU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVyUmVtb3ZlZDogQnVpbGRlcjxcbiAgICBbT3JnYW5pemF0aW9uU25hcHNob3QsIE1lbWJlclNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJvbGVVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgTWVtYmVyU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgc3RyaW5nLCBCdWlsZGVyVHJpZ2dlcl1cbiAgPjtcbn07XG5cbmNvbnN0IG1lbWJlckNvcmVEYXRhID0gKG1lbWJlcjogTWVtYmVyU25hcHNob3QsIHVzZXI6IFVzZXJTbmFwc2hvdCkgPT4gKHtcbiAgdXNlcklkOiBtZW1iZXIudXNlcklkLFxuICBtZW1iZXJOYW1lOiB1c2VyLm5hbWUsXG4gIHJvbGU6IG1lbWJlci5yb2xlLFxuICBtZW1iZXJJZDogbWVtYmVyLmlkLFxuICBtZW1iZXJFbWFpbDogdXNlci5lbWFpbCxcbn0pO1xuXG5jb25zdCBidWlsZE1lbWJlckV2ZW50cyA9ICgpOiBNZW1iZXJFdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVyQWRkZWQ6IChvcmdhbml6YXRpb24sIG1lbWJlciwgdXNlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9BRERFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogXCJNZW1iZXIgYWRkZWQgdG8gb3JnYW5pemF0aW9uXCIsXG4gICAgICB9LFxuICAgICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgLi4ubWVtYmVyQ29yZURhdGEobWVtYmVyLCB1c2VyKSB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJlbW92ZWQ6IChvcmdhbml6YXRpb24sIG1lbWJlciwgdXNlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9SRU1PVkVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIk1lbWJlciByZW1vdmVkIGZyb20gb3JnYW5pemF0aW9uXCIsXG4gICAgICB9LFxuICAgICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgLi4ubWVtYmVyQ29yZURhdGEobWVtYmVyLCB1c2VyKSB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJvbGVVcGRhdGVkOiAob3JnYW5pemF0aW9uLCBtZW1iZXIsIHVzZXIsIHByZXZpb3VzUm9sZSwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9ST0xFX1VQREFURUQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiT3JnYW5pemF0aW9uIG1lbWJlciByb2xlIHVwZGF0ZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICB1c2VySWQ6IG1lbWJlci51c2VySWQsXG4gICAgICAgIG1lbWJlck5hbWU6IHVzZXIubmFtZSxcbiAgICAgICAgbmV3Um9sZTogbWVtYmVyLnJvbGUsXG4gICAgICAgIG9sZFJvbGU6IHByZXZpb3VzUm9sZSxcbiAgICAgICAgbWVtYmVySWQ6IG1lbWJlci5pZCxcbiAgICAgICAgbWVtYmVyRW1haWw6IHVzZXIuZW1haWwsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxufSk7XG5cbmV4cG9ydCB0eXBlIEludml0YXRpb25FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZWQ6IEJ1aWxkZXI8XG4gICAgW09yZ2FuaXphdGlvblNuYXBzaG90LCBJbnZpdGF0aW9uU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVySW52aXRlQWNjZXB0ZWQ6IEJ1aWxkZXI8XG4gICAgW09yZ2FuaXphdGlvblNuYXBzaG90LCBJbnZpdGF0aW9uU25hcHNob3QsIE1lbWJlclNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZVJlamVjdGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgSW52aXRhdGlvblNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZUNhbmNlbGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgSW52aXRhdGlvblNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xufTtcblxuY29uc3QgaW52aXRlZURhdGEgPSAoaW52aXRhdGlvbjogSW52aXRhdGlvblNuYXBzaG90KSA9PiAoe1xuICBpbnZpdGVlSWQ6IGludml0YXRpb24uaWQsXG4gIGludml0ZWVFbWFpbDogaW52aXRhdGlvbi5lbWFpbCxcbiAgaW52aXRlZVJvbGU6IGludml0YXRpb24ucm9sZSxcbiAgaW52aXRlZVRlYW1JZDogaW52aXRhdGlvbi50ZWFtSWQsXG59KTtcblxuY29uc3QgYnVpbGRJbnZpdGF0aW9uRXZlbnRzID0gKCk6IEludml0YXRpb25FdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVySW52aXRlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgaW52aXRlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIlVzZXIgaW52aXRlZCB0byBvcmdhbml6YXRpb25cIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICAuLi5pbnZpdGVlRGF0YShpbnZpdGF0aW9uKSxcbiAgICAgICAgaW52aXRlcklkOiBpbnZpdGVyLmlkLFxuICAgICAgICBpbnZpdGVyTmFtZTogaW52aXRlci5uYW1lLFxuICAgICAgICBpbnZpdGVyRW1haWw6IGludml0ZXIuZW1haWwsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZUFjY2VwdGVkOiAob3JnYW5pemF0aW9uLCBpbnZpdGF0aW9uLCBtZW1iZXIsIGFjY2VwdGVkQnksIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsXG4gICAgICAgIGV2ZW50VHlwZTogT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFX0FDQ0VQVEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIlVzZXIgYWNjZXB0ZWQgaW52aXRlIG9yZ2FuaXphdGlvbiBpbnZpdGVcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICAuLi5pbnZpdGVlRGF0YShpbnZpdGF0aW9uKSxcbiAgICAgICAgYWNjZXB0ZWRCeUlkOiBhY2NlcHRlZEJ5LmlkLFxuICAgICAgICBhY2NlcHRlZEJ5RW1haWw6IGFjY2VwdGVkQnkuZW1haWwsXG4gICAgICAgIGFjY2VwdGVkQnlOYW1lOiBhY2NlcHRlZEJ5Lm5hbWUsXG4gICAgICAgIG1lbWJlcklkOiBtZW1iZXIuaWQsXG4gICAgICAgIG1lbWJlclJvbGU6IG1lbWJlci5yb2xlLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25NZW1iZXJJbnZpdGVSZWplY3RlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgcmVqZWN0ZWRCeSwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfUkVKRUNURUQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiVXNlciByZWplY3RlZCBvcmdhbml6YXRpb24gaW52aXRlXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgICAgLi4uaW52aXRlZURhdGEoaW52aXRhdGlvbiksXG4gICAgICAgIHJlamVjdGVkQnlJZDogcmVqZWN0ZWRCeS5pZCxcbiAgICAgICAgcmVqZWN0ZWRCeUVtYWlsOiByZWplY3RlZEJ5LmVtYWlsLFxuICAgICAgICByZWplY3RlZEJ5TmFtZTogcmVqZWN0ZWRCeS5uYW1lLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25NZW1iZXJJbnZpdGVDYW5jZWxlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgY2FuY2VsbGVkQnksIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsXG4gICAgICAgIGV2ZW50VHlwZTogT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFX0NBTkNFTEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIk9yZ2FuaXphdGlvbiBpbnZpdGUgY2FuY2VsbGVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgICAgLi4uaW52aXRlZURhdGEoaW52aXRhdGlvbiksXG4gICAgICAgIGNhbmNlbGxlZEJ5SWQ6IGNhbmNlbGxlZEJ5LmlkLFxuICAgICAgICBjYW5jZWxsZWRCeU5hbWU6IGNhbmNlbGxlZEJ5Lm5hbWUsXG4gICAgICAgIGNhbmNlbGxlZEJ5RW1haWw6IGNhbmNlbGxlZEJ5LmVtYWlsLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbn0pO1xuXG4vLyBUT0RPKHNlY3VyaXR5KTogc29uYW11LmNvbmZpZ+ydmCBzZWN1cml0eSDsmLXshZjsnbQg64+E7J6F65CY66m0XG4vLyBTZWN1cml0eUV2ZW50QnVpbGRlcnMgKHRyYWNrU2VjdXJpdHlCbG9ja2VkL0FsbG93ZWQvQ2hhbGxlbmdlZC9TdGFsZUFjY291bnQpIOyEueyFmOydhCDstpTqsIDtlZzri6QuXG4vLyBkYXNo7J2YIGNyZWF0ZVNlY3VyaXR5Q2xpZW50L29uU2VjdXJpdHlFdmVudCDqtaztmITsnYAg7ZiE7J6sIHNjb3BlIG91dCAoUjEpLlxuXG5leHBvcnQgdHlwZSBBdWRpdEV2ZW50QnVpbGRlckNhdGFsb2cgPSB7XG4gIGFjY291bnQ6IEFjY291bnRFdmVudEJ1aWxkZXJzO1xuICBzZXNzaW9uOiBTZXNzaW9uRXZlbnRCdWlsZGVycztcbiAgdXNlcjogVXNlckV2ZW50QnVpbGRlcnM7XG4gIHZlcmlmaWNhdGlvbjogVmVyaWZpY2F0aW9uRXZlbnRCdWlsZGVycztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb25FdmVudEJ1aWxkZXJzO1xuICB0ZWFtOiBUZWFtRXZlbnRCdWlsZGVycztcbiAgbWVtYmVyOiBNZW1iZXJFdmVudEJ1aWxkZXJzO1xuICBpbnZpdGF0aW9uOiBJbnZpdGF0aW9uRXZlbnRCdWlsZGVycztcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEF1ZGl0RXZlbnRDYXRhbG9nID0gKCk6IEF1ZGl0RXZlbnRCdWlsZGVyQ2F0YWxvZyA9PiAoe1xuICBhY2NvdW50OiBidWlsZEFjY291bnRFdmVudHMoKSxcbiAgc2Vzc2lvbjogYnVpbGRTZXNzaW9uRXZlbnRzKCksXG4gIHVzZXI6IGJ1aWxkVXNlckV2ZW50cygpLFxuICB2ZXJpZmljYXRpb246IGJ1aWxkVmVyaWZpY2F0aW9uRXZlbnRzKCksXG4gIG9yZ2FuaXphdGlvbjogYnVpbGRPcmdhbml6YXRpb25FdmVudHMoKSxcbiAgdGVhbTogYnVpbGRUZWFtRXZlbnRzKCksXG4gIG1lbWJlcjogYnVpbGRNZW1iZXJFdmVudHMoKSxcbiAgaW52aXRhdGlvbjogYnVpbGRJbnZpdGF0aW9uRXZlbnRzKCksXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLE1BQU0sZUFDSixNQUNBLE1BQ0EsU0FDQSxjQUNtQjtDQUNuQixHQUFHO0NBQ0gsU0FBUyxXQUFXO0NBQ3BCLFdBQVc7RUFDVCxHQUFHO0VBQ0gsYUFBYSxRQUFRO0VBQ3JCLGdCQUFnQixRQUFRO0NBQzFCO0NBQ0EsV0FBVyxVQUFVO0NB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
308
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvYXVkaXQtbG9nL2J1aWxkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW1wb3J0IHtcbiAgdHlwZSBBY2NvdW50U25hcHNob3QsXG4gIHR5cGUgQXVkaXRFdmVudERhdGEsXG4gIHR5cGUgQXVkaXRMb2dFdmVudCxcbiAgdHlwZSBCdWlsZGVyLFxuICB0eXBlIEJ1aWxkZXJMb2NhdGlvbixcbiAgdHlwZSBCdWlsZGVyVHJpZ2dlcixcbiAgRVZFTlRfVFlQRVMsXG4gIHR5cGUgSW52aXRhdGlvblNuYXBzaG90LFxuICB0eXBlIE1lbWJlclNuYXBzaG90LFxuICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMsXG4gIHR5cGUgT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHR5cGUgU2Vzc2lvblNuYXBzaG90LFxuICB0eXBlIFRlYW1TbmFwc2hvdCxcbiAgdHlwZSBVc2VyUHJvZmlsZUxpdGUsXG4gIHR5cGUgVXNlclNuYXBzaG90LFxuICB0eXBlIFZlcmlmaWNhdGlvblNuYXBzaG90LFxufSBmcm9tIFwiLi9ldmVudHNcIjtcblxuLy8g66qo65OgIOu5jOuNlCDqs7XthrUg7ZWE65OcKHRyaWdnZXJlZEJ5L3RyaWdnZXJDb250ZXh0LCBpcEFkZHJlc3MvY2l0eS9jb3VudHJ5L2NvdW50cnlDb2RlKeulvCDtlanshLHtlZzri6QuXG5jb25zdCBjcmVhdGVFdmVudCA9IChcbiAgYmFzZTogeyBldmVudEtleTogc3RyaW5nOyBldmVudFR5cGU6IHN0cmluZzsgZXZlbnREaXNwbGF5TmFtZT86IHN0cmluZyB9LFxuICBkYXRhOiBBdWRpdEV2ZW50RGF0YSxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uPzogQnVpbGRlckxvY2F0aW9uLFxuKTogQXVkaXRMb2dFdmVudCA9PiAoe1xuICAuLi5iYXNlLFxuICBldmVudElkOiByYW5kb21VVUlEKCksXG4gIGV2ZW50RGF0YToge1xuICAgIC4uLmRhdGEsXG4gICAgdHJpZ2dlcmVkQnk6IHRyaWdnZXIudHJpZ2dlcmVkQnksXG4gICAgdHJpZ2dlckNvbnRleHQ6IHRyaWdnZXIudHJpZ2dlckNvbnRleHQsXG4gIH0sXG4gIGlwQWRkcmVzczogbG9jYXRpb24/LmlwQWRkcmVzcyxcbiAgY2l0eTogbG9jYXRpb24/LmNpdHksXG4gIGNvdW50cnk6IGxvY2F0aW9uPy5jb3VudHJ5LFxuICBjb3VudHJ5Q29kZTogbG9jYXRpb24/LmNvdW50cnlDb2RlLFxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFjY291bnQg67mM642UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgdHlwZSBBY2NvdW50RXZlbnRCdWlsZGVycyA9IHtcbiAgdHJhY2tBY2NvdW50TGlua2luZzogQnVpbGRlcjxcbiAgICBbQWNjb3VudFNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrQWNjb3VudFVubGluazogQnVpbGRlcjxcbiAgICBbQWNjb3VudFNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrQWNjb3VudFBhc3N3b3JkQ2hhbmdlOiBCdWlsZGVyPFxuICAgIFtBY2NvdW50U25hcHNob3QsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbn07XG5cbmNvbnN0IGJ1aWxkQWNjb3VudEV2ZW50ID0gKFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgZXZlbnREaXNwbGF5TmFtZTogc3RyaW5nLFxuICBhY2NvdW50OiBBY2NvdW50U25hcHNob3QsXG4gIHVzZXI6IFVzZXJQcm9maWxlTGl0ZSxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IGFjY291bnQudXNlcklkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICB1c2VySWQ6IGFjY291bnQudXNlcklkLFxuICAgICAgdXNlckVtYWlsOiB1c2VyPy5lbWFpbCA/PyBcInVua25vd25cIixcbiAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgYWNjb3VudElkOiBhY2NvdW50LmlkLFxuICAgICAgcHJvdmlkZXJJZDogYWNjb3VudC5wcm92aWRlcklkLFxuICAgIH0sXG4gICAgdHJpZ2dlcixcbiAgICBsb2NhdGlvbixcbiAgKTtcblxuY29uc3QgYnVpbGRBY2NvdW50RXZlbnRzID0gKCk6IEFjY291bnRFdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrQWNjb3VudExpbmtpbmc6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLkFDQ09VTlRfTElOS0VELFxuICAgICAgYExpbmtlZCAke2FjY291bnQucHJvdmlkZXJJZH0gYWNjb3VudGAsXG4gICAgICBhY2NvdW50LFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja0FjY291bnRVbmxpbms6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLkFDQ09VTlRfVU5MSU5LRUQsXG4gICAgICBgVW5saW5rZWQgJHthY2NvdW50LnByb3ZpZGVySWR9IGFjY291bnRgLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tBY2NvdW50UGFzc3dvcmRDaGFuZ2U6IChhY2NvdW50LCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZEFjY291bnRFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlBBU1NXT1JEX0NIQU5HRUQsXG4gICAgICBcIlBhc3N3b3JkIGNoYW5nZWRcIixcbiAgICAgIGFjY291bnQsXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG59KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2Vzc2lvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB0eXBlIFNlc3Npb25FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja1VzZXJTaWduZWRJbjogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrVXNlclNpZ25lZE91dDogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrU2Vzc2lvbkNyZWF0ZWQ6IEJ1aWxkZXI8XG4gICAgW1Nlc3Npb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xuICB0cmFja1Nlc3Npb25SZXZva2VkOiBCdWlsZGVyPFxuICAgIFtTZXNzaW9uU25hcHNob3QsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tTZXNzaW9uUmV2b2tlZEFsbDogQnVpbGRlcjxbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyXT47XG4gIHRyYWNrVXNlckltcGVyc29uYXRlZDogQnVpbGRlcjxcbiAgICBbU2Vzc2lvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tVc2VySW1wZXJzb25hdGlvblN0b3A6IEJ1aWxkZXI8XG4gICAgW1Nlc3Npb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrRW1haWxWZXJpZmljYXRpb25TZW50OiBCdWlsZGVyPFxuICAgIFtTZXNzaW9uU25hcHNob3QsIHsgbmFtZT86IHN0cmluZzsgZW1haWw/OiBzdHJpbmcgfSwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrRW1haWxTaWduSW5BdHRlbXB0OiBCdWlsZGVyPFxuICAgIFtcbiAgICAgIHsgZW1haWw6IHN0cmluZzsgbG9naW5NZXRob2Q6IHN0cmluZyB8IG51bGwgfSxcbiAgICAgIFVzZXJQcm9maWxlTGl0ZSxcbiAgICAgIEJ1aWxkZXJUcmlnZ2VyLFxuICAgICAgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkLFxuICAgIF1cbiAgPjtcbiAgdHJhY2tTb2NpYWxTaWduSW5BdHRlbXB0OiBCdWlsZGVyPFxuICAgIFt7IGxvZ2luTWV0aG9kOiBzdHJpbmcgfCBudWxsIH0sIFVzZXJQcm9maWxlTGl0ZSwgQnVpbGRlclRyaWdnZXIsIEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZF1cbiAgPjtcbiAgdHJhY2tTb2NpYWxTaWduSW5SZWRpcmVjdGlvbkF0dGVtcHQ6IEJ1aWxkZXI8XG4gICAgW3sgbG9naW5NZXRob2Q6IHN0cmluZyB8IG51bGwgfSwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xufTtcblxuY29uc3Qgc2Vzc2lvbkxpZmVjeWNsZURhdGEgPSAoc2Vzc2lvbjogU2Vzc2lvblNuYXBzaG90LCB1c2VyOiBVc2VyUHJvZmlsZUxpdGUpID0+ICh7XG4gIHVzZXJJZDogc2Vzc2lvbi51c2VySWQsXG4gIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICB1c2VyRW1haWw6IHVzZXI/LmVtYWlsID8/IFwidW5rbm93blwiLFxuICBzZXNzaW9uSWQ6IHNlc3Npb24uaWQsXG4gIGxvZ2luTWV0aG9kOiBzZXNzaW9uLmxvZ2luTWV0aG9kID8/IFwidW5rbm93blwiLFxuICB1c2VyQWdlbnQ6IHNlc3Npb24udXNlckFnZW50LFxufSk7XG5cbmNvbnN0IGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50ID0gKFxuICBldmVudFR5cGU6IHN0cmluZyxcbiAgZXZlbnREaXNwbGF5TmFtZTogc3RyaW5nLFxuICBzZXNzaW9uOiBTZXNzaW9uU25hcHNob3QsXG4gIHVzZXI6IFVzZXJQcm9maWxlTGl0ZSxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IHNlc3Npb24udXNlcklkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICBzZXNzaW9uTGlmZWN5Y2xlRGF0YShzZXNzaW9uLCB1c2VyKSxcbiAgICB0cmlnZ2VyLFxuICAgIGxvY2F0aW9uLFxuICApO1xuXG5jb25zdCBidWlsZEltcGVyc29uYXRpb25FdmVudCA9IChcbiAgZXZlbnRUeXBlOiBzdHJpbmcsXG4gIGV2ZW50RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgc2Vzc2lvbjogU2Vzc2lvblNuYXBzaG90LFxuICB1c2VyOiBVc2VyUHJvZmlsZUxpdGUsXG4gIGltcGVyc29uYXRvcjogVXNlclByb2ZpbGVMaXRlLFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbiAgbG9jYXRpb246IEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZCxcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogc2Vzc2lvbi51c2VySWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIHtcbiAgICAgIC4uLnNlc3Npb25MaWZlY3ljbGVEYXRhKHNlc3Npb24sIHVzZXIpLFxuICAgICAgaW1wZXJzb25hdGVkQnk6IGltcGVyc29uYXRvcj8ubmFtZSA/PyBpbXBlcnNvbmF0b3I/LmVtYWlsID8/IHNlc3Npb24uaW1wZXJzb25hdGVkQnksXG4gICAgICBpbXBlcnNvbmF0ZWRCeUlkOiBzZXNzaW9uLmltcGVyc29uYXRlZEJ5LFxuICAgIH0sXG4gICAgdHJpZ2dlcixcbiAgICBsb2NhdGlvbixcbiAgKTtcblxuY29uc3QgU0lHTl9JTl9GQUlMRURfRElTUExBWSA9IFwiVXNlciBzaWduLWluIGF0dGVtcHQgZmFpbGVkXCI7XG5cbmNvbnN0IGJ1aWxkU2Vzc2lvbkV2ZW50cyA9ICgpOiBTZXNzaW9uRXZlbnRCdWlsZGVycyA9PiAoe1xuICB0cmFja1VzZXJTaWduZWRJbjogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9TSUdORURfSU4sXG4gICAgICBgU2lnbmVkIGluIHZpYSAke3Nlc3Npb24ubG9naW5NZXRob2QgPz8gXCJ1bmtub3duXCJ9YCxcbiAgICAgIHNlc3Npb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrVXNlclNpZ25lZE91dDogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkU2Vzc2lvbkxpZmVjeWNsZUV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9TSUdORURfT1VULFxuICAgICAgXCJVc2VyIHNpZ25lZCBvdXRcIixcbiAgICAgIHNlc3Npb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrU2Vzc2lvbkNyZWF0ZWQ6IChzZXNzaW9uLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFNlc3Npb25MaWZlY3ljbGVFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlNFU1NJT05fQ1JFQVRFRCxcbiAgICAgIFwiU2Vzc2lvbiBjcmVhdGVkXCIsXG4gICAgICBzZXNzaW9uLFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1Nlc3Npb25SZXZva2VkOiAoc2Vzc2lvbiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRTZXNzaW9uTGlmZWN5Y2xlRXZlbnQoXG4gICAgICBFVkVOVF9UWVBFUy5TRVNTSU9OX1JFVk9LRUQsXG4gICAgICBcIlNlc3Npb24gcmV2b2tlZFwiLFxuICAgICAgc2Vzc2lvbixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tTZXNzaW9uUmV2b2tlZEFsbDogKHNlc3Npb24sIHVzZXIsIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBzZXNzaW9uLnVzZXJJZCxcbiAgICAgICAgZXZlbnRUeXBlOiBFVkVOVF9UWVBFUy5BTExfU0VTU0lPTlNfUkVWT0tFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogXCJBbGwgc2Vzc2lvbnMgcmV2b2tlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdXNlcklkOiBzZXNzaW9uLnVzZXJJZCxcbiAgICAgICAgdXNlck5hbWU6IHVzZXI/Lm5hbWUgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJFbWFpbDogdXNlcj8uZW1haWwgPz8gXCJ1bmtub3duXCIsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja1VzZXJJbXBlcnNvbmF0ZWQ6IChzZXNzaW9uLCB1c2VyLCBpbXBlcnNvbmF0b3IsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkSW1wZXJzb25hdGlvbkV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuVVNFUl9JTVBFUlNPTkFURUQsXG4gICAgICBcIlVzZXIgaW1wZXJzb25hdGVkXCIsXG4gICAgICBzZXNzaW9uLFxuICAgICAgdXNlcixcbiAgICAgIGltcGVyc29uYXRvcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1VzZXJJbXBlcnNvbmF0aW9uU3RvcDogKHNlc3Npb24sIHVzZXIsIGltcGVyc29uYXRvciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRJbXBlcnNvbmF0aW9uRXZlbnQoXG4gICAgICBFVkVOVF9UWVBFUy5VU0VSX0lNUEVSU09OQVRFRF9TVE9QUEVELFxuICAgICAgXCJVc2VyIGltcGVyc29uYXRpb24gc3RvcHBlZFwiLFxuICAgICAgc2Vzc2lvbixcbiAgICAgIHVzZXIsXG4gICAgICBpbXBlcnNvbmF0b3IsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tFbWFpbFZlcmlmaWNhdGlvblNlbnQ6IChzZXNzaW9uLCB1c2VyLCB0cmlnZ2VyKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogc2Vzc2lvbi51c2VySWQsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTlQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiVmVyaWZpY2F0aW9uIGVtYWlsIHNlbnRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbi51c2VySWQsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgIHVzZXJFbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgc2Vzc2lvbklkOiBzZXNzaW9uLmlkLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgLy8g7KO87J2YOiDquLDsobQg64+Z7J6RIOycoOyngCDigJQgYG5hbWVOYW1lYCDsmKTtg4Ag7ZWE65Oc66qF64+EIOq3uOuMgOuhnCDrs7TsobTtlZzri6QuXG4gIHRyYWNrRW1haWxTaWduSW5BdHRlbXB0OiAoYXR0ZW1wdCwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiB1c2VyPy5pZCA/PyBcInVua25vd25cIixcbiAgICAgICAgZXZlbnRUeXBlOiBFVkVOVF9UWVBFUy5VU0VSX1NJR05fSU5fRkFJTEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBTSUdOX0lOX0ZBSUxFRF9ESVNQTEFZLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdXNlcklkOiB1c2VyPy5pZCA/PyBcInVua25vd25cIixcbiAgICAgICAgbmFtZU5hbWU6IHVzZXI/Lm5hbWUgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJFbWFpbDogYXR0ZW1wdC5lbWFpbCxcbiAgICAgICAgbG9naW5NZXRob2Q6IGF0dGVtcHQubG9naW5NZXRob2QsXG4gICAgICB9LFxuICAgICAgeyB0cmlnZ2VyZWRCeTogdXNlcj8uaWQgPz8gdHJpZ2dlci50cmlnZ2VyZWRCeSwgdHJpZ2dlckNvbnRleHQ6IHRyaWdnZXIudHJpZ2dlckNvbnRleHQgfSxcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrU29jaWFsU2lnbkluQXR0ZW1wdDogKGF0dGVtcHQsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuVVNFUl9TSUdOX0lOX0ZBSUxFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogU0lHTl9JTl9GQUlMRURfRElTUExBWSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgICB1c2VyRW1haWw6IHVzZXI/LmVtYWlsID8/IFwidW5rbm93blwiLFxuICAgICAgICBsb2dpbk1ldGhvZDogYXR0ZW1wdC5sb2dpbk1ldGhvZCxcbiAgICAgIH0sXG4gICAgICB7IHRyaWdnZXJlZEJ5OiB1c2VyPy5pZCA/PyB0cmlnZ2VyLnRyaWdnZXJlZEJ5LCB0cmlnZ2VyQ29udGV4dDogdHJpZ2dlci50cmlnZ2VyQ29udGV4dCB9LFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgLy8g7KO87J2YOiDquLDsobQg64+Z7J6RIOycoOyngCDigJQgdXNlckVtYWlsIOqwkuydtCB1c2VyPy5pZOuhnCDshKTsoJXrkJjripQg6riw7KG0IOuPmeyekeuPhCDqt7jrjIDroZwg67O07KG07ZWc64ukLlxuICB0cmFja1NvY2lhbFNpZ25JblJlZGlyZWN0aW9uQXR0ZW1wdDogKGF0dGVtcHQsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGNyZWF0ZUV2ZW50KFxuICAgICAge1xuICAgICAgICBldmVudEtleTogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIGV2ZW50VHlwZTogRVZFTlRfVFlQRVMuVVNFUl9TSUdOX0lOX0ZBSUxFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogU0lHTl9JTl9GQUlMRURfRElTUExBWSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHVzZXJJZDogdXNlcj8uaWQgPz8gXCJ1bmtub3duXCIsXG4gICAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgICB1c2VyRW1haWw6IHVzZXI/LmlkID8/IFwidW5rbm93blwiLFxuICAgICAgICBsb2dpbk1ldGhvZDogYXR0ZW1wdC5sb2dpbk1ldGhvZCxcbiAgICAgIH0sXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbn0pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVc2VyIOu5jOuNlFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IHR5cGUgVXNlckV2ZW50QnVpbGRlcnMgPSB7XG4gIHRyYWNrVXNlclNpZ25lZFVwOiBCdWlsZGVyPFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdPjtcbiAgdHJhY2tVc2VyRGVsZXRlZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG4gIHRyYWNrVXNlclByb2ZpbGVVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtVc2VyU25hcHNob3QsIHN0cmluZ1tdLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xuICB0cmFja1VzZXJQcm9maWxlSW1hZ2VVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrVXNlckJhbm5lZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG4gIHRyYWNrVXNlclVuQmFubmVkOiBCdWlsZGVyPFtVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdPjtcbiAgdHJhY2tVc2VyRW1haWxWZXJpZmllZDogQnVpbGRlcjxbVXNlclNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXT47XG59O1xuXG5jb25zdCB1c2VySWRlbnRpdHlEYXRhID0gKHVzZXI6IFVzZXJTbmFwc2hvdCkgPT4gKHtcbiAgdXNlcklkOiB1c2VyLmlkLFxuICB1c2VyRW1haWw6IHVzZXIuZW1haWwsXG4gIHVzZXJOYW1lOiB1c2VyLm5hbWUsXG59KTtcblxuY29uc3QgYnVpbGRVc2VyRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIHVzZXI6IFVzZXJTbmFwc2hvdCxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4gIGxvY2F0aW9uOiBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWQsXG4gIGV4dHJhPzogQXVkaXRFdmVudERhdGEsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IHVzZXIuaWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIHsgLi4udXNlcklkZW50aXR5RGF0YSh1c2VyKSwgLi4uZXh0cmEgfSxcbiAgICB0cmlnZ2VyLFxuICAgIGxvY2F0aW9uLFxuICApO1xuXG5jb25zdCBidWlsZFVzZXJFdmVudHMgPSAoKTogVXNlckV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tVc2VyU2lnbmVkVXA6ICh1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFVzZXJFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlVTRVJfQ1JFQVRFRCxcbiAgICAgIGAke3VzZXIubmFtZSB8fCB1c2VyLmVtYWlsfSBzaWduZWQgdXBgLFxuICAgICAgdXNlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBsb2NhdGlvbixcbiAgICApLFxuICB0cmFja1VzZXJEZWxldGVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuVVNFUl9ERUxFVEVELCBcIlVzZXIgZGVsZXRlZFwiLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbiksXG4gIHRyYWNrVXNlclByb2ZpbGVVcGRhdGVkOiAodXNlciwgdXBkYXRlZEZpZWxkcywgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuUFJPRklMRV9VUERBVEVELCBcIlByb2ZpbGUgdXBkYXRlZFwiLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbiwge1xuICAgICAgdXBkYXRlZEZpZWxkcyxcbiAgICB9KSxcbiAgdHJhY2tVc2VyUHJvZmlsZUltYWdlVXBkYXRlZDogKHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uKSA9PlxuICAgIGJ1aWxkVXNlckV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuUFJPRklMRV9JTUFHRV9VUERBVEVELFxuICAgICAgXCJQcm9maWxlIGltYWdlIHVwZGF0ZWRcIixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbiAgdHJhY2tVc2VyQmFubmVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+IHtcbiAgICBjb25zdCByZWFzb25TdWZmaXggPSB1c2VyLmJhblJlYXNvbiA/IGA6ICR7dXNlci5iYW5SZWFzb259YCA6IFwiXCI7XG4gICAgY29uc3QgZXhwaXJlc1N1ZmZpeCA9IHVzZXIuYmFuRXhwaXJlcyA/IGAgKHVudGlsICR7dXNlci5iYW5FeHBpcmVzLnRvSVNPU3RyaW5nKCl9KWAgOiBcIlwiO1xuICAgIHJldHVybiBidWlsZFVzZXJFdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlVTRVJfQkFOTkVELFxuICAgICAgYFVzZXIgYmFubmVkJHtyZWFzb25TdWZmaXh9JHtleHBpcmVzU3VmZml4fWAsXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICAge1xuICAgICAgICBiYW5uZWQ6IHVzZXIuYmFubmVkLFxuICAgICAgICBiYW5SZWFzb246IHVzZXIuYmFuUmVhc29uLFxuICAgICAgICBiYW5FeHBpcmVzOiB1c2VyLmJhbkV4cGlyZXMsXG4gICAgICB9LFxuICAgICk7XG4gIH0sXG4gIHRyYWNrVXNlclVuQmFubmVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuVVNFUl9VTkJBTk5FRCwgXCJVc2VyIHVuYmFubmVkXCIsIHVzZXIsIHRyaWdnZXIsIGxvY2F0aW9uLCB7XG4gICAgICBiYW5uZWQ6IHVzZXIuYmFubmVkLFxuICAgIH0pLFxuICB0cmFja1VzZXJFbWFpbFZlcmlmaWVkOiAodXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRVc2VyRXZlbnQoRVZFTlRfVFlQRVMuRU1BSUxfVkVSSUZJRUQsIFwiRW1haWwgdmVyaWZpZWRcIiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pLFxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZlcmlmaWNhdGlvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB0eXBlIFZlcmlmaWNhdGlvbkV2ZW50QnVpbGRlcnMgPSB7XG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3Q6IEJ1aWxkZXI8XG4gICAgW1ZlcmlmaWNhdGlvblNuYXBzaG90LCBVc2VyUHJvZmlsZUxpdGUsIEJ1aWxkZXJUcmlnZ2VyLCBCdWlsZGVyTG9jYXRpb24gfCB1bmRlZmluZWRdXG4gID47XG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3RDb21wbGV0aW9uOiBCdWlsZGVyPFxuICAgIFtWZXJpZmljYXRpb25TbmFwc2hvdCwgVXNlclByb2ZpbGVMaXRlLCBCdWlsZGVyVHJpZ2dlciwgQnVpbGRlckxvY2F0aW9uIHwgdW5kZWZpbmVkXVxuICA+O1xufTtcblxuY29uc3QgYnVpbGRWZXJpZmljYXRpb25FdmVudCA9IChcbiAgZXZlbnRUeXBlOiBzdHJpbmcsXG4gIGV2ZW50RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgdmVyaWZpY2F0aW9uOiBWZXJpZmljYXRpb25TbmFwc2hvdCxcbiAgdXNlcjogVXNlclByb2ZpbGVMaXRlLFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbiAgbG9jYXRpb246IEJ1aWxkZXJMb2NhdGlvbiB8IHVuZGVmaW5lZCxcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogdmVyaWZpY2F0aW9uLnZhbHVlLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICB1c2VySWQ6IHZlcmlmaWNhdGlvbi52YWx1ZSxcbiAgICAgIHVzZXJOYW1lOiB1c2VyPy5uYW1lID8/IFwidW5rbm93blwiLFxuICAgICAgdXNlckVtYWlsOiB1c2VyPy5lbWFpbCA/PyBcInVua25vd25cIixcbiAgICB9LFxuICAgIHRyaWdnZXIsXG4gICAgbG9jYXRpb24sXG4gICk7XG5cbmNvbnN0IGJ1aWxkVmVyaWZpY2F0aW9uRXZlbnRzID0gKCk6IFZlcmlmaWNhdGlvbkV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tQYXNzd29yZFJlc2V0UmVxdWVzdDogKHZlcmlmaWNhdGlvbiwgdXNlciwgdHJpZ2dlciwgbG9jYXRpb24pID0+XG4gICAgYnVpbGRWZXJpZmljYXRpb25FdmVudChcbiAgICAgIEVWRU5UX1RZUEVTLlBBU1NXT1JEX1JFU0VUX1JFUVVFU1RFRCxcbiAgICAgIFwiUGFzc3dvcmQgcmVzZXQgcmVxdWVzdGVkXCIsXG4gICAgICB2ZXJpZmljYXRpb24sXG4gICAgICB1c2VyLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGxvY2F0aW9uLFxuICAgICksXG4gIHRyYWNrUGFzc3dvcmRSZXNldFJlcXVlc3RDb21wbGV0aW9uOiAodmVyaWZpY2F0aW9uLCB1c2VyLCB0cmlnZ2VyLCBsb2NhdGlvbikgPT5cbiAgICBidWlsZFZlcmlmaWNhdGlvbkV2ZW50KFxuICAgICAgRVZFTlRfVFlQRVMuUEFTU1dPUkRfUkVTRVRfQ09NUExFVEVELFxuICAgICAgXCJQYXNzd29yZCByZXNldCBjb21wbGV0ZWRcIixcbiAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgIHVzZXIsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgbG9jYXRpb24sXG4gICAgKSxcbn0pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPcmdhbml6YXRpb24gLyBUZWFtIC8gTWVtYmVyIC8gSW52aXRhdGlvbiDruYzrjZRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmNvbnN0IG9yZ2FuaXphdGlvbklkZW50aXR5RGF0YSA9IChvcmdhbml6YXRpb246IE9yZ2FuaXphdGlvblNuYXBzaG90KSA9PiAoe1xuICBvcmdhbml6YXRpb25JZDogb3JnYW5pemF0aW9uLmlkLFxuICBvcmdhbml6YXRpb25TbHVnOiBvcmdhbml6YXRpb24uc2x1ZyxcbiAgb3JnYW5pemF0aW9uTmFtZTogb3JnYW5pemF0aW9uLm5hbWUsXG59KTtcblxuZXhwb3J0IHR5cGUgT3JnYW5pemF0aW9uRXZlbnRCdWlsZGVycyA9IHtcbiAgdHJhY2tPcmdhbml6YXRpb25DcmVhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdPjtcbiAgdHJhY2tPcmdhbml6YXRpb25VcGRhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdPjtcbn07XG5cbmNvbnN0IGJ1aWxkT3JnYW5pemF0aW9uRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRyaWdnZXI6IEJ1aWxkZXJUcmlnZ2VyLFxuKTogQXVkaXRMb2dFdmVudCA9PlxuICBjcmVhdGVFdmVudChcbiAgICB7IGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsIGV2ZW50VHlwZSwgZXZlbnREaXNwbGF5TmFtZSB9LFxuICAgIG9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgIHRyaWdnZXIsXG4gICk7XG5cbmNvbnN0IGJ1aWxkT3JnYW5pemF0aW9uRXZlbnRzID0gKCk6IE9yZ2FuaXphdGlvbkV2ZW50QnVpbGRlcnMgPT4gKHtcbiAgdHJhY2tPcmdhbml6YXRpb25DcmVhdGVkOiAob3JnYW5pemF0aW9uLCB0cmlnZ2VyKSA9PlxuICAgIGJ1aWxkT3JnYW5pemF0aW9uRXZlbnQoXG4gICAgICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX0NSRUFURUQsXG4gICAgICBcIk9yZ2FuaXphdGlvbiBDcmVhdGVkXCIsXG4gICAgICBvcmdhbml6YXRpb24sXG4gICAgICB0cmlnZ2VyLFxuICAgICksXG4gIHRyYWNrT3JnYW5pemF0aW9uVXBkYXRlZDogKG9yZ2FuaXphdGlvbiwgdHJpZ2dlcikgPT5cbiAgICBidWlsZE9yZ2FuaXphdGlvbkV2ZW50KFxuICAgICAgT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9VUERBVEVELFxuICAgICAgXCJPcmdhbml6YXRpb24gVXBkYXRlZFwiLFxuICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxufSk7XG5cbmV4cG9ydCB0eXBlIFRlYW1FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1DcmVhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1VcGRhdGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1EZWxldGVkOiBCdWlsZGVyPFtPcmdhbml6YXRpb25TbmFwc2hvdCwgVGVhbVNuYXBzaG90LCBCdWlsZGVyVHJpZ2dlcl0+O1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1NZW1iZXJBZGRlZDogQnVpbGRlcjxcbiAgICBbXG4gICAgICBPcmdhbml6YXRpb25TbmFwc2hvdCxcbiAgICAgIFRlYW1TbmFwc2hvdCxcbiAgICAgIFVzZXJTbmFwc2hvdCxcbiAgICAgIHsgdGVhbUlkOiBzdHJpbmc7IHVzZXJJZDogc3RyaW5nIH0sXG4gICAgICBCdWlsZGVyVHJpZ2dlcixcbiAgICBdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uVGVhbU1lbWJlclJlbW92ZWQ6IEJ1aWxkZXI8XG4gICAgW1xuICAgICAgT3JnYW5pemF0aW9uU25hcHNob3QsXG4gICAgICBUZWFtU25hcHNob3QsXG4gICAgICBVc2VyU25hcHNob3QsXG4gICAgICB7IHRlYW1JZDogc3RyaW5nOyB1c2VySWQ6IHN0cmluZyB9LFxuICAgICAgQnVpbGRlclRyaWdnZXIsXG4gICAgXVxuICA+O1xufTtcblxuY29uc3QgYnVpbGRUZWFtTGlmZWN5Y2xlRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRlYW06IFRlYW1TbmFwc2hvdCxcbiAgdHJpZ2dlcjogQnVpbGRlclRyaWdnZXIsXG4pOiBBdWRpdExvZ0V2ZW50ID0+XG4gIGNyZWF0ZUV2ZW50KFxuICAgIHsgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCwgZXZlbnRUeXBlLCBldmVudERpc3BsYXlOYW1lIH0sXG4gICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgdGVhbUlkOiB0ZWFtLmlkLCB0ZWFtTmFtZTogdGVhbS5uYW1lIH0sXG4gICAgdHJpZ2dlcixcbiAgKTtcblxuY29uc3QgYnVpbGRUZWFtTWVtYmVyRXZlbnQgPSAoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBldmVudERpc3BsYXlOYW1lOiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uU25hcHNob3QsXG4gIHRlYW06IFRlYW1TbmFwc2hvdCxcbiAgdXNlcjogVXNlclNuYXBzaG90LFxuICB0ZWFtTWVtYmVyOiB7IHRlYW1JZDogc3RyaW5nOyB1c2VySWQ6IHN0cmluZyB9LFxuICB0cmlnZ2VyOiBCdWlsZGVyVHJpZ2dlcixcbik6IEF1ZGl0TG9nRXZlbnQgPT5cbiAgY3JlYXRlRXZlbnQoXG4gICAgeyBldmVudEtleTogb3JnYW5pemF0aW9uLmlkLCBldmVudFR5cGUsIGV2ZW50RGlzcGxheU5hbWUgfSxcbiAgICB7XG4gICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgIHRlYW1JZDogdGVhbU1lbWJlci50ZWFtSWQsXG4gICAgICB0ZWFtTmFtZTogdGVhbS5uYW1lLFxuICAgICAgdXNlcmlkOiB0ZWFtTWVtYmVyLnVzZXJJZCxcbiAgICAgIG1lbWJlck5hbWU6IHVzZXIubmFtZSxcbiAgICB9LFxuICAgIHRyaWdnZXIsXG4gICk7XG5cbmNvbnN0IGJ1aWxkVGVhbUV2ZW50cyA9ICgpOiBUZWFtRXZlbnRCdWlsZGVycyA9PiAoe1xuICB0cmFja09yZ2FuaXphdGlvblRlYW1DcmVhdGVkOiAob3JnYW5pemF0aW9uLCB0ZWFtLCB0cmlnZ2VyKSA9PlxuICAgIGJ1aWxkVGVhbUxpZmVjeWNsZUV2ZW50KFxuICAgICAgT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9URUFNX0NSRUFURUQsXG4gICAgICBcIk9yZ2FuaXphdGlvbiB0ZWFtIGNyZWF0ZWRcIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB0cmlnZ2VyLFxuICAgICksXG4gIHRyYWNrT3JnYW5pemF0aW9uVGVhbVVwZGF0ZWQ6IChvcmdhbml6YXRpb24sIHRlYW0sIHRyaWdnZXIpID0+XG4gICAgYnVpbGRUZWFtTGlmZWN5Y2xlRXZlbnQoXG4gICAgICBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX1RFQU1fVVBEQVRFRCxcbiAgICAgIFwiT3JnYW5pemF0aW9uIHRlYW0gdXBkYXRlZFwiLFxuICAgICAgb3JnYW5pemF0aW9uLFxuICAgICAgdGVhbSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25UZWFtRGVsZXRlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1MaWZlY3ljbGVFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9ERUxFVEVELFxuICAgICAgXCJPcmdhbml6YXRpb24gdGVhbSBkZWxldGVkXCIsXG4gICAgICBvcmdhbml6YXRpb24sXG4gICAgICB0ZWFtLFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvblRlYW1NZW1iZXJBZGRlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdXNlciwgdGVhbU1lbWJlciwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1NZW1iZXJFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfQURERUQsXG4gICAgICBcIlVzZXIgYWRkZWQgdG8gb3JnYW5pemF0aW9uIHRlYW1cIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB1c2VyLFxuICAgICAgdGVhbU1lbWJlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25UZWFtTWVtYmVyUmVtb3ZlZDogKG9yZ2FuaXphdGlvbiwgdGVhbSwgdXNlciwgdGVhbU1lbWJlciwgdHJpZ2dlcikgPT5cbiAgICBidWlsZFRlYW1NZW1iZXJFdmVudChcbiAgICAgIE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUy5PUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfUkVNT1ZFRCxcbiAgICAgIFwiVXNlciByZW1vdmVkIGZyb20gb3JnYW5pemF0aW9uIHRlYW1cIixcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICAgIHRlYW0sXG4gICAgICB1c2VyLFxuICAgICAgdGVhbU1lbWJlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBNZW1iZXJFdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckFkZGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgTWVtYmVyU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVyUmVtb3ZlZDogQnVpbGRlcjxcbiAgICBbT3JnYW5pemF0aW9uU25hcHNob3QsIE1lbWJlclNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJvbGVVcGRhdGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgTWVtYmVyU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgc3RyaW5nLCBCdWlsZGVyVHJpZ2dlcl1cbiAgPjtcbn07XG5cbmNvbnN0IG1lbWJlckNvcmVEYXRhID0gKG1lbWJlcjogTWVtYmVyU25hcHNob3QsIHVzZXI6IFVzZXJTbmFwc2hvdCkgPT4gKHtcbiAgdXNlcklkOiBtZW1iZXIudXNlcklkLFxuICBtZW1iZXJOYW1lOiB1c2VyLm5hbWUsXG4gIHJvbGU6IG1lbWJlci5yb2xlLFxuICBtZW1iZXJJZDogbWVtYmVyLmlkLFxuICBtZW1iZXJFbWFpbDogdXNlci5lbWFpbCxcbn0pO1xuXG5jb25zdCBidWlsZE1lbWJlckV2ZW50cyA9ICgpOiBNZW1iZXJFdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVyQWRkZWQ6IChvcmdhbml6YXRpb24sIG1lbWJlciwgdXNlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9BRERFRCxcbiAgICAgICAgZXZlbnREaXNwbGF5TmFtZTogXCJNZW1iZXIgYWRkZWQgdG8gb3JnYW5pemF0aW9uXCIsXG4gICAgICB9LFxuICAgICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgLi4ubWVtYmVyQ29yZURhdGEobWVtYmVyLCB1c2VyKSB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJlbW92ZWQ6IChvcmdhbml6YXRpb24sIG1lbWJlciwgdXNlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9SRU1PVkVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIk1lbWJlciByZW1vdmVkIGZyb20gb3JnYW5pemF0aW9uXCIsXG4gICAgICB9LFxuICAgICAgeyAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSwgLi4ubWVtYmVyQ29yZURhdGEobWVtYmVyLCB1c2VyKSB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlclJvbGVVcGRhdGVkOiAob3JnYW5pemF0aW9uLCBtZW1iZXIsIHVzZXIsIHByZXZpb3VzUm9sZSwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9ST0xFX1VQREFURUQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiT3JnYW5pemF0aW9uIG1lbWJlciByb2xlIHVwZGF0ZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICB1c2VySWQ6IG1lbWJlci51c2VySWQsXG4gICAgICAgIG1lbWJlck5hbWU6IHVzZXIubmFtZSxcbiAgICAgICAgbmV3Um9sZTogbWVtYmVyLnJvbGUsXG4gICAgICAgIG9sZFJvbGU6IHByZXZpb3VzUm9sZSxcbiAgICAgICAgbWVtYmVySWQ6IG1lbWJlci5pZCxcbiAgICAgICAgbWVtYmVyRW1haWw6IHVzZXIuZW1haWwsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxufSk7XG5cbmV4cG9ydCB0eXBlIEludml0YXRpb25FdmVudEJ1aWxkZXJzID0ge1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZWQ6IEJ1aWxkZXI8XG4gICAgW09yZ2FuaXphdGlvblNuYXBzaG90LCBJbnZpdGF0aW9uU25hcHNob3QsIFVzZXJTbmFwc2hvdCwgQnVpbGRlclRyaWdnZXJdXG4gID47XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVySW52aXRlQWNjZXB0ZWQ6IEJ1aWxkZXI8XG4gICAgW09yZ2FuaXphdGlvblNuYXBzaG90LCBJbnZpdGF0aW9uU25hcHNob3QsIE1lbWJlclNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZVJlamVjdGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgSW52aXRhdGlvblNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZUNhbmNlbGVkOiBCdWlsZGVyPFxuICAgIFtPcmdhbml6YXRpb25TbmFwc2hvdCwgSW52aXRhdGlvblNuYXBzaG90LCBVc2VyU25hcHNob3QsIEJ1aWxkZXJUcmlnZ2VyXVxuICA+O1xufTtcblxuY29uc3QgaW52aXRlZURhdGEgPSAoaW52aXRhdGlvbjogSW52aXRhdGlvblNuYXBzaG90KSA9PiAoe1xuICBpbnZpdGVlSWQ6IGludml0YXRpb24uaWQsXG4gIGludml0ZWVFbWFpbDogaW52aXRhdGlvbi5lbWFpbCxcbiAgaW52aXRlZVJvbGU6IGludml0YXRpb24ucm9sZSxcbiAgaW52aXRlZVRlYW1JZDogaW52aXRhdGlvbi50ZWFtSWQsXG59KTtcblxuY29uc3QgYnVpbGRJbnZpdGF0aW9uRXZlbnRzID0gKCk6IEludml0YXRpb25FdmVudEJ1aWxkZXJzID0+ICh7XG4gIHRyYWNrT3JnYW5pemF0aW9uTWVtYmVySW52aXRlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgaW52aXRlciwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIlVzZXIgaW52aXRlZCB0byBvcmdhbml6YXRpb25cIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICAuLi5pbnZpdGVlRGF0YShpbnZpdGF0aW9uKSxcbiAgICAgICAgaW52aXRlcklkOiBpbnZpdGVyLmlkLFxuICAgICAgICBpbnZpdGVyTmFtZTogaW52aXRlci5uYW1lLFxuICAgICAgICBpbnZpdGVyRW1haWw6IGludml0ZXIuZW1haWwsXG4gICAgICB9LFxuICAgICAgdHJpZ2dlcixcbiAgICApLFxuICB0cmFja09yZ2FuaXphdGlvbk1lbWJlckludml0ZUFjY2VwdGVkOiAob3JnYW5pemF0aW9uLCBpbnZpdGF0aW9uLCBtZW1iZXIsIGFjY2VwdGVkQnksIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsXG4gICAgICAgIGV2ZW50VHlwZTogT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFX0FDQ0VQVEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIlVzZXIgYWNjZXB0ZWQgaW52aXRlIG9yZ2FuaXphdGlvbiBpbnZpdGVcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLm9yZ2FuaXphdGlvbklkZW50aXR5RGF0YShvcmdhbml6YXRpb24pLFxuICAgICAgICAuLi5pbnZpdGVlRGF0YShpbnZpdGF0aW9uKSxcbiAgICAgICAgYWNjZXB0ZWRCeUlkOiBhY2NlcHRlZEJ5LmlkLFxuICAgICAgICBhY2NlcHRlZEJ5RW1haWw6IGFjY2VwdGVkQnkuZW1haWwsXG4gICAgICAgIGFjY2VwdGVkQnlOYW1lOiBhY2NlcHRlZEJ5Lm5hbWUsXG4gICAgICAgIG1lbWJlcklkOiBtZW1iZXIuaWQsXG4gICAgICAgIG1lbWJlclJvbGU6IG1lbWJlci5yb2xlLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25NZW1iZXJJbnZpdGVSZWplY3RlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgcmVqZWN0ZWRCeSwgdHJpZ2dlcikgPT5cbiAgICBjcmVhdGVFdmVudChcbiAgICAgIHtcbiAgICAgICAgZXZlbnRLZXk6IG9yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgZXZlbnRUeXBlOiBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMuT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfUkVKRUNURUQsXG4gICAgICAgIGV2ZW50RGlzcGxheU5hbWU6IFwiVXNlciByZWplY3RlZCBvcmdhbml6YXRpb24gaW52aXRlXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgICAgLi4uaW52aXRlZURhdGEoaW52aXRhdGlvbiksXG4gICAgICAgIHJlamVjdGVkQnlJZDogcmVqZWN0ZWRCeS5pZCxcbiAgICAgICAgcmVqZWN0ZWRCeUVtYWlsOiByZWplY3RlZEJ5LmVtYWlsLFxuICAgICAgICByZWplY3RlZEJ5TmFtZTogcmVqZWN0ZWRCeS5uYW1lLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbiAgdHJhY2tPcmdhbml6YXRpb25NZW1iZXJJbnZpdGVDYW5jZWxlZDogKG9yZ2FuaXphdGlvbiwgaW52aXRhdGlvbiwgY2FuY2VsbGVkQnksIHRyaWdnZXIpID0+XG4gICAgY3JlYXRlRXZlbnQoXG4gICAgICB7XG4gICAgICAgIGV2ZW50S2V5OiBvcmdhbml6YXRpb24uaWQsXG4gICAgICAgIGV2ZW50VHlwZTogT1JHQU5JWkFUSU9OX0VWRU5UX1RZUEVTLk9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFX0NBTkNFTEVELFxuICAgICAgICBldmVudERpc3BsYXlOYW1lOiBcIk9yZ2FuaXphdGlvbiBpbnZpdGUgY2FuY2VsbGVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAuLi5vcmdhbml6YXRpb25JZGVudGl0eURhdGEob3JnYW5pemF0aW9uKSxcbiAgICAgICAgLi4uaW52aXRlZURhdGEoaW52aXRhdGlvbiksXG4gICAgICAgIGNhbmNlbGxlZEJ5SWQ6IGNhbmNlbGxlZEJ5LmlkLFxuICAgICAgICBjYW5jZWxsZWRCeU5hbWU6IGNhbmNlbGxlZEJ5Lm5hbWUsXG4gICAgICAgIGNhbmNlbGxlZEJ5RW1haWw6IGNhbmNlbGxlZEJ5LmVtYWlsLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXIsXG4gICAgKSxcbn0pO1xuXG4vLyBUT0RPKHNlY3VyaXR5KTogc29uYW11LmNvbmZpZ+ydmCBzZWN1cml0eSDsmLXshZjsnbQg64+E7J6F65CY66m0XG4vLyBTZWN1cml0eUV2ZW50QnVpbGRlcnMgKHRyYWNrU2VjdXJpdHlCbG9ja2VkL0FsbG93ZWQvQ2hhbGxlbmdlZC9TdGFsZUFjY291bnQpIOyEueyFmOydhCDstpTqsIDtlZzri6QuXG4vLyBkYXNo7J2YIGNyZWF0ZVNlY3VyaXR5Q2xpZW50L29uU2VjdXJpdHlFdmVudCDqtaztmITsnYAg7ZiE7J6sIHNjb3BlIG91dCAoUjEpLlxuXG5leHBvcnQgdHlwZSBBdWRpdEV2ZW50QnVpbGRlckNhdGFsb2cgPSB7XG4gIGFjY291bnQ6IEFjY291bnRFdmVudEJ1aWxkZXJzO1xuICBzZXNzaW9uOiBTZXNzaW9uRXZlbnRCdWlsZGVycztcbiAgdXNlcjogVXNlckV2ZW50QnVpbGRlcnM7XG4gIHZlcmlmaWNhdGlvbjogVmVyaWZpY2F0aW9uRXZlbnRCdWlsZGVycztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb25FdmVudEJ1aWxkZXJzO1xuICB0ZWFtOiBUZWFtRXZlbnRCdWlsZGVycztcbiAgbWVtYmVyOiBNZW1iZXJFdmVudEJ1aWxkZXJzO1xuICBpbnZpdGF0aW9uOiBJbnZpdGF0aW9uRXZlbnRCdWlsZGVycztcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEF1ZGl0RXZlbnRDYXRhbG9nID0gKCk6IEF1ZGl0RXZlbnRCdWlsZGVyQ2F0YWxvZyA9PiAoe1xuICBhY2NvdW50OiBidWlsZEFjY291bnRFdmVudHMoKSxcbiAgc2Vzc2lvbjogYnVpbGRTZXNzaW9uRXZlbnRzKCksXG4gIHVzZXI6IGJ1aWxkVXNlckV2ZW50cygpLFxuICB2ZXJpZmljYXRpb246IGJ1aWxkVmVyaWZpY2F0aW9uRXZlbnRzKCksXG4gIG9yZ2FuaXphdGlvbjogYnVpbGRPcmdhbml6YXRpb25FdmVudHMoKSxcbiAgdGVhbTogYnVpbGRUZWFtRXZlbnRzKCksXG4gIG1lbWJlcjogYnVpbGRNZW1iZXJFdmVudHMoKSxcbiAgaW52aXRhdGlvbjogYnVpbGRJbnZpdGF0aW9uRXZlbnRzKCksXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLE1BQU0sZUFDSixNQUNBLE1BQ0EsU0FDQSxjQUNtQjtDQUNuQixHQUFHO0NBQ0gsU0FBUyxXQUFXO0NBQ3BCLFdBQVc7RUFDVCxHQUFHO0VBQ0gsYUFBYSxRQUFRO0VBQ3JCLGdCQUFnQixRQUFRO0NBQzFCO0NBQ0EsV0FBVyxV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
@@ -1,3 +1,3 @@
1
1
  export declare function replaceClientIpHeaders(headers: Headers, clientIp: string, configuredHeaders?: readonly string[]): void;
2
- export declare function getValidClientIp(value: unknown): string | null;
2
+ export declare function getValidClientIp<Value>(value: Value): string | null;
3
3
  //# sourceMappingURL=client-ip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-ip.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/client-ip.ts"],"names":[],"mappings":"AAWA,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACxC,IAAI,CAcN;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM9D"}
1
+ {"version":3,"file":"client-ip.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/client-ip.ts"],"names":[],"mappings":"AAaA,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACxC,IAAI,CAcN;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAMnE"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isStringValue } from "../../utils/runtime-value.js";
2
3
  import { isIP } from "node:net";
3
4
  //#region src/auth/audit-log/client-ip.ts
4
5
  function replaceClientIpHeaders(headers, clientIp, configuredHeaders = []) {
@@ -7,11 +8,12 @@ function replaceClientIpHeaders(headers, clientIp, configuredHeaders = []) {
7
8
  for (const header of candidates) headers.set(header, clientIp);
8
9
  }
9
10
  function getValidClientIp(value) {
10
- if (typeof value !== "string" || value.length > 45 || isIP(value) === 0) return null;
11
+ if (!isStringValue(value) || value.length > 45 || isIP(value) === 0) return null;
11
12
  return value;
12
13
  }
13
14
  var CLIENT_IP_HEADERS, HEADER_NAME_PATTERN;
14
15
  var init_client_ip = __esmMin((() => {
16
+ init_runtime_value();
15
17
  CLIENT_IP_HEADERS = [
16
18
  "cf-connecting-ip",
17
19
  "x-forwarded-for",
@@ -24,4 +26,4 @@ var init_client_ip = __esmMin((() => {
24
26
  init_client_ip();
25
27
  export { getValidClientIp, init_client_ip, replaceClientIpHeaders };
26
28
 
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWlwLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy9jbGllbnQtaXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJUCB9IGZyb20gXCJub2RlOm5ldFwiO1xuXG5jb25zdCBDTElFTlRfSVBfSEVBREVSUyA9IFtcbiAgXCJjZi1jb25uZWN0aW5nLWlwXCIsXG4gIFwieC1mb3J3YXJkZWQtZm9yXCIsXG4gIFwieC1yZWFsLWlwXCIsXG4gIFwieC12ZXJjZWwtZm9yd2FyZGVkLWZvclwiLFxuXSBhcyBjb25zdDtcblxuY29uc3QgSEVBREVSX05BTUVfUEFUVEVSTiA9IC9eWyEjJCUmJyorXFwtLl5fYHx+MC05QS1aYS16XSskLztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VDbGllbnRJcEhlYWRlcnMoXG4gIGhlYWRlcnM6IEhlYWRlcnMsXG4gIGNsaWVudElwOiBzdHJpbmcsXG4gIGNvbmZpZ3VyZWRIZWFkZXJzOiByZWFkb25seSBzdHJpbmdbXSA9IFtdLFxuKTogdm9pZCB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBuZXcgU2V0KFxuICAgIFsuLi5DTElFTlRfSVBfSEVBREVSUywgLi4uY29uZmlndXJlZEhlYWRlcnNdXG4gICAgICAubWFwKChoZWFkZXIpID0+IGhlYWRlci50cmltKCkudG9Mb3dlckNhc2UoKSlcbiAgICAgIC5maWx0ZXIoKGhlYWRlcikgPT4gSEVBREVSX05BTUVfUEFUVEVSTi50ZXN0KGhlYWRlcikpLFxuICApO1xuXG4gIGZvciAoY29uc3QgaGVhZGVyIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBoZWFkZXJzLmRlbGV0ZShoZWFkZXIpO1xuICB9XG5cbiAgZm9yIChjb25zdCBoZWFkZXIgb2YgY2FuZGlkYXRlcykge1xuICAgIGhlYWRlcnMuc2V0KGhlYWRlciwgY2xpZW50SXApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZENsaWVudElwKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgdmFsdWUubGVuZ3RoID4gNDUgfHwgaXNJUCh2YWx1ZSkgPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBV0EsU0FBZ0IsdUJBQ2QsU0FDQSxVQUNBLG9CQUF1QyxDQUFDLEdBQ2xDO0NBQ04sTUFBTSxhQUFhLElBQUksSUFDckIsQ0FBQyxHQUFHLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLENBQ3pDLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQzVDLFFBQVEsV0FBVyxvQkFBb0IsS0FBSyxNQUFNLENBQUMsQ0FDeEQ7Q0FFQSxLQUFLLE1BQU0sVUFBVSxZQUNuQixRQUFRLE9BQU8sTUFBTTtDQUd2QixLQUFLLE1BQU0sVUFBVSxZQUNuQixRQUFRLElBQUksUUFBUSxRQUFRO0FBRWhDO0FBRUEsU0FBZ0IsaUJBQWlCLE9BQStCO0NBQzlELElBQUksT0FBTyxVQUFVLFlBQVksTUFBTSxTQUFTLE1BQU0sS0FBSyxLQUFLLE1BQU0sR0FDcEUsT0FBTztDQUdULE9BQU87QUFDVDs7O0NBbkNNLG9CQUFvQjtFQUN4QjtFQUNBO0VBQ0E7RUFDQTtDQUNGO0NBRU0sc0JBQXNCIn0=
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWlwLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy9jbGllbnQtaXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJUCB9IGZyb20gXCJub2RlOm5ldFwiO1xuXG5pbXBvcnQgeyBpc1N0cmluZ1ZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3J1bnRpbWUtdmFsdWVcIjtcblxuY29uc3QgQ0xJRU5UX0lQX0hFQURFUlMgPSBbXG4gIFwiY2YtY29ubmVjdGluZy1pcFwiLFxuICBcIngtZm9yd2FyZGVkLWZvclwiLFxuICBcIngtcmVhbC1pcFwiLFxuICBcIngtdmVyY2VsLWZvcndhcmRlZC1mb3JcIixcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IEhFQURFUl9OQU1FX1BBVFRFUk4gPSAvXlshIyQlJicqK1xcLS5eX2B8fjAtOUEtWmEtel0rJC87XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlQ2xpZW50SXBIZWFkZXJzKFxuICBoZWFkZXJzOiBIZWFkZXJzLFxuICBjbGllbnRJcDogc3RyaW5nLFxuICBjb25maWd1cmVkSGVhZGVyczogcmVhZG9ubHkgc3RyaW5nW10gPSBbXSxcbik6IHZvaWQge1xuICBjb25zdCBjYW5kaWRhdGVzID0gbmV3IFNldChcbiAgICBbLi4uQ0xJRU5UX0lQX0hFQURFUlMsIC4uLmNvbmZpZ3VyZWRIZWFkZXJzXVxuICAgICAgLm1hcCgoaGVhZGVyKSA9PiBoZWFkZXIudHJpbSgpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAuZmlsdGVyKChoZWFkZXIpID0+IEhFQURFUl9OQU1FX1BBVFRFUk4udGVzdChoZWFkZXIpKSxcbiAgKTtcblxuICBmb3IgKGNvbnN0IGhlYWRlciBvZiBjYW5kaWRhdGVzKSB7XG4gICAgaGVhZGVycy5kZWxldGUoaGVhZGVyKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgaGVhZGVyIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBoZWFkZXJzLnNldChoZWFkZXIsIGNsaWVudElwKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRDbGllbnRJcDxWYWx1ZT4odmFsdWU6IFZhbHVlKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghaXNTdHJpbmdWYWx1ZSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoID4gNDUgfHwgaXNJUCh2YWx1ZSkgPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQWFBLFNBQWdCLHVCQUNkLFNBQ0EsVUFDQSxvQkFBdUMsQ0FBQyxHQUNsQztDQUNOLE1BQU0sYUFBYSxJQUFJLElBQ3JCLENBQUMsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyxDQUN6QyxLQUFLLFdBQVcsT0FBTyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUM1QyxRQUFRLFdBQVcsb0JBQW9CLEtBQUssTUFBTSxDQUFDLENBQ3hEO0NBRUEsS0FBSyxNQUFNLFVBQVUsWUFDbkIsUUFBUSxPQUFPLE1BQU07Q0FHdkIsS0FBSyxNQUFNLFVBQVUsWUFDbkIsUUFBUSxJQUFJLFFBQVEsUUFBUTtBQUVoQztBQUVBLFNBQWdCLGlCQUF3QixPQUE2QjtDQUNuRSxJQUFJLENBQUMsY0FBYyxLQUFLLEtBQUssTUFBTSxTQUFTLE1BQU0sS0FBSyxLQUFLLE1BQU0sR0FDaEUsT0FBTztDQUdULE9BQU87QUFDVDs7O29CQXJDeUQ7Q0FFbkQsb0JBQW9CO0VBQ3hCO0VBQ0E7RUFDQTtFQUNBO0NBQ0Y7Q0FFTSxzQkFBc0IifQ==
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * sonamuAuditLog 플러그인이 audit-log-ingestor로 전달하는 이벤트 body 타입.
3
3
  */
4
+ export type AuditEventDataValue = null | undefined | boolean | number | string | Date | AuditEventDataValue[] | AuditEventData;
5
+ export interface AuditEventData {
6
+ [key: string]: AuditEventDataValue;
7
+ }
4
8
  export type AuditLogEvent = {
5
9
  eventType: string;
6
- eventData: Record<string, unknown>;
10
+ eventData: AuditEventData;
7
11
  eventKey: string;
8
12
  eventId?: string;
9
13
  eventDisplayName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/events.ts"],"names":[],"mappings":"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"}
@@ -71,4 +71,4 @@ const ROUTES = {
71
71
  //#endregion
72
72
  export { EVENT_TYPES, ORGANIZATION_EVENT_TYPES, ROUTES };
73
73
 
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy9ldmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzb25hbXVBdWRpdExvZyDtlIzrn6zqt7jsnbjsnbQgYXVkaXQtbG9nLWluZ2VzdG9y66GcIOyghOuLrO2VmOuKlCDsnbTrsqTtirggYm9keSDtg4DsnoUuXG4gKi9cbmV4cG9ydCB0eXBlIEF1ZGl0TG9nRXZlbnQgPSB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBldmVudEtleTogc3RyaW5nO1xuICBldmVudElkPzogc3RyaW5nO1xuICBldmVudERpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBpcEFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xufTtcblxuLy8gZGFzaChAYmV0dGVyLWF1dGgvaW5mcmEp7J2YIGF1ZGl0LWV2ZW50IOyDgeyImCDsp5HtlansnYQgU29uYW11IOuhnOy7rCDsoIHsnqwg6rK966Gc7JeQIOunnuqyjCDtj6ztjIUuXG5leHBvcnQgY29uc3QgRVZFTlRfVFlQRVMgPSB7XG4gIFVTRVJfQ1JFQVRFRDogXCJ1c2VyX2NyZWF0ZWRcIixcbiAgVVNFUl9TSUdORURfSU46IFwidXNlcl9zaWduZWRfaW5cIixcbiAgVVNFUl9TSUdORURfT1VUOiBcInVzZXJfc2lnbmVkX291dFwiLFxuICBVU0VSX1NJR05fSU5fRkFJTEVEOiBcInVzZXJfc2lnbl9pbl9mYWlsZWRcIixcbiAgUEFTU1dPUkRfUkVTRVRfUkVRVUVTVEVEOiBcInBhc3N3b3JkX3Jlc2V0X3JlcXVlc3RlZFwiLFxuICBQQVNTV09SRF9SRVNFVF9DT01QTEVURUQ6IFwicGFzc3dvcmRfcmVzZXRfY29tcGxldGVkXCIsXG4gIFBBU1NXT1JEX0NIQU5HRUQ6IFwicGFzc3dvcmRfY2hhbmdlZFwiLFxuICBFTUFJTF9WRVJJRklDQVRJT05fU0VOVDogXCJlbWFpbF92ZXJpZmljYXRpb25fc2VudFwiLFxuICBFTUFJTF9WRVJJRklFRDogXCJlbWFpbF92ZXJpZmllZFwiLFxuICBQUk9GSUxFX1VQREFURUQ6IFwicHJvZmlsZV91cGRhdGVkXCIsXG4gIFBST0ZJTEVfSU1BR0VfVVBEQVRFRDogXCJwcm9maWxlX2ltYWdlX3VwZGF0ZWRcIixcbiAgU0VTU0lPTl9DUkVBVEVEOiBcInNlc3Npb25fY3JlYXRlZFwiLFxuICBTRVNTSU9OX1JFVk9LRUQ6IFwic2Vzc2lvbl9yZXZva2VkXCIsXG4gIEFMTF9TRVNTSU9OU19SRVZPS0VEOiBcImFsbF9zZXNzaW9uc19yZXZva2VkXCIsXG4gIEFDQ09VTlRfTElOS0VEOiBcImFjY291bnRfbGlua2VkXCIsXG4gIEFDQ09VTlRfVU5MSU5LRUQ6IFwiYWNjb3VudF91bmxpbmtlZFwiLFxuICBVU0VSX0JBTk5FRDogXCJ1c2VyX2Jhbm5lZFwiLFxuICBVU0VSX1VOQkFOTkVEOiBcInVzZXJfdW5iYW5uZWRcIixcbiAgVVNFUl9ERUxFVEVEOiBcInVzZXJfZGVsZXRlZFwiLFxuICBVU0VSX0lNUEVSU09OQVRFRDogXCJ1c2VyX2ltcGVyc29uYXRlZFwiLFxuICBVU0VSX0lNUEVSU09OQVRFRF9TVE9QUEVEOiBcInVzZXJfaW1wZXJzb25hdGVkX3N0b3BwZWRcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMgPSB7XG4gIE9SR0FOSVpBVElPTl9DUkVBVEVEOiBcIm9yZ2FuaXphdGlvbl9jcmVhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9VUERBVEVEOiBcIm9yZ2FuaXphdGlvbl91cGRhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfQURERUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9hZGRlZFwiLFxuICBPUkdBTklaQVRJT05fTUVNQkVSX1JFTU9WRUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9yZW1vdmVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfUk9MRV9VUERBVEVEOiBcIm9yZ2FuaXphdGlvbl9tZW1iZXJfcm9sZV91cGRhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2ludml0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfQ0FOQ0VMRUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfY2FuY2VsZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfQUNDRVBURUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfYWNjZXB0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfUkVKRUNURUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfcmVqZWN0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1RFQU1fQ1JFQVRFRDogXCJvcmdhbml6YXRpb25fdGVhbV9jcmVhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9URUFNX1VQREFURUQ6IFwib3JnYW5pemF0aW9uX3RlYW1fdXBkYXRlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9ERUxFVEVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX2RlbGV0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1RFQU1fTUVNQkVSX0FEREVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX21lbWJlcl9hZGRlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfUkVNT1ZFRDogXCJvcmdhbml6YXRpb25fdGVhbV9tZW1iZXJfcmVtb3ZlZFwiLFxufSBhcyBjb25zdDtcblxuLy8gZGFzaOydmCByb3V0ZXMg7IOB7IiYIOykkSDsmrDrpqzqsIAg7Iuk7KCcIG1hdGNoZXLroZwg7JOw64qUIO2VreuqqeunjCDtj6ztjIUuXG5leHBvcnQgY29uc3QgUk9VVEVTID0ge1xuICBTSUdOX0lOOiBcIi9zaWduLWluXCIsXG4gIFNJR05fSU5fRU1BSUw6IFwiL3NpZ24taW4vZW1haWxcIixcbiAgU0lHTl9JTl9FTUFJTF9PVFA6IFwiL3NpZ24taW4vZW1haWwtb3RwXCIsXG4gIFNJR05fSU5fU09DSUFMOiBcIi9zaWduLWluL3NvY2lhbFwiLFxuICBTSUdOX0lOX1NPQ0lBTF9DQUxMQkFDSzogXCIvY2FsbGJhY2svOmlkXCIsXG4gIFNJR05fSU5fT0FVVEhfQ0FMTEJBQ0s6IFwiL29hdXRoMi9jYWxsYmFjay86aWRcIixcbiAgU0lHTl9VUDogXCIvc2lnbi11cFwiLFxuICBTSUdOX1VQX0VNQUlMOiBcIi9zaWduLXVwL2VtYWlsXCIsXG4gIFNJR05fT1VUOiBcIi9zaWduLW91dFwiLFxuICBTRU5EX1ZFUklGSUNBVElPTl9FTUFJTDogXCIvc2VuZC12ZXJpZmljYXRpb24tZW1haWxcIixcbiAgVVBEQVRFX1VTRVI6IFwiL3VwZGF0ZS11c2VyXCIsXG4gIENIQU5HRV9FTUFJTDogXCIvY2hhbmdlLWVtYWlsXCIsXG4gIFZFUklGWV9FTUFJTDogXCIvdmVyaWZ5LWVtYWlsXCIsXG4gIENIQU5HRV9QQVNTV09SRDogXCIvY2hhbmdlLXBhc3N3b3JkXCIsXG4gIFNFVF9QQVNTV09SRDogXCIvc2V0LXBhc3N3b3JkXCIsXG4gIFJFU0VUX1BBU1NXT1JEOiBcIi9yZXNldC1wYXNzd29yZFwiLFxuICBSRVFVRVNUX1BBU1NXT1JEX1JFU0VUOiBcIi9yZXF1ZXN0LXBhc3N3b3JkLXJlc2V0XCIsXG4gIFJFVk9LRV9BTExfU0VTU0lPTlM6IFwiL3Jldm9rZS1zZXNzaW9uc1wiLFxuICBEQVNIX1JPVVRFOiBcIi9kYXNoXCIsXG4gIERBU0hfVVBEQVRFX1VTRVI6IFwiL2Rhc2gvdXBkYXRlLXVzZXJcIixcbiAgREFTSF9SRVZPS0VfU0VTU0lPTlNfQUxMOiBcIi9kYXNoL3Nlc3Npb25zL3Jldm9rZS1hbGxcIixcbiAgREFTSF9CQU5fVVNFUjogXCIvZGFzaC9iYW4tdXNlclwiLFxuICBEQVNIX1VOQkFOX1VTRVI6IFwiL2Rhc2gvdW5iYW4tdXNlclwiLFxuICBBRE1JTl9ST1VURTogXCIvYWRtaW5cIixcbiAgQURNSU5fUkVWT0tFX1VTRVJfU0VTU0lPTlM6IFwiL2FkbWluL3Jldm9rZS11c2VyLXNlc3Npb25zXCIsXG4gIEFETUlOX1NFVF9QQVNTV09SRDogXCIvYWRtaW4vc2V0LXVzZXItcGFzc3dvcmRcIixcbiAgQURNSU5fQkFOX1VTRVI6IFwiL2FkbWluL2Jhbi11c2VyXCIsXG4gIEFETUlOX1VOQkFOX1VTRVI6IFwiL2FkbWluL3VuYmFuLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJUcmlnZ2VyID0geyB0cmlnZ2VyZWRCeTogc3RyaW5nOyB0cmlnZ2VyQ29udGV4dDogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBCdWlsZGVyTG9jYXRpb24gPSB7XG4gIGlwQWRkcmVzcz86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgY291bnRyeT86IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG59O1xuXG4vLyDruYzrjZTsl5Ag64SY6riw64qUIOy1nOyGjCDsl5Tti7Dti7Agc2hhcGUuIGJldHRlci1hdXRoIOuCtOu2gCDtg4DsnoXsnYQg6re464yA66GcIOyTsOyngCDslYrqs6Bcbi8vIO2VhOyalO2VnCDtlYTrk5zrp4wg7ISg7Ja47ZWY7JesIO2VuOuTpOufrCDroIjsnbTslrTsl5DshJwg7KKB7ZiA7IScIOyghOuLrO2VnOuLpC5cbmV4cG9ydCB0eXBlIFVzZXJTbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGJhbm5lZD86IGJvb2xlYW47XG4gIGJhblJlYXNvbj86IHN0cmluZyB8IG51bGw7XG4gIGJhbkV4cGlyZXM/OiBEYXRlIHwgbnVsbDtcbn07XG5leHBvcnQgdHlwZSBTZXNzaW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBsb2dpbk1ldGhvZD86IHN0cmluZyB8IG51bGw7XG4gIHVzZXJBZ2VudD86IHN0cmluZyB8IG51bGw7XG4gIGltcGVyc29uYXRlZEJ5Pzogc3RyaW5nIHwgbnVsbDtcbn07XG5leHBvcnQgdHlwZSBBY2NvdW50U25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBwcm92aWRlcklkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVmVyaWZpY2F0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT3JnYW5pemF0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNsdWc/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVGVhbVNuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE1lbWJlclNuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcm9sZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBJbnZpdGF0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0ZWFtSWQ/OiBzdHJpbmcgfCBudWxsO1xufTtcblxuLy8g7IKs7Jqp7J6QIO2UhOuhnO2VhCDrs7TsobAgKOyhsO2ajCDsi6TtjKgg7IucIG51bGwpXG5leHBvcnQgdHlwZSBVc2VyUHJvZmlsZUxpdGUgPSB7IGlkOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nIH0gfCBudWxsO1xuXG4vLyDrqqjrk6Ag67mM642U64qUIHB1cmU6IGlucHV0IC0+IEF1ZGl0TG9nRXZlbnQuXG4vLyDruYTrj5nquLAgYWRhcHRlciDsobDtmozripQgaG9vayDroIjsnbTslrTsl5DshJwg7IiY7ZaJ7ZWY6rOgLCDsobDtmowg6rKw6rO866W8IOyduOyekOuhnCDsoITri6ztlZzri6QuXG5leHBvcnQgdHlwZSBCdWlsZGVyPEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gKC4uLmFyZ3M6IEEpID0+IEF1ZGl0TG9nRXZlbnQ7XG4iXSwibWFwcGluZ3MiOiI7QUFnQkEsTUFBYSxjQUFjO0NBQ3pCLGNBQWM7Q0FDZCxnQkFBZ0I7Q0FDaEIsaUJBQWlCO0NBQ2pCLHFCQUFxQjtDQUNyQiwwQkFBMEI7Q0FDMUIsMEJBQTBCO0NBQzFCLGtCQUFrQjtDQUNsQix5QkFBeUI7Q0FDekIsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtDQUNqQix1QkFBdUI7Q0FDdkIsaUJBQWlCO0NBQ2pCLGlCQUFpQjtDQUNqQixzQkFBc0I7Q0FDdEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2IsZUFBZTtDQUNmLGNBQWM7Q0FDZCxtQkFBbUI7Q0FDbkIsMkJBQTJCO0FBQzdCO0FBRUEsTUFBYSwyQkFBMkI7Q0FDdEMsc0JBQXNCO0NBQ3RCLHNCQUFzQjtDQUN0QiwyQkFBMkI7Q0FDM0IsNkJBQTZCO0NBQzdCLGtDQUFrQztDQUNsQyw2QkFBNkI7Q0FDN0IscUNBQXFDO0NBQ3JDLHFDQUFxQztDQUNyQyxxQ0FBcUM7Q0FDckMsMkJBQTJCO0NBQzNCLDJCQUEyQjtDQUMzQiwyQkFBMkI7Q0FDM0IsZ0NBQWdDO0NBQ2hDLGtDQUFrQztBQUNwQztBQUdBLE1BQWEsU0FBUztDQUNwQixTQUFTO0NBQ1QsZUFBZTtDQUNmLG1CQUFtQjtDQUNuQixnQkFBZ0I7Q0FDaEIseUJBQXlCO0NBQ3pCLHdCQUF3QjtDQUN4QixTQUFTO0NBQ1QsZUFBZTtDQUNmLFVBQVU7Q0FDVix5QkFBeUI7Q0FDekIsYUFBYTtDQUNiLGNBQWM7Q0FDZCxjQUFjO0NBQ2QsaUJBQWlCO0NBQ2pCLGNBQWM7Q0FDZCxnQkFBZ0I7Q0FDaEIsd0JBQXdCO0NBQ3hCLHFCQUFxQjtDQUNyQixZQUFZO0NBQ1osa0JBQWtCO0NBQ2xCLDBCQUEwQjtDQUMxQixlQUFlO0NBQ2YsaUJBQWlCO0NBQ2pCLGFBQWE7Q0FDYiw0QkFBNEI7Q0FDNUIsb0JBQW9CO0NBQ3BCLGdCQUFnQjtDQUNoQixrQkFBa0I7QUFDcEIifQ==
74
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy9ldmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzb25hbXVBdWRpdExvZyDtlIzrn6zqt7jsnbjsnbQgYXVkaXQtbG9nLWluZ2VzdG9y66GcIOyghOuLrO2VmOuKlCDsnbTrsqTtirggYm9keSDtg4DsnoUuXG4gKi9cbmV4cG9ydCB0eXBlIEF1ZGl0RXZlbnREYXRhVmFsdWUgPVxuICB8IG51bGxcbiAgfCB1bmRlZmluZWRcbiAgfCBib29sZWFuXG4gIHwgbnVtYmVyXG4gIHwgc3RyaW5nXG4gIHwgRGF0ZVxuICB8IEF1ZGl0RXZlbnREYXRhVmFsdWVbXVxuICB8IEF1ZGl0RXZlbnREYXRhO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGl0RXZlbnREYXRhIHtcbiAgW2tleTogc3RyaW5nXTogQXVkaXRFdmVudERhdGFWYWx1ZTtcbn1cblxuZXhwb3J0IHR5cGUgQXVkaXRMb2dFdmVudCA9IHtcbiAgZXZlbnRUeXBlOiBzdHJpbmc7XG4gIGV2ZW50RGF0YTogQXVkaXRFdmVudERhdGE7XG4gIGV2ZW50S2V5OiBzdHJpbmc7XG4gIGV2ZW50SWQ/OiBzdHJpbmc7XG4gIGV2ZW50RGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGlwQWRkcmVzcz86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgY291bnRyeT86IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG59O1xuXG4vLyBkYXNoKEBiZXR0ZXItYXV0aC9pbmZyYSnsnZggYXVkaXQtZXZlbnQg7IOB7IiYIOynke2VqeydhCBTb25hbXUg66Gc7LusIOyggeyerCDqsr3roZzsl5Ag66ee6rKMIO2PrO2MhS5cbmV4cG9ydCBjb25zdCBFVkVOVF9UWVBFUyA9IHtcbiAgVVNFUl9DUkVBVEVEOiBcInVzZXJfY3JlYXRlZFwiLFxuICBVU0VSX1NJR05FRF9JTjogXCJ1c2VyX3NpZ25lZF9pblwiLFxuICBVU0VSX1NJR05FRF9PVVQ6IFwidXNlcl9zaWduZWRfb3V0XCIsXG4gIFVTRVJfU0lHTl9JTl9GQUlMRUQ6IFwidXNlcl9zaWduX2luX2ZhaWxlZFwiLFxuICBQQVNTV09SRF9SRVNFVF9SRVFVRVNURUQ6IFwicGFzc3dvcmRfcmVzZXRfcmVxdWVzdGVkXCIsXG4gIFBBU1NXT1JEX1JFU0VUX0NPTVBMRVRFRDogXCJwYXNzd29yZF9yZXNldF9jb21wbGV0ZWRcIixcbiAgUEFTU1dPUkRfQ0hBTkdFRDogXCJwYXNzd29yZF9jaGFuZ2VkXCIsXG4gIEVNQUlMX1ZFUklGSUNBVElPTl9TRU5UOiBcImVtYWlsX3ZlcmlmaWNhdGlvbl9zZW50XCIsXG4gIEVNQUlMX1ZFUklGSUVEOiBcImVtYWlsX3ZlcmlmaWVkXCIsXG4gIFBST0ZJTEVfVVBEQVRFRDogXCJwcm9maWxlX3VwZGF0ZWRcIixcbiAgUFJPRklMRV9JTUFHRV9VUERBVEVEOiBcInByb2ZpbGVfaW1hZ2VfdXBkYXRlZFwiLFxuICBTRVNTSU9OX0NSRUFURUQ6IFwic2Vzc2lvbl9jcmVhdGVkXCIsXG4gIFNFU1NJT05fUkVWT0tFRDogXCJzZXNzaW9uX3Jldm9rZWRcIixcbiAgQUxMX1NFU1NJT05TX1JFVk9LRUQ6IFwiYWxsX3Nlc3Npb25zX3Jldm9rZWRcIixcbiAgQUNDT1VOVF9MSU5LRUQ6IFwiYWNjb3VudF9saW5rZWRcIixcbiAgQUNDT1VOVF9VTkxJTktFRDogXCJhY2NvdW50X3VubGlua2VkXCIsXG4gIFVTRVJfQkFOTkVEOiBcInVzZXJfYmFubmVkXCIsXG4gIFVTRVJfVU5CQU5ORUQ6IFwidXNlcl91bmJhbm5lZFwiLFxuICBVU0VSX0RFTEVURUQ6IFwidXNlcl9kZWxldGVkXCIsXG4gIFVTRVJfSU1QRVJTT05BVEVEOiBcInVzZXJfaW1wZXJzb25hdGVkXCIsXG4gIFVTRVJfSU1QRVJTT05BVEVEX1NUT1BQRUQ6IFwidXNlcl9pbXBlcnNvbmF0ZWRfc3RvcHBlZFwiLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IE9SR0FOSVpBVElPTl9FVkVOVF9UWVBFUyA9IHtcbiAgT1JHQU5JWkFUSU9OX0NSRUFURUQ6IFwib3JnYW5pemF0aW9uX2NyZWF0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1VQREFURUQ6IFwib3JnYW5pemF0aW9uX3VwZGF0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9BRERFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2FkZGVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfUkVNT1ZFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX3JlbW92ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9ST0xFX1VQREFURUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9yb2xlX3VwZGF0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVEOiBcIm9yZ2FuaXphdGlvbl9tZW1iZXJfaW52aXRlZFwiLFxuICBPUkdBTklaQVRJT05fTUVNQkVSX0lOVklURV9DQU5DRUxFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2ludml0ZV9jYW5jZWxlZFwiLFxuICBPUkdBTklaQVRJT05fTUVNQkVSX0lOVklURV9BQ0NFUFRFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2ludml0ZV9hY2NlcHRlZFwiLFxuICBPUkdBTklaQVRJT05fTUVNQkVSX0lOVklURV9SRUpFQ1RFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2ludml0ZV9yZWplY3RlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9DUkVBVEVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX2NyZWF0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1RFQU1fVVBEQVRFRDogXCJvcmdhbml6YXRpb25fdGVhbV91cGRhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9URUFNX0RFTEVURUQ6IFwib3JnYW5pemF0aW9uX3RlYW1fZGVsZXRlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfQURERUQ6IFwib3JnYW5pemF0aW9uX3RlYW1fbWVtYmVyX2FkZGVkXCIsXG4gIE9SR0FOSVpBVElPTl9URUFNX01FTUJFUl9SRU1PVkVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX21lbWJlcl9yZW1vdmVkXCIsXG59IGFzIGNvbnN0O1xuXG4vLyBkYXNo7J2YIHJvdXRlcyDsg4HsiJgg7KSRIOyasOumrOqwgCDsi6TsoJwgbWF0Y2hlcuuhnCDsk7DripQg7ZWt66qp66eMIO2PrO2MhS5cbmV4cG9ydCBjb25zdCBST1VURVMgPSB7XG4gIFNJR05fSU46IFwiL3NpZ24taW5cIixcbiAgU0lHTl9JTl9FTUFJTDogXCIvc2lnbi1pbi9lbWFpbFwiLFxuICBTSUdOX0lOX0VNQUlMX09UUDogXCIvc2lnbi1pbi9lbWFpbC1vdHBcIixcbiAgU0lHTl9JTl9TT0NJQUw6IFwiL3NpZ24taW4vc29jaWFsXCIsXG4gIFNJR05fSU5fU09DSUFMX0NBTExCQUNLOiBcIi9jYWxsYmFjay86aWRcIixcbiAgU0lHTl9JTl9PQVVUSF9DQUxMQkFDSzogXCIvb2F1dGgyL2NhbGxiYWNrLzppZFwiLFxuICBTSUdOX1VQOiBcIi9zaWduLXVwXCIsXG4gIFNJR05fVVBfRU1BSUw6IFwiL3NpZ24tdXAvZW1haWxcIixcbiAgU0lHTl9PVVQ6IFwiL3NpZ24tb3V0XCIsXG4gIFNFTkRfVkVSSUZJQ0FUSU9OX0VNQUlMOiBcIi9zZW5kLXZlcmlmaWNhdGlvbi1lbWFpbFwiLFxuICBVUERBVEVfVVNFUjogXCIvdXBkYXRlLXVzZXJcIixcbiAgQ0hBTkdFX0VNQUlMOiBcIi9jaGFuZ2UtZW1haWxcIixcbiAgVkVSSUZZX0VNQUlMOiBcIi92ZXJpZnktZW1haWxcIixcbiAgQ0hBTkdFX1BBU1NXT1JEOiBcIi9jaGFuZ2UtcGFzc3dvcmRcIixcbiAgU0VUX1BBU1NXT1JEOiBcIi9zZXQtcGFzc3dvcmRcIixcbiAgUkVTRVRfUEFTU1dPUkQ6IFwiL3Jlc2V0LXBhc3N3b3JkXCIsXG4gIFJFUVVFU1RfUEFTU1dPUkRfUkVTRVQ6IFwiL3JlcXVlc3QtcGFzc3dvcmQtcmVzZXRcIixcbiAgUkVWT0tFX0FMTF9TRVNTSU9OUzogXCIvcmV2b2tlLXNlc3Npb25zXCIsXG4gIERBU0hfUk9VVEU6IFwiL2Rhc2hcIixcbiAgREFTSF9VUERBVEVfVVNFUjogXCIvZGFzaC91cGRhdGUtdXNlclwiLFxuICBEQVNIX1JFVk9LRV9TRVNTSU9OU19BTEw6IFwiL2Rhc2gvc2Vzc2lvbnMvcmV2b2tlLWFsbFwiLFxuICBEQVNIX0JBTl9VU0VSOiBcIi9kYXNoL2Jhbi11c2VyXCIsXG4gIERBU0hfVU5CQU5fVVNFUjogXCIvZGFzaC91bmJhbi11c2VyXCIsXG4gIEFETUlOX1JPVVRFOiBcIi9hZG1pblwiLFxuICBBRE1JTl9SRVZPS0VfVVNFUl9TRVNTSU9OUzogXCIvYWRtaW4vcmV2b2tlLXVzZXItc2Vzc2lvbnNcIixcbiAgQURNSU5fU0VUX1BBU1NXT1JEOiBcIi9hZG1pbi9zZXQtdXNlci1wYXNzd29yZFwiLFxuICBBRE1JTl9CQU5fVVNFUjogXCIvYWRtaW4vYmFuLXVzZXJcIixcbiAgQURNSU5fVU5CQU5fVVNFUjogXCIvYWRtaW4vdW5iYW4tdXNlclwiLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQnVpbGRlclRyaWdnZXIgPSB7IHRyaWdnZXJlZEJ5OiBzdHJpbmc7IHRyaWdnZXJDb250ZXh0OiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIEJ1aWxkZXJMb2NhdGlvbiA9IHtcbiAgaXBBZGRyZXNzPzogc3RyaW5nO1xuICBjaXR5Pzogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuICBjb3VudHJ5Q29kZT86IHN0cmluZztcbn07XG5cbi8vIOu5jOuNlOyXkCDrhJjquLDripQg7LWc7IaMIOyXlO2LsO2LsCBzaGFwZS4gYmV0dGVyLWF1dGgg64K067aAIO2DgOyeheydhCDqt7jrjIDroZwg7JOw7KeAIOyViuqzoFxuLy8g7ZWE7JqU7ZWcIO2VhOuTnOunjCDshKDslrjtlZjsl6wg7ZW465Ok65+sIOugiOydtOyWtOyXkOyEnCDsooHtmIDshJwg7KCE64us7ZWc64ukLlxuZXhwb3J0IHR5cGUgVXNlclNuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgYmFubmVkPzogYm9vbGVhbjtcbiAgYmFuUmVhc29uPzogc3RyaW5nIHwgbnVsbDtcbiAgYmFuRXhwaXJlcz86IERhdGUgfCBudWxsO1xufTtcbmV4cG9ydCB0eXBlIFNlc3Npb25TbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGxvZ2luTWV0aG9kPzogc3RyaW5nIHwgbnVsbDtcbiAgdXNlckFnZW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgaW1wZXJzb25hdGVkQnk/OiBzdHJpbmcgfCBudWxsO1xufTtcbmV4cG9ydCB0eXBlIEFjY291bnRTbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHByb3ZpZGVySWQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb25TbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBPcmdhbml6YXRpb25TbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgc2x1Zz86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBUZWFtU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgTWVtYmVyU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEludml0YXRpb25TbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRlYW1JZD86IHN0cmluZyB8IG51bGw7XG59O1xuXG4vLyDsgqzsmqnsnpAg7ZSE66Gc7ZWEIOuztOyhsCAo7KGw7ZqMIOyLpO2MqCDsi5wgbnVsbClcbmV4cG9ydCB0eXBlIFVzZXJQcm9maWxlTGl0ZSA9IHsgaWQ6IHN0cmluZzsgbmFtZT86IHN0cmluZzsgZW1haWw/OiBzdHJpbmcgfSB8IG51bGw7XG5cbi8vIOuqqOuToCDruYzrjZTripQgcHVyZTogaW5wdXQgLT4gQXVkaXRMb2dFdmVudC5cbi8vIOu5hOuPmeq4sCBhZGFwdGVyIOyhsO2ajOuKlCBob29rIOugiOydtOyWtOyXkOyEnCDsiJjtlontlZjqs6AsIOyhsO2ajCDqsrDqs7zrpbwg7J247J6Q66GcIOyghOuLrO2VnOuLpC5cbmV4cG9ydCB0eXBlIEJ1aWxkZXI8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSAoLi4uYXJnczogQSkgPT4gQXVkaXRMb2dFdmVudDtcbiJdLCJtYXBwaW5ncyI6IjtBQThCQSxNQUFhLGNBQWM7Q0FDekIsY0FBYztDQUNkLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakIscUJBQXFCO0NBQ3JCLDBCQUEwQjtDQUMxQiwwQkFBMEI7Q0FDMUIsa0JBQWtCO0NBQ2xCLHlCQUF5QjtDQUN6QixnQkFBZ0I7Q0FDaEIsaUJBQWlCO0NBQ2pCLHVCQUF1QjtDQUN2QixpQkFBaUI7Q0FDakIsaUJBQWlCO0NBQ2pCLHNCQUFzQjtDQUN0QixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLGFBQWE7Q0FDYixlQUFlO0NBQ2YsY0FBYztDQUNkLG1CQUFtQjtDQUNuQiwyQkFBMkI7QUFDN0I7QUFFQSxNQUFhLDJCQUEyQjtDQUN0QyxzQkFBc0I7Q0FDdEIsc0JBQXNCO0NBQ3RCLDJCQUEyQjtDQUMzQiw2QkFBNkI7Q0FDN0Isa0NBQWtDO0NBQ2xDLDZCQUE2QjtDQUM3QixxQ0FBcUM7Q0FDckMscUNBQXFDO0NBQ3JDLHFDQUFxQztDQUNyQywyQkFBMkI7Q0FDM0IsMkJBQTJCO0NBQzNCLDJCQUEyQjtDQUMzQixnQ0FBZ0M7Q0FDaEMsa0NBQWtDO0FBQ3BDO0FBR0EsTUFBYSxTQUFTO0NBQ3BCLFNBQVM7Q0FDVCxlQUFlO0NBQ2YsbUJBQW1CO0NBQ25CLGdCQUFnQjtDQUNoQix5QkFBeUI7Q0FDekIsd0JBQXdCO0NBQ3hCLFNBQVM7Q0FDVCxlQUFlO0NBQ2YsVUFBVTtDQUNWLHlCQUF5QjtDQUN6QixhQUFhO0NBQ2IsY0FBYztDQUNkLGNBQWM7Q0FDZCxpQkFBaUI7Q0FDakIsY0FBYztDQUNkLGdCQUFnQjtDQUNoQix3QkFBd0I7Q0FDeEIscUJBQXFCO0NBQ3JCLFlBQVk7Q0FDWixrQkFBa0I7Q0FDbEIsMEJBQTBCO0NBQzFCLGVBQWU7Q0FDZixpQkFBaUI7Q0FDakIsYUFBYTtDQUNiLDRCQUE0QjtDQUM1QixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtBQUNwQiJ9
@@ -1,11 +1,3 @@
1
1
  import { type BetterAuthPlugin } from "better-auth";
2
- /**
3
- * Better Auth databaseHooks/organizationHooks/middleware에서 수집한
4
- * 이벤트를 `DB.getDB("w")`로 얻은 knex에 `ingestAuditEvent`로 적재한다.
5
- *
6
- * - dash(@better-auth/infra)의 audit-event 수집 훅 구조를 참고해 Sonamu 내부 적재 경로로 포팅한다.
7
- * - dash의 infra 연결/API endpoint 제공 범위는 포함하지 않고, audit-event emit/ingest 경로만 유지한다.
8
- * - security 4종은 R1 결정에 따라 scope out (builders.ts의 TODO 주석 참조).
9
- */
10
2
  export declare function sonamuAuditLog(): BetterAuthPlugin;
11
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoNpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAkcjD"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,gBAAgB,EAA+B,MAAM,aAAa,CAAC;AA6MnG,wBAAgB,cAAc,IAAI,gBAAgB,CAycjD"}