@nlabs/reaktor 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +182 -0
  2. package/docs/ASSISTANT.md +138 -0
  3. package/docs/GENERATION.md +42 -5
  4. package/docs/NATIVE_PUSH.md +56 -0
  5. package/lib/actions/alfredFaq.d.ts +80 -0
  6. package/lib/actions/alfredFaq.js +206 -0
  7. package/lib/actions/analytics.js +1 -1
  8. package/lib/actions/apps.js +1 -1
  9. package/lib/actions/connections.js +1 -1
  10. package/lib/actions/content.js +1 -1
  11. package/lib/actions/contentGeneration.d.ts +4 -0
  12. package/lib/actions/contentGeneration.js +82 -10
  13. package/lib/actions/contentGenerationErrors.js +1 -1
  14. package/lib/actions/conversations.d.ts +1 -1
  15. package/lib/actions/conversations.js +19 -9
  16. package/lib/actions/crm.js +1 -1
  17. package/lib/actions/crud.js +26 -1
  18. package/lib/actions/databaseAccounts.js +1 -1
  19. package/lib/actions/databaseProvisioningLease.js +1 -1
  20. package/lib/actions/dynamodb.js +1 -1
  21. package/lib/actions/email.js +1 -1
  22. package/lib/actions/files.js +1 -1
  23. package/lib/actions/flags.js +1 -1
  24. package/lib/actions/geminiVideo.js +1 -1
  25. package/lib/actions/groups.js +1 -1
  26. package/lib/actions/higgsfield.js +1 -1
  27. package/lib/actions/imageGeneration.js +1 -1
  28. package/lib/actions/images.js +1 -1
  29. package/lib/actions/index.d.ts +1 -0
  30. package/lib/actions/index.js +2 -1
  31. package/lib/actions/ios.js +1 -1
  32. package/lib/actions/locations.js +1 -1
  33. package/lib/actions/messages.js +23 -7
  34. package/lib/actions/notifications.js +1 -1
  35. package/lib/actions/ollamaGeneration.js +1 -1
  36. package/lib/actions/openaiResponseSession.js +1 -1
  37. package/lib/actions/payments.js +1 -1
  38. package/lib/actions/personas.js +1 -1
  39. package/lib/actions/phoneSupport.js +1 -1
  40. package/lib/actions/posts.js +1 -1
  41. package/lib/actions/query.js +1 -1
  42. package/lib/actions/reactions.js +1 -1
  43. package/lib/actions/rum.js +1 -1
  44. package/lib/actions/s3.js +1 -1
  45. package/lib/actions/search.js +1 -1
  46. package/lib/actions/sms.js +1 -1
  47. package/lib/actions/statistics.js +1 -1
  48. package/lib/actions/subscriptions.js +1 -1
  49. package/lib/actions/tags.js +1 -1
  50. package/lib/actions/users.js +57 -4
  51. package/lib/actions/videoGeneration.js +1 -1
  52. package/lib/actions/videos.js +1 -1
  53. package/lib/adapters/arangoAdapter.js +1 -1
  54. package/lib/adapters/contentAdapter.js +1 -1
  55. package/lib/adapters/fileAdapter.js +1 -1
  56. package/lib/adapters/geminiGenerationAdapter.js +1 -1
  57. package/lib/adapters/higgsfieldAdapter.js +1 -1
  58. package/lib/adapters/higgsfieldModelCatalog.js +1 -1
  59. package/lib/adapters/higgsfieldModels.js +1 -1
  60. package/lib/adapters/imageAdapter.js +1 -1
  61. package/lib/adapters/imageGenerationAdapter.js +1 -1
  62. package/lib/adapters/index.js +1 -1
  63. package/lib/adapters/messageAdapter.js +1 -1
  64. package/lib/adapters/postAdapter.js +1 -1
  65. package/lib/adapters/reaktorAdapter.js +1 -1
  66. package/lib/adapters/tagAdapter.js +1 -1
  67. package/lib/adapters/userAdapter.js +1 -1
  68. package/lib/assistant/core.d.ts +53 -0
  69. package/lib/assistant/core.js +123 -0
  70. package/lib/assistant/faq.d.ts +26 -0
  71. package/lib/assistant/faq.js +238 -0
  72. package/lib/assistant/faqCore.d.ts +23 -0
  73. package/lib/assistant/faqCore.js +20 -0
  74. package/lib/assistant/index.d.ts +7 -0
  75. package/lib/assistant/index.js +5 -0
  76. package/lib/assistant/service.d.ts +35 -0
  77. package/lib/assistant/service.js +201 -0
  78. package/lib/config.js +1 -1
  79. package/lib/constants/collections.js +1 -1
  80. package/lib/durableChat/conversations.d.ts +62 -0
  81. package/lib/durableChat/conversations.js +729 -0
  82. package/lib/durableChat/errors.d.ts +6 -0
  83. package/lib/durableChat/errors.js +11 -0
  84. package/lib/durableChat/events.d.ts +22 -0
  85. package/lib/durableChat/events.js +50 -0
  86. package/lib/durableChat/index.d.ts +8 -0
  87. package/lib/durableChat/index.js +10 -0
  88. package/lib/durableChat/membership.d.ts +24 -0
  89. package/lib/durableChat/membership.js +85 -0
  90. package/lib/durableChat/messageTypes.d.ts +76 -0
  91. package/lib/durableChat/messageTypes.js +3 -0
  92. package/lib/durableChat/messages.d.ts +16 -0
  93. package/lib/durableChat/messages.js +257 -0
  94. package/lib/durableChat/transaction.d.ts +10 -0
  95. package/lib/durableChat/transaction.js +53 -0
  96. package/lib/durableChat/types.d.ts +81 -0
  97. package/lib/durableChat/types.js +3 -0
  98. package/lib/handlers/graphqlHandler.js +1 -1
  99. package/lib/index.d.ts +4 -4
  100. package/lib/index.js +5 -3
  101. package/lib/lambdas/actions/websockets.js +4 -4
  102. package/lib/lambdas/authorizer.js +1 -1
  103. package/lib/lambdas/connection.js +1 -1
  104. package/lib/lambdas/utils/message.js +1 -1
  105. package/lib/lambdas/utils/websocket.js +1 -1
  106. package/lib/mocks/conversation.js +1 -1
  107. package/lib/mocks/file.js +1 -1
  108. package/lib/mocks/group.js +1 -1
  109. package/lib/mocks/image.js +1 -1
  110. package/lib/mocks/post.js +1 -1
  111. package/lib/mocks/tag.js +1 -1
  112. package/lib/mocks/user.js +1 -1
  113. package/lib/mocks/video.js +1 -1
  114. package/lib/mutations/analytics/analytics.js +1 -1
  115. package/lib/mutations/content/content.js +1 -1
  116. package/lib/mutations/crm/crm.js +1 -1
  117. package/lib/mutations/events/events.js +1 -1
  118. package/lib/mutations/flags/flags.js +1 -1
  119. package/lib/mutations/groups/groups.js +1 -1
  120. package/lib/mutations/higgsfield/higgsfield.js +1 -1
  121. package/lib/mutations/images/images.js +1 -1
  122. package/lib/mutations/index.js +1 -1
  123. package/lib/mutations/locations/locations.js +1 -1
  124. package/lib/mutations/messages/messages.js +1 -1
  125. package/lib/mutations/personas/personas.js +1 -1
  126. package/lib/mutations/posts/posts.js +1 -1
  127. package/lib/mutations/reactions/reactions.js +1 -1
  128. package/lib/mutations/rum/rum.js +1 -1
  129. package/lib/mutations/statistics/statistics.js +1 -1
  130. package/lib/mutations/subscriptions/subscriptions.js +1 -1
  131. package/lib/mutations/tags/tags.js +1 -1
  132. package/lib/mutations/users/users.js +1 -1
  133. package/lib/mutations/videos/videos.js +1 -1
  134. package/lib/nativePush/graphql.d.ts +14 -0
  135. package/lib/nativePush/graphql.js +105 -0
  136. package/lib/nativePush/index.d.ts +7 -0
  137. package/lib/nativePush/index.js +9 -0
  138. package/lib/nativePush/migrations.d.ts +2 -0
  139. package/lib/nativePush/migrations.js +36 -0
  140. package/lib/nativePush/nativePushContract.fixture.d.ts +22 -0
  141. package/lib/nativePush/nativePushContract.fixture.js +27 -0
  142. package/lib/nativePush/payload.d.ts +2 -0
  143. package/lib/nativePush/payload.js +106 -0
  144. package/lib/nativePush/repository.d.ts +9 -0
  145. package/lib/nativePush/repository.js +120 -0
  146. package/lib/nativePush/service.d.ts +2 -0
  147. package/lib/nativePush/service.js +110 -0
  148. package/lib/nativePush/snsProvider.d.ts +17 -0
  149. package/lib/nativePush/snsProvider.js +165 -0
  150. package/lib/nativePush/types.d.ts +89 -0
  151. package/lib/nativePush/types.js +3 -0
  152. package/lib/objectTypes/analytics.js +1 -1
  153. package/lib/objectTypes/app.js +1 -1
  154. package/lib/objectTypes/bankAccount.js +1 -1
  155. package/lib/objectTypes/connection.js +1 -1
  156. package/lib/objectTypes/content.js +1 -1
  157. package/lib/objectTypes/contentGeneration.js +1 -1
  158. package/lib/objectTypes/conversation.js +1 -1
  159. package/lib/objectTypes/creditCard.js +1 -1
  160. package/lib/objectTypes/crm.js +1 -1
  161. package/lib/objectTypes/document.js +1 -1
  162. package/lib/objectTypes/error.js +1 -1
  163. package/lib/objectTypes/event.js +1 -1
  164. package/lib/objectTypes/external.js +1 -1
  165. package/lib/objectTypes/file.js +1 -1
  166. package/lib/objectTypes/filter.js +1 -1
  167. package/lib/objectTypes/flag.js +1 -1
  168. package/lib/objectTypes/group.js +1 -1
  169. package/lib/objectTypes/higgsfield.js +1 -1
  170. package/lib/objectTypes/iapSubscription.js +1 -1
  171. package/lib/objectTypes/image.js +1 -1
  172. package/lib/objectTypes/imageGeneration.js +1 -1
  173. package/lib/objectTypes/index.js +1 -1
  174. package/lib/objectTypes/location.js +1 -1
  175. package/lib/objectTypes/message.js +1 -1
  176. package/lib/objectTypes/passcode.js +1 -1
  177. package/lib/objectTypes/persona.js +1 -1
  178. package/lib/objectTypes/plan.js +1 -1
  179. package/lib/objectTypes/post.js +1 -1
  180. package/lib/objectTypes/query.js +1 -1
  181. package/lib/objectTypes/reaction.js +1 -1
  182. package/lib/objectTypes/relation.js +1 -1
  183. package/lib/objectTypes/rum.js +1 -1
  184. package/lib/objectTypes/search.js +1 -1
  185. package/lib/objectTypes/statistics.js +1 -1
  186. package/lib/objectTypes/subscription.js +1 -1
  187. package/lib/objectTypes/tag.js +1 -1
  188. package/lib/objectTypes/user.js +1 -1
  189. package/lib/objectTypes/video.js +1 -1
  190. package/lib/objectTypes/videoGeneration.js +1 -1
  191. package/lib/organizations/accountLifecycle.d.ts +7 -0
  192. package/lib/organizations/accountLifecycle.js +106 -0
  193. package/lib/organizations/authorization.d.ts +9 -0
  194. package/lib/organizations/authorization.js +40 -0
  195. package/lib/organizations/billing.d.ts +38 -0
  196. package/lib/organizations/billing.js +277 -0
  197. package/lib/organizations/billingProvider.d.ts +4 -0
  198. package/lib/organizations/billingProvider.js +287 -0
  199. package/lib/organizations/billingUpdates.d.ts +9 -0
  200. package/lib/organizations/billingUpdates.js +388 -0
  201. package/lib/organizations/index.d.ts +10 -0
  202. package/lib/organizations/index.js +12 -0
  203. package/lib/organizations/mail.d.ts +10 -0
  204. package/lib/organizations/mail.js +60 -0
  205. package/lib/organizations/memberDirectory.d.ts +15 -0
  206. package/lib/organizations/memberDirectory.js +28 -0
  207. package/lib/organizations/membership.d.ts +19 -0
  208. package/lib/organizations/membership.js +248 -0
  209. package/lib/organizations/passwordRecovery.d.ts +9 -0
  210. package/lib/organizations/passwordRecovery.js +50 -0
  211. package/lib/organizations/plans.d.ts +6 -0
  212. package/lib/organizations/plans.js +40 -0
  213. package/lib/organizations/providerPagination.d.ts +6 -0
  214. package/lib/organizations/providerPagination.js +23 -0
  215. package/lib/organizations/reconciliation.d.ts +11 -0
  216. package/lib/organizations/reconciliation.js +400 -0
  217. package/lib/organizations/signup.d.ts +25 -0
  218. package/lib/organizations/signup.js +169 -0
  219. package/lib/organizations/store.d.ts +25 -0
  220. package/lib/organizations/store.js +167 -0
  221. package/lib/organizations/types.d.ts +138 -0
  222. package/lib/organizations/types.js +3 -0
  223. package/lib/organizations/verification.d.ts +3 -0
  224. package/lib/organizations/verification.js +51 -0
  225. package/lib/queries/analytics/analytics.js +1 -1
  226. package/lib/queries/content/content.js +1 -1
  227. package/lib/queries/crm/crm.js +1 -1
  228. package/lib/queries/events/events.js +1 -1
  229. package/lib/queries/flags/flags.js +1 -1
  230. package/lib/queries/groups/groups.js +1 -1
  231. package/lib/queries/higgsfield/higgsfield.js +1 -1
  232. package/lib/queries/images/images.js +1 -1
  233. package/lib/queries/index.js +1 -1
  234. package/lib/queries/locations/locations.js +1 -1
  235. package/lib/queries/messages/messages.js +1 -1
  236. package/lib/queries/personas/personas.js +1 -1
  237. package/lib/queries/posts/posts.js +1 -1
  238. package/lib/queries/query/query.js +1 -1
  239. package/lib/queries/reactions/reactions.js +1 -1
  240. package/lib/queries/statistics/statistics.js +1 -1
  241. package/lib/queries/subscriptions/subscriptions.js +1 -1
  242. package/lib/queries/tags/tags.js +1 -1
  243. package/lib/queries/users/users.js +1 -1
  244. package/lib/queries/videos/videos.js +1 -1
  245. package/lib/templates/email/layout.js +1 -1
  246. package/lib/templates/email/passwordForgot.js +1 -1
  247. package/lib/templates/email/passwordRecovery.js +1 -1
  248. package/lib/templates/email/verifyEmail.js +1 -1
  249. package/lib/templates/email/welcome.js +1 -1
  250. package/lib/templates/sms/passwordForgot.js +1 -1
  251. package/lib/templates/sms/passwordRecovery.js +1 -1
  252. package/lib/templates/sms/verifyEmail.js +1 -1
  253. package/lib/templates/sms/verifyPhone.js +1 -1
  254. package/lib/templates/sms/welcome.js +1 -1
  255. package/lib/types/analytics.types.js +1 -1
  256. package/lib/types/apps.types.js +1 -1
  257. package/lib/types/arangodb.types.js +1 -1
  258. package/lib/types/auth.types.js +1 -1
  259. package/lib/types/connections.types.js +1 -1
  260. package/lib/types/content.types.js +1 -1
  261. package/lib/types/conversations.types.js +1 -1
  262. package/lib/types/crm.types.js +1 -1
  263. package/lib/types/databaseCredentials.types.js +1 -1
  264. package/lib/types/email.types.js +1 -1
  265. package/lib/types/error.types.js +1 -1
  266. package/lib/types/files.types.js +1 -1
  267. package/lib/types/flags.types.js +1 -1
  268. package/lib/types/google.types.js +1 -1
  269. package/lib/types/groups.types.js +1 -1
  270. package/lib/types/images.types.js +1 -1
  271. package/lib/types/index.js +1 -1
  272. package/lib/types/locations.types.js +1 -1
  273. package/lib/types/messages.types.js +1 -1
  274. package/lib/types/notifications.types.js +1 -1
  275. package/lib/types/payments.types.js +1 -1
  276. package/lib/types/personas.types.js +1 -1
  277. package/lib/types/posts.types.js +1 -1
  278. package/lib/types/rum.types.js +1 -1
  279. package/lib/types/statistics.types.js +1 -1
  280. package/lib/types/tags.types.js +1 -1
  281. package/lib/types/users.types.js +1 -1
  282. package/lib/types/videos.types.js +1 -1
  283. package/lib/types/websockets.types.js +1 -1
  284. package/lib/upload.js +1 -1
  285. package/lib/utils/adapterUtils.js +1 -1
  286. package/lib/utils/analyticsUtils.js +1 -1
  287. package/lib/utils/appContext.js +1 -1
  288. package/lib/utils/aqlHelpers.js +1 -1
  289. package/lib/utils/arangodbUtils.js +1 -1
  290. package/lib/utils/authUtils.js +1 -1
  291. package/lib/utils/awsUtils.js +1 -1
  292. package/lib/utils/collectionRegistry.js +1 -1
  293. package/lib/utils/contextUtils.js +1 -1
  294. package/lib/utils/databaseCredentials.js +1 -1
  295. package/lib/utils/dbI18n.example.js +1 -1
  296. package/lib/utils/dbI18n.js +1 -1
  297. package/lib/utils/generationCallback.js +1 -1
  298. package/lib/utils/googleTranslate.js +1 -1
  299. package/lib/utils/graphqlUtils.js +1 -1
  300. package/lib/utils/imageUtils.js +1 -1
  301. package/lib/utils/index.js +1 -1
  302. package/lib/utils/languageDetection.js +1 -1
  303. package/lib/utils/localeUtils.example.js +1 -1
  304. package/lib/utils/localeUtils.js +1 -1
  305. package/lib/utils/mediaAccess.js +1 -1
  306. package/lib/utils/middlewareUtils.js +1 -1
  307. package/lib/utils/nodeRealtime.js +1 -1
  308. package/lib/utils/opaqueToken.js +1 -1
  309. package/lib/utils/queryBuilder.js +1 -1
  310. package/lib/utils/schemaUtils.js +1 -1
  311. package/lib/utils/secretDatabase.js +1 -1
  312. package/lib/utils/sessionUtils.js +1 -1
  313. package/lib/utils/stripeUtils.js +1 -1
  314. package/lib/utils/stripeUtils.ts.bak +1 -1
  315. package/lib/utils/templateUtils.js +1 -1
  316. package/lib/utils/testUtils.js +1 -1
  317. package/lib/utils/translationQueue.example.js +1 -1
  318. package/lib/utils/translationQueue.js +1 -1
  319. package/lib/videoProcessing.js +1 -1
  320. package/package.json +16 -3
