@nlabs/reaktor 1.6.3 → 1.8.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 (278) hide show
  1. package/LICENSE +74 -201
  2. package/README.md +48 -16
  3. package/lib/actions/analytics.d.ts +10 -0
  4. package/lib/actions/analytics.js +539 -0
  5. package/lib/actions/apps.js +2 -2
  6. package/lib/actions/connections.js +1 -1
  7. package/lib/actions/content.js +2 -2
  8. package/lib/actions/conversations.js +2 -2
  9. package/lib/actions/crm.d.ts +11 -1
  10. package/lib/actions/crm.js +443 -13
  11. package/lib/actions/crud.js +2 -2
  12. package/lib/actions/dynamodb.d.ts +1 -1
  13. package/lib/actions/dynamodb.js +2 -2
  14. package/lib/actions/email.d.ts +1 -1
  15. package/lib/actions/email.js +2 -2
  16. package/lib/actions/files.js +2 -2
  17. package/lib/actions/flags.d.ts +6 -0
  18. package/lib/actions/flags.js +147 -0
  19. package/lib/actions/groups.js +2 -2
  20. package/lib/actions/images.d.ts +1 -1
  21. package/lib/actions/images.js +2 -2
  22. package/lib/actions/index.d.ts +3 -2
  23. package/lib/actions/index.js +4 -3
  24. package/lib/actions/ios.js +1 -1
  25. package/lib/actions/locations.js +2 -2
  26. package/lib/actions/messages.js +2 -2
  27. package/lib/actions/notifications.d.ts +1 -1
  28. package/lib/actions/notifications.js +2 -2
  29. package/lib/actions/payments.d.ts +3 -3
  30. package/lib/actions/payments.js +144 -189
  31. package/lib/actions/personas.js +1 -1
  32. package/lib/actions/posts.d.ts +0 -4
  33. package/lib/actions/posts.js +2 -4
  34. package/lib/actions/query.js +2 -2
  35. package/lib/actions/reactions.js +2 -2
  36. package/lib/actions/rum.js +148 -45
  37. package/lib/actions/s3.d.ts +1 -1
  38. package/lib/actions/s3.js +2 -2
  39. package/lib/actions/search.js +2 -2
  40. package/lib/actions/sms.js +2 -2
  41. package/lib/actions/statistics.js +2 -2
  42. package/lib/actions/subscriptions.js +2 -2
  43. package/lib/actions/tags.js +2 -2
  44. package/lib/actions/users.d.ts +4 -1
  45. package/lib/actions/users.js +85 -11
  46. package/lib/actions/videos.js +2 -2
  47. package/lib/adapters/arangoAdapter.js +1 -1
  48. package/lib/adapters/contentAdapter.js +2 -2
  49. package/lib/adapters/fileAdapter.js +1 -1
  50. package/lib/adapters/imageAdapter.js +1 -1
  51. package/lib/adapters/index.js +1 -1
  52. package/lib/adapters/messageAdapter.js +1 -1
  53. package/lib/adapters/postAdapter.js +1 -1
  54. package/lib/adapters/reaktorAdapter.js +1 -1
  55. package/lib/adapters/tagAdapter.d.ts +0 -1
  56. package/lib/adapters/tagAdapter.js +1 -2
  57. package/lib/adapters/userAdapter.d.ts +0 -1
  58. package/lib/adapters/userAdapter.js +1 -2
  59. package/lib/config.js +8 -2
  60. package/lib/constants/collections.d.ts +17 -1
  61. package/lib/constants/collections.js +18 -2
  62. package/lib/handlers/graphqlHandler.d.ts +2 -2
  63. package/lib/handlers/graphqlHandler.js +2 -19
  64. package/lib/index.d.ts +4 -2
  65. package/lib/index.js +4 -3
  66. package/lib/lambdas/actions/websockets.js +2 -2
  67. package/lib/lambdas/authorizer.js +2 -2
  68. package/lib/lambdas/connection.js +2 -2
  69. package/lib/lambdas/utils/message.js +2 -2
  70. package/lib/lambdas/utils/websocket.d.ts +1 -1
  71. package/lib/lambdas/utils/websocket.js +2 -2
  72. package/lib/mocks/conversation.js +1 -1
  73. package/lib/mocks/file.js +1 -1
  74. package/lib/mocks/group.js +1 -1
  75. package/lib/mocks/image.js +1 -1
  76. package/lib/mocks/post.js +1 -1
  77. package/lib/mocks/tag.js +1 -1
  78. package/lib/mocks/user.js +1 -1
  79. package/lib/mocks/video.js +1 -1
  80. package/lib/mutations/analytics/analytics.d.ts +1 -0
  81. package/lib/mutations/analytics/analytics.js +35 -0
  82. package/lib/mutations/content/content.js +2 -2
  83. package/lib/mutations/crm/crm.js +57 -11
  84. package/lib/mutations/events/events.js +2 -2
  85. package/lib/mutations/flags/flags.d.ts +1 -0
  86. package/lib/mutations/flags/flags.js +33 -0
  87. package/lib/mutations/groups/groups.js +2 -2
  88. package/lib/mutations/images/images.js +2 -2
  89. package/lib/mutations/index.d.ts +3 -1
  90. package/lib/mutations/index.js +13 -3
  91. package/lib/mutations/locations/locations.js +2 -2
  92. package/lib/mutations/messages/messages.js +2 -2
  93. package/lib/mutations/personas/personas.js +2 -2
  94. package/lib/mutations/posts/posts.js +2 -2
  95. package/lib/mutations/reactions/reactions.js +2 -2
  96. package/lib/mutations/rum/rum.js +2 -2
  97. package/lib/mutations/statistics/statistics.js +2 -2
  98. package/lib/mutations/subscriptions/subscriptions.js +2 -2
  99. package/lib/mutations/tags/tags.js +2 -2
  100. package/lib/mutations/users/users.js +30 -17
  101. package/lib/mutations/videos/videos.js +2 -2
  102. package/lib/objectTypes/analytics.d.ts +8 -0
  103. package/lib/objectTypes/analytics.js +147 -0
  104. package/lib/objectTypes/app.js +2 -2
  105. package/lib/objectTypes/bankAccount.js +2 -2
  106. package/lib/objectTypes/connection.js +2 -2
  107. package/lib/objectTypes/content.js +2 -2
  108. package/lib/objectTypes/conversation.js +2 -2
  109. package/lib/objectTypes/creditCard.js +2 -2
  110. package/lib/objectTypes/crm.d.ts +5 -0
  111. package/lib/objectTypes/crm.js +68 -2
  112. package/lib/objectTypes/document.js +1 -1
  113. package/lib/objectTypes/error.js +2 -2
  114. package/lib/objectTypes/event.js +2 -2
  115. package/lib/objectTypes/external.js +2 -2
  116. package/lib/objectTypes/file.js +2 -2
  117. package/lib/objectTypes/filter.js +2 -2
  118. package/lib/objectTypes/flag.d.ts +1 -0
  119. package/lib/objectTypes/flag.js +35 -0
  120. package/lib/objectTypes/group.js +2 -2
  121. package/lib/objectTypes/iapSubscription.js +2 -2
  122. package/lib/objectTypes/image.d.ts +1 -1
  123. package/lib/objectTypes/image.js +2 -2
  124. package/lib/objectTypes/index.d.ts +2 -0
  125. package/lib/objectTypes/index.js +3 -1
  126. package/lib/objectTypes/location.js +2 -2
  127. package/lib/objectTypes/message.js +2 -2
  128. package/lib/objectTypes/passcode.js +2 -2
  129. package/lib/objectTypes/persona.js +2 -2
  130. package/lib/objectTypes/plan.js +2 -2
  131. package/lib/objectTypes/post.js +2 -2
  132. package/lib/objectTypes/query.js +2 -2
  133. package/lib/objectTypes/reaction.js +2 -2
  134. package/lib/objectTypes/relation.js +2 -2
  135. package/lib/objectTypes/rum.js +4 -4
  136. package/lib/objectTypes/search.js +2 -2
  137. package/lib/objectTypes/statistics.js +2 -2
  138. package/lib/objectTypes/subscription.js +2 -2
  139. package/lib/objectTypes/tag.js +2 -2
  140. package/lib/objectTypes/user.js +10 -2
  141. package/lib/objectTypes/video.d.ts +1 -1
  142. package/lib/objectTypes/video.js +2 -2
  143. package/lib/queries/analytics/analytics.d.ts +1 -0
  144. package/lib/queries/analytics/analytics.js +41 -0
  145. package/lib/queries/content/content.js +2 -2
  146. package/lib/queries/crm/crm.js +52 -13
  147. package/lib/queries/events/events.js +2 -2
  148. package/lib/queries/flags/flags.d.ts +1 -0
  149. package/lib/queries/flags/flags.js +16 -0
  150. package/lib/queries/groups/groups.js +2 -2
  151. package/lib/queries/images/images.js +2 -2
  152. package/lib/queries/index.d.ts +3 -1
  153. package/lib/queries/index.js +13 -3
  154. package/lib/queries/locations/locations.js +2 -2
  155. package/lib/queries/messages/messages.js +1 -1
  156. package/lib/queries/personas/personas.js +2 -2
  157. package/lib/queries/posts/posts.js +2 -2
  158. package/lib/queries/query/query.js +2 -2
  159. package/lib/queries/reactions/reactions.js +2 -2
  160. package/lib/queries/statistics/statistics.js +2 -2
  161. package/lib/queries/subscriptions/subscriptions.js +1 -1
  162. package/lib/queries/tags/tags.js +2 -2
  163. package/lib/queries/users/users.js +2 -2
  164. package/lib/queries/videos/videos.js +2 -2
  165. package/lib/templates/email/layout.js +1 -1
  166. package/lib/templates/email/passwordForgot.js +1 -1
  167. package/lib/templates/email/passwordRecovery.js +1 -1
  168. package/lib/templates/email/verifyEmail.js +1 -1
  169. package/lib/templates/email/welcome.js +1 -1
  170. package/lib/templates/sms/passwordForgot.js +1 -1
  171. package/lib/templates/sms/passwordRecovery.js +1 -1
  172. package/lib/templates/sms/verifyEmail.js +1 -1
  173. package/lib/templates/sms/verifyPhone.js +1 -1
  174. package/lib/templates/sms/welcome.js +1 -1
  175. package/lib/types/analytics.types.d.ts +92 -0
  176. package/lib/types/analytics.types.js +6 -0
  177. package/lib/types/apps.types.d.ts +1 -1
  178. package/lib/types/apps.types.js +2 -2
  179. package/lib/types/arangodb.types.d.ts +2 -2
  180. package/lib/types/arangodb.types.js +2 -2
  181. package/lib/types/auth.types.d.ts +4 -1
  182. package/lib/types/auth.types.js +2 -2
  183. package/lib/types/connections.types.d.ts +1 -1
  184. package/lib/types/connections.types.js +2 -2
  185. package/lib/types/content.types.d.ts +1 -1
  186. package/lib/types/content.types.js +2 -2
  187. package/lib/types/conversations.types.d.ts +1 -1
  188. package/lib/types/conversations.types.js +2 -2
  189. package/lib/types/crm.types.d.ts +58 -2
  190. package/lib/types/crm.types.js +2 -2
  191. package/lib/types/email.types.d.ts +1 -1
  192. package/lib/types/email.types.js +2 -2
  193. package/lib/types/error.types.js +1 -1
  194. package/lib/types/files.types.d.ts +1 -1
  195. package/lib/types/files.types.js +2 -2
  196. package/lib/types/flags.types.d.ts +28 -0
  197. package/lib/types/flags.types.js +3 -0
  198. package/lib/types/google.types.d.ts +1 -1
  199. package/lib/types/google.types.js +2 -2
  200. package/lib/types/groups.types.d.ts +1 -1
  201. package/lib/types/groups.types.js +2 -2
  202. package/lib/types/images.types.d.ts +1 -1
  203. package/lib/types/images.types.js +2 -2
  204. package/lib/types/index.d.ts +3 -1
  205. package/lib/types/index.js +4 -2
  206. package/lib/types/locations.types.d.ts +1 -1
  207. package/lib/types/locations.types.js +2 -2
  208. package/lib/types/messages.types.d.ts +1 -1
  209. package/lib/types/messages.types.js +2 -2
  210. package/lib/types/notifications.types.d.ts +1 -1
  211. package/lib/types/notifications.types.js +2 -2
  212. package/lib/types/payments.types.d.ts +4 -1
  213. package/lib/types/payments.types.js +2 -2
  214. package/lib/types/personas.types.js +1 -1
  215. package/lib/types/posts.types.d.ts +1 -1
  216. package/lib/types/posts.types.js +2 -2
  217. package/lib/types/rum.types.d.ts +3 -3
  218. package/lib/types/rum.types.js +2 -2
  219. package/lib/types/statistics.types.js +1 -1
  220. package/lib/types/tags.types.d.ts +1 -1
  221. package/lib/types/tags.types.js +2 -2
  222. package/lib/types/users.types.d.ts +2 -1
  223. package/lib/types/users.types.js +2 -2
  224. package/lib/types/videos.types.d.ts +1 -1
  225. package/lib/types/videos.types.js +2 -2
  226. package/lib/types/websockets.types.d.ts +1 -1
  227. package/lib/types/websockets.types.js +2 -2
  228. package/lib/upload.js +4 -9
  229. package/lib/utils/adapterUtils.d.ts +1 -1
  230. package/lib/utils/adapterUtils.js +2 -2
  231. package/lib/utils/analyticsUtils.d.ts +1 -1
  232. package/lib/utils/analyticsUtils.js +2 -2
  233. package/lib/utils/appContext.d.ts +2 -0
  234. package/lib/utils/appContext.js +10 -0
  235. package/lib/utils/aqlHelpers.d.ts +1 -1
  236. package/lib/utils/aqlHelpers.js +2 -2
  237. package/lib/utils/arangodbUtils.d.ts +9 -1
  238. package/lib/utils/arangodbUtils.js +10 -2
  239. package/lib/utils/authUtils.js +2 -2
  240. package/lib/utils/awsUtils.js +2 -2
  241. package/lib/utils/collectionRegistry.d.ts +1 -1
  242. package/lib/utils/collectionRegistry.js +17 -2
  243. package/lib/utils/contextUtils.d.ts +2 -2
  244. package/lib/utils/contextUtils.js +2 -2
  245. package/lib/utils/dbI18n.example.d.ts +1 -1
  246. package/lib/utils/dbI18n.example.js +2 -2
  247. package/lib/utils/dbI18n.js +2 -2
  248. package/lib/utils/googleTranslate.d.ts +1 -1
  249. package/lib/utils/googleTranslate.js +2 -2
  250. package/lib/utils/graphqlUtils.d.ts +2 -0
  251. package/lib/utils/graphqlUtils.js +1 -1
  252. package/lib/utils/imageUtils.js +1 -1
  253. package/lib/utils/index.d.ts +1 -1
  254. package/lib/utils/index.js +2 -2
  255. package/lib/utils/languageDetection.js +1 -1
  256. package/lib/utils/localeUtils.d.ts +1 -1
  257. package/lib/utils/localeUtils.example.d.ts +1 -1
  258. package/lib/utils/localeUtils.example.js +2 -2
  259. package/lib/utils/localeUtils.js +2 -2
  260. package/lib/utils/middlewareUtils.js +1 -1
  261. package/lib/utils/queryBuilder.d.ts +1 -1
  262. package/lib/utils/queryBuilder.js +2 -2
  263. package/lib/utils/schemaUtils.js +1 -1
  264. package/lib/utils/sessionUtils.d.ts +4 -0
  265. package/lib/utils/sessionUtils.js +2 -2
  266. package/lib/utils/stripeUtils.d.ts +1 -1
  267. package/lib/utils/stripeUtils.js +2 -2
  268. package/lib/utils/templateUtils.js +1 -1
  269. package/lib/utils/testUtils.js +2 -2
  270. package/lib/utils/translationQueue.d.ts +1 -1
  271. package/lib/utils/translationQueue.example.d.ts +1 -1
  272. package/lib/utils/translationQueue.example.js +2 -2
  273. package/lib/utils/translationQueue.js +2 -2
  274. package/lib/videoProcessing.js +1 -1
  275. package/package.json +49 -86
  276. package/lib/actions/websockets.d.ts +0 -20
  277. package/lib/actions/websockets.js +0 -164
  278. package/lib/mocks/nlabs.png +0 -0
@@ -1,25 +1,37 @@
1
1
  /**
2
2
  * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */
5
5
  /**
6
6
  * ArangoDB Collection Names
7
7
  * Centralized constants for all database collections
8
8
  */
