@discordeno/bot 22.0.1-next.fa338e6 → 22.0.1-next.fca3cbb

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 (196) hide show
  1. package/dist/bot.d.ts +3 -3
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +1 -1
  4. package/dist/desiredProperties.d.ts +4 -1
  5. package/dist/desiredProperties.d.ts.map +1 -1
  6. package/dist/desiredProperties.js +35 -1
  7. package/dist/events.d.ts +22 -7
  8. package/dist/events.d.ts.map +1 -1
  9. package/dist/events.js +1 -1
  10. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  11. package/dist/handlers/invites/INVITE_CREATE.js +20 -5
  12. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
  13. package/dist/handlers/invites/INVITE_DELETE.js +4 -4
  14. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  15. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +4 -4
  16. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  17. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -3
  18. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  19. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +4 -3
  20. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  21. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +4 -3
  22. package/dist/helpers.d.ts +13 -2
  23. package/dist/helpers.d.ts.map +1 -1
  24. package/dist/helpers.js +39 -5
  25. package/dist/transformers/activity.d.ts +8 -4
  26. package/dist/transformers/activity.d.ts.map +1 -1
  27. package/dist/transformers/activity.js +10 -5
  28. package/dist/transformers/application.d.ts +3 -3
  29. package/dist/transformers/application.d.ts.map +1 -1
  30. package/dist/transformers/application.js +15 -7
  31. package/dist/transformers/applicationCommand.d.ts +1 -2
  32. package/dist/transformers/applicationCommand.d.ts.map +1 -1
  33. package/dist/transformers/applicationCommand.js +1 -1
  34. package/dist/transformers/applicationCommandOption.d.ts +1 -2
  35. package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
  36. package/dist/transformers/applicationCommandOption.js +1 -1
  37. package/dist/transformers/applicationCommandOptionChoice.d.ts +1 -2
  38. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
  39. package/dist/transformers/applicationCommandOptionChoice.js +1 -1
  40. package/dist/transformers/applicationCommandPermission.d.ts +1 -2
  41. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
  42. package/dist/transformers/applicationCommandPermission.js +1 -1
  43. package/dist/transformers/attachment.d.ts +3 -1
  44. package/dist/transformers/attachment.d.ts.map +1 -1
  45. package/dist/transformers/attachment.js +12 -4
  46. package/dist/transformers/auditLogEntry.d.ts +1 -2
  47. package/dist/transformers/auditLogEntry.d.ts.map +1 -1
  48. package/dist/transformers/auditLogEntry.js +1 -1
  49. package/dist/transformers/automodActionExecution.d.ts +1 -2
  50. package/dist/transformers/automodActionExecution.d.ts.map +1 -1
  51. package/dist/transformers/automodActionExecution.js +1 -1
  52. package/dist/transformers/automodRule.d.ts +1 -2
  53. package/dist/transformers/automodRule.d.ts.map +1 -1
  54. package/dist/transformers/automodRule.js +1 -1
  55. package/dist/transformers/avatarDecorationData.d.ts +3 -2
  56. package/dist/transformers/avatarDecorationData.d.ts.map +1 -1
  57. package/dist/transformers/avatarDecorationData.js +6 -3
  58. package/dist/transformers/channel.d.ts +6 -3
  59. package/dist/transformers/channel.d.ts.map +1 -1
  60. package/dist/transformers/channel.js +10 -6
  61. package/dist/transformers/component.d.ts +9 -4
  62. package/dist/transformers/component.d.ts.map +1 -1
  63. package/dist/transformers/component.js +75 -51
  64. package/dist/transformers/embed.d.ts +1 -2
  65. package/dist/transformers/embed.d.ts.map +1 -1
  66. package/dist/transformers/embed.js +22 -5
  67. package/dist/transformers/emoji.d.ts +7 -3
  68. package/dist/transformers/emoji.d.ts.map +1 -1
  69. package/dist/transformers/emoji.js +10 -5
  70. package/dist/transformers/entitlement.d.ts +3 -2
  71. package/dist/transformers/entitlement.d.ts.map +1 -1
  72. package/dist/transformers/entitlement.js +6 -3
  73. package/dist/transformers/gatewayBot.d.ts +1 -2
  74. package/dist/transformers/gatewayBot.d.ts.map +1 -1
  75. package/dist/transformers/gatewayBot.js +1 -1
  76. package/dist/transformers/guild.d.ts +3 -2
  77. package/dist/transformers/guild.d.ts.map +1 -1
  78. package/dist/transformers/guild.js +25 -25
  79. package/dist/transformers/incidentsData.d.ts +3 -2
  80. package/dist/transformers/incidentsData.d.ts.map +1 -1
  81. package/dist/transformers/incidentsData.js +6 -3
  82. package/dist/transformers/integration.d.ts +1 -2
  83. package/dist/transformers/integration.d.ts.map +1 -1
  84. package/dist/transformers/integration.js +1 -1
  85. package/dist/transformers/interaction.d.ts +18 -12
  86. package/dist/transformers/interaction.d.ts.map +1 -1
  87. package/dist/transformers/interaction.js +36 -22
  88. package/dist/transformers/invite.d.ts +4 -4
  89. package/dist/transformers/invite.d.ts.map +1 -1
  90. package/dist/transformers/invite.js +26 -25
  91. package/dist/transformers/lobby.d.ts +13 -4
  92. package/dist/transformers/lobby.d.ts.map +1 -1
  93. package/dist/transformers/lobby.js +35 -5
  94. package/dist/transformers/member.d.ts +3 -2
  95. package/dist/transformers/member.d.ts.map +1 -1
  96. package/dist/transformers/member.js +6 -3
  97. package/dist/transformers/message.d.ts +20 -10
  98. package/dist/transformers/message.d.ts.map +1 -1
  99. package/dist/transformers/message.js +51 -25
  100. package/dist/transformers/onboarding.d.ts +9 -4
  101. package/dist/transformers/onboarding.d.ts.map +1 -1
  102. package/dist/transformers/onboarding.js +17 -10
  103. package/dist/transformers/poll.d.ts +6 -3
  104. package/dist/transformers/poll.d.ts.map +1 -1
  105. package/dist/transformers/poll.js +14 -7
  106. package/dist/transformers/presence.d.ts +3 -2
  107. package/dist/transformers/presence.d.ts.map +1 -1
  108. package/dist/transformers/presence.js +9 -6
  109. package/dist/transformers/reverse/component.d.ts.map +1 -1
  110. package/dist/transformers/reverse/component.js +4 -1
  111. package/dist/transformers/reverse/embed.d.ts.map +1 -1
  112. package/dist/transformers/reverse/embed.js +19 -4
  113. package/dist/transformers/reverse/member.d.ts.map +1 -1
  114. package/dist/transformers/reverse/member.js +2 -1
  115. package/dist/transformers/reverse/user.d.ts +5 -0
  116. package/dist/transformers/reverse/user.d.ts.map +1 -0
  117. package/dist/transformers/reverse/user.js +17 -0
  118. package/dist/transformers/role.d.ts +7 -4
  119. package/dist/transformers/role.d.ts.map +1 -1
  120. package/dist/transformers/role.js +11 -7
  121. package/dist/transformers/scheduledEvent.d.ts +6 -3
  122. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  123. package/dist/transformers/scheduledEvent.js +10 -5
  124. package/dist/transformers/sku.d.ts +3 -2
  125. package/dist/transformers/sku.d.ts.map +1 -1
  126. package/dist/transformers/sku.js +6 -3
  127. package/dist/transformers/soundboardSound.d.ts +3 -2
  128. package/dist/transformers/soundboardSound.d.ts.map +1 -1
  129. package/dist/transformers/soundboardSound.js +6 -3
  130. package/dist/transformers/stageInstance.d.ts +3 -2
  131. package/dist/transformers/stageInstance.d.ts.map +1 -1
  132. package/dist/transformers/stageInstance.js +6 -3
  133. package/dist/transformers/stageInviteInstance.d.ts +3 -3
  134. package/dist/transformers/stageInviteInstance.d.ts.map +1 -1
  135. package/dist/transformers/stageInviteInstance.js +10 -8
  136. package/dist/transformers/sticker.d.ts +4 -3
  137. package/dist/transformers/sticker.d.ts.map +1 -1
  138. package/dist/transformers/sticker.js +6 -3
  139. package/dist/transformers/subscription.d.ts +3 -2
  140. package/dist/transformers/subscription.d.ts.map +1 -1
  141. package/dist/transformers/subscription.js +6 -3
  142. package/dist/transformers/team.d.ts +1 -2
  143. package/dist/transformers/team.d.ts.map +1 -1
  144. package/dist/transformers/team.js +1 -1
  145. package/dist/transformers/template.d.ts +1 -2
  146. package/dist/transformers/template.d.ts.map +1 -1
  147. package/dist/transformers/template.js +1 -1
  148. package/dist/transformers/threadMember.d.ts +2 -3
  149. package/dist/transformers/threadMember.d.ts.map +1 -1
  150. package/dist/transformers/threadMember.js +1 -1
  151. package/dist/transformers/toggles/channel.d.ts +1 -1
  152. package/dist/transformers/toggles/channel.d.ts.map +1 -1
  153. package/dist/transformers/toggles/channel.js +1 -1
  154. package/dist/transformers/toggles/emoji.d.ts +1 -1
  155. package/dist/transformers/toggles/emoji.d.ts.map +1 -1
  156. package/dist/transformers/toggles/emoji.js +1 -1
  157. package/dist/transformers/toggles/guild.d.ts +1 -1
  158. package/dist/transformers/toggles/guild.d.ts.map +1 -1
  159. package/dist/transformers/toggles/guild.js +1 -1
  160. package/dist/transformers/toggles/role.d.ts +1 -1
  161. package/dist/transformers/toggles/role.d.ts.map +1 -1
  162. package/dist/transformers/toggles/role.js +1 -1
  163. package/dist/transformers/toggles/user.d.ts +1 -1
  164. package/dist/transformers/toggles/user.d.ts.map +1 -1
  165. package/dist/transformers/toggles/user.js +1 -1
  166. package/dist/transformers/toggles/voice.d.ts +1 -1
  167. package/dist/transformers/toggles/voice.d.ts.map +1 -1
  168. package/dist/transformers/toggles/voice.js +1 -1
  169. package/dist/transformers/types.d.ts +101 -16
  170. package/dist/transformers/types.d.ts.map +1 -1
  171. package/dist/transformers/types.js +2 -2
  172. package/dist/transformers/user.d.ts +13 -5
  173. package/dist/transformers/user.d.ts.map +1 -1
  174. package/dist/transformers/user.js +18 -9
  175. package/dist/transformers/voiceRegion.d.ts +1 -2
  176. package/dist/transformers/voiceRegion.d.ts.map +1 -1
  177. package/dist/transformers/voiceRegion.js +1 -1
  178. package/dist/transformers/voiceState.d.ts +3 -3
  179. package/dist/transformers/voiceState.d.ts.map +1 -1
  180. package/dist/transformers/voiceState.js +6 -4
  181. package/dist/transformers/webhook.d.ts +3 -1
  182. package/dist/transformers/webhook.d.ts.map +1 -1
  183. package/dist/transformers/webhook.js +9 -6
  184. package/dist/transformers/welcomeScreen.d.ts +1 -2
  185. package/dist/transformers/welcomeScreen.d.ts.map +1 -1
  186. package/dist/transformers/welcomeScreen.js +1 -1
  187. package/dist/transformers/widget.d.ts +1 -2
  188. package/dist/transformers/widget.d.ts.map +1 -1
  189. package/dist/transformers/widget.js +7 -5
  190. package/dist/transformers/widgetSettings.d.ts +1 -2
  191. package/dist/transformers/widgetSettings.d.ts.map +1 -1
  192. package/dist/transformers/widgetSettings.js +1 -1
  193. package/dist/transformers.d.ts +175 -79
  194. package/dist/transformers.d.ts.map +1 -1
  195. package/dist/transformers.js +32 -3
  196. package/package.json +9 -9