@@ -0,0 +1,110 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { buildNativePushPayload } from './payload.js';
3
+ import { createSnsPushProvider, NativePushProviderError } from './snsProvider.js';
4
+ const validId = (value)=>typeof value === 'string' && value.length > 0 && value.length <= 256;
5
+ const checkActor = (actor)=>{
6
+ if (!validId(actor?.userId) || !validId(actor?.sessionId)) {
7
+ throw new Error('Authenticated push session required');
8
+ }
9
+ };
10
+ export const createNativePushService = (options)=>{
11
+ const { canDeliver, isSessionEligible, repository, scope } = options;
12
+ if (!validId(scope?.appId) || !validId(scope?.environment)) {
13
+ throw new Error('Invalid push scope');
14
+ }
15
+ const provider = createSnsPushProvider(options);
16
+ const now = options.now ?? (()=>new Date());
17
+ const sessionRequired = async (actor)=>{
18
+ checkActor(actor);
19
+ if (!await isSessionEligible(scope, actor)) {
20
+ throw new Error('Active push session required');
21
+ }
22
+ };
23
+ return {
24
+ register: async (actor, input)=>{
25
+ await sessionRequired(actor);
26
+ if (!validId(input?.installationId) || !validId(input?.platform) || typeof input.token !== 'string' || !input.token || input.token.length > 8192) {
27
+ throw new Error('Invalid push registration');
28
+ }
29
+ const { token } = input;
30
+ const safeInput = {
31
+ ...input.platform === 'IOS' && {
32
+ apnsEnvironment: input.apnsEnvironment
33
+ },
34
+ installationId: input.installationId,
35
+ platform: input.platform
36
+ };
37
+ const tokenHash = createHash('sha256').update(token).digest('hex');
38
+ const revision = await repository.reserveBinding(scope, actor, safeInput, tokenHash);
39
+ // Create/reconcile by token, never retarget an installation's previous endpoint.
40
+ // A delayed old operation must not change the token on a newer SNS binding.
41
+ const arn = await provider.ensureEndpoint(input);
42
+ await sessionRequired(actor);
43
+ const registration = await repository.replaceBinding(scope, actor, safeInput, arn, tokenHash, revision);
44
+ try {
45
+ await sessionRequired(actor);
46
+ return registration;
47
+ } catch (error) {
48
+ await repository.disableBinding(scope, actor, registration.registrationId, registration.revision);
49
+ throw error;
50
+ }
51
+ },
52
+ send: async (userId, notification, pushOptions = {})=>{
53
+ if (!validId(userId)) {
54
+ throw new Error('Invalid push recipient');
55
+ }
56
+ const results = [];
57
+ const records = await repository.listEnabled(scope, userId);
58
+ // Sequential dispatch bounds provider load and keeps eligibility checks near each publish.
59
+ /* eslint-disable no-await-in-loop */ for (const registration of records){
60
+ const result = {
61
+ registrationId: registration.registrationId,
62
+ status: 'SKIPPED'
63
+ };
64
+ results.push(result);
65
+ if (!registration.enabled || registration.appId !== scope.appId || registration.environment !== scope.environment || registration.userId !== userId) {
66
+ continue;
67
+ }
68
+ try {
69
+ if (canDeliver && !await canDeliver(registration, notification)) {
70
+ continue;
71
+ }
72
+ if (!await isSessionEligible(scope, registration) || !await repository.isCurrent(registration)) {
73
+ continue;
74
+ }
75
+ const payload = buildNativePushPayload(registration.platform, registration.apnsEnvironment, {
76
+ notification,
77
+ recipientUserId: userId,
78
+ scope
79
+ }, pushOptions, now());
80
+ const response = await provider.publish(registration.endpointArn, payload);
81
+ result.status = 'ACCEPTED';
82
+ result.providerMessageId = response.messageId;
83
+ } catch (error) {
84
+ const code = error instanceof NativePushProviderError ? error.code : 'DeliveryFailed';
85
+ result.code = code;
86
+ if ([
87
+ 'EndpointDisabledException',
88
+ 'NotFoundException'
89
+ ].includes(code)) {
90
+ result.status = 'INVALID_ENDPOINT';
91
+ await repository.disableBinding(scope, registration, registration.registrationId, registration.revision);
92
+ } else {
93
+ result.status = error instanceof NativePushProviderError && error.transient ? 'TRANSIENT_FAILURE' : 'PERMANENT_FAILURE';
94
+ }
95
+ }
96
+ }
97
+ /* eslint-enable no-await-in-loop */ return results;
98
+ },
99
+ unregister: async (actor, registrationId, revision)=>{
100
+ checkActor(actor);
101
+ if (!validId(registrationId) || revision !== undefined && (!Number.isInteger(revision) || revision < 1)) {
102
+ throw new Error('Invalid push registration identity');
103
+ }
104
+ // Local binding only: shared SNS endpoints must not be disabled by logout.
105
+ return repository.disableBinding(scope, actor, registrationId, revision);
106
+ }
107
+ };
108
+ };
109
+
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvbmF0aXZlUHVzaC9zZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlSGFzaH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuXG5pbXBvcnQge2J1aWxkTmF0aXZlUHVzaFBheWxvYWR9IGZyb20gJy4vcGF5bG9hZC5qcyc7XG5pbXBvcnQge2NyZWF0ZVNuc1B1c2hQcm92aWRlciwgTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3J9IGZyb20gJy4vc25zUHJvdmlkZXIuanMnO1xuXG5pbXBvcnQgdHlwZSB7RGVsaXZlcnlPdXRjb21lLCBOYXRpdmVQdXNoU2VydmljZSwgTmF0aXZlUHVzaFNlcnZpY2VPcHRpb25zLCBQdXNoQWN0b3J9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jb25zdCB2YWxpZElkID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCAmJiB2YWx1ZS5sZW5ndGggPD0gMjU2O1xuY29uc3QgY2hlY2tBY3RvciA9IChhY3RvcjogUHVzaEFjdG9yKTogdm9pZCA9PiB7XG4gIGlmKCF2YWxpZElkKGFjdG9yPy51c2VySWQpIHx8ICF2YWxpZElkKGFjdG9yPy5zZXNzaW9uSWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdXRoZW50aWNhdGVkIHB1c2ggc2Vzc2lvbiByZXF1aXJlZCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTmF0aXZlUHVzaFNlcnZpY2UgPSAob3B0aW9uczogTmF0aXZlUHVzaFNlcnZpY2VPcHRpb25zKTogTmF0aXZlUHVzaFNlcnZpY2UgPT4ge1xuICBjb25zdCB7Y2FuRGVsaXZlciwgaXNTZXNzaW9uRWxpZ2libGUsIHJlcG9zaXRvcnksIHNjb3BlfSA9IG9wdGlvbnM7XG4gIGlmKCF2YWxpZElkKHNjb3BlPy5hcHBJZCkgfHwgIXZhbGlkSWQoc2NvcGU/LmVudmlyb25tZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwdXNoIHNjb3BlJyk7XG4gIH1cbiAgY29uc3QgcHJvdmlkZXIgPSBjcmVhdGVTbnNQdXNoUHJvdmlkZXIob3B0aW9ucyk7XG4gIGNvbnN0IG5vdyA9IG9wdGlvbnMubm93ID8/ICgoKSA9PiBuZXcgRGF0ZSgpKTtcbiAgY29uc3Qgc2Vzc2lvblJlcXVpcmVkID0gYXN5bmMgKGFjdG9yOiBQdXNoQWN0b3IpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjaGVja0FjdG9yKGFjdG9yKTtcbiAgICBpZighYXdhaXQgaXNTZXNzaW9uRWxpZ2libGUoc2NvcGUsIGFjdG9yKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBY3RpdmUgcHVzaCBzZXNzaW9uIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9O1xuICByZXR1cm4ge1xuICAgIHJlZ2lzdGVyOiBhc3luYyAoYWN0b3IsIGlucHV0KSA9PiB7XG4gICAgICBhd2FpdCBzZXNzaW9uUmVxdWlyZWQoYWN0b3IpO1xuICAgICAgaWYoIXZhbGlkSWQoaW5wdXQ/Lmluc3RhbGxhdGlvbklkKSB8fCAhdmFsaWRJZChpbnB1dD8ucGxhdGZvcm0pIHx8XG4gICAgICAgIHR5cGVvZiBpbnB1dC50b2tlbiAhPT0gJ3N0cmluZycgfHwgIWlucHV0LnRva2VuIHx8IGlucHV0LnRva2VuLmxlbmd0aCA+IDgxOTIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHB1c2ggcmVnaXN0cmF0aW9uJyk7XG4gICAgICB9XG4gICAgICBjb25zdCB7dG9rZW59ID0gaW5wdXQ7XG4gICAgICBjb25zdCBzYWZlSW5wdXQgPSB7XG4gICAgICAgIC4uLihpbnB1dC5wbGF0Zm9ybSA9PT0gJ0lPUycgJiYge2FwbnNFbnZpcm9ubWVudDogaW5wdXQuYXBuc0Vudmlyb25tZW50fSksXG4gICAgICAgIGluc3RhbGxhdGlvbklkOiBpbnB1dC5pbnN0YWxsYXRpb25JZCxcbiAgICAgICAgcGxhdGZvcm06IGlucHV0LnBsYXRmb3JtXG4gICAgICB9O1xuICAgICAgY29uc3QgdG9rZW5IYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHRva2VuKS5kaWdlc3QoJ2hleCcpO1xuICAgICAgY29uc3QgcmV2aXNpb24gPSBhd2FpdCByZXBvc2l0b3J5LnJlc2VydmVCaW5kaW5nKHNjb3BlLCBhY3Rvciwgc2FmZUlucHV0LCB0b2tlbkhhc2gpO1xuICAgICAgLy8gQ3JlYXRlL3JlY29uY2lsZSBieSB0b2tlbiwgbmV2ZXIgcmV0YXJnZXQgYW4gaW5zdGFsbGF0aW9uJ3MgcHJldmlvdXMgZW5kcG9pbnQuXG4gICAgICAvLyBBIGRlbGF5ZWQgb2xkIG9wZXJhdGlvbiBtdXN0IG5vdCBjaGFuZ2UgdGhlIHRva2VuIG9uIGEgbmV3ZXIgU05TIGJpbmRpbmcuXG4gICAgICBjb25zdCBhcm4gPSBhd2FpdCBwcm92aWRlci5lbnN1cmVFbmRwb2ludChpbnB1dCk7XG4gICAgICBhd2FpdCBzZXNzaW9uUmVxdWlyZWQoYWN0b3IpO1xuICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgcmVwb3NpdG9yeS5yZXBsYWNlQmluZGluZyhzY29wZSwgYWN0b3IsIHNhZmVJbnB1dCwgYXJuLFxuICAgICAgICB0b2tlbkhhc2gsIHJldmlzaW9uKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNlc3Npb25SZXF1aXJlZChhY3Rvcik7XG4gICAgICAgIHJldHVybiByZWdpc3RyYXRpb247XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZGlzYWJsZUJpbmRpbmcoc2NvcGUsIGFjdG9yLCByZWdpc3RyYXRpb24ucmVnaXN0cmF0aW9uSWQsIHJlZ2lzdHJhdGlvbi5yZXZpc2lvbik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgc2VuZDogYXN5bmMgKHVzZXJJZCwgbm90aWZpY2F0aW9uLCBwdXNoT3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICBpZighdmFsaWRJZCh1c2VySWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwdXNoIHJlY2lwaWVudCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0czogRGVsaXZlcnlPdXRjb21lW10gPSBbXTtcbiAgICAgIGNvbnN0IHJlY29yZHMgPSBhd2FpdCByZXBvc2l0b3J5Lmxpc3RFbmFibGVkKHNjb3BlLCB1c2VySWQpO1xuICAgICAgLy8gU2VxdWVudGlhbCBkaXNwYXRjaCBib3VuZHMgcHJvdmlkZXIgbG9hZCBhbmQga2VlcHMgZWxpZ2liaWxpdHkgY2hlY2tzIG5lYXIgZWFjaCBwdWJsaXNoLlxuICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuICAgICAgZm9yKGNvbnN0IHJlZ2lzdHJhdGlvbiBvZiByZWNvcmRzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogRGVsaXZlcnlPdXRjb21lID0ge3JlZ2lzdHJhdGlvbklkOiByZWdpc3RyYXRpb24ucmVnaXN0cmF0aW9uSWQsIHN0YXR1czogJ1NLSVBQRUQnfTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIGlmKCFyZWdpc3RyYXRpb24uZW5hYmxlZCB8fCByZWdpc3RyYXRpb24uYXBwSWQgIT09IHNjb3BlLmFwcElkIHx8XG4gICAgICAgICAgcmVnaXN0cmF0aW9uLmVudmlyb25tZW50ICE9PSBzY29wZS5lbnZpcm9ubWVudCB8fCByZWdpc3RyYXRpb24udXNlcklkICE9PSB1c2VySWQpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmKGNhbkRlbGl2ZXIgJiYgIWF3YWl0IGNhbkRlbGl2ZXIocmVnaXN0cmF0aW9uLCBub3RpZmljYXRpb24pKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYoIWF3YWl0IGlzU2Vzc2lvbkVsaWdpYmxlKHNjb3BlLCByZWdpc3RyYXRpb24pIHx8ICFhd2FpdCByZXBvc2l0b3J5LmlzQ3VycmVudChyZWdpc3RyYXRpb24pKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkTmF0aXZlUHVzaFBheWxvYWQocmVnaXN0cmF0aW9uLnBsYXRmb3JtLCByZWdpc3RyYXRpb24uYXBuc0Vudmlyb25tZW50LFxuICAgICAgICAgICAge25vdGlmaWNhdGlvbiwgcmVjaXBpZW50VXNlcklkOiB1c2VySWQsIHNjb3BlfSwgcHVzaE9wdGlvbnMsIG5vdygpKTtcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHByb3ZpZGVyLnB1Ymxpc2gocmVnaXN0cmF0aW9uLmVuZHBvaW50QXJuLCBwYXlsb2FkKTtcbiAgICAgICAgICByZXN1bHQuc3RhdHVzID0gJ0FDQ0VQVEVEJztcbiAgICAgICAgICByZXN1bHQucHJvdmlkZXJNZXNzYWdlSWQgPSByZXNwb25zZS5tZXNzYWdlSWQ7XG4gICAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBjb2RlID0gZXJyb3IgaW5zdGFuY2VvZiBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvciA/IGVycm9yLmNvZGUgOiAnRGVsaXZlcnlGYWlsZWQnO1xuICAgICAgICAgIHJlc3VsdC5jb2RlID0gY29kZTtcbiAgICAgICAgICBpZihbJ0VuZHBvaW50RGlzYWJsZWRFeGNlcHRpb24nLCAnTm90Rm91bmRFeGNlcHRpb24nXS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgICAgICAgcmVzdWx0LnN0YXR1cyA9ICdJTlZBTElEX0VORFBPSU5UJztcbiAgICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZGlzYWJsZUJpbmRpbmcoc2NvcGUsIHJlZ2lzdHJhdGlvbiwgcmVnaXN0cmF0aW9uLnJlZ2lzdHJhdGlvbklkLCByZWdpc3RyYXRpb24ucmV2aXNpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gZXJyb3IgaW5zdGFuY2VvZiBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvciAmJiBlcnJvci50cmFuc2llbnRcbiAgICAgICAgICAgICAgPyAnVFJBTlNJRU5UX0ZBSUxVUkUnIDogJ1BFUk1BTkVOVF9GQUlMVVJFJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfSxcbiAgICB1bnJlZ2lzdGVyOiBhc3luYyAoYWN0b3IsIHJlZ2lzdHJhdGlvbklkLCByZXZpc2lvbikgPT4ge1xuICAgICAgY2hlY2tBY3RvcihhY3Rvcik7XG4gICAgICBpZighdmFsaWRJZChyZWdpc3RyYXRpb25JZCkgfHwgKHJldmlzaW9uICE9PSB1bmRlZmluZWQgJiYgKCFOdW1iZXIuaXNJbnRlZ2VyKHJldmlzaW9uKSB8fCByZXZpc2lvbiA8IDEpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcHVzaCByZWdpc3RyYXRpb24gaWRlbnRpdHknKTtcbiAgICAgIH1cbiAgICAgIC8vIExvY2FsIGJpbmRpbmcgb25seTogc2hhcmVkIFNOUyBlbmRwb2ludHMgbXVzdCBub3QgYmUgZGlzYWJsZWQgYnkgbG9nb3V0LlxuICAgICAgcmV0dXJuIHJlcG9zaXRvcnkuZGlzYWJsZUJpbmRpbmcoc2NvcGUsIGFjdG9yLCByZWdpc3RyYXRpb25JZCwgcmV2aXNpb24pO1xuICAgIH1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsImJ1aWxkTmF0aXZlUHVzaFBheWxvYWQiLCJjcmVhdGVTbnNQdXNoUHJvdmlkZXIiLCJOYXRpdmVQdXNoUHJvdmlkZXJFcnJvciIsInZhbGlkSWQiLCJ2YWx1ZSIsImxlbmd0aCIsImNoZWNrQWN0b3IiLCJhY3RvciIsInVzZXJJZCIsInNlc3Npb25JZCIsIkVycm9yIiwiY3JlYXRlTmF0aXZlUHVzaFNlcnZpY2UiLCJvcHRpb25zIiwiY2FuRGVsaXZlciIsImlzU2Vzc2lvbkVsaWdpYmxlIiwicmVwb3NpdG9yeSIsInNjb3BlIiwiYXBwSWQiLCJlbnZpcm9ubWVudCIsInByb3ZpZGVyIiwibm93IiwiRGF0ZSIsInNlc3Npb25SZXF1aXJlZCIsInJlZ2lzdGVyIiwiaW5wdXQiLCJpbnN0YWxsYXRpb25JZCIsInBsYXRmb3JtIiwidG9rZW4iLCJzYWZlSW5wdXQiLCJhcG5zRW52aXJvbm1lbnQiLCJ0b2tlbkhhc2giLCJ1cGRhdGUiLCJkaWdlc3QiLCJyZXZpc2lvbiIsInJlc2VydmVCaW5kaW5nIiwiYXJuIiwiZW5zdXJlRW5kcG9pbnQiLCJyZWdpc3RyYXRpb24iLCJyZXBsYWNlQmluZGluZyIsImVycm9yIiwiZGlzYWJsZUJpbmRpbmciLCJyZWdpc3RyYXRpb25JZCIsInNlbmQiLCJub3RpZmljYXRpb24iLCJwdXNoT3B0aW9ucyIsInJlc3VsdHMiLCJyZWNvcmRzIiwibGlzdEVuYWJsZWQiLCJyZXN1bHQiLCJzdGF0dXMiLCJwdXNoIiwiZW5hYmxlZCIsImlzQ3VycmVudCIsInBheWxvYWQiLCJyZWNpcGllbnRVc2VySWQiLCJyZXNwb25zZSIsInB1Ymxpc2giLCJlbmRwb2ludEFybiIsInByb3ZpZGVyTWVzc2FnZUlkIiwibWVzc2FnZUlkIiwiY29kZSIsImluY2x1ZGVzIiwidHJhbnNpZW50IiwidW5yZWdpc3RlciIsInVuZGVmaW5lZCIsIk51bWJlciIsImlzSW50ZWdlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsVUFBVSxRQUFPLGNBQWM7QUFFdkMsU0FBUUMsc0JBQXNCLFFBQU8sZUFBZTtBQUNwRCxTQUFRQyxxQkFBcUIsRUFBRUMsdUJBQXVCLFFBQU8sbUJBQW1CO0FBSWhGLE1BQU1DLFVBQVUsQ0FBQ0MsUUFBb0MsT0FBT0EsVUFBVSxZQUFZQSxNQUFNQyxNQUFNLEdBQUcsS0FBS0QsTUFBTUMsTUFBTSxJQUFJO0FBQ3RILE1BQU1DLGFBQWEsQ0FBQ0M7SUFDbEIsSUFBRyxDQUFDSixRQUFRSSxPQUFPQyxXQUFXLENBQUNMLFFBQVFJLE9BQU9FLFlBQVk7UUFDeEQsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0FBQ0Y7QUFFQSxPQUFPLE1BQU1DLDBCQUEwQixDQUFDQztJQUN0QyxNQUFNLEVBQUNDLFVBQVUsRUFBRUMsaUJBQWlCLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxFQUFDLEdBQUdKO0lBQzNELElBQUcsQ0FBQ1QsUUFBUWEsT0FBT0MsVUFBVSxDQUFDZCxRQUFRYSxPQUFPRSxjQUFjO1FBQ3pELE1BQU0sSUFBSVIsTUFBTTtJQUNsQjtJQUNBLE1BQU1TLFdBQVdsQixzQkFBc0JXO0lBQ3ZDLE1BQU1RLE1BQU1SLFFBQVFRLEdBQUcsSUFBSyxDQUFBLElBQU0sSUFBSUMsTUFBSztJQUMzQyxNQUFNQyxrQkFBa0IsT0FBT2Y7UUFDN0JELFdBQVdDO1FBQ1gsSUFBRyxDQUFDLE1BQU1PLGtCQUFrQkUsT0FBT1QsUUFBUTtZQUN6QyxNQUFNLElBQUlHLE1BQU07UUFDbEI7SUFDRjtJQUNBLE9BQU87UUFDTGEsVUFBVSxPQUFPaEIsT0FBT2lCO1lBQ3RCLE1BQU1GLGdCQUFnQmY7WUFDdEIsSUFBRyxDQUFDSixRQUFRcUIsT0FBT0MsbUJBQW1CLENBQUN0QixRQUFRcUIsT0FBT0UsYUFDcEQsT0FBT0YsTUFBTUcsS0FBSyxLQUFLLFlBQVksQ0FBQ0gsTUFBTUcsS0FBSyxJQUFJSCxNQUFNRyxLQUFLLENBQUN0QixNQUFNLEdBQUcsTUFBTTtnQkFDOUUsTUFBTSxJQUFJSyxNQUFNO1lBQ2xCO1lBQ0EsTUFBTSxFQUFDaUIsS0FBSyxFQUFDLEdBQUdIO1lBQ2hCLE1BQU1JLFlBQVk7Z0JBQ2hCLEdBQUlKLE1BQU1FLFFBQVEsS0FBSyxTQUFTO29CQUFDRyxpQkFBaUJMLE1BQU1LLGVBQWU7Z0JBQUEsQ0FBQztnQkFDeEVKLGdCQUFnQkQsTUFBTUMsY0FBYztnQkFDcENDLFVBQVVGLE1BQU1FLFFBQVE7WUFDMUI7WUFDQSxNQUFNSSxZQUFZL0IsV0FBVyxVQUFVZ0MsTUFBTSxDQUFDSixPQUFPSyxNQUFNLENBQUM7WUFDNUQsTUFBTUMsV0FBVyxNQUFNbEIsV0FBV21CLGNBQWMsQ0FBQ2xCLE9BQU9ULE9BQU9xQixXQUFXRTtZQUMxRSxpRkFBaUY7WUFDakYsNEVBQTRFO1lBQzVFLE1BQU1LLE1BQU0sTUFBTWhCLFNBQVNpQixjQUFjLENBQUNaO1lBQzFDLE1BQU1GLGdCQUFnQmY7WUFDdEIsTUFBTThCLGVBQWUsTUFBTXRCLFdBQVd1QixjQUFjLENBQUN0QixPQUFPVCxPQUFPcUIsV0FBV08sS0FDNUVMLFdBQVdHO1lBQ2IsSUFBSTtnQkFDRixNQUFNWCxnQkFBZ0JmO2dCQUN0QixPQUFPOEI7WUFDVCxFQUFFLE9BQU1FLE9BQU87Z0JBQ2IsTUFBTXhCLFdBQVd5QixjQUFjLENBQUN4QixPQUFPVCxPQUFPOEIsYUFBYUksY0FBYyxFQUFFSixhQUFhSixRQUFRO2dCQUNoRyxNQUFNTTtZQUNSO1FBQ0Y7UUFDQUcsTUFBTSxPQUFPbEMsUUFBUW1DLGNBQWNDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pELElBQUcsQ0FBQ3pDLFFBQVFLLFNBQVM7Z0JBQ25CLE1BQU0sSUFBSUUsTUFBTTtZQUNsQjtZQUNBLE1BQU1tQyxVQUE2QixFQUFFO1lBQ3JDLE1BQU1DLFVBQVUsTUFBTS9CLFdBQVdnQyxXQUFXLENBQUMvQixPQUFPUjtZQUNwRCwyRkFBMkY7WUFDM0YsbUNBQW1DLEdBQ25DLEtBQUksTUFBTTZCLGdCQUFnQlMsUUFBUztnQkFDakMsTUFBTUUsU0FBMEI7b0JBQUNQLGdCQUFnQkosYUFBYUksY0FBYztvQkFBRVEsUUFBUTtnQkFBUztnQkFDL0ZKLFFBQVFLLElBQUksQ0FBQ0Y7Z0JBQ2IsSUFBRyxDQUFDWCxhQUFhYyxPQUFPLElBQUlkLGFBQWFwQixLQUFLLEtBQUtELE1BQU1DLEtBQUssSUFDNURvQixhQUFhbkIsV0FBVyxLQUFLRixNQUFNRSxXQUFXLElBQUltQixhQUFhN0IsTUFBTSxLQUFLQSxRQUFRO29CQUNsRjtnQkFDRjtnQkFDQSxJQUFJO29CQUNGLElBQUdLLGNBQWMsQ0FBQyxNQUFNQSxXQUFXd0IsY0FBY00sZUFBZTt3QkFDOUQ7b0JBQ0Y7b0JBQ0EsSUFBRyxDQUFDLE1BQU03QixrQkFBa0JFLE9BQU9xQixpQkFBaUIsQ0FBQyxNQUFNdEIsV0FBV3FDLFNBQVMsQ0FBQ2YsZUFBZTt3QkFDN0Y7b0JBQ0Y7b0JBQ0EsTUFBTWdCLFVBQVVyRCx1QkFBdUJxQyxhQUFhWCxRQUFRLEVBQUVXLGFBQWFSLGVBQWUsRUFDeEY7d0JBQUNjO3dCQUFjVyxpQkFBaUI5Qzt3QkFBUVE7b0JBQUssR0FBRzRCLGFBQWF4QjtvQkFDL0QsTUFBTW1DLFdBQVcsTUFBTXBDLFNBQVNxQyxPQUFPLENBQUNuQixhQUFhb0IsV0FBVyxFQUFFSjtvQkFDbEVMLE9BQU9DLE1BQU0sR0FBRztvQkFDaEJELE9BQU9VLGlCQUFpQixHQUFHSCxTQUFTSSxTQUFTO2dCQUMvQyxFQUFFLE9BQU1wQixPQUFPO29CQUNiLE1BQU1xQixPQUFPckIsaUJBQWlCckMsMEJBQTBCcUMsTUFBTXFCLElBQUksR0FBRztvQkFDckVaLE9BQU9ZLElBQUksR0FBR0E7b0JBQ2QsSUFBRzt3QkFBQzt3QkFBNkI7cUJBQW9CLENBQUNDLFFBQVEsQ0FBQ0QsT0FBTzt3QkFDcEVaLE9BQU9DLE1BQU0sR0FBRzt3QkFDaEIsTUFBTWxDLFdBQVd5QixjQUFjLENBQUN4QixPQUFPcUIsY0FBY0EsYUFBYUksY0FBYyxFQUFFSixhQUFhSixRQUFRO29CQUN6RyxPQUFPO3dCQUNMZSxPQUFPQyxNQUFNLEdBQUdWLGlCQUFpQnJDLDJCQUEyQnFDLE1BQU11QixTQUFTLEdBQ3ZFLHNCQUFzQjtvQkFDNUI7Z0JBQ0Y7WUFDRjtZQUNBLGtDQUFrQyxHQUNsQyxPQUFPakI7UUFDVDtRQUNBa0IsWUFBWSxPQUFPeEQsT0FBT2tDLGdCQUFnQlI7WUFDeEMzQixXQUFXQztZQUNYLElBQUcsQ0FBQ0osUUFBUXNDLG1CQUFvQlIsYUFBYStCLGFBQWMsQ0FBQSxDQUFDQyxPQUFPQyxTQUFTLENBQUNqQyxhQUFhQSxXQUFXLENBQUEsR0FBSztnQkFDeEcsTUFBTSxJQUFJdkIsTUFBTTtZQUNsQjtZQUNBLDJFQUEyRTtZQUMzRSxPQUFPSyxXQUFXeUIsY0FBYyxDQUFDeEIsT0FBT1QsT0FBT2tDLGdCQUFnQlI7UUFDakU7SUFDRjtBQUNGLEVBQUUifQ==
@@ -0,0 +1,17 @@
1
+ import type { NativePushPayload, NativePushRegistrationInput, PlatformApplicationArns, SnsSender } from './types.js';
2
+ export declare class NativePushProviderError extends Error {
3
+ readonly code: string;
4
+ readonly transient: boolean;
5
+ constructor(code: string, transient?: boolean);
6
+ }
7
+ export declare const createSnsPushProvider: ({ sns, platformApplicationArns, delay }: {
8
+ delay?: (milliseconds: number) => Promise<void>;
9
+ platformApplicationArns: PlatformApplicationArns;
10
+ sns: SnsSender;
11
+ }) => {
12
+ disableEndpoint: (endpointArn: string) => Promise<void>;
13
+ ensureEndpoint: (input: NativePushRegistrationInput, existingEndpointArn?: string) => Promise<string>;
14
+ publish: (endpointArn: string, payload: NativePushPayload) => Promise<{
15
+ messageId: string;
16
+ }>;
17
+ };
@@ -0,0 +1,165 @@
1
+ import { CreatePlatformEndpointCommand, GetEndpointAttributesCommand, PublishCommand, SetEndpointAttributesCommand } from '@aws-sdk/client-sns';
2
+ export class NativePushProviderError extends Error {
3
+ code;
4
+ transient;
5
+ constructor(code, transient = false){
6
+ super(`Native push provider error: ${code}`);
7
+ this.code = code;
8
+ this.name = 'NativePushProviderError';
9
+ this.transient = transient;
10
+ }
11
+ }
12
+ const errorCode = (error)=>{
13
+ const name = error?.name;
14
+ return typeof name === 'string' && /^[A-Za-z]{1,80}$/.test(name) ? name : 'UnknownProviderError';
15
+ };
16
+ const transientCodes = new Set([
17
+ 'ThrottledException',
18
+ 'ThrottlingException',
19
+ 'InternalErrorException',
20
+ 'ServiceUnavailableException',
21
+ 'TimeoutError',
22
+ 'NetworkingError'
23
+ ]);
24
+ export const createSnsPushProvider = ({ sns, platformApplicationArns, delay = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms)) })=>{
25
+ const applicationFor = (input)=>{
26
+ let arn;
27
+ let expected;
28
+ if (input.platform === 'ANDROID') {
29
+ arn = platformApplicationArns.android;
30
+ expected = 'GCM';
31
+ } else if (input.platform === 'IOS' && input.apnsEnvironment === 'sandbox') {
32
+ arn = platformApplicationArns.iosSandbox;
33
+ expected = 'APNS_SANDBOX';
34
+ } else if (input.platform === 'IOS' && input.apnsEnvironment === 'production') {
35
+ arn = platformApplicationArns.iosProduction;
36
+ expected = 'APNS';
37
+ }
38
+ if (!arn || !new RegExp(`^arn:[a-z0-9-]+:sns:[a-z0-9-]+:[0-9]{12}:app/${expected}/[A-Za-z0-9_.-]+$`).test(arn)) {
39
+ throw new NativePushProviderError('InvalidApplicationConfiguration');
40
+ }
41
+ return arn;
42
+ };
43
+ const endpointMatches = (arn, application)=>{
44
+ const prefix = `${application.replace(':app/', ':endpoint/')}/`;
45
+ return arn.startsWith(prefix) && /^[A-Za-z0-9-]+$/.test(arn.slice(prefix.length));
46
+ };
47
+ const endpointAllowed = (arn)=>Object.values(platformApplicationArns).some((application)=>application && endpointMatches(arn, application));
48
+ const call = async (command)=>{
49
+ for(let attempt = 0;; attempt++){
50
+ try {
51
+ // Sequential retries deliberately wait for the preceding attempt.
52
+ // eslint-disable-next-line no-await-in-loop
53
+ return await sns.send(command);
54
+ } catch (error) {
55
+ const code = errorCode(error);
56
+ if (transientCodes.has(code) && attempt < 2) {
57
+ // eslint-disable-next-line no-await-in-loop
58
+ await delay(100 * 2 ** attempt);
59
+ continue;
60
+ }
61
+ throw new NativePushProviderError(code, transientCodes.has(code));
62
+ }
63
+ }
64
+ };
65
+ const ensureEndpoint = async (input, existingEndpointArn)=>{
66
+ const application = applicationFor(input);
67
+ if (!input.token || typeof input.token !== 'string' || input.token.length > 8192) {
68
+ throw new NativePushProviderError('InvalidDeviceToken');
69
+ }
70
+ if (existingEndpointArn && !endpointMatches(existingEndpointArn, application)) {
71
+ throw new NativePushProviderError('InvalidEndpointScope');
72
+ }
73
+ const create = async ()=>{
74
+ let arn;
75
+ for(let attempt = 0;; attempt++){
76
+ try {
77
+ // Keep the AWS duplicate-endpoint diagnostic local; never expose it or its token.
78
+ // eslint-disable-next-line no-await-in-loop
79
+ const result = await sns.send(new CreatePlatformEndpointCommand({
80
+ PlatformApplicationArn: application,
81
+ Token: input.token
82
+ }));
83
+ arn = result.EndpointArn;
84
+ break;
85
+ } catch (error) {
86
+ if (errorCode(error) === 'InvalidParameterException') {
87
+ const diagnostic = error.message ?? '';
88
+ arn = diagnostic.match(/Endpoint (arn:[^\s]+) already exists with the same Token/)?.[1];
89
+ }
90
+ if (arn) {
91
+ break;
92
+ }
93
+ if (transientCodes.has(errorCode(error)) && attempt < 2) {
94
+ // eslint-disable-next-line no-await-in-loop
95
+ await delay(100 * 2 ** attempt);
96
+ continue;
97
+ }
98
+ throw new NativePushProviderError(errorCode(error), transientCodes.has(errorCode(error)));
99
+ }
100
+ }
101
+ if (!arn || !endpointMatches(arn, application)) {
102
+ throw new NativePushProviderError('InvalidEndpointScope');
103
+ }
104
+ return arn;
105
+ };
106
+ let arn = existingEndpointArn ?? await create();
107
+ let result;
108
+ try {
109
+ result = await call(new GetEndpointAttributesCommand({
110
+ EndpointArn: arn
111
+ }));
112
+ } catch (error) {
113
+ if (error.code !== 'NotFoundException') {
114
+ throw error;
115
+ }
116
+ arn = await create();
117
+ result = await call(new GetEndpointAttributesCommand({
118
+ EndpointArn: arn
119
+ }));
120
+ }
121
+ if (result.Attributes?.Token !== input.token || result.Attributes?.Enabled !== 'true') {
122
+ await call(new SetEndpointAttributesCommand({
123
+ Attributes: {
124
+ Enabled: 'true',
125
+ Token: input.token
126
+ },
127
+ EndpointArn: arn
128
+ }));
129
+ }
130
+ return arn;
131
+ };
132
+ return {
133
+ disableEndpoint: async (endpointArn)=>{
134
+ if (!endpointAllowed(endpointArn)) {
135
+ throw new NativePushProviderError('InvalidEndpointScope');
136
+ }
137
+ await call(new SetEndpointAttributesCommand({
138
+ Attributes: {
139
+ Enabled: 'false'
140
+ },
141
+ EndpointArn: endpointArn
142
+ }));
143
+ },
144
+ ensureEndpoint,
145
+ publish: async (endpointArn, payload)=>{
146
+ if (!endpointAllowed(endpointArn)) {
147
+ throw new NativePushProviderError('InvalidEndpointScope');
148
+ }
149
+ const result = await call(new PublishCommand({
150
+ Message: payload.message,
151
+ MessageAttributes: payload.attributes,
152
+ MessageStructure: 'json',
153
+ TargetArn: endpointArn
154
+ }));
155
+ if (!result.MessageId) {
156
+ throw new NativePushProviderError('MissingProviderMessageId');
157
+ }
158
+ return {
159
+ messageId: result.MessageId
160
+ };
161
+ }
162
+ };
163
+ };
164
+
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvbmF0aXZlUHVzaC9zbnNQcm92aWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDcmVhdGVQbGF0Zm9ybUVuZHBvaW50Q29tbWFuZCwgR2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZCwgUHVibGlzaENvbW1hbmQsIFNldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmRcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNucyc7XG5cbmltcG9ydCB0eXBlIHtOYXRpdmVQdXNoUGF5bG9hZCwgTmF0aXZlUHVzaFJlZ2lzdHJhdGlvbklucHV0LCBQbGF0Zm9ybUFwcGxpY2F0aW9uQXJucywgU25zU2VuZGVyfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZVB1c2hQcm92aWRlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSBjb2RlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRyYW5zaWVudDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2RlOiBzdHJpbmcsIHRyYW5zaWVudCA9IGZhbHNlKSB7XG4gICAgc3VwZXIoYE5hdGl2ZSBwdXNoIHByb3ZpZGVyIGVycm9yOiAke2NvZGV9YCk7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm5hbWUgPSAnTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3InO1xuICAgIHRoaXMudHJhbnNpZW50ID0gdHJhbnNpZW50O1xuICB9XG59XG5cbmNvbnN0IGVycm9yQ29kZSA9IChlcnJvcjogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5hbWUgPSAoZXJyb3IgYXMge25hbWU/OiBzdHJpbmd9KT8ubmFtZTtcbiAgcmV0dXJuIHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyAmJiAvXltBLVphLXpdezEsODB9JC8udGVzdChuYW1lKSA/IG5hbWUgOiAnVW5rbm93blByb3ZpZGVyRXJyb3InO1xufTtcbmNvbnN0IHRyYW5zaWVudENvZGVzID0gbmV3IFNldChbXG4gICdUaHJvdHRsZWRFeGNlcHRpb24nLCAnVGhyb3R0bGluZ0V4Y2VwdGlvbicsICdJbnRlcm5hbEVycm9yRXhjZXB0aW9uJyxcbiAgJ1NlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbicsICdUaW1lb3V0RXJyb3InLCAnTmV0d29ya2luZ0Vycm9yJ1xuXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTbnNQdXNoUHJvdmlkZXIgPSAoe1xuICBzbnMsIHBsYXRmb3JtQXBwbGljYXRpb25Bcm5zLCBkZWxheSA9IChtcykgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKVxufToge1xuICBkZWxheT86IChtaWxsaXNlY29uZHM6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcGxhdGZvcm1BcHBsaWNhdGlvbkFybnM6IFBsYXRmb3JtQXBwbGljYXRpb25Bcm5zO1xuICBzbnM6IFNuc1NlbmRlcjtcbn0pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25Gb3IgPSAoaW5wdXQ6IE5hdGl2ZVB1c2hSZWdpc3RyYXRpb25JbnB1dCk6IHN0cmluZyA9PiB7XG4gICAgbGV0IGFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBleHBlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmKGlucHV0LnBsYXRmb3JtID09PSAnQU5EUk9JRCcpIHtcbiAgICAgIGFybiA9IHBsYXRmb3JtQXBwbGljYXRpb25Bcm5zLmFuZHJvaWQ7XG4gICAgICBleHBlY3RlZCA9ICdHQ00nO1xuICAgIH0gZWxzZSBpZihpbnB1dC5wbGF0Zm9ybSA9PT0gJ0lPUycgJiYgaW5wdXQuYXBuc0Vudmlyb25tZW50ID09PSAnc2FuZGJveCcpIHtcbiAgICAgIGFybiA9IHBsYXRmb3JtQXBwbGljYXRpb25Bcm5zLmlvc1NhbmRib3g7XG4gICAgICBleHBlY3RlZCA9ICdBUE5TX1NBTkRCT1gnO1xuICAgIH0gZWxzZSBpZihpbnB1dC5wbGF0Zm9ybSA9PT0gJ0lPUycgJiYgaW5wdXQuYXBuc0Vudmlyb25tZW50ID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGFybiA9IHBsYXRmb3JtQXBwbGljYXRpb25Bcm5zLmlvc1Byb2R1Y3Rpb247XG4gICAgICBleHBlY3RlZCA9ICdBUE5TJztcbiAgICB9XG4gICAgaWYoIWFybiB8fCAhbmV3IFJlZ0V4cChgXmFybjpbYS16MC05LV0rOnNuczpbYS16MC05LV0rOlswLTldezEyfTphcHAvJHtleHBlY3RlZH0vW0EtWmEtejAtOV8uLV0rJGApLnRlc3QoYXJuKSkge1xuICAgICAgdGhyb3cgbmV3IE5hdGl2ZVB1c2hQcm92aWRlckVycm9yKCdJbnZhbGlkQXBwbGljYXRpb25Db25maWd1cmF0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBhcm47XG4gIH07XG4gIGNvbnN0IGVuZHBvaW50TWF0Y2hlcyA9IChhcm46IHN0cmluZywgYXBwbGljYXRpb246IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHByZWZpeCA9IGAke2FwcGxpY2F0aW9uLnJlcGxhY2UoJzphcHAvJywgJzplbmRwb2ludC8nKX0vYDtcbiAgICByZXR1cm4gYXJuLnN0YXJ0c1dpdGgocHJlZml4KSAmJiAvXltBLVphLXowLTktXSskLy50ZXN0KGFybi5zbGljZShwcmVmaXgubGVuZ3RoKSk7XG4gIH07XG4gIGNvbnN0IGVuZHBvaW50QWxsb3dlZCA9IChhcm46IHN0cmluZyk6IGJvb2xlYW4gPT4gT2JqZWN0LnZhbHVlcyhwbGF0Zm9ybUFwcGxpY2F0aW9uQXJucylcbiAgICAuc29tZSgoYXBwbGljYXRpb24pID0+IGFwcGxpY2F0aW9uICYmIGVuZHBvaW50TWF0Y2hlcyhhcm4sIGFwcGxpY2F0aW9uKSk7XG4gIGNvbnN0IGNhbGwgPSBhc3luYyAoY29tbWFuZDogUGFyYW1ldGVyczxTbnNTZW5kZXJbJ3NlbmQnXT5bMF0pOiBQcm9taXNlPGFueT4gPT4ge1xuICAgIGZvcihsZXQgYXR0ZW1wdCA9IDA7IDsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBTZXF1ZW50aWFsIHJldHJpZXMgZGVsaWJlcmF0ZWx5IHdhaXQgZm9yIHRoZSBwcmVjZWRpbmcgYXR0ZW1wdC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgcmV0dXJuIGF3YWl0IHNucy5zZW5kKGNvbW1hbmQgYXMgYW55KTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IGVycm9yQ29kZShlcnJvcik7XG4gICAgICAgIGlmKHRyYW5zaWVudENvZGVzLmhhcyhjb2RlKSAmJiBhdHRlbXB0IDwgMikge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgICAgYXdhaXQgZGVsYXkoMTAwICogKDIgKiogYXR0ZW1wdCkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvcihjb2RlLCB0cmFuc2llbnRDb2Rlcy5oYXMoY29kZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgZW5zdXJlRW5kcG9pbnQgPSBhc3luYyAoaW5wdXQ6IE5hdGl2ZVB1c2hSZWdpc3RyYXRpb25JbnB1dCwgZXhpc3RpbmdFbmRwb2ludEFybj86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbkZvcihpbnB1dCk7XG4gICAgaWYoIWlucHV0LnRva2VuIHx8IHR5cGVvZiBpbnB1dC50b2tlbiAhPT0gJ3N0cmluZycgfHwgaW5wdXQudG9rZW4ubGVuZ3RoID4gODE5Mikge1xuICAgICAgdGhyb3cgbmV3IE5hdGl2ZVB1c2hQcm92aWRlckVycm9yKCdJbnZhbGlkRGV2aWNlVG9rZW4nKTtcbiAgICB9XG4gICAgaWYoZXhpc3RpbmdFbmRwb2ludEFybiAmJiAhZW5kcG9pbnRNYXRjaGVzKGV4aXN0aW5nRW5kcG9pbnRBcm4sIGFwcGxpY2F0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IE5hdGl2ZVB1c2hQcm92aWRlckVycm9yKCdJbnZhbGlkRW5kcG9pbnRTY29wZScpO1xuICAgIH1cbiAgICBjb25zdCBjcmVhdGUgPSBhc3luYyAoKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICAgIGxldCBhcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGZvcihsZXQgYXR0ZW1wdCA9IDA7IDsgYXR0ZW1wdCsrKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gS2VlcCB0aGUgQVdTIGR1cGxpY2F0ZS1lbmRwb2ludCBkaWFnbm9zdGljIGxvY2FsOyBuZXZlciBleHBvc2UgaXQgb3IgaXRzIHRva2VuLlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc25zLnNlbmQobmV3IENyZWF0ZVBsYXRmb3JtRW5kcG9pbnRDb21tYW5kKHtcbiAgICAgICAgICAgIFBsYXRmb3JtQXBwbGljYXRpb25Bcm46IGFwcGxpY2F0aW9uLCBUb2tlbjogaW5wdXQudG9rZW5cbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXJuID0gcmVzdWx0LkVuZHBvaW50QXJuO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgICAgaWYoZXJyb3JDb2RlKGVycm9yKSA9PT0gJ0ludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBkaWFnbm9zdGljID0gKGVycm9yIGFzIHttZXNzYWdlPzogc3RyaW5nfSkubWVzc2FnZSA/PyAnJztcbiAgICAgICAgICAgIGFybiA9IGRpYWdub3N0aWMubWF0Y2goL0VuZHBvaW50IChhcm46W15cXHNdKykgYWxyZWFkeSBleGlzdHMgd2l0aCB0aGUgc2FtZSBUb2tlbi8pPy5bMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKGFybikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKHRyYW5zaWVudENvZGVzLmhhcyhlcnJvckNvZGUoZXJyb3IpKSAmJiBhdHRlbXB0IDwgMikge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDEwMCAqICgyICoqIGF0dGVtcHQpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3IoZXJyb3JDb2RlKGVycm9yKSwgdHJhbnNpZW50Q29kZXMuaGFzKGVycm9yQ29kZShlcnJvcikpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoIWFybiB8fCAhZW5kcG9pbnRNYXRjaGVzKGFybiwgYXBwbGljYXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvcignSW52YWxpZEVuZHBvaW50U2NvcGUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcm47XG4gICAgfTtcbiAgICBsZXQgYXJuID0gZXhpc3RpbmdFbmRwb2ludEFybiA/PyBhd2FpdCBjcmVhdGUoKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjYWxsKG5ldyBHZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kKHtFbmRwb2ludEFybjogYXJufSkpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGlmKChlcnJvciBhcyBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvcikuY29kZSAhPT0gJ05vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIGFybiA9IGF3YWl0IGNyZWF0ZSgpO1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY2FsbChuZXcgR2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZCh7RW5kcG9pbnRBcm46IGFybn0pKTtcbiAgICB9XG4gICAgaWYocmVzdWx0LkF0dHJpYnV0ZXM/LlRva2VuICE9PSBpbnB1dC50b2tlbiB8fCByZXN1bHQuQXR0cmlidXRlcz8uRW5hYmxlZCAhPT0gJ3RydWUnKSB7XG4gICAgICBhd2FpdCBjYWxsKG5ldyBTZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kKHtBdHRyaWJ1dGVzOiB7RW5hYmxlZDogJ3RydWUnLCBUb2tlbjogaW5wdXQudG9rZW59LCBFbmRwb2ludEFybjogYXJufSkpO1xuICAgIH1cbiAgICByZXR1cm4gYXJuO1xuICB9O1xuICByZXR1cm4ge1xuICAgIGRpc2FibGVFbmRwb2ludDogYXN5bmMgKGVuZHBvaW50QXJuOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGlmKCFlbmRwb2ludEFsbG93ZWQoZW5kcG9pbnRBcm4pKSB7XG4gICAgICAgIHRocm93IG5ldyBOYXRpdmVQdXNoUHJvdmlkZXJFcnJvcignSW52YWxpZEVuZHBvaW50U2NvcGUnKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGNhbGwobmV3IFNldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmQoe0F0dHJpYnV0ZXM6IHtFbmFibGVkOiAnZmFsc2UnfSwgRW5kcG9pbnRBcm46IGVuZHBvaW50QXJufSkpO1xuICAgIH0sXG4gICAgZW5zdXJlRW5kcG9pbnQsXG4gICAgcHVibGlzaDogYXN5bmMgKGVuZHBvaW50QXJuOiBzdHJpbmcsIHBheWxvYWQ6IE5hdGl2ZVB1c2hQYXlsb2FkKTogUHJvbWlzZTx7bWVzc2FnZUlkOiBzdHJpbmd9PiA9PiB7XG4gICAgICBpZighZW5kcG9pbnRBbGxvd2VkKGVuZHBvaW50QXJuKSkge1xuICAgICAgICB0aHJvdyBuZXcgTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3IoJ0ludmFsaWRFbmRwb2ludFNjb3BlJyk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWxsKG5ldyBQdWJsaXNoQ29tbWFuZCh7TWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBNZXNzYWdlQXR0cmlidXRlczogcGF5bG9hZC5hdHRyaWJ1dGVzLCBNZXNzYWdlU3RydWN0dXJlOiAnanNvbicsIFRhcmdldEFybjogZW5kcG9pbnRBcm59KSk7XG4gICAgICBpZighcmVzdWx0Lk1lc3NhZ2VJZCkge1xuICAgICAgICB0aHJvdyBuZXcgTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdQcm92aWRlck1lc3NhZ2VJZCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHttZXNzYWdlSWQ6IHJlc3VsdC5NZXNzYWdlSWR9O1xuICAgIH1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiQ3JlYXRlUGxhdGZvcm1FbmRwb2ludENvbW1hbmQiLCJHZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kIiwiUHVibGlzaENvbW1hbmQiLCJTZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kIiwiTmF0aXZlUHVzaFByb3ZpZGVyRXJyb3IiLCJFcnJvciIsImNvZGUiLCJ0cmFuc2llbnQiLCJuYW1lIiwiZXJyb3JDb2RlIiwiZXJyb3IiLCJ0ZXN0IiwidHJhbnNpZW50Q29kZXMiLCJTZXQiLCJjcmVhdGVTbnNQdXNoUHJvdmlkZXIiLCJzbnMiLCJwbGF0Zm9ybUFwcGxpY2F0aW9uQXJucyIsImRlbGF5IiwibXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJhcHBsaWNhdGlvbkZvciIsImlucHV0IiwiYXJuIiwiZXhwZWN0ZWQiLCJwbGF0Zm9ybSIsImFuZHJvaWQiLCJhcG5zRW52aXJvbm1lbnQiLCJpb3NTYW5kYm94IiwiaW9zUHJvZHVjdGlvbiIsIlJlZ0V4cCIsImVuZHBvaW50TWF0Y2hlcyIsImFwcGxpY2F0aW9uIiwicHJlZml4IiwicmVwbGFjZSIsInN0YXJ0c1dpdGgiLCJzbGljZSIsImxlbmd0aCIsImVuZHBvaW50QWxsb3dlZCIsIk9iamVjdCIsInZhbHVlcyIsInNvbWUiLCJjYWxsIiwiY29tbWFuZCIsImF0dGVtcHQiLCJzZW5kIiwiaGFzIiwiZW5zdXJlRW5kcG9pbnQiLCJleGlzdGluZ0VuZHBvaW50QXJuIiwidG9rZW4iLCJjcmVhdGUiLCJyZXN1bHQiLCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuIiwiVG9rZW4iLCJFbmRwb2ludEFybiIsImRpYWdub3N0aWMiLCJtZXNzYWdlIiwibWF0Y2giLCJBdHRyaWJ1dGVzIiwiRW5hYmxlZCIsImRpc2FibGVFbmRwb2ludCIsImVuZHBvaW50QXJuIiwicHVibGlzaCIsInBheWxvYWQiLCJNZXNzYWdlIiwiTWVzc2FnZUF0dHJpYnV0ZXMiLCJhdHRyaWJ1dGVzIiwiTWVzc2FnZVN0cnVjdHVyZSIsIlRhcmdldEFybiIsIk1lc3NhZ2VJZCIsIm1lc3NhZ2VJZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsNkJBQTZCLEVBQUVDLDRCQUE0QixFQUFFQyxjQUFjLEVBQUVDLDRCQUE0QixRQUNwRyxzQkFBc0I7QUFJN0IsT0FBTyxNQUFNQyxnQ0FBZ0NDO0lBQ2xDQyxLQUFhO0lBQ2JDLFVBQW1CO0lBRTVCLFlBQVlELElBQVksRUFBRUMsWUFBWSxLQUFLLENBQUU7UUFDM0MsS0FBSyxDQUFDLENBQUMsNEJBQTRCLEVBQUVELE1BQU07UUFDM0MsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNELFNBQVMsR0FBR0E7SUFDbkI7QUFDRjtBQUVBLE1BQU1FLFlBQVksQ0FBQ0M7SUFDakIsTUFBTUYsT0FBUUUsT0FBMkJGO0lBQ3pDLE9BQU8sT0FBT0EsU0FBUyxZQUFZLG1CQUFtQkcsSUFBSSxDQUFDSCxRQUFRQSxPQUFPO0FBQzVFO0FBQ0EsTUFBTUksaUJBQWlCLElBQUlDLElBQUk7SUFDN0I7SUFBc0I7SUFBdUI7SUFDN0M7SUFBK0I7SUFB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
@@ -0,0 +1,89 @@
1
+ import type { SNSClient } from '@aws-sdk/client-sns';
2
+ export type JsonValue = null | boolean | number | string | JsonValue[] | {
3
+ [key: string]: JsonValue;
4
+ };
5
+ export type PushScope = {
6
+ appId: string;
7
+ environment: string;
8
+ };
9
+ export type PushActor = {
10
+ sessionId: string;
11
+ userId: string;
12
+ };
13
+ export type NativePlatform = 'ANDROID' | 'IOS';
14
+ export type NativePushRegistrationInput = {
15
+ apnsEnvironment?: 'production' | 'sandbox';
16
+ installationId: string;
17
+ platform: NativePlatform;
18
+ token: string;
19
+ };
20
+ export type NativePushRegistration = PushScope & PushActor & Omit<NativePushRegistrationInput, 'token'> & {
21
+ createdAt: string;
22
+ enabled: boolean;
23
+ endpointArn: string;
24
+ registrationId: string;
25
+ revision: number;
26
+ tokenHash: string;
27
+ updatedAt: string;
28
+ };
29
+ export type NativeNotification = {
30
+ body: string;
31
+ createdAt: string;
32
+ data?: Record<string, JsonValue>;
33
+ kind: string;
34
+ notificationId: string;
35
+ title: string;
36
+ version: 1;
37
+ };
38
+ export type NativePushEnvelope = {
39
+ notification: NativeNotification;
40
+ recipientUserId: string;
41
+ scope: PushScope;
42
+ };
43
+ export type NativePushOptions = {
44
+ badge?: number;
45
+ expiresAt?: string;
46
+ };
47
+ export type NativePushPayload = {
48
+ attributes: Record<string, {
49
+ DataType: string;
50
+ StringValue: string;
51
+ }>;
52
+ message: string;
53
+ };
54
+ export type PlatformApplicationArns = {
55
+ android?: string;
56
+ iosProduction?: string;
57
+ iosSandbox?: string;
58
+ };
59
+ export type SnsSender = Pick<SNSClient, 'send'>;
60
+ export type DeliveryOutcome = {
61
+ code?: string;
62
+ providerMessageId?: string;
63
+ registrationId: string;
64
+ status: 'ACCEPTED' | 'INVALID_ENDPOINT' | 'PERMANENT_FAILURE' | 'SKIPPED' | 'TRANSIENT_FAILURE';
65
+ };
66
+ export interface NativePushRepository {
67
+ disableBinding(scope: PushScope, actor: PushActor, registrationId: string, revision?: number): Promise<boolean>;
68
+ disableEndpoint(scope: PushScope, endpointArn: string): Promise<void>;
69
+ hasActiveEndpointBinding(scope: PushScope, endpointArn: string): Promise<boolean>;
70
+ isCurrent(registration: NativePushRegistration): Promise<boolean>;
71
+ listEnabled(scope: PushScope, userId: string): Promise<NativePushRegistration[]>;
72
+ reserveBinding(scope: PushScope, actor: PushActor, input: Omit<NativePushRegistrationInput, 'token'>, tokenHash: string): Promise<number>;
73
+ replaceBinding(scope: PushScope, actor: PushActor, input: Omit<NativePushRegistrationInput, 'token'>, endpointArn: string, tokenHash: string, expectedRevision?: number): Promise<NativePushRegistration>;
74
+ }
75
+ export type NativePushServiceOptions = {
76
+ canDeliver?: (registration: NativePushRegistration, notification: NativeNotification) => Promise<boolean>;
77
+ delay?: (milliseconds: number) => Promise<void>;
78
+ isSessionEligible: (scope: PushScope, actor: PushActor) => Promise<boolean>;
79
+ now?: () => Date;
80
+ platformApplicationArns: PlatformApplicationArns;
81
+ repository: NativePushRepository;
82
+ scope: PushScope;
83
+ sns: SnsSender;
84
+ };
85
+ export interface NativePushService {
86
+ register(actor: PushActor, input: NativePushRegistrationInput): Promise<NativePushRegistration>;
87
+ send(userId: string, notification: NativeNotification, options?: NativePushOptions): Promise<DeliveryOutcome[]>;
88
+ unregister(actor: PushActor, registrationId: string, revision?: number): Promise<boolean>;
89
+ }
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvbmF0aXZlUHVzaC90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7U05TQ2xpZW50fSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcblxuZXhwb3J0IHR5cGUgSnNvblZhbHVlID0gbnVsbCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBKc29uVmFsdWVbXSB8IHtba2V5OiBzdHJpbmddOiBKc29uVmFsdWV9O1xuZXhwb3J0IHR5cGUgUHVzaFNjb3BlID0ge2FwcElkOiBzdHJpbmc7IGVudmlyb25tZW50OiBzdHJpbmd9O1xuZXhwb3J0IHR5cGUgUHVzaEFjdG9yID0ge3Nlc3Npb25JZDogc3RyaW5nOyB1c2VySWQ6IHN0cmluZ307XG5leHBvcnQgdHlwZSBOYXRpdmVQbGF0Zm9ybSA9ICdBTkRST0lEJyB8ICdJT1MnO1xuZXhwb3J0IHR5cGUgTmF0aXZlUHVzaFJlZ2lzdHJhdGlvbklucHV0ID0ge1xuICBhcG5zRW52aXJvbm1lbnQ/OiAncHJvZHVjdGlvbicgfCAnc2FuZGJveCc7XG4gIGluc3RhbGxhdGlvbklkOiBzdHJpbmc7XG4gIHBsYXRmb3JtOiBOYXRpdmVQbGF0Zm9ybTtcbiAgdG9rZW46IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBOYXRpdmVQdXNoUmVnaXN0cmF0aW9uID0gUHVzaFNjb3BlICYgUHVzaEFjdG9yICYgT21pdDxOYXRpdmVQdXNoUmVnaXN0cmF0aW9uSW5wdXQsICd0b2tlbic+ICYge1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZW5kcG9pbnRBcm46IHN0cmluZztcbiAgcmVnaXN0cmF0aW9uSWQ6IHN0cmluZztcbiAgcmV2aXNpb246IG51bWJlcjtcbiAgdG9rZW5IYXNoOiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE5hdGl2ZU5vdGlmaWNhdGlvbiA9IHtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIEpzb25WYWx1ZT47XG4gIGtpbmQ6IHN0cmluZztcbiAgbm90aWZpY2F0aW9uSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdmVyc2lvbjogMTtcbn07XG5leHBvcnQgdHlwZSBOYXRpdmVQdXNoRW52ZWxvcGUgPSB7bm90aWZpY2F0aW9uOiBOYXRpdmVOb3RpZmljYXRpb247IHJlY2lwaWVudFVzZXJJZDogc3RyaW5nOyBzY29wZTogUHVzaFNjb3BlfTtcbmV4cG9ydCB0eXBlIE5hdGl2ZVB1c2hPcHRpb25zID0ge2JhZGdlPzogbnVtYmVyOyBleHBpcmVzQXQ/OiBzdHJpbmd9O1xuZXhwb3J0IHR5cGUgTmF0aXZlUHVzaFBheWxvYWQgPSB7XG4gIGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHtEYXRhVHlwZTogc3RyaW5nOyBTdHJpbmdWYWx1ZTogc3RyaW5nfT47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBQbGF0Zm9ybUFwcGxpY2F0aW9uQXJucyA9IHthbmRyb2lkPzogc3RyaW5nOyBpb3NQcm9kdWN0aW9uPzogc3RyaW5nOyBpb3NTYW5kYm94Pzogc3RyaW5nfTtcbmV4cG9ydCB0eXBlIFNuc1NlbmRlciA9IFBpY2s8U05TQ2xpZW50LCAnc2VuZCc+O1xuZXhwb3J0IHR5cGUgRGVsaXZlcnlPdXRjb21lID0ge1xuICBjb2RlPzogc3RyaW5nO1xuICBwcm92aWRlck1lc3NhZ2VJZD86IHN0cmluZztcbiAgcmVnaXN0cmF0aW9uSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnQUNDRVBURUQnIHwgJ0lOVkFMSURfRU5EUE9JTlQnIHwgJ1BFUk1BTkVOVF9GQUlMVVJFJyB8ICdTS0lQUEVEJyB8ICdUUkFOU0lFTlRfRkFJTFVSRSc7XG59O1xuZXhwb3J0IGludGVyZmFjZSBOYXRpdmVQdXNoUmVwb3NpdG9yeSB7XG4gIGRpc2FibGVCaW5kaW5nKHNjb3BlOiBQdXNoU2NvcGUsIGFjdG9yOiBQdXNoQWN0b3IsIHJlZ2lzdHJhdGlvbklkOiBzdHJpbmcsIHJldmlzaW9uPzogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPjtcbiAgZGlzYWJsZUVuZHBvaW50KHNjb3BlOiBQdXNoU2NvcGUsIGVuZHBvaW50QXJuOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICBoYXNBY3RpdmVFbmRwb2ludEJpbmRpbmcoc2NvcGU6IFB1c2hTY29wZSwgZW5kcG9pbnRBcm46IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIGlzQ3VycmVudChyZWdpc3RyYXRpb246IE5hdGl2ZVB1c2hSZWdpc3RyYXRpb24pOiBQcm9taXNlPGJvb2xlYW4+O1xuICBsaXN0RW5hYmxlZChzY29wZTogUHVzaFNjb3BlLCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8TmF0aXZlUHVzaFJlZ2lzdHJhdGlvbltdPjtcbiAgcmVzZXJ2ZUJpbmRpbmcoc2NvcGU6IFB1c2hTY29wZSwgYWN0b3I6IFB1c2hBY3RvciwgaW5wdXQ6IE9taXQ8TmF0aXZlUHVzaFJlZ2lzdHJhdGlvbklucHV0LCAndG9rZW4nPiwgdG9rZW5IYXNoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj47XG4gIHJlcGxhY2VCaW5kaW5nKHNjb3BlOiBQdXNoU2NvcGUsIGFjdG9yOiBQdXNoQWN0b3IsIGlucHV0OiBPbWl0PE5hdGl2ZVB1c2hSZWdpc3RyYXRpb25JbnB1dCwgJ3Rva2VuJz4sIGVuZHBvaW50QXJuOiBzdHJpbmcsIHRva2VuSGFzaDogc3RyaW5nLCBleHBlY3RlZFJldmlzaW9uPzogbnVtYmVyKTogUHJvbWlzZTxOYXRpdmVQdXNoUmVnaXN0cmF0aW9uPjtcbn1cbmV4cG9ydCB0eXBlIE5hdGl2ZVB1c2hTZXJ2aWNlT3B0aW9ucyA9IHtcbiAgY2FuRGVsaXZlcj86IChyZWdpc3RyYXRpb246IE5hdGl2ZVB1c2hSZWdpc3RyYXRpb24sIG5vdGlmaWNhdGlvbjogTmF0aXZlTm90aWZpY2F0aW9uKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICBkZWxheT86IChtaWxsaXNlY29uZHM6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgaXNTZXNzaW9uRWxpZ2libGU6IChzY29wZTogUHVzaFNjb3BlLCBhY3RvcjogUHVzaEFjdG9yKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICBub3c/OiAoKSA9PiBEYXRlO1xuICBwbGF0Zm9ybUFwcGxpY2F0aW9uQXJuczogUGxhdGZvcm1BcHBsaWNhdGlvbkFybnM7XG4gIHJlcG9zaXRvcnk6IE5hdGl2ZVB1c2hSZXBvc2l0b3J5O1xuICBzY29wZTogUHVzaFNjb3BlO1xuICBzbnM6IFNuc1NlbmRlcjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIE5hdGl2ZVB1c2hTZXJ2aWNlIHtcbiAgcmVnaXN0ZXIoYWN0b3I6IFB1c2hBY3RvciwgaW5wdXQ6IE5hdGl2ZVB1c2hSZWdpc3RyYXRpb25JbnB1dCk6IFByb21pc2U8TmF0aXZlUHVzaFJlZ2lzdHJhdGlvbj47XG4gIHNlbmQodXNlcklkOiBzdHJpbmcsIG5vdGlmaWNhdGlvbjogTmF0aXZlTm90aWZpY2F0aW9uLCBvcHRpb25zPzogTmF0aXZlUHVzaE9wdGlvbnMpOiBQcm9taXNlPERlbGl2ZXJ5T3V0Y29tZVtdPjtcbiAgdW5yZWdpc3RlcihhY3RvcjogUHVzaEFjdG9yLCByZWdpc3RyYXRpb25JZDogc3RyaW5nLCByZXZpc2lvbj86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0RBLFdBSUMifQ==
@@ -144,4 +144,4 @@ export const analyticsDashboardType = schemaComposer.createObjectTC({
144
144
  name: 'AnalyticsDashboard'
145
145
  });