9
9
  export declare const COLLECTIONS: {
10
+ readonly ANALYTICS: 'analytics';
10
11
  readonly APPS: 'apps';
11
12
  readonly CONVERSATIONS: 'conversations';
13
+ readonly CONTENT: 'content';
14
+ readonly CRM_CAMPAIGNS: 'crmCampaigns';
15
+ readonly CRM_FORM_SUBMISSIONS: 'crmFormSubmissions';
12
16
  readonly CUSTOMER_NOTIFICATIONS: 'customerNotifications';
13
17
  readonly CUSTOMER_ORDERS: 'customerOrders';
14
18
  readonly FILES: 'files';
19
+ readonly FLAGS: 'flags';
15
20
  readonly GROUPS: 'groups';
16
21
  readonly IMAGES: 'images';
22
+ readonly LOCATIONS: 'locations';
23
+ readonly LOGS: 'logs';
17
24
  readonly MAILING_LISTS: 'mailingLists';
18
25
  readonly MESSAGES: 'messages';
26
+ readonly NOTIFICATIONS: 'notifications';
27
+ readonly PAYMENTS: 'payments';
19
28
  readonly PERSONAS: 'personas';
29
+ readonly PLANS: 'plans';
20
30
  readonly POSTS: 'posts';
31
+ readonly REACTIONS: 'reactions';
21
32
  readonly SHOPIFY_PRODUCTS: 'shopifyProducts';
22
33
  readonly SHOPIFY_WEBHOOK_EVENTS: 'shopifyWebhookEvents';
34
+ readonly SUBSCRIPTIONS: 'subscriptions';
23
35
  readonly SUPPORT_TICKET_EVENTS: 'supportTicketEvents';
24
36
  readonly SUPPORT_TICKET_MESSAGES: 'supportTicketMessages';
25
37
  readonly SUPPORT_TICKETS: 'supportTickets';
@@ -37,8 +49,10 @@ export declare const EDGES: {
37
49
  readonly HAS_CUSTOMER_NOTIFICATION: 'hasCustomerNotification';
38
50
  readonly HAS_CUSTOMER_ORDER: 'hasCustomerOrder';
39
51
  readonly HAS_FILE: 'hasFile';
52
+ readonly HAS_LOCATION: 'hasLocation';
40
53
  readonly HAS_MEDIA: 'hasMedia';
41
54
  readonly HAS_MAILING_LIST: 'hasMailingList';
55
+ readonly HAS_PAYMENT: 'hasPayment';
42
56
  readonly HAS_PERSONA: 'hasPersona';
43
57
  readonly HAS_PURCHASED_PRODUCT: 'hasPurchasedProduct';
44
58
  readonly HAS_REACTION: 'hasReaction';
@@ -48,6 +62,8 @@ export declare const EDGES: {
48
62
  readonly IS_POSTED: 'isPosted';
49
63
  readonly IS_TAGGED: 'isTagged';
50
64
  };
65
+ export declare const DEFAULT_DOCUMENT_COLLECTIONS: readonly ("analytics" | "apps" | "content" | "conversations" | "crmCampaigns" | "crmFormSubmissions" | "customerNotifications" | "customerOrders" | "files" | "flags" | "groups" | "images" | "locations" | "logs" | "mailingLists" | "messages" | "notifications" | "payments" | "personas" | "plans" | "posts" | "reactions" | "shopifyProducts" | "shopifyWebhookEvents" | "subscriptions" | "supportTicketEvents" | "supportTicketMessages" | "supportTickets" | "tags" | "users" | "videos")[];
66
+ export declare const DEFAULT_EDGE_COLLECTIONS: readonly ("hasConnection" | "hasConversation" | "hasCustomerNotification" | "hasCustomerOrder" | "hasFile" | "hasLocation" | "hasMailingList" | "hasMedia" | "hasPayment" | "hasPersona" | "hasPurchasedProduct" | "hasReaction" | "hasSupportTicket" | "hasSupportTicketEvent" | "hasSupportTicketMessage" | "isPosted" | "isTagged")[];
51
67
  /**
52
68
  * Privacy Level Constants
53
69
  * Used across posts, groups, and other content types
@@ -1,23 +1,35 @@
1
1
  /**
2
2
  * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */ /**
5
5
  * ArangoDB Collection Names
6
6
  * Centralized constants for all database collections
7
7
  */ export const COLLECTIONS = {
8
+ ANALYTICS: 'analytics',
8
9
  APPS: 'apps',
9
10
  CONVERSATIONS: 'conversations',
11
+ CONTENT: 'content',
12
+ CRM_CAMPAIGNS: 'crmCampaigns',
13
+ CRM_FORM_SUBMISSIONS: 'crmFormSubmissions',
10
14
  CUSTOMER_NOTIFICATIONS: 'customerNotifications',
11
15
  CUSTOMER_ORDERS: 'customerOrders',
12
16
  FILES: 'files',
17
+ FLAGS: 'flags',
13
18
  GROUPS: 'groups',
14
19
  IMAGES: 'images',
20
+ LOCATIONS: 'locations',
21
+ LOGS: 'logs',
15
22
  MAILING_LISTS: 'mailingLists',
16
23
  MESSAGES: 'messages',
24
+ NOTIFICATIONS: 'notifications',
25
+ PAYMENTS: 'payments',
17
26
  PERSONAS: 'personas',
27
+ PLANS: 'plans',
18
28
  POSTS: 'posts',
29
+ REACTIONS: 'reactions',
19
30
  SHOPIFY_PRODUCTS: 'shopifyProducts',
20
31
  SHOPIFY_WEBHOOK_EVENTS: 'shopifyWebhookEvents',
32
+ SUBSCRIPTIONS: 'subscriptions',
21
33
  SUPPORT_TICKET_EVENTS: 'supportTicketEvents',
22
34
  SUPPORT_TICKET_MESSAGES: 'supportTicketMessages',
23
35
  SUPPORT_TICKETS: 'supportTickets',
@@ -34,8 +46,10 @@
34
46
  HAS_CUSTOMER_NOTIFICATION: 'hasCustomerNotification',
35
47
  HAS_CUSTOMER_ORDER: 'hasCustomerOrder',
36
48
  HAS_FILE: 'hasFile',
49
+ HAS_LOCATION: 'hasLocation',
37
50
  HAS_MEDIA: 'hasMedia',
38
51
  HAS_MAILING_LIST: 'hasMailingList',
52
+ HAS_PAYMENT: 'hasPayment',
39
53
  HAS_PERSONA: 'hasPersona',
40
54
  HAS_PURCHASED_PRODUCT: 'hasPurchasedProduct',
41
55
  HAS_REACTION: 'hasReaction',
@@ -45,6 +59,8 @@
45
59
  IS_POSTED: 'isPosted',
46
60
  IS_TAGGED: 'isTagged'
47
61
  };
62
+ export const DEFAULT_DOCUMENT_COLLECTIONS = Object.freeze(Object.values(COLLECTIONS).sort());
63
+ export const DEFAULT_EDGE_COLLECTIONS = Object.freeze(Object.values(EDGES).sort());
48
64
  /**
49
65
  * Privacy Level Constants
50
66
  * Used across posts, groups, and other content types
@@ -75,4 +91,4 @@
75
91
  BLOCKED: 'blocked'
76
92
  };
77
93
 
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2NvbnN0YW50cy9jb2xsZWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuXG4vKipcbiAqIEFyYW5nb0RCIENvbGxlY3Rpb24gTmFtZXNcbiAqIENlbnRyYWxpemVkIGNvbnN0YW50cyBmb3IgYWxsIGRhdGFiYXNlIGNvbGxlY3Rpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBDT0xMRUNUSU9OUyA9IHtcbiAgQVBQUzogJ2FwcHMnLFxuICBDT05WRVJTQVRJT05TOiAnY29udmVyc2F0aW9ucycsXG4gIENVU1RPTUVSX05PVElGSUNBVElPTlM6ICdjdXN0b21lck5vdGlmaWNhdGlvbnMnLFxuICBDVVNUT01FUl9PUkRFUlM6ICdjdXN0b21lck9yZGVycycsXG4gIEZJTEVTOiAnZmlsZXMnLFxuICBHUk9VUFM6ICdncm91cHMnLFxuICBJTUFHRVM6ICdpbWFnZXMnLFxuICBNQUlMSU5HX0xJU1RTOiAnbWFpbGluZ0xpc3RzJyxcbiAgTUVTU0FHRVM6ICdtZXNzYWdlcycsXG4gIFBFUlNPTkFTOiAncGVyc29uYXMnLFxuICBQT1NUUzogJ3Bvc3RzJyxcbiAgU0hPUElGWV9QUk9EVUNUUzogJ3Nob3BpZnlQcm9kdWN0cycsXG4gIFNIT1BJRllfV0VCSE9PS19FVkVOVFM6ICdzaG9waWZ5V2ViaG9va0V2ZW50cycsXG4gIFNVUFBPUlRfVElDS0VUX0VWRU5UUzogJ3N1cHBvcnRUaWNrZXRFdmVudHMnLFxuICBTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFUzogJ3N1cHBvcnRUaWNrZXRNZXNzYWdlcycsXG4gIFNVUFBPUlRfVElDS0VUUzogJ3N1cHBvcnRUaWNrZXRzJyxcbiAgVEFHUzogJ3RhZ3MnLFxuICBVU0VSUzogJ3VzZXJzJyxcbiAgVklERU9TOiAndmlkZW9zJ1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBcmFuZ29EQiBFZGdlIENvbGxlY3Rpb24gTmFtZXNcbiAqIENlbnRyYWxpemVkIGNvbnN0YW50cyBmb3IgYWxsIGVkZ2UgY29sbGVjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVER0VTID0ge1xuICBIQVNfQ09OTkVDVElPTjogJ2hhc0Nvbm5lY3Rpb24nLFxuICBIQVNfQ09OVkVSU0FUSU9OOiAnaGFzQ29udmVyc2F0aW9uJyxcbiAgSEFTX0NVU1RPTUVSX05PVElGSUNBVElPTjogJ2hhc0N1c3RvbWVyTm90aWZpY2F0aW9uJyxcbiAgSEFTX0NVU1RPTUVSX09SREVSOiAnaGFzQ3VzdG9tZXJPcmRlcicsXG4gIEhBU19GSUxFOiAnaGFzRmlsZScsXG4gIEhBU19NRURJQTogJ2hhc01lZGlhJyxcbiAgSEFTX01BSUxJTkdfTElTVDogJ2hhc01haWxpbmdMaXN0JyxcbiAgSEFTX1BFUlNPTkE6ICdoYXNQZXJzb25hJyxcbiAgSEFTX1BVUkNIQVNFRF9QUk9EVUNUOiAnaGFzUHVyY2hhc2VkUHJvZHVjdCcsXG4gIEhBU19SRUFDVElPTjogJ2hhc1JlYWN0aW9uJyxcbiAgSEFTX1NVUFBPUlRfVElDS0VUOiAnaGFzU3VwcG9ydFRpY2tldCcsXG4gIEhBU19TVVBQT1JUX1RJQ0tFVF9FVkVOVDogJ2hhc1N1cHBvcnRUaWNrZXRFdmVudCcsXG4gIEhBU19TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFOiAnaGFzU3VwcG9ydFRpY2tldE1lc3NhZ2UnLFxuICBJU19QT1NURUQ6ICdpc1Bvc3RlZCcsXG4gIElTX1RBR0dFRDogJ2lzVGFnZ2VkJ1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBQcml2YWN5IExldmVsIENvbnN0YW50c1xuICogVXNlZCBhY3Jvc3MgcG9zdHMsIGdyb3VwcywgYW5kIG90aGVyIGNvbnRlbnQgdHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFByaXZhY3lMZXZlbCA9IHtcbiAgUFVCTElDOiAncHVibGljJyxcbiAgUFJJVkFURTogJ3ByaXZhdGUnLFxuICBHUk9VUDogJ2dyb3VwJyxcbiAgREVGQVVMVDogJ2RlZmF1bHQnXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcml2YWN5TGV2ZWxUeXBlID0gdHlwZW9mIFByaXZhY3lMZXZlbFtrZXlvZiB0eXBlb2YgUHJpdmFjeUxldmVsXTtcblxuLyoqXG4gKiBSZWFjdGlvbiBUeXBlIENvbnN0YW50c1xuICogU3RhbmRhcmQgcmVhY3Rpb24gdHlwZXMgdXNlZCB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgY29uc3QgUmVhY3Rpb25UeXBlID0ge1xuICBMSUtFOiAnbGlrZScsXG4gIFJTVlA6ICdyc3ZwJyxcbiAgUElOOiAncGluJyxcbiAgVklFVzogJ3ZpZXcnLFxuICBESVNMSUtFOiAnZGlzbGlrZSdcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFJlYWN0aW9uVHlwZVR5cGUgPSB0eXBlb2YgUmVhY3Rpb25UeXBlW2tleW9mIHR5cGVvZiBSZWFjdGlvblR5cGVdO1xuXG4vKipcbiAqIENvbm5lY3Rpb24gVHlwZSBDb25zdGFudHNcbiAqIFR5cGVzIG9mIGNvbm5lY3Rpb25zIGJldHdlZW4gdXNlcnMgYW5kIGdyb3Vwc1xuICovXG5leHBvcnQgY29uc3QgQ29ubmVjdGlvblR5cGUgPSB7XG4gIEFETUlOOiAnYWRtaW4nLFxuICBNRU1CRVI6ICdtZW1iZXInLFxuICBGT0xMT1dFUjogJ2ZvbGxvd2VyJyxcbiAgRk9MTE9XSU5HOiAnZm9sbG93aW5nJyxcbiAgQkxPQ0tFRDogJ2Jsb2NrZWQnXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uVHlwZVR5cGUgPSB0eXBlb2YgQ29ubmVjdGlvblR5cGVba2V5b2YgdHlwZW9mIENvbm5lY3Rpb25UeXBlXTtcbiJdLCJuYW1lcyI6WyJDT0xMRUNUSU9OUyIsIkFQUFMiLCJDT05WRVJTQVRJT05TIiwiQ1VTVE9NRVJfTk9USUZJQ0FUSU9OUyIsIkNVU1RPTUVSX09SREVSUyIsIkZJTEVTIiwiR1JPVVBTIiwiSU1BR0VTIiwiTUFJTElOR19MSVNUUyIsIk1FU1NBR0VTIiwiUEVSU09OQVMiLCJQT1NUUyIsIlNIT1BJRllfUFJPRFVDVFMiLCJTSE9QSUZZX1dFQkhPT0tfRVZFTlRTIiwiU1VQUE9SVF9USUNLRVRfRVZFTlRTIiwiU1VQUE9SVF9USUNLRVRfTUVTU0FHRVMiLCJTVVBQT1JUX1RJQ0tFVFMiLCJUQUdTIiwiVVNFUlMiLCJWSURFT1MiLCJFREdFUyIsIkhBU19DT05ORUNUSU9OIiwiSEFTX0NPTlZFUlNBVElPTiIsIkhBU19DVVNUT01FUl9OT1RJRklDQVRJT04iLCJIQVNfQ1VTVE9NRVJfT1JERVIiLCJIQVNfRklMRSIsIkhBU19NRURJQSIsIkhBU19NQUlMSU5HX0xJU1QiLCJIQVNfUEVSU09OQSIsIkhBU19QVVJDSEFTRURfUFJPRFVDVCIsIkhBU19SRUFDVElPTiIsIkhBU19TVVBQT1JUX1RJQ0tFVCIsIkhBU19TVVBQT1JUX1RJQ0tFVF9FVkVOVCIsIkhBU19TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFIiwiSVNfUE9TVEVEIiwiSVNfVEFHR0VEIiwiUHJpdmFjeUxldmVsIiwiUFVCTElDIiwiUFJJVkFURSIsIkdST1VQIiwiREVGQVVMVCIsIlJlYWN0aW9uVHlwZSIsIkxJS0UiLCJSU1ZQIiwiUElOIiwiVklFVyIsIkRJU0xJS0UiLCJDb25uZWN0aW9uVHlwZSIsIkFETUlOIiwiTUVNQkVSIiwiRk9MTE9XRVIiLCJGT0xMT1dJTkciLCJCTE9DS0VEIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1BLGNBQWM7SUFDekJDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyx3QkFBd0I7SUFDeEJDLGlCQUFpQjtJQUNqQkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsZUFBZTtJQUNmQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxrQkFBa0I7SUFDbEJDLHdCQUF3QjtJQUN4QkMsdUJBQXVCO0lBQ3ZCQyx5QkFBeUI7SUFDekJDLGlCQUFpQjtJQUNqQkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7QUFDVixFQUFXO0FBRVg7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQyxRQUFRO0lBQ25CQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsMkJBQTJCO0lBQzNCQyxvQkFBb0I7SUFDcEJDLFVBQVU7SUFDVkMsV0FBVztJQUNYQyxrQkFBa0I7SUFDbEJDLGFBQWE7SUFDYkMsdUJBQXVCO0lBQ3ZCQyxjQUFjO0lBQ2RDLG9CQUFvQjtJQUNwQkMsMEJBQTBCO0lBQzFCQyw0QkFBNEI7SUFDNUJDLFdBQVc7SUFDWEMsV0FBVztBQUNiLEVBQVc7QUFFWDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLGVBQWU7SUFDMUJDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLFNBQVM7QUFDWCxFQUFXO0FBSVg7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQyxlQUFlO0lBQzFCQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFNBQVM7QUFDWCxFQUFXO0FBSVg7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQyxpQkFBaUI7SUFDNUJDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFdBQVc7SUFDWEMsU0FBUztBQUNYLEVBQVcifQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9jb25zdGFudHMvY29sbGVjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cblxuLyoqXG4gKiBBcmFuZ29EQiBDb2xsZWN0aW9uIE5hbWVzXG4gKiBDZW50cmFsaXplZCBjb25zdGFudHMgZm9yIGFsbCBkYXRhYmFzZSBjb2xsZWN0aW9uc1xuICovXG5leHBvcnQgY29uc3QgQ09MTEVDVElPTlMgPSB7XG4gIEFOQUxZVElDUzogJ2FuYWx5dGljcycsXG4gIEFQUFM6ICdhcHBzJyxcbiAgQ09OVkVSU0FUSU9OUzogJ2NvbnZlcnNhdGlvbnMnLFxuICBDT05URU5UOiAnY29udGVudCcsXG4gIENSTV9DQU1QQUlHTlM6ICdjcm1DYW1wYWlnbnMnLFxuICBDUk1fRk9STV9TVUJNSVNTSU9OUzogJ2NybUZvcm1TdWJtaXNzaW9ucycsXG4gIENVU1RPTUVSX05PVElGSUNBVElPTlM6ICdjdXN0b21lck5vdGlmaWNhdGlvbnMnLFxuICBDVVNUT01FUl9PUkRFUlM6ICdjdXN0b21lck9yZGVycycsXG4gIEZJTEVTOiAnZmlsZXMnLFxuICBGTEFHUzogJ2ZsYWdzJyxcbiAgR1JPVVBTOiAnZ3JvdXBzJyxcbiAgSU1BR0VTOiAnaW1hZ2VzJyxcbiAgTE9DQVRJT05TOiAnbG9jYXRpb25zJyxcbiAgTE9HUzogJ2xvZ3MnLFxuICBNQUlMSU5HX0xJU1RTOiAnbWFpbGluZ0xpc3RzJyxcbiAgTUVTU0FHRVM6ICdtZXNzYWdlcycsXG4gIE5PVElGSUNBVElPTlM6ICdub3RpZmljYXRpb25zJyxcbiAgUEFZTUVOVFM6ICdwYXltZW50cycsXG4gIFBFUlNPTkFTOiAncGVyc29uYXMnLFxuICBQTEFOUzogJ3BsYW5zJyxcbiAgUE9TVFM6ICdwb3N0cycsXG4gIFJFQUNUSU9OUzogJ3JlYWN0aW9ucycsXG4gIFNIT1BJRllfUFJPRFVDVFM6ICdzaG9waWZ5UHJvZHVjdHMnLFxuICBTSE9QSUZZX1dFQkhPT0tfRVZFTlRTOiAnc2hvcGlmeVdlYmhvb2tFdmVudHMnLFxuICBTVUJTQ1JJUFRJT05TOiAnc3Vic2NyaXB0aW9ucycsXG4gIFNVUFBPUlRfVElDS0VUX0VWRU5UUzogJ3N1cHBvcnRUaWNrZXRFdmVudHMnLFxuICBTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFUzogJ3N1cHBvcnRUaWNrZXRNZXNzYWdlcycsXG4gIFNVUFBPUlRfVElDS0VUUzogJ3N1cHBvcnRUaWNrZXRzJyxcbiAgVEFHUzogJ3RhZ3MnLFxuICBVU0VSUzogJ3VzZXJzJyxcbiAgVklERU9TOiAndmlkZW9zJ1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBcmFuZ29EQiBFZGdlIENvbGxlY3Rpb24gTmFtZXNcbiAqIENlbnRyYWxpemVkIGNvbnN0YW50cyBmb3IgYWxsIGVkZ2UgY29sbGVjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVER0VTID0ge1xuICBIQVNfQ09OTkVDVElPTjogJ2hhc0Nvbm5lY3Rpb24nLFxuICBIQVNfQ09OVkVSU0FUSU9OOiAnaGFzQ29udmVyc2F0aW9uJyxcbiAgSEFTX0NVU1RPTUVSX05PVElGSUNBVElPTjogJ2hhc0N1c3RvbWVyTm90aWZpY2F0aW9uJyxcbiAgSEFTX0NVU1RPTUVSX09SREVSOiAnaGFzQ3VzdG9tZXJPcmRlcicsXG4gIEhBU19GSUxFOiAnaGFzRmlsZScsXG4gIEhBU19MT0NBVElPTjogJ2hhc0xvY2F0aW9uJyxcbiAgSEFTX01FRElBOiAnaGFzTWVkaWEnLFxuICBIQVNfTUFJTElOR19MSVNUOiAnaGFzTWFpbGluZ0xpc3QnLFxuICBIQVNfUEFZTUVOVDogJ2hhc1BheW1lbnQnLFxuICBIQVNfUEVSU09OQTogJ2hhc1BlcnNvbmEnLFxuICBIQVNfUFVSQ0hBU0VEX1BST0RVQ1Q6ICdoYXNQdXJjaGFzZWRQcm9kdWN0JyxcbiAgSEFTX1JFQUNUSU9OOiAnaGFzUmVhY3Rpb24nLFxuICBIQVNfU1VQUE9SVF9USUNLRVQ6ICdoYXNTdXBwb3J0VGlja2V0JyxcbiAgSEFTX1NVUFBPUlRfVElDS0VUX0VWRU5UOiAnaGFzU3VwcG9ydFRpY2tldEV2ZW50JyxcbiAgSEFTX1NVUFBPUlRfVElDS0VUX01FU1NBR0U6ICdoYXNTdXBwb3J0VGlja2V0TWVzc2FnZScsXG4gIElTX1BPU1RFRDogJ2lzUG9zdGVkJyxcbiAgSVNfVEFHR0VEOiAnaXNUYWdnZWQnXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9ET0NVTUVOVF9DT0xMRUNUSU9OUyA9IE9iamVjdC5mcmVlemUoT2JqZWN0LnZhbHVlcyhDT0xMRUNUSU9OUykuc29ydCgpKTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VER0VfQ09MTEVDVElPTlMgPSBPYmplY3QuZnJlZXplKE9iamVjdC52YWx1ZXMoRURHRVMpLnNvcnQoKSk7XG5cbi8qKlxuICogUHJpdmFjeSBMZXZlbCBDb25zdGFudHNcbiAqIFVzZWQgYWNyb3NzIHBvc3RzLCBncm91cHMsIGFuZCBvdGhlciBjb250ZW50IHR5cGVzXG4gKi9cbmV4cG9ydCBjb25zdCBQcml2YWN5TGV2ZWwgPSB7XG4gIFBVQkxJQzogJ3B1YmxpYycsXG4gIFBSSVZBVEU6ICdwcml2YXRlJyxcbiAgR1JPVVA6ICdncm91cCcsXG4gIERFRkFVTFQ6ICdkZWZhdWx0J1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJpdmFjeUxldmVsVHlwZSA9IHR5cGVvZiBQcml2YWN5TGV2ZWxba2V5b2YgdHlwZW9mIFByaXZhY3lMZXZlbF07XG5cbi8qKlxuICogUmVhY3Rpb24gVHlwZSBDb25zdGFudHNcbiAqIFN0YW5kYXJkIHJlYWN0aW9uIHR5cGVzIHVzZWQgdGhyb3VnaG91dCB0aGUgYXBwbGljYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFJlYWN0aW9uVHlwZSA9IHtcbiAgTElLRTogJ2xpa2UnLFxuICBSU1ZQOiAncnN2cCcsXG4gIFBJTjogJ3BpbicsXG4gIFZJRVc6ICd2aWV3JyxcbiAgRElTTElLRTogJ2Rpc2xpa2UnXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBSZWFjdGlvblR5cGVUeXBlID0gdHlwZW9mIFJlYWN0aW9uVHlwZVtrZXlvZiB0eXBlb2YgUmVhY3Rpb25UeXBlXTtcblxuLyoqXG4gKiBDb25uZWN0aW9uIFR5cGUgQ29uc3RhbnRzXG4gKiBUeXBlcyBvZiBjb25uZWN0aW9ucyBiZXR3ZWVuIHVzZXJzIGFuZCBncm91cHNcbiAqL1xuZXhwb3J0IGNvbnN0IENvbm5lY3Rpb25UeXBlID0ge1xuICBBRE1JTjogJ2FkbWluJyxcbiAgTUVNQkVSOiAnbWVtYmVyJyxcbiAgRk9MTE9XRVI6ICdmb2xsb3dlcicsXG4gIEZPTExPV0lORzogJ2ZvbGxvd2luZycsXG4gIEJMT0NLRUQ6ICdibG9ja2VkJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29ubmVjdGlvblR5cGVUeXBlID0gdHlwZW9mIENvbm5lY3Rpb25UeXBlW2tleW9mIHR5cGVvZiBDb25uZWN0aW9uVHlwZV07XG4iXSwibmFtZXMiOlsiQ09MTEVDVElPTlMiLCJBTkFMWVRJQ1MiLCJBUFBTIiwiQ09OVkVSU0FUSU9OUyIsIkNPTlRFTlQiLCJDUk1fQ0FNUEFJR05TIiwiQ1JNX0ZPUk1fU1VCTUlTU0lPTlMiLCJDVVNUT01FUl9OT1RJRklDQVRJT05TIiwiQ1VTVE9NRVJfT1JERVJTIiwiRklMRVMiLCJGTEFHUyIsIkdST1VQUyIsIklNQUdFUyIsIkxPQ0FUSU9OUyIsIkxPR1MiLCJNQUlMSU5HX0xJU1RTIiwiTUVTU0FHRVMiLCJOT1RJRklDQVRJT05TIiwiUEFZTUVOVFMiLCJQRVJTT05BUyIsIlBMQU5TIiwiUE9TVFMiLCJSRUFDVElPTlMiLCJTSE9QSUZZX1BST0RVQ1RTIiwiU0hPUElGWV9XRUJIT09LX0VWRU5UUyIsIlNVQlNDUklQVElPTlMiLCJTVVBQT1JUX1RJQ0tFVF9FVkVOVFMiLCJTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFUyIsIlNVUFBPUlRfVElDS0VUUyIsIlRBR1MiLCJVU0VSUyIsIlZJREVPUyIsIkVER0VTIiwiSEFTX0NPTk5FQ1RJT04iLCJIQVNfQ09OVkVSU0FUSU9OIiwiSEFTX0NVU1RPTUVSX05PVElGSUNBVElPTiIsIkhBU19DVVNUT01FUl9PUkRFUiIsIkhBU19GSUxFIiwiSEFTX0xPQ0FUSU9OIiwiSEFTX01FRElBIiwiSEFTX01BSUxJTkdfTElTVCIsIkhBU19QQVlNRU5UIiwiSEFTX1BFUlNPTkEiLCJIQVNfUFVSQ0hBU0VEX1BST0RVQ1QiLCJIQVNfUkVBQ1RJT04iLCJIQVNfU1VQUE9SVF9USUNLRVQiLCJIQVNfU1VQUE9SVF9USUNLRVRfRVZFTlQiLCJIQVNfU1VQUE9SVF9USUNLRVRfTUVTU0FHRSIsIklTX1BPU1RFRCIsIklTX1RBR0dFRCIsIkRFRkFVTFRfRE9DVU1FTlRfQ09MTEVDVElPTlMiLCJPYmplY3QiLCJmcmVlemUiLCJ2YWx1ZXMiLCJzb3J0IiwiREVGQVVMVF9FREdFX0NPTExFQ1RJT05TIiwiUHJpdmFjeUxldmVsIiwiUFVCTElDIiwiUFJJVkFURSIsIkdST1VQIiwiREVGQVVMVCIsIlJlYWN0aW9uVHlwZSIsIkxJS0UiLCJSU1ZQIiwiUElOIiwiVklFVyIsIkRJU0xJS0UiLCJDb25uZWN0aW9uVHlwZSIsIkFETUlOIiwiTUVNQkVSIiwiRk9MTE9XRVIiLCJGT0xMT1dJTkciLCJCTE9DS0VEIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1BLGNBQWM7SUFDekJDLFdBQVc7SUFDWEMsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFNBQVM7SUFDVEMsZUFBZTtJQUNmQyxzQkFBc0I7SUFDdEJDLHdCQUF3QjtJQUN4QkMsaUJBQWlCO0lBQ2pCQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFdBQVc7SUFDWEMsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFVBQVU7SUFDVkMsZUFBZTtJQUNmQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFdBQVc7SUFDWEMsa0JBQWtCO0lBQ2xCQyx3QkFBd0I7SUFDeEJDLGVBQWU7SUFDZkMsdUJBQXVCO0lBQ3ZCQyx5QkFBeUI7SUFDekJDLGlCQUFpQjtJQUNqQkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7QUFDVixFQUFXO0FBRVg7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQyxRQUFRO0lBQ25CQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsMkJBQTJCO0lBQzNCQyxvQkFBb0I7SUFDcEJDLFVBQVU7SUFDVkMsY0FBYztJQUNkQyxXQUFXO0lBQ1hDLGtCQUFrQjtJQUNsQkMsYUFBYTtJQUNiQyxhQUFhO0lBQ2JDLHVCQUF1QjtJQUN2QkMsY0FBYztJQUNkQyxvQkFBb0I7SUFDcEJDLDBCQUEwQjtJQUMxQkMsNEJBQTRCO0lBQzVCQyxXQUFXO0lBQ1hDLFdBQVc7QUFDYixFQUFXO0FBRVgsT0FBTyxNQUFNQywrQkFBK0JDLE9BQU9DLE1BQU0sQ0FBQ0QsT0FBT0UsTUFBTSxDQUFDckQsYUFBYXNELElBQUksSUFBSTtBQUM3RixPQUFPLE1BQU1DLDJCQUEyQkosT0FBT0MsTUFBTSxDQUFDRCxPQUFPRSxNQUFNLENBQUNyQixPQUFPc0IsSUFBSSxJQUFJO0FBRW5GOzs7Q0FHQyxHQUNELE9BQU8sTUFBTUUsZUFBZTtJQUMxQkMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsU0FBUztBQUNYLEVBQVc7QUFJWDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLGVBQWU7SUFDMUJDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsU0FBUztBQUNYLEVBQVc7QUFJWDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLGlCQUFpQjtJQUM1QkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFVBQVU7SUFDVkMsV0FBVztJQUNYQyxTQUFTO0FBQ1gsRUFBVyJ9
@@ -1,5 +1,5 @@
1
1
  import type { SchemaComposer } from 'graphql-compose';
2
- import type { APIGatewayEvent } from 'aws-lambda';
2
+ import type { APIGatewayProxyEventV2 } from 'aws-lambda';
3
3
  import type { ExecutionResult } from 'graphql';
4
4
  import type { ApiContext } from '../types/auth.types.js';
5
5
  export type GraphqlResolverMiddleware = (resolve: (source: unknown, args: unknown, context: ApiContext, info: unknown) => Promise<unknown> | unknown, source: unknown, args: unknown, context: ApiContext, info: unknown) => Promise<unknown> | unknown;
@@ -31,5 +31,5 @@ export type GraphqlHandlerOptions = {
31
31
  *
32
32
  * See README: "GraphQL Handler Usage" for integration examples.
33
33
  */
34
- export declare const createGraphqlHandler: (input?: ApiContext | GraphqlHandlerOptions) => (event: APIGatewayEvent) => Promise<ExecutionResult | Record<string, unknown>>;
34
+ export declare const createGraphqlHandler: (options?: GraphqlHandlerOptions) => (event: APIGatewayProxyEventV2) => Promise<ExecutionResult | Record<string, unknown>>;
35
35
  export {};
@@ -19,20 +19,6 @@ const addMissingFields = (tc, fields)=>{
19
19
  }
20
20
  });
21
21
  };
