@discordeno/bot 21.0.1-next.4792ad2 → 21.0.1-next.49a8cd1

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 (276) hide show
  1. package/dist/cjs/bot.cjs +1 -1
  2. package/dist/cjs/desiredProperties.cjs +1 -1
  3. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +3 -4
  4. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +3 -5
  5. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +2 -4
  6. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +2 -4
  7. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +2 -4
  8. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +2 -3
  9. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +4 -2
  10. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +1 -3
  11. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +2 -4
  12. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +2 -3
  13. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +6 -8
  14. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +2 -3
  15. package/dist/cjs/handlers/guilds/index.cjs +2 -2
  16. package/dist/cjs/handlers/index.cjs +3 -3
  17. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +3 -3
  18. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +3 -3
  19. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +5 -2
  20. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +6 -3
  21. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +2 -3
  22. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +6 -2
  23. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
  24. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
  25. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +2 -3
  26. package/dist/cjs/handlers/messages/index.cjs +3 -3
  27. package/dist/cjs/handlers/misc/TYPING_START.cjs +5 -2
  28. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +2 -3
  29. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +2 -3
  30. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  31. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +3 -3
  32. package/dist/cjs/handlers/voice/index.cjs +2 -2
  33. package/dist/cjs/helpers.cjs +82 -150
  34. package/dist/cjs/index.cjs +3 -4
  35. package/dist/cjs/transformers/activity.cjs +1 -1
  36. package/dist/cjs/transformers/application.cjs +44 -45
  37. package/dist/cjs/transformers/attachment.cjs +1 -1
  38. package/dist/cjs/transformers/channel.cjs +44 -40
  39. package/dist/cjs/transformers/component.cjs +2 -2
  40. package/dist/cjs/transformers/emoji.cjs +1 -1
  41. package/dist/cjs/transformers/entitlement.cjs +1 -1
  42. package/dist/cjs/transformers/guild.cjs +75 -68
  43. package/dist/cjs/transformers/incidentsData.cjs +1 -1
  44. package/dist/cjs/transformers/interaction.cjs +89 -83
  45. package/dist/cjs/transformers/invite.cjs +30 -31
  46. package/dist/cjs/transformers/lobby.cjs +2 -4
  47. package/dist/cjs/transformers/member.cjs +9 -6
  48. package/dist/cjs/transformers/message.cjs +72 -69
  49. package/dist/cjs/transformers/onboarding.cjs +2 -2
  50. package/dist/cjs/transformers/poll.cjs +5 -4
  51. package/dist/cjs/transformers/presence.cjs +9 -10
  52. package/dist/cjs/transformers/reverse/application.cjs +1 -1
  53. package/dist/cjs/transformers/reverse/attachment.cjs +15 -14
  54. package/dist/cjs/transformers/reverse/component.cjs +5 -5
  55. package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
  56. package/dist/cjs/transformers/reverse/index.cjs +1 -2
  57. package/dist/cjs/transformers/reverse/member.cjs +34 -32
  58. package/dist/cjs/transformers/reverse/presence.cjs +1 -1
  59. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  60. package/dist/cjs/transformers/role.cjs +19 -19
  61. package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
  62. package/dist/cjs/transformers/sku.cjs +1 -1
  63. package/dist/cjs/transformers/soundboardSound.cjs +1 -1
  64. package/dist/cjs/transformers/stageInstance.cjs +1 -1
  65. package/dist/cjs/transformers/stageInviteInstance.cjs +10 -4
  66. package/dist/cjs/transformers/sticker.cjs +1 -1
  67. package/dist/cjs/transformers/subscription.cjs +1 -1
  68. package/dist/cjs/transformers/team.cjs +1 -1
  69. package/dist/cjs/transformers/template.cjs +1 -1
  70. package/dist/cjs/transformers/threadMember.cjs +7 -4
  71. package/dist/cjs/transformers/user.cjs +1 -1
  72. package/dist/cjs/transformers/voiceState.cjs +11 -9
  73. package/dist/cjs/transformers/webhook.cjs +1 -1
  74. package/dist/cjs/transformers/widget.cjs +6 -16
  75. package/dist/cjs/transformers.cjs +164 -162
  76. package/dist/esm/bot.js +2 -2
  77. package/dist/esm/desiredProperties.js +1 -1
  78. package/dist/esm/events.js +1 -1
  79. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +3 -4
  80. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +3 -5
  81. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +2 -4
  82. package/dist/esm/handlers/channels/THREAD_CREATE.js +2 -4
  83. package/dist/esm/handlers/channels/THREAD_DELETE.js +2 -4
  84. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +2 -3
  85. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +4 -2
  86. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +1 -3
  87. package/dist/esm/handlers/channels/THREAD_UPDATE.js +2 -4
  88. package/dist/esm/handlers/guilds/GUILD_CREATE.js +2 -3
  89. package/dist/esm/handlers/guilds/GUILD_DELETE.js +6 -8
  90. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +2 -3
  91. package/dist/esm/handlers/guilds/index.js +2 -2
  92. package/dist/esm/handlers/index.js +3 -3
  93. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +3 -3
  94. package/dist/esm/handlers/invites/INVITE_CREATE.js +3 -3
  95. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +5 -2
  96. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +6 -3
  97. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +2 -3
  98. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +6 -2
  99. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
  100. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
  101. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +2 -3
  102. package/dist/esm/handlers/messages/index.js +3 -3
  103. package/dist/esm/handlers/misc/TYPING_START.js +5 -2
  104. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +2 -3
  105. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +2 -3
  106. package/dist/esm/handlers/soundboard/index.js +3 -3
  107. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +3 -3
  108. package/dist/esm/handlers/voice/index.js +2 -2
  109. package/dist/esm/helpers.js +82 -150
  110. package/dist/esm/index.js +3 -4
  111. package/dist/esm/transformers/activity.js +1 -1
  112. package/dist/esm/transformers/application.js +44 -45
  113. package/dist/esm/transformers/attachment.js +1 -1
  114. package/dist/esm/transformers/channel.js +44 -40
  115. package/dist/esm/transformers/component.js +2 -2
  116. package/dist/esm/transformers/emoji.js +1 -1
  117. package/dist/esm/transformers/entitlement.js +1 -1
  118. package/dist/esm/transformers/guild.js +75 -68
  119. package/dist/esm/transformers/incidentsData.js +1 -1
  120. package/dist/esm/transformers/interaction.js +91 -83
  121. package/dist/esm/transformers/invite.js +31 -32
  122. package/dist/esm/transformers/lobby.js +2 -4
  123. package/dist/esm/transformers/member.js +9 -6
  124. package/dist/esm/transformers/message.js +72 -69
  125. package/dist/esm/transformers/onboarding.js +2 -2
  126. package/dist/esm/transformers/poll.js +5 -4
  127. package/dist/esm/transformers/presence.js +9 -10
  128. package/dist/esm/transformers/reverse/application.js +1 -1
  129. package/dist/esm/transformers/reverse/attachment.js +15 -14
  130. package/dist/esm/transformers/reverse/component.js +5 -5
  131. package/dist/esm/transformers/reverse/emoji.js +3 -3
  132. package/dist/esm/transformers/reverse/index.js +1 -2
  133. package/dist/esm/transformers/reverse/member.js +34 -32
  134. package/dist/esm/transformers/reverse/presence.js +1 -1
  135. package/dist/esm/transformers/reverse/team.js +1 -1
  136. package/dist/esm/transformers/role.js +19 -19
  137. package/dist/esm/transformers/scheduledEvent.js +1 -1
  138. package/dist/esm/transformers/sku.js +1 -1
  139. package/dist/esm/transformers/soundboardSound.js +1 -1
  140. package/dist/esm/transformers/stageInstance.js +1 -1
  141. package/dist/esm/transformers/stageInviteInstance.js +10 -4
  142. package/dist/esm/transformers/sticker.js +1 -1
  143. package/dist/esm/transformers/subscription.js +1 -1
  144. package/dist/esm/transformers/team.js +1 -1
  145. package/dist/esm/transformers/template.js +1 -1
  146. package/dist/esm/transformers/threadMember.js +7 -4
  147. package/dist/esm/transformers/types.js +1 -1
  148. package/dist/esm/transformers/user.js +1 -1
  149. package/dist/esm/transformers/voiceState.js +11 -9
  150. package/dist/esm/transformers/webhook.js +1 -1
  151. package/dist/esm/transformers/widget.js +6 -16
  152. package/dist/esm/transformers.js +166 -164
  153. package/dist/types/bot.d.ts +1 -5
  154. package/dist/types/bot.d.ts.map +1 -1
  155. package/dist/types/desiredProperties.d.ts +2 -1
  156. package/dist/types/desiredProperties.d.ts.map +1 -1
  157. package/dist/types/events.d.ts +4 -4
  158. package/dist/types/events.d.ts.map +1 -1
  159. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
  160. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -1
  161. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
  162. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  163. package/dist/types/handlers/guilds/index.d.ts +1 -1
  164. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  165. package/dist/types/handlers/index.d.ts +2 -2
  166. package/dist/types/handlers/index.d.ts.map +1 -1
  167. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
  168. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  169. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
  170. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
  171. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  172. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  173. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  174. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  175. package/dist/types/handlers/messages/index.d.ts +2 -2
  176. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  177. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -1
  178. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -1
  179. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  180. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  181. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -1
  182. package/dist/types/handlers/voice/index.d.ts +1 -1
  183. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  184. package/dist/types/helpers.d.ts +9 -9
  185. package/dist/types/helpers.d.ts.map +1 -1
  186. package/dist/types/index.d.ts +2 -3
  187. package/dist/types/index.d.ts.map +1 -1
  188. package/dist/types/transformers/activity.d.ts +3 -3
  189. package/dist/types/transformers/activity.d.ts.map +1 -1
  190. package/dist/types/transformers/application.d.ts +2 -3
  191. package/dist/types/transformers/application.d.ts.map +1 -1
  192. package/dist/types/transformers/attachment.d.ts +2 -2
  193. package/dist/types/transformers/attachment.d.ts.map +1 -1
  194. package/dist/types/transformers/channel.d.ts +5 -6
  195. package/dist/types/transformers/channel.d.ts.map +1 -1
  196. package/dist/types/transformers/emoji.d.ts +4 -4
  197. package/dist/types/transformers/emoji.d.ts.map +1 -1
  198. package/dist/types/transformers/entitlement.d.ts +2 -2
  199. package/dist/types/transformers/entitlement.d.ts.map +1 -1
  200. package/dist/types/transformers/guild.d.ts +5 -6
  201. package/dist/types/transformers/guild.d.ts.map +1 -1
  202. package/dist/types/transformers/incidentsData.d.ts +2 -2
  203. package/dist/types/transformers/incidentsData.d.ts.map +1 -1
  204. package/dist/types/transformers/interaction.d.ts +16 -20
  205. package/dist/types/transformers/interaction.d.ts.map +1 -1
  206. package/dist/types/transformers/invite.d.ts +4 -5
  207. package/dist/types/transformers/invite.d.ts.map +1 -1
  208. package/dist/types/transformers/lobby.d.ts +3 -3
  209. package/dist/types/transformers/lobby.d.ts.map +1 -1
  210. package/dist/types/transformers/member.d.ts +7 -3
  211. package/dist/types/transformers/member.d.ts.map +1 -1
  212. package/dist/types/transformers/message.d.ts +13 -13
  213. package/dist/types/transformers/message.d.ts.map +1 -1
  214. package/dist/types/transformers/onboarding.d.ts +4 -4
  215. package/dist/types/transformers/onboarding.d.ts.map +1 -1
  216. package/dist/types/transformers/poll.d.ts +3 -3
  217. package/dist/types/transformers/poll.d.ts.map +1 -1
  218. package/dist/types/transformers/presence.d.ts +2 -2
  219. package/dist/types/transformers/presence.d.ts.map +1 -1
  220. package/dist/types/transformers/reverse/application.d.ts +2 -2
  221. package/dist/types/transformers/reverse/application.d.ts.map +1 -1
  222. package/dist/types/transformers/reverse/attachment.d.ts +2 -2
  223. package/dist/types/transformers/reverse/attachment.d.ts.map +1 -1
  224. package/dist/types/transformers/reverse/emoji.d.ts +2 -2
  225. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
  226. package/dist/types/transformers/reverse/index.d.ts +0 -1
  227. package/dist/types/transformers/reverse/index.d.ts.map +1 -1
  228. package/dist/types/transformers/reverse/member.d.ts +3 -4
  229. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  230. package/dist/types/transformers/reverse/presence.d.ts +2 -2
  231. package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
  232. package/dist/types/transformers/reverse/team.d.ts +2 -2
  233. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  234. package/dist/types/transformers/role.d.ts +6 -7
  235. package/dist/types/transformers/role.d.ts.map +1 -1
  236. package/dist/types/transformers/scheduledEvent.d.ts +3 -3
  237. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
  238. package/dist/types/transformers/sku.d.ts +2 -2
  239. package/dist/types/transformers/sku.d.ts.map +1 -1
  240. package/dist/types/transformers/soundboardSound.d.ts +2 -2
  241. package/dist/types/transformers/soundboardSound.d.ts.map +1 -1
  242. package/dist/types/transformers/stageInstance.d.ts +2 -2
  243. package/dist/types/transformers/stageInstance.d.ts.map +1 -1
  244. package/dist/types/transformers/stageInviteInstance.d.ts +4 -4
  245. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
  246. package/dist/types/transformers/sticker.d.ts +3 -3
  247. package/dist/types/transformers/sticker.d.ts.map +1 -1
  248. package/dist/types/transformers/subscription.d.ts +2 -2
  249. package/dist/types/transformers/subscription.d.ts.map +1 -1
  250. package/dist/types/transformers/team.d.ts +2 -2
  251. package/dist/types/transformers/team.d.ts.map +1 -1
  252. package/dist/types/transformers/template.d.ts +2 -2
  253. package/dist/types/transformers/template.d.ts.map +1 -1
  254. package/dist/types/transformers/threadMember.d.ts +11 -2
  255. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  256. package/dist/types/transformers/types.d.ts +8 -8
  257. package/dist/types/transformers/types.d.ts.map +1 -1
  258. package/dist/types/transformers/user.d.ts +6 -6
  259. package/dist/types/transformers/user.d.ts.map +1 -1
  260. package/dist/types/transformers/voiceState.d.ts +4 -5
  261. package/dist/types/transformers/voiceState.d.ts.map +1 -1
  262. package/dist/types/transformers/webhook.d.ts +2 -2
  263. package/dist/types/transformers/webhook.d.ts.map +1 -1
  264. package/dist/types/transformers/widget.d.ts +1 -1
  265. package/dist/types/transformers/widget.d.ts.map +1 -1
  266. package/dist/types/transformers.d.ts +86 -68
  267. package/dist/types/transformers.d.ts.map +1 -1
  268. package/package.json +6 -6
  269. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
  270. package/dist/cjs/utils.cjs +0 -32
  271. package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
  272. package/dist/esm/utils.js +0 -11
  273. package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
  274. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  275. package/dist/types/utils.d.ts +0 -5
  276. package/dist/types/utils.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