146
146
 
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYW5hbHl0aWNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI2LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzLmpzJztcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc1R5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVPYmplY3RUQyh7XG4gIGZpZWxkczoge1xuICAgIGFkZGVkOiAnRmxvYXQnLFxuICAgIGFuYWx5dGljc0lkOiAnSUQhJyxcbiAgICBhcHBJZDogJ0lEIScsXG4gICAgYXBwTmFtZToge1xuICAgICAgcmVzb2x2ZTogKGl0ZW0pID0+IGl0ZW0uYXBwTmFtZSB8fCBpdGVtLm1vbml0b3JOYW1lIHx8IGl0ZW0uYXBwSWQsXG4gICAgICB0eXBlOiAnU3RyaW5nISdcbiAgICB9LFxuICAgIGNhbk1hbmFnZToge1xuICAgICAgcmVzb2x2ZTogKF9pdGVtLCBfYXJncywgY29udGV4dCkgPT4gaXNBZG1pblVzZXIoY29udGV4dD8uc2Vzc2lvbiksXG4gICAgICB0eXBlOiAnQm9vbGVhbiEnXG4gICAgfSxcbiAgICBkb21haW46ICdTdHJpbmchJyxcbiAgICBtb2RpZmllZDogJ0Zsb2F0JyxcbiAgICBtb25pdG9ySWQ6ICdJRCEnLFxuICAgIG1vbml0b3JOYW1lOiAnU3RyaW5nIScsXG4gICAgdXNlcklkczoge1xuICAgICAgcmVzb2x2ZTogKGl0ZW0sIF9hcmdzLCBjb250ZXh0KSA9PiBpc0FkbWluVXNlcihjb250ZXh0Py5zZXNzaW9uKSA/IGl0ZW0udXNlcklkcyB8fCBbXSA6IFtdLFxuICAgICAgdHlwZTogJ1tJRCFdISdcbiAgICB9XG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3MnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0NvbmZpZ3VyYXRpb25UeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhbmFseXRpY3NJZDogJ0lEIScsXG4gICAgYXBwSWQ6ICdJRCEnXG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3NDb25maWd1cmF0aW9uJ1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBbmFseXRpY3NNb25pdG9ySW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGFwcElkOiAnSUQhJyxcbiAgICBhcHBOYW1lOiAnU3RyaW5nJyxcbiAgICBkb21haW46ICdTdHJpbmchJyxcbiAgICBtb25pdG9yTmFtZTogJ1N0cmluZydcbiAgfSxcbiAgbmFtZTogJ0NyZWF0ZUFuYWx5dGljc01vbml0b3JJbnB1dCdcbn0pO1xuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnJlYWtkb3duVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgY291bnQ6ICdJbnQhJyxcbiAgICBsYWJlbDogJ1N0cmluZyEnLFxuICAgIHBlcmNlbnRhZ2U6ICdGbG9hdCEnXG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3NCcmVha2Rvd24nXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0V2ZW50VHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYnJvd3Nlckxhbmd1YWdlOiAnU3RyaW5nIScsXG4gICAgYnJvd3Nlck5hbWU6ICdTdHJpbmchJyxcbiAgICBicm93c2VyVmVyc2lvbjogJ1N0cmluZyEnLFxuICAgIGRldmljZVR5cGU6ICdTdHJpbmchJyxcbiAgICBkdXJhdGlvbjogJ0Zsb2F0IScsXG4gICAgZXZlbnRJZDogJ0lEIScsXG4gICAgaW50ZXJhY3Rpb246ICdTdHJpbmchJyxcbiAgICBuYW1lOiAnU3RyaW5nIScsXG4gICAgb3NOYW1lOiAnU3RyaW5nIScsXG4gICAgb3NWZXJzaW9uOiAnU3RyaW5nIScsXG4gICAgb3V0Y29tZTogJ1N0cmluZyEnLFxuICAgIHBhZ2VJZDogJ1N0cmluZyEnLFxuICAgIHBhcmVudFBhZ2U6ICdTdHJpbmchJyxcbiAgICBwYXRoOiAnU3RyaW5nIScsXG4gICAgc2Vzc2lvbklkOiAnSUQhJyxcbiAgICB0aW1lc3RhbXA6ICdGbG9hdCEnLFxuICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICB2aWV3SWQ6ICdTdHJpbmchJ1xuICB9LFxuICBuYW1lOiAnQW5hbHl0aWNzRXZlbnQnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc1RpbWVQb2ludFR5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVPYmplY3RUQyh7XG4gIGZpZWxkczoge1xuICAgIGVycm9yczogJ0ludCEnLFxuICAgIGV2ZW50czogJ0ludCEnLFxuICAgIGludGVyYWN0aW9uczogJ0ludCEnLFxuICAgIHNlc3Npb25zOiAnSW50IScsXG4gICAgdGltZXN0YW1wOiAnRmxvYXQhJ1xuICB9LFxuICBuYW1lOiAnQW5hbHl0aWNzVGltZVBvaW50J1xufSk7XG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NWaWV3UGVyZm9ybWFuY2VUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBmYWlsdXJlUmF0ZTogJ0Zsb2F0IScsXG4gICAgcDUwOiAnRmxvYXQhJyxcbiAgICBwNzU6ICdGbG9hdCEnLFxuICAgIHA5NTogJ0Zsb2F0IScsXG4gICAgc2FtcGxlQ291bnQ6ICdJbnQhJyxcbiAgICB0aW1lb3V0UmF0ZTogJ0Zsb2F0IScsXG4gICAgdmlld0lkOiAnU3RyaW5nISdcbiAgfSxcbiAgbmFtZTogJ0FuYWx5dGljc1ZpZXdQZXJmb3JtYW5jZSdcbn0pO1xuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzRGFzaGJvYXJkVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYW5hbHl0aWNzSWQ6ICdJRCEnLFxuICAgIGFwcElkOiAnSUQhJyxcbiAgICBhcHBOYW1lOiAnU3RyaW5nIScsXG4gICAgYXZlcmFnZUR1cmF0aW9uOiAnRmxvYXQhJyxcbiAgICBicm93c2VyczogW2FuYWx5dGljc0JyZWFrZG93blR5cGVdLFxuICAgIGRldmljZXM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBlbmRUaW1lOiAnRmxvYXQhJyxcbiAgICBlcnJvckNvdW50OiAnSW50IScsXG4gICAgZXZlbnRDb3VudDogJ0ludCEnLFxuICAgIGdlbmVyYXRlZEF0OiAnRmxvYXQhJyxcbiAgICBpbnRlcmFjdGlvbnM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBsYW5ndWFnZXM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBtb25pdG9ySWQ6ICdJRCEnLFxuICAgIG1vbml0b3JOYW1lOiAnU3RyaW5nIScsXG4gICAgb3BlcmF0aW5nU3lzdGVtczogW2FuYWx5dGljc0JyZWFrZG93blR5cGVdLFxuICAgIHBhZ2VzOiBbYW5hbHl0aWNzQnJlYWtkb3duVHlwZV0sXG4gICAgcGFnZVZpZXdDb3VudDogJ0ludCEnLFxuICAgIHBhcnRpYWw6ICdCb29sZWFuIScsXG4gICAgcGVyZm9ybWFuY2VTYW1wbGVzOiAnSW50IScsXG4gICAgcmVjZW50RXZlbnRzOiBbYW5hbHl0aWNzRXZlbnRUeXBlXSxcbiAgICBzZXNzaW9uQ291bnQ6ICdJbnQhJyxcbiAgICBzdGFydFRpbWU6ICdGbG9hdCEnLFxuICAgIHRpbWVsaW5lOiBbYW5hbHl0aWNzVGltZVBvaW50VHlwZV0sXG4gICAgdmlld1BlcmZvcm1hbmNlOiBbYW5hbHl0aWNzVmlld1BlcmZvcm1hbmNlVHlwZV1cbiAgfSxcbiAgbmFtZTogJ0FuYWx5dGljc0Rhc2hib2FyZCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiaXNBZG1pblVzZXIiLCJhbmFseXRpY3NUeXBlIiwiY3JlYXRlT2JqZWN0VEMiLCJmaWVsZHMiLCJhZGRlZCIsImFuYWx5dGljc0lkIiwiYXBwSWQiLCJhcHBOYW1lIiwicmVzb2x2ZSIsIml0ZW0iLCJtb25pdG9yTmFtZSIsInR5cGUiLCJjYW5NYW5hZ2UiLCJfaXRlbSIsIl9hcmdzIiwiY29udGV4dCIsInNlc3Npb24iLCJkb21haW4iLCJtb2RpZmllZCIsIm1vbml0b3JJZCIsInVzZXJJZHMiLCJuYW1lIiwiYW5hbHl0aWNzQ29uZmlndXJhdGlvblR5cGUiLCJjcmVhdGVBbmFseXRpY3NNb25pdG9ySW5wdXRUeXBlIiwiY3JlYXRlSW5wdXRUQyIsImFuYWx5dGljc0JyZWFrZG93blR5cGUiLCJjb3VudCIsImxhYmVsIiwicGVyY2VudGFnZSIsImFuYWx5dGljc0V2ZW50VHlwZSIsImJyb3dzZXJMYW5ndWFnZSIsImJyb3dzZXJOYW1lIiwiYnJvd3NlclZlcnNpb24iLCJkZXZpY2VUeXBlIiwiZHVyYXRpb24iLCJldmVudElkIiwiaW50ZXJhY3Rpb24iLCJvc05hbWUiLCJvc1ZlcnNpb24iLCJvdXRjb21lIiwicGFnZUlkIiwicGFyZW50UGFnZSIsInBhdGgiLCJzZXNzaW9uSWQiLCJ0aW1lc3RhbXAiLCJ2aWV3SWQiLCJhbmFseXRpY3NUaW1lUG9pbnRUeXBlIiwiZXJyb3JzIiwiZXZlbnRzIiwiaW50ZXJhY3Rpb25zIiwic2Vzc2lvbnMiLCJhbmFseXRpY3NWaWV3UGVyZm9ybWFuY2VUeXBlIiwiZmFpbHVyZVJhdGUiLCJwNTAiLCJwNzUiLCJwOTUiLCJzYW1wbGVDb3VudCIsInRpbWVvdXRSYXRlIiwiYW5hbHl0aWNzRGFzaGJvYXJkVHlwZSIsImF2ZXJhZ2VEdXJhdGlvbiIsImJyb3dzZXJzIiwiZGV2aWNlcyIsImVuZFRpbWUiLCJlcnJvckNvdW50IiwiZXZlbnRDb3VudCIsImdlbmVyYXRlZEF0IiwibGFuZ3VhZ2VzIiwib3BlcmF0aW5nU3lzdGVtcyIsInBhZ2VzIiwicGFnZVZpZXdDb3VudCIsInBhcnRpYWwiLCJwZXJmb3JtYW5jZVNhbXBsZXMiLCJyZWNlbnRFdmVudHMiLCJzZXNzaW9uQ291bnQiLCJzdGFydFRpbWUiLCJ0aW1lbGluZSIsInZpZXdQZXJmb3JtYW5jZSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUMvQyxTQUFRQyxXQUFXLFFBQU8sMkJBQTJCO0FBRXJELE9BQU8sTUFBTUMsZ0JBQWdCRixlQUFlRyxjQUFjLENBQUM7SUFDekRDLFFBQVE7UUFDTkMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLE9BQU87UUFDUEMsU0FBUztZQUNQQyxTQUFTLENBQUNDLE9BQVNBLEtBQUtGLE9BQU8sSUFBSUUsS0FBS0MsV0FBVyxJQUFJRCxLQUFLSCxLQUFLO1lBQ2pFSyxNQUFNO1FBQ1I7UUFDQUMsV0FBVztZQUNUSixTQUFTLENBQUNLLE9BQU9DLE9BQU9DLFVBQVlmLFlBQVllLFNBQVNDO1lBQ3pETCxNQUFNO1FBQ1I7UUFDQU0sUUFBUTtRQUNSQyxVQUFVO1FBQ1ZDLFdBQVc7UUFDWFQsYUFBYTtRQUNiVSxTQUFTO1lBQ1BaLFNBQVMsQ0FBQ0MsTUFBTUssT0FBT0MsVUFBWWYsWUFBWWUsU0FBU0MsV0FBV1AsS0FBS1csT0FBTyxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQzFGVCxNQUFNO1FBQ1I7SUFDRjtJQUNBVSxNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTUMsNkJBQTZCdkIsZUFBZUcsY0FBYyxDQUFDO0lBQ3RFQyxRQUFRO1FBQ05FLGFBQWE7UUFDYkMsT0FBTztJQUNUO0lBQ0FlLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNRSxrQ0FBa0N4QixlQUFleUIsYUFBYSxDQUFDO0lBQzFFckIsUUFBUTtRQUNORyxPQUFPO1FBQ1BDLFNBQVM7UUFDVFUsUUFBUTtRQUNSUCxhQUFhO0lBQ2Y7SUFDQVcsTUFBTTtBQUNSLEdBQUc7QUFFSCxPQUFPLE1BQU1JLHlCQUF5QjFCLGVBQWVHLGNBQWMsQ0FBQztJQUNsRUMsUUFBUTtRQUNOdUIsT0FBTztRQUNQQyxPQUFPO1FBQ1BDLFlBQVk7SUFDZDtJQUNBUCxNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTVEscUJBQXFCOUIsZUFBZUcsY0FBYyxDQUFDO0lBQzlEQyxRQUFRO1FBQ04yQixpQkFBaUI7UUFDakJDLGFBQWE7UUFDYkMsZ0JBQWdCO1FBQ2hCQyxZQUFZO1FBQ1pDLFVBQVU7UUFDVkMsU0FBUztRQUNUQyxhQUFhO1FBQ2JmLE1BQU07UUFDTmdCLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLFFBQVE7UUFDUkMsWUFBWTtRQUNaQyxNQUFNO1FBQ05DLFdBQVc7UUFDWEMsV0FBVztRQUNYakMsTUFBTTtRQUNOa0MsUUFBUTtJQUNWO0lBQ0F4QixNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTXlCLHlCQUF5Qi9DLGVBQWVHLGNBQWMsQ0FBQztJQUNsRUMsUUFBUTtRQUNONEMsUUFBUTtRQUNSQyxRQUFRO1FBQ1JDLGNBQWM7UUFDZEMsVUFBVTtRQUNWTixXQUFXO0lBQ2I7SUFDQXZCLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNOEIsK0JBQStCcEQsZUFBZUcsY0FBYyxDQUFDO0lBQ3hFQyxRQUFRO1FBQ05pRCxhQUFhO1FBQ2JDLEtBQUs7UUFDTEMsS0FBSztRQUNMQyxLQUFLO1FBQ0xDLGFBQWE7UUFDYkMsYUFBYTtRQUNiWixRQUFRO0lBQ1Y7SUFDQXhCLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNcUMseUJBQXlCM0QsZUFBZUcsY0FBYyxDQUFDO0lBQ2xFQyxRQUFRO1FBQ05FLGFBQWE7UUFDYkMsT0FBTztRQUNQQyxTQUFTO1FBQ1RvRCxpQkFBaUI7UUFDakJDLFVBQVU7WUFBQ25DO1NBQXVCO1FBQ2xDb0MsU0FBUztZQUFDcEM7U0FBdUI7UUFDakNxQyxTQUFTO1FBQ1RDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxhQUFhO1FBQ2JoQixjQUFjO1lBQUN4QjtTQUF1QjtRQUN0Q3lDLFdBQVc7WUFBQ3pDO1NBQXVCO1FBQ25DTixXQUFXO1FBQ1hULGFBQWE7UUFDYnlELGtCQUFrQjtZQUFDMUM7U0FBdUI7UUFDMUMyQyxPQUFPO1lBQUMzQztTQUF1QjtRQUMvQjRDLGVBQWU7UUFDZkMsU0FBUztRQUNUQyxvQkFBb0I7UUFDcEJDLGNBQWM7WUFBQzNDO1NBQW1CO1FBQ2xDNEMsY0FBYztRQUNkQyxXQUFXO1FBQ1hDLFVBQVU7WUFBQzdCO1NBQXVCO1FBQ2xDOEIsaUJBQWlCO1lBQUN6QjtTQUE2QjtJQUNqRDtJQUNBOUIsTUFBTTtBQUNSLEdBQUcifQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYW5hbHl0aWNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI2LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzLmpzJztcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc1R5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVPYmplY3RUQyh7XG4gIGZpZWxkczoge1xuICAgIGFkZGVkOiAnRmxvYXQnLFxuICAgIGFuYWx5dGljc0lkOiAnSUQhJyxcbiAgICBhcHBJZDogJ0lEIScsXG4gICAgYXBwTmFtZToge1xuICAgICAgcmVzb2x2ZTogKGl0ZW0pID0+IGl0ZW0uYXBwTmFtZSB8fCBpdGVtLm1vbml0b3JOYW1lIHx8IGl0ZW0uYXBwSWQsXG4gICAgICB0eXBlOiAnU3RyaW5nISdcbiAgICB9LFxuICAgIGNhbk1hbmFnZToge1xuICAgICAgcmVzb2x2ZTogKF9pdGVtLCBfYXJncywgY29udGV4dCkgPT4gaXNBZG1pblVzZXIoY29udGV4dD8uc2Vzc2lvbiksXG4gICAgICB0eXBlOiAnQm9vbGVhbiEnXG4gICAgfSxcbiAgICBkb21haW46ICdTdHJpbmchJyxcbiAgICBtb2RpZmllZDogJ0Zsb2F0JyxcbiAgICBtb25pdG9ySWQ6ICdJRCEnLFxuICAgIG1vbml0b3JOYW1lOiAnU3RyaW5nIScsXG4gICAgdXNlcklkczoge1xuICAgICAgcmVzb2x2ZTogKGl0ZW0sIF9hcmdzLCBjb250ZXh0KSA9PiBpc0FkbWluVXNlcihjb250ZXh0Py5zZXNzaW9uKSA/IGl0ZW0udXNlcklkcyB8fCBbXSA6IFtdLFxuICAgICAgdHlwZTogJ1tJRCFdISdcbiAgICB9XG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3MnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0NvbmZpZ3VyYXRpb25UeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhbmFseXRpY3NJZDogJ0lEIScsXG4gICAgYXBwSWQ6ICdJRCEnXG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3NDb25maWd1cmF0aW9uJ1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBbmFseXRpY3NNb25pdG9ySW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGFwcElkOiAnSUQhJyxcbiAgICBhcHBOYW1lOiAnU3RyaW5nJyxcbiAgICBkb21haW46ICdTdHJpbmchJyxcbiAgICBtb25pdG9yTmFtZTogJ1N0cmluZydcbiAgfSxcbiAgbmFtZTogJ0NyZWF0ZUFuYWx5dGljc01vbml0b3JJbnB1dCdcbn0pO1xuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnJlYWtkb3duVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgY291bnQ6ICdJbnQhJyxcbiAgICBsYWJlbDogJ1N0cmluZyEnLFxuICAgIHBlcmNlbnRhZ2U6ICdGbG9hdCEnXG4gIH0sXG4gIG5hbWU6ICdBbmFseXRpY3NCcmVha2Rvd24nXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0V2ZW50VHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYnJvd3Nlckxhbmd1YWdlOiAnU3RyaW5nIScsXG4gICAgYnJvd3Nlck5hbWU6ICdTdHJpbmchJyxcbiAgICBicm93c2VyVmVyc2lvbjogJ1N0cmluZyEnLFxuICAgIGRldmljZVR5cGU6ICdTdHJpbmchJyxcbiAgICBkdXJhdGlvbjogJ0Zsb2F0IScsXG4gICAgZXZlbnRJZDogJ0lEIScsXG4gICAgaW50ZXJhY3Rpb246ICdTdHJpbmchJyxcbiAgICBuYW1lOiAnU3RyaW5nIScsXG4gICAgb3NOYW1lOiAnU3RyaW5nIScsXG4gICAgb3NWZXJzaW9uOiAnU3RyaW5nIScsXG4gICAgb3V0Y29tZTogJ1N0cmluZyEnLFxuICAgIHBhZ2VJZDogJ1N0cmluZyEnLFxuICAgIHBhcmVudFBhZ2U6ICdTdHJpbmchJyxcbiAgICBwYXRoOiAnU3RyaW5nIScsXG4gICAgc2Vzc2lvbklkOiAnSUQhJyxcbiAgICB0aW1lc3RhbXA6ICdGbG9hdCEnLFxuICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICB2aWV3SWQ6ICdTdHJpbmchJ1xuICB9LFxuICBuYW1lOiAnQW5hbHl0aWNzRXZlbnQnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc1RpbWVQb2ludFR5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVPYmplY3RUQyh7XG4gIGZpZWxkczoge1xuICAgIGVycm9yczogJ0ludCEnLFxuICAgIGV2ZW50czogJ0ludCEnLFxuICAgIGludGVyYWN0aW9uczogJ0ludCEnLFxuICAgIHNlc3Npb25zOiAnSW50IScsXG4gICAgdGltZXN0YW1wOiAnRmxvYXQhJ1xuICB9LFxuICBuYW1lOiAnQW5hbHl0aWNzVGltZVBvaW50J1xufSk7XG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NWaWV3UGVyZm9ybWFuY2VUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBmYWlsdXJlUmF0ZTogJ0Zsb2F0IScsXG4gICAgcDUwOiAnRmxvYXQhJyxcbiAgICBwNzU6ICdGbG9hdCEnLFxuICAgIHA5NTogJ0Zsb2F0IScsXG4gICAgc2FtcGxlQ291bnQ6ICdJbnQhJyxcbiAgICB0aW1lb3V0UmF0ZTogJ0Zsb2F0IScsXG4gICAgdmlld0lkOiAnU3RyaW5nISdcbiAgfSxcbiAgbmFtZTogJ0FuYWx5dGljc1ZpZXdQZXJmb3JtYW5jZSdcbn0pO1xuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzRGFzaGJvYXJkVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYW5hbHl0aWNzSWQ6ICdJRCEnLFxuICAgIGFwcElkOiAnSUQhJyxcbiAgICBhcHBOYW1lOiAnU3RyaW5nIScsXG4gICAgYXZlcmFnZUR1cmF0aW9uOiAnRmxvYXQhJyxcbiAgICBicm93c2VyczogW2FuYWx5dGljc0JyZWFrZG93blR5cGVdLFxuICAgIGRldmljZXM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBlbmRUaW1lOiAnRmxvYXQhJyxcbiAgICBlcnJvckNvdW50OiAnSW50IScsXG4gICAgZXZlbnRDb3VudDogJ0ludCEnLFxuICAgIGdlbmVyYXRlZEF0OiAnRmxvYXQhJyxcbiAgICBpbnRlcmFjdGlvbnM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBsYW5ndWFnZXM6IFthbmFseXRpY3NCcmVha2Rvd25UeXBlXSxcbiAgICBtb25pdG9ySWQ6ICdJRCEnLFxuICAgIG1vbml0b3JOYW1lOiAnU3RyaW5nIScsXG4gICAgb3BlcmF0aW5nU3lzdGVtczogW2FuYWx5dGljc0JyZWFrZG93blR5cGVdLFxuICAgIHBhZ2VzOiBbYW5hbHl0aWNzQnJlYWtkb3duVHlwZV0sXG4gICAgcGFnZVZpZXdDb3VudDogJ0ludCEnLFxuICAgIHBhcnRpYWw6ICdCb29sZWFuIScsXG4gICAgcGVyZm9ybWFuY2VTYW1wbGVzOiAnSW50IScsXG4gICAgcmVjZW50RXZlbnRzOiBbYW5hbHl0aWNzRXZlbnRUeXBlXSxcbiAgICBzZXNzaW9uQ291bnQ6ICdJbnQhJyxcbiAgICBzdGFydFRpbWU6ICdGbG9hdCEnLFxuICAgIHRpbWVsaW5lOiBbYW5hbHl0aWNzVGltZVBvaW50VHlwZV0sXG4gICAgdmlld1BlcmZvcm1hbmNlOiBbYW5hbHl0aWNzVmlld1BlcmZvcm1hbmNlVHlwZV1cbiAgfSxcbiAgbmFtZTogJ0FuYWx5dGljc0Rhc2hib2FyZCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiaXNBZG1pblVzZXIiLCJhbmFseXRpY3NUeXBlIiwiY3JlYXRlT2JqZWN0VEMiLCJmaWVsZHMiLCJhZGRlZCIsImFuYWx5dGljc0lkIiwiYXBwSWQiLCJhcHBOYW1lIiwicmVzb2x2ZSIsIml0ZW0iLCJtb25pdG9yTmFtZSIsInR5cGUiLCJjYW5NYW5hZ2UiLCJfaXRlbSIsIl9hcmdzIiwiY29udGV4dCIsInNlc3Npb24iLCJkb21haW4iLCJtb2RpZmllZCIsIm1vbml0b3JJZCIsInVzZXJJZHMiLCJuYW1lIiwiYW5hbHl0aWNzQ29uZmlndXJhdGlvblR5cGUiLCJjcmVhdGVBbmFseXRpY3NNb25pdG9ySW5wdXRUeXBlIiwiY3JlYXRlSW5wdXRUQyIsImFuYWx5dGljc0JyZWFrZG93blR5cGUiLCJjb3VudCIsImxhYmVsIiwicGVyY2VudGFnZSIsImFuYWx5dGljc0V2ZW50VHlwZSIsImJyb3dzZXJMYW5ndWFnZSIsImJyb3dzZXJOYW1lIiwiYnJvd3NlclZlcnNpb24iLCJkZXZpY2VUeXBlIiwiZHVyYXRpb24iLCJldmVudElkIiwiaW50ZXJhY3Rpb24iLCJvc05hbWUiLCJvc1ZlcnNpb24iLCJvdXRjb21lIiwicGFnZUlkIiwicGFyZW50UGFnZSIsInBhdGgiLCJzZXNzaW9uSWQiLCJ0aW1lc3RhbXAiLCJ2aWV3SWQiLCJhbmFseXRpY3NUaW1lUG9pbnRUeXBlIiwiZXJyb3JzIiwiZXZlbnRzIiwiaW50ZXJhY3Rpb25zIiwic2Vzc2lvbnMiLCJhbmFseXRpY3NWaWV3UGVyZm9ybWFuY2VUeXBlIiwiZmFpbHVyZVJhdGUiLCJwNTAiLCJwNzUiLCJwOTUiLCJzYW1wbGVDb3VudCIsInRpbWVvdXRSYXRlIiwiYW5hbHl0aWNzRGFzaGJvYXJkVHlwZSIsImF2ZXJhZ2VEdXJhdGlvbiIsImJyb3dzZXJzIiwiZGV2aWNlcyIsImVuZFRpbWUiLCJlcnJvckNvdW50IiwiZXZlbnRDb3VudCIsImdlbmVyYXRlZEF0IiwibGFuZ3VhZ2VzIiwib3BlcmF0aW5nU3lzdGVtcyIsInBhZ2VzIiwicGFnZVZpZXdDb3VudCIsInBhcnRpYWwiLCJwZXJmb3JtYW5jZVNhbXBsZXMiLCJyZWNlbnRFdmVudHMiLCJzZXNzaW9uQ291bnQiLCJzdGFydFRpbWUiLCJ0aW1lbGluZSIsInZpZXdQZXJmb3JtYW5jZSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUMvQyxTQUFRQyxXQUFXLFFBQU8sMkJBQTJCO0FBRXJELE9BQU8sTUFBTUMsZ0JBQWdCRixlQUFlRyxjQUFjLENBQUM7SUFDekRDLFFBQVE7UUFDTkMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLE9BQU87UUFDUEMsU0FBUztZQUNQQyxTQUFTLENBQUNDLE9BQVNBLEtBQUtGLE9BQU8sSUFBSUUsS0FBS0MsV0FBVyxJQUFJRCxLQUFLSCxLQUFLO1lBQ2pFSyxNQUFNO1FBQ1I7UUFDQUMsV0FBVztZQUNUSixTQUFTLENBQUNLLE9BQU9DLE9BQU9DLFVBQVlmLFlBQVllLFNBQVNDO1lBQ3pETCxNQUFNO1FBQ1I7UUFDQU0sUUFBUTtRQUNSQyxVQUFVO1FBQ1ZDLFdBQVc7UUFDWFQsYUFBYTtRQUNiVSxTQUFTO1lBQ1BaLFNBQVMsQ0FBQ0MsTUFBTUssT0FBT0MsVUFBWWYsWUFBWWUsU0FBU0MsV0FBV1AsS0FBS1csT0FBTyxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQzFGVCxNQUFNO1FBQ1I7SUFDRjtJQUNBVSxNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTUMsNkJBQTZCdkIsZUFBZUcsY0FBYyxDQUFDO0lBQ3RFQyxRQUFRO1FBQ05FLGFBQWE7UUFDYkMsT0FBTztJQUNUO0lBQ0FlLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNRSxrQ0FBa0N4QixlQUFleUIsYUFBYSxDQUFDO0lBQzFFckIsUUFBUTtRQUNORyxPQUFPO1FBQ1BDLFNBQVM7UUFDVFUsUUFBUTtRQUNSUCxhQUFhO0lBQ2Y7SUFDQVcsTUFBTTtBQUNSLEdBQUc7QUFFSCxPQUFPLE1BQU1JLHlCQUF5QjFCLGVBQWVHLGNBQWMsQ0FBQztJQUNsRUMsUUFBUTtRQUNOdUIsT0FBTztRQUNQQyxPQUFPO1FBQ1BDLFlBQVk7SUFDZDtJQUNBUCxNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTVEscUJBQXFCOUIsZUFBZUcsY0FBYyxDQUFDO0lBQzlEQyxRQUFRO1FBQ04yQixpQkFBaUI7UUFDakJDLGFBQWE7UUFDYkMsZ0JBQWdCO1FBQ2hCQyxZQUFZO1FBQ1pDLFVBQVU7UUFDVkMsU0FBUztRQUNUQyxhQUFhO1FBQ2JmLE1BQU07UUFDTmdCLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLFFBQVE7UUFDUkMsWUFBWTtRQUNaQyxNQUFNO1FBQ05DLFdBQVc7UUFDWEMsV0FBVztRQUNYakMsTUFBTTtRQUNOa0MsUUFBUTtJQUNWO0lBQ0F4QixNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTXlCLHlCQUF5Qi9DLGVBQWVHLGNBQWMsQ0FBQztJQUNsRUMsUUFBUTtRQUNONEMsUUFBUTtRQUNSQyxRQUFRO1FBQ1JDLGNBQWM7UUFDZEMsVUFBVTtRQUNWTixXQUFXO0lBQ2I7SUFDQXZCLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNOEIsK0JBQStCcEQsZUFBZUcsY0FBYyxDQUFDO0lBQ3hFQyxRQUFRO1FBQ05pRCxhQUFhO1FBQ2JDLEtBQUs7UUFDTEMsS0FBSztRQUNMQyxLQUFLO1FBQ0xDLGFBQWE7UUFDYkMsYUFBYTtRQUNiWixRQUFRO0lBQ1Y7SUFDQXhCLE1BQU07QUFDUixHQUFHO0FBRUgsT0FBTyxNQUFNcUMseUJBQXlCM0QsZUFBZUcsY0FBYyxDQUFDO0lBQ2xFQyxRQUFRO1FBQ05FLGFBQWE7UUFDYkMsT0FBTztRQUNQQyxTQUFTO1FBQ1RvRCxpQkFBaUI7UUFDakJDLFVBQVU7WUFBQ25DO1NBQXVCO1FBQ2xDb0MsU0FBUztZQUFDcEM7U0FBdUI7UUFDakNxQyxTQUFTO1FBQ1RDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxhQUFhO1FBQ2JoQixjQUFjO1lBQUN4QjtTQUF1QjtRQUN0Q3lDLFdBQVc7WUFBQ3pDO1NBQXVCO1FBQ25DTixXQUFXO1FBQ1hULGFBQWE7UUFDYnlELGtCQUFrQjtZQUFDMUM7U0FBdUI7UUFDMUMyQyxPQUFPO1lBQUMzQztTQUF1QjtRQUMvQjRDLGVBQWU7UUFDZkMsU0FBUztRQUNUQyxvQkFBb0I7UUFDcEJDLGNBQWM7WUFBQzNDO1NBQW1CO1FBQ2xDNEMsY0FBYztRQUNkQyxXQUFXO1FBQ1hDLFVBQVU7WUFBQzdCO1NBQXVCO1FBQ2xDOEIsaUJBQWlCO1lBQUN6QjtTQUE2QjtJQUNqRDtJQUNBOUIsTUFBTTtBQUNSLEdBQUcifQ==
@@ -168,4 +168,4 @@ export const appInfoType = schemaComposer.createObjectTC({
168
168
  });