22
- const isGraphqlHandlerOptions = (value)=>{
23
- if (!value || typeof value !== 'object') {
24
- return false;
25
- }
26
- const valueObj = value;
27
- return [
28
- 'composer',
29
- 'context',
30
- 'extraMutations',
31
- 'extraQueries',
32
- 'includeDefaults',
33
- 'middleware'
34
- ].some((key)=>key in valueObj);
35
- };
36
22
  const applyMiddleware = (tc, middlewares)=>{
37
23
  if (middlewares.length === 0) {
38
24
  return;
@@ -65,10 +51,7 @@ const applyMiddleware = (tc, middlewares)=>{
65
51
  * - Returns `500` only for handler/runtime failures.
66
52
  *
67
53
  * See README: "GraphQL Handler Usage" for integration examples.
68
- */ export const createGraphqlHandler = (input = {})=>{
69
- const options = isGraphqlHandlerOptions(input) ? input : {
70
- context: input
71
- };
54
+ */ export const createGraphqlHandler = (options = {})=>{
72
55
  const composer = options.composer || schemaComposer;
73
56
  const initialContext = options.context || {};
74
57
  const shouldIncludeDefaults = options.includeDefaults !== false;
@@ -183,4 +166,4 @@ const applyMiddleware = (tc, middlewares)=>{
183
166
  };
184
167
  };
185
168
 
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2hhbmRsZXJzL2dyYXBocWxIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z3JhcGhxbH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuaW1wb3J0IHR5cGUge09iamVjdFR5cGVDb21wb3NlciwgU2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRNdXRhdGlvbnN9IGZyb20gJy4uL211dGF0aW9ucy9pbmRleC5qcyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdFF1ZXJpZXN9IGZyb20gJy4uL3F1ZXJpZXMvaW5kZXguanMnO1xuaW1wb3J0IHtleHRyYWN0TGFuZ3VhZ2VDb250ZXh0fSBmcm9tICcuLi91dGlscy9jb250ZXh0VXRpbHMuanMnO1xuaW1wb3J0IHtjcmVhdGVDb250ZXh0LCBnZXRHcWxGaWVsZHMsIGdldExhbWJkYURhdGEsIHR5cGUgTGFtYmRhRGF0YX0gZnJvbSAnLi4vdXRpbHMvaW5kZXguanMnO1xuXG5pbXBvcnQgdHlwZSB7QVBJR2F0ZXdheUV2ZW50fSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtFeGVjdXRpb25SZXN1bHR9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlID0gKFxuICByZXNvbHZlOiAoc291cmNlOiB1bmtub3duLCBhcmdzOiB1bmtub3duLCBjb250ZXh0OiBBcGlDb250ZXh0LCBpbmZvOiB1bmtub3duKSA9PiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93bixcbiAgc291cmNlOiB1bmtub3duLFxuICBhcmdzOiB1bmtub3duLFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpbmZvOiB1bmtub3duXG4pID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duO1xuXG50eXBlIEdyYXBocWxGaWVsZENvbmZpZ01hcCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBHcmFwaHFsSGFuZGxlck9wdGlvbnMgPSB7XG4gIGNvbXBvc2VyPzogU2NoZW1hQ29tcG9zZXI8YW55PjtcbiAgY29udGV4dD86IEFwaUNvbnRleHQ7XG4gIGV4dHJhTXV0YXRpb25zPzogR3JhcGhxbEZpZWxkQ29uZmlnTWFwO1xuICBleHRyYVF1ZXJpZXM/OiBHcmFwaHFsRmllbGRDb25maWdNYXA7XG4gIGluY2x1ZGVEZWZhdWx0cz86IGJvb2xlYW47XG4gIG1pZGRsZXdhcmU/OiBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlIHwgR3JhcGhxbFJlc29sdmVyTWlkZGxld2FyZVtdO1xufTtcblxuY29uc3QgYWRkRmllbGRzTWlkZGxld2FyZTogR3JhcGhxbFJlc29sdmVyTWlkZGxld2FyZSA9IChyZXNvbHZlLCBzb3VyY2UsIGFyZ3MsIGNvbnRleHQ6IEFwaUNvbnRleHQsIGluZm8pID0+IHtcbiAgY29uc3QgZW5oYW5jZWRDb250ZXh0ID0ge1xuICAgIC4uLmNvbnRleHQsXG4gICAgZmllbGRzOiBnZXRHcWxGaWVsZHMoaW5mbylcbiAgfTtcblxuICByZXR1cm4gcmVzb2x2ZShzb3VyY2UsIGFyZ3MsIGVuaGFuY2VkQ29udGV4dCwgaW5mbyk7XG59O1xuXG5jb25zdCBhZGRNaXNzaW5nRmllbGRzID0gKHRjOiBPYmplY3RUeXBlQ29tcG9zZXI8dW5rbm93biwgdW5rbm93bj4sIGZpZWxkczogR3JhcGhxbEZpZWxkQ29uZmlnTWFwKTogdm9pZCA9PiB7XG4gIE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW2ZpZWxkTmFtZSwgZmllbGRDb25maWddKSA9PiB7XG4gICAgaWYoIXRjLmhhc0ZpZWxkKGZpZWxkTmFtZSkpIHtcbiAgICAgIHRjLnNldEZpZWxkKGZpZWxkTmFtZSwgZmllbGRDb25maWcgYXMgYW55KTtcbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgaXNHcmFwaHFsSGFuZGxlck9wdGlvbnMgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBHcmFwaHFsSGFuZGxlck9wdGlvbnMgPT4ge1xuICBpZighdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlT2JqID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJldHVybiBbXG4gICAgJ2NvbXBvc2VyJyxcbiAgICAnY29udGV4dCcsXG4gICAgJ2V4dHJhTXV0YXRpb25zJyxcbiAgICAnZXh0cmFRdWVyaWVzJyxcbiAgICAnaW5jbHVkZURlZmF1bHRzJyxcbiAgICAnbWlkZGxld2FyZSdcbiAgXS5zb21lKChrZXkpID0+IGtleSBpbiB2YWx1ZU9iaik7XG59O1xuXG5jb25zdCBhcHBseU1pZGRsZXdhcmUgPSAoXG4gIHRjOiBPYmplY3RUeXBlQ29tcG9zZXI8dW5rbm93biwgdW5rbm93bj4sXG4gIG1pZGRsZXdhcmVzOiBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlW11cbik6IHZvaWQgPT4ge1xuICBpZihtaWRkbGV3YXJlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBPYmplY3Qua2V5cyh0Yy5nZXRGaWVsZHMoKSkuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmKHRjLmhhc1Jlc29sdmVyKGZpZWxkTmFtZSkpIHtcbiAgICAgICAgbWlkZGxld2FyZXMuZm9yRWFjaCgobWlkZGxld2FyZSkgPT4gdGMud3JhcFJlc29sdmVyKGZpZWxkTmFtZSwgbWlkZGxld2FyZSBhcyBhbnkpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgU2tpcHBpbmcgZmllbGQgJHtmaWVsZE5hbWV9IC0gbm90IGEgcmVzb2x2ZXI6YCwgZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICB9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBUEkgR2F0ZXdheS1jb21wYXRpYmxlIEdyYXBoUUwgaGFuZGxlciBmb3IgUmVha3Rvci5cbiAqXG4gKiBSZXF1ZXN0IGV4cGVjdGF0aW9uczpcbiAqIC0gYGV2ZW50LmJvZHkucXVlcnlgIGlzIGEgR3JhcGhRTCBvcGVyYXRpb24gc3RyaW5nLlxuICogLSBgZXZlbnQuYm9keS52YXJpYWJsZXNgIGlzIG9wdGlvbmFsIG9wZXJhdGlvbiB2YXJpYWJsZXMuXG4gKlxuICogUnVudGltZSBiZWhhdmlvcjpcbiAqIC0gQnVpbGRzIHBlci1yZXF1ZXN0IGNvbnRleHQgKGBjb25maWdgLCBhdXRoL3Nlc3Npb24gY29udGV4dCwgbGFuZ3VhZ2UgY29udGV4dCwgcmVxdWVzdCkuXG4gKiAtIEFwcGxpZXMgcmVzb2x2ZXIgbWlkZGxld2FyZSB0byBleHBvc2Ugc2VsZWN0ZWQgR3JhcGhRTCBmaWVsZHMgb24gYGNvbnRleHQuZmllbGRzYC5cbiAqIC0gRXhlY3V0ZXMgb3BlcmF0aW9uIHVzaW5nIHRoZSBjb21wb3NlZCBzY2hlbWEuXG4gKlxuICogUmVzcG9uc2UgY29udHJhY3Q6XG4gKiAtIFJldHVybnMgYHtzdGF0dXNDb2RlLCBoZWFkZXJzLCBib2R5fWAgd2l0aCBKU09OIGJvZHkuXG4gKiAtIFJldHVybnMgYDIwMGAgZm9yIEdyYXBoUUwgcmVzcG9uc2VzIChpbmNsdWRpbmcgR3JhcGhRTCBlcnJvcnMgaW4gYGVycm9yc2ApLlxuICogLSBSZXR1cm5zIGA1MDBgIG9ubHkgZm9yIGhhbmRsZXIvcnVudGltZSBmYWlsdXJlcy5cbiAqXG4gKiBTZWUgUkVBRE1FOiBcIkdyYXBoUUwgSGFuZGxlciBVc2FnZVwiIGZvciBpbnRlZ3JhdGlvbiBleGFtcGxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUdyYXBocWxIYW5kbGVyID0gKGlucHV0OiBBcGlDb250ZXh0IHwgR3JhcGhxbEhhbmRsZXJPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IGlzR3JhcGhxbEhhbmRsZXJPcHRpb25zKGlucHV0KVxuICAgID8gaW5wdXRcbiAgICA6IHtjb250ZXh0OiBpbnB1dCBhcyBBcGlDb250ZXh0fTtcblxuICBjb25zdCBjb21wb3NlciA9IG9wdGlvbnMuY29tcG9zZXIgfHwgc2NoZW1hQ29tcG9zZXI7XG4gIGNvbnN0IGluaXRpYWxDb250ZXh0ID0gKG9wdGlvbnMuY29udGV4dCB8fCB7fSkgYXMgQXBpQ29udGV4dDtcbiAgY29uc3Qgc2hvdWxkSW5jbHVkZURlZmF1bHRzID0gb3B0aW9ucy5pbmNsdWRlRGVmYXVsdHMgIT09IGZhbHNlO1xuICBjb25zdCBtaWRkbGV3YXJlTGlzdCA9IFtcbiAgICBhZGRGaWVsZHNNaWRkbGV3YXJlLFxuICAgIC4uLihBcnJheS5pc0FycmF5KG9wdGlvbnMubWlkZGxld2FyZSlcbiAgICAgID8gb3B0aW9ucy5taWRkbGV3YXJlXG4gICAgICA6IG9wdGlvbnMubWlkZGxld2FyZSA/IFtvcHRpb25zLm1pZGRsZXdhcmVdIDogW10pXG4gIF07XG5cbiAgaWYoc2hvdWxkSW5jbHVkZURlZmF1bHRzKSB7XG4gICAgcmVnaXN0ZXJEZWZhdWx0UXVlcmllcyhjb21wb3Nlcik7XG4gICAgcmVnaXN0ZXJEZWZhdWx0TXV0YXRpb25zKGNvbXBvc2VyKTtcbiAgfVxuXG4gIGlmKG9wdGlvbnMuZXh0cmFRdWVyaWVzKSB7XG4gICAgYWRkTWlzc2luZ0ZpZWxkcyhjb21wb3Nlci5RdWVyeSwgb3B0aW9ucy5leHRyYVF1ZXJpZXMpO1xuICB9XG5cbiAgaWYob3B0aW9ucy5leHRyYU11dGF0aW9ucykge1xuICAgIGFkZE1pc3NpbmdGaWVsZHMoY29tcG9zZXIuTXV0YXRpb24sIG9wdGlvbnMuZXh0cmFNdXRhdGlvbnMpO1xuICB9XG5cbiAgYXBwbHlNaWRkbGV3YXJlKGNvbXBvc2VyLlF1ZXJ5LCBtaWRkbGV3YXJlTGlzdCk7XG4gIGFwcGx5TWlkZGxld2FyZShjb21wb3Nlci5NdXRhdGlvbiwgbWlkZGxld2FyZUxpc3QpO1xuXG4gIGNvbnN0IHNjaGVtYSA9IGNvbXBvc2VyLmJ1aWxkU2NoZW1hKCk7XG5cbiAgcmV0dXJuIGFzeW5jIChldmVudDogQVBJR2F0ZXdheUV2ZW50KTogUHJvbWlzZTxFeGVjdXRpb25SZXN1bHQgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQXBpQ29udGV4dCA9IGF3YWl0IGNyZWF0ZUNvbnRleHQoaW5pdGlhbENvbnRleHQsIGV2ZW50KTtcbiAgICAgIGNvbnN0IGxhbmd1YWdlQ29udGV4dCA9IGV4dHJhY3RMYW5ndWFnZUNvbnRleHQoZXZlbnQpO1xuXG4gICAgICBjb25zdCBjb250ZXh0V2l0aExhbmd1YWdlID0ge1xuICAgICAgICBjb25maWc6IENvbmZpZy5nZXQoKSxcbiAgICAgICAgLi4udXBkYXRlZENvbnRleHQsXG4gICAgICAgIGxhbmd1YWdlQ29udGV4dCxcbiAgICAgICAgcmVxdWVzdDogZXZlbnRcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBhcnNlRGF0YSA9IGdldExhbWJkYURhdGEoZXZlbnQgYXMgdW5rbm93biBhcyBMYW1iZGFEYXRhKTtcbiAgICAgIGNvbnN0IHtib2R5fSA9IHBhcnNlRGF0YTtcblxuICAgICAgaWYoIWJvZHk/LnF1ZXJ5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignTm8gR3JhcGhRTCBxdWVyeSBmb3VuZCBpbiByZXF1ZXN0IGJvZHknKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBlcnJvcnM6IFt7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdObyBHcmFwaFFMIHF1ZXJ5IGZvdW5kIGluIHJlcXVlc3QgYm9keSdcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdHVzQ29kZTogMjAwXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShncmFwaHFsKHtcbiAgICAgICAgICBjb250ZXh0VmFsdWU6IGNvbnRleHRXaXRoTGFuZ3VhZ2UsXG4gICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgIHNvdXJjZTogYm9keS5xdWVyeSxcbiAgICAgICAgICB2YXJpYWJsZVZhbHVlczogYm9keS52YXJpYWJsZXNcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmKHJlc3VsdC5lcnJvcnMgJiYgcmVzdWx0LmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignR3JhcGhRTCBleGVjdXRpb24gZXJyb3JzOicsIHJlc3VsdC5lcnJvcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXN1bHQpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaChncmFwaHFsRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEdyYXBoUUwgZXhlY3V0aW9uOicsIGdyYXBocWxFcnJvcik7XG5cbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ3JhcGhxbEVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBncmFwaHFsRXJyb3IubWVzc2FnZSA6ICdHcmFwaFFMIGV4ZWN1dGlvbiBlcnJvcic7XG4gICAgICAgIGNvbnN0IGVycm9yU3RhY2sgPSBncmFwaHFsRXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGdyYXBocWxFcnJvci5zdGFjayA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBlcnJvcnM6IFt7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyb3JTdGFjayA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfV1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0dXNDb2RlOiA1MDBcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGVycjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignSGFuZGxlciBlcnJvcjonLCB7XG4gICAgICAgIG1lc3NhZ2U6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIHN0YWNrOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5zdGFjayA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCBpbiB0aGUgaGFuZGxlcic7XG4gICAgICBjb25zdCBlcnJvclN0YWNrID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIuc3RhY2sgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yczogW3tcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YWNrOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyA/IGVycm9yU3RhY2sgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XVxuICAgICAgICB9KSxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzQ29kZTogNTAwXG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiZ3JhcGhxbCIsInNjaGVtYUNvbXBvc2VyIiwiQ29uZmlnIiwicmVnaXN0ZXJEZWZhdWx0TXV0YXRpb25zIiwicmVnaXN0ZXJEZWZhdWx0UXVlcmllcyIsImV4dHJhY3RMYW5ndWFnZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiZ2V0R3FsRmllbGRzIiwiZ2V0TGFtYmRhRGF0YSIsImFkZEZpZWxkc01pZGRsZXdhcmUiLCJyZXNvbHZlIiwic291cmNlIiwiYXJncyIsImNvbnRleHQiLCJpbmZvIiwiZW5oYW5jZWRDb250ZXh0IiwiZmllbGRzIiwiYWRkTWlzc2luZ0ZpZWxkcyIsInRjIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJmaWVsZE5hbWUiLCJmaWVsZENvbmZpZyIsImhhc0ZpZWxkIiwic2V0RmllbGQiLCJpc0dyYXBocWxIYW5kbGVyT3B0aW9ucyIsInZhbHVlIiwidmFsdWVPYmoiLCJzb21lIiwia2V5IiwiYXBwbHlNaWRkbGV3YXJlIiwibWlkZGxld2FyZXMiLCJsZW5ndGgiLCJrZXlzIiwiZ2V0RmllbGRzIiwiaGFzUmVzb2x2ZXIiLCJtaWRkbGV3YXJlIiwid3JhcFJlc29sdmVyIiwiZXJyb3IiLCJjb25zb2xlIiwid2FybiIsIm1lc3NhZ2UiLCJjcmVhdGVHcmFwaHFsSGFuZGxlciIsImlucHV0Iiwib3B0aW9ucyIsImNvbXBvc2VyIiwiaW5pdGlhbENvbnRleHQiLCJzaG91bGRJbmNsdWRlRGVmYXVsdHMiLCJpbmNsdWRlRGVmYXVsdHMiLCJtaWRkbGV3YXJlTGlzdCIsIkFycmF5IiwiaXNBcnJheSIsImV4dHJhUXVlcmllcyIsIlF1ZXJ5IiwiZXh0cmFNdXRhdGlvbnMiLCJNdXRhdGlvbiIsInNjaGVtYSIsImJ1aWxkU2NoZW1hIiwiZXZlbnQiLCJ1cGRhdGVkQ29udGV4dCIsImxhbmd1YWdlQ29udGV4dCIsImNvbnRleHRXaXRoTGFuZ3VhZ2UiLCJjb25maWciLCJnZXQiLCJyZXF1ZXN0IiwicGFyc2VEYXRhIiwiYm9keSIsInF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGEiLCJlcnJvcnMiLCJoZWFkZXJzIiwic3RhdHVzQ29kZSIsInJlc3VsdCIsIlByb21pc2UiLCJjb250ZXh0VmFsdWUiLCJ2YXJpYWJsZVZhbHVlcyIsInZhcmlhYmxlcyIsImdyYXBocWxFcnJvciIsImVycm9yTWVzc2FnZSIsIkVycm9yIiwiZXJyb3JTdGFjayIsInN0YWNrIiwidW5kZWZpbmVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxPQUFPLFFBQU8sVUFBVTtBQUNoQyxTQUFRQyxjQUFjLFFBQU8sa0JBQWtCO0FBRy9DLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBQ3BDLFNBQVFDLHdCQUF3QixRQUFPLHdCQUF3QjtBQUMvRCxTQUFRQyxzQkFBc0IsUUFBTyxzQkFBc0I7QUFDM0QsU0FBUUMsc0JBQXNCLFFBQU8sMkJBQTJCO0FBQ2hFLFNBQVFDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQXdCLG9CQUFvQjtBQXlCOUYsTUFB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
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9oYW5kbGVycy9ncmFwaHFsSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dyYXBocWx9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcbmltcG9ydCB0eXBlIHtPYmplY3RUeXBlQ29tcG9zZXIsIFNjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7cmVnaXN0ZXJEZWZhdWx0TXV0YXRpb25zfSBmcm9tICcuLi9tdXRhdGlvbnMvaW5kZXguanMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRRdWVyaWVzfSBmcm9tICcuLi9xdWVyaWVzL2luZGV4LmpzJztcbmltcG9ydCB7ZXh0cmFjdExhbmd1YWdlQ29udGV4dH0gZnJvbSAnLi4vdXRpbHMvY29udGV4dFV0aWxzLmpzJztcbmltcG9ydCB7Y3JlYXRlQ29udGV4dCwgZ2V0R3FsRmllbGRzLCBnZXRMYW1iZGFEYXRhLCB0eXBlIExhbWJkYURhdGF9IGZyb20gJy4uL3V0aWxzL2luZGV4LmpzJztcblxuaW1wb3J0IHR5cGUge0FQSUdhdGV3YXlQcm94eUV2ZW50VjJ9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge0V4ZWN1dGlvblJlc3VsdH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIEdyYXBocWxSZXNvbHZlck1pZGRsZXdhcmUgPSAoXG4gIHJlc29sdmU6IChzb3VyY2U6IHVua25vd24sIGFyZ3M6IHVua25vd24sIGNvbnRleHQ6IEFwaUNvbnRleHQsIGluZm86IHVua25vd24pID0+IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duLFxuICBzb3VyY2U6IHVua25vd24sXG4gIGFyZ3M6IHVua25vd24sXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGluZm86IHVua25vd25cbikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHVua25vd247XG5cbnR5cGUgR3JhcGhxbEZpZWxkQ29uZmlnTWFwID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIEdyYXBocWxIYW5kbGVyT3B0aW9ucyA9IHtcbiAgY29tcG9zZXI/OiBTY2hlbWFDb21wb3Nlcjxhbnk+O1xuICBjb250ZXh0PzogQXBpQ29udGV4dDtcbiAgZXh0cmFNdXRhdGlvbnM/OiBHcmFwaHFsRmllbGRDb25maWdNYXA7XG4gIGV4dHJhUXVlcmllcz86IEdyYXBocWxGaWVsZENvbmZpZ01hcDtcbiAgaW5jbHVkZURlZmF1bHRzPzogYm9vbGVhbjtcbiAgbWlkZGxld2FyZT86IEdyYXBocWxSZXNvbHZlck1pZGRsZXdhcmUgfCBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlW107XG59O1xuXG5jb25zdCBhZGRGaWVsZHNNaWRkbGV3YXJlOiBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlID0gKHJlc29sdmUsIHNvdXJjZSwgYXJncywgY29udGV4dDogQXBpQ29udGV4dCwgaW5mbykgPT4ge1xuICBjb25zdCBlbmhhbmNlZENvbnRleHQgPSB7XG4gICAgLi4uY29udGV4dCxcbiAgICBmaWVsZHM6IGdldEdxbEZpZWxkcyhpbmZvKVxuICB9O1xuXG4gIHJldHVybiByZXNvbHZlKHNvdXJjZSwgYXJncywgZW5oYW5jZWRDb250ZXh0LCBpbmZvKTtcbn07XG5cbmNvbnN0IGFkZE1pc3NpbmdGaWVsZHMgPSAodGM6IE9iamVjdFR5cGVDb21wb3Nlcjx1bmtub3duLCB1bmtub3duPiwgZmllbGRzOiBHcmFwaHFsRmllbGRDb25maWdNYXApOiB2b2lkID0+IHtcbiAgT2JqZWN0LmVudHJpZXMoZmllbGRzKS5mb3JFYWNoKChbZmllbGROYW1lLCBmaWVsZENvbmZpZ10pID0+IHtcbiAgICBpZighdGMuaGFzRmllbGQoZmllbGROYW1lKSkge1xuICAgICAgdGMuc2V0RmllbGQoZmllbGROYW1lLCBmaWVsZENvbmZpZyBhcyBhbnkpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBhcHBseU1pZGRsZXdhcmUgPSAoXG4gIHRjOiBPYmplY3RUeXBlQ29tcG9zZXI8dW5rbm93biwgdW5rbm93bj4sXG4gIG1pZGRsZXdhcmVzOiBHcmFwaHFsUmVzb2x2ZXJNaWRkbGV3YXJlW11cbik6IHZvaWQgPT4ge1xuICBpZihtaWRkbGV3YXJlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBPYmplY3Qua2V5cyh0Yy5nZXRGaWVsZHMoKSkuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmKHRjLmhhc1Jlc29sdmVyKGZpZWxkTmFtZSkpIHtcbiAgICAgICAgbWlkZGxld2FyZXMuZm9yRWFjaCgobWlkZGxld2FyZSkgPT4gdGMud3JhcFJlc29sdmVyKGZpZWxkTmFtZSwgbWlkZGxld2FyZSBhcyBhbnkpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgU2tpcHBpbmcgZmllbGQgJHtmaWVsZE5hbWV9IC0gbm90IGEgcmVzb2x2ZXI6YCwgZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICB9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBUEkgR2F0ZXdheS1jb21wYXRpYmxlIEdyYXBoUUwgaGFuZGxlciBmb3IgUmVha3Rvci5cbiAqXG4gKiBSZXF1ZXN0IGV4cGVjdGF0aW9uczpcbiAqIC0gYGV2ZW50LmJvZHkucXVlcnlgIGlzIGEgR3JhcGhRTCBvcGVyYXRpb24gc3RyaW5nLlxuICogLSBgZXZlbnQuYm9keS52YXJpYWJsZXNgIGlzIG9wdGlvbmFsIG9wZXJhdGlvbiB2YXJpYWJsZXMuXG4gKlxuICogUnVudGltZSBiZWhhdmlvcjpcbiAqIC0gQnVpbGRzIHBlci1yZXF1ZXN0IGNvbnRleHQgKGBjb25maWdgLCBhdXRoL3Nlc3Npb24gY29udGV4dCwgbGFuZ3VhZ2UgY29udGV4dCwgcmVxdWVzdCkuXG4gKiAtIEFwcGxpZXMgcmVzb2x2ZXIgbWlkZGxld2FyZSB0byBleHBvc2Ugc2VsZWN0ZWQgR3JhcGhRTCBmaWVsZHMgb24gYGNvbnRleHQuZmllbGRzYC5cbiAqIC0gRXhlY3V0ZXMgb3BlcmF0aW9uIHVzaW5nIHRoZSBjb21wb3NlZCBzY2hlbWEuXG4gKlxuICogUmVzcG9uc2UgY29udHJhY3Q6XG4gKiAtIFJldHVybnMgYHtzdGF0dXNDb2RlLCBoZWFkZXJzLCBib2R5fWAgd2l0aCBKU09OIGJvZHkuXG4gKiAtIFJldHVybnMgYDIwMGAgZm9yIEdyYXBoUUwgcmVzcG9uc2VzIChpbmNsdWRpbmcgR3JhcGhRTCBlcnJvcnMgaW4gYGVycm9yc2ApLlxuICogLSBSZXR1cm5zIGA1MDBgIG9ubHkgZm9yIGhhbmRsZXIvcnVudGltZSBmYWlsdXJlcy5cbiAqXG4gKiBTZWUgUkVBRE1FOiBcIkdyYXBoUUwgSGFuZGxlciBVc2FnZVwiIGZvciBpbnRlZ3JhdGlvbiBleGFtcGxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUdyYXBocWxIYW5kbGVyID0gKG9wdGlvbnM6IEdyYXBocWxIYW5kbGVyT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IGNvbXBvc2VyID0gb3B0aW9ucy5jb21wb3NlciB8fCBzY2hlbWFDb21wb3NlcjtcbiAgY29uc3QgaW5pdGlhbENvbnRleHQgPSAob3B0aW9ucy5jb250ZXh0IHx8IHt9KSBhcyBBcGlDb250ZXh0O1xuICBjb25zdCBzaG91bGRJbmNsdWRlRGVmYXVsdHMgPSBvcHRpb25zLmluY2x1ZGVEZWZhdWx0cyAhPT0gZmFsc2U7XG4gIGNvbnN0IG1pZGRsZXdhcmVMaXN0ID0gW1xuICAgIGFkZEZpZWxkc01pZGRsZXdhcmUsXG4gICAgLi4uKEFycmF5LmlzQXJyYXkob3B0aW9ucy5taWRkbGV3YXJlKVxuICAgICAgPyBvcHRpb25zLm1pZGRsZXdhcmVcbiAgICAgIDogb3B0aW9ucy5taWRkbGV3YXJlID8gW29wdGlvbnMubWlkZGxld2FyZV0gOiBbXSlcbiAgXTtcblxuICBpZihzaG91bGRJbmNsdWRlRGVmYXVsdHMpIHtcbiAgICByZWdpc3RlckRlZmF1bHRRdWVyaWVzKGNvbXBvc2VyKTtcbiAgICByZWdpc3RlckRlZmF1bHRNdXRhdGlvbnMoY29tcG9zZXIpO1xuICB9XG5cbiAgaWYob3B0aW9ucy5leHRyYVF1ZXJpZXMpIHtcbiAgICBhZGRNaXNzaW5nRmllbGRzKGNvbXBvc2VyLlF1ZXJ5LCBvcHRpb25zLmV4dHJhUXVlcmllcyk7XG4gIH1cblxuICBpZihvcHRpb25zLmV4dHJhTXV0YXRpb25zKSB7XG4gICAgYWRkTWlzc2luZ0ZpZWxkcyhjb21wb3Nlci5NdXRhdGlvbiwgb3B0aW9ucy5leHRyYU11dGF0aW9ucyk7XG4gIH1cblxuICBhcHBseU1pZGRsZXdhcmUoY29tcG9zZXIuUXVlcnksIG1pZGRsZXdhcmVMaXN0KTtcbiAgYXBwbHlNaWRkbGV3YXJlKGNvbXBvc2VyLk11dGF0aW9uLCBtaWRkbGV3YXJlTGlzdCk7XG5cbiAgY29uc3Qgc2NoZW1hID0gY29tcG9zZXIuYnVpbGRTY2hlbWEoKTtcblxuICByZXR1cm4gYXN5bmMgKGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudFYyKTogUHJvbWlzZTxFeGVjdXRpb25SZXN1bHQgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cGRhdGVkQ29udGV4dDogQXBpQ29udGV4dCA9IGF3YWl0IGNyZWF0ZUNvbnRleHQoaW5pdGlhbENvbnRleHQsIGV2ZW50KTtcbiAgICAgIGNvbnN0IGxhbmd1YWdlQ29udGV4dCA9IGV4dHJhY3RMYW5ndWFnZUNvbnRleHQoZXZlbnQpO1xuXG4gICAgICBjb25zdCBjb250ZXh0V2l0aExhbmd1YWdlID0ge1xuICAgICAgICBjb25maWc6IENvbmZpZy5nZXQoKSxcbiAgICAgICAgLi4udXBkYXRlZENvbnRleHQsXG4gICAgICAgIGxhbmd1YWdlQ29udGV4dCxcbiAgICAgICAgcmVxdWVzdDogZXZlbnRcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBhcnNlRGF0YSA9IGdldExhbWJkYURhdGEoZXZlbnQgYXMgdW5rbm93biBhcyBMYW1iZGFEYXRhKTtcbiAgICAgIGNvbnN0IHtib2R5fSA9IHBhcnNlRGF0YTtcblxuICAgICAgaWYoIWJvZHk/LnF1ZXJ5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignTm8gR3JhcGhRTCBxdWVyeSBmb3VuZCBpbiByZXF1ZXN0IGJvZHknKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBlcnJvcnM6IFt7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdObyBHcmFwaFFMIHF1ZXJ5IGZvdW5kIGluIHJlcXVlc3QgYm9keSdcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdHVzQ29kZTogMjAwXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShncmFwaHFsKHtcbiAgICAgICAgICBjb250ZXh0VmFsdWU6IGNvbnRleHRXaXRoTGFuZ3VhZ2UsXG4gICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgIHNvdXJjZTogYm9keS5xdWVyeSxcbiAgICAgICAgICB2YXJpYWJsZVZhbHVlczogYm9keS52YXJpYWJsZXNcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmKHJlc3VsdC5lcnJvcnMgJiYgcmVzdWx0LmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignR3JhcGhRTCBleGVjdXRpb24gZXJyb3JzOicsIHJlc3VsdC5lcnJvcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXN1bHQpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaChncmFwaHFsRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEdyYXBoUUwgZXhlY3V0aW9uOicsIGdyYXBocWxFcnJvcik7XG5cbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ3JhcGhxbEVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBncmFwaHFsRXJyb3IubWVzc2FnZSA6ICdHcmFwaFFMIGV4ZWN1dGlvbiBlcnJvcic7XG4gICAgICAgIGNvbnN0IGVycm9yU3RhY2sgPSBncmFwaHFsRXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGdyYXBocWxFcnJvci5zdGFjayA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBlcnJvcnM6IFt7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyb3JTdGFjayA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfV1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0dXNDb2RlOiA1MDBcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGVycjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignSGFuZGxlciBlcnJvcjonLCB7XG4gICAgICAgIG1lc3NhZ2U6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIHN0YWNrOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5zdGFjayA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCBpbiB0aGUgaGFuZGxlcic7XG4gICAgICBjb25zdCBlcnJvclN0YWNrID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIuc3RhY2sgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yczogW3tcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YWNrOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyA/IGVycm9yU3RhY2sgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XVxuICAgICAgICB9KSxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzQ29kZTogNTAwXG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiZ3JhcGhxbCIsInNjaGVtYUNvbXBvc2VyIiwiQ29uZmlnIiwicmVnaXN0ZXJEZWZhdWx0TXV0YXRpb25zIiwicmVnaXN0ZXJEZWZhdWx0UXVlcmllcyIsImV4dHJhY3RMYW5ndWFnZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiZ2V0R3FsRmllbGRzIiwiZ2V0TGFtYmRhRGF0YSIsImFkZEZpZWxkc01pZGRsZXdhcmUiLCJyZXNvbHZlIiwic291cmNlIiwiYXJncyIsImNvbnRleHQiLCJpbmZvIiwiZW5oYW5jZWRDb250ZXh0IiwiZmllbGRzIiwiYWRkTWlzc2luZ0ZpZWxkcyIsInRjIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJmaWVsZE5hbWUiLCJmaWVsZENvbmZpZyIsImhhc0ZpZWxkIiwic2V0RmllbGQiLCJhcHBseU1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsImxlbmd0aCIsImtleXMiLCJnZXRGaWVsZHMiLCJoYXNSZXNvbHZlciIsIm1pZGRsZXdhcmUiLCJ3cmFwUmVzb2x2ZXIiLCJlcnJvciIsImNvbnNvbGUiLCJ3YXJuIiwibWVzc2FnZSIsImNyZWF0ZUdyYXBocWxIYW5kbGVyIiwib3B0aW9ucyIsImNvbXBvc2VyIiwiaW5pdGlhbENvbnRleHQiLCJzaG91bGRJbmNsdWRlRGVmYXVsdHMiLCJpbmNsdWRlRGVmYXVsdHMiLCJtaWRkbGV3YXJlTGlzdCIsIkFycmF5IiwiaXNBcnJheSIsImV4dHJhUXVlcmllcyIsIlF1ZXJ5IiwiZXh0cmFNdXRhdGlvbnMiLCJNdXRhdGlvbiIsInNjaGVtYSIsImJ1aWxkU2NoZW1hIiwiZXZlbnQiLCJ1cGRhdGVkQ29udGV4dCIsImxhbmd1YWdlQ29udGV4dCIsImNvbnRleHRXaXRoTGFuZ3VhZ2UiLCJjb25maWciLCJnZXQiLCJyZXF1ZXN0IiwicGFyc2VEYXRhIiwiYm9keSIsInF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGEiLCJlcnJvcnMiLCJoZWFkZXJzIiwic3RhdHVzQ29kZSIsInJlc3VsdCIsIlByb21pc2UiLCJjb250ZXh0VmFsdWUiLCJ2YXJpYWJsZVZhbHVlcyIsInZhcmlhYmxlcyIsImdyYXBocWxFcnJvciIsImVycm9yTWVzc2FnZSIsIkVycm9yIiwiZXJyb3JTdGFjayIsInN0YWNrIiwidW5kZWZpbmVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxPQUFPLFFBQU8sVUFBVTtBQUNoQyxTQUFRQyxjQUFjLFFBQU8sa0JBQWtCO0FBRy9DLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBQ3BDLFNBQVFDLHdCQUF3QixRQUFPLHdCQUF3QjtBQUMvRCxTQUFRQyxzQkFBc0IsUUFBTyxzQkFBc0I7QUFDM0QsU0FBUUMsc0JBQXNCLFFBQU8sMkJBQTJCO0FBQ2hFLFNBQVFDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQXdCLG9CQUFvQjtBQXlCOUYsTUFBTUMsc0JBQWlELENBQUNDLFNBQVNDLFFBQVFDLE1BQU1DLFNBQXFCQztJQUNsRyxNQUFNQyxrQkFBa0I7UUFDdEIsR0FBR0YsT0FBTztRQUNWRyxRQUFRVCxhQUFhTztJQUN2QjtJQUVBLE9BQU9KLFFBQVFDLFFBQVFDLE1BQU1HLGlCQUFpQkQ7QUFDaEQ7QUFFQSxNQUFNRyxtQkFBbUIsQ0FBQ0MsSUFBMENGO0lBQ2xFRyxPQUFPQyxPQUFPLENBQUNKLFFBQVFLLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFdBQVdDLFlBQVk7UUFDdEQsSUFBRyxDQUFDTCxHQUFHTSxRQUFRLENBQUNGLFlBQVk7WUFDMUJKLEdBQUdPLFFBQVEsQ0FBQ0gsV0FBV0M7UUFDekI7SUFDRjtBQUNGO0FBRUEsTUFBTUcsa0JBQWtCLENBQ3RCUixJQUNBUztJQUVBLElBQUdBLFlBQVlDLE1BQU0sS0FBSyxHQUFHO1FBQzNCO0lBQ0Y7SUFFQVQsT0FBT1UsSUFBSSxDQUFDWCxHQUFHWSxTQUFTLElBQUlULE9BQU8sQ0FBQyxDQUFDQztRQUNuQyxJQUFJO1lBQ0YsSUFBR0osR0FBR2EsV0FBVyxDQUFDVCxZQUFZO2dCQUM1QkssWUFBWU4sT0FBTyxDQUFDLENBQUNXLGFBQWVkLEdBQUdl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
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */
5
5
  export { graphql, GraphQLBoolean, GraphQLFloat, GraphQLID, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, graphqlSync, printSchema } from 'graphql';
6
6
  export type { ExecutionResult } from 'graphql';
@@ -9,6 +9,8 @@ export { schemaComposer } from 'graphql-compose';
9
9
  export * from './actions/index.js';
10
10
  export * from './adapters/index.js';
11
11
  export * from './config.js';
12
+ export { COLLECTIONS, ConnectionType as ConnectionTypes, DEFAULT_DOCUMENT_COLLECTIONS, DEFAULT_EDGE_COLLECTIONS, EDGES, PrivacyLevel, ReactionType } from './constants/collections.js';
13
+ export type { ConnectionTypeType as ConnectionTypeValue, PrivacyLevelType, ReactionTypeType } from './constants/collections.js';
12
14
  export * from './handlers/graphqlHandler.js';
13
15
  export * from './lambdas/authorizer.js';
14
16
  export * from './lambdas/connection.js';
@@ -16,8 +18,8 @@ export * from './mutations/index.js';
16
18
  export * from './objectTypes/index.js';
17
19
  export * from './queries/index.js';
18
20
  export * from './types/index.js';
21
+ export * from './upload.js';
19
22
  export * from './utils/index.js';
20
23
  export * from './videoProcessing.js';
21
- export * from './upload.js';
22
24
  export declare const reaktorSchema = "";
23
25
  export declare const reaktorResolvers: import("graphql-compose/lib/SchemaComposer.js").GraphQLToolsResolveMethods<any>;
package/lib/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */ export { graphql, GraphQLBoolean, GraphQLFloat, GraphQLID, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, graphqlSync, printSchema } from 'graphql';
5
5
  import { schemaComposer } from 'graphql-compose';
6
6
  export { schemaComposer } from 'graphql-compose';
7
7
  export * from './actions/index.js';
8
8
  export * from './adapters/index.js';
9
9
  export * from './config.js';
10
+ export { COLLECTIONS, ConnectionType as ConnectionTypes, DEFAULT_DOCUMENT_COLLECTIONS, DEFAULT_EDGE_COLLECTIONS, EDGES, PrivacyLevel, ReactionType } from './constants/collections.js';
10
11
  export * from './handlers/graphqlHandler.js';
11
12
  export * from './lambdas/authorizer.js';
12
13
  export * from './lambdas/connection.js';
@@ -14,10 +15,10 @@ export * from './mutations/index.js';
14
15
  export * from './objectTypes/index.js';
15
16
  export * from './queries/index.js';
16
17
  export * from './types/index.js';
18
+ export * from './upload.js';
17
19
  export * from './utils/index.js';
18
20
  export * from './videoProcessing.js';
19
- export * from './upload.js';
20
21
  export const reaktorSchema = ''; // printSchema(schemaComposer.buildSchema());
21
22
  export const reaktorResolvers = schemaComposer.getResolveMethods();
22
23
 
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQge1xuICBncmFwaHFsLCBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSUQsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LCBHcmFwaFFMTm9uTnVsbCwgR3JhcGhRTE9iamVjdFR5cGUsIEdyYXBoUUxTdHJpbmcsIGdyYXBocWxTeW5jLFxuICBwcmludFNjaGVtYVxufSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7c2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cblxuZXhwb3J0IHR5cGUge0V4ZWN1dGlvblJlc3VsdH0gZnJvbSAnZ3JhcGhxbCc7XG5leHBvcnQgdHlwZSB7SW5wdXRUeXBlQ29tcG9zZXIsIE9iamVjdFR5cGVDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcblxuZXhwb3J0IHtzY2hlbWFDb21wb3Nlcn0gZnJvbSAnZ3JhcGhxbC1jb21wb3NlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvZ3JhcGhxbEhhbmRsZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGFzL2F1dGhvcml6ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGFzL2Nvbm5lY3Rpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tdXRhdGlvbnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3RUeXBlcy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9Qcm9jZXNzaW5nLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdXBsb2FkLmpzJztcblxuZXhwb3J0IGNvbnN0IHJlYWt0b3JTY2hlbWEgPSAnJzsvLyBwcmludFNjaGVtYShzY2hlbWFDb21wb3Nlci5idWlsZFNjaGVtYSgpKTtcbmV4cG9ydCBjb25zdCByZWFrdG9yUmVzb2x2ZXJzID0gc2NoZW1hQ29tcG9zZXIuZ2V0UmVzb2x2ZU1ldGhvZHMoKTtcbiJdLCJuYW1lcyI6WyJncmFwaHFsIiwiR3JhcGhRTEJvb2xlYW4iLCJHcmFwaFFMRmxvYXQiLCJHcmFwaFFMSUQiLCJHcmFwaFFMSW50IiwiR3JhcGhRTExpc3QiLCJHcmFwaFFMTm9uTnVsbCIsIkdyYXBoUUxPYmplY3RUeXBlIiwiR3JhcGhRTFN0cmluZyIsImdyYXBocWxTeW5jIiwicHJpbnRTY2hlbWEiLCJzY2hlbWFDb21wb3NlciIsInJlYWt0b3JTY2hlbWEiLCJyZWFrdG9yUmVzb2x2ZXJzIiwiZ2V0UmVzb2x2ZU1ldGhvZHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQ0VBLE9BQU8sRUFBRUMsY0FBYyxFQUN2QkMsWUFBWSxFQUNaQyxTQUFTLEVBQ1RDLFVBQVUsRUFDVkMsV0FBVyxFQUFFQyxjQUFjLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLFdBQVcsRUFDMUVDLFdBQVcsUUFDTixVQUFVO0FBQ2pCLFNBQVFDLGNBQWMsUUFBTyxrQkFBa0I7QUFNL0MsU0FBUUEsY0FBYyxRQUFPLGtCQUFrQjtBQUMvQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLGNBQWM7QUFDNUIsY0FBYywrQkFBK0I7QUFDN0MsY0FBYywwQkFBMEI7QUFDeEMsY0FBYywwQkFBMEI7QUFDeEMsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyxjQUFjO0FBRTVCLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQSw2Q0FBNkM7QUFDN0UsT0FBTyxNQUFNQyxtQkFBbUJGLGVBQWVHLGlCQUFpQixHQUFHIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuZXhwb3J0IHtcbiAgZ3JhcGhxbCwgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxGbG9hdCxcbiAgR3JhcGhRTElELFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCwgR3JhcGhRTE5vbk51bGwsIEdyYXBoUUxPYmplY3RUeXBlLCBHcmFwaFFMU3RyaW5nLCBncmFwaHFsU3luYyxcbiAgcHJpbnRTY2hlbWFcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge3NjaGVtYUNvbXBvc2VyfSBmcm9tICdncmFwaHFsLWNvbXBvc2UnO1xuXG5cbmV4cG9ydCB0eXBlIHtFeGVjdXRpb25SZXN1bHR9IGZyb20gJ2dyYXBocWwnO1xuZXhwb3J0IHR5cGUge0lucHV0VHlwZUNvbXBvc2VyLCBPYmplY3RUeXBlQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5cbmV4cG9ydCB7c2NoZW1hQ29tcG9zZXJ9IGZyb20gJ2dyYXBocWwtY29tcG9zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVycy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5qcyc7XG5leHBvcnQge1xuICBDT0xMRUNUSU9OUyxcbiAgQ29ubmVjdGlvblR5cGUgYXMgQ29ubmVjdGlvblR5cGVzLFxuICBERUZBVUxUX0RPQ1VNRU5UX0NPTExFQ1RJT05TLFxuICBERUZBVUxUX0VER0VfQ09MTEVDVElPTlMsXG4gIEVER0VTLFxuICBQcml2YWN5TGV2ZWwsXG4gIFJlYWN0aW9uVHlwZVxufSBmcm9tICcuL2NvbnN0YW50cy9jb2xsZWN0aW9ucy5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIENvbm5lY3Rpb25UeXBlVHlwZSBhcyBDb25uZWN0aW9uVHlwZVZhbHVlLFxuICBQcml2YWN5TGV2ZWxUeXBlLFxuICBSZWFjdGlvblR5cGVUeXBlXG59IGZyb20gJy4vY29uc3RhbnRzL2NvbGxlY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvZ3JhcGhxbEhhbmRsZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGFzL2F1dGhvcml6ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGFzL2Nvbm5lY3Rpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tdXRhdGlvbnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3RUeXBlcy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VwbG9hZC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9Qcm9jZXNzaW5nLmpzJztcblxuZXhwb3J0IGNvbnN0IHJlYWt0b3JTY2hlbWEgPSAnJzsvLyBwcmludFNjaGVtYShzY2hlbWFDb21wb3Nlci5idWlsZFNjaGVtYSgpKTtcbmV4cG9ydCBjb25zdCByZWFrdG9yUmVzb2x2ZXJzID0gc2NoZW1hQ29tcG9zZXIuZ2V0UmVzb2x2ZU1ldGhvZHMoKTtcbiJdLCJuYW1lcyI6WyJncmFwaHFsIiwiR3JhcGhRTEJvb2xlYW4iLCJHcmFwaFFMRmxvYXQiLCJHcmFwaFFMSUQiLCJHcmFwaFFMSW50IiwiR3JhcGhRTExpc3QiLCJHcmFwaFFMTm9uTnVsbCIsIkdyYXBoUUxPYmplY3RUeXBlIiwiR3JhcGhRTFN0cmluZyIsImdyYXBocWxTeW5jIiwicHJpbnRTY2hlbWEiLCJzY2hlbWFDb21wb3NlciIsIkNPTExFQ1RJT05TIiwiQ29ubmVjdGlvblR5cGUiLCJDb25uZWN0aW9uVHlwZXMiLCJERUZBVUxUX0RPQ1VNRU5UX0NPTExFQ1RJT05TIiwiREVGQVVMVF9FREdFX0NPTExFQ1RJT05TIiwiRURHRVMiLCJQcml2YWN5TGV2ZWwiLCJSZWFjdGlvblR5cGUiLCJyZWFrdG9yU2NoZW1hIiwicmVha3RvclJlc29sdmVycyIsImdldFJlc29sdmVNZXRob2RzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUNFQSxPQUFPLEVBQUVDLGNBQWMsRUFDdkJDLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxVQUFVLEVBQ1ZDLFdBQVcsRUFBRUMsY0FBYyxFQUFFQyxpQkFBaUIsRUFBRUMsYUFBYSxFQUFFQyxXQUFXLEVBQzFFQyxXQUFXLFFBQ04sVUFBVTtBQUNqQixTQUFRQyxjQUFjLFFBQU8sa0JBQWtCO0FBTS9DLFNBQVFBLGNBQWMsUUFBTyxrQkFBa0I7QUFDL0MsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxzQkFBc0I7QUFDcEMsY0FBYyxjQUFjO0FBQzVCLFNBQ0VDLFdBQVcsRUFDWEMsa0JBQWtCQyxlQUFlLEVBQ2pDQyw0QkFBNEIsRUFDNUJDLHdCQUF3QixFQUN4QkMsS0FBSyxFQUNMQyxZQUFZLEVBQ1pDLFlBQVksUUFDUCw2QkFBNkI7QUFNcEMsY0FBYywrQkFBK0I7QUFDN0MsY0FBYywwQkFBMEI7QUFDeEMsY0FBYywwQkFBMEI7QUFDeEMsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxjQUFjO0FBQzVCLGNBQWMsbUJBQW1CO0FBQ2pDLGNBQWMsdUJBQXVCO0FBRXJDLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQSw2Q0FBNkM7QUFDN0UsT0FBTyxNQUFNQyxtQkFBbUJWLGVBQWVXLGlCQUFpQixHQUFHIn0=
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) 2021-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */ import { aql } from 'arangojs';
5
5
  import { createHash, parseId, parseString } from '@nlabs/utils/parsers/strings';
6
6
  import { useDb } from '../../utils/arangodbUtils.js';
@@ -122,4 +122,4 @@ export const removeConnection = (connectionId)=>{
122
122
  });
123
123
  };
124
124
 
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvYWN0aW9ucy93ZWJzb2NrZXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIxLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcblxuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi8uLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uLy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1dlYnNvY2tldENvbm5lY3Rpb259IGZyb20gJy4uLy4uL3R5cGVzL3dlYnNvY2tldHMudHlwZXMuanMnO1xuXG5jb25zdCB7QVJBTkdPREJfREFUQUJBU0U6IGRhdGFiYXNlTmFtZX0gPSBwcm9jZXNzLmVudjtcblxuZXhwb3J0IGNvbnN0IGFkZENvbm5lY3Rpb24gPSAoXG4gIGNvbm5lY3Rpb25JZDogc3RyaW5nLFxuICB1c2VySWQ6IHN0cmluZyxcbiAgcGVyc29uYUlkID0gJycsXG4gIGNsaWVudElkID0gJydcbik6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBmb3JtYXRDbGllbnRJZCA9IHBhcnNlU3RyaW5nKGNsaWVudElkLCA2NCk7XG4gIGNvbnN0IGZvcm1hdENvbm5JZCA9IHBhcnNlU3RyaW5nKGNvbm5lY3Rpb25JZCwgMzIpO1xuICBjb25zdCBmb3JtYXRVc2VySWQgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGZvcm1hdFBlcnNvbmFJZCA9IHBhcnNlSWQocGVyc29uYUlkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBzZXJ0ID0gZm9ybWF0Q2xpZW50SWRcbiAgICA/IHtjbGllbnRJZDogZm9ybWF0Q2xpZW50SWR9XG4gICAgOiB7Y29ubmVjdGlvbklkOiBmb3JtYXRDb25uSWR9O1xuICBjb25zdCBpbnNlcnQgPSB7XG4gICAgX2tleTogY3JlYXRlSGFzaChgY29ubmVjdGlvbi0ke2Zvcm1hdENsaWVudElkIHx8IGZvcm1hdENvbm5JZH1gKSxcbiAgICAuLi4oZm9ybWF0Q2xpZW50SWQgJiYge2NsaWVudElkOiBmb3JtYXRDbGllbnRJZH0pLFxuICAgIGNvbm5lY3Rpb25JZDogZm9ybWF0Q29ubklkLFxuICAgIG1vZGlmaWVkOiB0aW1lc3RhbXAsXG4gICAgLi4uKGZvcm1hdFBlcnNvbmFJZCAmJiB7cGVyc29uYUlkOiBmb3JtYXRQZXJzb25hSWR9KSxcbiAgICB1c2VySWQ6IGZvcm1hdFVzZXJJZFxuICB9O1xuICBjb25zdCB1cGRhdGUgPSB7XG4gICAgLi4uKGZvcm1hdENsaWVudElkICYmIHtjbGllbnRJZDogZm9ybWF0Q2xpZW50SWR9KSxcbiAgICAuLi4oZm9ybWF0UGVyc29uYUlkICYmIHtwZXJzb25hSWQ6IGZvcm1hdFBlcnNvbmFJZH0pLFxuICAgIGNvbm5lY3Rpb25JZDogZm9ybWF0Q29ubklkLFxuICAgIG1vZGlmaWVkOiB0aW1lc3RhbXAsXG4gICAgdXNlcklkOiBmb3JtYXRVc2VySWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQgJHt1cHNlcnR9XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX0gSU4gY29ubmVjdGlvbnNcbiAgICBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25zQnlVc2VyID0gKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uW10+ID0+IHtcbiAgY29uc3QgZm9ybWF0VXNlcklkID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy51c2VySWQgPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uc0J5UGVyc29uYSA9IChwZXJzb25hSWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFBlcnNvbmFJZCA9IHBhcnNlSWQocGVyc29uYUlkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGMucGVyc29uYUlkID09ICR7Zm9ybWF0UGVyc29uYUlkfVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5VXNlcklkID0gKHVzZXJJZCA9ICcnKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uIHwgbnVsbD4gPT4ge1xuICBjb25zdCBmb3JtYXRVc2VySWQgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBjLnVzZXJJZCA9PSAke2Zvcm1hdFVzZXJJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5SWQgPSAoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24gfCBudWxsPiA9PiB7XG4gIGNvbnN0IGZvcm1hdENvbm5JZCA9IHBhcnNlU3RyaW5nKGNvbm5lY3Rpb25JZCwgMzIpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy5jb25uZWN0aW9uSWQgPT0gJHtmb3JtYXRDb25uSWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUNvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252ZXJzYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXVtdPiA9PiB7XG4gIGNvbnN0IHtzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWQgPSAnJ30gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgY29udmVyc2F0aW9uRG9jSWQgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udmVyc2F0aW9uSWQpfWA7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252ZXJzYXRpb25Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgTEVUIHUgPSAoXG4gICAgICBGT1IgaW5Vc2VyLCBpbkVkZ2UgSU4gMS4uMSBJTkJPVU5EICR7Y29udmVyc2F0aW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICAgICAgICBGT1IgbiBJTiBjb25uZWN0aW9uc1xuICAgICAgICAgIEZJTFRFUiBpblVzZXIudXNlcklkID09IG4udXNlcklkXG4gICAgICAgICAgUkVUVVJOIG4uY29ubmVjdGlvbklkXG4gICAgKVxuICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ29ubmVjdGlvbiA9IChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbiB8IG51bGw+ID0+IHtcbiAgY29uc3QgZm9ybWF0Q29ubklkID0gcGFyc2VTdHJpbmcoY29ubmVjdGlvbklkLCAzMik7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBjLmNvbm5lY3Rpb25JZCA9PSAke2Zvcm1hdENvbm5JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIGMgSU4gY29ubmVjdGlvbnNcbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJhcWwiLCJjcmVhdGVIYXNoIiwicGFyc2VJZCIsInBhcnNlU3RyaW5nIiwidXNlRGIiLCJBUkFOR09EQl9EQVRBQkFTRSIsImRhdGFiYXNlTmFtZSIsInByb2Nlc3MiLCJlbnYiLCJhZGRDb25uZWN0aW9uIiwiY29ubmVjdGlvbklkIiwidXNlcklkIiwicGVyc29uYUlkIiwiY2xpZW50SWQiLCJmb3JtYXRDbGllbnRJZCIsImZvcm1hdENvbm5JZCIsImZvcm1hdFVzZXJJZCIsImZvcm1hdFBlcnNvbmFJZCIsImRiIiwidGltZXN0YW1wIiwiRGF0ZSIsIm5vdyIsInVwc2VydCIsImluc2VydCIsIl9rZXkiLCJtb2RpZmllZCIsInVwZGF0ZSIsImFxbFFyeSIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJjYXRjaCIsImVycm9yIiwiZ2V0Q29ubmVjdGlvbnNCeVVzZXIiLCJhbGwiLCJnZXRDb25uZWN0aW9uc0J5UGVyc29uYSIsImdldENvbm5lY3Rpb25CeVVzZXJJZCIsImdldENvbm5lY3Rpb25CeUlkIiwiZ2V0Q29ubmVjdGlvbkJ5Q29udmVyc2F0aW9uIiwiY29udGV4dCIsImNvbnZlcnNhdGlvbklkIiwic2Vzc2lvbiIsInNlc3Npb25JZCIsInNlc3Npb25Eb2NJZCIsImNvbnZlcnNhdGlvbkRvY0lkIiwicmVtb3ZlQ29ubmVjdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsR0FBRyxRQUFpQixXQUFXO0FBRXZDLFNBQVFDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxXQUFXLFFBQU8sK0JBQStCO0FBQzlFLFNBQVFDLEtBQUssUUFBTywrQkFBK0I7QUFNbkQsTUFBTSxFQUFDQyxtQkFBbUJDLFlBQVksRUFBQyxHQUFHQyxRQUFRQyxHQUFHO0FBRXJELE9BQU8sTUFBTUMsZ0JBQWdCLENBQzNCQyxjQUNBQyxRQUNBQyxZQUFZLEVBQUUsRUFDZEMsV0FBVyxFQUFFO0lBRWIsTUFBTUMsaUJBQWlCWCxZQUFZVSxVQUFVO0lBQzdDLE1BQU1FLGVBQWVaLFlBQVlPLGNBQWM7SUFDL0MsTUFBTU0sZUFBZWQsUUFBUVM7SUFDN0IsTUFBTU0sa0JBQWtCZixRQUFRVTtJQUNoQyxNQUFNTSxLQUFlZCxNQUFNRTtJQUMzQixNQUFNYSxZQUFZQyxLQUFLQyxHQUFHO0lBQzFCLE1BQU1DLFNBQVNSLGlCQUNYO1FBQUNELFVBQVVDO0lBQWMsSUFDekI7UUFBQ0osY0FBY0s7SUFBWTtJQUMvQixNQUFNUSxTQUFTO1FBQ2JDLE1BQU12QixXQUFXLENBQUMsV0FBVyxFQUFFYSxrQkFBa0JDLGNBQWM7UUFDL0QsR0FBSUQsa0JBQWtCO1lBQUNELFVBQVVDO1FBQWMsQ0FBQztRQUNoREosY0FBY0s7UUFDZFUsVUFBVU47UUFDVixHQUFJRixtQkFBbUI7WUFBQ0wsV0FBV0s7UUFBZSxDQUFDO1FBQ25ETixRQUFRSztJ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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9sYW1iZGFzL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VJZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi8uLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtXZWJzb2NrZXRDb25uZWN0aW9ufSBmcm9tICcuLi8uLi90eXBlcy93ZWJzb2NrZXRzLnR5cGVzLmpzJztcblxuY29uc3Qge0FSQU5HT0RCX0RBVEFCQVNFOiBkYXRhYmFzZU5hbWV9ID0gcHJvY2Vzcy5lbnY7XG5cbmV4cG9ydCBjb25zdCBhZGRDb25uZWN0aW9uID0gKFxuICBjb25uZWN0aW9uSWQ6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIHBlcnNvbmFJZCA9ICcnLFxuICBjbGllbnRJZCA9ICcnXG4pOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24+ID0+IHtcbiAgY29uc3QgZm9ybWF0Q2xpZW50SWQgPSBwYXJzZVN0cmluZyhjbGllbnRJZCwgNjQpO1xuICBjb25zdCBmb3JtYXRDb25uSWQgPSBwYXJzZVN0cmluZyhjb25uZWN0aW9uSWQsIDMyKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRQZXJzb25hSWQgPSBwYXJzZUlkKHBlcnNvbmFJZCk7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gIGNvbnN0IHVwc2VydCA9IGZvcm1hdENsaWVudElkXG4gICAgPyB7Y2xpZW50SWQ6IGZvcm1hdENsaWVudElkfVxuICAgIDoge2Nvbm5lY3Rpb25JZDogZm9ybWF0Q29ubklkfTtcbiAgY29uc3QgaW5zZXJ0ID0ge1xuICAgIF9rZXk6IGNyZWF0ZUhhc2goYGNvbm5lY3Rpb24tJHtmb3JtYXRDbGllbnRJZCB8fCBmb3JtYXRDb25uSWR9YCksXG4gICAgLi4uKGZvcm1hdENsaWVudElkICYmIHtjbGllbnRJZDogZm9ybWF0Q2xpZW50SWR9KSxcbiAgICBjb25uZWN0aW9uSWQ6IGZvcm1hdENvbm5JZCxcbiAgICBtb2RpZmllZDogdGltZXN0YW1wLFxuICAgIC4uLihmb3JtYXRQZXJzb25hSWQgJiYge3BlcnNvbmFJZDogZm9ybWF0UGVyc29uYUlkfSksXG4gICAgdXNlcklkOiBmb3JtYXRVc2VySWRcbiAgfTtcbiAgY29uc3QgdXBkYXRlID0ge1xuICAgIC4uLihmb3JtYXRDbGllbnRJZCAmJiB7Y2xpZW50SWQ6IGZvcm1hdENsaWVudElkfSksXG4gICAgLi4uKGZvcm1hdFBlcnNvbmFJZCAmJiB7cGVyc29uYUlkOiBmb3JtYXRQZXJzb25hSWR9KSxcbiAgICBjb25uZWN0aW9uSWQ6IGZvcm1hdENvbm5JZCxcbiAgICBtb2RpZmllZDogdGltZXN0YW1wLFxuICAgIHVzZXJJZDogZm9ybWF0VXNlcklkXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUICR7dXBzZXJ0fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9IElOIGNvbm5lY3Rpb25zXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uc0J5VXNlciA9ICh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZCA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGMudXNlcklkID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEgPSAocGVyc29uYUlkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb25bXT4gPT4ge1xuICBjb25zdCBmb3JtYXRQZXJzb25hSWQgPSBwYXJzZUlkKHBlcnNvbmFJZCk7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBjLnBlcnNvbmFJZCA9PSAke2Zvcm1hdFBlcnNvbmFJZH1cbiAgICBSRVRVUk4gY2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeVVzZXJJZCA9ICh1c2VySWQgPSAnJyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbiB8IG51bGw+ID0+IHtcbiAgY29uc3QgZm9ybWF0VXNlcklkID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy51c2VySWQgPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUlkID0gKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uIHwgbnVsbD4gPT4ge1xuICBjb25zdCBmb3JtYXRDb25uSWQgPSBwYXJzZVN0cmluZyhjb25uZWN0aW9uSWQsIDMyKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGMuY29ubmVjdGlvbklkID09ICR7Zm9ybWF0Q29ubklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gY2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uQnlDb252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW11bXT4gPT4ge1xuICBjb25zdCB7c2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkID0gJyd9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkRvY0lkID0gYGNvbnZlcnNhdGlvbnMvJHtwYXJzZUlkKGNvbnZlcnNhdGlvbklkKX1gO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uXG4gICAgRklMVEVSIGMuX2lkID09ICR7Y29udmVyc2F0aW9uRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZlcnNhdGlvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICAgICAgRk9SIG4gSU4gY29ubmVjdGlvbnNcbiAgICAgICAgICBGSUxURVIgaW5Vc2VyLnVzZXJJZCA9PSBuLnVzZXJJZFxuICAgICAgICAgIFJFVFVSTiBuLmNvbm5lY3Rpb25JZFxuICAgIClcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbm5lY3Rpb24gPSAoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24gfCBudWxsPiA9PiB7XG4gIGNvbnN0IGZvcm1hdENvbm5JZCA9IHBhcnNlU3RyaW5nKGNvbm5lY3Rpb25JZCwgMzIpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy5jb25uZWN0aW9uSWQgPT0gJHtmb3JtYXRDb25uSWR9XG4gICAgTElNSVQgMVxuICAgIFJFTU9WRSBjIElOIGNvbm5lY3Rpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXSwibmFtZXMiOlsiYXFsIiwiY3JlYXRlSGFzaCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInVzZURiIiwiQVJBTkdPREJfREFUQUJBU0UiLCJkYXRhYmFzZU5hbWUiLCJwcm9jZXNzIiwiZW52IiwiYWRkQ29ubmVjdGlvbiIsImNvbm5lY3Rpb25JZCIsInVzZXJJZCIsInBlcnNvbmFJZCIsImNsaWVudElkIiwiZm9ybWF0Q2xpZW50SWQiLCJmb3JtYXRDb25uSWQiLCJmb3JtYXRVc2VySWQiLCJmb3JtYXRQZXJzb25hSWQiLCJkYiIsInRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJ1cHNlcnQiLCJpbnNlcnQiLCJfa2V5IiwibW9kaWZpZWQiLCJ1cGRhdGUiLCJhcWxRcnkiLCJxdWVyeSIsInRoZW4iLCJjdXJzb3IiLCJuZXh0IiwiY2F0Y2giLCJlcnJvciIsImdldENvbm5lY3Rpb25zQnlVc2VyIiwiYWxsIiwiZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEiLCJnZXRDb25uZWN0aW9uQnlVc2VySWQiLCJnZXRDb25uZWN0aW9uQnlJZCIsImdldENvbm5lY3Rpb25CeUNvbnZlcnNhdGlvbiIsImNvbnRleHQiLCJjb252ZXJzYXRpb25JZCIsInNlc3Npb24iLCJzZXNzaW9uSWQiLCJzZXNzaW9uRG9jSWQiLCJjb252ZXJzYXRpb25Eb2NJZCIsInJlbW92ZUNvbm5lY3Rpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEdBQUcsUUFBaUIsV0FBVztBQUV2QyxTQUFRQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUM5RSxTQUFRQyxLQUFLLFFBQU8sK0JBQStCO0FBTW5ELE1BQU0sRUFBQ0MsbUJBQW1CQyxZQUFZLEVBQUMsR0FBR0MsUUFBUUMsR0FBRztBQUVyRCxPQUFPLE1BQU1DLGdCQUFnQixDQUMzQkMsY0FDQUMsUUFDQUMsWUFBWSxFQUFFLEVBQ2RDLFdBQVcsRUFBRTtJQUViLE1BQU1DLGlCQUFpQlgsWUFBWVUsVUFBVTtJQUM3QyxNQUFNRSxlQUFlWixZQUFZTyxjQUFjO0lBQy9DLE1BQU1NLGVBQWVkLFFBQVFTO0lBQzdCLE1BQU1NLGtCQUFrQmYsUUFBUVU7SUFDaEMsTUFBTU0sS0FBZWQsTUFBTUU7SUFDM0IsTUFBTWEsWUFBWUMsS0FBS0MsR0FBRztJQUMxQixNQUFNQyxTQUFTUixpQkFDWDtRQUFDRCxVQUFVQztJQUFjLElBQ3pCO1FBQUNKLGNBQWNLO0lBQVk7SUFDL0IsTUFBTVEsU0FBUztRQUNiQyxNQUFNdkIsV0FBVyxDQUFDLFdBQVcsRUFBRWEsa0JBQWtCQyxjQUFjO1FBQy9ELEdBQUlELGtCQUFrQjtZQUFDRCxVQUFVQztRQUFjLENBQUM7UUFDaERKLGNBQWNLO1FBQ2RVLFVBQVVOO1FBQ1YsR0FBSUYsbUJBQW1CO1lBQUNMLFdBQVdLO1FBQWUsQ0FBQztRQUNuRE4sUUFB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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) 2021-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */ import { getSession } from '../utils/sessionUtils.js';
5
5
  export const generatePolicyDocument = (effect, methodArn)=>{
6
6
  if (!effect || !methodArn) {
@@ -80,4 +80,4 @@ export const authorizer = (event = {}, _context, callback)=>{
80
80
  }
81
81
  };
82
82
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvYXV0aG9yaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXRTZXNzaW9ufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuXG50eXBlIEF1dGhvcml6ZXJFdmVudCA9IHtcbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvblRva2VuPzogc3RyaW5nO1xuICByZWFkb25seSBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgaWRlbnRpdHlTb3VyY2U/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbWV0aG9kQXJuPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlUG9saWN5RG9jdW1lbnQgPSAoZWZmZWN0LCBtZXRob2RBcm4pID0+IHtcbiAgaWYoIWVmZmVjdCB8fCAhbWV0aG9kQXJuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwb2xpY3lEb2N1bWVudCA9IHtcbiAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNycsXG4gICAgU3RhdGVtZW50OiBbXG4gICAgICB7XG4gICAgICAgIEFjdGlvbjogJ2V4ZWN1dGUtYXBpOkludm9rZScsXG4gICAgICAgIEVmZmVjdDogZWZmZWN0LFxuICAgICAgICBSZXNvdXJjZTogbWV0aG9kQXJuXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiBwb2xpY3lEb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUF1dGhSZXNwb25zZSA9IChwcmluY2lwYWxJZCwgZWZmZWN0LCBtZXRob2RBcm4pID0+IHtcbiAgY29uc3QgcG9saWN5RG9jdW1lbnQgPSBnZW5lcmF0ZVBvbGljeURvY3VtZW50KGVmZmVjdCwgbWV0aG9kQXJuKTtcblxuICByZXR1cm4ge1xuICAgIHByaW5jaXBhbElkLFxuICAgIHBvbGljeURvY3VtZW50XG4gIH07XG59O1xuXG5jb25zdCBnZXRBdXRob3JpemF0aW9uSGVhZGVyID0gKGV2ZW50OiBBdXRob3JpemVyRXZlbnQpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBoZWFkZXJzID0gZXZlbnQuaGVhZGVycyB8fCB7fTtcbiAgY29uc3QgaGVhZGVyS2V5ID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgoa2V5KSA9PiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2F1dGhvcml6YXRpb24nKTtcbiAgY29uc3QgaGVhZGVyVmFsdWUgPSBoZWFkZXJLZXkgPyBoZWFkZXJzW2hlYWRlcktleV0gOiAnJztcblxuICByZXR1cm4gU3RyaW5nKGV2ZW50LmF1dGhvcml6YXRpb25Ub2tlbiB8fCBoZWFkZXJWYWx1ZSB8fCBldmVudC5pZGVudGl0eVNvdXJjZT8uWzBdIHx8ICcnKTtcbn07XG5cbmNvbnN0IGdldEJlYXJlclRva2VuID0gKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmKCFhdXRob3JpemF0aW9uSGVhZGVyKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgW3NjaGVtZSwgLi4ucGFydHNdID0gYXV0aG9yaXphdGlvbkhlYWRlci50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICBpZihzY2hlbWU/LnRvTG93ZXJDYXNlKCkgPT09ICdiZWFyZXInICYmIHBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBwYXJ0cy5qb2luKCcgJykudHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIGF1dGhvcml6YXRpb25IZWFkZXIudHJpbSgpO1xufTtcblxuY29uc3QgaXNIdHRwQXBpU2ltcGxlQXV0aG9yaXplciA9IChldmVudDogQXV0aG9yaXplckV2ZW50KTogYm9vbGVhbiA9PiAoXG4gIGV2ZW50LnZlcnNpb24gPT09ICcyLjAnIHx8IEFycmF5LmlzQXJyYXkoZXZlbnQuaWRlbnRpdHlTb3VyY2UpXG4pO1xuXG5jb25zdCBjb21wbGV0ZSA9IChjYWxsYmFjaywgcmVzcG9uc2UpID0+IHtcbiAgaWYodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHJlc3BvbnNlKTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhdXRob3JpemVyID0gKGV2ZW50OiBBdXRob3JpemVyRXZlbnQgPSB7fSwgX2NvbnRleHQ/LCBjYWxsYmFjaz8pID0+IHtcbiAgY29uc3QgdG9rZW4gPSBnZXRCZWFyZXJUb2tlbihnZXRBdXRob3JpemF0aW9uSGVhZGVyKGV2ZW50KSk7XG4gIGNvbnN0IHNpbXBsZUF1dGhvcml6ZXIgPSBpc0h0dHBBcGlTaW1wbGVBdXRob3JpemVyKGV2ZW50KTtcblxuICBpZighdG9rZW4gfHwgKCFldmVudC5tZXRob2RBcm4gJiYgIXNpbXBsZUF1dGhvcml6ZXIpKSB7XG4gICAgcmV0dXJuIGNvbXBsZXRlKGNhbGxiYWNrLCBzaW1wbGVBdXRob3JpemVyID8ge2lzQXV0aG9yaXplZDogZmFsc2V9IDogJ1VuYXV0aG9yaXplZCcpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzZXNzaW9uID0gZ2V0U2Vzc2lvbih0b2tlbik7XG5cbiAgICBpZihzaW1wbGVBdXRob3JpemVyKSB7XG4gICAgICByZXR1cm4gY29tcGxldGUoY2FsbGJhY2ssIHtcbiAgICAgICAgY29udGV4dDogc2Vzc2lvbj8udXNlcklkID8ge1xuICAgICAgICAgIHVzZXJBY2Nlc3M6IE51bWJlcihzZXNzaW9uLnVzZXJBY2Nlc3MgfHwgMCksXG4gICAgICAgICAgdXNlcklkOiBzZXNzaW9uLnVzZXJJZCxcbiAgICAgICAgICB1c2VybmFtZTogc2Vzc2lvbi51c2VybmFtZSB8fCAnJ1xuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICBpc0F1dGhvcml6ZWQ6ICEhc2Vzc2lvbj8udXNlcklkXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZihzZXNzaW9uPy51c2VySWQpIHtcbiAgICAgIHJldHVybiBjb21wbGV0ZShjYWxsYmFjaywgZ2VuZXJhdGVBdXRoUmVzcG9uc2Uoc2Vzc2lvbi51c2VySWQsICdBbGxvdycsIGV2ZW50Lm1ldGhvZEFybikpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wbGV0ZShjYWxsYmFjaywgZ2VuZXJhdGVBdXRoUmVzcG9uc2Uoc2Vzc2lvbj8udXNlcklkLCAnRGVueScsIGV2ZW50Lm1ldGhvZEFybikpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignQXV0aG9yaXphdGlvbiBmYWlsZWQ6JywgZXJyb3IpO1xuICAgIHJldHVybiBjb21wbGV0ZShjYWxsYmFjaywgc2ltcGxlQXV0aG9yaXplciA/IHtpc0F1dGhvcml6ZWQ6IGZhbHNlfSA6ICdVbmF1dGhvcml6ZWQnKTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJnZXRTZXNzaW9uIiwiZ2VuZXJhdGVQb2xpY3lEb2N1bWVudCIsImVmZmVjdCIsIm1ldGhvZEFybiIsInBvbGljeURvY3VtZW50IiwiVmVyc2lvbiIsIlN0YXRlbWVudCIsIkFjdGlvbiIsIkVmZmVjdCIsIlJlc291cmNlIiwiZ2VuZXJhdGVBdXRoUmVzcG9uc2UiLCJwcmluY2lwYWxJZCIsImdldEF1dGhvcml6YXRpb25IZWFkZXIiLCJldmVudCIsImhlYWRlcnMiLCJoZWFkZXJLZXkiLCJPYmplY3QiLCJrZXlzIiwiZmluZCIsImtleSIsInRvTG93ZXJDYXNlIiwiaGVhZGVyVmFsdWUiLCJTdHJpbmciLCJhdXRob3JpemF0aW9uVG9rZW4iLCJpZGVudGl0eVNvdXJjZSIsImdldEJlYXJlclRva2VuIiwiYXV0aG9yaXphdGlvbkhlYWRlciIsInNjaGVtZSIsInBhcnRzIiwidHJpbSIsInNwbGl0IiwibGVuZ3RoIiwiam9pbiIsImlzSHR0cEFwaVNpbXBsZUF1dGhvcml6ZXIiLCJ2ZXJzaW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiY29tcGxldGUiLCJjYWxsYmFjayIsInJlc3BvbnNlIiwiYXV0aG9yaXplciIsIl9jb250ZXh0IiwidG9rZW4iLCJzaW1wbGVBdXRob3JpemVyIiwiaXNBdXRob3JpemVkIiwic2Vzc2lvbiIsImNvbnRleHQiLCJ1c2VySWQiLCJ1c2VyQWNjZXNzIiwiTnVtYmVyIiwidXNlcm5hbWUiLCJ1bmRlZmluZWQiLCJlcnJvciIsImNvbnNvbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsUUFBTywyQkFBMkI7QUFVcEQsT0FBTyxNQUFNQyx5QkFBeUIsQ0FBQ0MsUUFBUUM7SUFDN0MsSUFBRyxDQUFDRCxVQUFVLENBQUNDLFdBQVc7UUFDeEIsT0FBTztJQUNUO0lBRUEsTUFBTUMsaUJBQWlCO1FBQ3JCQyxTQUFTO1FBQ1RDLFdBQVc7WUFDVDtnQkFDRUMsUUFBUTtnQkFDUkMsUUFBUU47Z0JBQ1JPLFVBQVVOO1lBQ1o7U0FDRDtJQUNIO0lBRUEsT0FBT0M7QUFDVCxFQUFFO0FBRUYsT0FBTyxNQUFNTSx1QkFBdUIsQ0FBQ0MsYUFBYVQsUUFBUUM7SUFDeEQsTUFBTUMsaUJBQWlCSCx1QkFBdUJDLFFBQVFDO0lBRXRELE9BQU87UUFDTFE7UUFDQVA7SUFDRjtBQUNGLEVBQUU7QUFFRixNQUFNUSx5QkFBeUIsQ0FBQ0M7SUFDOUIsTUFBTUMsVUFBVUQsTUFBTUMsT0FBTyxJQUFJLENBQUM7SUFDbEMsTUFBTUMsWUFBWUMsT0FBT0MsSUFBSSxDQUFDSCxTQUFTSSxJQUFJLENBQUMsQ0FBQ0MsTUFBUUEsSUFBSUMsV0FBVyxPQUFPO0lBQzNFLE1BQU1DLGNBQWNOLFlBQVlELE9BQU8sQ0FBQ0MsVUFBVSxHQUFHO0lBRXJELE9BQU9PLE9BQU9ULE1BQU1VLGtCQUFrQixJQUFJRixlQUFlUixNQUFNVyxjQUFjLEVBQUUsQ0FBQyxFQUFFLElBQUk7QUFDeEY7QUFFQSxNQUFNQyxpQkFBaUIsQ0FBQ0M7SUFDdEIsSUFBRyxDQUFDQSxxQkFBcUI7UUFDdkIsT0FBTztJQUNUO0lBRUEsTUFBTSxDQUFDQyxRQUFRLEdBQUdDLE1BQU0sR0FBR0Ysb0JBQW9CRyxJQUFJLEdBQUdDLEtBQUssQ0FBQztJQUU1RCxJQUFHSCxRQUFRUCxrQkFBa0IsWUFBWVEsTUFBTUcsTUFBTSxFQUFFO1FBQ3JELE9BQU9ILE1BQU1JLElBQUksQ0FBQyxLQUFLSCxJQUFJO0lBQzdCO0lBRUEsT0FBT0gsb0JBQW9CRyxJQUFJO0FBQ2pDO0FBRUEsTUFBTUksNEJBQTRCLENBQUNwQixRQUNqQ0EsTUFBTXFCLE9BQU8sS0FBSyxTQUFTQyxNQUFNQyxPQUFPLENBQUN2QixNQUFNVyxjQUFjO0FBRy9ELE1BQU1hLFdBQVcsQ0FBQ0MsVUFBVUM7SUFDMUIsSUFBRyxPQUFPRCxhQUFhLFlBQVk7UUFDakMsT0FBT0EsU0FBUyxNQUFNQztJQUN4QjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxPQUFPLE1BQU1DLGFBQWEsQ0FBQzNCLFFBQXlCLENBQUMsQ0FBQyxFQUFFNEIsVUFBV0g7SUFDakUsTUFBTUksUUFBUWpCLGVBQWViLHVCQUF1QkM7SUFDcEQsTUFBTThCLG1CQUFtQlYsMEJBQTBCcEI7SUFFbkQsSUFBRyxDQUFDNkIsU0FBVSxDQUFDN0IsTUFBTVYsU0FBUyxJQUFJLENBQUN3QyxrQkFBbUI7UUFDcEQsT0FBT04sU0FBU0MsVUFBVUssbUJBQW1CO1lBQUNDLGNBQWM7UUFBSyxJQUFJO0lBQ3ZFO0lBRUEsSUFBSTtRQUNGLE1BQU1DLFVBQVU3QyxXQUFXMEM7UUFFM0IsSUFBR0Msa0JBQWtCO1lBQ25CLE9BQU9OLFNBQVNDLFVBQVU7Z0JBQ3hCUSxTQUFTRCxTQUFTRSxTQUFTO29CQUN6QkMsWUFBWUMsT0FBT0osUUFBUUcsVUFBVSxJQUFJO29CQUN6Q0QsUUFBUUYsUUFBUUUsTUFBTTtvQkFDdEJHLFVBQVVMLFFBQVFLLFFBQVEsSUFBSTtnQkFDaEMsSUFBSUM7Z0JBQ0pQLGNBQWMsQ0FBQyxDQUFDQyxTQUFTRTtZQUMzQjtRQUNGO1FBRUEsSUFBR0YsU0FBU0UsUUFBUTtZQUNsQixPQUFPVixTQUFTQyxVQUFVNUIscUJBQXFCbUMsUUFBUUUsTUFBTSxFQUFFLFNBQVNsQyxNQUFNVixTQUFTO1FBQ3pGO1FBRUEsT0FBT2tDLFNBQVNDLFVBQVU1QixxQkFBcUJtQyxTQUFTRSxRQUFRLFFBQVFsQyxNQUFNVixTQUFTO0lBQ3pGLEVBQUUsT0FBTWlELE9BQU87UUFDYkMsUUFBUUQsS0FBSyxDQUFDLHlCQUF5QkE7UUFDdkMsT0FBT2YsU0FBU0MsVUFBVUssbUJBQW1CO1lBQUNDLGNBQWM7UUFBSyxJQUFJO0lBQ3ZFO0FBQ0YsRUFBRSJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9sYW1iZGFzL2F1dGhvcml6ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7Z2V0U2Vzc2lvbn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzLmpzJztcblxudHlwZSBBdXRob3JpemVyRXZlbnQgPSB7XG4gIHJlYWRvbmx5IGF1dGhvcml6YXRpb25Ub2tlbj86IHN0cmluZztcbiAgcmVhZG9ubHkgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHJlYWRvbmx5IGlkZW50aXR5U291cmNlPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1ldGhvZEFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVBvbGljeURvY3VtZW50ID0gKGVmZmVjdCwgbWV0aG9kQXJuKSA9PiB7XG4gIGlmKCFlZmZlY3QgfHwgIW1ldGhvZEFybikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcG9saWN5RG9jdW1lbnQgPSB7XG4gICAgVmVyc2lvbjogJzIwMTItMTAtMTcnLFxuICAgIFN0YXRlbWVudDogW1xuICAgICAge1xuICAgICAgICBBY3Rpb246ICdleGVjdXRlLWFwaTpJbnZva2UnLFxuICAgICAgICBFZmZlY3Q6IGVmZmVjdCxcbiAgICAgICAgUmVzb3VyY2U6IG1ldGhvZEFyblxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4gcG9saWN5RG9jdW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVBdXRoUmVzcG9uc2UgPSAocHJpbmNpcGFsSWQsIGVmZmVjdCwgbWV0aG9kQXJuKSA9PiB7XG4gIGNvbnN0IHBvbGljeURvY3VtZW50ID0gZ2VuZXJhdGVQb2xpY3lEb2N1bWVudChlZmZlY3QsIG1ldGhvZEFybik7XG5cbiAgcmV0dXJuIHtcbiAgICBwcmluY2lwYWxJZCxcbiAgICBwb2xpY3lEb2N1bWVudFxuICB9O1xufTtcblxuY29uc3QgZ2V0QXV0aG9yaXphdGlvbkhlYWRlciA9IChldmVudDogQXV0aG9yaXplckV2ZW50KTogc3RyaW5nID0+IHtcbiAgY29uc3QgaGVhZGVycyA9IGV2ZW50LmhlYWRlcnMgfHwge307XG4gIGNvbnN0IGhlYWRlcktleSA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKGtleSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09ICdhdXRob3JpemF0aW9uJyk7XG4gIGNvbnN0IGhlYWRlclZhbHVlID0gaGVhZGVyS2V5ID8gaGVhZGVyc1toZWFkZXJLZXldIDogJyc7XG5cbiAgcmV0dXJuIFN0cmluZyhldmVudC5hdXRob3JpemF0aW9uVG9rZW4gfHwgaGVhZGVyVmFsdWUgfHwgZXZlbnQuaWRlbnRpdHlTb3VyY2U/LlswXSB8fCAnJyk7XG59O1xuXG5jb25zdCBnZXRCZWFyZXJUb2tlbiA9IChhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZighYXV0aG9yaXphdGlvbkhlYWRlcikge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGNvbnN0IFtzY2hlbWUsIC4uLnBhcnRzXSA9IGF1dGhvcml6YXRpb25IZWFkZXIudHJpbSgpLnNwbGl0KC9cXHMrLyk7XG5cbiAgaWYoc2NoZW1lPy50b0xvd2VyQ2FzZSgpID09PSAnYmVhcmVyJyAmJiBwYXJ0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gcGFydHMuam9pbignICcpLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiBhdXRob3JpemF0aW9uSGVhZGVyLnRyaW0oKTtcbn07XG5cbmNvbnN0IGlzSHR0cEFwaVNpbXBsZUF1dGhvcml6ZXIgPSAoZXZlbnQ6IEF1dGhvcml6ZXJFdmVudCk6IGJvb2xlYW4gPT4gKFxuICBldmVudC52ZXJzaW9uID09PSAnMi4wJyB8fCBBcnJheS5pc0FycmF5KGV2ZW50LmlkZW50aXR5U291cmNlKVxuKTtcblxuY29uc3QgY29tcGxldGUgPSAoY2FsbGJhY2ssIHJlc3BvbnNlKSA9PiB7XG4gIGlmKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjYWxsYmFjayhudWxsLCByZXNwb25zZSk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgYXV0aG9yaXplciA9IChldmVudDogQXV0aG9yaXplckV2ZW50ID0ge30sIF9jb250ZXh0PywgY2FsbGJhY2s/KSA9PiB7XG4gIGNvbnN0IHRva2VuID0gZ2V0QmVhcmVyVG9rZW4oZ2V0QXV0aG9yaXphdGlvbkhlYWRlcihldmVudCkpO1xuICBjb25zdCBzaW1wbGVBdXRob3JpemVyID0gaXNIdHRwQXBpU2ltcGxlQXV0aG9yaXplcihldmVudCk7XG5cbiAgaWYoIXRva2VuIHx8ICghZXZlbnQubWV0aG9kQXJuICYmICFzaW1wbGVBdXRob3JpemVyKSkge1xuICAgIHJldHVybiBjb21wbGV0ZShjYWxsYmFjaywgc2ltcGxlQXV0aG9yaXplciA/IHtpc0F1dGhvcml6ZWQ6IGZhbHNlfSA6ICdVbmF1dGhvcml6ZWQnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGdldFNlc3Npb24odG9rZW4pO1xuXG4gICAgaWYoc2ltcGxlQXV0aG9yaXplcikge1xuICAgICAgcmV0dXJuIGNvbXBsZXRlKGNhbGxiYWNrLCB7XG4gICAgICAgIGNvbnRleHQ6IHNlc3Npb24/LnVzZXJJZCA/IHtcbiAgICAgICAgICB1c2VyQWNjZXNzOiBOdW1iZXIoc2Vzc2lvbi51c2VyQWNjZXNzIHx8IDApLFxuICAgICAgICAgIHVzZXJJZDogc2Vzc2lvbi51c2VySWQsXG4gICAgICAgICAgdXNlcm5hbWU6IHNlc3Npb24udXNlcm5hbWUgfHwgJydcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNBdXRob3JpemVkOiAhIXNlc3Npb24/LnVzZXJJZFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYoc2Vzc2lvbj8udXNlcklkKSB7XG4gICAgICByZXR1cm4gY29tcGxldGUoY2FsbGJhY2ssIGdlbmVyYXRlQXV0aFJlc3BvbnNlKHNlc3Npb24udXNlcklkLCAnQWxsb3cnLCBldmVudC5tZXRob2RBcm4pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGxldGUoY2FsbGJhY2ssIGdlbmVyYXRlQXV0aFJlc3BvbnNlKHNlc3Npb24/LnVzZXJJZCwgJ0RlbnknLCBldmVudC5tZXRob2RBcm4pKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0F1dGhvcml6YXRpb24gZmFpbGVkOicsIGVycm9yKTtcbiAgICByZXR1cm4gY29tcGxldGUoY2FsbGJhY2ssIHNpbXBsZUF1dGhvcml6ZXIgPyB7aXNBdXRob3JpemVkOiBmYWxzZX0gOiAnVW5hdXRob3JpemVkJyk7XG4gIH1cbn07XG4iXSwibmFtZXMiOlsiZ2V0U2Vzc2lvbiIsImdlbmVyYXRlUG9saWN5RG9jdW1lbnQiLCJlZmZlY3QiLCJtZXRob2RBcm4iLCJwb2xpY3lEb2N1bWVudCIsIlZlcnNpb24iLCJTdGF0ZW1lbnQiLCJBY3Rpb24iLCJFZmZlY3QiLCJSZXNvdXJjZSIsImdlbmVyYXRlQXV0aFJlc3BvbnNlIiwicHJpbmNpcGFsSWQiLCJnZXRBdXRob3JpemF0aW9uSGVhZGVyIiwiZXZlbnQiLCJoZWFkZXJzIiwiaGVhZGVyS2V5IiwiT2JqZWN0Iiwia2V5cyIsImZpbmQiLCJrZXkiLCJ0b0xvd2VyQ2FzZSIsImhlYWRlclZhbHVlIiwiU3RyaW5nIiwiYXV0aG9yaXphdGlvblRva2VuIiwiaWRlbnRpdHlTb3VyY2UiLCJnZXRCZWFyZXJUb2tlbiIsImF1dGhvcml6YXRpb25IZWFkZXIiLCJzY2hlbWUiLCJwYXJ0cyIsInRyaW0iLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJpc0h0dHBBcGlTaW1wbGVBdXRob3JpemVyIiwidmVyc2lvbiIsIkFycmF5IiwiaXNBcnJheSIsImNvbXBsZXRlIiwiY2FsbGJhY2siLCJyZXNwb25zZSIsImF1dGhvcml6ZXIiLCJfY29udGV4dCIsInRva2VuIiwic2ltcGxlQXV0aG9yaXplciIsImlzQXV0aG9yaXplZCIsInNlc3Npb24iLCJjb250ZXh0IiwidXNlcklkIiwidXNlckFjY2VzcyIsIk51bWJlciIsInVzZXJuYW1lIiwidW5kZWZpbmVkIiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxVQUFVLFFBQU8sMkJBQTJCO0FBVXBELE9BQU8sTUFBTUMseUJBQXlCLENBQUNDLFFBQVFDO0lBQzdDLElBQUcsQ0FBQ0QsVUFBVSxDQUFDQyxXQUFXO1FBQ3hCLE9BQU87SUFDVDtJQUVBLE1BQU1DLGlCQUFpQjtRQUNyQkMsU0FBUztRQUNUQyxXQUFXO1lBQ1Q7Z0JBQ0VDLFFBQVE7Z0JBQ1JDLFFBQVFOO2dCQUNSTyxVQUFVTjtZQUNaO1NBQ0Q7SUFDSDtJQUVBLE9BQU9DO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTU0sdUJBQXVCLENBQUNDLGFBQWFULFFBQVFDO0lBQ3hELE1BQU1DLGlCQUFpQkgsdUJBQXVCQyxRQUFRQztJQUV0RCxPQUFPO1FBQ0xRO1FBQ0FQO0lBQ0Y7QUFDRixFQUFFO0FBRUYsTUFBTVEseUJBQXlCLENBQUNDO0lBQzlCLE1BQU1DLFVBQVVELE1BQU1DLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLE1BQU1DLFlBQVlDLE9BQU9DLElBQUksQ0FBQ0gsU0FBU0ksSUFBSSxDQUFDLENBQUNDLE1BQVFBLElBQUlDLFdBQVcsT0FBTztJQUMzRSxNQUFNQyxjQUFjTixZQUFZRCxPQUFPLENBQUNDLFVBQVUsR0FBRztJQUVyRCxPQUFPTyxPQUFPVCxNQUFNVSxrQkFBa0IsSUFBSUYsZUFBZVIsTUFBTVcsY0FBYyxFQUFFLENBQUMsRUFBRSxJQUFJO0FBQ3hGO0FBRUEsTUFBTUMsaUJBQWlCLENBQUNDO0lBQ3RCLElBQUcsQ0FBQ0EscUJBQXFCO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLE1BQU0sQ0FBQ0MsUUFBUSxHQUFHQyxNQUFNLEdBQUdGLG9CQUFvQkcsSUFBSSxHQUFHQyxLQUFLLENBQUM7SUFFNUQsSUFBR0gsUUFBUVAsa0JBQWtCLFlBQVlRLE1BQU1HLE1BQU0sRUFBRTtRQUNyRCxPQUFPSCxNQUFNSSxJQUFJLENBQUMsS0FBS0gsSUFBSTtJQUM3QjtJQUVBLE9BQU9ILG9CQUFvQkcsSUFBSTtBQUNqQztBQUVBLE1BQU1JLDRCQUE0QixDQUFDcEIsUUFDakNBLE1BQU1xQixPQUFPLEtBQUssU0FBU0MsTUFBTUMsT0FBTyxDQUFDdkIsTUFBTVcsY0FBYztBQUcvRCxNQUFNYSxXQUFXLENBQUNDLFVBQVVDO0lBQzFCLElBQUcsT0FBT0QsYUFBYSxZQUFZO1FBQ2pDLE9BQU9BLFNBQVMsTUFBTUM7SUFDeEI7SUFFQSxPQUFPQTtBQUNUO0FBRUEsT0FBTyxNQUFNQyxhQUFhLENBQUMzQixRQUF5QixDQUFDLENBQUMsRUFBRTRCLFVBQVdIO0lBQ2pFLE1BQU1JLFFBQVFqQixlQUFlYix1QkFBdUJDO0lBQ3BELE1BQU04QixtQkFBbUJWLDBCQUEwQnBCO0lBRW5ELElBQUcsQ0FBQzZCLFNBQVUsQ0FBQzdCLE1BQU1WLFNBQVMsSUFBSSxDQUFDd0Msa0JBQW1CO1FBQ3BELE9BQU9OLFNBQVNDLFVBQVVLLG1CQUFtQjtZQUFDQyxjQUFjO1FBQUssSUFBSTtJQUN2RTtJQUVBLElBQUk7UUFDRixNQUFNQyxVQUFVN0MsV0FBVzBDO1FBRTNCLElBQUdDLGtCQUFrQjtZQUNuQixPQUFPTixTQUFTQyxVQUFVO2dCQUN4QlEsU0FBU0QsU0FBU0UsU0FBUztvQkFDekJDLFlBQVlDLE9BQU9KLFFBQVFHLFVBQVUsSUFBSTtvQkFDekNELFFBQVFGLFFBQVFFLE1BQU07b0JBQ3RCRyxVQUFVTCxRQUFRSyxRQUFRLElBQUk7Z0JBQ2hDLElBQUlDO2dCQUNKUCxjQUFjLENBQUMsQ0FBQ0MsU0FBU0U7WUFDM0I7UUFDRjtRQUVBLElBQUdGLFNBQVNFLFFBQVE7WUFDbEIsT0FBT1YsU0FBU0MsVUFBVTVCLHFCQUFxQm1DLFFBQVFFLE1BQU0sRUFBRSxTQUFTbEMsTUFBTVYsU0FBUztRQUN6RjtRQUVBLE9BQU9rQyxTQUFTQyxVQUFVNUIscUJBQXFCbUMsU0FBU0UsUUFBUSxRQUFRbEMsTUFBTVYsU0FBUztJQUN6RixFQUFFLE9BQU1pRCxPQUFPO1FBQ2JDLFFBQVFELEtBQUssQ0FBQyx5QkFBeUJBO1FBQ3ZDLE9BQU9mLFNBQVNDLFVBQVVLLG1CQUFtQjtZQUFDQyxjQUFjO1FBQUssSUFBSTtJQUN2RTtBQUNGLEVBQUUifQ==
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) 2021-Present, Nitrogen Labs, Inc.
3
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
3
+ * All rights reserved. Use is subject to the accompanying commercial LICENSE.
4
4
  */ import { getConversationById } from '../actions/conversations.js';