@@ -1,5 +1,6 @@
1
+ import { callCustomizer } from '../transformers.js';
1
2
  import { ToggleBitfield } from './toggles/ToggleBitfield.js';
2
- export function transformLobby(bot, payload) {
3
+ export function transformLobby(bot, payload, extra) {
3
4
  const props = bot.transformers.desiredProperties.lobby;
4
5
  const lobby = {};
5
6
  if (props.id && payload.id) lobby.id = bot.transformers.snowflake(payload.id);
@@ -7,15 +8,44 @@ export function transformLobby(bot, payload) {
7
8
  if (props.metadata && payload.metadata) lobby.metadata = payload.metadata;
8
9
  if (props.members && payload.members) lobby.members = payload.members.map((member)=>bot.transformers.lobbyMember(bot, member));
9
10
  if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, payload.linked_channel);
10
- return bot.transformers.customizers.lobby(bot, payload, lobby);
11
+ return callCustomizer('lobby', bot, payload, lobby, {
12
+ partial: extra?.partial ?? false
13
+ });
11
14
  }
12
- export function transformLobbyMember(bot, payload) {
15
+ export function transformLobbyMember(bot, payload, extra) {
13
16
  const props = bot.transformers.desiredProperties.lobbyMember;
14
17
  const lobbyMember = {};
15
18
  if (props.id && payload.id) lobbyMember.id = bot.transformers.snowflake(payload.id);
16
19
  if (props.metadata && payload.metadata) lobbyMember.metadata = payload.metadata;
17
20
  if (props.flags && payload.flags) lobbyMember.flags = new ToggleBitfield(payload.flags);
18
- return bot.transformers.customizers.lobbyMember(bot, payload, lobbyMember);
21
+ return callCustomizer('lobbyMember', bot, payload, lobbyMember, {
22
+ partial: extra?.partial ?? false
23
+ });
24
+ }
25
+ export function transformLobbyMessage(bot, payload, extra) {
26
+ const props = bot.transformers.desiredProperties.lobbyMessage;
27
+ const lobbyMessage = {};
28
+ if (props.id && payload.id) lobbyMessage.id = bot.transformers.snowflake(payload.id);
29
+ if (props.type && payload.type !== undefined) lobbyMessage.type = payload.type;
30
+ if (props.content && payload.content) lobbyMessage.content = payload.content;
31
+ if (props.lobbyId && payload.lobby_id) lobbyMessage.lobbyId = bot.transformers.snowflake(payload.lobby_id);
32
+ if (props.channelId && payload.channel_id) lobbyMessage.channelId = bot.transformers.snowflake(payload.channel_id);
33
+ if (props.author && payload.author) lobbyMessage.author = bot.transformers.user(bot, payload.author);
34
+ if (props.metadata && payload.metadata) lobbyMessage.metadata = payload.metadata;
35
+ if (props.moderationMetadata && payload.moderation_metadata) lobbyMessage.moderationMetadata = payload.moderation_metadata;
36
+ if (props.flags && payload.flags) lobbyMessage.flags = new ToggleBitfield(payload.flags);
37
+ if (props.applicationId && payload.application_id) lobbyMessage.applicationId = bot.transformers.snowflake(payload.application_id);
38
+ return callCustomizer('lobbyMessage', bot, payload, lobbyMessage, {
39
+ partial: extra?.partial ?? false
40
+ });
41
+ }
42
+ export function transformLobbyInvite(bot, payload, extra) {
43
+ const props = bot.transformers.desiredProperties.lobbyInvite;
44
+ const lobbyInvite = {};
45
+ if (props.code && payload.code) lobbyInvite.code = payload.code;
46
+ return callCustomizer('lobbyInvite', bot, payload, lobbyInvite, {
47
+ partial: extra?.partial ?? false
48
+ });
19
49
  }
20
50
 
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbG9iYnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTG9iYnksIERpc2NvcmRMb2JieU1lbWJlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi4vYm90LmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnO1xuaW1wb3J0IHR5cGUgeyBMb2JieSwgTG9iYnlNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxvYmJ5KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTG9iYnkpOiBMb2JieSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5sb2JieTtcbiAgY29uc3QgbG9iYnkgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBsb2JieS5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBsaWNhdGlvbl9pZCk7XG4gIGlmIChwcm9wcy5tZXRhZGF0YSAmJiBwYXlsb2FkLm1ldGFkYXRhKSBsb2JieS5tZXRhZGF0YSA9IHBheWxvYWQubWV0YWRhdGE7XG4gIGlmIChwcm9wcy5tZW1iZXJzICYmIHBheWxvYWQubWVtYmVycykgbG9iYnkubWVtYmVycyA9IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy5sb2JieU1lbWJlcihib3QsIG1lbWJlcikpO1xuICBpZiAocHJvcHMubGlua2VkQ2hhbm5lbCAmJiBwYXlsb2FkLmxpbmtlZF9jaGFubmVsKSBsb2JieS5saW5rZWRDaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC5saW5rZWRfY2hhbm5lbCk7XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubG9iYnkoYm90LCBwYXlsb2FkLCBsb2JieSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Mb2JieU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZExvYmJ5TWVtYmVyKTogTG9iYnlNZW1iZXIge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubG9iYnlNZW1iZXI7XG4gIGNvbnN0IGxvYmJ5TWVtYmVyID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TG9iYnlNZW1iZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbG9iYnlNZW1iZXIuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLm1ldGFkYXRhICYmIHBheWxvYWQubWV0YWRhdGEpIGxvYmJ5TWVtYmVyLm1ldGFkYXRhID0gcGF5bG9hZC5tZXRhZGF0YTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGxvYmJ5TWVtYmVyLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmxvYmJ5TWVtYmVyKGJvdCwgcGF5bG9hZCwgbG9iYnlNZW1iZXIpO1xufVxuIl0sIm5hbWVzIjpbIlRvZ2dsZUJpdGZpZWxkIiwidHJhbnNmb3JtTG9iYnkiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImxvYmJ5IiwiaWQiLCJzbm93Zmxha2UiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJtZXRhZGF0YSIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJsb2JieU1lbWJlciIsImxpbmtlZENoYW5uZWwiLCJsaW5rZWRfY2hhbm5lbCIsImNoYW5uZWwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUxvYmJ5TWVtYmVyIiwiZmxhZ3MiXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxlQUFlQyxHQUFRLEVBQUVDLE9BQXFCO0lBQzVELE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUSxDQUFDO0lBRWYsSUFBSUgsTUFBTUksRUFBRSxJQUFJTCxRQUFRSyxFQUFFLEVBQUVELE1BQU1DLEVBQUUsR0FBR04sSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFLLEVBQUU7SUFDNUUsSUFBSUosTUFBTU0sYUFBYSxJQUFJUCxRQUFRUSxjQUFjLEVBQUVKLE1BQU1HLGFBQWEsR0FBR1IsSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFRLGNBQWM7SUFDMUgsSUFBSVAsTUFBTVEsUUFBUSxJQUFJVCxRQUFRUyxRQUFRLEVBQUVMLE1BQU1LLFFBQVEsR0FBR1QsUUFBUVMsUUFBUTtJQUN6RSxJQUFJUixNQUFNUyxPQUFPLElBQUlWLFFBQVFVLE9BQU8sRUFBRU4sTUFBTU0sT0FBTyxHQUFHVixRQUFRVSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFXYixJQUFJRyxZQUFZLENBQUNXLFdBQVcsQ0FBQ2QsS0FBS2E7SUFDeEgsSUFBSVgsTUFBTWEsYUFBYSxJQUFJZCxRQUFRZSxjQUFjLEVBQUVYLE1BQU1VLGFBQWEsR0FBR2YsSUFBSUcsWUFBWSxDQUFDYyxPQUFPLENBQUNqQixLQUFLQyxRQUFRZSxjQUFjO0lBRTdILE9BQU9oQixJQUFJRyxZQUFZLENBQUNlLFdBQVcsQ0FBQ2IsS0FBSyxDQUFDTCxLQUFLQyxTQUFTSTtBQUMxRDtBQUVBLE9BQU8sU0FBU2MscUJBQXFCbkIsR0FBUSxFQUFFQyxPQUEyQjtJQUN4RSxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDVSxXQUFXO0lBQzVELE1BQU1BLGNBQWMsQ0FBQztJQUVyQixJQUFJWixNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRVEsWUFBWVIsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUNsRixJQUFJSixNQUFNUSxRQUFRLElBQUlULFFBQVFTLFFBQVEsRUFBRUksWUFBWUosUUFBUSxHQUFHVCxRQUFRUyxRQUFRO0lBQy9FLElBQUlSLE1BQU1rQixLQUFLLElBQUluQixRQUFRbUIsS0FBSyxFQUFFTixZQUFZTSxLQUFLLEdBQUcsSUFBSXRCLGVBQWVHLFFBQVFtQixLQUFLO0lBRXRGLE9BQU9wQixJQUFJRyxZQUFZLENBQUNlLFdBQVcsQ0FBQ0osV0FBVyxDQUFDZCxLQUFLQyxTQUFTYTtBQUNoRSJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbG9iYnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTG9iYnksIERpc2NvcmRMb2JieUludml0ZSwgRGlzY29yZExvYmJ5TWVtYmVyLCBEaXNjb3JkTG9iYnlNZXNzYWdlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IExvYmJ5LCBMb2JieUludml0ZSwgTG9iYnlNZW1iZXIsIExvYmJ5TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTG9iYnkoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5PiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5O1xuICBjb25zdCBsb2JieSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGxvYmJ5LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCk7XG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIGxvYmJ5LmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKTtcbiAgaWYgKHByb3BzLm1ldGFkYXRhICYmIHBheWxvYWQubWV0YWRhdGEpIGxvYmJ5Lm1ldGFkYXRhID0gcGF5bG9hZC5tZXRhZGF0YTtcbiAgaWYgKHByb3BzLm1lbWJlcnMgJiYgcGF5bG9hZC5tZW1iZXJzKSBsb2JieS5tZW1iZXJzID0gcGF5bG9hZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5TWVtYmVyKGJvdCwgbWVtYmVyKSk7XG4gIGlmIChwcm9wcy5saW5rZWRDaGFubmVsICYmIHBheWxvYWQubGlua2VkX2NoYW5uZWwpIGxvYmJ5LmxpbmtlZENoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLmxpbmtlZF9jaGFubmVsKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2xvYmJ5JywgYm90LCBwYXlsb2FkLCBsb2JieSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxvYmJ5TWVtYmVyKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRMb2JieU1lbWJlcj4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5sb2JieU1lbWJlcjtcbiAgY29uc3QgbG9iYnlNZW1iZXIgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxMb2JieU1lbWJlciwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieU1lbWJlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMubWV0YWRhdGEgJiYgcGF5bG9hZC5tZXRhZGF0YSkgbG9iYnlNZW1iZXIubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhO1xuICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5mbGFncykgbG9iYnlNZW1iZXIuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncyk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdsb2JieU1lbWJlcicsIGJvdCwgcGF5bG9hZCwgbG9iYnlNZW1iZXIsIHtcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Mb2JieU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5TWVzc2FnZT4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5sb2JieU1lc3NhZ2U7XG4gIGNvbnN0IGxvYmJ5TWVzc2FnZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5TWVzc2FnZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsb2JieU1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlICE9PSB1bmRlZmluZWQpIGxvYmJ5TWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuY29udGVudCAmJiBwYXlsb2FkLmNvbnRlbnQpIGxvYmJ5TWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50O1xuICBpZiAocHJvcHMubG9iYnlJZCAmJiBwYXlsb2FkLmxvYmJ5X2lkKSBsb2JieU1lc3NhZ2UubG9iYnlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubG9iYnlfaWQpO1xuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgbG9iYnlNZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZCk7XG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5hdXRob3IpIGxvYmJ5TWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmF1dGhvcik7XG4gIGlmIChwcm9wcy5tZXRhZGF0YSAmJiBwYXlsb2FkLm1ldGFkYXRhKSBsb2JieU1lc3NhZ2UubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhO1xuICBpZiAocHJvcHMubW9kZXJhdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubW9kZXJhdGlvbl9tZXRhZGF0YSkgbG9iYnlNZXNzYWdlLm1vZGVyYXRpb25NZXRhZGF0YSA9IHBheWxvYWQubW9kZXJhdGlvbl9tZXRhZGF0YTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIGxvYmJ5TWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgbG9iYnlNZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ2xvYmJ5TWVzc2FnZScsIGJvdCwgcGF5bG9hZCwgbG9iYnlNZXNzYWdlLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTG9iYnlJbnZpdGUoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExvYmJ5SW52aXRlPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5SW52aXRlO1xuICBjb25zdCBsb2JieUludml0ZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPExvYmJ5SW52aXRlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5jb2RlKSBsb2JieUludml0ZS5jb2RlID0gcGF5bG9hZC5jb2RlO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignbG9iYnlJbnZpdGUnLCBib3QsIHBheWxvYWQsIGxvYmJ5SW52aXRlLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNhbGxDdXN0b21pemVyIiwiVG9nZ2xlQml0ZmllbGQiLCJ0cmFuc2Zvcm1Mb2JieSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJsb2JieSIsImlkIiwic25vd2ZsYWtlIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibWV0YWRhdGEiLCJtZW1iZXJzIiwibWFwIiwibWVtYmVyIiwibG9iYnlNZW1iZXIiLCJsaW5rZWRDaGFubmVsIiwibGlua2VkX2NoYW5uZWwiLCJjaGFubmVsIiwicGFydGlhbCIsInRyYW5zZm9ybUxvYmJ5TWVtYmVyIiwiZmxhZ3MiLCJ0cmFuc2Zvcm1Mb2JieU1lc3NhZ2UiLCJsb2JieU1lc3NhZ2UiLCJ0eXBlIiwidW5kZWZpbmVkIiwiY29udGVudCIsImxvYmJ5SWQiLCJsb2JieV9pZCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJhdXRob3IiLCJ1c2VyIiwibW9kZXJhdGlvbk1ldGFkYXRhIiwibW9kZXJhdGlvbl9tZXRhZGF0YSIsInRyYW5zZm9ybUxvYmJ5SW52aXRlIiwibG9iYnlJbnZpdGUiLCJjb2RlIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxlQUFlQyxHQUFRLEVBQUVDLE9BQThCLEVBQUVDLEtBQTZCO0lBQ3BHLE1BQU1DLFFBQVFILElBQUlJLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUSxDQUFDO0lBRWYsSUFBSUgsTUFBTUksRUFBRSxJQUFJTixRQUFRTSxFQUFFLEVBQUVELE1BQU1DLEVBQUUsR0FBR1AsSUFBSUksWUFBWSxDQUFDSSxTQUFTLENBQUNQLFFBQVFNLEVBQUU7SUFDNUUsSUFBSUosTUFBTU0sYUFBYSxJQUFJUixRQUFRUyxjQUFjLEVBQUVKLE1BQU1HLGFBQWEsR0FBR1QsSUFBSUksWUFBWSxDQUFDSSxTQUFTLENBQUNQLFFBQVFTLGNBQWM7SUFDMUgsSUFBSVAsTUFBTVEsUUFBUSxJQUFJVixRQUFRVSxRQUFRLEVBQUVMLE1BQU1LLFFBQVEsR0FBR1YsUUFBUVUsUUFBUTtJQUN6RSxJQUFJUixNQUFNUyxPQUFPLElBQUlYLFFBQVFXLE9BQU8sRUFBRU4sTUFBTU0sT0FBTyxHQUFHWCxRQUFRVyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFXZCxJQUFJSSxZQUFZLENBQUNXLFdBQVcsQ0FBQ2YsS0FBS2M7SUFDeEgsSUFBSVgsTUFBTWEsYUFBYSxJQUFJZixRQUFRZ0IsY0FBYyxFQUFFWCxNQUFNVSxhQUFhLEdBQUdoQixJQUFJSSxZQUFZLENBQUNjLE9BQU8sQ0FBQ2xCLEtBQUtDLFFBQVFnQixj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
@@ -2,8 +2,9 @@ import type { BigString, DiscordMember } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
3
  import type { Member } from './types.js';
4
4
  export declare const baseMember: Member;
5
- export declare function transformMember(bot: Bot, payload: DiscordMember, extra?: {
5
+ export declare function transformMember(bot: Bot, payload: Partial<DiscordMember>, extra?: {
6
6
  guildId?: BigString;
7
7
  userId?: BigString;
8
- }): Member;
8
+ partial?: boolean;
9
+ }): any;
9
10
  //# sourceMappingURL=member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../src/transformers/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,MA4BxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,MAAM,CAwB7H"}
1
+ {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../src/transformers/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,MA4BxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OA0BhJ"}
@@ -1,4 +1,5 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
+ import { callCustomizer } from '../transformers.js';
2
3
  import { MemberToggles } from './toggles/member.js';
3
4
  import { Permissions } from './toggles/Permissions.js';
4
5
  export const baseMember = {
@@ -45,10 +46,12 @@ export function transformMember(bot, payload, extra) {
45
46
  if (props.permissions && payload.permissions) member.permissions = new Permissions(payload.permissions);
46
47
  if (props.toggles) member.toggles = new MemberToggles(payload);
47
48
  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, {
49
+ if (props.collectibles && payload.collectibles) member.collectibles = bot.transformers.collectibles(bot, payload.collectibles);
50
+ return callCustomizer('member', bot, payload, member, {
49
51
  guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
50
- userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined
52
+ userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined,
53
+ partial: extra?.partial ?? false
51
54
  });
52
55
  }
53
56
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi4vYm90LmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgTWVtYmVyVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9tZW1iZXIuanMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IE1lbWJlciA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBNZW1iZXIpLFxuXG4gIGdldCBkZWFmKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdkZWFmJyk7XG4gIH0sXG4gIGdldCBtdXRlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtdXRlJyk7XG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJyk7XG4gIH0sXG4gIGdldCBmbGFncygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5mbGFncyA/PyAwO1xuICB9LFxuICBnZXQgZGlkUmVqb2luKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uZGlkUmVqb2luO1xuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZztcbiAgfSxcbiAgZ2V0IGJ5cGFzc2VzVmVyaWZpY2F0aW9uKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uYnlwYXNzZXNWZXJpZmljYXRpb247XG4gIH0sXG4gIGdldCBjb21wbGV0ZWRPbmJvYXJkaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uY29tcGxldGVkT25ib2FyZGluZztcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZW1iZXIoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZW1iZXIsIGV4dHJhPzogeyBndWlsZElkPzogQmlnU3RyaW5nOyB1c2VySWQ/OiBCaWdTdHJpbmcgfSk6IE1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VNZW1iZXIpO1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyO1xuXG4gIGlmIChwcm9wcy5pZCAmJiBleHRyYT8udXNlcklkKSBtZW1iZXIuaWQgPSB0eXBlb2YgZXh0cmEudXNlcklkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLnVzZXJJZCkgOiBleHRyYS51c2VySWQ7XG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGV4dHJhPy5ndWlsZElkKSBtZW1iZXIuZ3VpbGRJZCA9IHR5cGVvZiBleHRyYS5ndWlsZElkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLmd1aWxkSWQpIDogZXh0cmEuZ3VpbGRJZDtcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZW1iZXIudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcik7XG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2s7XG4gIGlmIChwcm9wcy5yb2xlcyAmJiBwYXlsb2FkLnJvbGVzKSBtZW1iZXIucm9sZXMgPSBwYXlsb2FkLnJvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSk7XG4gIGlmIChwcm9wcy5qb2luZWRBdCAmJiBwYXlsb2FkLmpvaW5lZF9hdCkgbWVtYmVyLmpvaW5lZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmpvaW5lZF9hdCk7XG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpO1xuICBpZiAocHJvcHMuY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwgJiYgcGF5bG9hZC5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsKVxuICAgIG1lbWJlci5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCA9IERhdGUucGFyc2UocGF5bG9hZC5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsKTtcbiAgaWYgKHByb3BzLmF2YXRhciAmJiBwYXlsb2FkLmF2YXRhcikgbWVtYmVyLmF2YXRhciA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5hdmF0YXIpO1xuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcik7XG4gIGlmIChwcm9wcy5wZXJtaXNzaW9ucyAmJiBwYXlsb2FkLnBlcm1pc3Npb25zKSBtZW1iZXIucGVybWlzc2lvbnMgPSBuZXcgUGVybWlzc2lvbnMocGF5bG9hZC5wZXJtaXNzaW9ucyk7XG4gIGlmIChwcm9wcy50b2dnbGVzKSBtZW1iZXIudG9nZ2xlcyA9IG5ldyBNZW1iZXJUb2dnbGVzKHBheWxvYWQpO1xuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lbWJlcihib3QsIHBheWxvYWQsIG1lbWJlciwge1xuICAgIGd1aWxkSWQ6IGV4dHJhPy5ndWlsZElkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiB1bmRlZmluZWQsXG4gICAgdXNlcklkOiBleHRyYT8udXNlcklkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEudXNlcklkKSA6IHVuZGVmaW5lZCxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiaWNvbkhhc2hUb0JpZ0ludCIsIk1lbWJlclRvZ2dsZXMiLCJQZXJtaXNzaW9ucyIsImJhc2VNZW1iZXIiLCJ1bmRlZmluZWQiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwiZmxhZ3MiLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsInRyYW5zZm9ybU1lbWJlciIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInVzZXJJZCIsInNub3dmbGFrZSIsImd1aWxkSWQiLCJ1c2VyIiwibmljayIsInJvbGVzIiwibWFwIiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJwcmVtaXVtU2luY2UiLCJwcmVtaXVtX3NpbmNlIiwiY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwiLCJjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsIiwiYXZhdGFyIiwiYmFubmVyIiwicGVybWlzc2lvbnMiLCJhdmF0YXJEZWNvcmF0aW9uRGF0YSIsImF2YXRhcl9kZWNvcmF0aW9uX2RhdGEiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBR3JELFNBQVNDLGFBQWEsUUFBUSxzQkFBc0I7QUFDcEQsU0FBU0MsV0FBVyxRQUFRLDJCQUEyQjtBQUd2RCxPQUFPLE1BQU1DLGFBQXFCO0lBQ2hDLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUUsV0FBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0gsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUcsU0FBUTtRQUNWLE9BQU8sSUFBSSxDQUFDSixPQUFPLEVBQUVJLFNBQVM7SUFDaEM7SUFDQSxJQUFJQyxhQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDTCxPQUFPLEVBQUVLO0lBQ3pCO0lBQ0EsSUFBSUMscUJBQW9CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ04sT0FBTyxFQUFFTTtJQUN6QjtJQUNBLElBQUlDLHdCQUF1QjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJ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
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHsgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi4vYm90LmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgY2FsbEN1c3RvbWl6ZXIgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMuanMnO1xuaW1wb3J0IHsgTWVtYmVyVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9tZW1iZXIuanMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IE1lbWJlciA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBNZW1iZXIpLFxuXG4gIGdldCBkZWFmKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdkZWFmJyk7XG4gIH0sXG4gIGdldCBtdXRlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtdXRlJyk7XG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJyk7XG4gIH0sXG4gIGdldCBmbGFncygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5mbGFncyA/PyAwO1xuICB9LFxuICBnZXQgZGlkUmVqb2luKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uZGlkUmVqb2luO1xuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZztcbiAgfSxcbiAgZ2V0IGJ5cGFzc2VzVmVyaWZpY2F0aW9uKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uYnlwYXNzZXNWZXJpZmljYXRpb247XG4gIH0sXG4gIGdldCBjb21wbGV0ZWRPbmJvYXJkaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uY29tcGxldGVkT25ib2FyZGluZztcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZW1iZXIoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lbWJlcj4sIGV4dHJhPzogeyBndWlsZElkPzogQmlnU3RyaW5nOyB1c2VySWQ/OiBCaWdTdHJpbmc7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgbWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IE9iamVjdC5jcmVhdGUoYmFzZU1lbWJlcik7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZW1iZXI7XG5cbiAgaWYgKHByb3BzLmlkICYmIGV4dHJhPy51c2VySWQpIG1lbWJlci5pZCA9IHR5cGVvZiBleHRyYS51c2VySWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEudXNlcklkKSA6IGV4dHJhLnVzZXJJZDtcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZXh0cmE/Lmd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGV4dHJhLmd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiBleHRyYS5ndWlsZElkO1xuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1lbWJlci51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKTtcbiAgaWYgKHByb3BzLm5pY2sgJiYgcGF5bG9hZC5uaWNrKSBtZW1iZXIubmljayA9IHBheWxvYWQubmljaztcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKTtcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuam9pbmVkX2F0KSBtZW1iZXIuam9pbmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuam9pbmVkX2F0KTtcbiAgaWYgKHByb3BzLnByZW1pdW1TaW5jZSAmJiBwYXlsb2FkLnByZW1pdW1fc2luY2UpIG1lbWJlci5wcmVtaXVtU2luY2UgPSBEYXRlLnBhcnNlKHBheWxvYWQucHJlbWl1bV9zaW5jZSk7XG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpO1xuICBpZiAocHJvcHMuYXZhdGFyICYmIHBheWxvYWQuYXZhdGFyKSBtZW1iZXIuYXZhdGFyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmF2YXRhcik7XG4gIGlmIChwcm9wcy5iYW5uZXIgJiYgcGF5bG9hZC5iYW5uZXIpIG1lbWJlci5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYmFubmVyKTtcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKTtcbiAgaWYgKHByb3BzLnRvZ2dsZXMpIG1lbWJlci50b2dnbGVzID0gbmV3IE1lbWJlclRvZ2dsZXMocGF5bG9hZCk7XG4gIGlmIChwcm9wcy5hdmF0YXJEZWNvcmF0aW9uRGF0YSAmJiBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG4gICAgbWVtYmVyLmF2YXRhckRlY29yYXRpb25EYXRhID0gYm90LnRyYW5zZm9ybWVycy5hdmF0YXJEZWNvcmF0aW9uRGF0YShib3QsIHBheWxvYWQuYXZhdGFyX2RlY29yYXRpb25fZGF0YSk7XG4gIGlmIChwcm9wcy5jb2xsZWN0aWJsZXMgJiYgcGF5bG9hZC5jb2xsZWN0aWJsZXMpIG1lbWJlci5jb2xsZWN0aWJsZXMgPSBib3QudHJhbnNmb3JtZXJzLmNvbGxlY3RpYmxlcyhib3QsIHBheWxvYWQuY29sbGVjdGlibGVzKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ21lbWJlcicsIGJvdCwgcGF5bG9hZCwgbWVtYmVyLCB7XG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICB1c2VySWQ6IGV4dHJhPy51c2VySWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS51c2VySWQpIDogdW5kZWZpbmVkLFxuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJpY29uSGFzaFRvQmlnSW50IiwiY2FsbEN1c3RvbWl6ZXIiLCJNZW1iZXJUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaWQiLCJ1c2VySWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImJhbm5lciIsInBlcm1pc3Npb25zIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY29sbGVjdGlibGVzIiwicGFydGlhbCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBR3JELFNBQVNDLGNBQWMsUUFBUSxxQkFBcUI7QUFDcEQsU0FBU0MsYUFBYSxRQUFRLHNCQUFzQjtBQUNwRCxTQUFTQyxXQUFXLFFBQVEsMkJBQTJCO0FBR3ZELE9BQU8sTUFBTUMsYUFBcUI7SUFDaEMsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDRixPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJ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
@@ -1,16 +1,26 @@
1
- import { type DiscordMessage, type DiscordMessageCall, type DiscordMessageInteractionMetadata, type DiscordMessagePin, type DiscordMessageSnapshot } from '@discordeno/types';
1
+ import { type DiscordMessage, type DiscordMessageCall, type DiscordMessageInteractionMetadata, type DiscordMessagePin, type DiscordMessageSnapshot, type DiscordSharedClientTheme } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
- import type { Message, MessageCall, MessageInteractionMetadata, MessagePin, MessageSnapshot } from './types.js';
3
+ import type { Message } from './types.js';
4
4
  export declare const baseMessage: Message;
5
- export declare function transformMessage(bot: Bot, payload: DiscordMessage, extra?: {
5
+ export declare function transformMessage(bot: Bot, payload: Partial<DiscordMessage>, extra?: {
6
6
  shardId?: number;
7
- }): Message;
8
- export declare function transformMessagePin(bot: Bot, payload: DiscordMessagePin, extra?: {
7
+ partial?: boolean;
8
+ }): any;
9
+ export declare function transformMessagePin(bot: Bot, payload: Partial<DiscordMessagePin>, extra?: {
9
10
  shardId?: number;
10
- }): MessagePin;
11
- export declare function transformMessageSnapshot(bot: Bot, payload: DiscordMessageSnapshot, extra?: {
11
+ partial?: boolean;
12
+ }): any;
13
+ export declare function transformMessageSnapshot(bot: Bot, payload: Partial<DiscordMessageSnapshot>, extra?: {
12
14
  shardId?: number;
13
- }): MessageSnapshot;
14
- export declare function transformMessageInteractionMetadata(bot: Bot, payload: DiscordMessageInteractionMetadata): MessageInteractionMetadata;
15
- export declare function transformMessageCall(bot: Bot, payload: DiscordMessageCall): MessageCall;
15
+ partial?: boolean;
16
+ }): any;
17
+ export declare function transformMessageInteractionMetadata(bot: Bot, payload: Partial<DiscordMessageInteractionMetadata>, extra?: {
18
+ partial?: boolean;
19
+ }): any;
20
+ export declare function transformMessageCall(bot: Bot, payload: Partial<DiscordMessageCall>, extra?: {
21
+ partial?: boolean;
22
+ }): any;
23
+ export declare function transformSharedClientTheme(bot: Bot, payload: Partial<DiscordSharedClientTheme>, extra?: {
24
+ partial?: boolean;
25
+ }): any;
16
26
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/transformers/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAsB,0BAA0B,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIpI,eAAO,MAAM,WAAW,EAAE,OAkHzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAsHzG;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAQlH;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CASjI;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,iCAAiC,GAAG,0BAA0B,CAqCpI;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAQvF"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/transformers/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAE9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,OAAO,KAAK,EACV,OAAO,EAOR,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,WAAW,EAAE,OAkHzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAqH3H;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAWjI;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAW3I;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,iCAAiC,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAuC/I;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAUjH;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAY7H"}
@@ -1,6 +1,7 @@
1
1
  import { DiscordApplicationIntegrationType, MessageFlags } from '@discordeno/types';
2
2
  import { snowflakeToTimestamp } from '@discordeno/utils';
3
3
  import { CHANNEL_MENTION_REGEX } from '../constants.js';
4
+ import { callCustomizer } from '../transformers.js';
4
5
  import { ToggleBitfield } from './toggles/ToggleBitfield.js';
5
6
  const EMPTY_STRING = '';
6
7
  export const baseMessage = {
@@ -125,9 +126,9 @@ export function transformMessage(bot, payload, extra) {
125
126
  message.flags = new ToggleBitfield(payload.flags);
126
127
  const props = bot.transformers.desiredProperties.message;
127
128
  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
129
+ if (props.application && payload.application) message.application = bot.transformers.application(bot, payload.application, {
130
+ shardId: extra?.shardId,
131
+ partial: true
131
132
  });
132
133
  if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id);
133
134
  if (props.attachments && payload.attachments?.length) message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
@@ -146,10 +147,10 @@ export function transformMessage(bot, payload, extra) {
146
147
  interaction.id = bot.transformers.snowflake(payload.interaction.id);
147
148
  }
148
149
  if (messageInteractionProps.member && payload.interaction.member) {
149
- // @ts-expect-error TODO: partial - check why this is partial and handle as needed
150
150
  interaction.member = bot.transformers.member(bot, payload.interaction.member, {
151
151
  guildId,
152
- userId: payload.interaction.user.id
152
+ userId: payload.interaction.user.id,
153
+ partial: true
153
154
  });
154
155
  }
155
156
  if (messageInteractionProps.name) {
@@ -163,10 +164,10 @@ export function transformMessage(bot, payload, extra) {
163
164
  }
164
165
  message.interaction = interaction;
165
166
  }
166
- if (props.member && guildId && userId && payload.member) // @ts-expect-error TODO: partial
167
- message.member = bot.transformers.member(bot, payload.member, {
167
+ if (props.member && guildId && userId && payload.member) message.member = bot.transformers.member(bot, payload.member, {
168
168
  guildId,
169
- userId
169
+ userId,
170
+ partial: true
170
171
  });
171
172
  if (payload.mention_everyone) message.mentionEveryone = true;
172
173
  if (props.mentionedChannelIds && payload.mention_channels?.length) {
@@ -212,8 +213,9 @@ export function transformMessage(bot, payload, extra) {
212
213
  burst: reaction.count_details.burst,
213
214
  normal: reaction.count_details.normal
214
215
  },
215
- // @ts-expect-error TODO: Deal with partials
216
- emoji: bot.transformers.emoji(bot, reaction.emoji),
216
+ emoji: bot.transformers.emoji(bot, reaction.emoji, {
217
+ partial: true
218
+ }),
217
219
  burstColors: reaction.burst_colors
218
220
  }));
219
221
  }
@@ -226,11 +228,14 @@ export function transformMessage(bot, payload, extra) {
226
228
  if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, payload.thread, {
227
229
  guildId
228
230
  });
229
- if (props.type) message.type = payload.type;
231
+ if (props.type && payload.type !== undefined) message.type = payload.type;
230
232
  if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id);
231
233
  if (props.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll);
232
234
  if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
233
- return bot.transformers.customizers.message(bot, payload, message, extra);
235
+ return callCustomizer('message', bot, payload, message, {
236
+ shardId: extra?.shardId,
237
+ partial: extra?.partial ?? false
238
+ });
234
239
  }
235
240
  export function transformMessagePin(bot, payload, extra) {
236
241
  const props = bot.transformers.desiredProperties.messagePin;
@@ -239,28 +244,34 @@ export function transformMessagePin(bot, payload, extra) {
239
244
  if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, payload.message, {
240
245
  shardId: extra?.shardId
241
246
  });
242
- return bot.transformers.customizers.messagePin(bot, payload, messagePin, extra);
247
+ return callCustomizer('messagePin', bot, payload, messagePin, {
248
+ shardId: extra?.shardId,
249
+ partial: extra?.partial ?? false
250
+ });
243
251
  }
244
252
  export function transformMessageSnapshot(bot, payload, extra) {
245
253
  const props = bot.transformers.desiredProperties.messageSnapshot;
246
254
  const messageSnapshot = {};
247
- if (props.message && payload.message) // @ts-expect-error TODO: Partials
248
- messageSnapshot.message = bot.transformers.message(bot, payload.message, {
249
- shardId: extra?.shardId
255
+ if (props.message && payload.message) messageSnapshot.message = bot.transformers.message(bot, payload.message, {
256
+ shardId: extra?.shardId,
257
+ partial: true
258
+ });
259
+ return callCustomizer('messageSnapshot', bot, payload, messageSnapshot, {
260
+ shardId: extra?.shardId,
261
+ partial: extra?.partial ?? false
250
262
  });
251
- return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot, extra);
252
263
  }
253
- export function transformMessageInteractionMetadata(bot, payload) {
264
+ export function transformMessageInteractionMetadata(bot, payload, extra) {
254
265
  const props = bot.transformers.desiredProperties.messageInteractionMetadata;
255
266
  const metadata = {};
256
- if (props.id) metadata.id = bot.transformers.snowflake(payload.id);
257
- if (props.authorizingIntegrationOwners) {
267
+ if (props.id && payload.id !== undefined) metadata.id = bot.transformers.snowflake(payload.id);
268
+ if (props.authorizingIntegrationOwners && payload.authorizing_integration_owners) {
258
269
  metadata.authorizingIntegrationOwners = {};
259
270
  if (payload.authorizing_integration_owners['0']) metadata.authorizingIntegrationOwners[DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['0']);
260
271
  if (payload.authorizing_integration_owners['1']) metadata.authorizingIntegrationOwners[DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['1']);
261
272
  }
262
273
  if (props.originalResponseMessageId && payload.original_response_message_id) metadata.originalResponseMessageId = bot.transformers.snowflake(payload.original_response_message_id);
263
- if (props.type) metadata.type = payload.type;
274
+ if (props.type && payload.type !== undefined) metadata.type = payload.type;
264
275
  if (props.user && payload.user) metadata.user = bot.transformers.user(bot, payload.user);
265
276
  // Application command metadata
266
277
  if ('target_user' in payload) {
@@ -275,14 +286,29 @@ export function transformMessageInteractionMetadata(bot, payload) {
275
286
  if ('triggering_interaction_metadata' in payload) {
276
287
  if (props.triggeringInteractionMetadata && payload.triggering_interaction_metadata) metadata.triggeringInteractionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.triggering_interaction_metadata);
277
288
  }
278
- return bot.transformers.customizers.messageInteractionMetadata(bot, payload, metadata);
289
+ return callCustomizer('messageInteractionMetadata', bot, payload, metadata, {
290
+ partial: extra?.partial ?? false
291
+ });
279
292
  }
280
- export function transformMessageCall(bot, payload) {
293
+ export function transformMessageCall(bot, payload, extra) {
281
294
  const call = {};
282
295
  const props = bot.transformers.desiredProperties.messageCall;
283
296
  if (props.participants && payload.participants) call.participants = payload.participants.map((x)=>bot.transformers.snowflake(x));
284
297
  if (props.endedTimestamp && payload.ended_timestamp) call.endedTimestamp = Date.parse(payload.ended_timestamp);
285
- return bot.transformers.customizers.messageCall(bot, payload, call);
298
+ return callCustomizer('messageCall', bot, payload, call, {
299
+ partial: extra?.partial ?? false
300
+ });
301
+ }
302
+ export function transformSharedClientTheme(bot, payload, extra) {
303
+ const props = bot.transformers.desiredProperties.sharedClientTheme;
304
+ const theme = {};
305
+ if (props.colors && payload.colors) theme.colors = payload.colors;
306
+ if (props.baseMix && payload.base_mix !== undefined) theme.baseMix = payload.base_mix;
307
+ if (props.gradientAngle && payload.gradient_angle !== undefined) theme.gradientAngle = payload.gradient_angle;
308
+ if (props.baseTheme && payload.base_theme !== undefined && payload.base_theme !== null) theme.baseTheme = payload.base_theme;
309
+ return callCustomizer('sharedClientTheme', bot, payload, theme, {
310
+ partial: extra?.partial ?? false
311
+ });
286
312
  }
287
313
 
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVBpbixcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IHNub3dmbGFrZVRvVGltZXN0YW1wIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJztcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vZGVzaXJlZFByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlLCBNZXNzYWdlQ2FsbCwgTWVzc2FnZUludGVyYWN0aW9uLCBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSwgTWVzc2FnZVBpbiwgTWVzc2FnZVNuYXBzaG90IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnO1xuXG5leHBvcnQgY29uc3QgYmFzZU1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgTWVzc2FnZSksXG5cbiAgZ2V0IGNyb3NzcG9zdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpO1xuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGVwaGVtZXJhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKTtcbiAgfSxcbiAgZ2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpO1xuICB9LFxuICBnZXQgaGFzVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKTtcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgaXNDcm9zc3Bvc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpO1xuICB9LFxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkxvYWRpbmcpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkxvYWRpbmcpO1xuICB9LFxuICBnZXQgbWVudGlvbmVkVXNlcklkcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZW50aW9ucz8ubWFwKCh1c2VyKSA9PiB1c2VyLmlkKSA/PyBbXTtcbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBtZW50aW9uRXZlcnlvbmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDIpO1xuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMik7XG4gIH0sXG4gIGdldCBwaW5uZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDMpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgcGlubmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKTtcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDMpO1xuICB9LFxuICBnZXQgc291cmNlTWVzc2FnZURlbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZCkgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKTtcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZCk7XG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IHN1cHByZXNzRW1iZWRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKTtcbiAgfSxcbiAgZ2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucykgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBzdXBwcmVzc05vdGlmaWNhdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucyk7XG4gIH0sXG4gIGdldCB0aW1lc3RhbXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyBzbm93Zmxha2VUb1RpbWVzdGFtcCh0aGlzLmlkKSA6IDA7XG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgdHRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgxKTtcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpO1xuICB9LFxuICBnZXQgdXJnZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuVXJnZW50KSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IHVyZ2VudCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuVXJnZW50KTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZSwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IE1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpIDogdW5kZWZpbmVkO1xuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLmF1dGhvcj8uaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZCkgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbWVzc2FnZTogU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+ID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVzc2FnZSk7XG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKTtcbiAgbWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZTtcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uICYmIHBheWxvYWQuYXBwbGljYXRpb24pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBQYXJ0aWFsc1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgcGF5bG9hZC5hcHBsaWNhdGlvbiwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgbWVzc2FnZS5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBsaWNhdGlvbl9pZCk7XG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLmF0dGFjaG1lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5hdHRhY2htZW50cyA9IHBheWxvYWQuYXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCBhdHRhY2htZW50KSk7XG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZCk7XG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQuY29tcG9uZW50cz8ubGVuZ3RoKSBtZXNzYWdlLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKTtcbiAgaWYgKHByb3BzLmNvbnRlbnQpIG1lc3NhZ2UuY29udGVudCA9IHBheWxvYWQuY29udGVudCA/PyBFTVBUWV9TVFJJTkc7XG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKTtcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpO1xuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuaW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKTtcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb247XG5cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMuaWQpIHtcbiAgICAgIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbCAtIGNoZWNrIHdoeSB0aGlzIGlzIHBhcnRpYWwgYW5kIGhhbmRsZSBhcyBuZWVkZWRcbiAgICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIHsgZ3VpbGRJZCwgdXNlcklkOiBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIuaWQgfSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnVzZXIpIHtcbiAgICAgIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIpO1xuICAgIH1cblxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcbiAgfVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgdXNlcklkICYmIHBheWxvYWQubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwgeyBndWlsZElkLCB1c2VySWQgfSk7XG4gIGlmIChwYXlsb2FkLm1lbnRpb25fZXZlcnlvbmUpIG1lc3NhZ2UubWVudGlvbkV2ZXJ5b25lID0gdHJ1ZTtcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdO1xuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVudGlvbl9yb2xlcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UubWVudGlvbmVkUm9sZUlkcyA9IHBheWxvYWQubWVudGlvbl9yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpO1xuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZW50aW9ucz8ubGVuZ3RoKSBtZXNzYWdlLm1lbnRpb25zID0gcGF5bG9hZC5tZW50aW9ucy5tYXAoKHVzZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHVzZXIpKTtcbiAgaWYgKHByb3BzLmNoYW5uZWxUeXBlICYmIHBheWxvYWQuY2hhbm5lbF90eXBlKSBtZXNzYWdlLmNoYW5uZWxUeXBlID0gcGF5bG9hZC5jaGFubmVsX3R5cGU7XG4gIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+O1xuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZTtcblxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKSB7XG4gICAgICByZWZlcmVuY2UuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLm1lc3NhZ2VJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5tZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpO1xuICAgIH1cblxuICAgIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuICBpZiAocHJvcHMucmVmZXJlbmNlZE1lc3NhZ2UgJiYgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQucmVmZXJlbmNlZF9tZXNzYWdlLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pO1xuICBpZiAocHJvcHMubWVzc2FnZVNuYXBzaG90cyAmJiBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzKVxuICAgIG1lc3NhZ2UubWVzc2FnZVNuYXBzaG90cyA9IHBheWxvYWQubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VTbmFwc2hvdChib3QsIHNuYXAsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSkpO1xuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2U7XG4gIGlmIChwYXlsb2FkLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlO1xuICBpZiAocHJvcHMucmVhY3Rpb25zICYmIHBheWxvYWQucmVhY3Rpb25zPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLnJlYWN0aW9ucyA9IHBheWxvYWQucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IERlYWwgd2l0aCBwYXJ0aWFsc1xuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSksXG4gICAgICBidXJzdENvbG9yczogcmVhY3Rpb24uYnVyc3RfY29sb3JzLFxuICAgIH0pKTtcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpO1xuICBpZiAocGF5bG9hZC50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZTtcbiAgaWYgKHByb3BzLnRocmVhZCAmJiBwYXlsb2FkLnRocmVhZCkgbWVzc2FnZS50aHJlYWQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCBwYXlsb2FkLnRocmVhZCwgeyBndWlsZElkIH0pO1xuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQud2ViaG9va19pZCkgbWVzc2FnZS53ZWJob29rSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLndlYmhvb2tfaWQpO1xuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLnBvbGwpIG1lc3NhZ2UucG9sbCA9IGJvdC50cmFuc2Zvcm1lcnMucG9sbChib3QsIHBheWxvYWQucG9sbCk7XG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbCk7XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQsIG1lc3NhZ2UsIGV4dHJhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlUGluLCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogTWVzc2FnZVBpbiB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlUGluO1xuICBjb25zdCBtZXNzYWdlUGluID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy5waW5uZWRBdCAmJiBwYXlsb2FkLnBpbm5lZF9hdCkgbWVzc2FnZVBpbi5waW5uZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5waW5uZWRfYXQpO1xuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlUGluKGJvdCwgcGF5bG9hZCwgbWVzc2FnZVBpbiwgZXh0cmEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlciB9KTogTWVzc2FnZVNuYXBzaG90IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VTbmFwc2hvdDtcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVNuYXBzaG90LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogUGFydGlhbHNcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KSBhcyBNZXNzYWdlO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VTbmFwc2hvdChib3QsIHBheWxvYWQsIG1lc3NhZ2VTbmFwc2hvdCwgZXh0cmEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSk6IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhO1xuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpO1xuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycykge1xuICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fTtcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgICk7XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgICk7XG4gIH1cbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpO1xuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKTtcbiAgLy8gQXBwbGljYXRpb24gY29tbWFuZCBtZXRhZGF0YVxuICBpZiAoJ3RhcmdldF91c2VyJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRhcmdldFVzZXIgJiYgcGF5bG9hZC50YXJnZXRfdXNlcikgbWV0YWRhdGEudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudGFyZ2V0X3VzZXIpO1xuICAgIGlmIChwcm9wcy50YXJnZXRNZXNzYWdlSWQgJiYgcGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZCkgbWV0YWRhdGEudGFyZ2V0TWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZCk7XG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZCk7XG4gIH1cbiAgLy8gTW9kYWwgc3VibWl0IG1ldGFkYXRhXG4gIGlmICgndHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YScgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgICBtZXRhZGF0YS50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpO1xuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZUNhbGwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VDYWxsO1xuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSk7XG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApO1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZCwgY2FsbCk7XG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiTWVzc2FnZUZsYWdzIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJUb2dnbGVCaXRmaWVsZCIsIkVNUFRZX1NUUklORyIsImJhc2VNZXNzYWdlIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwidHRzIiwidXJnZW50IiwiVXJnZW50IiwidHJhbnNmb3JtTWVzc2FnZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb24iLCJzaGFyZElkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyIsIm1lc3NhZ2VJbnRlcmFjdGlvbiIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwiY2hhbm5lbFR5cGUiLCJjaGFubmVsX3R5cGUiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJtZXNzYWdlUGluIiwicGlubmVkQXQiLCJwaW5uZWRfYXQiLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsaUNBQWlDLEVBTWpDQyxZQUFZLFFBQ1Asb0JBQW9CO0FBQzNCLFNBQVNDLG9CQUFvQixRQUFRLG9CQUFvQjtBQUV6RCxTQUFTQyxxQkFBcUIsUUFBUSxrQkFBa0I7QUFFeEQsU0FBU0MsY0FBYyxRQUFRLDhCQUE4QjtBQUc3RCxNQUFNQyxlQUFlO0FBRXJCLE9BQU8sTUFBTUMsY0FBdUI7SUFDbEMsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxLQUFLLEVBQUVDLFNBQVNULGFBQWFVLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlILGFBQVlJLE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNaLGFBQWFVLFdBQVc7YUFDN0MsSUFBSSxD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
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVBpbixcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICB0eXBlIERpc2NvcmRTaGFyZWRDbGllbnRUaGVtZSxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5pbXBvcnQgeyBzbm93Zmxha2VUb1RpbWVzdGFtcCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgQm90IH0gZnJvbSAnLi4vYm90LmpzJztcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi90b2dnbGVzL1RvZ2dsZUJpdGZpZWxkLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZUNhbGwsXG4gIE1lc3NhZ2VJbnRlcmFjdGlvbixcbiAgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIE1lc3NhZ2VQaW4sXG4gIE1lc3NhZ2VTbmFwc2hvdCxcbiAgU2hhcmVkQ2xpZW50VGhlbWUsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jb25zdCBFTVBUWV9TVFJJTkcgPSAnJztcblxuZXhwb3J0IGNvbnN0IGJhc2VNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIE1lc3NhZ2UpLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGNyb3NzcG9zdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKTtcbiAgfSxcbiAgZ2V0IGVwaGVtZXJhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCkgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBlcGhlbWVyYWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCk7XG4gIH0sXG4gIGdldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKTtcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBoYXNUaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCk7XG4gIH0sXG4gIGdldCBpc0Nyb3NzcG9zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGlzQ3Jvc3Nwb3N0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KTtcbiAgfSxcbiAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKTtcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKTtcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW107XG4gIH0sXG4gIGdldCBtZW50aW9uRXZlcnlvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDIpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgbWVudGlvbkV2ZXJ5b25lKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKTtcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDIpO1xuICB9LFxuICBnZXQgcGlubmVkKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygzKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMyk7XG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgzKTtcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgc291cmNlTWVzc2FnZURlbGV0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZCk7XG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpO1xuICB9LFxuICBnZXQgc3VwcHJlc3NFbWJlZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcykgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCBzdXBwcmVzc0VtYmVkcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKTtcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcyk7XG4gIH0sXG4gIGdldCBzdXBwcmVzc05vdGlmaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpID8/IGZhbHNlO1xuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm47XG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKTtcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpO1xuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwO1xuICB9LFxuICBnZXQgdHRzKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygxKSA/PyBmYWxzZTtcbiAgfSxcbiAgc2V0IHR0cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSk7XG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgxKTtcbiAgfSxcbiAgZ2V0IHVyZ2VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlVyZ2VudCkgPz8gZmFsc2U7XG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVybjtcbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5VcmdlbnQpO1xuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlVyZ2VudCk7XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkTWVzc2FnZT4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHVzZXJJZCA9IHBheWxvYWQuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXV0aG9yLmlkKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBtZXNzYWdlOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VNZXNzYWdlKTtcbiAgbWVzc2FnZS5iaXRmaWVsZCA9IG5ldyBUb2dnbGVCaXRmaWVsZCgpO1xuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpO1xuXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlO1xuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5hdXRob3IpIG1lc3NhZ2UuYXV0aG9yID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5hdXRob3IpO1xuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5hcHBsaWNhdGlvbilcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHBheWxvYWQuYXBwbGljYXRpb24sIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIG1lc3NhZ2UuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpO1xuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpO1xuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgbWVzc2FnZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWxfaWQpO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHM/Lmxlbmd0aCkgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wKSk7XG4gIGlmIChwcm9wcy5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HO1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCk7XG4gIGlmIChwcm9wcy5lbWJlZHMgJiYgcGF5bG9hZC5lbWJlZHM/Lmxlbmd0aCkgbWVzc2FnZS5lbWJlZHMgPSBwYXlsb2FkLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKTtcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZDtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSk7XG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlSW50ZXJhY3Rpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcbiAgICBjb25zdCBtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUludGVyYWN0aW9uO1xuXG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLmlkKSB7XG4gICAgICBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMubmFtZSkge1xuICAgICAgaW50ZXJhY3Rpb24ubmFtZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubmFtZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnR5cGUpIHtcbiAgICAgIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKTtcbiAgICB9XG5cbiAgICBtZXNzYWdlLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lbWJlcilcbiAgICBtZXNzYWdlLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIHsgZ3VpbGRJZCwgdXNlcklkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWU7XG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVudGlvbl9jaGFubmVscz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5tZW50aW9uZWRDaGFubmVsSWRzID0gW1xuICAgICAgLy8gS2VlcCBhbnkgaWRzIHRodCBkaXNjb3JkIHNlbmRzXG4gICAgICAuLi4ocGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzID8/IFtdKS5tYXAoKG0pID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG0uaWQpKSxcbiAgICAgIC8vIEFkZCBhbnkgb3RoZXIgaWRzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBpbiBhIGNoYW5uZWwgbWVudGlvbiBmb3JtYXRcbiAgICAgIC4uLihwYXlsb2FkLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXTtcbiAgfVxuICBpZiAocHJvcHMubWVudGlvbmVkUm9sZUlkcyAmJiBwYXlsb2FkLm1lbnRpb25fcm9sZXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLm1lbnRpb25lZFJvbGVJZHMgPSBwYXlsb2FkLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKTtcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSk7XG4gIGlmIChwcm9wcy5jaGFubmVsVHlwZSAmJiBwYXlsb2FkLmNoYW5uZWxfdHlwZSkgbWVzc2FnZS5jaGFubmVsVHlwZSA9IHBheWxvYWQuY2hhbm5lbF90eXBlO1xuICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZSAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPjtcbiAgICBjb25zdCBtZXNzYWdlUmVmZXJlbmNlUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VSZWZlcmVuY2U7XG5cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKTtcbiAgICB9XG5cbiAgICBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQucmVmZXJlbmNlZF9tZXNzYWdlKVxuICAgIG1lc3NhZ2UucmVmZXJlbmNlZE1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KTtcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pKTtcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubm9uY2UpIG1lc3NhZ2Uubm9uY2UgPSBwYXlsb2FkLm5vbmNlO1xuICBpZiAocGF5bG9hZC5waW5uZWQpIG1lc3NhZ2UucGlubmVkID0gdHJ1ZTtcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSwgeyBwYXJ0aWFsOiB0cnVlIH0pLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSk7XG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLnN0aWNrZXJfaXRlbXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLnN0aWNrZXJJdGVtcyA9IHBheWxvYWQuc3RpY2tlcl9pdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaXRlbS5pZCksXG4gICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICBmb3JtYXRUeXBlOiBpdGVtLmZvcm1hdF90eXBlLFxuICAgIH0pKTtcbiAgaWYgKHBheWxvYWQudHRzKSBtZXNzYWdlLnR0cyA9IHRydWU7XG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC50aHJlYWQsIHsgZ3VpbGRJZCB9KTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlICE9PSB1bmRlZmluZWQpIG1lc3NhZ2UudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLndlYmhvb2tJZCAmJiBwYXlsb2FkLndlYmhvb2tfaWQpIG1lc3NhZ2Uud2ViaG9va0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC53ZWJob29rX2lkKTtcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpO1xuICBpZiAocHJvcHMuY2FsbCAmJiBwYXlsb2FkLmNhbGwpIG1lc3NhZ2UuY2FsbCA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLmNhbGwpO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignbWVzc2FnZScsIGJvdCwgcGF5bG9hZCwgbWVzc2FnZSwge1xuICAgIHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLFxuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lc3NhZ2VQaW4+LCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVBpbjtcbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VQaW4sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KTtcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlUGluLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSk7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdtZXNzYWdlUGluJywgYm90LCBwYXlsb2FkLCBtZXNzYWdlUGluLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRNZXNzYWdlU25hcHNob3Q+LCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVNuYXBzaG90O1xuICBjb25zdCBtZXNzYWdlU25hcHNob3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlU25hcHNob3QsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpXG4gICAgbWVzc2FnZVNuYXBzaG90Lm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsIHBhcnRpYWw6IHRydWUgfSkgYXMgTWVzc2FnZTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ21lc3NhZ2VTbmFwc2hvdCcsIGJvdCwgcGF5bG9hZCwgbWVzc2FnZVNuYXBzaG90LCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhO1xuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQgIT09IHVuZGVmaW5lZCkgbWV0YWRhdGEuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge307XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApO1xuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApO1xuICB9XG4gIGlmIChwcm9wcy5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKTtcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlICE9PSB1bmRlZmluZWQpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWV0YWRhdGEudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcik7XG4gIC8vIEFwcGxpY2F0aW9uIGNvbW1hbmQgbWV0YWRhdGFcbiAgaWYgKCd0YXJnZXRfdXNlcicgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQudGFyZ2V0X3VzZXIpIG1ldGFkYXRhLnRhcmdldFVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnRhcmdldF91c2VyKTtcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpO1xuICB9XG4gIC8vIE1lc3NhZ2UgY29tcG9uZW50IG1ldGFkYXRhXG4gIGlmICgnaW50ZXJhY3RlZF9tZXNzYWdlX2lkJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLmludGVyYWN0ZWRNZXNzYWdlSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGVkX21lc3NhZ2VfaWQpXG4gICAgICBtZXRhZGF0YS5pbnRlcmFjdGVkTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGVkX21lc3NhZ2VfaWQpO1xuICB9XG4gIC8vIE1vZGFsIHN1Ym1pdCBtZXRhZGF0YVxuICBpZiAoJ3RyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKTtcbiAgfVxuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignbWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEnLCBib3QsIHBheWxvYWQsIG1ldGFkYXRhLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUNhbGwoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lc3NhZ2VDYWxsPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgY2FsbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VDYWxsLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlQ2FsbDtcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpO1xuICBpZiAocHJvcHMuZW5kZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lbmRlZF90aW1lc3RhbXApIGNhbGwuZW5kZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKTtcblxuICByZXR1cm4gY2FsbEN1c3RvbWl6ZXIoJ21lc3NhZ2VDYWxsJywgYm90LCBwYXlsb2FkLCBjYWxsLCB7XG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU2hhcmVkQ2xpZW50VGhlbWUoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFNoYXJlZENsaWVudFRoZW1lPiwgZXh0cmE/OiB7IHBhcnRpYWw/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnNoYXJlZENsaWVudFRoZW1lO1xuICBjb25zdCB0aGVtZSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFNoYXJlZENsaWVudFRoZW1lLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLmNvbG9ycyAmJiBwYXlsb2FkLmNvbG9ycykgdGhlbWUuY29sb3JzID0gcGF5bG9hZC5jb2xvcnM7XG4gIGlmIChwcm9wcy5iYXNlTWl4ICYmIHBheWxvYWQuYmFzZV9taXggIT09IHVuZGVmaW5lZCkgdGhlbWUuYmFzZU1peCA9IHBheWxvYWQuYmFzZV9taXg7XG4gIGlmIChwcm9wcy5ncmFkaWVudEFuZ2xlICYmIHBheWxvYWQuZ3JhZGllbnRfYW5nbGUgIT09IHVuZGVmaW5lZCkgdGhlbWUuZ3JhZGllbnRBbmdsZSA9IHBheWxvYWQuZ3JhZGllbnRfYW5nbGU7XG4gIGlmIChwcm9wcy5iYXNlVGhlbWUgJiYgcGF5bG9hZC5iYXNlX3RoZW1lICE9PSB1bmRlZmluZWQgJiYgcGF5bG9hZC5iYXNlX3RoZW1lICE9PSBudWxsKSB0aGVtZS5iYXNlVGhlbWUgPSBwYXlsb2FkLmJhc2VfdGhlbWU7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdzaGFyZWRDbGllbnRUaGVtZScsIGJvdCwgcGF5bG9hZCwgdGhlbWUsIHtcbiAgICBwYXJ0aWFsOiBleHRyYT8ucGFydGlhbCA/PyBmYWxzZSxcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiTWVzc2FnZUZsYWdzIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJjYWxsQ3VzdG9taXplciIsIlRvZ2dsZUJpdGZpZWxkIiwiRU1QVFlfU1RSSU5HIiwiYmFzZU1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJjcm9zc3Bvc3RlZCIsImZsYWdzIiwiY29udGFpbnMiLCJDcm9zc3Bvc3RlZCIsInZhbHVlIiwiYWRkIiwicmVtb3ZlIiwiZXBoZW1lcmFsIiwiRXBoZW1lcmFsIiwiZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJGYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsImhhc1RocmVhZCIsIkhhc1RocmVhZCIsImlzQ3Jvc3Nwb3N0IiwiSXNDcm9zc3Bvc3QiLCJsb2FkaW5nIiwiTG9hZGluZyIsIm1lbnRpb25lZFVzZXJJZHMiLCJtZW50aW9ucyIsIm1hcCIsInVzZXIiLCJpZCIsIm1lbnRpb25FdmVyeW9uZSIsImJpdGZpZWxkIiwicGlubmVkIiwic291cmNlTWVzc2FnZURlbGV0ZWQiLCJTb3VyY2VNZXNzYWdlRGVsZXRlZCIsInN1cHByZXNzRW1iZWRzIiwiU3VwcHJlc3NFbWJlZHMiLCJzdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJTdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJ0aW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJ0cmFuc2Zvcm1NZXNzYWdlIiwiYm90IiwicGF5bG9hZCIsImV4dHJhIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJwYXJ0aWFsIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyIsIm1lc3NhZ2VJbnRlcmFjdGlvbiIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwiY2hhbm5lbFR5cGUiLCJjaGFubmVsX3R5cGUiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsIm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQiLCJvcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkIiwidGFyZ2V0VXNlciIsInRhcmdldF91c2VyIiwidGFyZ2V0TWVzc2FnZUlkIiwidGFyZ2V0X21lc3NhZ2VfaWQiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwidHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiLCJ0cmFuc2Zvcm1TaGFyZWRDbGllbnRUaGVtZSIsInNoYXJlZENsaWVudFRoZW1lIiwidGhlbWUiLCJjb2xvcnMiLCJiYXNlTWl4IiwiYmFzZV9taXgiLCJncmFkaWVudEFuZ2xlIiwiZ3JhZGllbnRfYW5nbGUiLCJiYXNlVGhlbWUiLCJiYXNlX3RoZW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxpQ0FBaUMsRUFPakNDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0Msb0JBQW9CLFFBQVEsb0JBQW9CO0FBRXpELFNBQVNDLHFCQUFxQixRQUFRLGtCQUFrQjtBQUV4RCxTQUFTQyxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFXN0QsTUFBTUMsZUFBZTtBQUVyQixPQUFPLE1BQU1DLGNBQXVCO0lBQ2xDLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTVixhQUFhVyxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDYixhQUFhVyxXQUFXO2FBQzdDLElBQUksQ0FBQ0YsS0FBSyxDQUFDSyxNQUFNLENBQUNkLGFBQWFXLFdBQVc7SUFDakQ7SUFDQSxJQUFJSSxhQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUNOLEtBQUssRUFBRUMsU0FBU1YsYUFBYWdCLFNBQVMsS0FBSztJQUN6RDtJQUNBLElBQUlELFdBQVVILE1BQWdCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNiLGFBQWFnQixTQUFTO2FBQzNDLElBQUksQ0FBQ1AsS0FBSyxDQUFDSyxNQUFNLENBQUNkLGFBQWFnQixTQUFTO0lBQy9DO0lBQ0EsSUFBSUMsb0NBQW1DO1FBQ3JDLE9BQU8sSUFBSSxDQUFDUixLQUFLLEVBQUVDLFNB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
@@ -1,7 +1,12 @@
1
1
  import type { DiscordGuildOnboarding, DiscordGuildOnboardingPrompt, DiscordGuildOnboardingPromptOption } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
- import type { GuildOnboarding, GuildOnboardingPrompt, GuildOnboardingPromptOption } from './types.js';
4
- export declare function transformGuildOnboarding(bot: Bot, payload: DiscordGuildOnboarding): GuildOnboarding;
5
- export declare function transformGuildOnboardingPrompt(bot: Bot, payload: DiscordGuildOnboardingPrompt): GuildOnboardingPrompt;
6
- export declare function transformGuildOnboardingPromptOption(bot: Bot, payload: DiscordGuildOnboardingPromptOption): GuildOnboardingPromptOption;
3
+ export declare function transformGuildOnboarding(bot: Bot, payload: Partial<DiscordGuildOnboarding>, extra?: {
4
+ partial?: boolean;
5
+ }): any;
6
+ export declare function transformGuildOnboardingPrompt(bot: Bot, payload: Partial<DiscordGuildOnboardingPrompt>, extra?: {
7
+ partial?: boolean;
8
+ }): any;
9
+ export declare function transformGuildOnboardingPromptOption(bot: Bot, payload: Partial<DiscordGuildOnboardingPromptOption>, extra?: {
10
+ partial?: boolean;
11
+ }): any;
7
12
  //# sourceMappingURL=onboarding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/transformers/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEtG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAanG;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,GAAG,qBAAqB,CAarH;AAED,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kCAAkC,GAAG,2BAA2B,CAYvI"}
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/transformers/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAezH;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAerI;AAED,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kCAAkC,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAcjJ"}