169
169
  appInfoType.addFields(document.getFields());
170
170
 
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYXBwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuXG5pbXBvcnQge2dldEltYWdlVXJsfSBmcm9tICcuLi9hY3Rpb25zL2ltYWdlcy5qcyc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7ZG9jdW1lbnR9IGZyb20gJy4vZG9jdW1lbnQuanMnO1xuXG5leHBvcnQgY29uc3QgYXBwVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYWNjZXNzVG9rZW46IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWNjZXNzIHRva2VuIGZvciB0aGUgYXBwLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGFjdGl2ZToge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBhcHAgaXMgYWN0aXZlLicsXG4gICAgICB0eXBlOiAnQm9vbGVhbicsXG4gICAgfSxcbiAgICBhZGRlZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgYXBwIHdhcyBhZGRlZC4nLFxuICAgICAgdHlwZTogJ0Zsb2F0JyxcbiAgICB9LFxuICAgIGNsaWVudFRva2VuOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NsaWVudCB0b2tlbiBmb3IgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBkaXNwbGF5TmFtZToge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNwbGF5IG5hbWUgb2YgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBpZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaXRlbS5fa2V5O1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCcsXG4gICAgfSxcbiAgICBpbWFnZVVybDoge1xuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCBpbWFnZS4nLFxuICAgICAgcmVzb2x2ZSh7X2tleTogaW1hZ2VJZCwgaW1hZ2VUeXBlLCB1c2VySWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkOiBDb25maWcuZ2V0KCdhcHAubmFtZScpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIG1vZGlmaWVkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RpbWVzdGFtcCB3aGVuIHRoZSBhcHAgd2FzIGxhc3QgbW9kaWZpZWQuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgfSxcbiAgICBuYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBzZWNyZXQ6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VjcmV0IGtleSBmb3IgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICB0aHVtYlVybDoge1xuICAgICAgcmVzb2x2ZSh7X2tleTogaW1hZ2VJZCwgaW1hZ2VUeXBlLCB1c2VySWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkOiBDb25maWcuZ2V0KCdhcHAubmFtZScpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnQXBwJ1xufSk7XG5hcHBUeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG5cbmV4cG9ydCBjb25zdCBhcHBJbnB1dFR5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVJbnB1dFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYWN0aXZlOiB7IHR5cGU6ICdCb29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBhcHAgaXMgYWN0aXZlLicgfSxcbiAgICBkaXNwbGF5TmFtZTogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdEaXNwbGF5IG5hbWUgb2YgdGhlIGFwcC4nIH0sXG4gICAgaWQ6IHsgdHlwZTogJ0lEJywgZGVzY3JpcHRpb246ICdBcHAgSUQuJyB9LFxuICAgIG5hbWU6IHsgdHlwZTogJ1N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBwaG90bzogeyB0eXBlOiAnSUQnLCBkZXNjcmlwdGlvbjogJ1Bob3RvL2ltYWdlIElEIGZvciB0aGUgYXBwLicgfVxuICB9LFxuICBuYW1lOiAnQXBwSW5wdXQnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFwcEluZm9UeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhY2Nlc3NUb2tlbjogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdBY2Nlc3MgdG9rZW4gZm9yIHRoZSBhcHAuJyB9LFxuICAgIGFkZGVkOiB7IHR5cGU6ICdGbG9hdCcsIGRlc2NyaXB0aW9uOiAnVGltZXN0YW1wIHdoZW4gdGhlIGFwcCB3YXMgYWRkZWQuJyB9LFxuICAgIGRpc3BsYXlOYW1lOiB7IHR5cGU6ICdTdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0Rpc3BsYXkgbmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBlbWFpbDogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdFbWFpbCBhZGRyZXNzIGZvciB0aGUgYXBwLicgfSxcbiAgICBpZDoge1xuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaXRlbS5fa2V5O1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYXBwLidcbiAgICB9LFxuICAgIGltYWdlVXJsOiB7XG4gICAgICByZXNvbHZlKHtfa2V5OiB0eXBlSWQsIGltYWdlSWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCBpbWFnZS4nXG4gICAgfSxcbiAgICBtb2RpZmllZDogeyB0eXBlOiAnRmxvYXQnLCBkZXNjcmlwdGlvbjogJ1RpbWVzdGFtcCB3aGVuIHRoZSBhcHAgd2FzIGxhc3QgbW9kaWZpZWQuJyB9LFxuICAgIG5hbWU6IHsgdHlwZTogJ1N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBwaG9uZTogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdQaG9uZSBudW1iZXIgZm9yIHRoZSBhcHAuJyB9LFxuICAgIHRodW1iVXJsOiB7XG4gICAgICByZXNvbHZlKHtfa2V5OiB0eXBlSWQsIGltYWdlSWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ3RodW1icycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCB0aHVtYm5haWwuJ1xuICAgIH1cbiAgfSxcbiAgbmFtZTogJ0FwcEluZm8nXG59KTtcbmFwcEluZm9UeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG4iXSwibmFtZXMiOlsic2NoZW1hQ29tcG9zZXIiLCJnZXRJbWFnZVVybCIsIkNvbmZpZyIsImRvY3VtZW50IiwiYXBwVHlwZSIsImNyZWF0ZU9iamVjdFRDIiwiZmllbGRzIiwiYWNjZXNzVG9rZW4iLCJkZXNjcmlwdGlvbiIsInR5cGUiLCJhY3RpdmUiLCJhZGRlZCIsImNsaWVudFRva2VuIiwiZGlzcGxheU5hbWUiLCJpZCIsInJlc29sdmUiLCJpdGVtIiwiX2tleSIsImltYWdlVXJsIiwiaW1hZ2VJZCIsImltYWdlVHlwZSIsInVzZXJJZCIsImJ1Y2tldCIsImdldCIsImltYWdlRGlyIiwidHlwZUlkIiwibW9kaWZpZWQiLCJuYW1lIiwic2VjcmV0IiwidGh1bWJVcmwiLCJhZGRGaWVsZHMiLCJnZXRGaWVsZHMiLCJhcHBJbnB1dFR5cGUiLCJjcmVhdGVJbnB1dFRDIiwicGhvdG8iLCJhcHBJbmZvVHlwZSIsImVtYWlsIiwicGhvbmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLGNBQWMsUUFBTyxrQkFBa0I7QUFFL0MsU0FBUUMsV0FBVyxRQUFPLHVCQUF1QjtBQUNqRCxTQUFRQyxNQUFNLFFBQU8sZUFBZTtBQUNwQyxTQUFRQyxRQUFRLFFBQU8sZ0JBQWdCO0FBRXZDLE9BQU8sTUFBTUMsVUFBVUosZUFBZUssY0FBYyxDQUFDO0lBQ25EQyxRQUFRO1FBQ05DLGFBQWE7WUFDWEMsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUMsUUFBUTtZQUNORixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRSxPQUFPO1lBQ0xILGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FHLGFBQWE7WUFDWEosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUksYUFBYTtZQUNYTCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBSyxJQUFJO1lBQ0ZOLGFBQWE7WUFDYk8sU0FBUUMsSUFBSTtnQkFDVixPQUFPQSxLQUFLRixFQUFFLElBQUlFLEtBQUtDLElBQUk7WUFDN0I7WUFDQVIsTUFBTTtRQUNSO1FBQ0FTLFVBQVU7WUFDUlYsYUFBYTtZQUNiTyxTQUFRLEVBQUNFLE1BQU1FLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUM7Z0JBQ3hDLE9BQU9wQixZQUFZO29CQUNqQnFCLFFBQVFwQixPQUFPcUIsR0FBRyxDQUFDO29CQUNuQkMsVUFBVTtvQkFDVkw7b0JBQ0FWLE1BQU07b0JBQ05nQixRQUFRdkIsT0FBT3FCLEdBQUcsQ0FBQztnQkFDckI7WUFDRjtZQUNBZCxNQUFNO1FBQ1I7UUFDQWlCLFVBQVU7WUFDUmxCLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FrQixNQUFNO1lBQ0puQixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBbUIsUUFBUTtZQUNOcEIsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQW9CLFVBQVU7WUFDUmQsU0FBUSxFQUFDRSxNQUFNRSxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFDO2dCQUN4QyxPQUFPcEIsWUFBWTtvQkFDakJxQixRQUFRcEIsT0FBT3FCLEdBQUcsQ0FBQztvQkFDbkJDLFVBQVU7b0JBQ1ZMO29CQUNBVixNQUFNO29CQUNOZ0IsUUFBUXZCLE9BQU9xQixHQUFHLENBQUM7Z0JBQ3JCO1lBQ0Y7WUFDQWQsTUFBTTtRQUNSO0lBQ0Y7SUFDQWtCLE1BQU07QUFDUixHQUFHO0FBQ0h2QixRQUFRMEIsU0FBUyxDQUFDM0IsU0FBUzRCLFNBQVM7QUFFcEMsT0FBTyxNQUFNQyxlQUFlaEMsZUFBZWlDLGFBQWEsQ0FBQztJQUN2RDNCLFFBQVE7UUFDTkksUUFBUTtZQUFFRCxNQUFNO1lBQVdELGFBQWE7UUFBNkI7UUFDckVLLGFBQWE7WUFBRUosTUFBTTtZQUFVRCxhQUFhO1FBQTJCO1FBQ3ZFTSxJQUFJO1lBQUVMLE1BQU07WUFBTUQsYUFBYTtRQUFVO1FBQ3pDbUIsTUFBTTtZQUFFbEIsTUFBTTtZQUFVRCxhQUFhO1FBQW1CO1FBQ3hEMEIsT0FBTztZQUFFekIsTUFBTTtZQUFNRCxhQUFhO1FBQThCO0lBQ2xFO0lBQ0FtQixNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTVEsY0FBY25DLGVBQWVLLGNBQWMsQ0FBQztJQUN2REMsUUFBUTtRQUNOQyxhQUFhO1lBQUVFLE1BQU07WUFBVUQsYUFBYTtRQUE0QjtRQUN4RUcsT0FBTztZQUFFRixNQUFNO1lBQVNELGFBQWE7UUFBb0M7UUFDekVLLGFBQWE7WUFBRUosTUFBTTtZQUFVRCxhQUFhO1FBQTJCO1FBQ3ZFNEIsT0FBTztZQUFFM0IsTUFBTTtZQUFVRCxhQUFhO1FBQTZCO1FBQ25FTSxJQUFJO1lBQ0ZDLFNBQVFDLElBQUk7Z0JBQ1YsT0FBT0EsS0FBS0YsRUFBRSxJQUFJRSxLQUFLQyxJQUFJO1lBQzdCO1lBQ0FSLE1BQU07WUFDTkQsYUFBYTtRQUNmO1FBQ0FVLFVBQVU7WUFDUkgsU0FBUSxFQUFDRSxNQUFNUSxNQUFNLEVBQUVOLE9BQU8sRUFBQztnQkFDN0IsT0FBT2xCLFlBQVk7b0JBQ2pCcUIsUUFBUXBCLE9BQU9xQixHQUFHLENBQUM7b0JBQ25CQyxVQUFVO29CQUNWTDtvQkFDQVYsTUFBTTtvQkFDTmdCO2dCQUNGO1lBQ0Y7WUFDQWhCLE1BQU07WUFDTkQsYUFBYTtRQUNmO1FBQ0FrQixVQUFVO1lBQUVqQixNQUFNO1lBQVNELGFBQWE7UUFBNEM7UUFDcEZtQixNQUFNO1lBQUVsQixNQUFNO1lBQVVELGFBQWE7UUFBbUI7UUFDeEQ2QixPQUFPO1lBQUU1QixNQUFNO1lBQVVELGFBQWE7UUFBNEI7UUFDbEVxQixVQUFVO1lBQ1JkLFNBQVEsRUFBQ0UsTUFBTVEsTUFBTSxFQUFFTixPQUFPLEVBQUM7Z0JBQzdCLE9BQU9sQixZQUFZO29CQUNqQnFCLFFBQVFwQixPQUFPcUIsR0FBRyxDQUFDO29CQUNuQkMsVUFBVTtvQkFDVkw7b0JBQ0FWLE1BQU07b0JBQ05nQjtnQkFDRjtZQUNGO1lBQ0FoQixNQUFNO1lBQ05ELGFBQWE7UUFDZjtJQUNGO0lBQ0FtQixNQUFNO0FBQ1IsR0FBRztBQUNIUSxZQUFZTCxTQUFTLENBQUMzQixTQUFTNEIsU0FBUyJ9
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYXBwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuXG5pbXBvcnQge2dldEltYWdlVXJsfSBmcm9tICcuLi9hY3Rpb25zL2ltYWdlcy5qcyc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7ZG9jdW1lbnR9IGZyb20gJy4vZG9jdW1lbnQuanMnO1xuXG5leHBvcnQgY29uc3QgYXBwVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYWNjZXNzVG9rZW46IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWNjZXNzIHRva2VuIGZvciB0aGUgYXBwLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGFjdGl2ZToge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBhcHAgaXMgYWN0aXZlLicsXG4gICAgICB0eXBlOiAnQm9vbGVhbicsXG4gICAgfSxcbiAgICBhZGRlZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgYXBwIHdhcyBhZGRlZC4nLFxuICAgICAgdHlwZTogJ0Zsb2F0JyxcbiAgICB9LFxuICAgIGNsaWVudFRva2VuOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NsaWVudCB0b2tlbiBmb3IgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBkaXNwbGF5TmFtZToge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNwbGF5IG5hbWUgb2YgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBpZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaXRlbS5fa2V5O1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCcsXG4gICAgfSxcbiAgICBpbWFnZVVybDoge1xuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCBpbWFnZS4nLFxuICAgICAgcmVzb2x2ZSh7X2tleTogaW1hZ2VJZCwgaW1hZ2VUeXBlLCB1c2VySWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkOiBDb25maWcuZ2V0KCdhcHAubmFtZScpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIG1vZGlmaWVkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RpbWVzdGFtcCB3aGVuIHRoZSBhcHAgd2FzIGxhc3QgbW9kaWZpZWQuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgfSxcbiAgICBuYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBzZWNyZXQ6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VjcmV0IGtleSBmb3IgdGhlIGFwcC4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICB0aHVtYlVybDoge1xuICAgICAgcmVzb2x2ZSh7X2tleTogaW1hZ2VJZCwgaW1hZ2VUeXBlLCB1c2VySWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkOiBDb25maWcuZ2V0KCdhcHAubmFtZScpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnQXBwJ1xufSk7XG5hcHBUeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG5cbmV4cG9ydCBjb25zdCBhcHBJbnB1dFR5cGUgPSBzY2hlbWFDb21wb3Nlci5jcmVhdGVJbnB1dFRDKHtcbiAgZmllbGRzOiB7XG4gICAgYWN0aXZlOiB7IHR5cGU6ICdCb29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBhcHAgaXMgYWN0aXZlLicgfSxcbiAgICBkaXNwbGF5TmFtZTogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdEaXNwbGF5IG5hbWUgb2YgdGhlIGFwcC4nIH0sXG4gICAgaWQ6IHsgdHlwZTogJ0lEJywgZGVzY3JpcHRpb246ICdBcHAgSUQuJyB9LFxuICAgIG5hbWU6IHsgdHlwZTogJ1N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBwaG90bzogeyB0eXBlOiAnSUQnLCBkZXNjcmlwdGlvbjogJ1Bob3RvL2ltYWdlIElEIGZvciB0aGUgYXBwLicgfVxuICB9LFxuICBuYW1lOiAnQXBwSW5wdXQnXG59KTtcblxuZXhwb3J0IGNvbnN0IGFwcEluZm9UeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhY2Nlc3NUb2tlbjogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdBY2Nlc3MgdG9rZW4gZm9yIHRoZSBhcHAuJyB9LFxuICAgIGFkZGVkOiB7IHR5cGU6ICdGbG9hdCcsIGRlc2NyaXB0aW9uOiAnVGltZXN0YW1wIHdoZW4gdGhlIGFwcCB3YXMgYWRkZWQuJyB9LFxuICAgIGRpc3BsYXlOYW1lOiB7IHR5cGU6ICdTdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0Rpc3BsYXkgbmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBlbWFpbDogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdFbWFpbCBhZGRyZXNzIGZvciB0aGUgYXBwLicgfSxcbiAgICBpZDoge1xuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaXRlbS5fa2V5O1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYXBwLidcbiAgICB9LFxuICAgIGltYWdlVXJsOiB7XG4gICAgICByZXNvbHZlKHtfa2V5OiB0eXBlSWQsIGltYWdlSWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ2ltYWdlcycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCBpbWFnZS4nXG4gICAgfSxcbiAgICBtb2RpZmllZDogeyB0eXBlOiAnRmxvYXQnLCBkZXNjcmlwdGlvbjogJ1RpbWVzdGFtcCB3aGVuIHRoZSBhcHAgd2FzIGxhc3QgbW9kaWZpZWQuJyB9LFxuICAgIG5hbWU6IHsgdHlwZTogJ1N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYXBwLicgfSxcbiAgICBwaG9uZTogeyB0eXBlOiAnU3RyaW5nJywgZGVzY3JpcHRpb246ICdQaG9uZSBudW1iZXIgZm9yIHRoZSBhcHAuJyB9LFxuICAgIHRodW1iVXJsOiB7XG4gICAgICByZXNvbHZlKHtfa2V5OiB0eXBlSWQsIGltYWdlSWR9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGdldEltYWdlVXJsKHtcbiAgICAgICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgICAgICBpbWFnZURpcjogJ3RodW1icycsXG4gICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICB0eXBlOiAnYXBwcycsXG4gICAgICAgICAgdHlwZUlkXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGFwcCB0aHVtYm5haWwuJ1xuICAgIH1cbiAgfSxcbiAgbmFtZTogJ0FwcEluZm8nXG59KTtcbmFwcEluZm9UeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG4iXSwibmFtZXMiOlsic2NoZW1hQ29tcG9zZXIiLCJnZXRJbWFnZVVybCIsIkNvbmZpZyIsImRvY3VtZW50IiwiYXBwVHlwZSIsImNyZWF0ZU9iamVjdFRDIiwiZmllbGRzIiwiYWNjZXNzVG9rZW4iLCJkZXNjcmlwdGlvbiIsInR5cGUiLCJhY3RpdmUiLCJhZGRlZCIsImNsaWVudFRva2VuIiwiZGlzcGxheU5hbWUiLCJpZCIsInJlc29sdmUiLCJpdGVtIiwiX2tleSIsImltYWdlVXJsIiwiaW1hZ2VJZCIsImltYWdlVHlwZSIsInVzZXJJZCIsImJ1Y2tldCIsImdldCIsImltYWdlRGlyIiwidHlwZUlkIiwibW9kaWZpZWQiLCJuYW1lIiwic2VjcmV0IiwidGh1bWJVcmwiLCJhZGRGaWVsZHMiLCJnZXRGaWVsZHMiLCJhcHBJbnB1dFR5cGUiLCJjcmVhdGVJbnB1dFRDIiwicGhvdG8iLCJhcHBJbmZvVHlwZSIsImVtYWlsIiwicGhvbmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLGNBQWMsUUFBTyxrQkFBa0I7QUFFL0MsU0FBUUMsV0FBVyxRQUFPLHVCQUF1QjtBQUNqRCxTQUFRQyxNQUFNLFFBQU8sZUFBZTtBQUNwQyxTQUFRQyxRQUFRLFFBQU8sZ0JBQWdCO0FBRXZDLE9BQU8sTUFBTUMsVUFBVUosZUFBZUssY0FBYyxDQUFDO0lBQ25EQyxRQUFRO1FBQ05DLGFBQWE7WUFDWEMsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUMsUUFBUTtZQUNORixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRSxPQUFPO1lBQ0xILGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FHLGFBQWE7WUFDWEosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUksYUFBYTtZQUNYTCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBSyxJQUFJO1lBQ0ZOLGFBQWE7WUFDYk8sU0FBUUMsSUFBSTtnQkFDVixPQUFPQSxLQUFLRixFQUFFLElBQUlFLEtBQUtDLElBQUk7WUFDN0I7WUFDQVIsTUFBTTtRQUNSO1FBQ0FTLFVBQVU7WUFDUlYsYUFBYTtZQUNiTyxTQUFRLEVBQUNFLE1BQU1FLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUM7Z0JBQ3hDLE9BQU9wQixZQUFZO29CQUNqQnFCLFFBQVFwQixPQUFPcUIsR0FBRyxDQUFDO29CQUNuQkMsVUFBVTtvQkFDVkw7b0JBQ0FWLE1BQU07b0JBQ05nQixRQUFRdkIsT0FBT3FCLEdBQUcsQ0FBQztnQkFDckI7WUFDRjtZQUNBZCxNQUFNO1FBQ1I7UUFDQWlCLFVBQVU7WUFDUmxCLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FrQixNQUFNO1lBQ0puQixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBbUIsUUFBUTtZQUNOcEIsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQW9CLFVBQVU7WUFDUmQsU0FBUSxFQUFDRSxNQUFNRSxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFDO2dCQUN4QyxPQUFPcEIsWUFBWTtvQkFDakJxQixRQUFRcEIsT0FBT3FCLEdBQUcsQ0FBQztvQkFDbkJDLFVBQVU7b0JBQ1ZMO29CQUNBVixNQUFNO29CQUNOZ0IsUUFBUXZCLE9BQU9xQixHQUFHLENBQUM7Z0JBQ3JCO1lBQ0Y7WUFDQWQsTUFBTTtRQUNSO0lBQ0Y7SUFDQWtCLE1BQU07QUFDUixHQUFHO0FBQ0h2QixRQUFRMEIsU0FBUyxDQUFDM0IsU0FBUzRCLFNBQVM7QUFFcEMsT0FBTyxNQUFNQyxlQUFlaEMsZUFBZWlDLGFBQWEsQ0FBQztJQUN2RDNCLFFBQVE7UUFDTkksUUFBUTtZQUFFRCxNQUFNO1lBQVdELGFBQWE7UUFBNkI7UUFDckVLLGFBQWE7WUFBRUosTUFBTTtZQUFVRCxhQUFhO1FBQTJCO1FBQ3ZFTSxJQUFJO1lBQUVMLE1BQU07WUFBTUQsYUFBYTtRQUFVO1FBQ3pDbUIsTUFBTTtZQUFFbEIsTUFBTTtZQUFVRCxhQUFhO1FBQW1CO1FBQ3hEMEIsT0FBTztZQUFFekIsTUFBTTtZQUFNRCxhQUFhO1FBQThCO0lBQ2xFO0lBQ0FtQixNQUFNO0FBQ1IsR0FBRztBQUVILE9BQU8sTUFBTVEsY0FBY25DLGVBQWVLLGNBQWMsQ0FBQztJQUN2REMsUUFBUTtRQUNOQyxhQUFhO1lBQUVFLE1BQU07WUFBVUQsYUFBYTtRQUE0QjtRQUN4RUcsT0FBTztZQUFFRixNQUFNO1lBQVNELGFBQWE7UUFBb0M7UUFDekVLLGFBQWE7WUFBRUosTUFBTTtZQUFVRCxhQUFhO1FBQTJCO1FBQ3ZFNEIsT0FBTztZQUFFM0IsTUFBTTtZQUFVRCxhQUFhO1FBQTZCO1FBQ25FTSxJQUFJO1lBQ0ZDLFNBQVFDLElBQUk7Z0JBQ1YsT0FBT0EsS0FBS0YsRUFBRSxJQUFJRSxLQUFLQyxJQUFJO1lBQzdCO1lBQ0FSLE1BQU07WUFDTkQsYUFBYTtRQUNmO1FBQ0FVLFVBQVU7WUFDUkgsU0FBUSxFQUFDRSxNQUFNUSxNQUFNLEVBQUVOLE9BQU8sRUFBQztnQkFDN0IsT0FBT2xCLFlBQVk7b0JBQ2pCcUIsUUFBUXBCLE9BQU9xQixHQUFHLENBQUM7b0JBQ25CQyxVQUFVO29CQUNWTDtvQkFDQVYsTUFBTTtvQkFDTmdCO2dCQUNGO1lBQ0Y7WUFDQWhCLE1BQU07WUFDTkQsYUFBYTtRQUNmO1FBQ0FrQixVQUFVO1lBQUVqQixNQUFNO1lBQVNELGFBQWE7UUFBNEM7UUFDcEZtQixNQUFNO1lBQUVsQixNQUFNO1lBQVVELGFBQWE7UUFBbUI7UUFDeEQ2QixPQUFPO1lBQUU1QixNQUFNO1lBQVVELGFBQWE7UUFBNEI7UUFDbEVxQixVQUFVO1lBQ1JkLFNBQVEsRUFBQ0UsTUFBTVEsTUFBTSxFQUFFTixPQUFPLEVBQUM7Z0JBQzdCLE9BQU9sQixZQUFZO29CQUNqQnFCLFFBQVFwQixPQUFPcUIsR0FBRyxDQUFDO29CQUNuQkMsVUFBVTtvQkFDVkw7b0JBQ0FWLE1BQU07b0JBQ05nQjtnQkFDRjtZQUNGO1lBQ0FoQixNQUFNO1lBQ05ELGFBQWE7UUFDZjtJQUNGO0lBQ0FtQixNQUFNO0FBQ1IsR0FBRztBQUNIUSxZQUFZTCxTQUFTLENBQUMzQixTQUFTNEIsU0FBUyJ9
@@ -64,4 +64,4 @@ export const bankInputType = schemaComposer.createInputTC({
64
64
  name: 'BankAccountInput'
65
65
  });