5
5
  import { Config } from '../config.js';
6
6
  import { getSession } from '../utils/sessionUtils.js';
@@ -299,4 +299,4 @@ export const typingHandler = async (event)=>{
299
299
  return successStatus;
300
300
  };
301
301
 
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2xhbWJkYXMvY29ubmVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb25CeUlkfSBmcm9tICcuLi9hY3Rpb25zL2NvbnZlcnNhdGlvbnMuanMnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge2dldFNlc3Npb259IGZyb20gJy4uL3V0aWxzL3Nlc3Npb25VdGlscy5qcyc7XG5pbXBvcnQge1xuICBhZGRDb25uZWN0aW9uLFxuICBnZXRDb25uZWN0aW9uQnlJZCxcbiAgZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEsXG4gIGdldENvbm5lY3Rpb25zQnlVc2VyLFxuICByZW1vdmVDb25uZWN0aW9uXG59IGZyb20gJy4vYWN0aW9ucy93ZWJzb2NrZXRzLmpzJztcbmltcG9ydCB7cGFyc2VNZXNzYWdlfSBmcm9tICcuL3V0aWxzL21lc3NhZ2UuanMnO1xuaW1wb3J0IHt3c0NsaWVudH0gZnJvbSAnLi91dGlscy93ZWJzb2NrZXQuanMnO1xuXG5pbXBvcnQgdHlwZSB7Q29udGV4dH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucy50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1dlYnNvY2tldFR5cGluZ1R5cGV9IGZyb20gJy4uL3R5cGVzL3dlYnNvY2tldHMudHlwZXMuanMnO1xuXG5pbnRlcmZhY2UgV2Vic29ja2V0RXZlbnQge1xuICByZWFkb25seSBib2R5Pzogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgbXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB8IG51bGw7XG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfCBudWxsO1xuICByZWFkb25seSByZXF1ZXN0Q29udGV4dDoge1xuICAgIHJlYWRvbmx5IGNvbm5lY3Rpb25JZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGV2ZW50VHlwZTogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBzdWNjZXNzU3RhdHVzID0ge3N0YXR1c0NvZGU6IDIwMH07XG5jb25zdCBlcnJvclN0YXR1cyA9IHtzdGF0dXNDb2RlOiA1MDB9O1xuY29uc3Qge0FSQU5HT0RCX0RBVEFCQVNFOiBkYXRhYmFzZU5hbWV9ID0gcHJvY2Vzcy5lbnY7XG5jb25zdCBnZXRCYXNpY0NvbnRleHQgPSAodXNlcklkOiBzdHJpbmcpOiBBcGlDb250ZXh0ID0+ICh7XG4gIGNvbmZpZzogQ29uZmlnLmdldCgpLFxuICBkYXRhYmFzZU5hbWUsXG4gIHNlc3Npb246IHt1c2VySWR9XG59KTtcblxuY29uc3QgcmVzb2x2ZVNlc3Npb25JZGVudGl0eSA9ICh7XG4gIHBlcnNvbmFJZCxcbiAgdG9rZW4sXG4gIHVzZXJJZFxufToge1xuICByZWFkb25seSBwZXJzb25hSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VySWQ/OiBzdHJpbmc7XG59KToge3BlcnNvbmFJZD86IHN0cmluZzsgdXNlcklkPzogc3RyaW5nfSA9PiB7XG4gIGlmKHRva2VuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSBnZXRTZXNzaW9uKHRva2VuKSB8fCB7fTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGVyc29uYUlkOiBTdHJpbmcocGVyc29uYUlkIHx8IChzZXNzaW9uIGFzIGFueSk/LnBlcnNvbmFJZCB8fCAnJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICB1c2VySWQ6IFN0cmluZygoc2Vzc2lvbiBhcyBhbnkpPy51c2VySWQgfHwgJycpIHx8IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9IGNhdGNoKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnaW52YWxpZF9zZXNzaW9uJztcblxuICAgICAgY29uc29sZS53YXJuKCdyZXNvbHZlU2Vzc2lvbklkZW50aXR5OjppbnZhbGlkVG9rZW4nLCB7bWVzc2FnZX0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGVyc29uYUlkOiBTdHJpbmcocGVyc29uYUlkIHx8ICcnKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHVzZXJJZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBlcnNvbmFJZDogU3RyaW5nKHBlcnNvbmFJZCB8fCAnJykgfHwgdW5kZWZpbmVkLFxuICAgIHVzZXJJZFxuICB9O1xufTtcblxuY29uc3QgcmVnaXN0ZXJDb25uZWN0aW9uID0gYXN5bmMgKHtcbiAgY2xpZW50SWQsXG4gIGNvbm5lY3Rpb25JZCxcbiAgcGVyc29uYUlkLFxuICB0b2tlbixcbiAgdXNlcklkXG59OiB7XG4gIHJlYWRvbmx5IGNsaWVudElkPzogc3RyaW5nO1xuICByZWFkb25seSBjb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbj86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xufSkgPT4ge1xuICBjb25zdCB7cGVyc29uYUlkOiBuZXh0UGVyc29uYUlkLCB1c2VySWQ6IG5leHRVc2VySWR9ID0gcmVzb2x2ZVNlc3Npb25JZGVudGl0eSh7cGVyc29uYUlkLCB0b2tlbiwgdXNlcklkfSk7XG5cbiAgaWYoIW5leHRVc2VySWQpIHtcbiAgICBjb25zb2xlLmxvZygnd2Vic29ja2V0OjpyZWdpc3RlckNvbm5lY3Rpb246Om1pc3NpbmdVc2VyJywge2Nvbm5lY3Rpb25JZCwgbmV4dFBlcnNvbmFJZH0pO1xuICAgIHJldHVybiBzdWNjZXNzU3RhdHVzO1xuICB9XG5cbiAgY29uc29sZS5sb2coJ3dlYnNvY2tldDo6cmVnaXN0ZXJDb25uZWN0aW9uJywge1xuICAgIGNsaWVudElkLFxuICAgIGNvbm5lY3Rpb25JZCxcbiAgICBwZXJzb25hSWQ6IG5leHRQZXJzb25hSWQsXG4gICAgdXNlcklkOiBuZXh0VXNlcklkXG4gIH0pO1xuICBhd2FpdCBhZGRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCwgbmV4dFVzZXJJZCwgbmV4dFBlcnNvbmFJZCB8fCAnJywgU3RyaW5nKGNsaWVudElkIHx8ICcnKSk7XG4gIHJldHVybiBzdWNjZXNzU3RhdHVzO1xufTtcblxuY29uc3QgZ2V0Q29ubmVjdGlvbklkZW50aXR5ID0gYXN5bmMgKGNvbm5lY3Rpb25JZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBnZXRDb25uZWN0aW9uQnlJZChjb25uZWN0aW9uSWQpO1xuICBjb25zdCB1c2VySWQgPSBjb25uZWN0aW9uPy51c2VySWQ7XG5cbiAgaWYoIXVzZXJJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29ubmVjdGlvbiBub3QgZm91bmQnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGVyc29uYUlkOiBTdHJpbmcoY29ubmVjdGlvbj8ucGVyc29uYUlkIHx8ICcnKSxcbiAgICB1c2VySWRcbiAgfTtcbn07XG5cbmNvbnN0IGdldENvbnZlcnNhdGlvblVzZXJzID0gYXN5bmMgKGNvbm5lY3Rpb25JZDogc3RyaW5nLCBjb252ZXJzYXRpb25JZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHtwZXJzb25hSWQsIHVzZXJJZH0gPSBhd2FpdCBnZXRDb25uZWN0aW9uSWRlbnRpdHkoY29ubmVjdGlvbklkKTtcbiAgY29uc3QgYXV0aENvbnRleHQgPSBnZXRCYXNpY0NvbnRleHQodXNlcklkKTtcbiAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZ2V0Q29udmVyc2F0aW9uQnlJZChhdXRoQ29udGV4dCwgY29udmVyc2F0aW9uSWQpO1xuXG4gIHJldHVybiB7XG4gICAgY29udmVyc2F0aW9uLFxuICAgIHBlcnNvbmFJZCxcbiAgICB1c2VySWRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0SGFuZGxlciA9IGFzeW5jIChldmVudDogV2Vic29ja2V0RXZlbnQsIGNvbnRleHQ6IENvbnRleHQpID0+IHtcbiAgY29uc29sZS5sb2coJ2Nvbm5lY3RIYW5kbGVyOjpldmVudCcsIGV2ZW50KTtcbiAgY29uc29sZS5sb2coJ2Nvbm5lY3RIYW5kbGVyOjpjb250ZXh0JywgY29udGV4dCk7XG4gIGF3YWl0IHdzQ2xpZW50LnNldHVwQ2xpZW50KGV2ZW50KTtcbiAgY29uc3Qge3JlcXVlc3RDb250ZXh0fSA9IGV2ZW50O1xuICBjb25zdCB7Y29ubmVjdGlvbklkLCBldmVudFR5cGV9ID0gcmVxdWVzdENvbnRleHQ7XG4gIGNvbnN0IGNsaWVudElkID0gZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy5jbGllbnRJZCB8fCBldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy5jbGllbnRJZD8uWzBdO1xuICBjb25zdCBwZXJzb25hSWQgPSBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnM/LnBlcnNvbmFJZCB8fCBldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy5wZXJzb25hSWQ/LlswXTtcbiAgY29uc3QgdG9rZW4gPSBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnM/LnRva2VuIHx8IGV2ZW50Lm11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnM/LnRva2VuPy5bMF07XG4gIGNvbnN0IHVzZXJJZCA9IGV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8udXNlcklkIHx8IGV2ZW50Lm11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnM/LnVzZXJJZD8uWzBdO1xuXG4gIHRyeSB7XG4gICAgaWYoZXZlbnRUeXBlID09PSAnQ09OTkVDVCcpIHtcbiAgICAgIHJldHVybiByZWdpc3RlckNvbm5lY3Rpb24oe2NsaWVudElkLCBjb25uZWN0aW9uSWQsIHBlcnNvbmFJZCwgdG9rZW4sIHVzZXJJZH0pO1xuICAgIH0gZWxzZSBpZihldmVudFR5cGUgPT09ICdESVNDT05ORUNUJykge1xuICAgICAgYXdhaXQgcmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgICAgcmV0dXJuIHN1Y2Nlc3NTdGF0dXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogJ1Vua25vd24gdHlwZSd9O1xuICB9IGNhdGNoKGVycm9yOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJIYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBXZWJzb2NrZXRFdmVudCkgPT4ge1xuICBhd2FpdCB3c0NsaWVudC5zZXR1cENsaWVudChldmVudCk7XG4gIGNvbnN0IHtib2R5LCByZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZH0gPSByZXF1ZXN0Q29udGV4dDtcbiAgY29uc3QgbWVzc2FnZUJvZHkgPSB0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGJvZHkpIDogYm9keTtcbiAgY29uc3QgY2xpZW50SWQgPSBTdHJpbmcobWVzc2FnZUJvZHk/LmRhdGE/LmNsaWVudElkIHx8IG1lc3NhZ2VCb2R5Py5jbGllbnRJZCB8fCAnJyk7XG4gIGNvbnN0IHBlcnNvbmFJZCA9IFN0cmluZyhtZXNzYWdlQm9keT8uZGF0YT8ucGVyc29uYUlkIHx8IG1lc3NhZ2VCb2R5Py5wZXJzb25hSWQgfHwgJycpO1xuICBjb25zdCB0b2tlbiA9IFN0cmluZyhtZXNzYWdlQm9keT8uZGF0YT8udG9rZW4gfHwgbWVzc2FnZUJvZHk/LnRva2VuIHx8ICcnKTtcbiAgY29uc3QgdXNlcklkID0gU3RyaW5nKG1lc3NhZ2VCb2R5Py5kYXRhPy51c2VySWQgfHwgbWVzc2FnZUJvZHk/LnVzZXJJZCB8fCAnJyk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgcmVnaXN0ZXJDb25uZWN0aW9uKHtcbiAgICAgIGNsaWVudElkOiBjbGllbnRJZCB8fCB1bmRlZmluZWQsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICBwZXJzb25hSWQ6IHBlcnNvbmFJZCB8fCB1bmRlZmluZWQsXG4gICAgICB0b2tlbjogdG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgdXNlcklkOiB1c2VySWQgfHwgdW5kZWZpbmVkXG4gICAgfSk7XG4gIH0gY2F0Y2goZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gey4uLmVycm9yU3RhdHVzLCBtZXNzYWdlOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ307XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0SGFuZGxlciA9IGFzeW5jIChldmVudDogV2Vic29ja2V0RXZlbnQpID0+IHtcbiAgYXdhaXQgd3NDbGllbnQuc2V0dXBDbGllbnQoZXZlbnQpO1xuICBhd2FpdCB3c0NsaWVudC5zZW5kKGV2ZW50LCB7XG4gICAgZXZlbnQ6ICdlcnJvcicsXG4gICAgbWVzc2FnZTogJ2ludmFsaWQgYWN0aW9uIHR5cGUnXG4gIH0pO1xuXG4gIHJldHVybiBzdWNjZXNzU3RhdHVzO1xufTtcblxuZXhwb3J0IGNvbnN0IG1lc3NhZ2VIYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBXZWJzb2NrZXRFdmVudCkgPT4ge1xuICBhd2FpdCB3c0NsaWVudC5zZXR1cENsaWVudChldmVudCk7XG4gIGNvbnN0IHtib2R5LCByZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZH0gPSByZXF1ZXN0Q29udGV4dDtcbiAgY29uc3QgbWVzc2FnZUJvZHkgPSB0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGJvZHkpIDogYm9keTtcbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBtZXNzYWdlQm9keT8uZGF0YTtcbiAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBTdHJpbmcobWVzc2FnZT8uY29udmVyc2F0aW9uSWQgfHwgJycpO1xuICBjb25zdCB7Y29udGVudH0gPSBtZXNzYWdlO1xuICBjb25zdCBmb3JtYXRDb250ZW50ID0gcGFyc2VNZXNzYWdlKGNvbnRlbnQgfHwgJycpO1xuXG4gIGlmKCFjb252ZXJzYXRpb25JZCkge1xuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6ICdNaXNzaW5nIGNvbnZlcnNhdGlvbiBJRCd9O1xuICB9XG5cbiAgbGV0IHVzZXJJZCA9ICcnO1xuICBsZXQgdXNlcnM6IEFycmF5PFVzZXJUeXBlPiA9IFtdO1xuICBsZXQgY3VycmVudFVzZXI6IFVzZXJUeXBlIHwgdW5kZWZpbmVkO1xuICBsZXQgY3VycmVudFBlcnNvbmFJZCA9ICcnO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGdldENvbnZlcnNhdGlvblVzZXJzKGNvbm5lY3Rpb25JZCwgY29udmVyc2F0aW9uSWQpO1xuICAgIHVzZXJJZCA9IFN0cmluZyhyZXN1bHRzLnVzZXJJZCB8fCAnJyk7XG4gICAgY3VycmVudFBlcnNvbmFJZCA9IFN0cmluZyhyZXN1bHRzLnBlcnNvbmFJZCB8fCAnJyk7XG4gICAgdXNlcnMgPSBBcnJheS5pc0FycmF5KHJlc3VsdHMuY29udmVyc2F0aW9uPy51c2VycykgPyByZXN1bHRzLmNvbnZlcnNhdGlvbi51c2VycyA6IFtdO1xuICAgIGN1cnJlbnRVc2VyID0gdXNlcnMuZmluZCgodXNlcikgPT4ge1xuICAgICAgY29uc3QgbmV4dFVzZXJJZCA9IFN0cmluZyh1c2VyPy51c2VySWQgfHwgdXNlcj8uX2tleSB8fCAnJyk7XG4gICAgICBjb25zdCBuZXh0UGVyc29uYUlkID0gU3RyaW5nKHVzZXI/LnBlcnNvbmFJZCB8fCAnJyk7XG5cbiAgICAgIGlmKGN1cnJlbnRQZXJzb25hSWQgJiYgbmV4dFBlcnNvbmFJZCkge1xuICAgICAgICByZXR1cm4gbmV4dFVzZXJJZCA9PT0gdXNlcklkICYmIG5leHRQZXJzb25hSWQgPT09IGN1cnJlbnRQZXJzb25hSWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0VXNlcklkID09PSB1c2VySWQ7XG4gICAgfSk7XG4gIH0gY2F0Y2goZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gey4uLmVycm9yU3RhdHVzLCBtZXNzYWdlOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdDb25uZWN0aW9uIG5vdCBmb3VuZCd9O1xuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwodXNlcnMubWFwKGFzeW5jICh1c2VyKSA9PiB7XG4gICAgY29uc3QgbmV4dFVzZXJJZCA9IFN0cmluZyh1c2VyPy5fa2V5IHx8IHVzZXI/LnVzZXJJZCB8fCAnJyk7XG4gICAgY29uc3QgbmV4dFBlcnNvbmFJZCA9IFN0cmluZyh1c2VyPy5wZXJzb25hSWQgfHwgJycpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb25SZWNvcmRzID0gbmV4dFBlcnNvbmFJZFxuICAgICAgPyBhd2FpdCBnZXRDb25uZWN0aW9uc0J5UGVyc29uYShuZXh0UGVyc29uYUlkKVxuICAgICAgOiAobmV4dFVzZXJJZCA/IGF3YWl0IGdldENvbm5lY3Rpb25zQnlVc2VyKG5leHRVc2VySWQpIDogW10pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoY29ubmVjdGlvblJlY29yZHMubWFwKGFzeW5jIChjb25uZWN0aW9uUmVjb3JkKSA9PiB7XG4gICAgICBjb25zdCBzb2NrZXRJZCA9IGNvbm5lY3Rpb25SZWNvcmQ/LnNvY2tldElkIHx8IGNvbm5lY3Rpb25SZWNvcmQ/LmNvbm5lY3Rpb25JZDtcblxuICAgICAgaWYoc29ja2V0SWQpIHtcbiAgICAgICAgYXdhaXQgd3NDbGllbnQuc2VuZChzb2NrZXRJZCwge1xuICAgICAgICAgIGFjdGlvbjogJ21lc3NhZ2UuY3JlYXRlZCcsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgY29udGVudDogZm9ybWF0Q29udGVudCxcbiAgICAgICAgICAgICAgY29udmVyc2F0aW9uSWQsXG4gICAgICAgICAgICAgIG1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICAgICAgaW1hZ2VVcmw6IFN0cmluZyhjdXJyZW50VXNlcj8uaW1hZ2VVcmwgfHwgJycpLFxuICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyhjdXJyZW50VXNlcj8ubmFtZSB8fCAnJyksXG4gICAgICAgICAgICAgICAgcGVyc29uYUlkOiBTdHJpbmcoY3VycmVudFVzZXI/LnBlcnNvbmFJZCB8fCAnJyksXG4gICAgICAgICAgICAgICAgdGh1bWJVcmw6IFN0cmluZyhjdXJyZW50VXNlcj8udGh1bWJVcmwgfHwgJycpLFxuICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogU3RyaW5nKGN1cnJlbnRVc2VyPy51c2VybmFtZSB8fCAnJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH0pKTtcblxuICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbn07XG5cbmV4cG9ydCBjb25zdCB0eXBpbmdIYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBXZWJzb2NrZXRFdmVudCkgPT4ge1xuICBhd2FpdCB3c0NsaWVudC5zZXR1cENsaWVudChldmVudCk7XG4gIGNvbnN0IHtib2R5LCByZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZH0gPSByZXF1ZXN0Q29udGV4dDtcbiAgY29uc3QgbWVzc2FnZUJvZHkgPSB0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGJvZHkpIDogYm9keTtcbiAgY29uc3QgdHlwaW5nOiBXZWJzb2NrZXRUeXBpbmdUeXBlID0gbWVzc2FnZUJvZHk/LmRhdGEgfHwge307XG4gIGNvbnN0IGNvbnZlcnNhdGlvbklkID0gU3RyaW5nKHR5cGluZz8uY29udmVyc2F0aW9uSWQgfHwgJycpO1xuICBjb25zdCBpc1R5cGluZyA9IEJvb2xlYW4odHlwaW5nPy5pc1R5cGluZyk7XG4gIGxldCB1c2VyczogQXJyYXk8VXNlclR5cGU+ID0gW107XG5cbiAgaWYoIWNvbnZlcnNhdGlvbklkKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogJ01pc3NpbmcgY29udmVyc2F0aW9uIElEJ307XG4gIH1cblxuICBsZXQgdXNlcklkID0gJyc7XG4gIGxldCBjdXJyZW50VXNlcjogVXNlclR5cGUgfCB1bmRlZmluZWQ7XG4gIGxldCBjdXJyZW50UGVyc29uYUlkID0gJyc7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25uZWN0aW9uSWRlbnRpdHkgPSBhd2FpdCBnZXRDb25uZWN0aW9uSWRlbnRpdHkoY29ubmVjdGlvbklkKTtcbiAgICBjb25zdCBjb252ZXJzYXRpb25SZXN1bHRzID0gYXdhaXQgZ2V0Q29udmVyc2F0aW9uVXNlcnMoY29ubmVjdGlvbklkLCBjb252ZXJzYXRpb25JZCk7XG4gICAgdXNlcnMgPSBBcnJheS5pc0FycmF5KChjb252ZXJzYXRpb25SZXN1bHRzLmNvbnZlcnNhdGlvbiBhcyBDb252ZXJzYXRpb25UeXBlKT8udXNlcnMpXG4gICAgICA/ICgoY29udmVyc2F0aW9uUmVzdWx0cy5jb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZSkudXNlcnMgfHwgW10pIGFzIFVzZXJUeXBlW11cbiAgICAgIDogW107XG4gICAgdXNlcklkID0gU3RyaW5nKGNvbm5lY3Rpb25JZGVudGl0eS51c2VySWQgfHwgJycpO1xuICAgIGN1cnJlbnRQZXJzb25hSWQgPSBTdHJpbmcoY29ubmVjdGlvbklkZW50aXR5LnBlcnNvbmFJZCB8fCB0eXBpbmc/LnBlcnNvbmFJZCB8fCAnJyk7XG4gICAgY3VycmVudFVzZXIgPSB1c2Vycy5maW5kKCh1c2VyKSA9PiB7XG4gICAgICBjb25zdCBuZXh0VXNlcklkID0gU3RyaW5nKHVzZXI/LnVzZXJJZCB8fCB1c2VyPy5fa2V5IHx8ICcnKTtcbiAgICAgIGNvbnN0IG5leHRQZXJzb25hSWQgPSBTdHJpbmcodXNlcj8ucGVyc29uYUlkIHx8ICcnKTtcblxuICAgICAgaWYoY3VycmVudFBlcnNvbmFJZCAmJiBuZXh0UGVyc29uYUlkKSB7XG4gICAgICAgIHJldHVybiBuZXh0VXNlcklkID09PSB1c2VySWQgJiYgbmV4dFBlcnNvbmFJZCA9PT0gY3VycmVudFBlcnNvbmFJZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHRVc2VySWQgPT09IHVzZXJJZDtcbiAgICB9KTtcbiAgICBjdXJyZW50UGVyc29uYUlkID0gU3RyaW5nKGN1cnJlbnRQZXJzb25hSWQgfHwgY3VycmVudFVzZXI/LnBlcnNvbmFJZCB8fCAnJyk7XG4gIH0gY2F0Y2goZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gey4uLmVycm9yU3RhdHVzLCBtZXNzYWdlOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdDb25uZWN0aW9uIG5vdCBmb3VuZCd9O1xuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwodXNlcnMubWFwKGFzeW5jICh1c2VyKSA9PiB7XG4gICAgY29uc3QgbmV4dFVzZXJJZCA9IFN0cmluZyh1c2VyPy5fa2V5IHx8IHVzZXI/LnVzZXJJZCB8fCAnJyk7XG4gICAgY29uc3QgbmV4dFBlcnNvbmFJZCA9IFN0cmluZyh1c2VyPy5wZXJzb25hSWQgfHwgJycpO1xuXG4gICAgaWYoIW5leHRVc2VySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihjdXJyZW50UGVyc29uYUlkICYmIG5leHRQZXJzb25hSWQgJiYgbmV4dFBlcnNvbmFJZCA9PT0gY3VycmVudFBlcnNvbmFJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmKCFjdXJyZW50UGVyc29uYUlkICYmIG5leHRVc2VySWQgPT09IHVzZXJJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbm5lY3Rpb25SZWNvcmRzID0gbmV4dFBlcnNvbmFJZFxuICAgICAgPyBhd2FpdCBnZXRDb25uZWN0aW9uc0J5UGVyc29uYShuZXh0UGVyc29uYUlkKVxuICAgICAgOiBhd2FpdCBnZXRDb25uZWN0aW9uc0J5VXNlcihuZXh0VXNlcklkKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbm5lY3Rpb25SZWNvcmRzLm1hcChhc3luYyAoY29ubmVjdGlvblJlY29yZCkgPT4ge1xuICAgICAgY29uc3Qgc29ja2V0SWQgPSBjb25uZWN0aW9uUmVjb3JkPy5zb2NrZXRJZCB8fCBjb25uZWN0aW9uUmVjb3JkPy5jb25uZWN0aW9uSWQ7XG5cbiAgICAgIGlmKHNvY2tldElkKSB7XG4gICAgICAgIGF3YWl0IHdzQ2xpZW50LnNlbmQoc29ja2V0SWQsIHtcbiAgICAgICAgICBhY3Rpb246ICdtZXNzYWdlLnR5cGluZycsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwaW5nOiB7XG4gICAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgICAgICBpc1R5cGluZyxcbiAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHR5cGluZz8ubmFtZSB8fCBjdXJyZW50VXNlcj8ubmFtZSB8fCAnJyksXG4gICAgICAgICAgICAgIHBlcnNvbmFJZDogY3VycmVudFBlcnNvbmFJZCxcbiAgICAgICAgICAgICAgdXBkYXRlZEF0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgIHVzZXJuYW1lOiBTdHJpbmcodHlwaW5nPy51c2VybmFtZSB8fCBjdXJyZW50VXNlcj8udXNlcm5hbWUgfHwgJycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH0pKTtcblxuICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbn07XG4iXSwibmFtZXMiOlsiZ2V0Q29udmVyc2F0aW9uQnlJZCIsIkNvbmZpZyIsImdldFNlc3Npb24iLCJhZGRDb25uZWN0aW9uIiwiZ2V0Q29ubmVjdGlvbkJ5SWQiLCJnZXRDb25uZWN0aW9uc0J5UGVyc29uYSIsImdldENvbm5lY3Rpb25zQnlVc2VyIiwicmVtb3ZlQ29ubmVjdGlvbiIsInBhcnNlTWVzc2FnZSIsIndzQ2xpZW50Iiwic3VjY2Vzc1N0YXR1cyIsInN0YXR1c0NvZGUiLCJlcnJvclN0YXR1cyIsIkFSQU5HT0RCX0RBVEFCQVNFIiwiZGF0YWJhc2VOYW1lIiwicHJvY2VzcyIsImVudiIsImdldEJhc2ljQ29udGV4dCIsInVzZXJJZCIsImNvbmZpZyIsImdldCIsInNlc3Npb24iLCJyZXNvbHZlU2Vzc2lvbklkZW50aXR5IiwicGVyc29uYUlkIiwidG9rZW4iLCJTdHJpbmciLCJ1bmRlZmluZWQiLCJlcnJvciIsIm1lc3NhZ2UiLCJFcnJvciIsImNvbnNvbGUiLCJ3YXJuIiwicmVnaXN0ZXJDb25uZWN0aW9uIiwiY2xpZW50SWQiLCJjb25uZWN0aW9uSWQiLCJuZXh0UGVyc29uYUlkIiwibmV4dFVzZXJJZCIsImxvZyIsImdldENvbm5lY3Rpb25JZGVudGl0eSIsImNvbm5lY3Rpb24iLCJnZXRDb252ZXJzYXRpb25Vc2VycyIsImNvbnZlcnNhdGlvbklkIiwiYXV0aENvbnRleHQiLCJjb252ZXJzYXRpb24iLCJjb25uZWN0SGFuZGxlciIsImV2ZW50IiwiY29udGV4dCIsInNldHVwQ2xpZW50IiwicmVxdWVzdENvbnRleHQiLCJldmVudFR5cGUiLCJxdWVyeVN0cmluZ1BhcmFtZXRlcnMiLCJtdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzIiwicmVnaXN0ZXJIYW5kbGVyIiwiYm9keSIsIm1lc3NhZ2VCb2R5IiwiSlNPTiIsInBhcnNlIiwiZGF0YSIsImRlZmF1bHRIYW5kbGVyIiwic2VuZCIsIm1lc3NhZ2VIYW5kbGVyIiwiY29udGVudCIsImZvcm1hdENvbnRlbnQiLCJ1c2VycyIsImN1cnJlbnRVc2VyIiwiY3VycmVudFBlcnNvbmFJZCIsInJlc3VsdHMiLCJBcnJheSIsImlzQXJyYXkiLCJmaW5kIiwidXNlciIsIl9rZXkiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY29ubmVjdGlvblJlY29yZHMiLCJjb25uZWN0aW9uUmVjb3JkIiwic29ja2V0SWQiLCJhY3Rpb24iLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJtb2RpZmllZCIsImltYWdlVXJsIiwibmFtZSIsInRodW1iVXJsIiwidXNlcm5hbWUiLCJ0eXBpbmdIYW5kbGVyIiwidHlwaW5nIiwiaXNUeXBpbmciLCJCb29sZWFuIiwiY29ubmVjdGlvbklkZW50aXR5IiwiY29udmVyc2F0aW9uUmVzdWx0cyIsInVwZGF0ZWRBdCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsbUJBQW1CLFFBQU8sOEJBQThCO0FB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
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9sYW1iZGFzL2Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7Z2V0Q29udmVyc2F0aW9uQnlJZH0gZnJvbSAnLi4vYWN0aW9ucy9jb252ZXJzYXRpb25zLmpzJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtnZXRTZXNzaW9ufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHtcbiAgYWRkQ29ubmVjdGlvbixcbiAgZ2V0Q29ubmVjdGlvbkJ5SWQsXG4gIGdldENvbm5lY3Rpb25zQnlQZXJzb25hLFxuICBnZXRDb25uZWN0aW9uc0J5VXNlcixcbiAgcmVtb3ZlQ29ubmVjdGlvblxufSBmcm9tICcuL2FjdGlvbnMvd2Vic29ja2V0cy5qcyc7XG5pbXBvcnQge3BhcnNlTWVzc2FnZX0gZnJvbSAnLi91dGlscy9tZXNzYWdlLmpzJztcbmltcG9ydCB7d3NDbGllbnR9IGZyb20gJy4vdXRpbHMvd2Vic29ja2V0LmpzJztcblxuaW1wb3J0IHR5cGUge0NvbnRleHR9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2NvbnZlcnNhdGlvbnMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge01lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9tZXNzYWdlcy50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtXZWJzb2NrZXRUeXBpbmdUeXBlfSBmcm9tICcuLi90eXBlcy93ZWJzb2NrZXRzLnR5cGVzLmpzJztcblxuaW50ZXJmYWNlIFdlYnNvY2tldEV2ZW50IHtcbiAgcmVhZG9ubHkgYm9keT86IHN0cmluZyB8IG51bGw7XG4gIHJlYWRvbmx5IG11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4gfCBudWxsO1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IHwgbnVsbDtcbiAgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ6IHtcbiAgICByZWFkb25seSBjb25uZWN0aW9uSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBldmVudFR5cGU6IHN0cmluZztcbiAgfTtcbn1cblxuY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IHtzdGF0dXNDb2RlOiAyMDB9O1xuY29uc3QgZXJyb3JTdGF0dXMgPSB7c3RhdHVzQ29kZTogNTAwfTtcbmNvbnN0IHtBUkFOR09EQl9EQVRBQkFTRTogZGF0YWJhc2VOYW1lfSA9IHByb2Nlc3MuZW52O1xuY29uc3QgZ2V0QmFzaWNDb250ZXh0ID0gKHVzZXJJZDogc3RyaW5nKTogQXBpQ29udGV4dCA9PiAoe1xuICBjb25maWc6IENvbmZpZy5nZXQoKSxcbiAgZGF0YWJhc2VOYW1lLFxuICBzZXNzaW9uOiB7dXNlcklkfVxufSk7XG5cbmNvbnN0IHJlc29sdmVTZXNzaW9uSWRlbnRpdHkgPSAoe1xuICBwZXJzb25hSWQsXG4gIHRva2VuLFxuICB1c2VySWRcbn06IHtcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbj86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xufSk6IHtwZXJzb25hSWQ/OiBzdHJpbmc7IHVzZXJJZD86IHN0cmluZ30gPT4ge1xuICBpZih0b2tlbikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXNzaW9uID0gZ2V0U2Vzc2lvbih0b2tlbikgfHwge307XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlcnNvbmFJZDogU3RyaW5nKHBlcnNvbmFJZCB8fCAoc2Vzc2lvbiBhcyBhbnkpPy5wZXJzb25hSWQgfHwgJycpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlcklkOiBTdHJpbmcoKHNlc3Npb24gYXMgYW55KT8udXNlcklkIHx8ICcnKSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfSBjYXRjaChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ2ludmFsaWRfc2Vzc2lvbic7XG5cbiAgICAgIGNvbnNvbGUud2FybigncmVzb2x2ZVNlc3Npb25JZGVudGl0eTo6aW52YWxpZFRva2VuJywge21lc3NhZ2V9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlcnNvbmFJZDogU3RyaW5nKHBlcnNvbmFJZCB8fCAnJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICB1c2VySWRcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwZXJzb25hSWQ6IFN0cmluZyhwZXJzb25hSWQgfHwgJycpIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySWRcbiAgfTtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyQ29ubmVjdGlvbiA9IGFzeW5jICh7XG4gIGNsaWVudElkLFxuICBjb25uZWN0aW9uSWQsXG4gIHBlcnNvbmFJZCxcbiAgdG9rZW4sXG4gIHVzZXJJZFxufToge1xuICByZWFkb25seSBjbGllbnRJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29ubmVjdGlvbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBlcnNvbmFJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbn0pID0+IHtcbiAgY29uc3Qge3BlcnNvbmFJZDogbmV4dFBlcnNvbmFJZCwgdXNlcklkOiBuZXh0VXNlcklkfSA9IHJlc29sdmVTZXNzaW9uSWRlbnRpdHkoe3BlcnNvbmFJZCwgdG9rZW4sIHVzZXJJZH0pO1xuXG4gIGlmKCFuZXh0VXNlcklkKSB7XG4gICAgY29uc29sZS5sb2coJ3dlYnNvY2tldDo6cmVnaXN0ZXJDb25uZWN0aW9uOjptaXNzaW5nVXNlcicsIHtjb25uZWN0aW9uSWQsIG5leHRQZXJzb25hSWR9KTtcbiAgICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCd3ZWJzb2NrZXQ6OnJlZ2lzdGVyQ29ubmVjdGlvbicsIHtcbiAgICBjbGllbnRJZCxcbiAgICBjb25uZWN0aW9uSWQsXG4gICAgcGVyc29uYUlkOiBuZXh0UGVyc29uYUlkLFxuICAgIHVzZXJJZDogbmV4dFVzZXJJZFxuICB9KTtcbiAgYXdhaXQgYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uSWQsIG5leHRVc2VySWQsIG5leHRQZXJzb25hSWQgfHwgJycsIFN0cmluZyhjbGllbnRJZCB8fCAnJykpO1xuICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbn07XG5cbmNvbnN0IGdldENvbm5lY3Rpb25JZGVudGl0eSA9IGFzeW5jIChjb25uZWN0aW9uSWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBjb25uZWN0aW9uID0gYXdhaXQgZ2V0Q29ubmVjdGlvbkJ5SWQoY29ubmVjdGlvbklkKTtcbiAgY29uc3QgdXNlcklkID0gY29ubmVjdGlvbj8udXNlcklkO1xuXG4gIGlmKCF1c2VySWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gbm90IGZvdW5kJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBlcnNvbmFJZDogU3RyaW5nKGNvbm5lY3Rpb24/LnBlcnNvbmFJZCB8fCAnJyksXG4gICAgdXNlcklkXG4gIH07XG59O1xuXG5jb25zdCBnZXRDb252ZXJzYXRpb25Vc2VycyA9IGFzeW5jIChjb25uZWN0aW9uSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCB7cGVyc29uYUlkLCB1c2VySWR9ID0gYXdhaXQgZ2V0Q29ubmVjdGlvbklkZW50aXR5KGNvbm5lY3Rpb25JZCk7XG4gIGNvbnN0IGF1dGhDb250ZXh0ID0gZ2V0QmFzaWNDb250ZXh0KHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IGdldENvbnZlcnNhdGlvbkJ5SWQoYXV0aENvbnRleHQsIGNvbnZlcnNhdGlvbklkKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnZlcnNhdGlvbixcbiAgICBwZXJzb25hSWQsXG4gICAgdXNlcklkXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY29ubmVjdEhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IFdlYnNvY2tldEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdjb25uZWN0SGFuZGxlcjo6ZXZlbnQnLCBldmVudCk7XG4gIGNvbnNvbGUubG9nKCdjb25uZWN0SGFuZGxlcjo6Y29udGV4dCcsIGNvbnRleHQpO1xuICBhd2FpdCB3c0NsaWVudC5zZXR1cENsaWVudChldmVudCk7XG4gIGNvbnN0IHtyZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZCwgZXZlbnRUeXBlfSA9IHJlcXVlc3RDb250ZXh0O1xuICBjb25zdCBjbGllbnRJZCA9IGV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8uY2xpZW50SWQgfHwgZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8uY2xpZW50SWQ/LlswXTtcbiAgY29uc3QgcGVyc29uYUlkID0gZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy5wZXJzb25hSWQgfHwgZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8ucGVyc29uYUlkPy5bMF07XG4gIGNvbnN0IHRva2VuID0gZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy50b2tlbiB8fCBldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy50b2tlbj8uWzBdO1xuICBjb25zdCB1c2VySWQgPSBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnM/LnVzZXJJZCB8fCBldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPy51c2VySWQ/LlswXTtcblxuICB0cnkge1xuICAgIGlmKGV2ZW50VHlwZSA9PT0gJ0NPTk5FQ1QnKSB7XG4gICAgICByZXR1cm4gcmVnaXN0ZXJDb25uZWN0aW9uKHtjbGllbnRJZCwgY29ubmVjdGlvbklkLCBwZXJzb25hSWQsIHRva2VuLCB1c2VySWR9KTtcbiAgICB9IGVsc2UgaWYoZXZlbnRUeXBlID09PSAnRElTQ09OTkVDVCcpIHtcbiAgICAgIGF3YWl0IHJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICAgIHJldHVybiBzdWNjZXNzU3RhdHVzO1xuICAgIH1cblxuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6ICdVbmtub3duIHR5cGUnfTtcbiAgfSBjYXRjaChlcnJvcjogdW5rbm93bikge1xuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVySGFuZGxlciA9IGFzeW5jIChldmVudDogV2Vic29ja2V0RXZlbnQpID0+IHtcbiAgYXdhaXQgd3NDbGllbnQuc2V0dXBDbGllbnQoZXZlbnQpO1xuICBjb25zdCB7Ym9keSwgcmVxdWVzdENvbnRleHR9ID0gZXZlbnQ7XG4gIGNvbnN0IHtjb25uZWN0aW9uSWR9ID0gcmVxdWVzdENvbnRleHQ7XG4gIGNvbnN0IG1lc3NhZ2VCb2R5ID0gdHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShib2R5KSA6IGJvZHk7XG4gIGNvbnN0IGNsaWVudElkID0gU3RyaW5nKG1lc3NhZ2VCb2R5Py5kYXRhPy5jbGllbnRJZCB8fCBtZXNzYWdlQm9keT8uY2xpZW50SWQgfHwgJycpO1xuICBjb25zdCBwZXJzb25hSWQgPSBTdHJpbmcobWVzc2FnZUJvZHk/LmRhdGE/LnBlcnNvbmFJZCB8fCBtZXNzYWdlQm9keT8ucGVyc29uYUlkIHx8ICcnKTtcbiAgY29uc3QgdG9rZW4gPSBTdHJpbmcobWVzc2FnZUJvZHk/LmRhdGE/LnRva2VuIHx8IG1lc3NhZ2VCb2R5Py50b2tlbiB8fCAnJyk7XG4gIGNvbnN0IHVzZXJJZCA9IFN0cmluZyhtZXNzYWdlQm9keT8uZGF0YT8udXNlcklkIHx8IG1lc3NhZ2VCb2R5Py51c2VySWQgfHwgJycpO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlZ2lzdGVyQ29ubmVjdGlvbih7XG4gICAgICBjbGllbnRJZDogY2xpZW50SWQgfHwgdW5kZWZpbmVkLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgcGVyc29uYUlkOiBwZXJzb25hSWQgfHwgdW5kZWZpbmVkLFxuICAgICAgdG9rZW46IHRva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgIHVzZXJJZDogdXNlcklkIHx8IHVuZGVmaW5lZFxuICAgIH0pO1xuICB9IGNhdGNoKGVycm9yOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IFdlYnNvY2tldEV2ZW50KSA9PiB7XG4gIGF3YWl0IHdzQ2xpZW50LnNldHVwQ2xpZW50KGV2ZW50KTtcbiAgYXdhaXQgd3NDbGllbnQuc2VuZChldmVudCwge1xuICAgIGV2ZW50OiAnZXJyb3InLFxuICAgIG1lc3NhZ2U6ICdpbnZhbGlkIGFjdGlvbiB0eXBlJ1xuICB9KTtcblxuICByZXR1cm4gc3VjY2Vzc1N0YXR1cztcbn07XG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlSGFuZGxlciA9IGFzeW5jIChldmVudDogV2Vic29ja2V0RXZlbnQpID0+IHtcbiAgYXdhaXQgd3NDbGllbnQuc2V0dXBDbGllbnQoZXZlbnQpO1xuICBjb25zdCB7Ym9keSwgcmVxdWVzdENvbnRleHR9ID0gZXZlbnQ7XG4gIGNvbnN0IHtjb25uZWN0aW9uSWR9ID0gcmVxdWVzdENvbnRleHQ7XG4gIGNvbnN0IG1lc3NhZ2VCb2R5ID0gdHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShib2R5KSA6IGJvZHk7XG4gIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gbWVzc2FnZUJvZHk/LmRhdGE7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbklkID0gU3RyaW5nKG1lc3NhZ2U/LmNvbnZlcnNhdGlvbklkIHx8ICcnKTtcbiAgY29uc3Qge2NvbnRlbnR9ID0gbWVzc2FnZTtcbiAgY29uc3QgZm9ybWF0Q29udGVudCA9IHBhcnNlTWVzc2FnZShjb250ZW50IHx8ICcnKTtcblxuICBpZighY29udmVyc2F0aW9uSWQpIHtcbiAgICByZXR1cm4gey4uLmVycm9yU3RhdHVzLCBtZXNzYWdlOiAnTWlzc2luZyBjb252ZXJzYXRpb24gSUQnfTtcbiAgfVxuXG4gIGxldCB1c2VySWQgPSAnJztcbiAgbGV0IHVzZXJzOiBBcnJheTxVc2VyVHlwZT4gPSBbXTtcbiAgbGV0IGN1cnJlbnRVc2VyOiBVc2VyVHlwZSB8IHVuZGVmaW5lZDtcbiAgbGV0IGN1cnJlbnRQZXJzb25hSWQgPSAnJztcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBnZXRDb252ZXJzYXRpb25Vc2Vycyhjb25uZWN0aW9uSWQsIGNvbnZlcnNhdGlvbklkKTtcbiAgICB1c2VySWQgPSBTdHJpbmcocmVzdWx0cy51c2VySWQgfHwgJycpO1xuICAgIGN1cnJlbnRQZXJzb25hSWQgPSBTdHJpbmcocmVzdWx0cy5wZXJzb25hSWQgfHwgJycpO1xuICAgIHVzZXJzID0gQXJyYXkuaXNBcnJheShyZXN1bHRzLmNvbnZlcnNhdGlvbj8udXNlcnMpID8gcmVzdWx0cy5jb252ZXJzYXRpb24udXNlcnMgOiBbXTtcbiAgICBjdXJyZW50VXNlciA9IHVzZXJzLmZpbmQoKHVzZXIpID0+IHtcbiAgICAgIGNvbnN0IG5leHRVc2VySWQgPSBTdHJpbmcodXNlcj8udXNlcklkIHx8IHVzZXI/Ll9rZXkgfHwgJycpO1xuICAgICAgY29uc3QgbmV4dFBlcnNvbmFJZCA9IFN0cmluZyh1c2VyPy5wZXJzb25hSWQgfHwgJycpO1xuXG4gICAgICBpZihjdXJyZW50UGVyc29uYUlkICYmIG5leHRQZXJzb25hSWQpIHtcbiAgICAgICAgcmV0dXJuIG5leHRVc2VySWQgPT09IHVzZXJJZCAmJiBuZXh0UGVyc29uYUlkID09PSBjdXJyZW50UGVyc29uYUlkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV4dFVzZXJJZCA9PT0gdXNlcklkO1xuICAgIH0pO1xuICB9IGNhdGNoKGVycm9yOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQ29ubmVjdGlvbiBub3QgZm91bmQnfTtcbiAgfVxuXG4gIGF3YWl0IFByb21pc2UuYWxsKHVzZXJzLm1hcChhc3luYyAodXNlcikgPT4ge1xuICAgIGNvbnN0IG5leHRVc2VySWQgPSBTdHJpbmcodXNlcj8uX2tleSB8fCB1c2VyPy51c2VySWQgfHwgJycpO1xuICAgIGNvbnN0IG5leHRQZXJzb25hSWQgPSBTdHJpbmcodXNlcj8ucGVyc29uYUlkIHx8ICcnKTtcbiAgICBjb25zdCBjb25uZWN0aW9uUmVjb3JkcyA9IG5leHRQZXJzb25hSWRcbiAgICAgID8gYXdhaXQgZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEobmV4dFBlcnNvbmFJZClcbiAgICAgIDogKG5leHRVc2VySWQgPyBhd2FpdCBnZXRDb25uZWN0aW9uc0J5VXNlcihuZXh0VXNlcklkKSA6IFtdKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbm5lY3Rpb25SZWNvcmRzLm1hcChhc3luYyAoY29ubmVjdGlvblJlY29yZCkgPT4ge1xuICAgICAgY29uc3Qgc29ja2V0SWQgPSBjb25uZWN0aW9uUmVjb3JkPy5zb2NrZXRJZCB8fCBjb25uZWN0aW9uUmVjb3JkPy5jb25uZWN0aW9uSWQ7XG5cbiAgICAgIGlmKHNvY2tldElkKSB7XG4gICAgICAgIGF3YWl0IHdzQ2xpZW50LnNlbmQoc29ja2V0SWQsIHtcbiAgICAgICAgICBhY3Rpb246ICdtZXNzYWdlLmNyZWF0ZWQnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgICAgYWRkZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGZvcm1hdENvbnRlbnQsXG4gICAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgICAgICBtb2RpZmllZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICAgIGltYWdlVXJsOiBTdHJpbmcoY3VycmVudFVzZXI/LmltYWdlVXJsIHx8ICcnKSxcbiAgICAgICAgICAgICAgICBuYW1lOiBTdHJpbmcoY3VycmVudFVzZXI/Lm5hbWUgfHwgJycpLFxuICAgICAgICAgICAgICAgIHBlcnNvbmFJZDogU3RyaW5nKGN1cnJlbnRVc2VyPy5wZXJzb25hSWQgfHwgJycpLFxuICAgICAgICAgICAgICAgIHRodW1iVXJsOiBTdHJpbmcoY3VycmVudFVzZXI/LnRodW1iVXJsIHx8ICcnKSxcbiAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IFN0cmluZyhjdXJyZW50VXNlcj8udXNlcm5hbWUgfHwgJycpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZXJJZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9KSk7XG5cbiAgcmV0dXJuIHN1Y2Nlc3NTdGF0dXM7XG59O1xuXG5leHBvcnQgY29uc3QgdHlwaW5nSGFuZGxlciA9IGFzeW5jIChldmVudDogV2Vic29ja2V0RXZlbnQpID0+IHtcbiAgYXdhaXQgd3NDbGllbnQuc2V0dXBDbGllbnQoZXZlbnQpO1xuICBjb25zdCB7Ym9keSwgcmVxdWVzdENvbnRleHR9ID0gZXZlbnQ7XG4gIGNvbnN0IHtjb25uZWN0aW9uSWR9ID0gcmVxdWVzdENvbnRleHQ7XG4gIGNvbnN0IG1lc3NhZ2VCb2R5ID0gdHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShib2R5KSA6IGJvZHk7XG4gIGNvbnN0IHR5cGluZzogV2Vic29ja2V0VHlwaW5nVHlwZSA9IG1lc3NhZ2VCb2R5Py5kYXRhIHx8IHt9O1xuICBjb25zdCBjb252ZXJzYXRpb25JZCA9IFN0cmluZyh0eXBpbmc/LmNvbnZlcnNhdGlvbklkIHx8ICcnKTtcbiAgY29uc3QgaXNUeXBpbmcgPSBCb29sZWFuKHR5cGluZz8uaXNUeXBpbmcpO1xuICBsZXQgdXNlcnM6IEFycmF5PFVzZXJUeXBlPiA9IFtdO1xuXG4gIGlmKCFjb252ZXJzYXRpb25JZCkge1xuICAgIHJldHVybiB7Li4uZXJyb3JTdGF0dXMsIG1lc3NhZ2U6ICdNaXNzaW5nIGNvbnZlcnNhdGlvbiBJRCd9O1xuICB9XG5cbiAgbGV0IHVzZXJJZCA9ICcnO1xuICBsZXQgY3VycmVudFVzZXI6IFVzZXJUeXBlIHwgdW5kZWZpbmVkO1xuICBsZXQgY3VycmVudFBlcnNvbmFJZCA9ICcnO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY29ubmVjdGlvbklkZW50aXR5ID0gYXdhaXQgZ2V0Q29ubmVjdGlvbklkZW50aXR5KGNvbm5lY3Rpb25JZCk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uUmVzdWx0cyA9IGF3YWl0IGdldENvbnZlcnNhdGlvblVzZXJzKGNvbm5lY3Rpb25JZCwgY29udmVyc2F0aW9uSWQpO1xuICAgIHVzZXJzID0gQXJyYXkuaXNBcnJheSgoY29udmVyc2F0aW9uUmVzdWx0cy5jb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZSk/LnVzZXJzKVxuICAgICAgPyAoKGNvbnZlcnNhdGlvblJlc3VsdHMuY29udmVyc2F0aW9uIGFzIENvbnZlcnNhdGlvblR5cGUpLnVzZXJzIHx8IFtdKSBhcyBVc2VyVHlwZVtdXG4gICAgICA6IFtdO1xuICAgIHVzZXJJZCA9IFN0cmluZyhjb25uZWN0aW9uSWRlbnRpdHkudXNlcklkIHx8ICcnKTtcbiAgICBjdXJyZW50UGVyc29uYUlkID0gU3RyaW5nKGNvbm5lY3Rpb25JZGVudGl0eS5wZXJzb25hSWQgfHwgdHlwaW5nPy5wZXJzb25hSWQgfHwgJycpO1xuICAgIGN1cnJlbnRVc2VyID0gdXNlcnMuZmluZCgodXNlcikgPT4ge1xuICAgICAgY29uc3QgbmV4dFVzZXJJZCA9IFN0cmluZyh1c2VyPy51c2VySWQgfHwgdXNlcj8uX2tleSB8fCAnJyk7XG4gICAgICBjb25zdCBuZXh0UGVyc29uYUlkID0gU3RyaW5nKHVzZXI/LnBlcnNvbmFJZCB8fCAnJyk7XG5cbiAgICAgIGlmKGN1cnJlbnRQZXJzb25hSWQgJiYgbmV4dFBlcnNvbmFJZCkge1xuICAgICAgICByZXR1cm4gbmV4dFVzZXJJZCA9PT0gdXNlcklkICYmIG5leHRQZXJzb25hSWQgPT09IGN1cnJlbnRQZXJzb25hSWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0VXNlcklkID09PSB1c2VySWQ7XG4gICAgfSk7XG4gICAgY3VycmVudFBlcnNvbmFJZCA9IFN0cmluZyhjdXJyZW50UGVyc29uYUlkIHx8IGN1cnJlbnRVc2VyPy5wZXJzb25hSWQgfHwgJycpO1xuICB9IGNhdGNoKGVycm9yOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQ29ubmVjdGlvbiBub3QgZm91bmQnfTtcbiAgfVxuXG4gIGF3YWl0IFByb21pc2UuYWxsKHVzZXJzLm1hcChhc3luYyAodXNlcikgPT4ge1xuICAgIGNvbnN0IG5leHRVc2VySWQgPSBTdHJpbmcodXNlcj8uX2tleSB8fCB1c2VyPy51c2VySWQgfHwgJycpO1xuICAgIGNvbnN0IG5leHRQZXJzb25hSWQgPSBTdHJpbmcodXNlcj8ucGVyc29uYUlkIHx8ICcnKTtcblxuICAgIGlmKCFuZXh0VXNlcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoY3VycmVudFBlcnNvbmFJZCAmJiBuZXh0UGVyc29uYUlkICYmIG5leHRQZXJzb25hSWQgPT09IGN1cnJlbnRQZXJzb25hSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZighY3VycmVudFBlcnNvbmFJZCAmJiBuZXh0VXNlcklkID09PSB1c2VySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb25uZWN0aW9uUmVjb3JkcyA9IG5leHRQZXJzb25hSWRcbiAgICAgID8gYXdhaXQgZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEobmV4dFBlcnNvbmFJZClcbiAgICAgIDogYXdhaXQgZ2V0Q29ubmVjdGlvbnNCeVVzZXIobmV4dFVzZXJJZCk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChjb25uZWN0aW9uUmVjb3Jkcy5tYXAoYXN5bmMgKGNvbm5lY3Rpb25SZWNvcmQpID0+IHtcbiAgICAgIGNvbnN0IHNvY2tldElkID0gY29ubmVjdGlvblJlY29yZD8uc29ja2V0SWQgfHwgY29ubmVjdGlvblJlY29yZD8uY29ubmVjdGlvbklkO1xuXG4gICAgICBpZihzb2NrZXRJZCkge1xuICAgICAgICBhd2FpdCB3c0NsaWVudC5zZW5kKHNvY2tldElkLCB7XG4gICAgICAgICAgYWN0aW9uOiAnbWVzc2FnZS50eXBpbmcnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGluZzoge1xuICAgICAgICAgICAgICBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgICAgICAgaXNUeXBpbmcsXG4gICAgICAgICAgICAgIG5hbWU6IFN0cmluZyh0eXBpbmc/Lm5hbWUgfHwgY3VycmVudFVzZXI/Lm5hbWUgfHwgJycpLFxuICAgICAgICAgICAgICBwZXJzb25hSWQ6IGN1cnJlbnRQZXJzb25hSWQsXG4gICAgICAgICAgICAgIHVwZGF0ZWRBdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgICB1c2VybmFtZTogU3RyaW5nKHR5cGluZz8udXNlcm5hbWUgfHwgY3VycmVudFVzZXI/LnVzZXJuYW1lIHx8ICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9KSk7XG5cbiAgcmV0dXJuIHN1Y2Nlc3NTdGF0dXM7XG59O1xuIl0sIm5hbWVzIjpbImdldENvbnZlcnNhdGlvbkJ5SWQiLCJDb25maWciLCJnZXRTZXNzaW9uIiwiYWRkQ29ubmVjdGlvbiIsImdldENvbm5lY3Rpb25CeUlkIiwiZ2V0Q29ubmVjdGlvbnNCeVBlcnNvbmEiLCJnZXRDb25uZWN0aW9uc0J5VXNlciIsInJlbW92ZUNvbm5lY3Rpb24iLCJwYXJzZU1lc3NhZ2UiLCJ3c0NsaWVudCIsInN1Y2Nlc3NTdGF0dXMiLCJzdGF0dXNDb2RlIiwiZXJyb3JTdGF0dXMiLCJBUkFOR09EQl9EQVRBQkFTRSIsImRhdGFiYXNlTmFtZSIsInByb2Nlc3MiLCJlbnYiLCJnZXRCYXNpY0NvbnRleHQiLCJ1c2VySWQiLCJjb25maWciLCJnZXQiLCJzZXNzaW9uIiwicmVzb2x2ZVNlc3Npb25JZGVudGl0eSIsInBlcnNvbmFJZCIsInRva2VuIiwiU3RyaW5nIiwidW5kZWZpbmVkIiwiZXJyb3IiLCJtZXNzYWdlIiwiRXJyb3IiLCJjb25zb2xlIiwid2FybiIsInJlZ2lzdGVyQ29ubmVjdGlvbiIsImNsaWVudElkIiwiY29ubmVjdGlvbklkIiwibmV4dFBlcnNvbmFJZCIsIm5leHRVc2VySWQiLCJsb2ciLCJnZXRDb25uZWN0aW9uSWRlbnRpdHkiLCJjb25uZWN0aW9uIiwiZ2V0Q29udmVyc2F0aW9uVXNlcnMiLCJjb252ZXJzYXRpb25JZCIsImF1dGhDb250ZXh0IiwiY29udmVyc2F0aW9uIiwiY29ubmVjdEhhbmRsZXIiLCJldmVudCIsImNvbnRleHQiLCJzZXR1cENsaWVudCIsInJlcXVlc3RDb250ZXh0IiwiZXZlbnRUeXBlIiwicXVlcnlTdHJpbmdQYXJhbWV0ZXJzIiwibXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyIsInJlZ2lzdGVySGFuZGxlciIsImJvZHkiLCJtZXNzYWdlQm9keSIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJkZWZhdWx0SGFuZGxlciIsInNlbmQiLCJtZXNzYWdlSGFuZGxlciIsImNvbnRlbnQiLCJmb3JtYXRDb250ZW50IiwidXNlcnMiLCJjdXJyZW50VXNlciIsImN1cnJlbnRQZXJzb25hSWQiLCJyZXN1bHRzIiwiQXJyYXkiLCJpc0FycmF5IiwiZmluZCIsInVzZXIiLCJfa2V5IiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbm5lY3Rpb25SZWNvcmRzIiwiY29ubmVjdGlvblJlY29yZCIsInNvY2tldElkIiwiYWN0aW9uIiwiYWRkZWQiLCJEYXRlIiwibm93IiwibW9kaWZpZWQiLCJpbWFnZVVybCIsIm5hbWUiLCJ0aHVtYlVybCIsInVzZXJuYW1lIiwidHlwaW5nSGFuZGxlciIsInR5cGluZyIsImlzVHlwaW5nIiwiQm9vbGVhbiIsImNvbm5lY3Rpb25JZGVudGl0eSIsImNvbnZlcnNhdGlvblJlc3VsdHMiLCJ1cGRhdGVkQXQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLG1CQUFtQixRQUFPLDhCQUE4QjtBQUNoRSxTQUFRQyxNQUFNLFFBQU8sZUFBZTtBQUNwQyxTQUFRQyxVQUFVLFFBQU8sMkJBQTJCO0FBQ3BELFNBQ0VDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ2pCQyx1QkFBdUIsRUFDdkJDLG9CQUFvQixFQUNwQkMsZ0JBQWdCLFFBQ1gsMEJBQTBCO0FBQ2pDLFNBQVFDLFlBQVksUUFBTyxxQkFBcUI7QUFDaEQsU0FBUUMsUUFBUSxRQUFPLHVCQUF1QjtBQW1COUMsTUFBTUMsZ0JBQWdCO0lBQUNDLFlBQVk7QUFBRztBQUN0QyxNQUFNQyxjQUFjO0lBQUNELFlBQVk7QUFBRztBQUNwQyxNQUFNLEVBQUNFLG1CQUFtQkMsWUFBWSxFQUFDLEdBQUdDLFFBQVFDLEdBQUc7QUFDckQsTUFBTUMsa0JBQWtCLENBQUNDLFNBQWdDLENBQUE7UUFDdkRDLFFBQVFsQixPQUFPbUIsR0FBRztRQUNsQk47UUFDQU8sU0FBUztZQUFDSDtRQUFNO0lBQ2xCLENBQUE7QUFFQSxNQUFNSSx5QkFBeUIsQ0FBQyxFQUM5QkMsU0FBUyxFQUNUQyxLQUFLLEVBQ0xOLE1BQU0sRUFLUDtJQUNDLElBQUdNLE9BQU87UUFDUixJQUFJO1lBQ0YsTUFBTUgsVUFBVW5CLFdBQVdzQixVQUFVLENBQUM7WUFFdEMsT0FBTztnQkFDTEQsV0FBV0UsT0FBT0YsYUFBY0YsU0FBaUJFLGFBQWEsT0FBT0c7Z0JBQ3JFUixRQUFRTyxPQUFPLEFBQUNKLFNBQWlCSCxVQUFVLE9BQU9RO1lBQ3BEO1FBQ0YsRUFBRSxPQUFNQyxPQUFnQjtZQUN0QixNQUFNQyxVQUFVRCxpQkFBaUJFLFFBQVFGLE1BQU1DLE9BQU8sR0FBRztZQUV6REUsUUFBUUMsSUFBSSxDQUFDLHdDQUF3QztnQkFBQ0g7WUFBTztZQUM3RCxPQUFPO2dCQUNMTCxXQUFXRSxPQUFPRixhQUFhLE9BQU9HO2dCQUN0Q1I7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xLLFdBQVdFLE9BQU9GLGFBQWEsT0FBT0c7UUFDdENSO0lBQ0Y7QUFDRjtBQUVBLE1BQU1jLHFCQUFxQixPQUFPLEVBQ2hDQyxRQUFRLEVBQ1JDLFlBQVksRUFDWlgsU0FBUyxFQUNUQyxLQUFLLEVBQ0xOLE1BQU0sRUFPUDtJQUNDLE1BQU0sRUFBQ0ssV0FBV1ksYUFBYSxFQUFFakIsUUFBUWtCLFVBQVUsRUFBQyxHQUFHZCx1QkFBdUI7UUFBQ0M7UUFBV0M7UUFBT047SUFBTTtJQUV2RyxJQUFHLENBQUNrQixZQUFZO1FBQ2ROLFFBQVFPLEdBQUcsQ0FBQyw4Q0FBOEM7WUFBQ0g7WUFBY0M7UUFBYTtRQUN0RixPQUFPekI7SUFDVDtJQUVBb0IsUUFBUU8sR0FBRyxDQUFDLGlDQUFpQztRQUMzQ0o7UUFDQUM7UUFDQVgsV0FBV1k7UUFDWGpCLFFBQVFrQjtJQUNWO0lBQ0EsTUFBTWpDLGNBQWMrQixjQUFjRSxZQUFZRCxpQkFBaUIsSUFBSVYsT0FBT1EsWUFBWTtJQUN0RixPQUFPdkI7QUFDVDtBQUVBLE1BQU00Qix3QkFBd0IsT0FBT0o7SUFDbkMsTUFBTUssYUFBYSxNQUFNbkMsa0JBQWtCOEI7SUFDM0MsTUFBTWhCLFNBQVNxQixZQUFZckI7SUFFM0IsSUFBRyxDQUFDQSxRQUFRO1FBQ1YsTUFBTSxJQUFJVyxNQUFNO0lBQ2xCO0lBRUEsT0FBTztRQUNMTixXQUFXRSxPQUFPYyxZQUFZaEIsYUFBYTtRQUMzQ0w7SUFDRjtBQUNGO0FBRUEsTUFBTXNCLHVCQUF1QixPQUFPTixjQUFzQk87SUFDeEQsTUFBTSxFQUFDbEIsU0FBUyxFQUFFTCxNQUFNLEVBQUMsR0FBRyxNQUFNb0Isc0JBQXNCSjtJQUN4RCxNQUFNUSxjQUFjekIsZ0JBQWdCQztJQUNwQyxNQUFNeUIsZUFBZSxNQUFNM0Msb0JBQW9CMEMsYUFBYUQ7SUFFNUQsT0FBTztRQUNMRTtRQUNBcEI7UUFDQUw7SUFDRjtBQUNGO0FBRUEsT0FBTyxNQUFNMEIsaUJBQWlCLE9BQU9DLE9BQXVCQztJQUMxRGhCLFFBQVFPLEdBQUcsQ0FBQyx5QkFBeUJRO0lBQ3JDZixRQUFRTyxHQUFHLENBQUMsMkJBQTJCUztJQUN2QyxNQUFNckMsU0FBU3NDLFdBQVcsQ0FBQ0Y7SUFDM0IsTUFBTSxFQUFDRyxjQUFjLEVBQUMsR0FBR0g7SUFDekIsTUFBTSxFQUFDWCxZQUFZLEVBQUVlLFNBQVMsRUFBQyxHQUFHRDtJQUNsQyxNQUFNZixXQUFXWSxNQUFNSyxxQkFBcUIsRUFBRWpCLFlBQVlZLE1BQU1NLCtCQUErQixFQUFFbEIsVUFBVSxDQUFDLEVBQUU7SUFDOUcsTUFBTVYsWUFBWXNCLE1BQU1LLHFCQUFxQixFQUFFM0IsYUFBYXNCLE1BQU1NLCtCQUErQixFQUFFNUIsV0FBVyxDQUFDLEVBQUU7SUFDakgsTUFBTUMsUUFBUXFCLE1BQU1LLHFCQUFxQixFQUFFMUIsU0FBU3FCLE1BQU1NLCtCQUErQixFQUFFM0IsT0FBTyxDQUFDLEVBQUU7SUFDckcsTUFBTU4sU0FBUzJCLE1BQU1LLHFCQUFxQixFQUFFaEMsVUFBVTJCLE1BQU1NLCtCQUErQixFQUFFakMsUUFBUSxDQUFDLEVBQUU7SUFFeEcsSUFBSTtRQUNGLElBQUcrQixjQUFjLFdBQVc7WUFDMUIsT0FBT2pCLG1CQUFtQjtnQkFBQ0M7Z0JBQVVDO2dCQUFjWDtnQkFBV0M7Z0JBQU9OO1lBQU07UUFDN0UsT0FBTyxJQUFHK0IsY0FBYyxjQUFjO1lBQ3BDLE1BQU0xQyxpQkFBaUIyQjtZQUN2QixPQUFPeEI7UUFDVDtRQUVBLE9BQU87WUFBQyxHQUFHRSxXQUFXO1lBQUVnQixTQUFTO1FBQWM7SUFDakQsRUFBRSxPQUFNRCxPQUFnQjtRQUN0QixPQUFPO1lBQUMsR0FBR2YsV0FBVztZQUFFZ0IsU0FBU0QsaUJBQWlCRSxRQUFRRixNQUFNQyxPQUFPLEdBQUc7UUFBZTtJQUMzRjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU13QixrQkFBa0IsT0FBT1A7SUFDcEMsTUFBTXBDLFNBQVNzQyxXQUFXLENBQUNGO0lBQzNCLE1BQU0sRUFBQ1EsSUFBSSxFQUFFTCxjQUFjLEVBQUMsR0FBR0g7SUFDL0IsTUFBTSxFQUFDWCxZQUFZLEVBQUMsR0FBR2M7SUFDdkIsTUFBTU0sY0FBYyxPQUFPRCxTQUFTLFdBQVdFLEtBQUtDLEtBQUssQ0FBQ0gsUUFBUUE7SUFDbEUsTUFBTXBCLFdBQVdSLE9BQU82QixhQUFhRyxNQUFNeEIsWUFBWXFCLGFBQWFyQixZQUFZO0lBQ2hGLE1BQU1WLFlBQVlFLE9BQU82QixhQUFhRyxNQUFNbEMsYUFBYStCLGFBQWEvQixhQUFhO0lBQ25GLE1BQU1DLFFBQVFDLE9BQU82QixhQUFhRyxNQUFNakMsU0FBUzhCLGFBQWE5QixTQUFTO0lBQ3ZFLE1BQU1OLFNBQVNPLE9BQU82QixhQUFhRyxNQUFNdkMsVUFBVW9DLGFBQWFwQyxVQUFVO0lBRTFFLElBQUk7UUFDRixPQUFPLE1BQU1jLG1CQUFtQjtZQUM5QkMsVUFBVUEsWUFBWVA7WUFDdEJRO1lBQ0FYLFdBQVdBLGFBQWFHO1lBQ3hCRixPQUFPQSxTQUFTRTtZQUNoQlIsUUFBUUEsVUFBVVE7UUFDcEI7SUFDRixFQUFFLE9BQU1DLE9BQWdCO1FBQ3RCLE9BQU87WUFBQyxHQUFHZixXQUFXO1lBQUVnQixTQUFTRCxpQkFBaUJFLFFBQVFGLE1BQU1DLE9BQU8sR0FBRztRQUFlO0lBQzNGO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTThCLGlCQUFpQixPQUFPYjtJQUNuQyxNQUFNcEMsU0FBU3NDLFdBQVcsQ0FBQ0Y7SUFDM0IsTUFBTXBDLFNBQVNrRCxJQUFJLENBQUNkLE9BQU87UUFDekJBLE9BQU87UUFDUGpCLFNBQVM7SUFDWDtJQUVBLE9BQU9sQjtBQUNULEVBQUU7QUFFRixPQUFPLE1BQU1rRCxpQkFBaUIsT0FBT2Y7SUFDbkMsTUFBTXBDLFNBQVNzQyxXQUFXLENBQUNGO0lBQzNCLE1BQU0sRUFBQ1EsSUFBSSxFQUFFTCxjQUFjLEVBQUMsR0FBR0g7SUFDL0IsTUFBTSxFQUFDWCxZQUFZLEVBQUMsR0FBR2M7SUFDdkIsTUFBTU0sY0FBYyxPQUFPRCxTQUFTLFdBQVdFLEtBQUtDLEtBQUssQ0FBQ0gsUUFBUUE7SUFDbEUsTUFBTXpCLFVBQXVCMEIsYUFBYUc7SUFDMUMsTUFBTWhCLGlCQUFpQmhCLE9BQU9HLFNBQVNhLGtCQUFrQjtJQUN6RCxNQUFNLEVBQUNvQixPQUFPLEVBQUMsR0FBR2pDO0lBQ2xCLE1BQU1rQyxnQkFBZ0J0RCxhQUFhcUQsV0FBVztJQUU5QyxJQUFHLENBQUNwQixnQkFBZ0I7UUFDbEIsT0FBTztZQUFDLEdBQUc3QixXQUFXO1lBQUVnQixTQUFTO1FBQXlCO0lBQzVEO0lBRUEsSUFBSVYsU0FBUztJQUNiLElBQUk2QyxRQUF5QixFQUFFO0lBQy9CLElBQUlDO0lBQ0osSUFBSUMsbUJBQW1CO0lBRXZCLElBQUk7UUFDRixNQUFNQyxVQUFVLE1BQU0xQixxQkFBcUJOLGNBQWNPO1FBQ3pEdkIsU0FBU08sT0FBT3lDLFFBQVFoRCxNQUFNLElBQUk7UUFDbEMrQyxtQkFBbUJ4QyxPQUFPeUMsUUFBUTNDLFNBQVMsSUFBSTtRQUMvQ3dDLFFBQVFJLE1BQU1DLE9BQU8sQ0FBQ0YsUUFBUXZCLFlBQVksRUFBRW9CLFNBQVNHLFFBQVF2QixZQUFZLENBQUNvQixLQUFLLEdBQUcsRUFBRTtRQUNwRkMsY0FBY0QsTUFBTU0sSUFBSSxDQUFDLENBQUNDO1lBQ3hCLE1BQU1sQyxhQUFhWCxPQUFPNkMsTUFBTXBELFVBQVVvRCxNQUFNQyxRQUFRO1lBQ3hELE1BQU1wQyxnQkFBZ0JWLE9BQU82QyxNQUFNL0MsYUFBYTtZQUVoRCxJQUFHMEMsb0JBQW9COUIsZUFBZTtnQkFDcEMsT0FBT0MsZUFBZWxCLFVBQVVpQixrQkFBa0I4QjtZQUNwRDtZQUVBLE9BQU83QixlQUFlbEI7UUFDeEI7SUFDRixFQUFFLE9BQU1TLE9BQWdCO1FBQ3RCLE9BQU87WUFBQyxHQUFHZixXQUFXO1lBQUVnQixTQUFTRCxpQkFBaUJFLFFBQVFGLE1BQU1DLE9BQU8sR0FBRztRQUFzQjtJQUNsRztJQUVBLE1BQU00QyxRQUFRQyxHQUFHLENBQUNWLE1BQU1XLEdBQUcsQ0FBQyxPQUFPSjtRQUNqQyxNQUFNbEMsYUFBYVgsT0FBTzZDLE1BQU1DLFFBQVFELE1BQU1wRCxVQUFVO1FBQ3hELE1BQU1pQixnQkFBZ0JWLE9BQU82QyxNQUFNL0MsYUFBYTtRQUNoRCxNQUFNb0Qsb0JBQW9CeEMsZ0JBQ3RCLE1BQU05Qix3QkFBd0I4QixpQkFDN0JDLGFBQWEsTUFBTTlCLHFCQUFxQjhCLGNBQWMsRUFBRTtRQUU3RCxNQUFNb0MsUUFBUUMsR0FBRyxDQUFDRSxrQkFBa0JELEdBQUcsQ0FBQyxPQUFPRTtZQUM3QyxNQUFNQyxXQUFXRCxrQkFBa0JDLFlBQVlELGtCQUFrQjFDO1lBRWpFLElBQUcyQyxVQUFVO2dCQUNYLE1BQU1wRSxTQUFTa0QsSUFBSSxDQUFDa0IsVUFBVTtvQkFDNUJDLFFBQVE7b0JBQ1JyQixNQUFNO3dCQUNKN0IsU0FBUzs0QkFDUG1ELE9BQU9DLEtBQUtDLEdBQUc7NEJBQ2ZwQixTQUFTQzs0QkFDVHJCOzRCQUNBeUMsVUFBVUYsS0FBS0MsR0FBRzs0QkFDbEJYLE1BQU07Z0NBQ0phLFVBQVUxRCxPQUFPdUMsYUFBYW1CLFlBQVk7Z0NBQzFDQyxNQUFNM0QsT0FBT3VDLGFBQWFvQixRQUFRO2dDQUNsQzdELFdBQVdFLE9BQU91QyxhQUFhekMsYUFBYTtnQ0FDNUM4RCxVQUFVNUQsT0FBT3VDLGFBQWFxQixZQUFZO2dDQUMxQ25FO2dDQUNBb0UsVUFBVTdELE9BQU91QyxhQUFhc0IsWUFBWTs0QkFDNUM7NEJBQ0FwRTt3QkFDRjtvQkFDRjtnQkFDRjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLE9BQU9SO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTTZFLGdCQUFnQixPQUFPMUM7SUFDbEMsTUFBTXBDLFNBQVNzQyxXQUFXLENBQUNGO0lBQzNCLE1BQU0sRUFBQ1EsSUFBSSxFQUFFTCxjQUFjLEVBQUMsR0FBR0g7SUFDL0IsTUFBTSxFQUFDWCxZQUFZLEVBQUMsR0FBR2M7SUFDdkIsTUFBTU0sY0FBYyxPQUFPRCxTQUFTLFdBQVdFLEtBQUtDLEtBQUssQ0FBQ0gsUUFBUUE7SUFDbEUsTUFBTW1DLFNBQThCbEMsYUFBYUcsUUFBUSxDQUFDO0lBQzFELE1BQU1oQixpQkFBaUJoQixPQUFPK0QsUUFBUS9DLGtCQUFrQjtJQUN4RCxNQUFNZ0QsV0FBV0MsUUFBUUYsUUFBUUM7SUFDakMsSUFBSTFCLFFBQXlCLEVBQUU7SUFFL0IsSUFBRyxDQUFDdEIsZ0JBQWdCO1FBQ2xCLE9BQU87WUFBQyxHQUFHN0IsV0FBVztZQUFFZ0IsU0FBUztRQUF5QjtJQUM1RDtJQUVBLElBQUlWLFNBQVM7SUFDYixJQUFJOEM7SUFDSixJQUFJQyxtQkFBbUI7SUFFdkIsSUFBSTtRQUNGLE1BQU0wQixxQkFBcUIsTUFBTXJELHNCQUFzQko7UUFDdkQsTUFBTTBELHNCQUFzQixNQUFNcEQscUJBQXFCTixjQUFjTztRQUNyRXNCLFFBQVFJLE1BQU1DLE9BQU8sQ0FBRXdCLG9CQUFvQmpELFlBQVksRUFBdUJvQixTQUN6RSxBQUFDNkIsb0JBQW9CakQsWUFBWSxDQUFzQm9CLEtBQUssSUFBSSxFQUFFLEdBQ25FLEVBQUU7UUFDTjdDLFNBQVNPLE9BQU9rRSxtQkFBbUJ6RSxNQUFNLElBQUk7UUFDN0MrQyxtQkFBbUJ4QyxPQUFPa0UsbUJBQW1CcEUsU0FBUyxJQUFJaUUsUUFBUWpFLGFBQWE7UUFDL0V5QyxjQUFjRCxNQUFNTSxJQUFJLENBQUMsQ0FBQ0M7WUFDeEIsTUFBTWxDLGFBQWFYLE9BQU82QyxNQUFNcEQsVUFBVW9ELE1BQU1DLFFBQVE7WUFDeEQsTUFBTXBDLGdCQUFnQlYsT0FBTzZDLE1BQU0vQyxhQUFhO1lBRWhELElBQUcwQyxvQkFBb0I5QixlQUFlO2dCQUNwQyxPQUFPQyxlQUFlbEIsVUFBVWlCLGtCQUFrQjhCO1lBQ3BEO1lBRUEsT0FBTzdCLGVBQWVsQjtRQUN4QjtRQUNBK0MsbUJBQW1CeEMsT0FBT3dDLG9CQUFvQkQsYUFBYXpDLGFBQWE7SUFDMUUsRUFBRSxPQUFNSSxPQUFnQjtRQUN0QixPQUFPO1lBQUMsR0FBR2YsV0FBVztZQUFFZ0IsU0FBU0QsaUJBQWlCRSxRQUFRRixNQUFNQyxPQUFPLEdBQUc7UUFBc0I7SUFDbEc7SUFFQSxNQUFNNEMsUUFBUUMsR0FBRyxDQUFDVixNQUFNVyxHQUFHLENBQUMsT0FBT0o7UUFDakMsTUFBTWxDLGFBQWFYLE9BQU82QyxNQUFNQyxRQUFRRCxNQUFNcEQsVUFBVTtRQUN4RCxNQUFNaUIsZ0JBQWdCVixPQUFPNkMsTUFBTS9DLGFBQWE7UUFFaEQsSUFBRyxDQUFDYSxZQUFZO1lBQ2Q7UUFDRjtRQUVBLElBQUc2QixvQkFBb0I5QixpQkFBaUJBLGtCQUFrQjhCLGtCQUFrQjtZQUMxRTtRQUNGO1FBRUEsSUFBRyxDQUFDQSxvQkFBb0I3QixlQUFlbEIsUUFBUTtZQUM3QztRQUNGO1FBRUEsTUFBTXlELG9CQUFvQnhDLGdCQUN0QixNQUFNOUIsd0JBQXdCOEIsaUJBQzlCLE1BQU03QixxQkFBcUI4QjtRQUUvQixNQUFNb0MsUUFBUUMsR0FBRyxDQUFDRSxrQkFBa0JELEdBQUcsQ0FBQyxPQUFPRTtZQUM3QyxNQUFNQyxXQUFXRCxrQkFBa0JDLFlBQVlELGtCQUFrQjFDO1lBRWpFLElBQUcyQyxVQUFVO2dCQUNYLE1BQU1wRSxTQUFTa0QsSUFBSSxDQUFDa0IsVUFBVTtvQkFDNUJDLFFBQVE7b0JBQ1JyQixNQUFNO3dCQUNKK0IsUUFBUTs0QkFDTi9DOzRCQUNBZ0Q7NEJBQ0FMLE1BQU0zRCxPQUFPK0QsUUFBUUosUUFBUXBCLGFBQWFvQixRQUFROzRCQUNsRDdELFdBQVcwQzs0QkFDWDRCLFdBQVdiLEtBQUtDLEdBQUc7NEJBQ25CL0Q7NEJBQ0FvRSxVQUFVN0QsT0FBTytELFFBQVFGLFlBQVl0QixhQUFhc0IsWUFBWTt3QkFDaEU7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPNUU7QUFDVCxFQUFFIn0=