- import { Permissions } from './toggles/Permissions.js';
3
2
  import { MemberToggles } from './toggles/member.js';
3
+ import { Permissions } from './toggles/Permissions.js';
4
4
  export const baseMember = {
5
5
  // This allows typescript to still check for type errors on functions below
6
6
  ...undefined,
@@ -29,11 +29,11 @@ export const baseMember = {
29
29
  return !!this.toggles?.completedOnboarding;
30
30
  }
31
31
  };
32
- export function transformMember(bot, payload, guildId, userId) {
32
+ export function transformMember(bot, payload, extra) {
33
33
  const member = Object.create(baseMember);
34
34
  const props = bot.transformers.desiredProperties.member;
35
- if (props.id && userId) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId;
36
- if (props.guildId && guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId;
35
+ if (props.id && extra?.userId) member.id = typeof extra.userId === 'string' ? bot.transformers.snowflake(extra.userId) : extra.userId;
36
+ if (props.guildId && extra?.guildId) member.guildId = typeof extra.guildId === 'string' ? bot.transformers.snowflake(extra.guildId) : extra.guildId;
37
37
  if (props.user && payload.user) member.user = bot.transformers.user(bot, payload.user);
38
38
  if (props.nick && payload.nick) member.nick = payload.nick;
39
39
  if (props.roles && payload.roles) member.roles = payload.roles.map((id)=>bot.transformers.snowflake(id));
@@ -45,7 +45,10 @@ export function transformMember(bot, payload, guildId, userId) {
45
45
  if (props.permissions && payload.permissions) member.permissions = new Permissions(payload.permissions);
46
46
  if (props.toggles) member.toggles = new MemberToggles(payload);
47
47
  if (props.avatarDecorationData && payload.avatar_decoration_data) member.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data);
48
- return bot.transformers.customizers.member(bot, payload, member);
48
+ return bot.transformers.customizers.member(bot, payload, member, {
49
+ guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
50
+ userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined
51
+ });
49
52
  }
50
53
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJQZXJtaXNzaW9ucyIsIk1lbWJlclRvZ2dsZXMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInVzZXJJZCIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsInVzZXIiLCJuaWNrIiwicm9sZXMiLCJtYXAiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsInByZW1pdW1TaW5jZSIsInByZW1pdW1fc2luY2UiLCJjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCIsImNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwiLCJhdmF0YXIiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxvQkFBbUI7QUFFcEQsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxhQUFhLFFBQVEsc0JBQXFCO0FBR25ELE9BQU8sTUFBTUMsYUFBc0U7SUFDakYsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDRixPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJRSxXQUFVO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJRyxTQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUNKLE9BQU8sRUFBRUksU0FBUztJQUNoQztJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNMLE9BQU8sRUFBRUs7SUFDekI7SUFDQSxJQUFJQyxxQkFBb0I7UUFDdEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDTixPQUFPLEVBQUVNO0lBQ3pCO0lBQ0EsSUFBSUMsd0JBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ1AsT0FBTyxFQUFFTztJQUN6QjtJQUNBLElBQUlDLHVCQUFzQjtRQUN4QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNSLE9BQU8sRUFBRVE7SUFDekI7QUFDRixFQUFDO0FBRUQsT0FBTyxTQUFTQyxnQkFDZEMsR0FBZ0IsRUFDaEJDLE9BQXNCLEVBQ3RCQyxPQUFrQixFQUNsQkMsTUFBaUI7SUFFakIsTUFBTUMsU0FBaUJDLE9BQU9DLE1BQU0sQ0FBQ25CO0lBQ3JDLE1BQU1vQixRQUFRUCxJQUFJUSxZQUFZLENBQUNDLGlCQUFpQixDQUFDTCxNQUFNO0lBRXZELElBQUlHLE1BQU1HLEVBQUUsSUFBSVAsUUFBUUMsT0FBT00sRUFBRSxHQUFHLE9BQU9QLFdBQVcsV0FBV0gsSUFBSVEsWUFBWSxDQUFDRyxTQUFTLENBQUNSLFVBQVVBO0lBQ3RHLElBQUlJLE1BQU1MLE9BQU8sSUFBSUEsU0FBU0UsT0FBT0YsT0FBTyxHQUFHLE9BQU9BLFlBQVksV0FBV0YsSUFBSVEsWUFBWSxDQUFDRyxTQUFTLENBQUNULFdBQVdBO0lBQ25ILElBQUlLLE1BQU1LLElBQUksSUFBSVgsUUFBUVcsSUFBSSxFQUFFUixPQUFPUSxJQUFJLEdBQUdaLElBQUlRLFlBQVksQ0FBQ0ksSUFBSSxDQUFDWixLQUFLQyxRQUFRVyxJQUFJO0lBQ3JGLElBQUlMLE1BQU1NLElBQUksSUFBSVosUUFBUVksSUFBSSxFQUFFVCxPQUFPUyxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDMUQsSUFBSU4sTUFBTU8sS0FBSyxJQUFJYixRQUFRYSxLQUFLLEVBQUVWLE9BQU9VLEtBQUssR0FBR2IsUUFBUWEsS0FBSyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0wsS0FBT1YsSUFBSVEsWUFBWSxDQUFDRyxTQUFTLENBQUNEO0lBQ3RHLElBQUlILE1BQU1TLFFBQVEsSUFBSWYsUUFBUWdCLFNBQVMsRUFBRWIsT0FBT1ksUUFBUSxHQUFHRSxLQUFLQyxLQUFLLENBQUNsQixRQUFRZ0IsU0FBUztJQUN2RixJQUFJVixNQUFNYSxZQUFZLElBQUluQixRQUFRb0IsYUFBYSxFQUFFakIsT0FBT2dCLFlBQVksR0FBR0YsS0FBS0MsS0FBSyxDQUFDbEIsUUFBUW9CLGFBQWE7SUFDdkcsSUFBSWQsTUFBTWUsMEJBQTBCLElBQUlyQixRQUFRc0IsNEJBQTRCLEVBQzFFbkIsT0FBT2tCLDBCQUEwQixHQUFHSixLQUFLQyxLQUFLLENBQUNsQixRQUFRc0IsNEJBQTRCO0lBQ3JGLElBQUloQixNQUFNaUIsTUFBTSxJQUFJdkIsUUFBUXVCLE1BQU0sRUFBRXBCLE9BQU9vQixNQUFNLEdBQUd4QyxpQkFBaUJpQixRQUFRdUIsTUFBTTtJQUNuRixJQUFJakIsTUFBTWtCLE1BQU0sSUFBSXhCLFFBQVF3QixNQUFNLEVBQUVyQixPQUFPcUIsTUFBTSxHQUFHekMsaUJBQWlCaUIsUUFBUXdCLE1BQU07SUFDbkYsSUFBSWxCLE1BQU1tQixXQUFXLElBQUl6QixRQUFReUIsV0FBVyxFQUFFdEIsT0FBT3NCLFdBQVcsR0FBRyxJQUFJekMsWUFBWWdCLFFBQVF5QixXQUFXO0lBQ3RHLElBQUluQixNQUFNakIsT0FBTyxFQUFFYyxPQUFPZCxPQUFPLEdBQUcsSUFBSUosY0FBY2U7SUFDdEQsSUFBSU0sTUFBTW9CLG9CQUFvQixJQUFJMUIsUUFBUTJCLHNCQUFzQixFQUM5RHhCLE9BQU91QixvQkFBb0IsR0FBRzNCLElBQUlRLFlBQVksQ0FBQ21CLG9CQUFvQixDQUFDM0IsS0FBS0MsUUFBUTJCLHNCQUFzQjtJQUV6RyxPQUFPNUIsSUFBSVEsWUFBWSxDQUFDcUIsV0FBVyxDQUFDekIsTUFBTSxDQUFDSixLQUFLQyxTQUFTRztBQUMzRCJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuaW1wb3J0IHR5cGUgeyBNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZU1lbWJlcjogTWVtYmVyID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIE1lbWJlciksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lbWJlciwgZXh0cmE/OiB7IGd1aWxkSWQ/OiBCaWdTdHJpbmc7IHVzZXJJZD86IEJpZ1N0cmluZyB9KTogTWVtYmVyIHtcbiAgY29uc3QgbWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IE9iamVjdC5jcmVhdGUoYmFzZU1lbWJlcilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lbWJlclxuXG4gIGlmIChwcm9wcy5pZCAmJiBleHRyYT8udXNlcklkKSBtZW1iZXIuaWQgPSB0eXBlb2YgZXh0cmEudXNlcklkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLnVzZXJJZCkgOiBleHRyYS51c2VySWRcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZXh0cmE/Lmd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGV4dHJhLmd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiBleHRyYS5ndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyLCB7XG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICB1c2VySWQ6IGV4dHJhPy51c2VySWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS51c2VySWQpIDogdW5kZWZpbmVkLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJNZW1iZXJUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaWQiLCJ1c2VySWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImJhbm5lciIsInBlcm1pc3Npb25zIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUdwRCxTQUFTQyxhQUFhLFFBQVEsc0JBQXFCO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSwyQkFBMEI7QUFHdEQsT0FBTyxNQUFNQyxhQUFxQjtJQUNoQywyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFFBQU87UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNDLE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlDLFFBQU87UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNGLE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlFLFdBQVU7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNILE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlHLFNBQVE7UUFDVixPQUFPLElBQUksQ0FBQ0osT0FBTyxFQUFFSSxTQUFTO0lBQ2hDO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxFQUFFSztJQUN6QjtJQUNBLElBQUlDLHFCQUFvQjtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNOLE9BQU8sRUFBRU07SUFDekI7SUFDQSxJQUFJQyx3QkFBdUI7UUFDekIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDUCxPQUFPLEVBQUVPO0lBQ3pCO0lBQ0EsSUFBSUMsdUJB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
@@ -117,89 +117,93 @@ export const baseMessage = {
117
117
  else this.flags.remove(MessageFlags.Urgent);
118
118
  }
119
119
  };
120
- export function transformMessage(bot, payload) {
121
- const guildId = payload.message.guild_id ? bot.transformers.snowflake(payload.message.guild_id) : undefined;
122
- const userId = payload.message.author?.id ? bot.transformers.snowflake(payload.message.author.id) : undefined;
120
+ export function transformMessage(bot, payload, extra) {
121
+ const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
122
+ const userId = payload.author?.id ? bot.transformers.snowflake(payload.author.id) : undefined;
123
123
  const message = Object.create(baseMessage);
124
124
  message.bitfield = new ToggleBitfield();
125
- message.flags = new ToggleBitfield(payload.message.flags);
125
+ message.flags = new ToggleBitfield(payload.flags);
126
126
  const props = bot.transformers.desiredProperties.message;
127
- if (props.author && payload.message.author) message.author = bot.transformers.user(bot, payload.message.author);
128
- if (props.application && payload.message.application) message.application = bot.transformers.application(bot, {
129
- application: payload.message.application,
130
- shardId: payload.shardId
127
+ if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author);
128
+ if (props.application && payload.application) // @ts-expect-error TODO: Partials
129
+ message.application = bot.transformers.application(bot, payload.application, {
130
+ shardId: extra?.shardId
131
131
  });
132
- if (props.applicationId && payload.message.application_id) message.applicationId = bot.transformers.snowflake(payload.message.application_id);
133
- if (props.attachments && payload.message.attachments?.length) message.attachments = payload.message.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
134
- if (props.channelId && payload.message.channel_id) message.channelId = bot.transformers.snowflake(payload.message.channel_id);
135
- if (props.components && payload.message.components?.length) message.components = payload.message.components.map((comp)=>bot.transformers.component(bot, comp));
136
- if (props.content) message.content = payload.message.content ?? EMPTY_STRING;
137
- if (props.editedTimestamp && payload.message.edited_timestamp) message.editedTimestamp = Date.parse(payload.message.edited_timestamp);
138
- if (props.embeds && payload.message.embeds?.length) message.embeds = payload.message.embeds.map((embed)=>bot.transformers.embed(bot, embed));
132
+ if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id);
133
+ if (props.attachments && payload.attachments?.length) message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
134
+ if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id);
135
+ if (props.components && payload.components?.length) message.components = payload.components.map((comp)=>bot.transformers.component(bot, comp));
136
+ if (props.content) message.content = payload.content ?? EMPTY_STRING;
137
+ if (props.editedTimestamp && payload.edited_timestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp);
138
+ if (props.embeds && payload.embeds?.length) message.embeds = payload.embeds.map((embed)=>bot.transformers.embed(bot, embed));
139
139
  if (props.guildId && guildId) message.guildId = guildId;
140
- if (props.id && payload.message.id) message.id = bot.transformers.snowflake(payload.message.id);
141
- if (props.interactionMetadata && payload.message.interaction_metadata) message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.message.interaction_metadata);
142
- if (props.interaction && payload.message.interaction) {
140
+ if (props.id && payload.id) message.id = bot.transformers.snowflake(payload.id);
141
+ if (props.interactionMetadata && payload.interaction_metadata) message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.interaction_metadata);
142
+ if (props.interaction && payload.interaction) {
143
143
  const interaction = {};
144
144
  const messageInteractionProps = bot.transformers.desiredProperties.messageInteraction;
145
145
  if (messageInteractionProps.id) {
146
- interaction.id = bot.transformers.snowflake(payload.message.interaction.id);
146
+ interaction.id = bot.transformers.snowflake(payload.interaction.id);
147
147
  }
148
- if (messageInteractionProps.member && payload.message.interaction.member) {
148
+ if (messageInteractionProps.member && payload.interaction.member) {
149
149
  // @ts-expect-error TODO: partial - check why this is partial and handle as needed
150
- interaction.member = bot.transformers.member(bot, payload.message.interaction.member, guildId, payload.message.interaction.user.id);
150
+ interaction.member = bot.transformers.member(bot, payload.interaction.member, {
151
+ guildId,
152
+ userId: payload.interaction.user.id
153
+ });
151
154
  }
152
155
  if (messageInteractionProps.name) {
153
- interaction.name = payload.message.interaction.name;
156
+ interaction.name = payload.interaction.name;
154
157
  }
155
158
  if (messageInteractionProps.type) {
156
- interaction.type = payload.message.interaction.type;
159
+ interaction.type = payload.interaction.type;
157
160
  }
158
161
  if (messageInteractionProps.user) {
159
- interaction.user = bot.transformers.user(bot, payload.message.interaction.user);
162
+ interaction.user = bot.transformers.user(bot, payload.interaction.user);
160
163
  }
161
164
  message.interaction = interaction;
162
165
  }
163
- if (props.member && guildId && userId && payload.message.member) // @ts-expect-error TODO: partial
164
- message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
165
- if (payload.message.mention_everyone) message.mentionEveryone = true;
166
- if (props.mentionedChannelIds && payload.message.mention_channels?.length) {
166
+ if (props.member && guildId && userId && payload.member) // @ts-expect-error TODO: partial
167
+ message.member = bot.transformers.member(bot, payload.member, {
168
+ guildId,
169
+ userId
170
+ });
171
+ if (payload.mention_everyone) message.mentionEveryone = true;
172
+ if (props.mentionedChannelIds && payload.mention_channels?.length) {
167
173
  message.mentionedChannelIds = [
168
174
  // Keep any ids tht discord sends
169
- ...(payload.message.mention_channels ?? []).map((m)=>bot.transformers.snowflake(m.id)),
175
+ ...(payload.mention_channels ?? []).map((m)=>bot.transformers.snowflake(m.id)),
170
176
  // Add any other ids that can be validated in a channel mention format
171
- ...(payload.message.content?.match(CHANNEL_MENTION_REGEX) ?? []).map((text)=>// converts the <#123> into 123
177
+ ...(payload.content?.match(CHANNEL_MENTION_REGEX) ?? []).map((text)=>// converts the <#123> into 123
172
178
  bot.transformers.snowflake(text.substring(2, text.length - 1)))
173
179
  ];
174
180
  }
175
- if (props.mentionedRoleIds && payload.message.mention_roles?.length) message.mentionedRoleIds = payload.message.mention_roles.map((id)=>bot.transformers.snowflake(id));
176
- if (props.mentions && payload.message.mentions?.length) message.mentions = payload.message.mentions.map((user)=>bot.transformers.user(bot, user));
177
- if (props.messageReference && payload.message.message_reference) {
181
+ if (props.mentionedRoleIds && payload.mention_roles?.length) message.mentionedRoleIds = payload.mention_roles.map((id)=>bot.transformers.snowflake(id));
182
+ if (props.mentions && payload.mentions?.length) message.mentions = payload.mentions.map((user)=>bot.transformers.user(bot, user));
183
+ if (props.messageReference && payload.message_reference) {
178
184
  const reference = {};
179
185
  const messageReferenceProps = bot.transformers.desiredProperties.messageReference;
180
- if (messageReferenceProps.channelId && payload.message.message_reference.channel_id) {
181
- reference.channelId = bot.transformers.snowflake(payload.message.message_reference.channel_id);
186
+ if (messageReferenceProps.channelId && payload.message_reference.channel_id) {
187
+ reference.channelId = bot.transformers.snowflake(payload.message_reference.channel_id);
182
188
  }
183
- if (messageReferenceProps.guildId && payload.message.message_reference.guild_id) {
184
- reference.guildId = bot.transformers.snowflake(payload.message.message_reference.guild_id);
189
+ if (messageReferenceProps.guildId && payload.message_reference.guild_id) {
190
+ reference.guildId = bot.transformers.snowflake(payload.message_reference.guild_id);
185
191
  }
186
- if (messageReferenceProps.messageId && payload.message.message_reference.message_id) {
187
- reference.messageId = bot.transformers.snowflake(payload.message.message_reference.message_id);
192
+ if (messageReferenceProps.messageId && payload.message_reference.message_id) {
193
+ reference.messageId = bot.transformers.snowflake(payload.message_reference.message_id);
188
194
  }
189
195
  message.messageReference = reference;
190
196
  }
191
- if (props.referencedMessage && payload.message.referenced_message) message.referencedMessage = bot.transformers.message(bot, {
192
- message: payload.message.referenced_message,
193
- shardId: payload.shardId
197
+ if (props.referencedMessage && payload.referenced_message) message.referencedMessage = bot.transformers.message(bot, payload.referenced_message, {
198
+ shardId: extra?.shardId
194
199
  });
195
- if (props.messageSnapshots && payload.message.message_snapshots) message.messageSnapshots = payload.message.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, {
196
- messageSnapshot: snap,
197
- shardId: payload.shardId
200
+ if (props.messageSnapshots && payload.message_snapshots) message.messageSnapshots = payload.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, snap, {
201
+ shardId: extra?.shardId
198
202
  }));
199
- if (props.nonce && payload.message.nonce) message.nonce = payload.message.nonce;
200
- if (payload.message.pinned) message.pinned = true;
201
- if (props.reactions && payload.message.reactions?.length) {
202
- message.reactions = payload.message.reactions.map((reaction)=>({
203
+ if (props.nonce && payload.nonce) message.nonce = payload.nonce;
204
+ if (payload.pinned) message.pinned = true;
205
+ if (props.reactions && payload.reactions?.length) {
206
+ message.reactions = payload.reactions.map((reaction)=>({
203
207
  me: reaction.me,
204
208
  meBurst: reaction.me_burst,
205
209
  count: reaction.count,
@@ -207,44 +211,43 @@ export function transformMessage(bot, payload) {
207
211
  burst: reaction.count_details.burst,
208
212
  normal: reaction.count_details.normal
209
213
  },
214
+ // @ts-expect-error TODO: Deal with partials
210
215
  emoji: bot.transformers.emoji(bot, reaction.emoji),
211
216
  burstColors: reaction.burst_colors
212
217
  }));
213
218
  }
214
- if (props.stickerItems && payload.message.sticker_items?.length) message.stickerItems = payload.message.sticker_items.map((item)=>({
219
+ if (props.stickerItems && payload.sticker_items?.length) message.stickerItems = payload.sticker_items.map((item)=>({
215
220
  id: bot.transformers.snowflake(item.id),
216
221
  name: item.name,
217
222
  formatType: item.format_type
218
223
  }));
219
- if (payload.message.tts) message.tts = true;
220
- if (props.thread && payload.message.thread) message.thread = bot.transformers.channel(bot, {
221
- channel: payload.message.thread,
224
+ if (payload.tts) message.tts = true;
225
+ if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, payload.thread, {
222
226
  guildId
223
227
  });
224
- if (props.type) message.type = payload.message.type;
225
- if (props.webhookId && payload.message.webhook_id) message.webhookId = bot.transformers.snowflake(payload.message.webhook_id);
226
- if (props.poll && payload.message.poll) message.poll = bot.transformers.poll(bot, payload.message.poll);
227
- if (props.call && payload.message.call) message.call = bot.transformers.messageCall(bot, payload.message.call);
228
- return bot.transformers.customizers.message(bot, payload.message, message);
228
+ if (props.type) message.type = payload.type;
229
+ if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id);
230
+ if (props.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll);
231
+ if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
232
+ return bot.transformers.customizers.message(bot, payload, message, extra);
229
233
  }
230
- export function transformMessagePin(bot, payload) {
234
+ export function transformMessagePin(bot, payload, extra) {
231
235
  const props = bot.transformers.desiredProperties.messagePin;
232
236
  const messagePin = {};
233
237
  if (props.pinnedAt && payload.pinned_at) messagePin.pinnedAt = Date.parse(payload.pinned_at);
234
- if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, {
235
- message: payload.message,
236
- shardId: 0
238
+ if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, payload.message, {
239
+ shardId: extra?.shardId
237
240
  });
238
- return bot.transformers.customizers.messagePin(bot, payload, messagePin);
241
+ return bot.transformers.customizers.messagePin(bot, payload, messagePin, extra);
239
242
  }
240
- export function transformMessageSnapshot(bot, payload) {
243
+ export function transformMessageSnapshot(bot, payload, extra) {
241
244
  const props = bot.transformers.desiredProperties.messageSnapshot;
242
245
  const messageSnapshot = {};
243
- if (props.message && payload.messageSnapshot.message) messageSnapshot.message = bot.transformers.message(bot, {
244
- message: payload.messageSnapshot.message,
245
- shardId: payload.shardId
246
+ if (props.message && payload.message) // @ts-expect-error TODO: Partials
247
+ messageSnapshot.message = bot.transformers.message(bot, payload.message, {
248
+ shardId: extra?.shardId
246
249
  });
247
- return bot.transformers.customizers.messageSnapshot(bot, payload.messageSnapshot, messageSnapshot);
250
+ return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot, extra);
248
251
  }
249
252
  export function transformMessageInteractionMetadata(bot, payload) {
250
253
  const props = bot.transformers.desiredProperties.messageInteractionMetadata;
@@ -281,4 +284,4 @@ export function transformMessageCall(bot, payload) {
281
284
  return bot.transformers.customizers.messageCall(bot, payload, call);
282
285
  }
283
286
 
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJFTVBUWV9TVFJJTkciLCJiYXNlTWVzc2FnZSIsInVuZGVmaW5lZCIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJtZXNzYWdlUGluIiwicGlubmVkQXQiLCJwaW5uZWRfYXQiLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFRUEsaUNBQWlDLEVBTWpDQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFpQjtBQUN2RCxTQU9FQyxvQkFBb0IsUUFDZixjQUFhO0FBQ3BCLFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFFNUQsTUFBTUMsZUFBZTtBQUVyQixPQUFPLE1BQU1DLGNBQXdFO0lBQ25GLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTVCxhQUFhVSxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNI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
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVBpbixcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgdHlwZSBNZXNzYWdlLFxuICB0eXBlIE1lc3NhZ2VDYWxsLFxuICB0eXBlIE1lc3NhZ2VJbnRlcmFjdGlvbixcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgdHlwZSBTZXR1cERlc2lyZWRQcm9wcyxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG4gIHR5cGUgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBNZXNzYWdlKSxcblxuICBnZXQgY3Jvc3Nwb3N0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGNyb3NzcG9zdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgfSxcbiAgZ2V0IGVwaGVtZXJhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGVwaGVtZXJhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbClcbiAgfSxcbiAgZ2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gIH0sXG4gIGdldCBoYXNUaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBoYXNUaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpXG4gIH0sXG4gIGdldCBpc0Nyb3NzcG9zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgaXNDcm9zc3Bvc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICB9LFxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkxvYWRpbmcpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gIH0sXG4gIGdldCBtZW50aW9uZWRVc2VySWRzKCkge1xuICAgIHJldHVybiB0aGlzLm1lbnRpb25zPy5tYXAoKHVzZXIpID0+IHVzZXIuaWQpID8/IFtdXG4gIH0sXG4gIGdldCBtZW50aW9uRXZlcnlvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDIpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBtZW50aW9uRXZlcnlvbmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMilcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDIpXG4gIH0sXG4gIGdldCBwaW5uZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBwaW5uZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMylcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDMpXG4gIH0sXG4gIGdldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc291cmNlTWVzc2FnZURlbGV0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICB9LFxuICBnZXQgc3VwcHJlc3NFbWJlZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzRW1iZWRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgfSxcbiAgZ2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucylcbiAgfSxcbiAgZ2V0IHRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHNub3dmbGFrZVRvVGltZXN0YW1wKHRoaXMuaWQpIDogMFxuICB9LFxuICBnZXQgdHRzKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygxKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdHRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDEpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgxKVxuICB9LFxuICBnZXQgdXJnZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuVXJnZW50KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdXJnZW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuVXJnZW50KVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2UsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLmF1dGhvcj8uaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZCkgOiB1bmRlZmluZWRcblxuICBjb25zdCBtZXNzYWdlOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VNZXNzYWdlKVxuICBtZXNzYWdlLmJpdGZpZWxkID0gbmV3IFRvZ2dsZUJpdGZpZWxkKClcbiAgbWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKVxuXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlXG5cbiAgaWYgKHByb3BzLmF1dGhvciAmJiBwYXlsb2FkLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmF1dGhvcilcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uICYmIHBheWxvYWQuYXBwbGljYXRpb24pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBQYXJ0aWFsc1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgcGF5bG9hZC5hcHBsaWNhdGlvbiwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKVxuICBpZiAocHJvcHMuZW1iZWRzICYmIHBheWxvYWQuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5lbWJlZHMubWFwKChlbWJlZCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbWJlZChib3QsIGVtYmVkKSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlSW50ZXJhY3Rpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IHBhcnRpYWwgLSBjaGVjayB3aHkgdGhpcyBpcyBwYXJ0aWFsIGFuZCBoYW5kbGUgYXMgbmVlZGVkXG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkIH0pXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy50eXBlKSB7XG4gICAgICBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKVxuICAgIH1cblxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvblxuICB9XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiB1c2VySWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsXG4gICAgbWVzc2FnZS5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZCB9KVxuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWVcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdXG4gIH1cbiAgaWYgKHByb3BzLm1lbnRpb25lZFJvbGVJZHMgJiYgcGF5bG9hZC5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZW50aW9uX3JvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZSkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ21lc3NhZ2VSZWZlcmVuY2UnXT5cbiAgICBjb25zdCBtZXNzYWdlUmVmZXJlbmNlUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VSZWZlcmVuY2VcblxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKVxuICAgIH1cblxuICAgIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZVxuICB9XG4gIGlmIChwcm9wcy5yZWZlcmVuY2VkTWVzc2FnZSAmJiBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSlcbiAgICBtZXNzYWdlLnJlZmVyZW5jZWRNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pKVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHNcbiAgICAgIGVtb2ppOiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcmVhY3Rpb24uZW1vamkpLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSlcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpXG4gIGlmIChwYXlsb2FkLnR0cykgbWVzc2FnZS50dHMgPSB0cnVlXG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC50aHJlYWQsIHsgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy53ZWJob29rSWQgJiYgcGF5bG9hZC53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQud2ViaG9va19pZClcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZCwgbWVzc2FnZSwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlUGluKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZVBpbiwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IE1lc3NhZ2VQaW4ge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVBpblxuICBjb25zdCBtZXNzYWdlUGluID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLnBpbm5lZEF0ICYmIHBheWxvYWQucGlubmVkX2F0KSBtZXNzYWdlUGluLnBpbm5lZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLnBpbm5lZF9hdClcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlUGluLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlUGluKGJvdCwgcGF5bG9hZCwgbWVzc2FnZVBpbiwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlU25hcHNob3QsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlU25hcHNob3Qge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVNuYXBzaG90XG4gIGNvbnN0IG1lc3NhZ2VTbmFwc2hvdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VTbmFwc2hvdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogUGFydGlhbHNcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KSBhcyBNZXNzYWdlXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZCwgbWVzc2FnZVNuYXBzaG90LCBleHRyYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEpOiBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1ldGFkYXRhLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIC8vIEFwcGxpY2F0aW9uIGNvbW1hbmQgbWV0YWRhdGFcbiAgaWYgKCd0YXJnZXRfdXNlcicgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQudGFyZ2V0X3VzZXIpIG1ldGFkYXRhLnRhcmdldFVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnRhcmdldF91c2VyKVxuICAgIGlmIChwcm9wcy50YXJnZXRNZXNzYWdlSWQgJiYgcGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZCkgbWV0YWRhdGEudGFyZ2V0TWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNZXNzYWdlIGNvbXBvbmVudCBtZXRhZGF0YVxuICBpZiAoJ2ludGVyYWN0ZWRfbWVzc2FnZV9pZCcgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgICAgbWV0YWRhdGEuaW50ZXJhY3RlZE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICB9XG4gIC8vIE1vZGFsIHN1Ym1pdCBtZXRhZGF0YVxuICBpZiAoJ3RyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VDYWxsKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiBNZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlQ2FsbCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlQ2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiTWVzc2FnZUZsYWdzIiwiQ0hBTk5FTF9NRU5USU9OX1JFR0VYIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJUb2dnbGVCaXRmaWVsZCIsIkVNUFRZX1NUUklORyIsImJhc2VNZXNzYWdlIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwidHRzIiwidXJnZW50IiwiVXJnZW50IiwidHJhbnNmb3JtTWVzc2FnZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb24iLCJzaGFyZElkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyIsIm1lc3NhZ2VJbnRlcmFjdGlvbiIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZVJlZmVyZW5jZSIsIm1lc3NhZ2VfcmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWVzc2FnZVJlZmVyZW5jZVByb3BzIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsInJlZmVyZW5jZWRNZXNzYWdlIiwicmVmZXJlbmNlZF9tZXNzYWdlIiwibWVzc2FnZVNuYXBzaG90cyIsIm1lc3NhZ2Vfc25hcHNob3RzIiwic25hcCIsIm1lc3NhZ2VTbmFwc2hvdCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJwb2xsIiwiY2FsbCIsIm1lc3NhZ2VDYWxsIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsIm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQiLCJvcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkIiwidGFyZ2V0VXNlciIsInRhcmdldF91c2VyIiwidGFyZ2V0TWVzc2FnZUlkIiwidGFyZ2V0X21lc3NhZ2VfaWQiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwidHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQU1qQ0MsWUFBWSxRQUNQLG9CQUFtQjtBQUMxQixTQUFTQyxxQkFBcUIsUUFBUSxrQkFBaUI7QUFDdkQsU0FVRUMsb0JBQW9CLFFBRWYsY0FBYTtBQUNwQixTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBRTVELE1BQU1DLGVBQWU7QUFFckIsT0FBTyxNQUFNQyxjQUF1QjtJQUNsQywyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU1QsYUFBYVUsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUgsYUFBWUksTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYVUsV0FBVzthQUM3QyxJQUFJLENBQUNGLEtBQUssQ0FBQ0ssTUFBTSxDQUFDYixhQUFhVSxXQUFXO0lBQ2pEO0lBQ0EsSUFBSUksYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDTixLQUFLLEVBQUVDLFNBQVNULGFBQWFlLFNBQVMsS0FBSztJQUN6RDtJQUNBLElBQUlELFdBQVVILE1BQWdCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNaLGFBQWFlLFNBQVM7YUFDM0MsSUFBSSxDQUFDUCxLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYWUsU0FBUztJQUMvQztJ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
@@ -11,7 +11,7 @@ export function transformGuildOnboarding(bot, payload) {
11
11
  export function transformGuildOnboardingPrompt(bot, payload) {
12
12
  const props = bot.transformers.desiredProperties.guildOnboardingPrompt;
13
13
  const prompt = {};
14
- if (props.id && payload.id) prompt.id = bot.transformers.snowflake(prompt.id);
14
+ if (props.id && payload.id) prompt.id = bot.transformers.snowflake(payload.id);
15
15
  if (props.inOnboarding && payload.in_onboarding) prompt.inOnboarding = payload.in_onboarding;
16
16
  if (props.required && payload.required) prompt.required = payload.required;
17
17
  if (props.singleSelect && payload.single_select) prompt.singleSelect = payload.single_select;
@@ -32,4 +32,4 @@ export function transformGuildOnboardingPromptOption(bot, payload) {
32
32
  return bot.transformers.customizers.guildOnboardingPromptOption(bot, payload, option);
33
33
  }
34
34
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvb25ib2FyZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHdWlsZE9uYm9hcmRpbmcsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgR3VpbGRPbmJvYXJkaW5nLCBHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIEd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbiwgSW50ZXJuYWxCb3QgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUd1aWxkT25ib2FyZGluZyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGRPbmJvYXJkaW5nIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1xuICBjb25zdCBndWlsZE9uYm9hcmRpbmcgPSB7fSBhcyBHdWlsZE9uYm9hcmRpbmdcblxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBndWlsZE9uYm9hcmRpbmcuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpXG4gIGlmIChwcm9wcy5kZWZhdWx0Q2hhbm5lbElkcyAmJiBwYXlsb2FkLmRlZmF1bHRfY2hhbm5lbF9pZHMpXG4gICAgZ3VpbGRPbmJvYXJkaW5nLmRlZmF1bHRDaGFubmVsSWRzID0gcGF5bG9hZC5kZWZhdWx0X2NoYW5uZWxfaWRzLm1hcChib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSlcbiAgaWYgKHByb3BzLmVuYWJsZWQpIGd1aWxkT25ib2FyZGluZy5lbmFibGVkID0gcGF5bG9hZC5lbmFibGVkXG4gIGlmIChwcm9wcy5tb2RlKSBndWlsZE9uYm9hcmRpbmcubW9kZSA9IHBheWxvYWQubW9kZVxuICBpZiAocHJvcHMucHJvbXB0cyAmJiBwYXlsb2FkLnByb21wdHMpIGd1aWxkT25ib2FyZGluZy5wcm9tcHRzID0gcGF5bG9hZC5wcm9tcHRzLm1hcCgocHJvbXB0KSA9PiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdChib3QsIHByb21wdCkpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgcGF5bG9hZCwgZ3VpbGRPbmJvYXJkaW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0KFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nUHJvbXB0LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1Byb21wdFxuICBjb25zdCBwcm9tcHQgPSB7fSBhcyBHdWlsZE9uYm9hcmRpbmdQcm9tcHRcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgcHJvbXB0LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocHJvbXB0LmlkKVxuICBpZiAocHJvcHMuaW5PbmJvYXJkaW5nICYmIHBheWxvYWQuaW5fb25ib2FyZGluZykgcHJvbXB0LmluT25ib2FyZGluZyA9IHBheWxvYWQuaW5fb25ib2FyZGluZ1xuICBpZiAocHJvcHMucmVxdWlyZWQgJiYgcGF5bG9hZC5yZXF1aXJlZCkgcHJvbXB0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuc2luZ2xlU2VsZWN0ICYmIHBheWxvYWQuc2luZ2xlX3NlbGVjdCkgcHJvbXB0LnNpbmdsZVNlbGVjdCA9IHBheWxvYWQuc2luZ2xlX3NlbGVjdFxuICBpZiAocHJvcHMudGl0bGUgJiYgcGF5bG9hZC50aXRsZSkgcHJvbXB0LnRpdGxlID0gcGF5bG9hZC50aXRsZVxuICBpZiAocHJvcHMudHlwZSkgcHJvbXB0LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLm9wdGlvbnMgJiYgcGF5bG9hZC5vcHRpb25zKSBwcm9tcHQub3B0aW9ucyA9IHBheWxvYWQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24oYm90LCBvcHRpb24pKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdChib3QsIHBheWxvYWQsIHByb21wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbixcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbiB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb25cbiAgY29uc3Qgb3B0aW9uID0ge30gYXMgR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG9wdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5jaGFubmVsSWRzICYmIHBheWxvYWQuY2hhbm5lbF9pZHMpIG9wdGlvbi5jaGFubmVsSWRzID0gcGF5bG9hZC5jaGFubmVsX2lkcy5tYXAoYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UpXG4gIGlmIChwcm9wcy5yb2xlSWRzICYmIHBheWxvYWQucm9sZV9pZHMpIG9wdGlvbi5yb2xlSWRzID0gcGF5bG9hZC5yb2xlX2lkcy5tYXAoYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UpXG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBvcHRpb24uZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSlcbiAgaWYgKHByb3BzLnRpdGxlICYmIHBheWxvYWQudGl0bGUpIG9wdGlvbi50aXRsZSA9IHBheWxvYWQudGl0bGVcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIG9wdGlvbi5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24oYm90LCBwYXlsb2FkLCBvcHRpb24pXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJndWlsZE9uYm9hcmRpbmciLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJzbm93Zmxha2UiLCJkZWZhdWx0Q2hhbm5lbElkcyIsImRlZmF1bHRfY2hhbm5lbF9pZHMiLCJtYXAiLCJlbmFibGVkIiwibW9kZSIsInByb21wdHMiLCJwcm9tcHQiLCJndWlsZE9uYm9hcmRpbmdQcm9tcHQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZ1Byb21wdCIsImlkIiwiaW5PbmJvYXJkaW5nIiwiaW5fb25ib2FyZGluZyIsInJlcXVpcmVkIiwic2luZ2xlU2VsZWN0Iiwic2luZ2xlX3NlbGVjdCIsInRpdGxlIiwidHlwZSIsIm9wdGlvbnMiLCJvcHRpb24iLCJndWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24iLCJ0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24iLCJjaGFubmVsSWRzIiwiY2hhbm5lbF9pZHMiLCJyb2xlSWRzIiwicm9sZV9pZHMiLCJlbW9qaSIsImRlc2NyaXB0aW9uIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFNBQVNBLHlCQUF5QkMsR0FBZ0IsRUFBRUMsT0FBK0I7SUFDeEYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsZUFBZTtJQUNoRSxNQUFNQSxrQkFBa0IsQ0FBQztJQUV6QixJQUFJSCxNQUFNSSxPQUFPLElBQUlMLFFBQVFNLFFBQVEsRUFBRUYsZ0JBQWdCQyxPQUFPLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ssU0FBUyxDQUFDUCxRQUFRTSxRQUFRO0lBQzVHLElBQUlMLE1BQU1PLGlCQUFpQixJQUFJUixRQUFRUyxtQkFBbUIsRUFDeERMLGdCQUFnQkksaUJBQWlCLEdBQUdSLFFBQVFTLG1CQUFtQixDQUFDQyxHQUFHLENBQUNYLElBQUlHLFlBQVksQ0FBQ0ssU0FBUztJQUNoRyxJQUFJTixNQUFNVSxPQUFPLEVBQUVQLGdCQUFnQk8sT0FBTyxHQUFHWCxRQUFRVyxPQUFPO0lBQzVELElBQUlWLE1BQU1XLElBQUksRUFBRVIsZ0JBQWdCUSxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDbkQsSUFBSVgsTUFBTVksT0FBTyxJQUFJYixRQUFRYSxPQUFPLEVBQUVULGdCQUFnQlMsT0FBTyxHQUFHYixRQUFRYSxPQUFPLENBQUNILEdBQUcsQ0FBQyxDQUFDSSxTQUFXZixJQUFJRyxZQUFZLENBQUNhLHFCQUFxQixDQUFDaEIsS0FBS2U7SUFFNUksT0FBT2YsSUFBSUcsWUFBWSxDQUFDYyxXQUFXLENBQUNaLGVBQWUsQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDcEU7QUFFQSxPQUFPLFNBQVNhLCtCQUNk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
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvb25ib2FyZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHdWlsZE9uYm9hcmRpbmcsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQm90LFxuICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkT25ib2FyZGluZ1Byb21wdCxcbiAgR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uLFxuICBTZXR1cERlc2lyZWRQcm9wcyxcbiAgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nKTogR3VpbGRPbmJvYXJkaW5nIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1xuICBjb25zdCBndWlsZE9uYm9hcmRpbmcgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIGd1aWxkT25ib2FyZGluZy5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmRlZmF1bHRDaGFubmVsSWRzICYmIHBheWxvYWQuZGVmYXVsdF9jaGFubmVsX2lkcylcbiAgICBndWlsZE9uYm9hcmRpbmcuZGVmYXVsdENoYW5uZWxJZHMgPSBwYXlsb2FkLmRlZmF1bHRfY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW5hYmxlZCkgZ3VpbGRPbmJvYXJkaW5nLmVuYWJsZWQgPSBwYXlsb2FkLmVuYWJsZWRcbiAgaWYgKHByb3BzLm1vZGUpIGd1aWxkT25ib2FyZGluZy5tb2RlID0gcGF5bG9hZC5tb2RlXG4gIGlmIChwcm9wcy5wcm9tcHRzICYmIHBheWxvYWQucHJvbXB0cykgZ3VpbGRPbmJvYXJkaW5nLnByb21wdHMgPSBwYXlsb2FkLnByb21wdHMubWFwKChwcm9tcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcHJvbXB0KSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBwYXlsb2FkLCBndWlsZE9uYm9hcmRpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQpOiBHdWlsZE9uYm9hcmRpbmdQcm9tcHQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0XG4gIGNvbnN0IHByb21wdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZ1Byb21wdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHByb21wdC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbk9uYm9hcmRpbmcgJiYgcGF5bG9hZC5pbl9vbmJvYXJkaW5nKSBwcm9tcHQuaW5PbmJvYXJkaW5nID0gcGF5bG9hZC5pbl9vbmJvYXJkaW5nXG4gIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkKSBwcm9tcHQucmVxdWlyZWQgPSBwYXlsb2FkLnJlcXVpcmVkXG4gIGlmIChwcm9wcy5zaW5nbGVTZWxlY3QgJiYgcGF5bG9hZC5zaW5nbGVfc2VsZWN0KSBwcm9tcHQuc2luZ2xlU2VsZWN0ID0gcGF5bG9hZC5zaW5nbGVfc2VsZWN0XG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBwcm9tcHQudGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy50eXBlKSBwcm9tcHQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpIHByb21wdC5vcHRpb25zID0gcGF5bG9hZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbihib3QsIG9wdGlvbikpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcGF5bG9hZCwgcHJvbXB0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKTogR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvblxuICBjb25zdCBvcHRpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBvcHRpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkcyAmJiBwYXlsb2FkLmNoYW5uZWxfaWRzKSBvcHRpb24uY2hhbm5lbElkcyA9IHBheWxvYWQuY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMucm9sZUlkcyAmJiBwYXlsb2FkLnJvbGVfaWRzKSBvcHRpb24ucm9sZUlkcyA9IHBheWxvYWQucm9sZV9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgb3B0aW9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBvcHRpb24udGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBvcHRpb24uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdCwgcGF5bG9hZCwgb3B0aW9uKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwic25vd2ZsYWtlIiwiZGVmYXVsdENoYW5uZWxJZHMiLCJkZWZhdWx0X2NoYW5uZWxfaWRzIiwibWFwIiwiZW5hYmxlZCIsIm1vZGUiLCJwcm9tcHRzIiwicHJvbXB0IiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0IiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHQiLCJpZCIsImluT25ib2FyZGluZyIsImluX29uYm9hcmRpbmciLCJyZXF1aXJlZCIsInNpbmdsZVNlbGVjdCIsInNpbmdsZV9zZWxlY3QiLCJ0aXRsZSIsInR5cGUiLCJvcHRpb25zIiwib3B0aW9uIiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwiY2hhbm5lbElkcyIsImNoYW5uZWxfaWRzIiwicm9sZUlkcyIsInJvbGVfaWRzIiwiZW1vamkiLCJkZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxTQUFTQSx5QkFBeUJDLEdBQVEsRUFBRUMsT0FBK0I7SUFDaEYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsZUFBZTtJQUNoRSxNQUFNQSxrQkFBa0IsQ0FBQztJQUV6QixJQUFJSCxNQUFNSSxPQUFPLElBQUlMLFFBQVFNLFFBQVEsRUFBRUYsZ0JBQWdCQyxPQUFPLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ssU0FBUyxDQUFDUCxRQUFRTSxRQUFRO0lBQzVHLElBQUlMLE1BQU1PLGlCQUFpQixJQUFJUixRQUFRUyxtQkFBbUIsRUFDeERMLGdCQUFnQkksaUJBQWlCLEdBQUdSLFFBQVFTLG1CQUFtQixDQUFDQyxHQUFHLENBQUNYLElBQUlHLFlBQVksQ0FBQ0ssU0FBUztJQUNoRyxJQUFJTixNQUFNVSxPQUFPLEVBQUVQLGdCQUFnQk8sT0FBTyxHQUFHWCxRQUFRVyxPQUFPO0lBQzVELElBQUlWLE1BQU1XLElBQUksRUFBRVIsZ0JBQWdCUSxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDbkQsSUFBSVgsTUFBTVksT0FBTyxJQUFJYixRQUFRYSxPQUFPLEVBQUVULGdCQUFnQlMsT0FBTyxHQUFHYixRQUFR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
@@ -10,14 +10,15 @@ export function transformPoll(bot, payload) {
10
10
  if (props.allowMultiselect && payload.allow_multiselect) poll.allowMultiselect = payload.allow_multiselect;
11
11
  if (props.layoutType) poll.layoutType = payload.layout_type;
12
12
  if (props.results && payload.results) {
13
- poll.results = {};
13
+ const results = {};
14
14
  const pollResultProps = bot.transformers.desiredProperties.pollResult;
15
- if (pollResultProps.isFinalized && payload.results.is_finalized) poll.results.isFinalized = payload.results.is_finalized;
16
- if (pollResultProps.answerCounts && payload.results.answer_counts) poll.results.answerCounts = payload.results.answer_counts.map((x)=>({
15
+ if (pollResultProps.isFinalized && payload.results.is_finalized) results.isFinalized = payload.results.is_finalized;
16
+ if (pollResultProps.answerCounts && payload.results.answer_counts) results.answerCounts = payload.results.answer_counts.map((x)=>({
17
17
  id: x.id,
18
18
  count: x.count,
19
19
  meVoted: x.me_voted
20
20
  }));
21
+ poll.results = results;
21
22
  }
22
23
  return bot.transformers.customizers.poll(bot, payload, poll);
23
24
  }
@@ -29,4 +30,4 @@ export function transformPollMedia(bot, payload) {
29
30
  return bot.transformers.customizers.pollMedia(bot, payload, pollMedia);
30
31
  }
31
32
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcG9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRFbW9qaSwgRGlzY29yZFBvbGwsIERpc2NvcmRQb2xsTWVkaWEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxCb3QsIFBvbGwsIFBvbGxNZWRpYSwgUG9sbFJlc3VsdCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9sbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUG9sbCk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnBvbGwge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucG9sbFxuICBjb25zdCBwb2xsID0ge30gYXMgUG9sbFxuXG4gIGlmIChwcm9wcy5xdWVzdGlvbiAmJiBwYXlsb2FkLnF1ZXN0aW9uKSBwb2xsLnF1ZXN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5wb2xsTWVkaWEoYm90LCBwYXlsb2FkLnF1ZXN0aW9uKVxuICBpZiAocHJvcHMuYW5zd2VycyAmJiBwYXlsb2FkLmFuc3dlcnMpXG4gICAgcG9sbC5hbnN3ZXJzID0gcGF5bG9hZC5hbnN3ZXJzLm1hcCgoeCkgPT4gKHsgYW5zd2VySWQ6IHguYW5zd2VyX2lkLCBwb2xsTWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucG9sbE1lZGlhKGJvdCwgeC5wb2xsX21lZGlhKSB9KSlcbiAgaWYgKHByb3BzLmV4cGlyeSAmJiBwYXlsb2FkLmV4cGlyeSkgcG9sbC5leHBpcnkgPSBEYXRlLnBhcnNlKHBheWxvYWQuZXhwaXJ5KVxuICBpZiAocHJvcHMuYWxsb3dNdWx0aXNlbGVjdCAmJiBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0KSBwb2xsLmFsbG93TXVsdGlzZWxlY3QgPSBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0XG4gIGlmIChwcm9wcy5sYXlvdXRUeXBlKSBwb2xsLmxheW91dFR5cGUgPSBwYXlsb2FkLmxheW91dF90eXBlXG4gIGlmIChwcm9wcy5yZXN1bHRzICYmIHBheWxvYWQucmVzdWx0cykge1xuICAgIHBvbGwucmVzdWx0cyA9IHt9IGFzIFBvbGxSZXN1bHRcbiAgICBjb25zdCBwb2xsUmVzdWx0UHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxSZXN1bHRcblxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuaXNGaW5hbGl6ZWQgJiYgcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZCkgcG9sbC5yZXN1bHRzLmlzRmluYWxpemVkID0gcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZFxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuYW5zd2VyQ291bnRzICYmIHBheWxvYWQucmVzdWx0cy5hbnN3ZXJfY291bnRzKVxuICAgICAgcG9sbC5yZXN1bHRzLmFuc3dlckNvdW50cyA9IHBheWxvYWQucmVzdWx0cy5hbnN3ZXJfY291bnRzLm1hcCgoeCkgPT4gKHsgaWQ6IHguaWQsIGNvdW50OiB4LmNvdW50LCBtZVZvdGVkOiB4Lm1lX3ZvdGVkIH0pKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucG9sbChib3QsIHBheWxvYWQsIHBvbGwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Qb2xsTWVkaWEoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGxNZWRpYSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnBvbGxNZWRpYSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5wb2xsTWVkaWFcbiAgY29uc3QgcG9sbE1lZGlhID0ge30gYXMgUG9sbE1lZGlhXG5cbiAgaWYgKHByb3BzLnRleHQgJiYgcGF5bG9hZC50ZXh0KSBwb2xsTWVkaWEudGV4dCA9IHBheWxvYWQudGV4dFxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgcG9sbE1lZGlhLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkgYXMgRGlzY29yZEVtb2ppKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnBvbGxNZWRpYShib3QsIHBheWxvYWQsIHBvbGxNZWRpYSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1Qb2xsIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJwb2xsIiwicXVlc3Rpb24iLCJwb2xsTWVkaWEiLCJhbnN3ZXJzIiwibWFwIiwieCIsImFuc3dlcklkIiwiYW5zd2VyX2lkIiwicG9sbF9tZWRpYSIsImV4cGlyeSIsIkRhdGUiLCJwYXJzZSIsImFsbG93TXVsdGlzZWxlY3QiLCJhbGxvd19tdWx0aXNlbGVjdCIsImxheW91dFR5cGUiLCJsYXlvdXRfdHlwZSIsInJlc3VsdHMiLCJwb2xsUmVzdWx0UHJvcHMiLCJwb2xsUmVzdWx0IiwiaXNGaW5hbGl6ZWQiLCJpc19maW5hbGl6ZWQiLCJhbnN3ZXJDb3VudHMiLCJhbnN3ZXJfY291bnRzIiwiaWQiLCJjb3VudCIsIm1lVm90ZWQiLCJtZV92b3RlZCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtUG9sbE1lZGlhIiwidGV4dCIsImVtb2ppIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFNBQVNBLGNBQWNDLEdBQWdCLEVBQUVDLE9BQW9CO0lBQ2xFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLElBQUk7SUFDckQsTUFBTUEsT0FBTyxDQUFDO0lBRWQsSUFBSUgsTUFBTUksUUFBUSxJQUFJTCxRQUFRSyxRQUFRLEVBQUVELEtBQUtDLFFBQVEsR0FBR04sSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNQLEtBQUtDLFFBQVFLLFFBQVE7SUFDeEcsSUFBSUosTUFBTU0sT0FBTyxJQUFJUCxRQUFRTyxPQUFPLEVBQ2xDSCxLQUFLRyxPQUFPLEdBQUdQLFFBQVFPLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU8sQ0FBQTtZQUFFQyxVQUFVRCxFQUFFRSxTQUFTO1lBQUVMLFdBQVdQLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDUCxLQUFLVSxFQUFFRyxVQUFVO1FBQUUsQ0FBQTtJQUMvSCxJQUFJWCxNQUFNWSxNQUFNLElBQUliLFFBQVFhLE1BQU0sRUFBRVQsS0FBS1MsTUFBTSxHQUFHQyxLQUFLQyxLQUFLLENBQUNmLFFBQVFhLE1BQU07SUFDM0UsSUFBSVosTUFBTWUsZ0JBQWdCLElBQUloQixRQUFRaUIsaUJBQWlCLEVBQUViLEtBQUtZLGdCQUFnQixHQUFHaEIsUUFBUWlCLGlCQUFpQjtJQUMxRyxJQUFJaEIsTUFBTWlCLFVBQVUsRUFBRWQsS0FBS2MsVUFBVSxHQUFHbEIsUUFBUW1CLFdBQVc7SUFDM0QsSUFBSWxCLE1BQU1tQixPQUFPLElBQUlwQixRQUFRb0IsT0FBTyxFQUFFO1FBQ3BDaEIsS0FBS2dCLE9BQU8sR0FBRyxDQUFDO1FBQ2hCLE1BQU1DLGtCQUFrQnRCLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNtQixVQUFVO1FBRXJFLElBQUlELGdCQUFnQkUsV0FBVyxJQUFJdkIsUUFBUW9CLE9BQU8sQ0FBQ0ksWUFBWSxFQUFFcEIsS0FBS2dCLE9BQU8sQ0FBQ0csV0FBVyxHQUFHdkIsUUFBUW9CLE9BQU8sQ0FBQ0ksWUFBWTtRQUN4SCxJQUFJSCxnQkFBZ0JJLFlBQVksSUFBSXpCLFFBQVFvQixPQUFPLENBQUNNLGFBQWEsRUFDL0R0QixLQUFLZ0IsT0FBTyxDQUFDSyxZQUFZLEdBQUd6QixRQUFRb0IsT0FBTyxDQUFDTSxhQUFhLENBQUNsQixHQUFHLENBQUMsQ0FBQ0MsSUFBTyxDQUFBO2dCQUFFa0IsSUFBSWxCLEVBQUVrQixFQUFFO2dCQUFFQyxPQUFPbkIsRUFBRW1CLEtBQUs7Z0JBQUVDLFNBQVNwQixFQUFFcUIsUUFBUTtZQUFDLENBQUE7SUFDMUg7SUFFQSxPQUFPL0IsSUFBSUcsWUFBWSxDQUFDNkIsV0FBVyxDQUFDM0IsSUFBSSxDQUFDTCxLQUFLQyxTQUFTSTtBQUN6RDtBQUVBLE9BQU8sU0FBUzRCLG1CQUFtQmpDLEdBQWdCLEVBQUVDLE9BQXlCO0lBQzVFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNHLFNBQVM7SUFDMUQsTUFBTUEsWUFBWSxDQUFDO0lBRW5CLElBQUlMLE1BQU1nQyxJQUFJLElBQUlqQyxRQUFRaUMsSUFBSSxFQUFFM0IsVUFBVTJCLElBQUksR0FBR2pDLFFBQVFpQyxJQUFJO0lBQzdELElBQUloQyxNQUFNaUMsS0FBSyxJQUFJbEMsUUFBUWtDLEtBQUssRUFBRTVCLFVBQVU0QixLQUFLLEdBQUduQyxJQUFJRyxZQUFZLENBQUNnQyxLQUFLLENBQUNuQyxLQUFLQyxRQUFRa0MsS0FBSztJQUU3RixPQUFPbkMsSUFBSUcsWUFBWSxDQUFDNkIsV0FBVyxDQUFDekIsU0FBUyxDQUFDUCxLQUFLQyxTQUFTTTtBQUM5RCJ9
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcG9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRFbW9qaSwgRGlzY29yZFBvbGwsIERpc2NvcmRQb2xsTWVkaWEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQm90LCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBQb2xsLCBQb2xsTWVkaWEsIFBvbGxSZXN1bHQsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9sbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGwpOiBQb2xsIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxcbiAgY29uc3QgcG9sbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFBvbGwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5xdWVzdGlvbiAmJiBwYXlsb2FkLnF1ZXN0aW9uKSBwb2xsLnF1ZXN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5wb2xsTWVkaWEoYm90LCBwYXlsb2FkLnF1ZXN0aW9uKVxuICBpZiAocHJvcHMuYW5zd2VycyAmJiBwYXlsb2FkLmFuc3dlcnMpXG4gICAgcG9sbC5hbnN3ZXJzID0gcGF5bG9hZC5hbnN3ZXJzLm1hcCgoeCkgPT4gKHsgYW5zd2VySWQ6IHguYW5zd2VyX2lkLCBwb2xsTWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucG9sbE1lZGlhKGJvdCwgeC5wb2xsX21lZGlhKSB9KSlcbiAgaWYgKHByb3BzLmV4cGlyeSAmJiBwYXlsb2FkLmV4cGlyeSkgcG9sbC5leHBpcnkgPSBEYXRlLnBhcnNlKHBheWxvYWQuZXhwaXJ5KVxuICBpZiAocHJvcHMuYWxsb3dNdWx0aXNlbGVjdCAmJiBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0KSBwb2xsLmFsbG93TXVsdGlzZWxlY3QgPSBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0XG4gIGlmIChwcm9wcy5sYXlvdXRUeXBlKSBwb2xsLmxheW91dFR5cGUgPSBwYXlsb2FkLmxheW91dF90eXBlXG4gIGlmIChwcm9wcy5yZXN1bHRzICYmIHBheWxvYWQucmVzdWx0cykge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxQb2xsUmVzdWx0LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cbiAgICBjb25zdCBwb2xsUmVzdWx0UHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxSZXN1bHRcblxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuaXNGaW5hbGl6ZWQgJiYgcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZCkgcmVzdWx0cy5pc0ZpbmFsaXplZCA9IHBheWxvYWQucmVzdWx0cy5pc19maW5hbGl6ZWRcbiAgICBpZiAocG9sbFJlc3VsdFByb3BzLmFuc3dlckNvdW50cyAmJiBwYXlsb2FkLnJlc3VsdHMuYW5zd2VyX2NvdW50cylcbiAgICAgIHJlc3VsdHMuYW5zd2VyQ291bnRzID0gcGF5bG9hZC5yZXN1bHRzLmFuc3dlcl9jb3VudHMubWFwKCh4KSA9PiAoeyBpZDogeC5pZCwgY291bnQ6IHguY291bnQsIG1lVm90ZWQ6IHgubWVfdm90ZWQgfSkpXG5cbiAgICBwb2xsLnJlc3VsdHMgPSByZXN1bHRzXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5wb2xsKGJvdCwgcGF5bG9hZCwgcG9sbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVBvbGxNZWRpYShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGxNZWRpYSk6IFBvbGxNZWRpYSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5wb2xsTWVkaWFcbiAgY29uc3QgcG9sbE1lZGlhID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8UG9sbE1lZGlhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMudGV4dCAmJiBwYXlsb2FkLnRleHQpIHBvbGxNZWRpYS50ZXh0ID0gcGF5bG9hZC50ZXh0XG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBwb2xsTWVkaWEuZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSBhcyBEaXNjb3JkRW1vamkpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucG9sbE1lZGlhKGJvdCwgcGF5bG9hZCwgcG9sbE1lZGlhKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVBvbGwiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInBvbGwiLCJxdWVzdGlvbiIsInBvbGxNZWRpYSIsImFuc3dlcnMiLCJtYXAiLCJ4IiwiYW5zd2VySWQiLCJhbnN3ZXJfaWQiLCJwb2xsX21lZGlhIiwiZXhwaXJ5IiwiRGF0ZSIsInBhcnNlIiwiYWxsb3dNdWx0aXNlbGVjdCIsImFsbG93X211bHRpc2VsZWN0IiwibGF5b3V0VHlwZSIsImxheW91dF90eXBlIiwicmVzdWx0cyIsInBvbGxSZXN1bHRQcm9wcyIsInBvbGxSZXN1bHQiLCJpc0ZpbmFsaXplZCIsImlzX2ZpbmFsaXplZCIsImFuc3dlckNvdW50cyIsImFuc3dlcl9jb3VudHMiLCJpZCIsImNvdW50IiwibWVWb3RlZCIsIm1lX3ZvdGVkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1Qb2xsTWVkaWEiLCJ0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