66
66
 
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYmFua0FjY291bnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7c2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cbmV4cG9ydCBjb25zdCBiYW5rSW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGJhbmtBY2NvdW50OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0JhbmsgYWNjb3VudCBudW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgYmFua0Z1bGxOYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Z1bGwgbmFtZSBvbiB0aGUgYmFuayBhY2NvdW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGJhbmtSb3V0aW5nOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Jhbmsgcm91dGluZyBudW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgY2l0eToge1xuICAgICAgZGVzY3JpcHRpb246ICdDaXR5IG9mIHRoZSBiYW5rIGFjY291bnQgaG9sZGVyLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGNvdW50cnk6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ291bnRyeSBvZiB0aGUgYmFuayBhY2NvdW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGN1cnJlbmN5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0N1cnJlbmN5IG9mIHRoZSBiYW5rIGFjY291bnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgZG9iOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RhdGUgb2YgYmlydGggKHRpbWVzdGFtcCkuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgfSxcbiAgICBlbWFpbDoge1xuICAgICAgZGVzY3JpcHRpb246ICdFbWFpbCBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBmaXJzdDoge1xuICAgICAgZGVzY3JpcHRpb246ICdGaXJzdCBuYW1lIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBsYXN0OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0xhc3QgbmFtZSBvZiB0aGUgYWNjb3VudCBob2xkZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgc3NuOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NvY2lhbCBTZWN1cml0eSBOdW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgc3RyZWV0OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N0cmVldCBhZGRyZXNzLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIHVzZXJuYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VzZXJuYW1lIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICB6aXA6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnWmlwIG9yIHBvc3RhbCBjb2RlLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnQmFua0FjY291bnRJbnB1dCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiYmFua0lucHV0VHlwZSIsImNyZWF0ZUlucHV0VEMiLCJmaWVsZHMiLCJiYW5rQWNjb3VudCIsImRlc2NyaXB0aW9uIiwidHlwZSIsImJhbmtGdWxsTmFtZSIsImJhbmtSb3V0aW5nIiwiY2l0eSIsImNvdW50cnkiLCJjdXJyZW5jeSIsImRvYiIsImVtYWlsIiwiZmlyc3QiLCJsYXN0Iiwic3NuIiwic3RyZWV0IiwidXNlcm5hbWUiLCJ6aXAiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxjQUFjLFFBQU8sa0JBQWtCO0FBRS9DLE9BQU8sTUFBTUMsZ0JBQWdCRCxlQUFlRSxhQUFhLENBQUM7SUFDeERDLFFBQVE7UUFDTkMsYUFBYTtZQUNYQyxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBQyxjQUFjO1lBQ1pGLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FFLGFBQWE7WUFDWEgsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUcsTUFBTTtZQUNKSixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBSSxTQUFTO1lBQ1BMLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FLLFVBQVU7WUFDUk4sYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQU0sS0FBSztZQUNIUCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxPQUFPO1lBQ0xSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FRLE9BQU87WUFDTFQsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVMsTUFBTTtZQUNKVixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBVSxLQUFLO1lBQ0hYLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVksVUFBVTtZQUNSYixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBYSxLQUFLO1lBQ0hkLGFBQWE7WUFDYkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQWMsTUFBTTtBQUNSLEdBQUcifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvYmFua0FjY291bnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7c2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cbmV4cG9ydCBjb25zdCBiYW5rSW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGJhbmtBY2NvdW50OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0JhbmsgYWNjb3VudCBudW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgYmFua0Z1bGxOYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Z1bGwgbmFtZSBvbiB0aGUgYmFuayBhY2NvdW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGJhbmtSb3V0aW5nOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Jhbmsgcm91dGluZyBudW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgY2l0eToge1xuICAgICAgZGVzY3JpcHRpb246ICdDaXR5IG9mIHRoZSBiYW5rIGFjY291bnQgaG9sZGVyLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGNvdW50cnk6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ291bnRyeSBvZiB0aGUgYmFuayBhY2NvdW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIGN1cnJlbmN5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0N1cnJlbmN5IG9mIHRoZSBiYW5rIGFjY291bnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgZG9iOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RhdGUgb2YgYmlydGggKHRpbWVzdGFtcCkuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgfSxcbiAgICBlbWFpbDoge1xuICAgICAgZGVzY3JpcHRpb246ICdFbWFpbCBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBmaXJzdDoge1xuICAgICAgZGVzY3JpcHRpb246ICdGaXJzdCBuYW1lIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICBsYXN0OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0xhc3QgbmFtZSBvZiB0aGUgYWNjb3VudCBob2xkZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgc3NuOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NvY2lhbCBTZWN1cml0eSBOdW1iZXIuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgIH0sXG4gICAgc3RyZWV0OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N0cmVldCBhZGRyZXNzLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICAgIHVzZXJuYW1lOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VzZXJuYW1lIG9mIHRoZSBhY2NvdW50IGhvbGRlci4nLFxuICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgfSxcbiAgICB6aXA6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnWmlwIG9yIHBvc3RhbCBjb2RlLicsXG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnQmFua0FjY291bnRJbnB1dCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiYmFua0lucHV0VHlwZSIsImNyZWF0ZUlucHV0VEMiLCJmaWVsZHMiLCJiYW5rQWNjb3VudCIsImRlc2NyaXB0aW9uIiwidHlwZSIsImJhbmtGdWxsTmFtZSIsImJhbmtSb3V0aW5nIiwiY2l0eSIsImNvdW50cnkiLCJjdXJyZW5jeSIsImRvYiIsImVtYWlsIiwiZmlyc3QiLCJsYXN0Iiwic3NuIiwic3RyZWV0IiwidXNlcm5hbWUiLCJ6aXAiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxjQUFjLFFBQU8sa0JBQWtCO0FBRS9DLE9BQU8sTUFBTUMsZ0JBQWdCRCxlQUFlRSxhQUFhLENBQUM7SUFDeERDLFFBQVE7UUFDTkMsYUFBYTtZQUNYQyxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBQyxjQUFjO1lBQ1pGLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FFLGFBQWE7WUFDWEgsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUcsTUFBTTtZQUNKSixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBSSxTQUFTO1lBQ1BMLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FLLFVBQVU7WUFDUk4sYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQU0sS0FBSztZQUNIUCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxPQUFPO1lBQ0xSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FRLE9BQU87WUFDTFQsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVMsTUFBTTtZQUNKVixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBVSxLQUFLO1lBQ0hYLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVksVUFBVTtZQUNSYixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBYSxLQUFLO1lBQ0hkLGFBQWE7WUFDYkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQWMsTUFBTTtBQUNSLEdBQUcifQ==
@@ -25,4 +25,4 @@ export const connectionType = schemaComposer.createObjectTC({
25
25
  });
26
26
  connectionType.addFields(document.getFields());
27
27
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvY29ubmVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuaW1wb3J0IHtkb2N1bWVudH0gZnJvbSAnLi9kb2N1bWVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0aW9uVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgaWQ6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjb25uZWN0aW9uLicsXG4gICAgICByZXNvbHZlKGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpdGVtLl9rZXk7XG4gICAgICB9LFxuICAgICAgdHlwZTogJ0lEIScsXG4gICAgfSxcbiAgICBpc0RpcmVjdDoge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBjb25uZWN0aW9uIGlzIGRpcmVjdC4nLFxuICAgICAgdHlwZTogJ0Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdHlwZToge1xuICAgICAgZGVzY3JpcHRpb246ICdUeXBlL2NhdGVnb3J5IG9mIHRoZSBjb25uZWN0aW9uLicsXG4gICAgICB0eXBlOiAnU3RyaW5nIScsXG4gICAgfSxcbiAgfSxcbiAgbmFtZTogJ0Nvbm5lY3Rpb24nXG59KTtcbmNvbm5lY3Rpb25UeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG4iXSwibmFtZXMiOlsic2NoZW1hQ29tcG9zZXIiLCJkb2N1bWVudCIsImNvbm5lY3Rpb25UeXBlIiwiY3JlYXRlT2JqZWN0VEMiLCJmaWVsZHMiLCJpZCIsImRlc2NyaXB0aW9uIiwicmVzb2x2ZSIsIml0ZW0iLCJfa2V5IiwidHlwZSIsImlzRGlyZWN0IiwibmFtZSIsImFkZEZpZWxkcyIsImdldEZpZWxkcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUUvQyxTQUFRQyxRQUFRLFFBQU8sZ0JBQWdCO0FBRXZDLE9BQU8sTUFBTUMsaUJBQWlCRixlQUFlRyxjQUFjLENBQUM7SUFDMURDLFFBQVE7UUFDTkMsSUFBSTtZQUNGQyxhQUFhO1lBQ2JDLFNBQVFDLElBQUk7Z0JBQ1YsT0FBT0EsS0FBS0gsRUFBRSxJQUFJRyxLQUFLQyxJQUFJO1lBQzdCO1lBQ0FDLE1BQU07UUFDUjtRQUNBQyxVQUFVO1lBQ1JMLGFBQWE7WUFDYkksTUFBTTtRQUNSO1FBQ0FBLE1BQU07WUFDSkosYUFBYTtZQUNiSSxNQUFNO1FBQ1I7SUFDRjtJQUNBRSxNQUFNO0FBQ1IsR0FBRztBQUNIVixlQUFlVyxTQUFTLENBQUNaLFNBQVNhLFNBQVMifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvY29ubmVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuaW1wb3J0IHtkb2N1bWVudH0gZnJvbSAnLi9kb2N1bWVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0aW9uVHlwZSA9IHNjaGVtYUNvbXBvc2VyLmNyZWF0ZU9iamVjdFRDKHtcbiAgZmllbGRzOiB7XG4gICAgaWQ6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjb25uZWN0aW9uLicsXG4gICAgICByZXNvbHZlKGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpdGVtLl9rZXk7XG4gICAgICB9LFxuICAgICAgdHlwZTogJ0lEIScsXG4gICAgfSxcbiAgICBpc0RpcmVjdDoge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBjb25uZWN0aW9uIGlzIGRpcmVjdC4nLFxuICAgICAgdHlwZTogJ0Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdHlwZToge1xuICAgICAgZGVzY3JpcHRpb246ICdUeXBlL2NhdGVnb3J5IG9mIHRoZSBjb25uZWN0aW9uLicsXG4gICAgICB0eXBlOiAnU3RyaW5nIScsXG4gICAgfSxcbiAgfSxcbiAgbmFtZTogJ0Nvbm5lY3Rpb24nXG59KTtcbmNvbm5lY3Rpb25UeXBlLmFkZEZpZWxkcyhkb2N1bWVudC5nZXRGaWVsZHMoKSk7XG4iXSwibmFtZXMiOlsic2NoZW1hQ29tcG9zZXIiLCJkb2N1bWVudCIsImNvbm5lY3Rpb25UeXBlIiwiY3JlYXRlT2JqZWN0VEMiLCJmaWVsZHMiLCJpZCIsImRlc2NyaXB0aW9uIiwicmVzb2x2ZSIsIml0ZW0iLCJfa2V5IiwidHlwZSIsImlzRGlyZWN0IiwibmFtZSIsImFkZEZpZWxkcyIsImdldEZpZWxkcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUUvQyxTQUFRQyxRQUFRLFFBQU8sZ0JBQWdCO0FBRXZDLE9BQU8sTUFBTUMsaUJBQWlCRixlQUFlRyxjQUFjLENBQUM7SUFDMURDLFFBQVE7UUFDTkMsSUFBSTtZQUNGQyxhQUFhO1lBQ2JDLFNBQVFDLElBQUk7Z0JBQ1YsT0FBT0EsS0FBS0gsRUFBRSxJQUFJRyxLQUFLQyxJQUFJO1lBQzdCO1lBQ0FDLE1BQU07UUFDUjtRQUNBQyxVQUFVO1lBQ1JMLGFBQWE7WUFDYkksTUFBTTtRQUNSO1FBQ0FBLE1BQU07WUFDSkosYUFBYTtZQUNiSSxNQUFNO1FBQ1I7SUFDRjtJQUNBRSxNQUFNO0FBQ1IsR0FBRztBQUNIVixlQUFlVyxTQUFTLENBQUNaLFNBQVNhLFNBQVMifQ==
@@ -93,4 +93,4 @@ export const contentInputType = schemaComposer.createInputTC({
93
93
  name: 'ContentInput'
94
94
  });
95
95
 
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvY29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuZXhwb3J0IGNvbnN0IGNvbnRlbnRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhZGRlZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgY29udGVudCB3YXMgYWRkZWQuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCdcbiAgICB9LFxuICAgIGNhdGVnb3J5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NhdGVnb3J5IG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgY29udGVudDoge1xuICAgICAgZGVzY3JpcHRpb246ICdDb250ZW50IGJvZHkuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgY29udGVudElkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge19rZXk6IGtleSwgY29udGVudElkfSA9IGl0ZW07XG4gICAgICAgIHJldHVybiBrZXkgfHwgY29udGVudElkO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCEnXG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIGlkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0FyYW5nb0RCIGRvY3VtZW50IElEIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge19pZDogaWQsIF9rZXk6IGtleSwgY29udGVudElkfSA9IGl0ZW07XG4gICAgICAgIHJldHVybiBpZCB8fCBgY29udGVudC8ke2tleSB8fCBjb250ZW50SWR9YDtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnSUQhJ1xuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0aGUgY29udGVudCBpcyBhY3RpdmUuJyxcbiAgICAgIHR5cGU6ICdCb29sZWFuJ1xuICAgIH0sXG4gICAga2V5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0tleSBmb3IgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgbG9jYWxlOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0xvY2FsZS9sYW5ndWFnZSBvZiB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZyEnXG4gICAgfSxcbiAgICBtb2RpZmllZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgY29udGVudCB3YXMgbGFzdCBtb2RpZmllZC4nLFxuICAgICAgdHlwZTogJ0Zsb2F0J1xuICAgIH0sXG4gICAgdXNlcklkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgSUQgd2hvIGNyZWF0ZWQgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdJRCdcbiAgICB9XG4gIH0sXG4gIG5hbWU6ICdDb250ZW50J1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZW50SW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGNhdGVnb3J5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NhdGVnb3J5IG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgY29udGVudDoge1xuICAgICAgZGVzY3JpcHRpb246ICdDb250ZW50IGJvZHkuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgY29udGVudElkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ0lEJ1xuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBjb250ZW50IGlzIGFjdGl2ZS4nLFxuICAgICAgdHlwZTogJ0Jvb2xlYW4nXG4gICAgfSxcbiAgICBrZXk6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnS2V5IGZvciB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZyEnXG4gICAgfSxcbiAgICBsb2NhbGU6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnTG9jYWxlL2xhbmd1YWdlIG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH1cbiAgfSxcbiAgbmFtZTogJ0NvbnRlbnRJbnB1dCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiY29udGVudFR5cGUiLCJjcmVhdGVPYmplY3RUQyIsImZpZWxkcyIsImFkZGVkIiwiZGVzY3JpcHRpb24iLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb250ZW50IiwiY29udGVudElkIiwicmVzb2x2ZSIsIml0ZW0iLCJfa2V5Iiwia2V5IiwiaWQiLCJfaWQiLCJpc0FjdGl2ZSIsImxvY2FsZSIsIm1vZGlmaWVkIiwidXNlcklkIiwibmFtZSIsImNvbnRlbnRJbnB1dFR5cGUiLCJjcmVhdGVJbnB1dFRDIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxjQUFjLFFBQU8sa0JBQWtCO0FBRS9DLE9BQU8sTUFBTUMsY0FBY0QsZUFBZUUsY0FBYyxDQUFDO0lBQ3ZEQyxRQUFRO1FBQ05DLE9BQU87WUFDTEMsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUMsVUFBVTtZQUNSRixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRSxTQUFTO1lBQ1BILGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FHLFdBQVc7WUFDVEosYUFBYTtZQUNiSyxTQUFRQyxJQUFJO2dCQUNWLE1BQU0sRUFBQ0MsTUFBTUMsR0FBRyxFQUFFSixTQUFTLEVBQUMsR0FBR0U7Z0JBQy9CLE9BQU9FLE9BQU9KO1lBQ2hCO1lBQ0FILE1BQU07UUFDUjtRQUNBRCxhQUFhO1lBQ1hBLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FRLElBQUk7WUFDRlQsYUFBYTtZQUNiSyxTQUFRQyxJQUFJO2dCQUNWLE1BQU0sRUFBQ0ksS0FBS0QsRUFBRSxFQUFFRixNQUFNQyxHQUFHLEVBQUVKLFNBQVMsRUFBQyxHQUFHRTtnQkFDeEMsT0FBT0csTUFBTSxDQUFDLFFBQVEsRUFBRUQsT0FBT0osV0FBVztZQUM1QztZQUNBSCxNQUFNO1FBQ1I7UUFDQVUsVUFBVTtZQUNSWCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxLQUFLO1lBQ0hSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVksVUFBVTtZQUNSYixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBYSxRQUFRO1lBQ05kLGFBQWE7WUFDYkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQWMsTUFBTTtBQUNSLEdBQUc7QUFFSCxPQUFPLE1BQU1DLG1CQUFtQnJCLGVBQWVzQixhQUFhLENBQUM7SUFDM0RuQixRQUFRO1FBQ05JLFVBQVU7WUFDUkYsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUUsU0FBUztZQUNQSCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRyxXQUFXO1lBQ1RKLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FELGFBQWE7WUFDWEEsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVUsVUFBVTtZQUNSWCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxLQUFLO1lBQ0hSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7SUFDRjtJQUNBYyxNQUFNO0FBQ1IsR0FBRyJ9
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb2JqZWN0VHlwZXMvY29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuZXhwb3J0IGNvbnN0IGNvbnRlbnRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlT2JqZWN0VEMoe1xuICBmaWVsZHM6IHtcbiAgICBhZGRlZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgY29udGVudCB3YXMgYWRkZWQuJyxcbiAgICAgIHR5cGU6ICdGbG9hdCdcbiAgICB9LFxuICAgIGNhdGVnb3J5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NhdGVnb3J5IG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgY29udGVudDoge1xuICAgICAgZGVzY3JpcHRpb246ICdDb250ZW50IGJvZHkuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgY29udGVudElkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge19rZXk6IGtleSwgY29udGVudElkfSA9IGl0ZW07XG4gICAgICAgIHJldHVybiBrZXkgfHwgY29udGVudElkO1xuICAgICAgfSxcbiAgICAgIHR5cGU6ICdJRCEnXG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIGlkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0FyYW5nb0RCIGRvY3VtZW50IElEIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgcmVzb2x2ZShpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge19pZDogaWQsIF9rZXk6IGtleSwgY29udGVudElkfSA9IGl0ZW07XG4gICAgICAgIHJldHVybiBpZCB8fCBgY29udGVudC8ke2tleSB8fCBjb250ZW50SWR9YDtcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnSUQhJ1xuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0aGUgY29udGVudCBpcyBhY3RpdmUuJyxcbiAgICAgIHR5cGU6ICdCb29sZWFuJ1xuICAgIH0sXG4gICAga2V5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0tleSBmb3IgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgbG9jYWxlOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0xvY2FsZS9sYW5ndWFnZSBvZiB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZyEnXG4gICAgfSxcbiAgICBtb2RpZmllZDoge1xuICAgICAgZGVzY3JpcHRpb246ICdUaW1lc3RhbXAgd2hlbiB0aGUgY29udGVudCB3YXMgbGFzdCBtb2RpZmllZC4nLFxuICAgICAgdHlwZTogJ0Zsb2F0J1xuICAgIH0sXG4gICAgdXNlcklkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgSUQgd2hvIGNyZWF0ZWQgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdJRCdcbiAgICB9XG4gIH0sXG4gIG5hbWU6ICdDb250ZW50J1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZW50SW5wdXRUeXBlID0gc2NoZW1hQ29tcG9zZXIuY3JlYXRlSW5wdXRUQyh7XG4gIGZpZWxkczoge1xuICAgIGNhdGVnb3J5OiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0NhdGVnb3J5IG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgY29udGVudDoge1xuICAgICAgZGVzY3JpcHRpb246ICdDb250ZW50IGJvZHkuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmchJ1xuICAgIH0sXG4gICAgY29udGVudElkOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ0lEJ1xuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnQuJyxcbiAgICAgIHR5cGU6ICdTdHJpbmcnXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBjb250ZW50IGlzIGFjdGl2ZS4nLFxuICAgICAgdHlwZTogJ0Jvb2xlYW4nXG4gICAgfSxcbiAgICBrZXk6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnS2V5IGZvciB0aGUgY29udGVudC4nLFxuICAgICAgdHlwZTogJ1N0cmluZyEnXG4gICAgfSxcbiAgICBsb2NhbGU6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnTG9jYWxlL2xhbmd1YWdlIG9mIHRoZSBjb250ZW50LicsXG4gICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH1cbiAgfSxcbiAgbmFtZTogJ0NvbnRlbnRJbnB1dCdcbn0pO1xuIl0sIm5hbWVzIjpbInNjaGVtYUNvbXBvc2VyIiwiY29udGVudFR5cGUiLCJjcmVhdGVPYmplY3RUQyIsImZpZWxkcyIsImFkZGVkIiwiZGVzY3JpcHRpb24iLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb250ZW50IiwiY29udGVudElkIiwicmVzb2x2ZSIsIml0ZW0iLCJfa2V5Iiwia2V5IiwiaWQiLCJfaWQiLCJpc0FjdGl2ZSIsImxvY2FsZSIsIm1vZGlmaWVkIiwidXNlcklkIiwibmFtZSIsImNvbnRlbnRJbnB1dFR5cGUiLCJjcmVhdGVJbnB1dFRDIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxjQUFjLFFBQU8sa0JBQWtCO0FBRS9DLE9BQU8sTUFBTUMsY0FBY0QsZUFBZUUsY0FBYyxDQUFDO0lBQ3ZEQyxRQUFRO1FBQ05DLE9BQU87WUFDTEMsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUMsVUFBVTtZQUNSRixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRSxTQUFTO1lBQ1BILGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FHLFdBQVc7WUFDVEosYUFBYTtZQUNiSyxTQUFRQyxJQUFJO2dCQUNWLE1BQU0sRUFBQ0MsTUFBTUMsR0FBRyxFQUFFSixTQUFTLEVBQUMsR0FBR0U7Z0JBQy9CLE9BQU9FLE9BQU9KO1lBQ2hCO1lBQ0FILE1BQU07UUFDUjtRQUNBRCxhQUFhO1lBQ1hBLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FRLElBQUk7WUFDRlQsYUFBYTtZQUNiSyxTQUFRQyxJQUFJO2dCQUNWLE1BQU0sRUFBQ0ksS0FBS0QsRUFBRSxFQUFFRixNQUFNQyxHQUFHLEVBQUVKLFNBQVMsRUFBQyxHQUFHRTtnQkFDeEMsT0FBT0csTUFBTSxDQUFDLFFBQVEsRUFBRUQsT0FBT0osV0FBVztZQUM1QztZQUNBSCxNQUFNO1FBQ1I7UUFDQVUsVUFBVTtZQUNSWCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxLQUFLO1lBQ0hSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVksVUFBVTtZQUNSYixhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBYSxRQUFRO1lBQ05kLGFBQWE7WUFDYkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQWMsTUFBTTtBQUNSLEdBQUc7QUFFSCxPQUFPLE1BQU1DLG1CQUFtQnJCLGVBQWVzQixhQUFhLENBQUM7SUFDM0RuQixRQUFRO1FBQ05JLFVBQVU7WUFDUkYsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQUUsU0FBUztZQUNQSCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBRyxXQUFXO1lBQ1RKLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FELGFBQWE7WUFDWEEsYUFBYTtZQUNiQyxNQUFNO1FBQ1I7UUFDQVUsVUFBVTtZQUNSWCxhQUFhO1lBQ2JDLE1BQU07UUFDUjtRQUNBTyxLQUFLO1lBQ0hSLGFBQWE7WUFDYkMsTUFBTTtRQUNSO1FBQ0FXLFFBQVE7WUFDTlosYUFBYTtZQUNiQyxNQUFNO1FBQ1I7SUFDRjtJQUNBYyxNQUFNO0FBQ1IsR0FBRyJ9